|
@@ -1406,6 +1406,32 @@ public class ApsServiceImpl implements ApsService {
|
|
apsSolutionZz.setStartTime(apsSolution.getStartTime());
|
|
apsSolutionZz.setStartTime(apsSolution.getStartTime());
|
|
apsSolutionZz.setEquipmentList(apsSolution.getEquipmentList());
|
|
apsSolutionZz.setEquipmentList(apsSolution.getEquipmentList());
|
|
apsSolutionZz.setProcessesList(zzprocesList);
|
|
apsSolutionZz.setProcessesList(zzprocesList);
|
|
|
|
+ // 铸轧合并工序
|
|
|
|
+ List<ProductionProcesses> mergeZzs = new ArrayList<>();
|
|
|
|
+ Map<String, List<ProductionProcesses>> bsPros = zzprocesList.stream().collect(Collectors.groupingBy(ProductionProcesses::getUniqueBsProcessesId));
|
|
|
|
+ bsPros.forEach((k,v)->{
|
|
|
|
+ if(v.size()>1){
|
|
|
|
+ if("铸轧".equals(v.get(0).getProcessType())){
|
|
|
|
+ ProductionProcesses productionProcesses = v.get(0);
|
|
|
|
+ List<String> mergeProOrders = new ArrayList<>();
|
|
|
|
+ mergeProOrders.add(productionProcesses.getId());
|
|
|
|
+ productionProcesses.setMergeProOrders(mergeProOrders);
|
|
|
|
+ for (int i = 0; i < v.size(); i++) {
|
|
|
|
+ if(i>0){
|
|
|
|
+ productionProcesses.getMergeProOrders().add(v.get(i).getId());
|
|
|
|
+ productionProcesses.setProduceTime(productionProcesses.getProduceTime()+v.get(i).getProduceTime());
|
|
|
|
+ productionProcesses.setOpeProducePcNum(v.size());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ mergeZzs.add(productionProcesses);
|
|
|
|
+ }else{
|
|
|
|
+ mergeZzs.addAll(v);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ mergeZzs.addAll(v);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ apsSolutionZz.setProcessesList(mergeZzs);
|
|
|
|
|
|
// 排程运行时长
|
|
// 排程运行时长
|
|
EnvironmentMode mode = EnvironmentMode.REPRODUCIBLE;
|
|
EnvironmentMode mode = EnvironmentMode.REPRODUCIBLE;
|
|
@@ -1449,7 +1475,8 @@ public class ApsServiceImpl implements ApsService {
|
|
|
|
|
|
for (ProductionProcesses process : apsSolution.getProcessesList()) {
|
|
for (ProductionProcesses process : apsSolution.getProcessesList()) {
|
|
if(process.getProcessType().equals("铸轧") || (process.getPreviousProcessesIds() == null || process.getPreviousProcessesIds().size() == 0)){
|
|
if(process.getProcessType().equals("铸轧") || (process.getPreviousProcessesIds() == null || process.getPreviousProcessesIds().size() == 0)){
|
|
- List<ProductionProcesses> collect = solvedBalance1.getProcessesList().stream().filter(v -> v.getId().equals(process.getId())).collect(Collectors.toList());
|
|
|
|
|
|
+ List<ProductionProcesses> collect = solvedBalance1.getProcessesList().stream().filter(v ->
|
|
|
|
+ v.getId().equals(process.getId()) && (v.getMergeProOrders() == null || v.getMergeProOrders().size() == 0)).collect(Collectors.toList());
|
|
if(collect != null && collect.size()>0){
|
|
if(collect != null && collect.size()>0){
|
|
process.setStartTime(collect.get(0).getStartTime());
|
|
process.setStartTime(collect.get(0).getStartTime());
|
|
process.setEndTime(collect.get(0).getEndTime());
|
|
process.setEndTime(collect.get(0).getEndTime());
|
|
@@ -1460,6 +1487,30 @@ public class ApsServiceImpl implements ApsService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ List<ProductionProcesses> mergeZzLists = solvedBalance1.getProcessesList().stream().filter(v ->v.getMergeProOrders() != null && v.getMergeProOrders().size() > 0).collect(Collectors.toList());
|
|
|
|
+ if(mergeZzLists != null && mergeZzLists.size() > 0){
|
|
|
|
+ for (ProductionProcesses mergeZz : mergeZzLists) {
|
|
|
|
+ List<String> mergeProOrders = mergeZz.getMergeProOrders();
|
|
|
|
+ boolean hasreplacenextLock = false;
|
|
|
|
+ for (int i = mergeProOrders.size()-1; i >= 0; i--) {
|
|
|
|
+ ProductionProcesses po = null;
|
|
|
|
+ for (ProductionProcesses productionProcesses : apsSolution.getProcessesList()) {
|
|
|
|
+ if(productionProcesses.getId().equals(mergeProOrders.get(i))){
|
|
|
|
+ po = productionProcesses;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ po.setStartTime(mergeZz.getEndTime().minusMinutes(po.getUnitProduceTime()));
|
|
|
|
+ po.setEndTime(mergeZz.getEndTime());
|
|
|
|
+ po.setEquipmentId(mergeZz.getEquipmentId());
|
|
|
|
+ po.setEquipment(mergeZz.getEquipment());
|
|
|
|
+ po.setDelay(mergeZz.getDelay());
|
|
|
|
+ po.setIfLock(true);
|
|
|
|
+ mergeZz.setProduceTime(mergeZz.getProduceTime()-po.getUnitProduceTime());
|
|
|
|
+ mergeZz.setEndTime(mergeZz.getEndTime().minusMinutes(po.getUnitProduceTime()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|