|
@@ -335,58 +335,64 @@ public class GanttServiceImpl implements GanttService {
|
|
|
// 具体工序作业的对象
|
|
|
ScheduleGanttVo dateVo;
|
|
|
int workShopIndex = 1;
|
|
|
- // 对数据按照 计划开始时间+计划结束时间 分组
|
|
|
- LinkedHashMap<String, List<GanttVos>> planDataMap = apsProcessOperationProcessEquDos.stream().collect(Collectors.groupingBy(info -> {
|
|
|
- if (COMBINED_PROCESSING.equals(info.getProcessway())) {
|
|
|
- return info.getPlanstartdate().toString() + info.getPlanenddate().toString();
|
|
|
+ // 对数据按照设备进行分组
|
|
|
+ LinkedHashMap<String, List<GanttVos>> processMap = apsProcessOperationProcessEquDos.stream().collect(Collectors.groupingBy(GanttVos::getProcessdeviceid,
|
|
|
+ LinkedHashMap::new, Collectors.toList()));
|
|
|
+ for (Map.Entry<String, List<GanttVos>> deviceEntry : processMap.entrySet()) {
|
|
|
+ // 对数据按照 计划开始时间+计划结束时间 分组
|
|
|
+ LinkedHashMap<String, List<GanttVos>> planDataMap = deviceEntry.getValue().stream().collect(Collectors.groupingBy(info -> {
|
|
|
+ if (COMBINED_PROCESSING.equals(info.getProcessway())) {
|
|
|
+ return info.getPlanstartdate().toString() + info.getPlanenddate().toString();
|
|
|
+ }
|
|
|
+ return info.getUuid();
|
|
|
+ },
|
|
|
+ LinkedHashMap::new, Collectors.toList()));
|
|
|
+ for (Map.Entry<String, List<GanttVos>> planDateEntry : planDataMap.entrySet()) {
|
|
|
+ List<GanttVos> ganttVos = planDateEntry.getValue();
|
|
|
+ ganttVos.forEach(data -> {
|
|
|
+ String number = processAndNumberMap.getOrDefault(data.getProcessid(), "");
|
|
|
+ if (StringUtils.isNotBlank(number) && number.split(DEFAULT_SPLIT).length == 2) {
|
|
|
+ data.setInputnumber(number.split(DEFAULT_SPLIT)[0]);
|
|
|
+ data.setOutputnumber(number.split(DEFAULT_SPLIT)[1]);
|
|
|
}
|
|
|
- return info.getUuid();
|
|
|
- },
|
|
|
- LinkedHashMap::new, Collectors.toList()));
|
|
|
- for (Map.Entry<String, List<GanttVos>> planDateEntry : planDataMap.entrySet()) {
|
|
|
- List<GanttVos> ganttVos = planDateEntry.getValue();
|
|
|
- ganttVos.forEach(data -> {
|
|
|
- String number = processAndNumberMap.getOrDefault(data.getProcessid(), "");
|
|
|
- if (StringUtils.isNotBlank(number) && number.split(DEFAULT_SPLIT).length == 2) {
|
|
|
- data.setInputnumber(number.split(DEFAULT_SPLIT)[0]);
|
|
|
- data.setOutputnumber(number.split(DEFAULT_SPLIT)[1]);
|
|
|
- }
|
|
|
- });
|
|
|
- List<String> itemNames = new ArrayList<>();
|
|
|
- // 按照工序作业明细ID 进行分组 并且获取 图列的 名称和描述
|
|
|
- LinkedHashMap<String, List<GanttVos>> collect = ganttVos.stream().collect(Collectors.groupingBy(GanttVos::getId, LinkedHashMap::new, Collectors.toList()));
|
|
|
+ });
|
|
|
+ List<String> itemNames = new ArrayList<>();
|
|
|
+ // 按照工序作业明细ID 进行分组 并且获取 图列的 名称和描述
|
|
|
+ LinkedHashMap<String, List<GanttVos>> collect = ganttVos.stream().collect(Collectors.groupingBy(GanttVos::getId, LinkedHashMap::new, Collectors.toList()));
|
|
|
|
|
|
- String itemName = collect.values().stream().map(info -> {
|
|
|
- return String.format(GANTT_ITEM_NAME, info.get(0).getInmatercondition(), info.get(0).getPlanprocessrall(),
|
|
|
- info.get(0).getCustomorderno(), info.get(0).getCustomerabbreviation(), info.get(0).getDeliverydate());
|
|
|
- }).collect(Collectors.joining("</br>"));
|
|
|
- itemNames.add(itemName);
|
|
|
- dateVo = new ScheduleGanttVo();
|
|
|
- dateVo.setId(String.valueOf(workShopIndex++));
|
|
|
- dateVo.setParent(ganttVos.get(0).getProcessdeviceid());
|
|
|
- dateVo.setText(StringUtils.join(itemNames, "</br>"));
|
|
|
- dateVo.setOpen(false);
|
|
|
- dateVo.setStart_date(ganttVos.get(0).getPlanstartdate());
|
|
|
- dateVo.setEnd_date(ganttVos.get(0).getPlanenddate());
|
|
|
- dateVo.setName(StringUtils.join(itemNames, "</br>"));
|
|
|
- dateVo.setProcessdetailids(ganttVos.stream().map(GanttVos::getId).distinct().collect(Collectors.joining(",")));
|
|
|
- dateVo.setProcessids(ganttVos.stream().map(GanttVos::getProcessid).distinct().collect(Collectors.joining(",")));
|
|
|
- dateVo.setGanttVos(ganttVos);
|
|
|
- dateVo.setGanttprocessstatus(ganttVos.get(0).getGanttprocessstatus());
|
|
|
- dateVo.setWorkstatus(ganttVos.stream().map(GanttVos::getWorkstatus).distinct().collect(Collectors.joining(",")));
|
|
|
- dateVo.setLockmark(ganttVos.stream().map(GanttVos::getLockmark).distinct().collect(Collectors.joining(",")));
|
|
|
- dateVo.setProductionorderid(ganttVos.stream().map(GanttVos::getProductionorderid).collect(Collectors.joining(",")));
|
|
|
- // 冲突描述
|
|
|
- List<GanttVos> conflictdes = ganttVos.stream().filter(v -> StringUtils.isNotBlank(v.getConflictdes())).collect(Collectors.toList());
|
|
|
- if (!conflictdes.isEmpty()) {
|
|
|
- String desc = conflictdes.stream().map(GanttVos::getConflictdes).collect(Collectors.joining(";"));
|
|
|
- dateVo.setConflictdes(desc);
|
|
|
- dateVo.setSoftconflictdes(conflictdes.stream().map(GanttVos::getSoftconflictdes).collect(Collectors.joining(";")));
|
|
|
- // 有冲突描述时
|
|
|
- dateVo.setConflict(StringUtils.isBlank(dateVo.getConflictdes()) && StringUtils.isBlank(dateVo.getSoftconflictdes()));
|
|
|
+ String itemName = collect.values().stream().map(info -> {
|
|
|
+ return String.format(GANTT_ITEM_NAME, info.get(0).getInmatercondition(), info.get(0).getPlanprocessrall(),
|
|
|
+ info.get(0).getCustomorderno(), info.get(0).getCustomerabbreviation(), info.get(0).getDeliverydate());
|
|
|
+ }).collect(Collectors.joining("</br>"));
|
|
|
+ itemNames.add(itemName);
|
|
|
+ dateVo = new ScheduleGanttVo();
|
|
|
+ dateVo.setId(String.valueOf(workShopIndex++));
|
|
|
+ dateVo.setParent(deviceEntry.getKey());
|
|
|
+ dateVo.setText(StringUtils.join(itemNames, "</br>"));
|
|
|
+ dateVo.setOpen(false);
|
|
|
+ dateVo.setStart_date(ganttVos.get(0).getPlanstartdate());
|
|
|
+ dateVo.setEnd_date(ganttVos.get(0).getPlanenddate());
|
|
|
+ dateVo.setName(StringUtils.join(itemNames, "</br>"));
|
|
|
+ dateVo.setProcessdetailids(ganttVos.stream().map(GanttVos::getId).distinct().collect(Collectors.joining(",")));
|
|
|
+ dateVo.setProcessids(ganttVos.stream().map(GanttVos::getProcessid).distinct().collect(Collectors.joining(",")));
|
|
|
+ dateVo.setGanttVos(ganttVos);
|
|
|
+ dateVo.setGanttprocessstatus(ganttVos.get(0).getGanttprocessstatus());
|
|
|
+ dateVo.setWorkstatus(ganttVos.stream().map(GanttVos::getWorkstatus).distinct().collect(Collectors.joining(",")));
|
|
|
+ dateVo.setLockmark(ganttVos.stream().map(GanttVos::getLockmark).distinct().collect(Collectors.joining(",")));
|
|
|
+ dateVo.setProductionorderid(ganttVos.stream().map(GanttVos::getProductionorderid).collect(Collectors.joining(",")));
|
|
|
+ // 冲突描述
|
|
|
+ List<GanttVos> conflictdes = ganttVos.stream().filter(v -> StringUtils.isNotBlank(v.getConflictdes())).collect(Collectors.toList());
|
|
|
+ if (!conflictdes.isEmpty()) {
|
|
|
+ String desc = conflictdes.stream().map(GanttVos::getConflictdes).collect(Collectors.joining(";"));
|
|
|
+ dateVo.setConflictdes(desc);
|
|
|
+ dateVo.setSoftconflictdes(conflictdes.stream().map(GanttVos::getSoftconflictdes).collect(Collectors.joining(";")));
|
|
|
+ // 有冲突描述时
|
|
|
+ dateVo.setConflict(StringUtils.isBlank(dateVo.getConflictdes()) && StringUtils.isBlank(dateVo.getSoftconflictdes()));
|
|
|
+ }
|
|
|
+ resultVo.add(dateVo);
|
|
|
}
|
|
|
- resultVo.add(dateVo);
|
|
|
}
|
|
|
+
|
|
|
return resultVo;
|
|
|
// dateVo.setTooltip(itemPrefix + itemDesc);
|
|
|
// dateVo.setDesc(itemPrefix + itemDesc);
|