From 1b0b86833609f1d0a25b0bc84d21796581629f4e Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期四, 10 四月 2025 13:07:21 +0800
Subject: [PATCH] 温湿度报检功能调整

---
 cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java |  119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 119 insertions(+), 0 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 651f615..b721c1d 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
@@ -1,6 +1,11 @@
 package com.ruoyi.require.task;
 
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.utils.WxCpUtils;
+import com.ruoyi.require.dto.FeTempHumRecordDto;
 import com.ruoyi.require.mapper.CollectLaboratoryMapper;
 import com.ruoyi.require.mapper.CollectTemperatureHumidityMapper;
 import com.ruoyi.require.mapper.FeTempHumDateMapper;
@@ -9,10 +14,13 @@
 import com.ruoyi.require.pojo.CollectTemperatureHumidity;
 import com.ruoyi.require.pojo.FeTempHumDate;
 import com.ruoyi.require.pojo.FeTempHumRecord;
+import com.ruoyi.system.mapper.UserMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
 import java.lang.reflect.Field;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
@@ -20,6 +28,8 @@
 import java.time.format.DateTimeFormatter;
 import java.util.Calendar;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * Author: yuan
@@ -37,6 +47,10 @@
     private CollectTemperatureHumidityMapper collectTemperatureHumidityMapper;
     @Autowired
     private FeTempHumRecordMapper feTempHumRecordMapper;
+    @Autowired
+    private ThreadPoolTaskExecutor threadPoolTaskExecutor;
+    @Resource
+    private UserMapper userMapper;
 
     // 鑾峰彇褰撳墠骞翠唤鍜屾湀浠� 濡傦細2024-11
     private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
@@ -59,6 +73,9 @@
                 FeTempHumDate feTempHumDate = new FeTempHumDate();
                 feTempHumDate.setMonthDate(formattedDate);
                 feTempHumDate.setTestAreaName(collectLaboratory.getLaboratory());
+                if (collectLaboratory.getLaboratory().equals("鎭掓俯浜�")) {
+                    feTempHumDate.setSubjoin("娉�: 璇ュ疄楠屽鐜鏉′欢娓╁害娉㈠姩涓嶅ぇ浜幝�1鈩冭姹�");
+                }
                 feTempHumDateMapper.insert(feTempHumDate);
             }
         }
@@ -113,6 +130,30 @@
             newFeTempHumRecord.setMorningHum(humidity.toString());
             newFeTempHumRecord.setDateId(dateId);
             feTempHumRecordMapper.insert(newFeTempHumRecord);
+
+            // 鍒ゆ柇娓╂箍搴︽槸鍚﹁秴杩�, 瓒呰繃鎻愰啋
+            if (feTempHumDate.getRegistrarUserId() != null) {
+                if (temperature < collectLaboratory.getTemperatureLowest() || temperature > collectLaboratory.getTemperatureHighest() ||
+                        humidity< collectLaboratory.getHumidityLowest() || humidity > collectLaboratory.getHumidityHighest()) {
+                    // 鍙戦�佷紒涓氬井淇¢�氱煡
+                    threadPoolTaskExecutor.execute(() -> {
+                        // 鏌ヨ鎺ユ敹浜�
+                        User personnel = userMapper.selectById(feTempHumDate.getRegistrarUserId());
+
+                        String message = "";
+                        message += "涓婂崍瀹為獙瀹ゆ俯搴︽垨婀垮害瓒呰繃鎸囧畾鍖洪棿, 璇峰幓鏌ョ湅";
+                        message += "\n璇峰幓璧勬簮绠$悊-璁炬柦鍜岀幆澧冩俯搴︿竴娓╂箍搴﹁褰�";
+                        message += StrUtil.format("\n瀹為獙瀹ゅ尯鍩�: {}", feTempHumDate.getTestAreaName());
+                        //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡
+                        try {
+                            WxCpUtils.inform(personnel.getAccount(), message, null);
+                        } catch (Exception e) {
+                            throw new RuntimeException(e);
+                        }
+                    });
+                }
+            }
+
         }
     }
 
@@ -202,6 +243,50 @@
             }
             feTempHumRecordMapper.updateById(feTempHumRecord);
 
