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/service/impl/FeTempHumDateServiceImpl.java  |    7 +++
 cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml                           |    1 
 cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java             |   55 ++++++++++++++++++++++++++-
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java |   14 +++++--
 4 files changed, 69 insertions(+), 8 deletions(-)

diff --git a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java
index 61ee538..34959ac 100644
--- a/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java
+++ b/cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java
@@ -134,8 +134,13 @@
         // 娓╂箍搴﹁褰曟坊鍔犺褰曞憳
         Integer userId = SecurityUtils.getUserId().intValue();
         feTempHumRecordService.update(Wrappers.<FeTempHumRecord>lambdaUpdate()
+                .isNotNull(FeTempHumRecord::getMorningTestTime)
                 .eq(FeTempHumRecord::getDateId, feTempHumDate.getDateId())
-                .set(FeTempHumRecord::getAfternoonRecorderId, userId)
                 .set(FeTempHumRecord::getMorningRecorderId, userId));
+
+        feTempHumRecordService.update(Wrappers.<FeTempHumRecord>lambdaUpdate()
+                .isNotNull(FeTempHumRecord::getAfternoonTime)
+                .eq(FeTempHumRecord::getDateId, feTempHumDate.getDateId())
+                .set(FeTempHumRecord::getAfternoonRecorderId, userId));
     }
 }
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 娓╁害婀垮害鏁版嵁
diff --git a/cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml b/cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml
index b59bb72..070c999 100644
--- a/cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml
+++ b/cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml
@@ -21,6 +21,7 @@
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
         </if>
+        order by month_date desc
     </select>
     <select id="selectFeTempHumDateIncludeFormattedDate" resultType="java.lang.Integer">
         select count(*)
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 d69da06..b57a72f 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
@@ -949,13 +949,23 @@
 //                    if (insProduct.getInspectionItem().contains("鑰佸寲")) {
 //                        List<InsProductAnalysisDto> insProductAnalysisDtoList = insProductMapper.selectAnalysis(insProduct, ifsInventoryQuantity.getSupplierName());
 //
+//                        if (insProductAnalysisDtoList.size() < 10) {
+//                            continue;
+//                        }
+//
 //                        // 鍒ゆ柇褰撳墠妫�娴嬮」鏄惁鍋忓樊瓒呰繃10%
 //                        List<String> laseValueList = insProductAnalysisDtoList.stream().map(InsProductAnalysisDto::getLastValue)
 //                                .collect(Collectors.toList());
 //
+//                        double deviation = isDeviationOverTenPercent(laseValueList, insProduct.getLastValue());
+//                        // 鍒ゆ柇鍋忓樊鏄惁澶т簬10
+//                        if (deviation > 10) {
+//                            // 鍙戦�侀�氱煡, 骞朵笖娣诲姞鏁版嵁
 //
 //
 //
+//
+//                        }
 //                    }
 //                }
 //            });
@@ -1953,10 +1963,6 @@
 
         ConfigureBuilder builder = Configure.builder();
         builder.useSpringEL(true);
-        // 鑾峰彇褰撳墠鏃堕棿
-        LocalDate currentDate = LocalDate.now();
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-        String formattedDate = currentDate.format(formatter);
 
         InputStream inputStream = this.getClass().getResourceAsStream("/static/small-report-template.docx");
         XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(

--
Gitblit v1.9.3