From f7273277023f3497ac071bf98f556a569cb4dd25 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 17 九月 2026 16:24:10 +0800
Subject: [PATCH] feat(mes): 重构袋码生成与物料分类功能
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java | 27 ++++++++++++++++++---------
1 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java
index fcefee0..012ba93 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java
@@ -37,7 +37,7 @@
*
* 鏀寔 MES 鍜� MDM 鐗╂枡鏁版嵁鍙屽悜鍚屾
*
- * @author 鑺嬮亾婧愮爜
+ * @author 瓒呯骇绠$悊鍛�
*/
@Service
@Validated
@@ -80,11 +80,19 @@
updateItem(createReqVO);
return createReqVO.getId();
}
+ // 瀛樺湪閫昏緫鍒犻櫎璁板綍锛堝彇娑堝悓姝ュ悗閲嶆柊鍚屾锛夛細鎭㈠璇ヨ褰曞悗璧版洿鏂帮紝閬垮厤涓婚敭鍐茬獊
+ if (itemMapper.selectAnyById(createReqVO.getId()) != null) {
+ itemMapper.restoreById(createReqVO.getId());
+ updateItem(createReqVO);
+ return createReqVO.getId();
+ }
}
// 鎻掑叆
MesMdItemDO item = BeanUtils.toBean(createReqVO, MesMdItemDO.class);
- item.setStatus(CommonStatusEnum.DISABLE.getStatus()); // 榛樿绂佺敤銆備俊鎭畬鎴愬悗锛屽啀鍚敤
+ // 鐘舵�佸彧鑳界敱鍩虹鏁版嵁锛圡DM锛夋帶鍒讹細MDM 鍚屾鏃舵部鐢ㄥ叾鐘舵�侊紱MES 鏈湴鏂板榛樿绂佺敤
+ item.setStatus(createReqVO.getMdmItemId() != null && createReqVO.getStatus() != null
+ ? createReqVO.getStatus() : CommonStatusEnum.DISABLE.getStatus());
clearStockIfNotSafe(item); // 濡傛灉鏈惎鐢ㄥ畨鍏ㄥ簱瀛橈紝娓呴浂搴撳瓨涓婁笅闄�
itemMapper.insert(item);
@@ -111,6 +119,10 @@
// 鏇存柊
MesMdItemDO updateObj = BeanUtils.toBean(updateReqVO, MesMdItemDO.class);
clearStockIfNotSafe(updateObj); // 濡傛灉鏈惎鐢ㄥ畨鍏ㄥ簱瀛橈紝娓呴浂搴撳瓨涓婁笅闄�
+ // 鐘舵�佸彧鑳界敱鍩虹鏁版嵁锛圡DM锛夋帶鍒讹紝MES 鏈湴鏇存柊涓嶅厑璁镐慨鏀圭姸鎬�
+ if (updateReqVO.getMdmItemId() == null) {
+ updateObj.setStatus(null);
+ }
itemMapper.updateById(updateObj);
// 鍚屾鍒� MDM锛堝嬀閫� syncMdm 鏃讹級
@@ -125,8 +137,10 @@
validateItemCodeUnique(reqVO.getId(), reqVO.getCode());
// 鏍¢獙鐗╂枡鍚嶇О鐨勫敮涓�鎬�
validateItemNameUnique(reqVO.getId(), reqVO.getName());
- // 鏍¢獙鐗╂枡鍒嗙被瀛樺湪
- validateItemTypeExists(reqVO.getItemTypeId());
+ // 鏍¢獙鐗╂枡鍒嗙被瀛樺湪锛圡DM 鍝佺鍚屾涓嶄紶鍒嗙被锛屽厑璁镐负绌猴級
+ if (reqVO.getItemTypeId() != null) {
+ validateItemTypeExists(reqVO.getItemTypeId());
+ }
// 鏍¢獙璁¢噺鍗曚綅瀛樺湪
validateUnitMeasureExists(reqVO.getUnitMeasureId());
}
@@ -212,11 +226,6 @@
private void validateItemTypeExists(Long itemTypeId) {
if (itemTypeService.getItemType(itemTypeId) == null) {
throw exception(MD_ITEM_TYPE_NOT_EXISTS);
- }
- // 鏍¢獙蹇呴』鏄彾瀛愬垎绫伙紙娌℃湁瀛愬垎绫伙級
- List<MesMdItemTypeDO> children = itemTypeService.getItemTypeChildrenList(itemTypeId);
- if (CollUtil.isNotEmpty(children)) {
- throw exception(MD_ITEM_TYPE_NOT_LEAF);
}
}
--
Gitblit v1.9.3