|
@@ -384,6 +384,48 @@ public class GanttServiceImpl implements GanttService {
|
|
|
data.setOutputnumber(number.split(DEFAULT_SPLIT)[1]);
|
|
|
}
|
|
|
});
|
|
|
+ Date actualStartDate = null;
|
|
|
+ Date actualFinishDate = null;
|
|
|
+ //查询实际开工时间为空的列表
|
|
|
+ List<GanttVos> nullActualDateList = ganttVos.stream()
|
|
|
+ .filter(g -> g.getActualstartdate() == null)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (nullActualDateList.isEmpty()){
|
|
|
+ //取出最早实际开工时间
|
|
|
+ Optional<GanttVos> minDate = ganttVos.stream()
|
|
|
+ .min(Comparator.comparing(GanttVos::getActualstartdate));
|
|
|
+ if(minDate.isPresent()&&minDate.get().getActualstartdate()!= null){
|
|
|
+ actualStartDate = minDate.get().getActualstartdate();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查询实际完工时间为空的列表
|
|
|
+ List<GanttVos> nullActualFinishDateList = ganttVos.stream().filter(g -> g.getActualfinishdate() == null)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (nullActualFinishDateList.isEmpty()){
|
|
|
+ //取出最晚实际完工时间
|
|
|
+ Optional<GanttVos> maxDate = ganttVos.stream()
|
|
|
+ .max(Comparator.comparing(GanttVos::getActualfinishdate));
|
|
|
+ if(maxDate.isPresent()&&maxDate.get().getActualfinishdate()!= null){
|
|
|
+ actualFinishDate = maxDate.get().getActualfinishdate();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String workstatus = "";
|
|
|
+ Map<String, Integer> keyValueMap = new HashMap<>(16);
|
|
|
+ // 向键值对数组中添加元素
|
|
|
+ keyValueMap.put("待开工", 30);
|
|
|
+ keyValueMap.put("加工中", 40);
|
|
|
+ keyValueMap.put("已完工", 50);
|
|
|
+ //查询出所有不为空的状态列表
|
|
|
+ List<GanttVos> filteredWorkStatus = ganttVos.stream()
|
|
|
+ .filter(g -> g.getWorkstatus() != null && !g.getWorkstatus().isEmpty())
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (!filteredWorkStatus.isEmpty()){
|
|
|
+ GanttVos minWorkStatus = (filteredWorkStatus.stream()
|
|
|
+ .min(Comparator.comparingInt(p -> keyValueMap.get(p.getWorkstatus())))
|
|
|
+ .orElse(null));
|
|
|
+ //取出最早实际开工时间
|
|
|
+ workstatus = minWorkStatus.getWorkstatus();
|
|
|
+ }
|
|
|
// List<String> itemNames = new ArrayList<>();
|
|
|
// 按照工序作业明细ID 进行分组 并且获取 图列的 名称和描述
|
|
|
// LinkedHashMap<String, List<GanttVos>> collect = ganttVos.stream().collect(Collectors.groupingBy(GanttVos::getId, LinkedHashMap::new, Collectors.toList()));
|
|
@@ -421,6 +463,9 @@ public class GanttServiceImpl implements GanttService {
|
|
|
// 有冲突描述时
|
|
|
dateVo.setConflict(StringUtils.isBlank(dateVo.getConflictdes()) && StringUtils.isBlank(dateVo.getSoftconflictdes()));
|
|
|
}
|
|
|
+ dateVo.setGanttprocessstatus(GANTT_PROCESS_STATUS_MAP.getOrDefault(workstatus, ""));
|
|
|
+ dateVo.setActualstartdate(actualStartDate);
|
|
|
+ dateVo.setActualfinishdate(actualFinishDate);
|
|
|
resultVo.add(dateVo);
|
|
|
}
|
|
|
}
|