|
@@ -335,39 +335,76 @@ public class ApsServiceImpl implements ApsService {
|
|
|
Solver<ApsSolution> solver1 = solverFactory1.buildSolver();
|
|
|
// 按照宽度排序
|
|
|
// apsSolutionTh.getProcessesList().sort(Comparator.comparing(ProductionProcesses::getSeriesProduceMark));
|
|
|
- Collections.sort(apsSolutionTh.getProcessesList(),(v1,v2)->{
|
|
|
- int a = 0;
|
|
|
- // 合金
|
|
|
- String alloy1 = v1.getVolumeMetal();
|
|
|
- String alloy2 = v2.getVolumeMetal();
|
|
|
- // 合金状态
|
|
|
- String alloystatus1 = v1.getVolumeMetalstate();
|
|
|
- String alloystatus2 = v2.getVolumeMetalstate();
|
|
|
- // 宽度
|
|
|
- BigDecimal prowidth1 = v1.getVolumeWidth();
|
|
|
- BigDecimal prowidth2 = v2.getVolumeWidth();
|
|
|
- if(prowidth1.compareTo(prowidth2) == 0){
|
|
|
+ if("dd".equals(productionScheduleVo.getScheduleType().getScheduleType())){
|
|
|
+ Collections.sort(apsSolutionTh.getProcessesList(),(v1,v2)->{
|
|
|
+ int a = 0;
|
|
|
// 合金
|
|
|
- if(alloy1.compareTo(alloy2) == 0){
|
|
|
- // 合金状态
|
|
|
- if(alloystatus1 == null || alloystatus2 == null || alloystatus1.compareTo(alloystatus2) == 0){
|
|
|
- if(v1.getApsOverallConfig().getStartTime().compareTo(v2.getApsOverallConfig().getStartTime()) == 0){
|
|
|
+ String alloy1 = v1.getVolumeMetal();
|
|
|
+ String alloy2 = v2.getVolumeMetal();
|
|
|
+ // 合金状态
|
|
|
+ String alloystatus1 = v1.getVolumeMetalstate();
|
|
|
+ String alloystatus2 = v2.getVolumeMetalstate();
|
|
|
+ // 宽度
|
|
|
+ BigDecimal prowidth1 = v1.getVolumeWidth();
|
|
|
+ BigDecimal prowidth2 = v2.getVolumeWidth();
|
|
|
+ /*if(prowidth1.compareTo(prowidth2) == 0){*/
|
|
|
+ // 合金
|
|
|
+ if(alloy1.compareTo(alloy2) == 0){
|
|
|
+ // 合金状态
|
|
|
+ if(alloystatus1 == null || alloystatus2 == null || alloystatus1.compareTo(alloystatus2) == 0){
|
|
|
+ if(v1.getApsOverallConfig().getStartTime().compareTo(v2.getApsOverallConfig().getStartTime()) == 0){
|
|
|
+ a = v2.getVolumeWidth().compareTo(v1.getVolumeWidth());
|
|
|
+// a = 0;
|
|
|
+ }else{
|
|
|
+ a = v2.getApsOverallConfig().getStartTime().compareTo(v1.getApsOverallConfig().getStartTime());
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ a = alloystatus1.compareTo(alloystatus2);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ a = alloy1.compareTo(alloy2);
|
|
|
+ }
|
|
|
+ /*}else{
|
|
|
+ a = prowidth2.compareTo(prowidth1);
|
|
|
+ }*/
|
|
|
+ return a;
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ Collections.sort(apsSolutionTh.getProcessesList(),(v1,v2)->{
|
|
|
+ int a = 0;
|
|
|
+ // 合金
|
|
|
+ String alloy1 = v1.getVolumeMetal();
|
|
|
+ String alloy2 = v2.getVolumeMetal();
|
|
|
+ // 合金状态
|
|
|
+ String alloystatus1 = v1.getVolumeMetalstate();
|
|
|
+ String alloystatus2 = v2.getVolumeMetalstate();
|
|
|
+ // 宽度
|
|
|
+ BigDecimal prowidth1 = v1.getVolumeWidth();
|
|
|
+ BigDecimal prowidth2 = v2.getVolumeWidth();
|
|
|
+ if(prowidth1.compareTo(prowidth2) == 0){
|
|
|
+ // 合金
|
|
|
+ if(alloy1.compareTo(alloy2) == 0){
|
|
|
+ // 合金状态
|
|
|
+ if(alloystatus1 == null || alloystatus2 == null || alloystatus1.compareTo(alloystatus2) == 0){
|
|
|
+ if(v1.getApsOverallConfig().getStartTime().compareTo(v2.getApsOverallConfig().getStartTime()) == 0){
|
|
|
// a = v2.getVolumeWidth().compareTo(v1.getVolumeWidth());
|
|
|
- a = 0;
|
|
|
+ a = 0;
|
|
|
+ }else{
|
|
|
+ a = v2.getApsOverallConfig().getStartTime().compareTo(v1.getApsOverallConfig().getStartTime());
|
|
|
+ }
|
|
|
}else{
|
|
|
- a = v2.getApsOverallConfig().getStartTime().compareTo(v1.getApsOverallConfig().getStartTime());
|
|
|
+ a = alloystatus1.compareTo(alloystatus2);
|
|
|
}
|
|
|
}else{
|
|
|
- a = alloystatus1.compareTo(alloystatus2);
|
|
|
+ a = alloy1.compareTo(alloy2);
|
|
|
}
|
|
|
}else{
|
|
|
- a = alloy1.compareTo(alloy2);
|
|
|
+ a = prowidth2.compareTo(prowidth1);
|
|
|
}
|
|
|
- }else{
|
|
|
- a = prowidth2.compareTo(prowidth1);
|
|
|
- }
|
|
|
- return a;
|
|
|
- });
|
|
|
+ return a;
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
ApsSolution solvedBalance1 = solver1.solve(apsSolutionTh);
|
|
|
/*for (ProductionProcesses productionProcesses : solvedBalance1.getProcessesList()) {
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|