From 7a68b122a67ab525a80c98ddc866a5d990c3cf91 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 16 Feb 2026 17:46:46 +0800 Subject: [PATCH] refactor(mes): 重构产品 SIP/SOP/BOM 模块,统一字段命名与代码风格 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/MesMdProductBomController.java | 8 ++++---- 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 | 2 +- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/item/MesMdProductSipDO.java | 2 +- 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/enums/ErrorCodeConstants.java | 4 ++-- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdProductBomServiceImpl.java | 5 ++--- 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 +++++----- 13 files changed, 32 insertions(+), 33 deletions(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/MesMdProductBomController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/MesMdProductBomController.java index fc09974..3b4c445 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/MesMdProductBomController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/MesMdProductBomController.java @@ -108,16 +108,16 @@ public class MesMdProductBomController { if (CollUtil.isEmpty(list)) { return Collections.emptyList(); } - // 1. 批量获取 BOM 物料信息 + // 1.1 批量获取 BOM 物料信息 Map itemMap = itemService.getItemMap( convertSet(list, MesMdProductBomDO::getBomItemId)); - // 2. 批量获取计量单位信息 + // 1.2 批量获取计量单位信息 Map unitMeasureMap = unitMeasureService.getUnitMeasureMap( convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); - // 3. 批量获取物料分类信息(用于 itemOrProduct) + // 1.3 批量获取物料分类信息(用于 itemOrProduct) Map itemTypeMap = itemTypeService.getItemTypeMap( convertSet(itemMap.values(), MesMdItemDO::getItemTypeId)); - // 4. 拼接 VO + // 2. 拼接 VO return BeanUtils.toBean(list, MesMdProductBomRespVO.class, vo -> { MapUtils.findAndThen(itemMap, vo.getBomItemId(), item -> { vo.setBomItemCode(item.getCode()); 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 3e19b39..746b3e6 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 orderNumber; + private Integer sort; @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 d7121c6..c8d9148 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 orderNumber; + private Integer sort; @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 a58850c..1a878bc 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 orderNumber; + private Integer sort; @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 323eed8..4e79076 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 @@ -18,7 +18,7 @@ public class MesMdProductSopSaveReqVO { @Schema(description = "排列顺序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "排列顺序不能为空") - private Integer orderNumber; + private Integer sort; @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 ec94047..77ee6ec 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,7 +35,7 @@ public class MesMdProductSipDO extends BaseDO { /** * 排列顺序 */ - private Integer orderNumber; + private Integer sort; /** * 工序编号 */ 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 18c1729..5ddadf2 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 orderNumber; + private Integer sort; /** * 工序编号 */ 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 26f87ac..aee9cd7 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::getOrderNumber)); + .orderByAsc(MesMdProductSipDO::getSort)); } default List selectByItemId(Long itemId) { return selectList(new LambdaQueryWrapperX() .eq(MesMdProductSipDO::getItemId, itemId) - .orderByAsc(MesMdProductSipDO::getOrderNumber)); + .orderByAsc(MesMdProductSipDO::getSort)); } - default Long selectCountByItemIdAndOrderNumber(Long itemId, Integer orderNumber, Long excludeId) { + default Long selectCountByItemIdAndSort(Long itemId, Integer sort, Long excludeId) { return selectCount(new LambdaQueryWrapperX() .eq(MesMdProductSipDO::getItemId, itemId) - .eq(MesMdProductSipDO::getOrderNumber, orderNumber) + .eq(MesMdProductSipDO::getSort, sort) .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 bdb0711..f5f97fd 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::getOrderNumber)); + .orderByAsc(MesMdProductSopDO::getSort)); } default List selectByItemId(Long itemId) { return selectList(new LambdaQueryWrapperX() .eq(MesMdProductSopDO::getItemId, itemId) - .orderByAsc(MesMdProductSopDO::getOrderNumber)); + .orderByAsc(MesMdProductSopDO::getSort)); } - default Long selectCountByItemIdAndOrderNumber(Long itemId, Integer orderNumber, Long excludeId) { + default Long selectCountByItemIdAndSort(Long itemId, Integer sort, Long excludeId) { return selectCount(new LambdaQueryWrapperX() .eq(MesMdProductSopDO::getItemId, itemId) - .eq(MesMdProductSopDO::getOrderNumber, orderNumber) + .eq(MesMdProductSopDO::getSort, sort) .neIfPresent(MesMdProductSopDO::getId, excludeId)); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java index bff12b1..4c2bdac 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java @@ -75,11 +75,11 @@ public interface ErrorCodeConstants { // ========== MES 基础数据-产品SOP(1-040-108-000) ========== ErrorCode MD_PRODUCT_SOP_NOT_EXISTS = new ErrorCode(1_040_108_000, "产品SOP不存在"); - ErrorCode MD_PRODUCT_SOP_ORDER_NUMBER_DUPLICATE = new ErrorCode(1_040_108_001, "该展示序号已存在"); + ErrorCode MD_PRODUCT_SOP_SORT_DUPLICATE = new ErrorCode(1_040_108_001, "该展示序号已存在"); // ========== MES 基础数据-产品SIP(1-040-109-000) ========== ErrorCode MD_PRODUCT_SIP_NOT_EXISTS = new ErrorCode(1_040_109_000, "产品SIP不存在"); - ErrorCode MD_PRODUCT_SIP_ORDER_NUMBER_DUPLICATE = new ErrorCode(1_040_109_001, "该展示序号已存在"); + ErrorCode MD_PRODUCT_SIP_SORT_DUPLICATE = new ErrorCode(1_040_109_001, "该展示序号已存在"); // ========== MES 日历排班-班次(1-040-200-000) ========== ErrorCode CAL_SHIFT_NOT_EXISTS = new ErrorCode(1_040_200_000, "班次不存在"); 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 f69410e..80ae5c7 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 @@ -45,7 +45,7 @@ public class MesMdProductBomServiceImpl implements MesMdProductBomService { throw exception(MD_PRODUCT_BOM_SELF_REFERENCE); } // 1.4 校验不能形成闭环 - if (hasCycle(createReqVO.getItemId(), createReqVO.getBomItemId())) { + if (hasBomCycle(createReqVO.getItemId(), createReqVO.getBomItemId())) { throw exception(MD_PRODUCT_BOM_CIRCULAR); } @@ -93,7 +93,6 @@ public class MesMdProductBomServiceImpl implements MesMdProductBomService { } } - // TODO @AI:hasXXXCycle 这样? /** * 检测新增边 (itemId -> bomItemId) 后,BOM 图是否存在闭环 * @@ -101,7 +100,7 @@ public class MesMdProductBomServiceImpl implements MesMdProductBomService { * @param bomItemId BOM子物料编号 * @return 是否存在闭环 */ - private boolean hasCycle(Long itemId, Long bomItemId) { + private boolean hasBomCycle(Long itemId, Long bomItemId) { // 1.1 获取所有已有的 BOM 记录 List allBoms = productBomMapper.selectAll(); // 1.2 构建邻接表:parent -> Set 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 97e206e..ec8e8a7 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) { // 校验排列顺序的唯一性 - validateOrderNumberUnique(createReqVO.getItemId(), createReqVO.getOrderNumber(), null); + validateSortUnique(createReqVO.getItemId(), createReqVO.getSort(), null); // 插入 MesMdProductSipDO sip = BeanUtils.toBean(createReqVO, MesMdProductSipDO.class); @@ -43,7 +43,7 @@ public class MesMdProductSipServiceImpl implements MesMdProductSipService { // 校验存在 validateProductSipExists(updateReqVO.getId()); // 校验排列顺序的唯一性 - validateOrderNumberUnique(updateReqVO.getItemId(), updateReqVO.getOrderNumber(), updateReqVO.getId()); + validateSortUnique(updateReqVO.getItemId(), updateReqVO.getSort(), updateReqVO.getId()); // 更新 MesMdProductSipDO updateObj = BeanUtils.toBean(updateReqVO, MesMdProductSipDO.class); @@ -64,10 +64,10 @@ public class MesMdProductSipServiceImpl implements MesMdProductSipService { } } - private void validateOrderNumberUnique(Long itemId, Integer orderNumber, Long excludeId) { - Long count = productSipMapper.selectCountByItemIdAndOrderNumber(itemId, orderNumber, excludeId); + private void validateSortUnique(Long itemId, Integer sort, Long excludeId) { + Long count = productSipMapper.selectCountByItemIdAndSort(itemId, sort, excludeId); if (count > 0) { - throw exception(MD_PRODUCT_SIP_ORDER_NUMBER_DUPLICATE); + throw exception(MD_PRODUCT_SIP_SORT_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 cf6ce52..3c94726 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) { // 校验排列顺序的唯一性 - validateOrderNumberUnique(createReqVO.getItemId(), createReqVO.getOrderNumber(), null); + validateSortUnique(createReqVO.getItemId(), createReqVO.getSort(), null); // 插入 MesMdProductSopDO sop = BeanUtils.toBean(createReqVO, MesMdProductSopDO.class); @@ -43,7 +43,7 @@ public class MesMdProductSopServiceImpl implements MesMdProductSopService { // 校验存在 validateProductSopExists(updateReqVO.getId()); // 校验排列顺序的唯一性 - validateOrderNumberUnique(updateReqVO.getItemId(), updateReqVO.getOrderNumber(), updateReqVO.getId()); + validateSortUnique(updateReqVO.getItemId(), updateReqVO.getSort(), updateReqVO.getId()); // 更新 MesMdProductSopDO updateObj = BeanUtils.toBean(updateReqVO, MesMdProductSopDO.class); @@ -64,10 +64,10 @@ public class MesMdProductSopServiceImpl implements MesMdProductSopService { } } - private void validateOrderNumberUnique(Long itemId, Integer orderNumber, Long excludeId) { - Long count = productSopMapper.selectCountByItemIdAndOrderNumber(itemId, orderNumber, excludeId); + private void validateSortUnique(Long itemId, Integer sort, Long excludeId) { + Long count = productSopMapper.selectCountByItemIdAndSort(itemId, sort, excludeId); if (count > 0) { - throw exception(MD_PRODUCT_SOP_ORDER_NUMBER_DUPLICATE); + throw exception(MD_PRODUCT_SOP_SORT_DUPLICATE); } } -- libgit2 0.21.4