| | |
| | | import java.util.List; |
| | | |
| | | import static com.ycl.common.constant.ProcessOverTimeConstants.GREEN; |
| | | import static com.ycl.common.constant.ProcessOverTimeConstants.NORMAL; |
| | | |
| | | /** |
| | | * 任务监听器 |
| | |
| | | /** |
| | | * 黄码时间 |
| | | */ |
| | | private FixedValue yellowTime; |
| | | private FixedValue 黄码时长; |
| | | /** |
| | | * 红码时间 |
| | | */ |
| | | private FixedValue redTime; |
| | | private FixedValue 红码时长; |
| | | /** |
| | | * 办理期限 |
| | | */ |
| | | private FixedValue 办理期限; |
| | | /** |
| | | * 计时起始节点定义Id |
| | | */ |
| | | private FixedValue startTaskId; |
| | | private FixedValue 开始计时节点; |
| | | |
| | | @Override |
| | | public void notify(DelegateTask delegateTask) { |
| | |
| | | processCoding.setTaskId(taskId); |
| | | processCoding.setProcessInsId(processInstanceId); |
| | | processCoding.setTaskDefKey(delegateTask.getTaskDefinitionKey()); |
| | | processCoding.setStatus(GREEN); |
| | | if (yellowTime != null && yellowTime.getValue(delegateTask) != null) { |
| | | processCoding.setYellowTime(Integer.parseInt(yellowTime.getValue(delegateTask).toString())); |
| | | //设置状态,查询是否有这个定义节点的历史数据,取最新的一条状态码,避免定时任务还未执行的误差 |
| | | List<ProcessCoding> processCodings = processCodingMapper.selectList(new QueryWrapper<ProcessCoding>() |
| | | .eq("process_ins_id",processInstanceId) |
| | | .eq("task_def_key", delegateTask.getTaskDefinitionKey()) |
| | | .orderByDesc("gmt_create")); |
| | | if(!CollectionUtils.isEmpty(processCodings)){ |
| | | processCoding.setStatus(processCodings.get(0).getStatus()); |
| | | processCoding.setOvertimeStatus(processCodings.get(0).getOvertimeStatus()); |
| | | }else { |
| | | processCoding.setStatus(GREEN); |
| | | processCoding.setOvertimeStatus(NORMAL); |
| | | } |
| | | if (redTime != null && redTime.getValue(delegateTask) != null) { |
| | | processCoding.setRedTime(Integer.parseInt(redTime.getValue(delegateTask).toString())); |
| | | |
| | | if (黄码时长 != null && 黄码时长.getValue(delegateTask) != null) { |
| | | processCoding.setYellowTime(黄码时长.getValue(delegateTask).toString()); |
| | | } |
| | | if (红码时长 != null && 红码时长.getValue(delegateTask) != null) { |
| | | processCoding.setRedTime(红码时长.getValue(delegateTask).toString()); |
| | | } |
| | | if (办理期限 != null && 办理期限.getValue(delegateTask) != null) { |
| | | processCoding.setOvertime(办理期限.getValue(delegateTask).toString()); |
| | | } |
| | | //设置开始节点 |
| | | if (startTaskId != null && startTaskId.getValue(delegateTask) != null) { |
| | | String taskDefKey = startTaskId.getValue(delegateTask).toString(); |
| | | if (开始计时节点 != null && 开始计时节点.getValue(delegateTask) != null) { |
| | | String taskDefKey = 开始计时节点.getValue(delegateTask).toString(); |
| | | //开始节点从历史节点查询 取多条中最早的一条 |
| | | List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery() |
| | | .processInstanceId(processInstanceId) |