|
|
@@ -410,6 +410,7 @@ public class HxpStockServiceImpl implements IHxpStockService {
|
|
|
warningNoticeLogDto.setSubId(i.getSubId());
|
|
|
warningNoticeLogDto.setSubName(i.getSubjectName());
|
|
|
warningNoticeLogDto.setBuildName(i.getBuildName());
|
|
|
+ warningNoticeLogDto.setFloorId(i.getFloorId());
|
|
|
warningNoticeLogDto.setFloorName(i.getFloorName());
|
|
|
warningNoticeLogDto.setRoomNum(i.getRoomNumber());
|
|
|
userIdStr.append(i.getSafeUserId()).append(",").append(i.getAdminId());
|
|
|
@@ -898,9 +899,6 @@ public class HxpStockServiceImpl implements IHxpStockService {
|
|
|
@Scheduled(cron = "0 0 0 * * ?")
|
|
|
// @Scheduled(cron = "0 0/1 * * * ? ")
|
|
|
public void hxpExpired() {
|
|
|
- //之前代码
|
|
|
- //expireCheck();
|
|
|
-
|
|
|
// 查询配置
|
|
|
ResultData<WarningConfigDto> byType = remoteLaboratoryService.getByType(2);
|
|
|
if (HttpStatus.SUCCESS != byType.getCode()) {
|
|
|
@@ -912,6 +910,7 @@ public class HxpStockServiceImpl implements IHxpStockService {
|
|
|
//化学品已过期 化学品即将过期
|
|
|
List<HxpStock> hxpStocks = hxpStockMapper.selectHxpStockList(new HxpStock());
|
|
|
Optional.ofNullable(hxpStocks).orElseGet(Collections::emptyList).forEach(hxpStock -> {
|
|
|
+ HxpChemicalJoinCabinet hxpChemicalJoinCabinet = hxpChemicalJoinCabinetMapper.selectHxpChemicalJoinCabinetById(hxpStock.getJoinId());
|
|
|
//过期时间
|
|
|
Date expirationTime = hxpStock.getExpirationTime();
|
|
|
//即将过期提醒天数
|
|
|
@@ -932,10 +931,12 @@ public class HxpStockServiceImpl implements IHxpStockService {
|
|
|
warningNoticeLogDto.setKeyId(hxpStock.getId());
|
|
|
warningNoticeLogDto.setName(hxpStock.getChemicalName());
|
|
|
warningNoticeLogDto.setWarningType(2);
|
|
|
+ warningNoticeLogDto.setWarningSubType(1);
|
|
|
warningNoticeLogDto.setWarningTime(LocalDateTime.now());
|
|
|
- //TODO 余量
|
|
|
- warningNoticeLogDto.setMargin(BigDecimal.ZERO);
|
|
|
- warningNoticeLogDto.setSpecification(String.valueOf(hxpStock.getChemicalAmount()));
|
|
|
+ warningNoticeLogDto.setWarningWay(warningConfigDto.getTimeout());
|
|
|
+ warningNoticeLogDto.setMargin(hxpStock.getOutUsages());
|
|
|
+ warningNoticeLogDto.setDeposit(hxpStock.getCabinetName());
|
|
|
+ warningNoticeLogDto.setSpecification(hxpChemicalJoinCabinet.getChemicalAmount() + hxpChemicalJoinCabinet.getChemicalAmountUnit());
|
|
|
|
|
|
//查询到实验室负责人id 安全责任人id
|
|
|
ResultData<List<CheckSubjectDto>> subjectInfoList = remoteLaboratoryService.findSubjectInfoList(String.valueOf(hxpStock.getSubId()));
|
|
|
@@ -947,8 +948,9 @@ public class HxpStockServiceImpl implements IHxpStockService {
|
|
|
warningNoticeLogDto.setSubId(i.getSubId());
|
|
|
warningNoticeLogDto.setSubName(i.getSubjectName());
|
|
|
warningNoticeLogDto.setBuildName(i.getBuildName());
|
|
|
+ warningNoticeLogDto.setFloorId(i.getFloorId());
|
|
|
warningNoticeLogDto.setFloorName(i.getFloorName());
|
|
|
- warningNoticeLogDto.setFloorName(i.getRoomNumber());
|
|
|
+ warningNoticeLogDto.setRoomNum(i.getRoomNumber());
|
|
|
userIdStr.append(i.getSafeUserId()).append(",").append(i.getAdminId());
|
|
|
phones.append(i.getAdminPhone()).append(",").append(i.getSafeUserPhone());
|
|
|
}
|
|
|
@@ -1040,80 +1042,82 @@ public class HxpStockServiceImpl implements IHxpStockService {
|
|
|
List hxpIds = new ArrayList<>();
|
|
|
List<HxpUserecord> hxpUserecordList = hxpUserecordMapper.selectByOvertime();
|
|
|
|
|
|
- Optional.ofNullable(hxpUserecordList).orElseGet(Collections::emptyList).forEach(hxpUserecord -> {
|
|
|
- HxpStock hxpStock = hxpStockMapper.selectHxpStockById(hxpUserecord.getStockId());
|
|
|
- AioChemicalVo aioChemicalVo = new AioChemicalVo();
|
|
|
- aioChemicalVo.setCabinetId(hxpStock.getCabinetId());
|
|
|
- HxpChemicalJoinCabinet hxpChemicalJoinCabinet = hxpChemicalJoinCabinetMapper.selectHxpChemicalJoinCabinetById(hxpStock.getJoinId());
|
|
|
- HxpChemical hxpChemical = hxpChemicalService.selectHxpChemicalById(hxpChemicalJoinCabinet.getId());
|
|
|
- Integer collectHour = hxpChemical.getCollectHour();
|
|
|
- Integer collectMinute = hxpChemical.getCollectMinute();
|
|
|
- Integer minute = collectHour * 60 + collectMinute;
|
|
|
- DateTime dateTime = DateUtil.offsetMinute(hxpUserecord.getCollectTime(), minute);
|
|
|
-
|
|
|
- //过期时间在提醒天数内 并且在一天之内
|
|
|
- WarningNoticeLogDto warningNoticeLogDto = new WarningNoticeLogDto();
|
|
|
- warningNoticeLogDto.setKeyId(hxpStock.getId());
|
|
|
- warningNoticeLogDto.setName(hxpStock.getChemicalName());
|
|
|
- warningNoticeLogDto.setWarningType(2);
|
|
|
- warningNoticeLogDto.setWarningSubType(1);
|
|
|
- warningNoticeLogDto.setWarningContent("化学品超时未归还");
|
|
|
- warningNoticeLogDto.setWarningTime(LocalDateTime.now());
|
|
|
- warningNoticeLogDto.setWarningWay(warningConfigDto.getTimeout());
|
|
|
- warningNoticeLogDto.setMargin(hxpStock.getOutUsages());
|
|
|
- warningNoticeLogDto.setDeposit(hxpStock.getCabinetName());
|
|
|
- warningNoticeLogDto.setSpecification(hxpChemicalJoinCabinet.getChemicalAmount() + hxpChemicalJoinCabinet.getChemicalAmountUnit());
|
|
|
-
|
|
|
- //查询到实验室负责人id 安全责任人id
|
|
|
- ResultData<List<CheckSubjectDto>> subjectInfoList = remoteLaboratoryService.findSubjectInfoList(String.valueOf(hxpStock.getSubId()));
|
|
|
- StringBuffer userIdStr = new StringBuffer();
|
|
|
- StringBuffer phones = new StringBuffer();
|
|
|
- if (HttpStatus.SUCCESS == subjectInfoList.getCode()) {
|
|
|
- List<CheckSubjectDto> data = subjectInfoList.getData();
|
|
|
- CheckSubjectDto i = data.get(0);
|
|
|
- warningNoticeLogDto.setSubId(i.getSubId());
|
|
|
- warningNoticeLogDto.setSubName(i.getSubjectName());
|
|
|
- warningNoticeLogDto.setBuildName(i.getBuildName());
|
|
|
- warningNoticeLogDto.setFloorName(i.getFloorName());
|
|
|
- warningNoticeLogDto.setFloorName(i.getRoomNumber());
|
|
|
- userIdStr.append(i.getSafeUserId()).append(",").append(i.getAdminId());
|
|
|
- phones.append(i.getAdminPhone()).append(",").append(i.getSafeUserPhone());
|
|
|
- }
|
|
|
- if(DateUtils.getNowDate().getTime() > dateTime.getTime()){
|
|
|
- hxpIds.add(hxpUserecord.getId());
|
|
|
- //过了最大领用时间
|
|
|
- String text = "【实验室安全系统】实验室名称-人名领用化学品名称超时未归还,领用时间:"+LocalDateTime.now().toString() +",请尽快确认。点击查看:https://lab.zjznai.com/labAppTest/earlyWarning/index.html?id="+warningNoticeLogDto.getKeyId();
|
|
|
+ if(hxpUserecordList != null && hxpUserecordList.size() > 0){
|
|
|
+ hxpUserecordList.forEach(hxpUserecord -> {
|
|
|
+ HxpStock hxpStock = hxpStockMapper.selectHxpStockById(hxpUserecord.getStockId());
|
|
|
+ HxpChemicalJoinCabinet hxpChemicalJoinCabinet = hxpChemicalJoinCabinetMapper.selectHxpChemicalJoinCabinetById(hxpStock.getJoinId());
|
|
|
+ HxpChemical hxpChemical = hxpChemicalService.selectHxpChemicalById(hxpChemicalJoinCabinet.getChemicalId());
|
|
|
+ Integer collectHour = hxpChemical.getCollectHour();
|
|
|
+ Integer collectMinute = hxpChemical.getCollectMinute();
|
|
|
+ Integer minute = (collectHour != null?collectHour:0) * 60 + (collectMinute != null?collectMinute:0);
|
|
|
+ DateTime dateTime = DateUtil.offsetMinute(hxpUserecord.getCollectTime(), minute);
|
|
|
+
|
|
|
+ //过期时间在提醒天数内 并且在一天之内
|
|
|
+ WarningNoticeLogDto warningNoticeLogDto = new WarningNoticeLogDto();
|
|
|
+ warningNoticeLogDto.setKeyId(hxpStock.getId());
|
|
|
+ warningNoticeLogDto.setName(hxpStock.getChemicalName());
|
|
|
+ warningNoticeLogDto.setWarningType(2);
|
|
|
+ warningNoticeLogDto.setWarningSubType(1);
|
|
|
warningNoticeLogDto.setWarningContent("化学品超时未归还");
|
|
|
- warningNoticeLogDto.setWarningSubType(2);
|
|
|
- String timeout = warningConfigDto.getTimeout();
|
|
|
- warningNoticeLogDto.setWarningWay(timeout);
|
|
|
- if (timeout.contains("1")) {
|
|
|
- //系统通知
|
|
|
- LabMessageContent labMessageContent = new LabMessageContent();
|
|
|
- labMessageContent.setSendMode(2);
|
|
|
- labMessageContent.setSendRange(3);
|
|
|
- labMessageContent.setMessClass(1);
|
|
|
- labMessageContent.setMessType(13);
|
|
|
- labMessageContent.setSubIds(String.valueOf(hxpStock.getSubId()));
|
|
|
- labMessageContent.setUserIds(userIdStr.toString());
|
|
|
- labMessageContent.setContent(text);
|
|
|
- remoteMessageContentService.sendMessage(labMessageContent);
|
|
|
+ warningNoticeLogDto.setWarningTime(LocalDateTime.now());
|
|
|
+ warningNoticeLogDto.setWarningWay(warningConfigDto.getTimeout());
|
|
|
+ warningNoticeLogDto.setMargin(hxpStock.getOutUsages());
|
|
|
+ warningNoticeLogDto.setDeposit(hxpStock.getCabinetName());
|
|
|
+ warningNoticeLogDto.setApply(hxpUserecord.getCreateBy());
|
|
|
+ warningNoticeLogDto.setSpecification(hxpChemicalJoinCabinet.getChemicalAmount() + hxpChemicalJoinCabinet.getChemicalAmountUnit());
|
|
|
+
|
|
|
+ //查询到实验室负责人id 安全责任人id
|
|
|
+ ResultData<List<CheckSubjectDto>> subjectInfoList = remoteLaboratoryService.findSubjectInfoList(String.valueOf(hxpStock.getSubId()));
|
|
|
+ StringBuffer userIdStr = new StringBuffer();
|
|
|
+ StringBuffer phones = new StringBuffer();
|
|
|
+ if (HttpStatus.SUCCESS == subjectInfoList.getCode()) {
|
|
|
+ List<CheckSubjectDto> data = subjectInfoList.getData();
|
|
|
+ CheckSubjectDto i = data.get(0);
|
|
|
+ warningNoticeLogDto.setSubId(i.getSubId());
|
|
|
+ warningNoticeLogDto.setSubName(i.getSubjectName());
|
|
|
+ warningNoticeLogDto.setBuildName(i.getBuildName());
|
|
|
+ warningNoticeLogDto.setFloorId(i.getFloorId());
|
|
|
+ warningNoticeLogDto.setFloorName(i.getFloorName());
|
|
|
+ warningNoticeLogDto.setRoomNum(i.getRoomNumber());
|
|
|
+ userIdStr.append(i.getSafeUserId()).append(",").append(i.getAdminId());
|
|
|
+ phones.append(i.getAdminPhone()).append(",").append(i.getSafeUserPhone());
|
|
|
}
|
|
|
- if (timeout.contains("2")) {
|
|
|
- //短信通知
|
|
|
- String[] strings = Stream.of(phones.toString().split(",")).filter(a -> StrUtil.isNotBlank(a)).collect(Collectors.joining(",")).split(",");
|
|
|
- if (strings != null) {
|
|
|
- AlarmEntrty alarmEntrty = new AlarmEntrty(Routes.NoticePush, strings, SendTypes.SMS.toString(), text);
|
|
|
- remoteAlarmService.send(alarmEntrty);
|
|
|
- logger.info("化学品发送短信打电话消息推送完成!");
|
|
|
+ if(DateUtils.getNowDate().getTime() > dateTime.getTime()){
|
|
|
+ hxpIds.add(hxpUserecord.getId());
|
|
|
+ //过了最大领用时间
|
|
|
+ String text = "【实验室安全系统】实验室名称-人名领用化学品名称超时未归还,领用时间:"+LocalDateTime.now().toString() +",请尽快确认。点击查看:https://lab.zjznai.com/labAppTest/earlyWarning/index.html?id="+warningNoticeLogDto.getKeyId();
|
|
|
+ warningNoticeLogDto.setWarningContent("化学品超时未归还");
|
|
|
+ warningNoticeLogDto.setWarningSubType(2);
|
|
|
+ String timeout = warningConfigDto.getTimeout();
|
|
|
+ warningNoticeLogDto.setWarningWay(timeout);
|
|
|
+ if (timeout.contains("1")) {
|
|
|
+ //系统通知
|
|
|
+ LabMessageContent labMessageContent = new LabMessageContent();
|
|
|
+ labMessageContent.setSendMode(2);
|
|
|
+ labMessageContent.setSendRange(3);
|
|
|
+ labMessageContent.setMessClass(1);
|
|
|
+ labMessageContent.setMessType(13);
|
|
|
+ labMessageContent.setSubIds(String.valueOf(hxpStock.getSubId()));
|
|
|
+ labMessageContent.setUserIds(userIdStr.toString());
|
|
|
+ labMessageContent.setContent(text);
|
|
|
+ remoteMessageContentService.sendMessage(labMessageContent);
|
|
|
+ }
|
|
|
+ if (timeout.contains("2")) {
|
|
|
+ //短信通知
|
|
|
+ String[] strings = Stream.of(phones.toString().split(",")).filter(a -> StrUtil.isNotBlank(a)).collect(Collectors.joining(",")).split(",");
|
|
|
+ if (strings != null) {
|
|
|
+ AlarmEntrty alarmEntrty = new AlarmEntrty(Routes.NoticePush, strings, SendTypes.SMS.toString(), text);
|
|
|
+ remoteAlarmService.send(alarmEntrty);
|
|
|
+ logger.info("化学品发送短信打电话消息推送完成!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ResultData result = remoteLaboratoryService.addWarningNoticeLog(warningNoticeLogDto);
|
|
|
+ if (HttpStatus.SUCCESS == result.getCode()) {
|
|
|
+ logger.info("化学品超时未归还保存日志成功!");
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- ResultData result = remoteLaboratoryService.addWarningNoticeLog(warningNoticeLogDto);
|
|
|
- if (HttpStatus.SUCCESS == result.getCode()) {
|
|
|
- logger.info("化学品超时未归还保存日志成功!");
|
|
|
- }
|
|
|
- });
|
|
|
- hxpUserecordMapper.updateUserecordOvertimeByIds(hxpIds);
|
|
|
+ });
|
|
|
+ hxpUserecordMapper.updateUserecordOvertimeByIds(hxpIds);
|
|
|
+ }
|
|
|
}
|
|
|
}
|