| | |
| | | } |
| | | //判断是否超时 |
| | | Date startTime = startTaskMap.get(processCoding.getStartTaskId()); |
| | | Long yellowTime = null; |
| | | Long redTime = null; |
| | | String yellowTimeStr = processCoding.getYellowTime(); |
| | | if (StringUtils.isNotBlank(yellowTimeStr)) { |
| | | String[] yellowTimeArr = yellowTimeStr.split("-"); |
| | | // 解析天数和小时数 |
| | | int days = Integer.parseInt(yellowTimeArr[0]); |
| | | int hours = Integer.parseInt(yellowTimeArr[1]); |
| | | yellowTime = (days * 24L + hours) * 3600L; |
| | | try { |
| | | Long yellowTime = null; |
| | | Long redTime = null; |
| | | String yellowTimeStr = processCoding.getYellowTime(); |
| | | if (StringUtils.isNotBlank(yellowTimeStr)) { |
| | | String[] yellowTimeArr = yellowTimeStr.split("-"); |
| | | // 解析天数和小时数 |
| | | int days = Integer.parseInt(yellowTimeArr[0]); |
| | | int hours = Integer.parseInt(yellowTimeArr[1]); |
| | | yellowTime = (days * 24L + hours) * 3600L; |
| | | } |
| | | String redTimeStr = processCoding.getRedTime(); |
| | | if (StringUtils.isNotBlank(redTimeStr)) { |
| | | String[] redTimeArr = redTimeStr.split("-"); |
| | | // 解析天数和小时数 |
| | | int days = Integer.parseInt(redTimeArr[0]); |
| | | int hours = Integer.parseInt(redTimeArr[1]); |
| | | redTime = (days * 24L + hours) * 3600L; |
| | | } |
| | | if (startTime == null) continue; |
| | | long durationDay = (now.getTime() - startTime.getTime()) / 1000; |
| | | String status = GREEN; // 默认状态为绿色 |
| | | if (redTime != null && durationDay >= redTime) { |
| | | status = RED; // 如果超过红色时间阈值,则状态为红色 |
| | | } else if (yellowTime != null && durationDay >= yellowTime) { |
| | | status = YELLOW; // 否则,如果超过黄色时间阈值,则状态为黄色 |
| | | } |
| | | List<String> processInsIds = map.get(status); |
| | | processInsIds.add(task.getProcessInstanceId()); |
| | | processCoding.setStatus(status); |
| | | list.add(processCoding); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error(e.getMessage(),"赋码时间格式有误"); |
| | | } |
| | | String redTimeStr = processCoding.getRedTime(); |
| | | if (StringUtils.isNotBlank(redTimeStr)) { |
| | | String[] redTimeArr = redTimeStr.split("-"); |
| | | // 解析天数和小时数 |
| | | int days = Integer.parseInt(redTimeArr[0]); |
| | | int hours = Integer.parseInt(redTimeArr[1]); |
| | | redTime = (days * 24L + hours) * 3600L; |
| | | } |
| | | if (startTime == null) continue; |
| | | long durationDay = (now.getTime() - startTime.getTime()) / 1000; |
| | | String status = GREEN; // 默认状态为绿色 |
| | | if (redTime != null && durationDay >= redTime) { |
| | | status = RED; // 如果超过红色时间阈值,则状态为红色 |
| | | } else if (yellowTime != null && durationDay >= yellowTime) { |
| | | status = YELLOW; // 否则,如果超过黄色时间阈值,则状态为黄色 |
| | | } |
| | | List<String> processInsIds = map.get(status); |
| | | processInsIds.add(task.getProcessInstanceId()); |
| | | processCoding.setStatus(status); |
| | | list.add(processCoding); |
| | | } |
| | | //更新项目码 |
| | | map.forEach((key, value) -> updateProjectCoding(value, key)); |