From e418f64a7ca0d6ec76096c46a2b543dab8495119 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 14 八月 2026 10:33:51 +0800
Subject: [PATCH] refactor(mes): 调整物料状态控制逻辑
---
docs/mes_item_status_control.md | 58 +++++++++++++++++++++++++++++
yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/service/item/MdmItemServiceImpl.java | 1
yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/api/item/dto/MesMdItemSyncReqDTO.java | 3 +
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/MesMdItemController.java | 14 -------
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/MesMdItemSaveReqVO.java | 3 +
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java | 8 +++
6 files changed, 72 insertions(+), 15 deletions(-)
diff --git a/docs/mes_item_status_control.md b/docs/mes_item_status_control.md
new file mode 100644
index 0000000..fa98410
--- /dev/null
+++ b/docs/mes_item_status_control.md
@@ -0,0 +1,58 @@
+# MES 鐗╂枡鐘舵�佹帶鍒� - 鍓嶇鑱旇皟鏂规
+
+## 鍙樻洿姒傝堪
+
+- MES 妯″潡**涓嶅啀鍏佽鎺у埗鐗╂枡鐘舵��**锛岀姸鎬佸彧鑳界敱鍩虹鏁版嵁锛圡DM锛夌墿鏂欑鐞嗘帶鍒躲��
+- 绉婚櫎 MES 鎺ュ彛 `PUT /mes/md/item/update-status`銆�
+- MDM 鐗╂枡鍚屾鍒� MES 鏃朵紶閫掔姸鎬侊紙鍚敤/绂佺敤锛夛紝MES 鐗╂枡鐘舵�佽窡闅� MDM 淇濇寔鍚屾銆�
+
+## 娑夊強椤甸潰
+
+- MES 鐗╂枡鍒楄〃椤碉細`src/views/mes/md/item/index.vue`锛堢Щ闄ょ姸鎬佸紑鍏筹紝鏀逛负鍙灞曠ず锛�
+- MES 鐗╂枡鏂板/缂栬緫琛ㄥ崟锛歚src/views/mes/md/item/modules/form.vue`锛堢姸鎬佸瓧娈垫敼涓虹鐢�/鍙锛�
+- 鍩虹鏁版嵁鐗╂枡绠$悊椤碉細`src/views/basicData/mdm/index.vue`锛堢姸鎬佹帶鍒跺叆鍙o紝淇濇寔涓嶅彉锛�
+
+## API
+
+| 鏂规硶 | 璺緞 | 璇存槑 |
+|------|------|------|
+| PUT锛堝凡绉婚櫎锛� | `/mes/md/item/update-status` | MES 渚х姸鎬佹帶鍒舵帴鍙o紝宸插簾寮冿紝鍓嶇**涓嶅緱鍐嶈皟鐢�** |
+
+MDM 鐘舵�佹帶鍒舵帴鍙o紙淇濇寔涓嶅彉锛岀姸鎬佷細鍚屾鍒� MES锛夛細
+
+| 鏂规硶 | 璺緞 | 璇存槑 |
+|------|------|------|
+| POST | `/mdm/item/create` | 鍒涘缓鐗╂枡锛宻tatus 闅忓悓姝ュ甫鍏� MES |
+| PUT | `/mdm/item/update` | 鏇存柊鐗╂枡锛宻tatus 闅忓悓姝ュ甫鍏� MES |
+| PUT | `/mdm/item/update-status` | 鏇存柊鐗╂枡鐘舵�侊紝瀹炴椂鍚屾鍒� MES |
+
+## 鏁版嵁甯﹀叆璇存槑
+
+1. MDM 鍒涘缓/缂栬緫鐗╂枡鏃讹紝`status`锛�0=鍚敤锛�1=绂佺敤锛夐殢鍚屾閾捐矾甯﹀叆 MES锛孧ES 鐗╂枡鏂板缓娌跨敤 MDM 鐘舵�併��
+2. MDM 鐗╂枡鍚敤/绂佺敤锛坄update-status`锛夛紝鐘舵�佸疄鏃跺悓姝ュ埌 MES銆�
+3. MES 鏈湴鏂板鐗╂枡锛堜笉缁忚繃 MDM 鍚屾锛夐粯璁ょ姸鎬佷负**绂佺敤**锛屼笖 MES 渚ф棤娉曡嚜琛屽惎鐢紝椤诲湪 MDM 涓惎鐢ㄥ悗鍚屾鍥� MES銆�
+
+## 瀛楁灞曠ず瑙勫垯
+
+| 瀛楁 | 灞曠ず浣嶇疆 | 璇存槑 |
+|------|----------|------|
+| 鐘舵�� | MES 鐗╂枡鍒楄〃 | 鍙灞曠ず锛屾潵婧愪负 MDM 鍚屾鐘舵�侊紝涓嶅啀鎻愪緵寮�鍏冲垏鎹� |
+| 鐘舵�� | MES 鏂板/缂栬緫琛ㄥ崟 | 绂佺敤/闅愯棌锛屼笉鍏佽淇敼 |
+| 鐘舵�� | MDM 鐗╂枡鍒楄〃/琛ㄥ崟 | 鍙紪杈戯紝涓虹姸鎬佸敮涓�鎺у埗鍏ュ彛 |
+
+## 涓氬姟瑙勫垯璇存槑
+
+| 鍦烘櫙 | 瑙勫垯 |
+|------|------|
+| MDM 鍒涘缓/缂栬緫鐗╂枡 | 鐘舵�侀殢鍚屾鍒� MES锛孧ES 鐗╂枡鐘舵�佷繚鎸佷竴鑷� |
+| MDM 鍚敤/绂佺敤鐗╂枡 | 鐘舵�佸疄鏃跺悓姝ュ埌 MES |
+| MES 鏈湴鏂板鐗╂枡 | 榛樿绂佺敤锛孧ES 渚ф棤娉曞惎鐢紝椤诲湪 MDM 涓惎鐢� |
+| MES 缂栬緫鐗╂枡 | 涓嶅厑璁镐慨鏀圭姸鎬佸瓧娈� |
+| MES 鐘舵�佹帶鍒� | 涓嶅啀鎻愪緵鍚敤/绂佺敤鍏ュ彛 |
+
+## 娉ㄦ剰浜嬮」
+
+- MES 鍒楄〃椤甸渶绉婚櫎鐘舵�佸紑鍏筹紙`updateItemStatus` 鐩稿叧璋冪敤锛夛紝鐘舵�佸垪鏀逛负鍙鏂囨湰/鏍囩灞曠ず锛屾垨淇濈暀灞曠ず鍒椾絾鍘绘帀鍙垏鎹㈣兘鍔涖��
+- MES 鏂板/缂栬緫琛ㄥ崟涓殑鐘舵�佸瓧娈甸渶绂佺敤鎴栭殣钘忥紝閬垮厤璇紶瀵艰嚧鐘舵�佽淇敼銆�
+- 鍓嶇 `src/api/mes/md/item/index.ts` 涓殑 `updateItemStatus` 鍑芥暟鍙竴骞舵竻鐞嗭紙鎺ュ彛宸茬Щ闄わ級銆�
+- MDM 鍚敤鐗╂枡鏃讹紝鑻ヨ鐗╂枡鍦� MES 渚у惎鐢ㄤ簡鎵规绠$悊浣嗘湭閰嶇疆鎵规灞炴�с�佹垨涓轰骇鍝佷絾鏈厤缃� BOM锛孧ES 鍚屾鏍¢獙鍙兘鎷︽埅鍚敤鎿嶄綔锛岄渶鍏堝湪 MES 渚цˉ榻愬搴旈厤缃��
diff --git a/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/service/item/MdmItemServiceImpl.java b/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/service/item/MdmItemServiceImpl.java
index 11509cb..7154a10 100644
--- a/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/service/item/MdmItemServiceImpl.java
+++ b/yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/service/item/MdmItemServiceImpl.java
@@ -143,6 +143,7 @@
syncReqDTO.setMaxStock(reqVO.getMaxStock());
syncReqDTO.setHighValue(reqVO.getIsHighValue());
syncReqDTO.setBatchFlag(reqVO.getIsBatchManaged());
+ syncReqDTO.setStatus(reqVO.getStatus());
syncReqDTO.setRemark(reqVO.getRemark());
// 鎵规閰嶇疆瀛楁
syncReqDTO.setProduceDateFlag(reqVO.getProduceDateFlag());
diff --git a/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/api/item/dto/MesMdItemSyncReqDTO.java b/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/api/item/dto/MesMdItemSyncReqDTO.java
index 0341052..1910fb0 100644
--- a/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/api/item/dto/MesMdItemSyncReqDTO.java
+++ b/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/api/item/dto/MesMdItemSyncReqDTO.java
@@ -42,6 +42,9 @@
@Schema(description = "澶囨敞", example = "澶囨敞")
private String remark;
+ @Schema(description = "鐘舵��", example = "1")
+ private Integer status;
+
// ========== 鎵规灞炴�ч厤缃� ==========
@Schema(description = "鐢熶骇鏃ユ湡蹇呭~", example = "true")
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/MesMdItemController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/MesMdItemController.java
index 1e58218..fdad22a 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/MesMdItemController.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/MesMdItemController.java
@@ -19,7 +19,6 @@
import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
@@ -62,19 +61,6 @@
@PreAuthorize("@ss.hasPermission('mes:md-item:update')")
public CommonResult<Boolean> updateItem(@Valid @RequestBody MesMdItemSaveReqVO updateReqVO) {
itemService.updateItem(updateReqVO);
- return success(true);
- }
-
- @PutMapping("/update-status")
- @Operation(summary = "鏇存柊鐗╂枡浜у搧鐘舵��")
- @Parameters({
- @Parameter(name = "id", description = "缂栧彿", required = true),
- @Parameter(name = "status", description = "鐘舵��", required = true)
- })
- @PreAuthorize("@ss.hasPermission('mes:md-item:update')")
- public CommonResult<Boolean> updateItemStatus(@RequestParam("id") Long id,
- @RequestParam("status") Integer status) {
- itemService.updateItemStatus(id, status);
return success(true);
}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/MesMdItemSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/MesMdItemSaveReqVO.java
index e6ac294..6de4a79 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/MesMdItemSaveReqVO.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/item/vo/MesMdItemSaveReqVO.java
@@ -51,6 +51,9 @@
@Schema(description = "澶囨敞", example = "澶囨敞")
private String remark;
+ @Schema(description = "鐘舵��", example = "1")
+ private Integer status;
+
@Schema(description = "鏄惁鍚屾鍒� MDM", example = "true")
private Boolean syncMdm;
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 698e9ce..5a46e79 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
@@ -84,7 +84,9 @@
// 鎻掑叆
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 +113,10 @@
// 鏇存柊
MesMdItemDO updateObj = BeanUtils.toBean(updateReqVO, MesMdItemDO.class);
clearStockIfNotSafe(updateObj); // 濡傛灉鏈惎鐢ㄥ畨鍏ㄥ簱瀛橈紝娓呴浂搴撳瓨涓婁笅闄�
+ // 鐘舵�佸彧鑳界敱鍩虹鏁版嵁锛圡DM锛夋帶鍒讹紝MES 鏈湴鏇存柊涓嶅厑璁镐慨鏀圭姸鎬�
+ if (updateReqVO.getMdmItemId() == null) {
+ updateObj.setStatus(null);
+ }
itemMapper.updateById(updateObj);
// 鍚屾鍒� MDM锛堝嬀閫� syncMdm 鏃讹級
--
Gitblit v1.9.3