From 12c5c9b4eaaac1dc51cd0be88864260535394541 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 29 九月 2025 16:47:38 +0800
Subject: [PATCH] 业务管理相关页面添加`批号`查询条件
---
cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 173 insertions(+), 5 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..abead17 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);
}
}
@@ -69,7 +86,7 @@
* 鑾峰彇娓╁害婀垮害
*/
// @Scheduled(cron = "0/5 * * * * *")
- @Scheduled(cron = "0 0 9 * * 1-6") // 姣忓ぉ9鐐规墽琛屼竴娆� 闄や簡鏄熸湡澶�
+// @Scheduled(cron = "0 0 9 * * 1-6") // 姣忓ぉ9鐐规墽琛屼竴娆� 闄や簡鏄熸湡澶�
public void task1() {
checkLaboratoriesSchedule();
// 鏍规嵁鏃堕棿闄嶅簭锛岃幏鍙栧埌鏈�鏂扮殑涓�鏉℃暟鎹�
@@ -93,7 +110,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);
@@ -111,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);
+ }
+ });
+ }
+ }
+
}
}
@@ -130,7 +173,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"));
}
/**
@@ -138,7 +183,7 @@
* 鑾峰彇娓╁害婀垮害
*/
// @Scheduled(cron = "0/5 * * * * *")
- @Scheduled(cron = "0 0 14 * * 1-5") // 姣忓ぉ14鐐规墽琛屼竴娆� 闄や簡鏄熸湡鍏拰鏄熸湡澶�
+// @Scheduled(cron = "0 0 14 * * 1-5") // 姣忓ぉ14鐐规墽琛屼竴娆� 闄や簡鏄熸湡鍏拰鏄熸湡澶�
public void task2() {
// 妫�鏌ュ疄楠屽鏄惁鏈変换鍔� 濡傛灉娌℃湁鏂板浠诲姟
@@ -163,7 +208,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);
@@ -196,10 +243,131 @@
}
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);
+ }
+ });
+ }
+ }
+ }
}
}
/**
+ * 鏄熸湡澶╂墽琛屾坊鍔犵┖鐧芥暟鎹�
+ * 鑾峰彇娓╁害婀垮害
+ */
+// @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);
+ }
+ }
+
+ /**
+ * 鎵弿瀹為獙瀹ゆ俯搴﹁褰曞垽鏂槸鍚︽湁娌℃湁纭鐨勬俯搴︿俊鎭�
+ *
+ */
+// @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