From 51786b723d0a91d11476776d9ce50af7994dc4bd Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 23 九月 2026 15:58:53 +0800
Subject: [PATCH] feat(inspect): 完善检验订单状态管理和样品接收流程

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

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
index dff3ad5..5cfeb47 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -274,11 +274,11 @@
         // 鏌ヨ璁㈠崟Id
         InsOrder order = insOrderMapper.selectFirstSubmit(dto.getId());
         if (order == null) {
-            return BeanUtil.isEmpty(insProducts) ? null : insProducts;
+            return BeanUtil.isEmpty(insProducts) ? Collections.emptyList() : insProducts;
         }
         insProducts = mergeDirectTemplateSnapshots(order, dto.getId(), dto.getLaboratory(), insProducts);
         if (BeanUtil.isEmpty(insProducts)) {
-            return null;
+            return Collections.emptyList();
         }
         getTemplateThing(order, insProducts, dto.getLaboratory());
         return insProducts;
@@ -300,14 +300,6 @@
         if (snapshots.isEmpty()) {
             return source;
         }
-        InsSample sample = insSampleMapper.selectById(sampleId);
-        boolean directTemplateOrder = source.stream()
-                .anyMatch(product -> product.getTemplateRowIndex() != null)
-                || isDirectTemplateSample(order, sample);
-        if (!directTemplateOrder) {
-            return source;
-        }
-
         Map<Integer, List<InsProduct>> productsByTemplate = source.stream()
                 .filter(product -> product.getTemplateId() != null)
                 .collect(Collectors.groupingBy(InsProduct::getTemplateId, LinkedHashMap::new, Collectors.toList()));
@@ -3588,10 +3580,7 @@
             firstInspectDate = submitTime;
         }
 
-        String insTime = firstInspectDate.format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�")) + "-"
-                + submitTime.format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"));
-        String testStartDate = firstInspectDate.format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"));
-        String testEndDate = submitTime.format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"));
+        String insTime = formatReportTestDate(firstInspectDate, submitTime);
 
         String insTimeEn = monthNames[firstInspectDate.getMonthValue() - 1] + " " + firstInspectDate.format(DateTimeFormatter.ofPattern("dd, yyyy")) + "-"
                 + monthNames[submitTime.getMonthValue() - 1] + " " + submitTime.format(DateTimeFormatter.ofPattern("dd, yyyy"));
@@ -3738,8 +3727,6 @@
                     put("batch", finalBatchNo);
                     put("phone", defaultReportText(insOrder.getPhone(), "/"));
                     put("testDate", insTime);
-                    put("testStartDate", testStartDate);
-                    put("testEndDate", testEndDate);
                     put("entrustNo", defaultReportText(insOrder.getEntrustCode(), "/"));
                     put("sampling", "/");
                     put("standard", finalStandardMethodText);
@@ -3954,16 +3941,21 @@
         if (CollectionUtils.isEmpty(deviceList)) {
             return "/";
         }
-        Set<String> lines = new LinkedHashSet<>();
-        int sequence = 1;
+        Set<String> equipmentItems = new LinkedHashSet<>();
         for (Map<String, String> device : deviceList) {
             String name = getMapText(device, "deviceName", "device_name");
             String managementNumber = getMapText(device, "managementNumber", "management_number");
-            String line = sequence++ + ". " + defaultReportText(name, "/");
+            String item = defaultReportText(name, "/");
             if (StringUtils.isNotBlank(managementNumber)) {
-                line += "锛�" + managementNumber;
+                item += "锛�" + managementNumber;
             }
-            lines.add(line);
+            equipmentItems.add(item);
+        }
+        List<String> items = new ArrayList<>(equipmentItems);
+        List<String> lines = new ArrayList<>();
+        for (int i = 0; i < items.size(); i++) {
+            String punctuation = i == items.size() - 1 ? "銆�" : "锛�";
+            lines.add((i + 1) + ". " + items.get(i) + punctuation);
         }
         return String.join("\n", lines);
     }
@@ -3984,7 +3976,7 @@
                 .collect(Collectors.toList());
 
         String temperature = formatConditionRange(temperatures, order.getTemperature(), "鈩�");
-        String humidity = formatConditionRange(humidities, order.getHumidity(), "%");
+        String humidity = formatConditionRange(humidities, order.getHumidity(), "%RH");
         return Stream.of(temperature, humidity)
                 .filter(StringUtils::isNotBlank)
                 .collect(Collectors.joining(" "));
@@ -4057,6 +4049,14 @@
         return StringUtils.isNotBlank(fallback) ? fallback : "/";
     }
 
+    private static String formatReportTestDate(LocalDateTime startTime, LocalDateTime endTime) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�");
+        if (startTime.toLocalDate().equals(endTime.toLocalDate())) {
+            return startTime.format(formatter);
+        }
+        return startTime.format(formatter) + "鑷�" + endTime.format(formatter);
+    }
+
     /**
      * 璁$畻琛ㄦ牸鍒楀搴�
      *

--
Gitblit v1.9.3