From 01ed57def0d052ae87d95022013c64c760082610 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期五, 28 三月 2025 10:34:19 +0800
Subject: [PATCH] 修改温度生成定时任务问题

---
 cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 52 insertions(+), 3 deletions(-)

diff --git a/cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java b/cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java
index 5f32fd2..651f615 100644
--- a/cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java
+++ b/cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java
@@ -93,7 +93,9 @@
             // 鏌ヨ璇曢獙鍖哄煙
             FeTempHumDate feTempHumDate = feTempHumDateMapper.selectOne(Wrappers.<FeTempHumDate>lambdaQuery()
                     .eq(FeTempHumDate::getMonthDate, formattedDate)
-                    .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory()));
+                    .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory())
+                    .orderByDesc(FeTempHumDate::getCreateTime)
+                    .last("limit 1"));
             Integer dateId = feTempHumDate.getDateId();
             // 鍒ゆ柇浠婂ぉ鏄惁鏈夋俯婀垮害璁板綍
             FeTempHumRecord feTempHumRecord = record(dateId);
@@ -130,7 +132,9 @@
                 .eq(FeTempHumRecord::getDateId, dateId)
                 // 璁板綍鏃堕棿鍦ㄤ粖澶╀箣鍐�
                 .eq(FeTempHumRecord::getRecordDate, today)
-                .between(FeTempHumRecord::getMorningTestTime, start, end));
+                .between(FeTempHumRecord::getMorningTestTime, start, end)
+                .orderByDesc(FeTempHumRecord::getTempHumId)
+                .last("limit 1"));
     }
 
     /**
@@ -163,7 +167,9 @@
             // 鏌ヨ璇曢獙鍖哄煙
             FeTempHumDate feTempHumDate = feTempHumDateMapper.selectOne(Wrappers.<FeTempHumDate>lambdaQuery()
                     .eq(FeTempHumDate::getMonthDate, formattedDate)
-                    .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory()));
+                    .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory())
+                    .orderByDesc(FeTempHumDate::getCreateTime)
+                    .last("limit 1"));
             Integer dateId = feTempHumDate.getDateId();
             // 鏌ヨ浠婂ぉ鏄惁鏈夋俯婀垮害璁板綍
             FeTempHumRecord feTempHumRecord = record(dateId);
@@ -200,6 +206,49 @@
     }
 
     /**
+     * 鏄熸湡澶╂墽琛屾坊鍔犵┖鐧芥暟鎹�
+     * 鑾峰彇娓╁害婀垮害
+     */
+//    @Scheduled(cron = "0/5 * * * * *")
+    @Scheduled(cron = "0 0 9 * * 7") //
+    public void task3() {
+        checkLaboratoriesSchedule();
+
+        // 鑾峰彇鎵�鏈夌殑瀹為獙瀹�
+        List<CollectLaboratory> collectLaboratories = collectLaboratoryMapper.selectList(null);
+        // 閬嶅巻鑾峰彇瀹為獙瀹ょ紪鍙� 鑾峰彇娓╂箍搴� 淇濆瓨鍦ㄥ搴旂殑
+        for (CollectLaboratory collectLaboratory : collectLaboratories) {
+            // 鏌ヨ璇曢獙鍖哄煙
+            FeTempHumDate feTempHumDate = feTempHumDateMapper.selectOne(Wrappers.<FeTempHumDate>lambdaQuery()
+                    .eq(FeTempHumDate::getMonthDate, formattedDate)
+                    .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory())
+                    .orderByDesc(FeTempHumDate::getCreateTime)
+                    .last("limit 1"));
+            Integer dateId = feTempHumDate.getDateId();
+            // 鍒ゆ柇浠婂ぉ鏄惁鏈夋俯婀垮害璁板綍
+            // 鑾峰彇浠婂ぉ鐨勬棩鏈�
+            LocalDate today = LocalDate.now();
+            // 鏌ヨ浠婂ぉ鏄惁鏈夋俯婀垮害璁板綍
+            Long count = feTempHumRecordMapper.selectCount(Wrappers.<FeTempHumRecord>lambdaQuery()
+                    // 鍝釜瀹為獙瀹�
+                    .eq(FeTempHumRecord::getDateId, dateId)
+                    // 璁板綍鏃堕棿鍦ㄤ粖澶╀箣鍐�
+                    .eq(FeTempHumRecord::getRecordDate, today));
+            // 鏌ヨ鍑烘潵灏变唬琛ㄤ粖澶╄褰曡繃浜嗗氨涓嶈褰�
+            if (!count.equals(0L)) {
+                // 鏈夋俯搴︽箍搴﹁褰曞氨涓嶈褰�
+                continue;
+            }
+
+            // 鍒涘缓浠婂ぉ娓╂箍搴﹁褰曞璞� 璁板綍涓婂崍娓╁害婀垮害
+            FeTempHumRecord newFeTempHumRecord = new FeTempHumRecord();
+            newFeTempHumRecord.setRecordDate(LocalDate.now());
+            newFeTempHumRecord.setDateId(dateId);
+            feTempHumRecordMapper.insert(newFeTempHumRecord);
+        }
+    }
+
+    /**
      * 鏍规嵁瀹為獙瀹ょ紪鍙疯幏鍙栨俯搴︽箍搴�
      *
      * @param collectTemperatureHumidity 娓╁害婀垮害鏁版嵁

--
Gitblit v1.9.3