|
@@ -73,7 +73,7 @@ public class RedisTaskService extends KeyExpirationEventMessageListener {
|
|
|
}
|
|
|
// 判断是否报修业务逻辑
|
|
|
if(expiredKeyArr[0] == null || !expiredKeyArr[0].contains(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR)){
|
|
|
- logger.info("redis过期,非报修业务,不处理:");
|
|
|
+ logger.info("redis过期非报修业务,不处理。");
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -83,45 +83,107 @@ public class RedisTaskService extends KeyExpirationEventMessageListener {
|
|
|
|
|
|
SbInfoVO sbInfoVO = sbInfoService.getById(repairApplicationForm.getSbId());
|
|
|
SysUserVO userVO = null;
|
|
|
- if(!repairApplicationForm.getStatus().equals(RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue())){
|
|
|
- return;
|
|
|
- }
|
|
|
- String minuteStr = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_WARN_MINUTE.name());
|
|
|
- int minute = 30;// 默认30分钟
|
|
|
- if(StringUtils.isNotBlank(minuteStr)){
|
|
|
- minute = Integer.valueOf(minuteStr);
|
|
|
- }
|
|
|
- if(expiredKeyArr[0].equalsIgnoreCase(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_STEP_FIRST)){
|
|
|
- if(StringUtils.isNotBlank(sbInfoVO.getRepairUserSecond())){
|
|
|
- logger.info("处理第一阶段过期,发送消息给第二维修人");
|
|
|
- userVO = sysUserService.selectUserVO(sbInfoVO.getRepairUserSecond());
|
|
|
- sendMessage(repairId, repairApplicationForm,userVO,sbInfoVO,"repairEmailFirst.ftl");
|
|
|
- }else{
|
|
|
- logger.info("处理第一阶段过期,设备第二维修人未设置,无法发送消息,设备编号:" + sbInfoVO.getNo());
|
|
|
+
|
|
|
+ if(expiredKeyArr[0].equalsIgnoreCase(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_PREFIX)){
|
|
|
+ if(!repairApplicationForm.getStatus().equals(RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue())){
|
|
|
+ return;
|
|
|
}
|
|
|
+ String minuteStr = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_WARN_MINUTE.name());
|
|
|
+ int minute = 30;// 默认30分钟
|
|
|
+ if(StringUtils.isNotBlank(minuteStr)){
|
|
|
+ minute = Integer.valueOf(minuteStr);
|
|
|
+ }
|
|
|
+ if(expiredKeyArr[0].equalsIgnoreCase(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_STEP_FIRST)){
|
|
|
+ if(StringUtils.isNotBlank(sbInfoVO.getRepairUserSecond())){
|
|
|
+ logger.info("处理第一阶段过期,发送消息给第二维修人");
|
|
|
+ userVO = sysUserService.selectUserVO(sbInfoVO.getRepairUserSecond());
|
|
|
+ sendMessage(repairId, repairApplicationForm,userVO,sbInfoVO,"repairEmailFirst.ftl");
|
|
|
+ }else{
|
|
|
+ logger.info("处理第一阶段过期,设备第二维修人未设置,无法发送消息,设备编号:" + sbInfoVO.getNo());
|
|
|
+ }
|
|
|
|
|
|
- // redis登记2级监控
|
|
|
- RedisUtils.setString(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_STEP_SECOND + RedisKeyConstants.EXPIRE_BUSINESS_SEP + repairId,repairId,minute, TimeUnit.MINUTES);
|
|
|
- return;
|
|
|
- }
|
|
|
+ // redis登记2级监控
|
|
|
+ RedisUtils.setString(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_STEP_SECOND + RedisKeyConstants.EXPIRE_BUSINESS_SEP + repairId,repairId,minute, TimeUnit.MINUTES);
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- // 发送给牛工,通过角色来查询
|
|
|
- if(expiredKeyArr[0].equalsIgnoreCase(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_STEP_SECOND)){
|
|
|
- logger.info("处理第二阶段过期,发送消息给牛");
|
|
|
- List<SysUser> userList = sysUserService.getRepairUser(new SysUserDTO());
|
|
|
- List<SysUser> filterUsers = userList.stream().filter(item -> item.getWorkFlag()).collect(Collectors.toList());
|
|
|
- if (CollectionUtil.isEmpty(filterUsers)) {
|
|
|
- filterUsers = userList.stream().filter(item -> item.getIdentityType().equals(SysUserIdentityType.WXZGMANAGER.getValue())).collect(Collectors.toList());
|
|
|
+ // 发送给牛工,通过角色来查询
|
|
|
+ if(expiredKeyArr[0].equalsIgnoreCase(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_STEP_SECOND)){
|
|
|
+ logger.info("处理第二阶段过期,发送消息给牛");
|
|
|
+ List<SysUser> userList = sysUserService.getRepairUser(new SysUserDTO());
|
|
|
+ List<SysUser> filterUsers = userList.stream().filter(item -> item.getWorkFlag()).collect(Collectors.toList());
|
|
|
+ if (CollectionUtil.isEmpty(filterUsers)) {
|
|
|
+ filterUsers = userList.stream().filter(item -> item.getIdentityType().equals(SysUserIdentityType.WXZGMANAGER.getValue())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (CollectionUtil.isEmpty(filterUsers)) {
|
|
|
+ logger.info("处理第三阶段过期,维修主管领导身份未设置,无法发送消息,设备编号:" + sbInfoVO.getNo());
|
|
|
+ return;
|
|
|
+ }else{
|
|
|
+ SysUser user = filterUsers.get(0);
|
|
|
+ // 通过给当天值班维修人员
|
|
|
+ sendMessage(repairId, repairApplicationForm,BeanConverterUtil.copyObjectProperties(user, SysUserVO.class),sbInfoVO, "repairEmailSecond.ftl");
|
|
|
+ }
|
|
|
+ return;
|
|
|
}
|
|
|
- if (CollectionUtil.isEmpty(filterUsers)) {
|
|
|
- logger.info("处理第三阶段过期,维修主管领导身份未设置,无法发送消息,设备编号:" + sbInfoVO.getNo());
|
|
|
+ }else{
|
|
|
+ if(repairApplicationForm.getStatus().compareTo(RepairApplicationFormStatusEnum.PROCESSING.getValue())>0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 超时3小时发送给牛工,通过角色来查询
|
|
|
+ if(expiredKeyArr[0].equalsIgnoreCase(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_OVERTIME_STEP_FIRST)){
|
|
|
+ logger.info("超时3小时发送给牛工");
|
|
|
+ List<SysUser> userList = sysUserService.getRepairUser(new SysUserDTO());
|
|
|
+ List<SysUser> filterUsers = userList.stream().filter(item -> item.getWorkFlag()).collect(Collectors.toList());
|
|
|
+ if (CollectionUtil.isEmpty(filterUsers)) {
|
|
|
+ filterUsers = userList.stream().filter(item -> item.getIdentityType().equals(SysUserIdentityType.WXZGMANAGER.getValue())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (CollectionUtil.isEmpty(filterUsers)) {
|
|
|
+ logger.info("超时3小时发送给牛工,维修主管领导身份未设置,无法发送消息,设备编号:" + sbInfoVO.getNo());
|
|
|
+ return;
|
|
|
+ }else{
|
|
|
+ SysUser user = filterUsers.get(0);
|
|
|
+ // 通过给当天值班维修人员
|
|
|
+ sendMessage(repairId, repairApplicationForm,BeanConverterUtil.copyObjectProperties(user, SysUserVO.class),sbInfoVO, "repairEmailOverTimeFirst.ftl");
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 超过8个小时没修好,升级给相工,通过角色来查询
|
|
|
+ if(expiredKeyArr[0].equalsIgnoreCase(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_OVERTIME_STEP_SECOND)){
|
|
|
+ logger.info("处理第二阶段过期,发送消息给牛");
|
|
|
+ List<SysUser> userList = sysUserService.getRepairUser(new SysUserDTO());
|
|
|
+ List<SysUser> filterUsers = userList.stream().filter(item -> item.getWorkFlag()).collect(Collectors.toList());
|
|
|
+ if (CollectionUtil.isEmpty(filterUsers)) {
|
|
|
+ filterUsers = userList.stream().filter(item -> item.getIdentityType().equals(SysUserIdentityType.WXZGMANAGER.getValue())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (CollectionUtil.isEmpty(filterUsers)) {
|
|
|
+ logger.info("处理第三阶段过期,维修主管领导身份未设置,无法发送消息,设备编号:" + sbInfoVO.getNo());
|
|
|
+ return;
|
|
|
+ }else{
|
|
|
+ SysUser user = filterUsers.get(0);
|
|
|
+ // 通过给当天值班维修人员
|
|
|
+ sendMessage(repairId, repairApplicationForm,BeanConverterUtil.copyObjectProperties(user, SysUserVO.class),sbInfoVO, "repairEmailOverTimeSecond.ftl");
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 超时超过24 没修好,升级给田总,通过角色来查询
|
|
|
+ if(expiredKeyArr[0].equalsIgnoreCase(RedisKeyConstants.EXPIRE_BUSINESS_KEY_REPAIR_OVERTIME_STEP_THIRD)){
|
|
|
+ logger.info("处理第二阶段过期,发送消息给牛");
|
|
|
+ List<SysUser> userList = sysUserService.getRepairUser(new SysUserDTO());
|
|
|
+ List<SysUser> filterUsers = userList.stream().filter(item -> item.getWorkFlag()).collect(Collectors.toList());
|
|
|
+ if (CollectionUtil.isEmpty(filterUsers)) {
|
|
|
+ filterUsers = userList.stream().filter(item -> item.getIdentityType().equals(SysUserIdentityType.WXZGMANAGER.getValue())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (CollectionUtil.isEmpty(filterUsers)) {
|
|
|
+ logger.info("处理第三阶段过期,维修主管领导身份未设置,无法发送消息,设备编号:" + sbInfoVO.getNo());
|
|
|
+ return;
|
|
|
+ }else{
|
|
|
+ SysUser user = filterUsers.get(0);
|
|
|
+ // 通过给当天值班维修人员
|
|
|
+ sendMessage(repairId, repairApplicationForm,BeanConverterUtil.copyObjectProperties(user, SysUserVO.class),sbInfoVO, "repairEmailOverTimeThird.ftl");
|
|
|
+ }
|
|
|
return;
|
|
|
- }else{
|
|
|
- SysUser user = filterUsers.get(0);
|
|
|
- // 通过给当天值班维修人员
|
|
|
- sendMessage(repairId, repairApplicationForm,BeanConverterUtil.copyObjectProperties(user, SysUserVO.class),sbInfoVO, "repairEmailSecond.ftl");
|
|
|
}
|
|
|
- return;
|
|
|
}
|
|
|
}
|
|
|
|