feat(product): 添加批次号功能并初始化现有数据
- 新增 ControllerBase 基类用于统一控制器配置 - 修改 ProductModel 实体类的 batchNumber 字段从注释状态变为实际字段,并将类型从 String 改为 Long - 更新 ProductModelAddRequest 请求类,添加 batchNumber 字段并使用 @JsonIgnore 注解 - 在 ProductModelServiceImpl 中启用 batchNumber 字段的设置逻辑 - 添加 TestController 提供初始化产品型号批次号的功能接口 - 实现批量更新产品型号表中缺失的批次号数据功能
This commit is contained in:
parent
b9830ab001
commit
254c0d6568
|
|
@ -1,5 +1,7 @@
|
||||||
package com.nflg.mobilebroken.common.pojo.request;
|
package com.nflg.mobilebroken.common.pojo.request;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
@ -27,11 +29,11 @@ public class ProductModelAddRequest {
|
||||||
@NotBlank
|
@NotBlank
|
||||||
private String typeNumber;
|
private String typeNumber;
|
||||||
|
|
||||||
// /**
|
/**
|
||||||
// * 批次号
|
* 批次号
|
||||||
// */
|
*/
|
||||||
// @JsonIgnore
|
@JsonIgnore
|
||||||
// private String batchNumber= IdUtil.getSnowflakeNextIdStr();
|
private Long batchNumber;
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * 排序
|
// * 排序
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.nflg.mobilebroken.quotation.controller;
|
||||||
|
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@Validated
|
||||||
|
@RestController
|
||||||
|
public class ControllerBase {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,57 @@
|
||||||
|
package com.nflg.mobilebroken.quotation.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import com.nflg.mobilebroken.repository.entity.ProductModel;
|
||||||
|
import com.nflg.mobilebroken.repository.service.IProductModelService;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/test")
|
||||||
|
public class TestController extends ControllerBase {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IProductModelService productModelService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化机型表的BatchNumber字段数据
|
||||||
|
*/
|
||||||
|
@GetMapping("initProductModelBatchNumber")
|
||||||
|
public void initProductModelBatchNumber() {
|
||||||
|
List<ProductModel> datas1 = productModelService.lambdaQuery()
|
||||||
|
.select(ProductModel::getId, ProductModel::getNo)
|
||||||
|
.isNull(ProductModel::getBatchNumber)
|
||||||
|
.list();
|
||||||
|
if (CollectionUtil.isEmpty(datas1)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
List<ProductModel> datas2 = productModelService.lambdaQuery()
|
||||||
|
.select(ProductModel::getNo, ProductModel::getBatchNumber)
|
||||||
|
.isNotNull(ProductModel::getBatchNumber)
|
||||||
|
.list();
|
||||||
|
Map<String, Long> batchNumberMap = new ConcurrentHashMap<>();
|
||||||
|
datas2.forEach(model2 -> {
|
||||||
|
batchNumberMap.putIfAbsent(model2.getNo(), model2.getBatchNumber());
|
||||||
|
});
|
||||||
|
datas1.forEach(model1 -> {
|
||||||
|
Long batchNumber = batchNumberMap.get(model1.getNo());
|
||||||
|
if (Objects.isNull(batchNumber)) {
|
||||||
|
batchNumber = IdUtil.getSnowflakeNextId();
|
||||||
|
batchNumberMap.put(model1.getNo(), batchNumber);
|
||||||
|
}
|
||||||
|
model1.setBatchNumber(batchNumber);
|
||||||
|
});
|
||||||
|
productModelService.updateBatchById(datas1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -44,10 +44,10 @@ public class ProductModel implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String typeNumber;
|
private String typeNumber;
|
||||||
|
|
||||||
// /**
|
/**
|
||||||
// * 批次号
|
* 批次号
|
||||||
// */
|
*/
|
||||||
// private String batchNumber;
|
private Long batchNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 型号
|
* 型号
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.nflg.mobilebroken.repository.service.impl;
|
package com.nflg.mobilebroken.repository.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.RandomUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
|
@ -64,7 +65,7 @@ public class ProductModelServiceImpl extends ServiceImpl<ProductModelMapper, Pro
|
||||||
.setModuleId(request.getModuleId())
|
.setModuleId(request.getModuleId())
|
||||||
.setSeriesNumber(request.getSeriesNumber())
|
.setSeriesNumber(request.getSeriesNumber())
|
||||||
.setTypeNumber(request.getTypeNumber())
|
.setTypeNumber(request.getTypeNumber())
|
||||||
// .setBatchNumber(request.getBatchNumber())
|
.setBatchNumber(request.getBatchNumber())
|
||||||
.setNo(request.getNo())
|
.setNo(request.getNo())
|
||||||
.setRecommend(request.getRecommend())
|
.setRecommend(request.getRecommend())
|
||||||
.setRecommendExpireTime(request.getRecommendExpireTime())
|
.setRecommendExpireTime(request.getRecommendExpireTime())
|
||||||
|
|
@ -86,7 +87,7 @@ public class ProductModelServiceImpl extends ServiceImpl<ProductModelMapper, Pro
|
||||||
public Integer update(ProductModelUpdateRequest request) {
|
public Integer update(ProductModelUpdateRequest request) {
|
||||||
ProductModel info = getById(request.getId());
|
ProductModel info = getById(request.getId());
|
||||||
if (Objects.equals(info.getState(), PublishState.Published.getState())) {
|
if (Objects.equals(info.getState(), PublishState.Published.getState())) {
|
||||||
// request.setBatchNumber(info.getBatchNumber());
|
request.setBatchNumber(info.getBatchNumber());
|
||||||
Integer id = add(request);
|
Integer id = add(request);
|
||||||
copyToNew(info.getId(), id);
|
copyToNew(info.getId(), id);
|
||||||
return id;
|
return id;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue