From cdf5605fb5caa0da0f134893bac350785250ea8a Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期四, 27 八月 2026 11:21:19 +0800
Subject: [PATCH] feat(mes): 基础参数与工序绑定,报工填写绑定的参数字段

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImpl.java |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImpl.java
index 3d3022f..a7617dc 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackServiceImpl.java
@@ -29,6 +29,7 @@
 import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderBomService;
 import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderProcessService;
 import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
+import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderParamRecordService;
 import cn.iocoder.yudao.module.mes.service.wm.itemconsume.MesWmItemConsumeService;
 import cn.iocoder.yudao.module.mes.service.wm.productproduce.MesWmProductProduceLineService;
 import cn.iocoder.yudao.module.mes.service.wm.productproduce.MesWmProductProduceService;
@@ -72,6 +73,9 @@
     @Resource
     private MesProWorkOrderService workOrderService;
     @Resource
+    @Lazy
+    private MesProWorkOrderParamRecordService paramRecordService;
+    @Resource
     private MesProRouteProcessService routeProcessService;
     @Resource
     private MesProWorkOrderBomService workOrderBomService;
@@ -100,6 +104,7 @@
     private cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi processInstanceApi;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Long createFeedback(MesProFeedbackSaveReqVO createReqVO) {
         // 1. 鏍¢獙
         MesProTaskDO task = validateFeedbackData(createReqVO);
@@ -109,10 +114,13 @@
                 .setStatus(MesProFeedbackStatusEnum.PREPARE.getStatus())
                 .setItemId(task.getItemId());
         feedbackMapper.insert(feedback);
+        // 3. 淇濆瓨鍙傛暟鍊硷紱蹇呭~鍙傛暟鏍¢獙澶辫触鏃舵暣浣撳洖婊氾紝閬垮厤娈嬬暀鑽夌
+        saveParamValues(task.getId(), createReqVO.getParamValues());
         return feedback.getId();
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void updateFeedback(MesProFeedbackSaveReqVO updateReqVO) {
         // 1.1 鏍¢獙瀛樺湪 + 鑽夌鐘舵��
         validateFeedbackStatusPrepare(updateReqVO.getId());
@@ -123,6 +131,19 @@
         MesProFeedbackDO updateObj = BeanUtils.toBean(updateReqVO, MesProFeedbackDO.class)
                 .setItemId(task.getItemId());
         feedbackMapper.updateById(updateObj);
+        // 3. 淇濆瓨鍙傛暟鍊硷紱蹇呭~鍙傛暟鏍¢獙澶辫触鏃舵暣浣撳洖婊�
+        saveParamValues(task.getId(), updateReqVO.getParamValues());
+    }
+
+    private void saveParamValues(Long taskId, List<MesProFeedbackSaveReqVO.ParamValue> paramValues) {
+        // 鍗充娇鍙傛暟涓虹┖涔熻皟鐢ㄦ洿鏂帮紝浠ヤ究瑙﹀彂蹇呭~鍙傛暟鏍¢獙锛堜换鍔$粦瀹氫簡鍙傛暟鏃跺繀椤诲~鍐欙級
+        if (CollUtil.isEmpty(paramValues)) {
+            paramRecordService.updateTaskParamValues(taskId, null, null);
+            return;
+        }
+        paramRecordService.updateTaskParamValues(taskId,
+                paramValues.stream().map(MesProFeedbackSaveReqVO.ParamValue::getDetailId).toList(),
+                paramValues.stream().map(MesProFeedbackSaveReqVO.ParamValue::getValue).toList());
     }
 
     @Override
@@ -509,6 +530,7 @@
                 .setStatus(MesProFeedbackStatusEnum.APPROVING.getStatus())
                 .setRemark(reqVO.getRemark());
         feedbackMapper.insert(feedback);
+        saveParamValues(task.getId(), reqVO.getParamValues());
         // 5. 杩斿洖缁撴灉
         MesProWorkOrderDO workOrder = workOrderService.getWorkOrder(task.getWorkOrderId());
         return new MesProFeedbackQuickCreateRespVO()

--
Gitblit v1.9.3