|
@@ -64,14 +64,18 @@ public class UnmeasureTemperatureAlarmTask {
|
|
|
DateTime startTime = new DateTime(sdf.parse(date + " " + alarmConfig.getStartTime()));
|
|
|
DateTime endTime = new DateTime(sdf.parse(date + " " + alarmConfig.getEndTime()));
|
|
|
|
|
|
- //截止时间前10分钟发提醒
|
|
|
- endTime = endTime.plusMinutes(-10);
|
|
|
+ DateTime alarmTime = endTime.plusMinutes(-10);
|
|
|
|
|
|
+ //开始时间
|
|
|
if (weekdays.indexOf(String.valueOf(weekday)) != -1) {
|
|
|
- if (now.compareTo(endTime)>0 && now.compareTo(endTime.plusMinutes(intervalMinute))<0) {
|
|
|
- //todo 进行通知
|
|
|
- notice(alarmConfig.getCompanyId(),startTime,endTime);
|
|
|
- break;
|
|
|
+ if (now.compareTo(alarmTime)>=0 && now.compareTo(alarmTime.plusMinutes(intervalMinute))<0) {
|
|
|
+ //todo 通知个人
|
|
|
+ noticePerson(alarmConfig.getCompanyId(),startTime,endTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (now.compareTo(endTime)>=0 && now.compareTo(endTime.plusMinutes(intervalMinute))<0) {
|
|
|
+ //todo 通知管理人员
|
|
|
+ noticeManager(alarmConfig.getCompanyId(),startTime,endTime);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -81,7 +85,28 @@ public class UnmeasureTemperatureAlarmTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void notice(String companyId, DateTime startTime, DateTime endTime) {
|
|
|
+ private void noticePerson(String companyId, DateTime startTime, DateTime endTime) {
|
|
|
+ CompanyInfo companyInfo = companyInfoService.get(companyId);
|
|
|
+
|
|
|
+ //todo 查询该单位当前时间段是否有人员未测体温
|
|
|
+ List<PersonInfo> unmeasuredList = personDeviceFilterLogService.queryUnmeasuredList(companyId,startTime.toDate(),endTime.toDate());
|
|
|
+
|
|
|
+ if (unmeasuredList.size()==0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //todo 给未测量人推送微信通知
|
|
|
+ for (PersonInfo personInfo : unmeasuredList) {
|
|
|
+ if (StringUtils.isNotEmpty(personInfo.getOpenId())) {
|
|
|
+ String message = "尊敬的用户:" + personInfo.getName()
|
|
|
+ + ",请在" + startTime.toString("HH:mm") + "至" + endTime.toString("HH:mm") + "时间内测量体温!";
|
|
|
+
|
|
|
+ WechatMessageUtil.sendUnmeasureAlarmInfo(personInfo.getOpenId(), companyInfo.getName(), message, wxConfig.getAppId(), wxConfig.getAppSecret());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void noticeManager(String companyId, DateTime startTime, DateTime endTime) {
|
|
|
CompanyInfo companyInfo = companyInfoService.get(companyId);
|
|
|
|
|
|
//todo 查询该单位当前时间段是否有人员未测体温
|
|
@@ -94,7 +119,7 @@ public class UnmeasureTemperatureAlarmTask {
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
int total = 0;
|
|
|
|
|
|
- //todo 给未测量人推送微信通知
|
|
|
+ //todo 汇总未测温人
|
|
|
for (PersonInfo personInfo : unmeasuredList) {
|
|
|
if (sb.length() != 0) {
|
|
|
sb.append(",");
|
|
@@ -102,13 +127,6 @@ public class UnmeasureTemperatureAlarmTask {
|
|
|
|
|
|
sb.append(personInfo.getName());
|
|
|
|
|
|
- if (StringUtils.isNotEmpty(personInfo.getOpenId())) {
|
|
|
- String message = "尊敬的用户:" + personInfo.getName()
|
|
|
- + ",您未在" + startTime.toString("HH:mm") + "至" + endTime.toString("HH:mm") + "测量体温,请及时补测!";
|
|
|
-
|
|
|
- WechatMessageUtil.sendUnmeasureAlarmInfo(personInfo.getOpenId(), companyInfo.getName(), message, wxConfig.getAppId(), wxConfig.getAppSecret());
|
|
|
- }
|
|
|
-
|
|
|
total++;
|
|
|
}
|
|
|
|