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