From 5a90ac8955f198f21954a3dca0443d1c5892bf0b Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期二, 03 十一月 2026 18:08:29 +0800
Subject: [PATCH] 成品下单批量下单接口与检验委托单批次合并(batch_no),含数据库加列脚本

---
 cnas-process/src/main/java/com/ruoyi/process/listener/NewJuOrderInspectionListener.java |   43 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 43 insertions(+), 0 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 c93886d..e9eb88c 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
@@ -2,16 +2,24 @@
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.inspect.event.NewJuOrderPlacedEvent;
+import com.ruoyi.inspect.mapper.InsOrderStandardTemplateMapper;
+import com.ruoyi.inspect.mapper.InsSampleMapper;
 import com.ruoyi.inspect.pojo.InsOrder;
+import com.ruoyi.inspect.pojo.InsOrderStandardTemplate;
+import com.ruoyi.inspect.pojo.InsSample;
 import com.ruoyi.inspect.service.InsOrderService;
+import com.ruoyi.process.mapper.InspectionOrderDetailMapper;
 import com.ruoyi.process.mapper.InspectionOrderMapper;
 import com.ruoyi.process.pojo.InspectionOrder;
+import com.ruoyi.process.pojo.InspectionOrderDetail;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.context.event.EventListener;
 import org.springframework.stereotype.Component;
 
 import java.time.LocalDate;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 鏂拌仛鎴愬搧涓嬪崟鎴愬姛鍚庯紝鑷姩鐢熸垚涓�鏉℃楠屽鎵樺崟銆�
@@ -22,6 +30,9 @@
 
     private final InsOrderService insOrderService;
     private final InspectionOrderMapper inspectionOrderMapper;
+    private final InspectionOrderDetailMapper inspectionOrderDetailMapper;
+    private final InsSampleMapper insSampleMapper;
+    private final InsOrderStandardTemplateMapper insOrderStandardTemplateMapper;
 
     @EventListener
     public void onNewJuOrderPlaced(NewJuOrderPlacedEvent event) {
@@ -34,6 +45,7 @@
                 .eq(InspectionOrder::getInsOrderId, order.getId()).last("limit 1"));
         if (existingOrder != null) {
             existingOrder.setEntrustCode(order.getEntrustCode());
+            existingOrder.setBatchNo(order.getBatchNo());
             existingOrder.setSampleName(StringUtils.isNotBlank(order.getSampleView()) ? order.getSampleView() : order.getSample());
             existingOrder.setProduction(order.getProduction());
             existingOrder.setQuantity(order.getTestQuantity());
@@ -49,6 +61,7 @@
         InspectionOrder inspectionOrder = new InspectionOrder();
         inspectionOrder.setInsOrderId(order.getId());
         inspectionOrder.setEntrustCode(order.getEntrustCode());
+        inspectionOrder.setBatchNo(order.getBatchNo());
         // 璇曟牱鍚嶇О浼樺厛鍙栨姤鍛婂睍绀哄瓧娈�
         inspectionOrder.setSampleName(StringUtils.isNotBlank(order.getSampleView())
                 ? order.getSampleView() : order.getSample());
@@ -77,5 +90,35 @@
         }
         // 鎶ュ憡鏂囦欢涓庣害瀹氭椂闂寸敓鎴愭椂涓虹┖锛屽悗缁湪妫�楠屽鎵樺崟椤甸潰缂栬緫/涓婁紶
         inspectionOrderMapper.insert(inspectionOrder);
+        createDetailRow(inspectionOrder, order);
+    }
+
+    /**
+     * 涓嬪崟鍗崇敓鎴愪竴琛屾牱鍝佹槑缁嗭紝鎵归噺涓嬪崟鍚庢暣鎵规牱鍝佺洿鎺ユ眹鎬诲湪鍚屼竴寮犲鎵樹功閲屻��
+     */
+    private void createDetailRow(InspectionOrder inspectionOrder, InsOrder order) {
+        InspectionOrderDetail detail = new InspectionOrderDetail();
+        detail.setInspectionOrderId(inspectionOrder.getInspectionOrderId());
+        detail.setSampleName(inspectionOrder.getSampleName());
+        detail.setQuantity(order.getTestQuantity());
+        detail.setSampleStatus(inspectionOrder.getSampleStatus());
+        detail.setTestStandard(order.getSample());
+
+        List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
+                .eq(InsSample::getInsOrderId, order.getId())
+                .orderByAsc(InsSample::getId));
+        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()
+                .map(InsOrderStandardTemplate::getName)
+                .filter(StringUtils::isNotBlank)
+                .collect(Collectors.joining("銆�"));
+        detail.setTestItem(testItem);
+        inspectionOrderDetailMapper.insert(detail);
     }
 }

--
Gitblit v1.9.3