diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/Repair.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/Repair.java index 09d8124..8d1c571 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/Repair.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/Repair.java @@ -166,12 +166,11 @@ public class Repair extends BaseEntity { //--超时 /** - * 设置超时时间 + * 超时告警 0 无状态 ;默认 1 绿色 (未达告警状态值) 3橙色告警 5红色告警;根据 预计完成时间 判断 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date timeout; + private Integer timeout = 0; - /** 预警状态, 默认0 没有预警;设置时间后 1 绿色 3橙色 5红色 */ + /** 预警状态, 0 没有预警; 默认 1 绿色 3橙色 5红色;根据 预计完成时间 判断*/ private Integer warn = 0; //工单状态,流程相关 diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/RepairMapper.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/RepairMapper.java index 45771f0..9616428 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/RepairMapper.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/RepairMapper.java @@ -77,19 +77,33 @@ public interface RepairMapper { */ int deleteRepairByIds(String[] ids); + /** + * 红色告警 + * + * @param day 超时大于day天红色预警 + */ + int repairTimeoutRed(Integer day); + + /** + * 橙色预警 + * + * @param day 超时大于day天橙色预警 + */ + int repairTimeoutOrange(Integer day); + /** * 红色预警 * * @param day 小于day天红色预警 */ - int repairTimeOutRed(Integer day); + int repairForewarnRed(Integer day); /** * 橙色预警 * * @param day 小于day天橙色预警 */ - int repairTimeOutOrange(Integer day); + int repairForewarnOrange(Integer day); /** * 工单结束后解除预警 diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairService.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairService.java index c56e665..b861936 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairService.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairService.java @@ -77,10 +77,16 @@ public interface IRepairService { */ int deleteRepairById(Long id); + /** + * 工单超时告警 + */ + int repairTimeOut(); + /** * 工单超时预警 */ - int repairTimeOutWarn(); + int repairForewarnWarn(); + /** * 工单结束后解除预警 diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairServiceImpl.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairServiceImpl.java index 0848980..3bd5ebb 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairServiceImpl.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairServiceImpl.java @@ -90,7 +90,7 @@ public class RepairServiceImpl implements IRepairService { Integer from = -1, to = -1; Repair newRepair = repair.getId() == null || repair.getId() == 0L ? repair : repairMapper.selectRepairById(repair.getId());//使用数据库中的表单 from = repair.getId() == null || repair.getId() == 0L ? 0 : newRepair.getStatus(); - //保修 + //报修 if (from == 0) { //没有设置维修人员则到派单环节,否则到“修理工是否接收”环节 to = repair.getRepairUserId() == null ? 1 : 5; @@ -101,7 +101,8 @@ public class RepairServiceImpl implements IRepairService { if (nextUser == null) return "没有找到派单员账号"; repair.setSn(snService.generate(Sn.Type.REPAIR));//编单号 repair.setPerUserId(nextUser.getId());//设置派单员 - repair.setWarn(0); + repair.setTimeout(1);//告警默认绿色 + repair.setWarn(1);//预警默认绿色 repair.setDeleteFlag(0); repair.setCreateBy(currentUserId.toString()); repair.setCreateTime(new Date()); @@ -328,18 +329,32 @@ public class RepairServiceImpl implements IRepairService { } @Override - public int repairTimeOutWarn() { + public int repairTimeOut() { List list = dictDataService.selectDictDataByType("repair_timeout"); - if (list.size() == 2) { - Integer orange = Integer.valueOf(list.get(0).getDictValue()); - Integer red = Integer.valueOf(list.get(1).getDictValue()); - int r = repairMapper.repairTimeOutRed(red); - int o = repairMapper.repairTimeOutOrange(orange); + if (list.size() == 4) { + Integer orange = Integer.valueOf(list.get(2).getDictValue()); + Integer red = Integer.valueOf(list.get(3).getDictValue()); + int r = repairMapper.repairTimeoutRed(red); + int o = repairMapper.repairTimeoutOrange(orange); return r + o; } return 0; } + @Override + public int repairForewarnWarn() { + List list = dictDataService.selectDictDataByType("repair_timeout"); + if (list.size() == 4) { + Integer orange = Integer.valueOf(list.get(0).getDictValue()); + Integer red = Integer.valueOf(list.get(1).getDictValue()); + int r = repairMapper.repairForewarnRed(red); + int o = repairMapper.repairForewarnOrange(orange); + return r + o; + } + return 0; + } + + @Override public int removeWarn() { return repairMapper.removeWarn(); diff --git a/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairMapper.xml b/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairMapper.xml index c8086ee..0eeab40 100644 --- a/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairMapper.xml +++ b/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairMapper.xml @@ -267,25 +267,39 @@ #{id} - - - update ics_repair set warn=5 where delete_flag=0 and status 9 and timeout is not null and warn ]]> 5 and TIMESTAMPDIFF(DAY,NOW(),timeout) #{day} + + + update ics_repair set warn=5 where delete_flag=0 and status 9 and preDate is not null and warn ]]> 5 and TIMESTAMPDIFF(DAY,NOW(),preDate) #{day} - - update ics_repair set warn=3 where delete_flag=0 and status 9 and timeout is not null and warn 1 and TIMESTAMPDIFF(DAY,NOW(),timeout) #{day} + + update ics_repair set warn=3 where delete_flag=0 and status 9 and preDate is not null and warn 1 and TIMESTAMPDIFF(DAY,NOW(),preDate) #{day} update ics_repair set warn=0 where delete_flag=0 and status = ]]> 9 and warn ]]> 0 - + update ics_repair set eval_service=5,eval_time=NOW(),eval_user_id=-1,status=13 where delete_flag=0 and status=9 and end_date is not null and TIMESTAMPDIFF(DAY,end_date,NOW()) = ]]> 7 + + + + + update ics_repair set timeout=5 where delete_flag=0 and status 9 and preDate is not null and timeout ]]> 5 and TIMESTAMPDIFF(DAY,preDate,now()) = ]]> #{day} + + + + update ics_repair set timeout=3 where delete_flag=0 and status 9 and preDate is not null and timeout 1 and TIMESTAMPDIFF(DAY,preDate,now()) = ]]> #{day} + + + + + \ No newline at end of file diff --git a/shoot-hand/ics-quartz/src/main/java/com/ics/quartz/task/RepairTask.java b/shoot-hand/ics-quartz/src/main/java/com/ics/quartz/task/RepairTask.java index 7f15700..91298ae 100644 --- a/shoot-hand/ics-quartz/src/main/java/com/ics/quartz/task/RepairTask.java +++ b/shoot-hand/ics-quartz/src/main/java/com/ics/quartz/task/RepairTask.java @@ -17,16 +17,26 @@ import org.springframework.stereotype.Service; public class RepairTask { /** - * 工单超时预警 + * 工单超时预警;还未超时 */ - public void repairTimeOut() { + public void repairForewarn() { IRepairService repairService = SpringUtils.getBean(IRepairService.class); - int num = repairService.repairTimeOutWarn(); + int num = repairService.repairForewarnWarn(); log.info("已对" + num + "个工单超时预警"); num = repairService.removeWarn(); log.info("已对" + num + "个工单解除预警"); } + + /** + * 工单超时告警;已经超时 + */ + public void repairTimeOut() { + IRepairService repairService = SpringUtils.getBean(IRepairService.class); + int num = repairService.repairTimeOut(); + log.info("已对" + num + "个工单超时告警"); + } + /** * 工单完成7天后未评价 则 自动好评 */