From 8ad863082097ffdcab4a8e7f426d344a1fe6f892 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 07 十一月 2026 00:27:02 +0800
Subject: [PATCH] 修复人员管理接口校验与导出,完善设备保养计划与文件受控功能

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java |   62 +++++++++++++++++++++++++++----
 1 files changed, 54 insertions(+), 8 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 74f8661..a141ab0 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
@@ -1035,7 +1035,8 @@
 
     /**
      * 鍘熷璁板綍淇濆瓨鍚庯紝鎸夊綋鍓嶆ā鏉块�夌敤鐨勮澶囩敓鎴愬緟濉啓鐨勪娇鐢ㄨ褰曘��
-     * 鍚屼竴璁㈠崟銆佹牱鍝併�佽澶囧彧鐢熸垚涓�鏉★紱宸茬粡濉啓杩囩殑璁板綍涓嶄細琚鐩栥��
+     * 鍚屼竴璁㈠崟銆佹牱鍝併�佽澶囧彧鐢熸垚涓�鏉★紱娓╂箍搴﹀拰浣跨敤鏃ユ湡鍙栧師濮嬭褰曞揩鐓э紝
+     * 鏃堕棿榛樿 10:00-19:30锛涘凡缁忔墜宸ュ~鍐欒繃鐨勮褰曚笉浼氳瑕嗙洊銆�
      */
     private synchronized void syncDeviceRecordsFromTemplate(Integer orderId, Integer sampleId,
                                                             Integer templateId, Integer userId) {
@@ -1052,6 +1053,24 @@
         if (CollectionUtils.isEmpty(deviceIds)) {
             return;
         }
+        InsOrderStandardTemplate snapshot = insOrderStandardTemplateService.getOne(
+                Wrappers.<InsOrderStandardTemplate>lambdaQuery()
+                        .eq(InsOrderStandardTemplate::getInsOrderId, orderId)
+                        .eq(InsOrderStandardTemplate::getTemplateId, templateId)
+                        .last("limit 1"));
+        String temperature = snapshot == null || StringUtils.isBlank(snapshot.getTemperature())
+                ? order.getTemperature() : snapshot.getTemperature();
+        String humidity = snapshot == null || StringUtils.isBlank(snapshot.getHumidity())
+                ? order.getHumidity() : snapshot.getHumidity();
+        // 鍘熷璁板綍娌℃湁妫�娴嬫棩鏈熸椂鐣欑┖锛屼笉榛樿褰撳ぉ
+        LocalDateTime useStartDate = null;
+        LocalDateTime useEndDate = null;
+        if (snapshot != null && snapshot.getDetectionTime() != null) {
+            useStartDate = snapshot.getDetectionTime().atTime(10, 0);
+            LocalDate endDate = snapshot.getDetectionEndTime() != null
+                    ? snapshot.getDetectionEndTime() : snapshot.getDetectionTime();
+            useEndDate = endDate.atTime(19, 30);
+        }
         User user = userMapper.selectById(userId);
         String usePerson = user == null ? "" : user.getName();
         String sampleCode = StringUtils.isNotBlank(sample.getSampleCode())
@@ -1060,19 +1079,46 @@
             if (deviceId == null) {
                 continue;
             }
-            Long count = insOrderDeviceRecordMapper.selectCount(Wrappers.<InsOrderDeviceRecord>lambdaQuery()
-                    .eq(InsOrderDeviceRecord::getInsOrderId, orderId)
-                    .eq(InsOrderDeviceRecord::getDeviceId, deviceId)
-                    .eq(InsOrderDeviceRecord::getSampleCode, sampleCode));
-            if (count != null && count > 0) {
+            InsOrderDeviceRecord existing = insOrderDeviceRecordMapper.selectOne(
+                    Wrappers.<InsOrderDeviceRecord>lambdaQuery()
+                            .eq(InsOrderDeviceRecord::getInsOrderId, orderId)
+                            .eq(InsOrderDeviceRecord::getDeviceId, deviceId)
+                            .eq(InsOrderDeviceRecord::getSampleCode, sampleCode)
+                            .last("limit 1"));
+            if (existing != null) {
+                // 鍙ˉ鑷姩鐢熸垚浣嗗皻鏈~鍐欑殑璁板綍
+                if (existing.getUseStartDate() != null) {
+                    continue;
+                }
+                InsOrderDeviceRecord update = new InsOrderDeviceRecord();
+                update.setId(existing.getId());
+                if (StringUtils.isBlank(existing.getTemperature())) {
+                    update.setTemperature(temperature);
+                }
+                if (StringUtils.isBlank(existing.getHumidity())) {
+                    update.setHumidity(humidity);
+                }
+                if (useStartDate != null) {
+                    update.setUseStartDate(useStartDate);
+                    update.setUseEndDate(useEndDate);
+                }
+                if (existing.getUsePersonId() == null) {
+                    update.setUsePersonId(userId);
+                }
+                if (StringUtils.isBlank(existing.getUsePerson())) {
+                    update.setUsePerson(usePerson);
+                }
+                insOrderDeviceRecordMapper.updateById(update);
                 continue;
             }
             InsOrderDeviceRecord record = new InsOrderDeviceRecord();
             record.setInsOrderId(orderId);
             record.setDeviceId(deviceId);
             record.setSampleCode(sampleCode);
-            record.setTemperature(order.getTemperature());
-            record.setHumidity(order.getHumidity());
+            record.setTemperature(temperature);
+            record.setHumidity(humidity);
+            record.setUseStartDate(useStartDate);
+            record.setUseEndDate(useEndDate);
             record.setUseBefore(1);
             record.setUseAfter(1);
             record.setUsePersonId(userId);

--
Gitblit v1.9.3