From 05ab6e3f69a5e73624b2573db043f5923e8f7d8b Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期四, 05 十一月 2026 14:17:19 +0800
Subject: [PATCH] fix 修复bug
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java | 64 +++++++++++++++++++++++++------
1 files changed, 51 insertions(+), 13 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java
index f88d950..a7459be 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/route/MesProRouteProcessServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.mes.controller.admin.pro.route.vo.process.MesProProcessOutputItemVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.route.vo.process.MesProRouteProcessSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProcessDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.route.MesProRouteProductBomDO;
@@ -14,9 +15,11 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -63,12 +66,8 @@
// 2. 鎻掑叆
MesProRouteProcessDO routeProcess = BeanUtils.toBean(createReqVO, MesProRouteProcessDO.class);
- if (CollUtil.isNotEmpty(createReqVO.getOutputItemIds())) {
- routeProcess.setOutputItemId(
- createReqVO.getOutputItemIds().stream()
- .map(String::valueOf)
- .collect(Collectors.joining(",")));
- }
+ // 浜у嚭閰嶇疆锛堝惈褰掑睘浜у搧锛夊簭鍒楀寲涓� JSON 瀛樺叆 output_item_id锛涘吋瀹规棫鐨� outputItemIds 骞抽摵鏍煎紡
+ routeProcess.setOutputItemId(serializeOutputs(createReqVO.getOutputs(), createReqVO.getOutputItemIds()));
routeProcessMapper.insert(routeProcess);
// 3. 鏇存柊宸ュ簭閾�
@@ -81,8 +80,14 @@
public void updateRouteProcess(MesProRouteProcessSaveReqVO updateReqVO) {
// 1.0 宸插惎鐢ㄧ殑宸ヨ壓璺嚎锛屼笉鍏佽鎿嶄綔
routeService.validateRouteNotEnable(updateReqVO.getRouteId());
- // 1.1 鏍¢獙瀛樺湪
- validateRouteProcessExists(updateReqVO.getId());
+ // 1.1 鏍¢獙瀛樺湪锛涢儴鍒嗘洿鏂帮紙濡備粎璋冩暣浜у嚭浜у搧锛夋椂鏈紶鐨勫繀濉瓧娈电敤鐜版湁鍊煎洖濉�
+ MesProRouteProcessDO existing = validateRouteProcessExists(updateReqVO.getId());
+ if (updateReqVO.getProcessId() == null) {
+ updateReqVO.setProcessId(existing.getProcessId());
+ }
+ if (updateReqVO.getSort() == null) {
+ updateReqVO.setSort(existing.getSort());
+ }
// 1.2 鏍¢獙宸ヨ壓璺嚎銆佸伐搴忓瓨鍦�
validateRouteAndProcessExists(updateReqVO.getRouteId(), updateReqVO.getProcessId());
// 1.3 鏍¢獙鍞竴鎬�
@@ -92,11 +97,10 @@
// 2. 鏇存柊
MesProRouteProcessDO updateObj = BeanUtils.toBean(updateReqVO, MesProRouteProcessDO.class);
- if (CollUtil.isNotEmpty(updateReqVO.getOutputItemIds())) {
- updateObj.setOutputItemId(
- updateReqVO.getOutputItemIds().stream()
- .map(String::valueOf)
- .collect(Collectors.joining(",")));
+ // 浜у嚭閰嶇疆锛氬彧瑕佸墠绔樉寮忎紶浜� outputs / outputItemIds 灏辫鐩栵紙浼犵┖鏁扮粍琛ㄧず娓呯┖锛�
+ if (updateReqVO.getOutputs() != null || updateReqVO.getOutputItemIds() != null) {
+ String serialized = serializeOutputs(updateReqVO.getOutputs(), updateReqVO.getOutputItemIds());
+ updateObj.setOutputItemId(serialized == null ? "" : serialized);
}
routeProcessMapper.updateById(updateObj);
@@ -239,4 +243,38 @@
routeProcessMapper.deleteByRouteId(routeId);
}
+ /**
+ * 浜у嚭閰嶇疆搴忓垪鍖栧埌 output_item_id 瀛楁锛圝SON 鏁扮粍锛�
+ * 鏍煎紡锛歔{"itemId":231,"productId":231}]
+ */
+ private String serializeOutputs(List<MesProProcessOutputItemVO> outputs, List<Long> outputItemIds) {
+ List<Map<String, Object>> list = new ArrayList<>();
+ if (CollUtil.isNotEmpty(outputs)) {
+ for (MesProProcessOutputItemVO vo : outputs) {
+ if (vo == null || vo.getItemId() == null) {
+ continue;
+ }
+ Map<String, Object> m = new LinkedHashMap<>();
+ m.put("itemId", vo.getItemId());
+ if (vo.getProductId() != null) {
+ m.put("productId", vo.getProductId());
+ }
+ list.add(m);
+ }
+ } else if (CollUtil.isNotEmpty(outputItemIds)) {
+ for (Long id : outputItemIds) {
+ if (id == null) {
+ continue;
+ }
+ Map<String, Object> m = new LinkedHashMap<>();
+ m.put("itemId", id);
+ list.add(m);
+ }
+ }
+ if (list.isEmpty()) {
+ return null;
+ }
+ return cn.hutool.json.JSONUtil.toJsonStr(list);
+ }
+
}
--
Gitblit v1.9.3