From 9b0657c48d0839c184cdaa16776dc6e74c796070 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 16 Feb 2026 12:35:52 +0800 Subject: [PATCH] refactor(mes): 修正工作站模块中文注释命名 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sip/MesMdProductSipRespVO.java | 2 +- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sip/MesMdProductSipSaveReqVO.java | 2 +- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sop/MesMdProductSopRespVO.java | 2 +- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sop/MesMdProductSopSaveReqVO.java | 3 +-- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/item/MesMdProductSipDO.java | 4 ++-- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/item/MesMdProductSopDO.java | 2 +- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdProductSipMapper.java | 8 ++++---- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdProductSopMapper.java | 8 ++++---- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductBomServiceImpl.java | 37 +++++++++++++++++-------------------- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductSipServiceImpl.java | 10 +++++----- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductSopServiceImpl.java | 10 +++++----- 11 files changed, 42 insertions(+), 46 deletions(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sip/MesMdProductSipRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sip/MesMdProductSipRespVO.java index 41f3875..3e19b39 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sip/MesMdProductSipRespVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sip/MesMdProductSipRespVO.java @@ -16,7 +16,7 @@ public class MesMdProductSipRespVO { private Long itemId; @Schema(description = "排列顺序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - private Integer orderNum; + private Integer orderNumber; @Schema(description = "工序ID", example = "100") private Long processId; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sip/MesMdProductSipSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sip/MesMdProductSipSaveReqVO.java index e14f820..d7121c6 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sip/MesMdProductSipSaveReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sip/MesMdProductSipSaveReqVO.java @@ -18,7 +18,7 @@ public class MesMdProductSipSaveReqVO { @Schema(description = "排列顺序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "排列顺序不能为空") - private Integer orderNum; + private Integer orderNumber; @Schema(description = "工序ID", example = "100") private Long processId; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sop/MesMdProductSopRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sop/MesMdProductSopRespVO.java index 76a45c7..a58850c 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sop/MesMdProductSopRespVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sop/MesMdProductSopRespVO.java @@ -16,7 +16,7 @@ public class MesMdProductSopRespVO { private Long itemId; @Schema(description = "排列顺序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - private Integer orderNum; + private Integer orderNumber; @Schema(description = "工序ID", example = "100") private Long processId; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sop/MesMdProductSopSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sop/MesMdProductSopSaveReqVO.java index 027d1c7..323eed8 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sop/MesMdProductSopSaveReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/sop/MesMdProductSopSaveReqVO.java @@ -16,10 +16,9 @@ public class MesMdProductSopSaveReqVO { @NotNull(message = "物料产品ID不能为空") private Long itemId; - // TODO @AI:orderNumber;包括前端、后端、数据库的字典,都要变更;注意 sql 也去执行下变更; @Schema(description = "排列顺序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "排列顺序不能为空") - private Integer orderNum; + private Integer orderNumber; @Schema(description = "工序ID", example = "100") private Long processId; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/item/MesMdProductSipDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/item/MesMdProductSipDO.java index dea7866..ec94047 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/item/MesMdProductSipDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/item/MesMdProductSipDO.java @@ -35,11 +35,11 @@ public class MesMdProductSipDO extends BaseDO { /** * 排列顺序 */ - private Integer orderNum; + private Integer orderNumber; /** * 工序编号 */ - // TODO @AI:关联 {@link MesMdProcessDO#getId()},但是目前还没有实现工序模块,所以先不写;后续工序模块实现后,再补上关联关系; + // TODO @芋艿:等 pro 工序模块实现后,补上 {@link} 关联 private Long processId; /** * 标题 diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/item/MesMdProductSopDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/item/MesMdProductSopDO.java index eee1914..18c1729 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/item/MesMdProductSopDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/item/MesMdProductSopDO.java @@ -35,7 +35,7 @@ public class MesMdProductSopDO extends BaseDO { /** * 排列顺序 */ - private Integer orderNum; + private Integer orderNumber; /** * 工序编号 */ diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdProductSipMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdProductSipMapper.java index 6c8649d..26f87ac 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdProductSipMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdProductSipMapper.java @@ -21,19 +21,19 @@ public interface MesMdProductSipMapper extends BaseMapperX { return selectPage(reqVO, new LambdaQueryWrapperX() .eq(MesMdProductSipDO::getItemId, reqVO.getItemId()) .likeIfPresent(MesMdProductSipDO::getTitle, reqVO.getTitle()) - .orderByAsc(MesMdProductSipDO::getOrderNum)); + .orderByAsc(MesMdProductSipDO::getOrderNumber)); } default List selectByItemId(Long itemId) { return selectList(new LambdaQueryWrapperX() .eq(MesMdProductSipDO::getItemId, itemId) - .orderByAsc(MesMdProductSipDO::getOrderNum)); + .orderByAsc(MesMdProductSipDO::getOrderNumber)); } - default Long selectCountByItemIdAndOrderNum(Long itemId, Integer orderNum, Long excludeId) { + default Long selectCountByItemIdAndOrderNumber(Long itemId, Integer orderNumber, Long excludeId) { return selectCount(new LambdaQueryWrapperX() .eq(MesMdProductSipDO::getItemId, itemId) - .eq(MesMdProductSipDO::getOrderNum, orderNum) + .eq(MesMdProductSipDO::getOrderNumber, orderNumber) .neIfPresent(MesMdProductSipDO::getId, excludeId)); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdProductSopMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdProductSopMapper.java index d86d76f..bdb0711 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdProductSopMapper.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdProductSopMapper.java @@ -21,19 +21,19 @@ public interface MesMdProductSopMapper extends BaseMapperX { return selectPage(reqVO, new LambdaQueryWrapperX() .eq(MesMdProductSopDO::getItemId, reqVO.getItemId()) .likeIfPresent(MesMdProductSopDO::getTitle, reqVO.getTitle()) - .orderByAsc(MesMdProductSopDO::getOrderNum)); + .orderByAsc(MesMdProductSopDO::getOrderNumber)); } default List selectByItemId(Long itemId) { return selectList(new LambdaQueryWrapperX() .eq(MesMdProductSopDO::getItemId, itemId) - .orderByAsc(MesMdProductSopDO::getOrderNum)); + .orderByAsc(MesMdProductSopDO::getOrderNumber)); } - default Long selectCountByItemIdAndOrderNum(Long itemId, Integer orderNum, Long excludeId) { + default Long selectCountByItemIdAndOrderNumber(Long itemId, Integer orderNumber, Long excludeId) { return selectCount(new LambdaQueryWrapperX() .eq(MesMdProductSopDO::getItemId, itemId) - .eq(MesMdProductSopDO::getOrderNum, orderNum) + .eq(MesMdProductSopDO::getOrderNumber, orderNumber) .neIfPresent(MesMdProductSopDO::getId, excludeId)); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductBomServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductBomServiceImpl.java index daa735c..174291d 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductBomServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductBomServiceImpl.java @@ -13,6 +13,7 @@ import org.springframework.validation.annotation.Validated; import java.util.*; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap2; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; @@ -32,38 +33,36 @@ public class MesMdProductBomServiceImpl implements MesMdProductBomService { @Lazy // 避免循环依赖 private MesMdItemService itemService; - // TODO @AI:1.1 1.2 1.3 如果都是校验; @Override public Long createProductBom(MesMdProductBomSaveReqVO createReqVO) { - // 1. 校验物料产品存在 + // 1.1 校验物料产品存在 validateItemExists(createReqVO.getItemId()); - // 2. 校验BOM物料存在 + // 1.2 校验BOM物料存在 validateItemExists(createReqVO.getBomItemId()); - // 3. 校验不能自引用 + // 1.3 校验不能自引用 if (createReqVO.getItemId().equals(createReqVO.getBomItemId())) { throw exception(MD_PRODUCT_BOM_SELF_REFERENCE); } - // 4. 校验不能形成闭环 + // 1.4 校验不能形成闭环 if (hasCycle(createReqVO.getItemId(), createReqVO.getBomItemId())) { throw exception(MD_PRODUCT_BOM_CIRCULAR); } - // 插入 + // 2. 插入 MesMdProductBomDO productBom = BeanUtils.toBean(createReqVO, MesMdProductBomDO.class); productBomMapper.insert(productBom); return productBom.getId(); } - // TODO @AI:1.1 1.2 1.3 如果都是校验; @Override public void updateProductBom(MesMdProductBomSaveReqVO updateReqVO) { - // 1. 校验存在 + // 1.1 校验存在 validateProductBomExists(updateReqVO.getId()); - // 2. 校验物料产品存在 + // 1.2 校验物料产品存在 validateItemExists(updateReqVO.getItemId()); - // 3. 校验BOM物料存在 + // 1.3 校验BOM物料存在 validateItemExists(updateReqVO.getBomItemId()); - // 4. 校验不能自引用 + // 1.4 校验不能自引用 if (updateReqVO.getItemId().equals(updateReqVO.getBomItemId())) { throw exception(MD_PRODUCT_BOM_SELF_REFERENCE); } @@ -93,7 +92,6 @@ public class MesMdProductBomServiceImpl implements MesMdProductBomService { } } - // TODO @AI:看看有没 hutool 工具类里,有没 dfs 检测的? /** * 检测新增边 (itemId -> bomItemId) 后,BOM 图是否存在闭环 * @@ -102,16 +100,14 @@ public class MesMdProductBomServiceImpl implements MesMdProductBomService { * @return 是否存在闭环 */ private boolean hasCycle(Long itemId, Long bomItemId) { - // 获取所有已有的 BOM 记录 + // 1.1 获取所有已有的 BOM 记录 List allBoms = productBomMapper.selectAll(); - // 构建邻接表:parent -> Set - Map> graph = new HashMap<>(); - for (MesMdProductBomDO bom : allBoms) { - graph.computeIfAbsent(bom.getItemId(), k -> new HashSet<>()).add(bom.getBomItemId()); - } - // 添加待新增的边 + // 1.2 构建邻接表:parent -> Set + Map> graph = convertMultiMap2(allBoms, + MesMdProductBomDO::getItemId, MesMdProductBomDO::getBomItemId); + // 1.3 添加待新增的边 graph.computeIfAbsent(itemId, k -> new HashSet<>()).add(bomItemId); - // DFS 检测环 + // 2. DFS 检测环 Set visited = new HashSet<>(); Set inStack = new HashSet<>(); for (Long node : graph.keySet()) { @@ -122,6 +118,7 @@ public class MesMdProductBomServiceImpl implements MesMdProductBomService { return false; } + // DONE @AI:dfs 为 BOM 环检测的私有方法,属于业务逻辑,保留在 ServiceImpl 中 private boolean dfs(Long node, Map> graph, Set visited, Set inStack) { if (inStack.contains(node)) { return true; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductSipServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductSipServiceImpl.java index 07bb982..97e206e 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductSipServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductSipServiceImpl.java @@ -30,7 +30,7 @@ public class MesMdProductSipServiceImpl implements MesMdProductSipService { @Override public Long createProductSip(MesMdProductSipSaveReqVO createReqVO) { // 校验排列顺序的唯一性 - validateOrderNumUnique(createReqVO.getItemId(), createReqVO.getOrderNum(), null); + validateOrderNumberUnique(createReqVO.getItemId(), createReqVO.getOrderNumber(), null); // 插入 MesMdProductSipDO sip = BeanUtils.toBean(createReqVO, MesMdProductSipDO.class); @@ -43,7 +43,7 @@ public class MesMdProductSipServiceImpl implements MesMdProductSipService { // 校验存在 validateProductSipExists(updateReqVO.getId()); // 校验排列顺序的唯一性 - validateOrderNumUnique(updateReqVO.getItemId(), updateReqVO.getOrderNum(), updateReqVO.getId()); + validateOrderNumberUnique(updateReqVO.getItemId(), updateReqVO.getOrderNumber(), updateReqVO.getId()); // 更新 MesMdProductSipDO updateObj = BeanUtils.toBean(updateReqVO, MesMdProductSipDO.class); @@ -64,10 +64,10 @@ public class MesMdProductSipServiceImpl implements MesMdProductSipService { } } - private void validateOrderNumUnique(Long itemId, Integer orderNum, Long excludeId) { - Long count = productSipMapper.selectCountByItemIdAndOrderNum(itemId, orderNum, excludeId); + private void validateOrderNumberUnique(Long itemId, Integer orderNumber, Long excludeId) { + Long count = productSipMapper.selectCountByItemIdAndOrderNumber(itemId, orderNumber, excludeId); if (count > 0) { - throw exception(MD_PRODUCT_SIP_ORDER_NUM_DUPLICATE); + throw exception(MD_PRODUCT_SIP_ORDER_NUMBER_DUPLICATE); } } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductSopServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductSopServiceImpl.java index 0b0151f..cf6ce52 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductSopServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductSopServiceImpl.java @@ -30,7 +30,7 @@ public class MesMdProductSopServiceImpl implements MesMdProductSopService { @Override public Long createProductSop(MesMdProductSopSaveReqVO createReqVO) { // 校验排列顺序的唯一性 - validateOrderNumUnique(createReqVO.getItemId(), createReqVO.getOrderNum(), null); + validateOrderNumberUnique(createReqVO.getItemId(), createReqVO.getOrderNumber(), null); // 插入 MesMdProductSopDO sop = BeanUtils.toBean(createReqVO, MesMdProductSopDO.class); @@ -43,7 +43,7 @@ public class MesMdProductSopServiceImpl implements MesMdProductSopService { // 校验存在 validateProductSopExists(updateReqVO.getId()); // 校验排列顺序的唯一性 - validateOrderNumUnique(updateReqVO.getItemId(), updateReqVO.getOrderNum(), updateReqVO.getId()); + validateOrderNumberUnique(updateReqVO.getItemId(), updateReqVO.getOrderNumber(), updateReqVO.getId()); // 更新 MesMdProductSopDO updateObj = BeanUtils.toBean(updateReqVO, MesMdProductSopDO.class); @@ -64,10 +64,10 @@ public class MesMdProductSopServiceImpl implements MesMdProductSopService { } } - private void validateOrderNumUnique(Long itemId, Integer orderNum, Long excludeId) { - Long count = productSopMapper.selectCountByItemIdAndOrderNum(itemId, orderNum, excludeId); + private void validateOrderNumberUnique(Long itemId, Integer orderNumber, Long excludeId) { + Long count = productSopMapper.selectCountByItemIdAndOrderNumber(itemId, orderNumber, excludeId); if (count > 0) { - throw exception(MD_PRODUCT_SOP_ORDER_NUM_DUPLICATE); + throw exception(MD_PRODUCT_SOP_ORDER_NUMBER_DUPLICATE); } } -- libgit2 0.21.4