+            // 鍒ゆ柇娓╂箍搴︽槸鍚﹁秴杩�, 瓒呰繃鎻愰啋
+            if (feTempHumDate.getRegistrarUserId() != null) {
+                if (temperature < collectLaboratory.getTemperatureLowest() || temperature > collectLaboratory.getTemperatureHighest() ||
+                        humidity< collectLaboratory.getHumidityLowest() || humidity > collectLaboratory.getHumidityHighest()) {
+                    // 鍙戦�佷紒涓氬井淇¢�氱煡
+                    threadPoolTaskExecutor.execute(() -> {
+                        // 鏌ヨ鎺ユ敹浜�
+                        User personnel = userMapper.selectById(feTempHumDate.getRegistrarUserId());
+
+                        String message = "";
+                        message += "涓嬪崍瀹為獙瀹ゆ俯搴︽垨婀垮害瓒呰繃鎸囧畾鍖洪棿, 璇峰幓鏌ョ湅";
+                        message += "\n璇峰幓璧勬簮绠$悊-璁炬柦鍜岀幆澧冩俯搴︿竴娓╂箍搴﹁褰�";
+                        message += StrUtil.format("\n瀹為獙瀹ゅ尯鍩�: {}", feTempHumDate.getTestAreaName());
+                        //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡
+                        try {
+                            WxCpUtils.inform(personnel.getAccount(), message, null);
+                        } catch (Exception e) {
+                            throw new RuntimeException(e);
+                        }
+                    });
+                }
+
+                if (feTempHumDate.getTestAreaName().equals("鎭掓俯浜�")) {
+                    // 鍒ゆ柇涓婁笅鍗堟俯宸槸鍚﹁秴杩�1
+                    if (temperature - Double.valueOf(feTempHumRecord.getMorningTemp()) > 1) {
+                        // 鍙戦�佷紒涓氬井淇¢�氱煡
+                        threadPoolTaskExecutor.execute(() -> {
+                            // 鏌ヨ鎺ユ敹浜�
+                            User personnel = userMapper.selectById(feTempHumDate.getRegistrarUserId());
+
+                            String message = "";
+                            message += "鎭掓俯浜屽疄楠屽涓婁笅娓╁樊瓒呰繃 1鈩�, 璇峰幓鏌ョ湅";
+                            message += "\n璇峰幓璧勬簮绠$悊-璁炬柦鍜岀幆澧冩俯搴︿竴娓╂箍搴﹁褰�";
+                            message += StrUtil.format("\n瀹為獙瀹ゅ尯鍩�: {}", feTempHumDate.getTestAreaName());
+                            //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡
+                            try {
+                            WxCpUtils.inform(personnel.getAccount(), message, null);
+                            } catch (Exception e) {
+                                throw new RuntimeException(e);
+                            }
+                        });
+                    }
+                }
+            }
         }
     }
 
@@ -249,6 +334,40 @@
     }
 
     /**
+     * 鎵弿瀹為獙瀹ゆ俯搴﹁褰曞垽鏂槸鍚︽湁娌℃湁纭鐨勬俯搴︿俊鎭�
+     *
+     */
+//    @Scheduled(cron = "0/5 * * * * *")
+    @Scheduled(cron = "0 0 16 * * 1-6") // 姣忓ぉ15鐐规墽琛屼竴娆� 闄や簡鏄熸湡澶�
+    public void affirmTempHum() {
+        // 鏌ヨ鏈夋棩鏈熶絾鏄湭濉啓鍚嶅瓧鐨�
+        List<FeTempHumRecordDto> feTempHumRecordList = feTempHumRecordMapper.selectNoaffirm(LocalDate.now());
+
+        for (FeTempHumRecordDto feTempHumRecord : feTempHumRecordList) {
+
+            // 鍙戦�佷紒涓氬井淇¢�氱煡
+            threadPoolTaskExecutor.execute(() -> {
+                // 鏌ヨ鎺ユ敹浜�
+                User personnel = userMapper.selectById(feTempHumRecord.getRegistrarUserId());
+
+                String message = "";
+                message += "娓╂箍搴﹁褰曠‘璁ら�氱煡";
+                message += "\n璇峰幓璧勬簮绠$悊-璁炬柦鍜岀幆澧冩俯搴︿竴娓╂箍搴﹁褰�";
+                message += StrUtil.format("\n瀹為獙瀹ゅ尯鍩�: {}", feTempHumRecord.getTestAreaName());
+                //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡
+                try {
+                    WxCpUtils.inform(personnel.getAccount(), message, null);
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+            });
+
+        }
+
+    }
+
+
+    /**
      * 鏍规嵁瀹為獙瀹ょ紪鍙疯幏鍙栨俯搴︽箍搴�
      *
      * @param collectTemperatureHumidity 娓╁害婀垮害鏁版嵁

--
Gitblit v1.9.3