mirror of
https://gitee.com/elegant_wings/dbd-meeting.git
synced 2025-06-21 22:59:36 +08:00
修改超时机制
This commit is contained in:
parent
ee852fa346
commit
465f392f12
@ -166,12 +166,11 @@ public class Repair extends BaseEntity<Repair> {
|
|||||||
|
|
||||||
//--超时
|
//--超时
|
||||||
/**
|
/**
|
||||||
* 设置超时时间
|
* 超时告警 0 无状态 ;默认 1 绿色 (未达告警状态值) 3橙色告警 5红色告警;根据 预计完成时间 判断
|
||||||
*/
|
*/
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
private Integer timeout = 0;
|
||||||
private Date timeout;
|
|
||||||
|
|
||||||
/** 预警状态, 默认0 没有预警;设置时间后 1 绿色 3橙色 5红色 */
|
/** 预警状态, 0 没有预警; 默认 1 绿色 3橙色 5红色;根据 预计完成时间 判断*/
|
||||||
private Integer warn = 0;
|
private Integer warn = 0;
|
||||||
|
|
||||||
//工单状态,流程相关
|
//工单状态,流程相关
|
||||||
|
@ -77,19 +77,33 @@ public interface RepairMapper {
|
|||||||
*/
|
*/
|
||||||
int deleteRepairByIds(String[] ids);
|
int deleteRepairByIds(String[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 红色告警
|
||||||
|
*
|
||||||
|
* @param day 超时大于day天红色预警
|
||||||
|
*/
|
||||||
|
int repairTimeoutRed(Integer day);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 橙色预警
|
||||||
|
*
|
||||||
|
* @param day 超时大于day天橙色预警
|
||||||
|
*/
|
||||||
|
int repairTimeoutOrange(Integer day);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 红色预警
|
* 红色预警
|
||||||
*
|
*
|
||||||
* @param day 小于day天红色预警
|
* @param day 小于day天红色预警
|
||||||
*/
|
*/
|
||||||
int repairTimeOutRed(Integer day);
|
int repairForewarnRed(Integer day);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 橙色预警
|
* 橙色预警
|
||||||
*
|
*
|
||||||
* @param day 小于day天橙色预警
|
* @param day 小于day天橙色预警
|
||||||
*/
|
*/
|
||||||
int repairTimeOutOrange(Integer day);
|
int repairForewarnOrange(Integer day);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工单结束后解除预警
|
* 工单结束后解除预警
|
||||||
|
@ -77,10 +77,16 @@ public interface IRepairService {
|
|||||||
*/
|
*/
|
||||||
int deleteRepairById(Long id);
|
int deleteRepairById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单超时告警
|
||||||
|
*/
|
||||||
|
int repairTimeOut();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工单超时预警
|
* 工单超时预警
|
||||||
*/
|
*/
|
||||||
int repairTimeOutWarn();
|
int repairForewarnWarn();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工单结束后解除预警
|
* 工单结束后解除预警
|
||||||
|
@ -90,7 +90,7 @@ public class RepairServiceImpl implements IRepairService {
|
|||||||
Integer from = -1, to = -1;
|
Integer from = -1, to = -1;
|
||||||
Repair newRepair = repair.getId() == null || repair.getId() == 0L ? repair : repairMapper.selectRepairById(repair.getId());//使用数据库中的表单
|
Repair newRepair = repair.getId() == null || repair.getId() == 0L ? repair : repairMapper.selectRepairById(repair.getId());//使用数据库中的表单
|
||||||
from = repair.getId() == null || repair.getId() == 0L ? 0 : newRepair.getStatus();
|
from = repair.getId() == null || repair.getId() == 0L ? 0 : newRepair.getStatus();
|
||||||
//保修
|
//报修
|
||||||
if (from == 0) {
|
if (from == 0) {
|
||||||
//没有设置维修人员则到派单环节,否则到“修理工是否接收”环节
|
//没有设置维修人员则到派单环节,否则到“修理工是否接收”环节
|
||||||
to = repair.getRepairUserId() == null ? 1 : 5;
|
to = repair.getRepairUserId() == null ? 1 : 5;
|
||||||
@ -101,7 +101,8 @@ public class RepairServiceImpl implements IRepairService {
|
|||||||
if (nextUser == null) return "没有找到派单员账号";
|
if (nextUser == null) return "没有找到派单员账号";
|
||||||
repair.setSn(snService.generate(Sn.Type.REPAIR));//编单号
|
repair.setSn(snService.generate(Sn.Type.REPAIR));//编单号
|
||||||
repair.setPerUserId(nextUser.getId());//设置派单员
|
repair.setPerUserId(nextUser.getId());//设置派单员
|
||||||
repair.setWarn(0);
|
repair.setTimeout(1);//告警默认绿色
|
||||||
|
repair.setWarn(1);//预警默认绿色
|
||||||
repair.setDeleteFlag(0);
|
repair.setDeleteFlag(0);
|
||||||
repair.setCreateBy(currentUserId.toString());
|
repair.setCreateBy(currentUserId.toString());
|
||||||
repair.setCreateTime(new Date());
|
repair.setCreateTime(new Date());
|
||||||
@ -328,18 +329,32 @@ public class RepairServiceImpl implements IRepairService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int repairTimeOutWarn() {
|
public int repairTimeOut() {
|
||||||
List<DictData> list = dictDataService.selectDictDataByType("repair_timeout");
|
List<DictData> list = dictDataService.selectDictDataByType("repair_timeout");
|
||||||
if (list.size() == 2) {
|
if (list.size() == 4) {
|
||||||
Integer orange = Integer.valueOf(list.get(0).getDictValue());
|
Integer orange = Integer.valueOf(list.get(2).getDictValue());
|
||||||
Integer red = Integer.valueOf(list.get(1).getDictValue());
|
Integer red = Integer.valueOf(list.get(3).getDictValue());
|
||||||
int r = repairMapper.repairTimeOutRed(red);
|
int r = repairMapper.repairTimeoutRed(red);
|
||||||
int o = repairMapper.repairTimeOutOrange(orange);
|
int o = repairMapper.repairTimeoutOrange(orange);
|
||||||
return r + o;
|
return r + o;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int repairForewarnWarn() {
|
||||||
|
List<DictData> 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
|
@Override
|
||||||
public int removeWarn() {
|
public int removeWarn() {
|
||||||
return repairMapper.removeWarn();
|
return repairMapper.removeWarn();
|
||||||
|
@ -267,25 +267,39 @@
|
|||||||
#{id}
|
#{id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</delete>
|
</delete>
|
||||||
|
<!-- 预警 -->
|
||||||
<update id="repairTimeOutRed" parameterType="Integer">
|
<update id="repairForewarnRed" parameterType="Integer">
|
||||||
update ics_repair set warn=5 where delete_flag=0 and status <![CDATA[ < ]]> 9 and timeout is not null and warn <![CDATA[ <> ]]> 5 and TIMESTAMPDIFF(DAY,NOW(),timeout) <![CDATA[ <= ]]> #{day}
|
update ics_repair set warn=5 where delete_flag=0 and status <![CDATA[ < ]]> 9 and preDate is not null and warn <![CDATA[ <> ]]> 5 and TIMESTAMPDIFF(DAY,NOW(),preDate) <![CDATA[ <= ]]> #{day}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="repairTimeOutOrange" parameterType="Integer">
|
<update id="repairForewarnOrange" parameterType="Integer">
|
||||||
update ics_repair set warn=3 where delete_flag=0 and status <![CDATA[ < ]]> 9 and timeout is not null and warn <![CDATA[ <= ]]> 1 and TIMESTAMPDIFF(DAY,NOW(),timeout) <![CDATA[ <= ]]> #{day}
|
update ics_repair set warn=3 where delete_flag=0 and status <![CDATA[ < ]]> 9 and preDate is not null and warn <![CDATA[ <= ]]> 1 and TIMESTAMPDIFF(DAY,NOW(),preDate) <![CDATA[ <= ]]> #{day}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="removeWarn">
|
<update id="removeWarn">
|
||||||
update ics_repair set warn=0 where delete_flag=0 and status <![CDATA[ >= ]]> 9 and warn <![CDATA[ > ]]> 0
|
update ics_repair set warn=0 where delete_flag=0 and status <![CDATA[ >= ]]> 9 and warn <![CDATA[ > ]]> 0
|
||||||
</update>
|
</update>
|
||||||
|
<!-- 自动好评 -->
|
||||||
<update id="repairGoodEval">
|
<update id="repairGoodEval">
|
||||||
update ics_repair set eval_service=5,eval_time=NOW(),eval_user_id=-1,status=13
|
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()) <![CDATA[ >= ]]> 7
|
where delete_flag=0 and status=9 and end_date is not null and TIMESTAMPDIFF(DAY,end_date,NOW()) <![CDATA[ >= ]]> 7
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<!-- 防止刷单 -->
|
||||||
<select id="submitCheck" parameterType="String" resultType="Integer">
|
<select id="submitCheck" parameterType="String" resultType="Integer">
|
||||||
select count(id) from ics_repair where delete_flag=0 and create_by= #{userId} and TIMESTAMPDIFF(MINUTE,create_time,NOW()) <![CDATA[ <= ]]> 3
|
select count(id) from ics_repair where delete_flag=0 and create_by= #{userId} and TIMESTAMPDIFF(MINUTE,create_time,NOW()) <![CDATA[ <= ]]> 3
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 超时告警,按顺序执行 -->
|
||||||
|
<update id="repairTimeoutRed" parameterType="Integer">
|
||||||
|
update ics_repair set timeout=5 where delete_flag=0 and status <![CDATA[ < ]]> 9 and preDate is not null and timeout <![CDATA[ <> ]]> 5 and TIMESTAMPDIFF(DAY,preDate,now()) <![CDATA[ >= ]]> #{day}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<update id="repairTimeoutOrange" parameterType="Integer">
|
||||||
|
update ics_repair set timeout=3 where delete_flag=0 and status <![CDATA[ < ]]> 9 and preDate is not null and timeout <![CDATA[ <= ]]> 1 and TIMESTAMPDIFF(DAY,preDate,now()) <![CDATA[ >= ]]> #{day}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
@ -17,16 +17,26 @@ import org.springframework.stereotype.Service;
|
|||||||
public class RepairTask {
|
public class RepairTask {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工单超时预警
|
* 工单超时预警;还未超时
|
||||||
*/
|
*/
|
||||||
public void repairTimeOut() {
|
public void repairForewarn() {
|
||||||
IRepairService repairService = SpringUtils.getBean(IRepairService.class);
|
IRepairService repairService = SpringUtils.getBean(IRepairService.class);
|
||||||
int num = repairService.repairTimeOutWarn();
|
int num = repairService.repairForewarnWarn();
|
||||||
log.info("已对" + num + "个工单超时预警");
|
log.info("已对" + num + "个工单超时预警");
|
||||||
num = repairService.removeWarn();
|
num = repairService.removeWarn();
|
||||||
log.info("已对" + num + "个工单解除预警");
|
log.info("已对" + num + "个工单解除预警");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单超时告警;已经超时
|
||||||
|
*/
|
||||||
|
public void repairTimeOut() {
|
||||||
|
IRepairService repairService = SpringUtils.getBean(IRepairService.class);
|
||||||
|
int num = repairService.repairTimeOut();
|
||||||
|
log.info("已对" + num + "个工单超时告警");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工单完成7天后未评价 则 自动好评
|
* 工单完成7天后未评价 则 自动好评
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user