From 781c5f73033ad1ae8c350210c46b4e24925d427b Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 17 九月 2026 17:29:16 +0800
Subject: [PATCH] fix:委托编号更改

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java |   30 ++++++++++++++++++++++--------
 1 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
index be9fcb1..d7c0021 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -464,6 +464,10 @@
         if (dto == null || dto.getInsOrder() == null || dto.getStandardTreeId() == null) {
             throw new ErrorException("涓嬪崟淇℃伅鎴栨爣鍑嗕笉鑳戒负绌�");
         }
+        String sampleCode = StringUtils.trim(dto.getSampleCode());
+        if (StringUtils.isBlank(sampleCode) || sampleCode.length() < 2) {
+            throw new ErrorException("鏍峰搧缂栧彿涓嶈兘涓虹┖涓斾笉鑳藉皯浜�2浣�");
+        }
         StandardTree standard = standardTreeService.getById(dto.getStandardTreeId());
         if (standard == null || StringUtils.isBlank(standard.getSample())
                 || standard.getSampleType() != null || standard.getModel() != null) {
@@ -540,7 +544,7 @@
 
         InsSample sample = new InsSample();
         sample.setInsOrderId(order.getId());
-        sample.setSampleCode(dto.getSampleCode());
+        sample.setSampleCode(sampleCode);
         sample.setFactory(null);
         sample.setLaboratory(standard.getLaboratory());
         sample.setSampleType(null);
@@ -673,15 +677,28 @@
         if (insOrder.getState() == 1) {
             //瀹℃牳閫氳繃鎵嶄細鐢熸垚濮旀墭缂栧彿
             InsOrder order = this.getById(insOrder.getId());
-            // 濮旀墭缂栧彿鎸夐�佹牱鏃ユ湡鐙珛娴佹按锛屼緥濡傦細LMSY-20260909-01銆�
+            List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
+                    .eq(InsSample::getInsOrderId, insOrder.getId())
+                    .orderByAsc(InsSample::getId));
+            // 濮旀墭缂栧彿鎸夐�佹牱鏃ユ湡鐢熸垚锛涙柊鑱氬崟鏍峰搧璁㈠崟鐨勬湯涓や綅鍙栨牱鍝佺紪鍙锋湯涓や綅銆�
             // 鍘嗗彶/澶栭儴璁㈠崟鏈~鍐欓�佹牱鏃ユ湡鏃跺洖閫�鍒板綋澶╋紝閬垮厤褰卞搷鍘熸湁娴佺▼銆�
             LocalDate entrustDate = order.getSampleDate() == null ? LocalDate.now() : order.getSampleDate();
             String entrustCodePrefix = "LMSY-"
                     + entrustDate.format(DateTimeFormatter.BASIC_ISO_DATE)
                     + "-";
-            String no = numberGenerator.generateNumberWithPrefix(2,
-                    entrustCodePrefix,
-                    InsOrder::getEntrustCode);
+            String no;
+            if (isDirectTemplateOrder(order, insSamples)) {
+                String sampleCode = insSamples.get(0).getSampleCode();
+                if (StringUtils.isBlank(sampleCode) || sampleCode.trim().length() < 2) {
+                    throw new ErrorException("鏍峰搧缂栧彿涓嶈兘涓虹┖涓斾笉鑳藉皯浜�2浣�");
+                }
+                sampleCode = sampleCode.trim();
+                no = entrustCodePrefix + sampleCode.substring(sampleCode.length() - 2);
+            } else {
+                no = numberGenerator.generateNumberWithPrefix(2,
+                        entrustCodePrefix,
+                        InsOrder::getEntrustCode);
+            }
             // 鍒ゆ柇鏄惁鏄搴︽楠�, 鏄搴︽楠屽彇娑堝師鏉愭枡瀛e害妫�楠屼笅鍗�
             if (InsOrderTypeConstants.QUARTERLY_TEST.equals(order.getOrderType())) {
                 ifsInventoryQuantityMapper.update(null,  Wrappers.<IfsInventoryQuantity>lambdaUpdate()
@@ -699,9 +716,6 @@
             }
 
             int count = 1;
-            // 鏌ヨ鏍峰搧琛�
-            List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
-                    .eq(InsSample::getInsOrderId, insOrder.getId()));
             for (InsSample insSample : insSamples) {
                 if (StringUtils.isBlank(insSample.getSampleCode())) {
                     // 濡傛灉鍙湁涓�涓牱鍝佸氨涓嶉渶瑕佹嫾鎺ユ暟瀛�

--
Gitblit v1.9.3