From 254c0d6568ec3d67d0fdb0c825351b8d84f73a87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 28 Jan 2026 17:53:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(product):=20=E6=B7=BB=E5=8A=A0=E6=89=B9?= =?UTF-8?q?=E6=AC=A1=E5=8F=B7=E5=8A=9F=E8=83=BD=E5=B9=B6=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E7=8E=B0=E6=9C=89=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 ControllerBase 基类用于统一控制器配置 - 修改 ProductModel 实体类的 batchNumber 字段从注释状态变为实际字段,并将类型从 String 改为 Long - 更新 ProductModelAddRequest 请求类,添加 batchNumber 字段并使用 @JsonIgnore 注解 - 在 ProductModelServiceImpl 中启用 batchNumber 字段的设置逻辑 - 添加 TestController 提供初始化产品型号批次号的功能接口 - 实现批量更新产品型号表中缺失的批次号数据功能 --- .../pojo/request/ProductModelAddRequest.java | 12 ++-- .../quotation/controller/ControllerBase.java | 9 +++ .../quotation/controller/TestController.java | 57 +++++++++++++++++++ .../repository/entity/ProductModel.java | 8 +-- .../service/impl/ProductModelServiceImpl.java | 5 +- 5 files changed, 80 insertions(+), 11 deletions(-) create mode 100644 nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/ControllerBase.java create mode 100644 nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/TestController.java diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelAddRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelAddRequest.java index a83b156e..928c627d 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelAddRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelAddRequest.java @@ -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; // /** // * 排序 diff --git a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/ControllerBase.java b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/ControllerBase.java new file mode 100644 index 00000000..8eee113b --- /dev/null +++ b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/ControllerBase.java @@ -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 { +} diff --git a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/TestController.java b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/TestController.java new file mode 100644 index 00000000..b5007972 --- /dev/null +++ b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/TestController.java @@ -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 datas1 = productModelService.lambdaQuery() + .select(ProductModel::getId, ProductModel::getNo) + .isNull(ProductModel::getBatchNumber) + .list(); + if (CollectionUtil.isEmpty(datas1)) { + return; + } + List datas2 = productModelService.lambdaQuery() + .select(ProductModel::getNo, ProductModel::getBatchNumber) + .isNotNull(ProductModel::getBatchNumber) + .list(); + Map 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); + } +} diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModel.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModel.java index 2baf6c3a..e9e349cc 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModel.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModel.java @@ -44,10 +44,10 @@ public class ProductModel implements Serializable { */ private String typeNumber; -// /** -// * 批次号 -// */ -// private String batchNumber; + /** + * 批次号 + */ + private Long batchNumber; /** * 型号 diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelServiceImpl.java index b9793b2e..e09a253b 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelServiceImpl.java @@ -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