From 3a83be3db09481c3719e6b86bc6265bcd431422a Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期四, 05 十一月 2026 11:48:13 +0800
Subject: [PATCH] 修复检验委托书字段绑定错误

---
 cnas-process/src/main/java/com/ruoyi/process/listener/NewJuOrderInspectionListener.java |   50 ++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 40 insertions(+), 10 deletions(-)

diff --git a/cnas-process/src/main/java/com/ruoyi/process/listener/NewJuOrderInspectionListener.java b/cnas-process/src/main/java/com/ruoyi/process/listener/NewJuOrderInspectionListener.java
index e9eb88c..42ecc72 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/listener/NewJuOrderInspectionListener.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/listener/NewJuOrderInspectionListener.java
@@ -1,6 +1,10 @@
 package com.ruoyi.process.listener;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.basic.mapper.StandardMethodMapper;
+import com.ruoyi.basic.mapper.StandardTreeMapper;
+import com.ruoyi.basic.pojo.StandardMethod;
+import com.ruoyi.basic.pojo.StandardTree;
 import com.ruoyi.inspect.event.NewJuOrderPlacedEvent;
 import com.ruoyi.inspect.mapper.InsOrderStandardTemplateMapper;
 import com.ruoyi.inspect.mapper.InsSampleMapper;
@@ -33,6 +37,8 @@
     private final InspectionOrderDetailMapper inspectionOrderDetailMapper;
     private final InsSampleMapper insSampleMapper;
     private final InsOrderStandardTemplateMapper insOrderStandardTemplateMapper;
+    private final StandardTreeMapper standardTreeMapper;
+    private final StandardMethodMapper standardMethodMapper;
 
     @EventListener
     public void onNewJuOrderPlaced(NewJuOrderPlacedEvent event) {
@@ -67,11 +73,11 @@
                 ? order.getSampleView() : order.getSample());
         inspectionOrder.setProduction(order.getProduction());
         inspectionOrder.setQuantity(order.getTestQuantity());
-        inspectionOrder.setCommissionDate(LocalDate.now());
+        inspectionOrder.setCommissionDate(order.getSampleDate() != null ? order.getSampleDate() : LocalDate.now());
         inspectionOrder.setCommissionUnit(order.getCompany());
         inspectionOrder.setCommissionUser(order.getPrepareUser());
         inspectionOrder.setCommissionPhone(order.getPhone());
-        inspectionOrder.setSampleStatus("瀹屽ソ");
+        inspectionOrder.setSampleStatus(order.getSampleStatus());
         // 鏄惁鐣欐牱璇箟杞崲锛歩ns 0鍚�/1鏄� -> cnas 1鏄�/2鍚�
         inspectionOrder.setIsLeave(Integer.valueOf(1).equals(order.getIsLeave()) ? 1 : 2);
         // 鏍峰搧澶勭疆锛�1濮旀墭鏂瑰彇鍥�/2妫�娴嬫柟澶勭疆 -> processing 0濮旀墭鍗曚綅鍙栧洖/1瀹為獙瀹ゅ鐞嗭紱鏈�夋椂娌跨敤鏃у瓧娈�
@@ -102,7 +108,7 @@
         detail.setSampleName(inspectionOrder.getSampleName());
         detail.setQuantity(order.getTestQuantity());
         detail.setSampleStatus(inspectionOrder.getSampleStatus());
-        detail.setTestStandard(order.getSample());
+        detail.setRemark(order.getRemark());
 
         List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
                 .eq(InsSample::getInsOrderId, order.getId())
@@ -110,15 +116,39 @@
         if (!samples.isEmpty()) {
             detail.setSampleNumber(samples.get(0).getSampleCode());
         }
-        String testItem = insOrderStandardTemplateMapper.selectList(
-                        Wrappers.<InsOrderStandardTemplate>lambdaQuery()
-                                .eq(InsOrderStandardTemplate::getInsOrderId, order.getId())
-                                .orderByAsc(InsOrderStandardTemplate::getSort, InsOrderStandardTemplate::getId))
-                .stream()
+        List<InsOrderStandardTemplate> templates = insOrderStandardTemplateMapper.selectList(
+                Wrappers.<InsOrderStandardTemplate>lambdaQuery()
+                        .eq(InsOrderStandardTemplate::getInsOrderId, order.getId())
+                        .orderByAsc(InsOrderStandardTemplate::getSort, InsOrderStandardTemplate::getId));
+        detail.setTestStandard(resolveTestStandard(order, templates));
+        detail.setTestItem(templates.stream()
                 .map(InsOrderStandardTemplate::getName)
                 .filter(StringUtils::isNotBlank)
-                .collect(Collectors.joining("銆�"));
-        detail.setTestItem(testItem);
+                .collect(Collectors.joining("銆�")));
         inspectionOrderDetailMapper.insert(detail);
     }
+
+    /**
+     * 妫�娴嬩緷鎹樉绀衡�滄爣鍑嗗彿+鏍囧噯鍚嶇О鈥濓紝浼樺厛鍙栨爣鍑嗘柟娉曪紝鍙栦笉鍒版椂鍥為��鍒版ā鏉垮揩鐓х紪鍙枫��
+     */
+    private String resolveTestStandard(InsOrder order, List<InsOrderStandardTemplate> templates) {
+        if (order.getStandardTreeId() != null) {
+            StandardTree tree = standardTreeMapper.selectById(order.getStandardTreeId());
+            if (tree != null && tree.getStandardMethodId() != null) {
+                StandardMethod method = standardMethodMapper.selectById(tree.getStandardMethodId());
+                if (method != null) {
+                    String combined = (StringUtils.trimToEmpty(method.getCode()) + " "
+                            + StringUtils.trimToEmpty(method.getName())).trim();
+                    if (StringUtils.isNotBlank(combined)) {
+                        return combined;
+                    }
+                }
+            }
+        }
+        return templates.stream()
+                .map(InsOrderStandardTemplate::getNumber)
+                .filter(StringUtils::isNotBlank)
+                .distinct()
+                .collect(Collectors.joining("銆�"));
+    }
 }

--
Gitblit v1.9.3