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;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
|
@ -27,11 +29,11 @@ public class ProductModelAddRequest {
|
|||
@NotBlank
|
||||
private String typeNumber;
|
||||
|
||||
// /**
|
||||
// * 批次号
|
||||
// */
|
||||
// @JsonIgnore
|
||||
// private String batchNumber= IdUtil.getSnowflakeNextIdStr();
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
@JsonIgnore
|
||||
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 batchNumber;
|
||||
/**
|
||||
* 批次号
|
||||
*/
|
||||
private Long batchNumber;
|
||||
|
||||
/**
|
||||
* 型号
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.nflg.mobilebroken.repository.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
|
@ -64,7 +65,7 @@ public class ProductModelServiceImpl extends ServiceImpl<ProductModelMapper, Pro
|
|||
.setModuleId(request.getModuleId())
|
||||
.setSeriesNumber(request.getSeriesNumber())
|
||||
.setTypeNumber(request.getTypeNumber())
|
||||
// .setBatchNumber(request.getBatchNumber())
|
||||
.setBatchNumber(request.getBatchNumber())
|
||||
.setNo(request.getNo())
|
||||
.setRecommend(request.getRecommend())
|
||||
.setRecommendExpireTime(request.getRecommendExpireTime())
|
||||
|
|
@ -86,7 +87,7 @@ public class ProductModelServiceImpl extends ServiceImpl<ProductModelMapper, Pro
|
|||
public Integer update(ProductModelUpdateRequest request) {
|
||||
ProductModel info = getById(request.getId());
|
||||
if (Objects.equals(info.getState(), PublishState.Published.getState())) {
|
||||
// request.setBatchNumber(info.getBatchNumber());
|
||||
request.setBatchNumber(info.getBatchNumber());
|
||||
Integer id = add(request);
|
||||
copyToNew(info.getId(), id);
|
||||
return id;
|
||||
|
|
|
|||
Loading…
Reference in New Issue