BUG修复

This commit is contained in:
pengjie 2024-06-20 18:46:39 +08:00
parent 94f4d6cddc
commit e38d615492

View File

@ -83,8 +83,9 @@ public class XzFlowController {
List<HistoricProcessInstance> list = instanceQuery.list();
List<ProcessInstanceVo> processInstanceVos = getInstances(list);
processInstanceVos = processInstanceVos.stream().filter(p -> p.getResult().toString().equals(state)).collect(Collectors.toList());
List<String> formIds = processInstanceVos.stream().map(p -> p.getFormId()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
List<WflowModelHistorys> wflowModelHistorys = wflowModelHistorysMapper.selectList(null);
List<WflowModelGroups> wflowModelGroups = wflowModelGroupsMapper.selectList(Wrappers.<WflowModelGroups>lambdaQuery()
.ne(WflowModelGroups::getGroupName, "已停用"));
List<Map<String, Object>> resultList = new ArrayList<>();
Map<String, Object> total = new HashMap<>();
if (state.equals("RUNNING")) {
@ -96,14 +97,19 @@ public class XzFlowController {
}
total.put("num", processInstanceVos.size());
resultList.add(total);
for (String formId : formIds) {
for (WflowModelGroups wflowModelGroup : wflowModelGroups) {
Map<String, Object> resultMap = new HashMap<>();
List<WflowModelHistorys> collect = wflowModelHistorys.stream().filter(w -> w.getFormId().equals(formId)).collect(Collectors.toList());
resultMap.put("name", collect.get(collect.size() - 1).getFormName());
long count = processInstanceVos.stream().filter(p -> p.getFormId().equals(formId)).count();
resultMap.put("name", wflowModelGroup.getGroupName());
List<WflowModelHistorys> modelHistorysList = wflowModelHistorys.stream().filter(w -> w.getGroupId() == wflowModelGroup.getGroupId()).collect(Collectors.toList());
List<String> collect = modelHistorysList.stream().map(m -> m.getFormId()).collect(Collectors.toList());
long count = processInstanceVos.stream().filter(p -> collect.contains(p.getFormId())).count();
int number = (int) count;
resultMap.put("num", number);
resultMap.put("ratio", new BigDecimal(number).divide(new BigDecimal(processInstanceVos.size()), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)));
if (processInstanceVos.size() == 0) {
resultMap.put("ratio", 0);
} else {
resultMap.put("ratio", new BigDecimal(number).divide(new BigDecimal(processInstanceVos.size()), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)));
}
resultList.add(resultMap);
}
resultList = resultList.stream().sorted((o1, o2) -> MapUtils.getInteger(o2, "num").compareTo(MapUtils.getInteger(o1, "num"))).collect(Collectors.toList());