|
|
@@ -394,7 +394,7 @@ public class HxpStockServiceImpl implements IHxpStockService {
|
|
|
}
|
|
|
|
|
|
// 报警通知演示临时通知给实验室管理员 phones
|
|
|
- sendPhoneAlarm(hxpStock.getSubId(), subName, hxpStock.getChemicalName(), subInfo.get("phones") + "");
|
|
|
+ Long recordId = sendPhoneAlarm(hxpStock.getId(),hxpStock.getSubId(), subName, hxpStock.getChemicalName(), subInfo.get("phones") + "");
|
|
|
|
|
|
cacheMap.put(rfidCode, DateUtils.getNowDate());
|
|
|
|
|
|
@@ -420,51 +420,72 @@ public class HxpStockServiceImpl implements IHxpStockService {
|
|
|
remoteMessageContentService.addDynamicMessage(msgData);
|
|
|
}
|
|
|
|
|
|
- // 1.查询标签所属实验室院系报警配置流程处理
|
|
|
- List<HxpAlarmConfig> hxpAlarmConfigList = hxpAlarmConfigMapper.selectBySubId(3, hxpStock.getSubId());
|
|
|
- // 2.最多五个步骤分别执行
|
|
|
- if(CollectionUtils.isNotEmpty(hxpAlarmConfigList)){
|
|
|
- logger.error("实验室【"+subName+"】ID" + hxpStock.getSubId() +"执行用户短信通知!");
|
|
|
-
|
|
|
- Date date = DateUtil.offsetMinute(DateUtils.getNowDate(), Optional.ofNullable(dealTime).orElse(1));
|
|
|
-
|
|
|
- for (HxpAlarmConfig hxpAlarmConfig : hxpAlarmConfigList) {
|
|
|
- hxpAlarmRecord = new HxpAlarmRecord();
|
|
|
- hxpAlarmRecord.setAlarmContent("未领用即携带化学品离开实验室【"+subName+"】," + "化学品("+hxpStock.getChemicalName()+"),请尽快确认!");
|
|
|
- hxpAlarmRecord.setAlarmType(2);
|
|
|
- hxpAlarmRecord.setAlarmMode(3);
|
|
|
- hxpAlarmRecord.setHasValid(0);
|
|
|
- hxpAlarmRecord.setAlarmTime(date);
|
|
|
- hxpAlarmRecord.setSubId(hxpStock.getSubId());
|
|
|
- //hxpAlarmRecord.setTerminalNum();
|
|
|
- hxpAlarmRecord.setHandlingStatus(1);
|
|
|
- hxpAlarmRecord.setLiableUserIds(hxpAlarmConfig.getAlarmPhone());
|
|
|
-
|
|
|
- //执行时间 - 报警时间计算
|
|
|
- date = DateUtil.offsetMinute(date, Optional.ofNullable(hxpAlarmConfig.getTimeInterval()).orElse(1));
|
|
|
- // TODO 短信阶梯通知触发流程控制
|
|
|
- hxpAlarmRecordMapper.insertHxpAlarmRecord(hxpAlarmRecord);
|
|
|
+ // 需求变动内容:未领用即携带化学品离开房间报警时,如实验室安全责任人通过化学品终端或PC管理后台操作处理,状态更改为已处理,报警流程终止
|
|
|
+ // 保证逻辑严谨,数据必须进行强关联
|
|
|
+ if(recordId != null){
|
|
|
+ // 1.查询标签所属实验室院系报警配置流程处理
|
|
|
+ List<HxpAlarmConfig> hxpAlarmConfigList = hxpAlarmConfigMapper.selectBySubId(3, hxpStock.getSubId());
|
|
|
+ // 2.最多五个步骤分别执行
|
|
|
+ if(CollectionUtils.isNotEmpty(hxpAlarmConfigList)){
|
|
|
+ logger.error("实验室【"+subName+"】ID" + hxpStock.getSubId() +"执行用户短信通知!");
|
|
|
+
|
|
|
+ Date date = DateUtil.offsetMinute(DateUtils.getNowDate(), Optional.ofNullable(dealTime).orElse(1));
|
|
|
+
|
|
|
+ for (HxpAlarmConfig hxpAlarmConfig : hxpAlarmConfigList) {
|
|
|
+ hxpAlarmRecord = new HxpAlarmRecord();
|
|
|
+ hxpAlarmRecord.setAlarmContent("未领用即携带化学品离开实验室【"+subName+"】," + "化学品("+hxpStock.getChemicalName()+"),请尽快确认!");
|
|
|
+ hxpAlarmRecord.setAlarmType(2);
|
|
|
+ hxpAlarmRecord.setAlarmMode(3);
|
|
|
+ hxpAlarmRecord.setHasValid(0);
|
|
|
+ hxpAlarmRecord.setAlarmTime(date);
|
|
|
+ hxpAlarmRecord.setSubId(hxpStock.getSubId());
|
|
|
+ hxpAlarmRecord.setStockId(hxpStock.getId());
|
|
|
+ hxpAlarmRecord.setParentId(recordId);
|
|
|
+ //hxpAlarmRecord.setTerminalNum();
|
|
|
+ hxpAlarmRecord.setHandlingStatus(1);
|
|
|
+ hxpAlarmRecord.setLiableUserIds(hxpAlarmConfig.getAlarmPhone());
|
|
|
+
|
|
|
+ //执行时间 - 报警时间计算
|
|
|
+ date = DateUtil.offsetMinute(date, Optional.ofNullable(hxpAlarmConfig.getTimeInterval()).orElse(1));
|
|
|
+ // TODO 短信阶梯通知触发流程控制
|
|
|
+ hxpAlarmRecordMapper.insertHxpAlarmRecord(hxpAlarmRecord);
|
|
|
+ }
|
|
|
}
|
|
|
+ }else {
|
|
|
+ logger.error("");
|
|
|
}
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void sendPhoneAlarm(Long subId, String subName, String chemicalName, String phones) {
|
|
|
+ private Long sendPhoneAlarm(Long stockId, Long subId, String subName, String chemicalName, String phones) {
|
|
|
|
|
|
try {
|
|
|
String[] to = phones.split(",");
|
|
|
if(to == null && to.length == 0){
|
|
|
logger.error("RFID触发电话报警失败:实验室【"+subName+"】管理员未配置手机号!");
|
|
|
- return;
|
|
|
+ return null;
|
|
|
}
|
|
|
to = Arrays.stream(to).distinct().toArray(String[]::new);
|
|
|
|
|
|
+ HxpAlarmRecord hxpAlarmRecord = new HxpAlarmRecord();
|
|
|
+ hxpAlarmRecord.setAlarmContent("未领用即携带化学品离开实验室【"+subName+"】," + "化学品("+chemicalName+"),请尽快确认!");
|
|
|
+ hxpAlarmRecord.setAlarmType(2);
|
|
|
+ hxpAlarmRecord.setAlarmMode(3);
|
|
|
+ hxpAlarmRecord.setHasValid(1);
|
|
|
+ hxpAlarmRecord.setAlarmTime(DateUtils.getNowDate());
|
|
|
+ hxpAlarmRecord.setSubId(subId);
|
|
|
+ hxpAlarmRecord.setHandlingStatus(1);
|
|
|
+ hxpAlarmRecord.setLiableUserIds(phones);
|
|
|
+ hxpAlarmRecord.setStockId(stockId);
|
|
|
+
|
|
|
+ hxpAlarmRecordMapper.insertHxpAlarmRecord(hxpAlarmRecord);
|
|
|
|
|
|
// 判断四医大还是其他学校短信方案
|
|
|
String content;
|
|
|
if(phoneMode == 0){
|
|
|
- HxpAlarmRecord hxpAlarmRecord = new HxpAlarmRecord();
|
|
|
+ /*HxpAlarmRecord hxpAlarmRecord = new HxpAlarmRecord();
|
|
|
hxpAlarmRecord.setAlarmContent("未领用即携带化学品离开实验室【"+subName+"】," + "化学品("+chemicalName+"),请尽快确认!");
|
|
|
hxpAlarmRecord.setAlarmType(2);
|
|
|
hxpAlarmRecord.setAlarmMode(3);
|
|
|
@@ -474,7 +495,7 @@ public class HxpStockServiceImpl implements IHxpStockService {
|
|
|
hxpAlarmRecord.setHandlingStatus(1);
|
|
|
hxpAlarmRecord.setLiableUserIds(phones);
|
|
|
|
|
|
- hxpAlarmRecordMapper.insertHxpAlarmRecord(hxpAlarmRecord);
|
|
|
+ hxpAlarmRecordMapper.insertHxpAlarmRecord(hxpAlarmRecord);*/
|
|
|
|
|
|
content = "电话报警:" + subName + "的化学品" + chemicalName + "违规带离实验室,请尽快确认!";
|
|
|
AlarmEntrty alarmEntrty = new AlarmEntrty(Routes.NoticePush, to, content);
|
|
|
@@ -482,7 +503,7 @@ public class HxpStockServiceImpl implements IHxpStockService {
|
|
|
|
|
|
logger.error(JSONUtil.toJsonStr(result));
|
|
|
}else if(phoneMode == 1){
|
|
|
- for (String s : to) {
|
|
|
+ /*for (String s : to) {
|
|
|
HxpAlarmRecord hxpAlarmRecord = new HxpAlarmRecord();
|
|
|
hxpAlarmRecord.setAlarmContent("未领用即携带化学品离开实验室【"+subName+"】," + "化学品("+chemicalName+"),请尽快确认!");
|
|
|
hxpAlarmRecord.setAlarmType(2);
|
|
|
@@ -494,11 +515,11 @@ public class HxpStockServiceImpl implements IHxpStockService {
|
|
|
hxpAlarmRecord.setLiableUserIds(s);
|
|
|
|
|
|
hxpAlarmRecordMapper.insertHxpAlarmRecord(hxpAlarmRecord);
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
content = "【实验室安全系统】" + subName + "-实验人员未领用即携带化学品离开房间,发生时间:"
|
|
|
+ DateUtil.format(DateUtil.date(), DateUtils.YYYY_MM_DD_HH_MM_SS)
|
|
|
- + ",请尽快确认。短信回复“CL”确认已处理。";
|
|
|
+ + ",请尽快确认。";//短信回复“CL”确认已处理。
|
|
|
try {
|
|
|
smsSydUtil.sendSydSms(content, 1, null, to);
|
|
|
} catch (Exception e) {
|
|
|
@@ -506,11 +527,14 @@ public class HxpStockServiceImpl implements IHxpStockService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ return hxpAlarmRecord.getId();
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
logger.error("【"+subName+"】RFID触发报警器进行电话通知失败:" + e.getMessage());
|
|
|
+ return null;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|