|
@@ -115,7 +115,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
// preProcessCheck(scoreDirector,process);
|
|
|
}
|
|
|
|
|
|
- private void preProcessCheck(ScoreDirector<ApsSolution> scoreDirector,ProductionProcesses process){
|
|
|
+ /*private void preProcessCheck(ScoreDirector<ApsSolution> scoreDirector,ProductionProcesses process){
|
|
|
if(process.getPreviousProcesses() != null && process.getPreviousProcesses().size()>1){
|
|
|
for (ProductionProcesses previousProcess : process.getPreviousProcesses()) {
|
|
|
if(previousProcess.getMaxWaitTime() != null && previousProcess.getMaxWaitTime()>0){
|
|
@@ -138,9 +138,9 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- /*if("6473acca9af24b95956a891520b21357".equals(previousProcess.getId())){
|
|
|
+ *//*if("6473acca9af24b95956a891520b21357".equals(previousProcess.getId())){
|
|
|
log.info("最大等待时间处理-当前工序开始时间:"+startTime);
|
|
|
- }*/
|
|
|
+ }*//*
|
|
|
scoreDirector.beforeVariableChanged(process, "startTime");
|
|
|
previousProcess.setStartTime(startTime);
|
|
|
scoreDirector.afterVariableChanged(process, "startTime");
|
|
@@ -150,7 +150,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
private List<EquipmentRunTime> getZyTime(ProductionProcesses process){
|
|
|
List<EquipmentRunTime> equipmentRunTimes = process.getEquipment().getEquipmentRunTimes();
|
|
@@ -218,14 +218,14 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
* 设置开始时间
|
|
|
* @param process
|
|
|
*/
|
|
|
- private LocalDateTime startTimeSet(ProductionProcesses process,ScoreDirector<ApsSolution> scoreDirector){
|
|
|
+ /*private LocalDateTime startTimeSet(ProductionProcesses process,ScoreDirector<ApsSolution> scoreDirector){
|
|
|
// 时间设定
|
|
|
LocalDateTime toUpdateStartTime = null;
|
|
|
if(process.getEquipment() != null){
|
|
|
- /* if("ec0e36791ac845f4bd7aa21dc5ad45ba".equals(process.getId()) && "0001be252874536843730b100020".equals(process.getEquipment().getId())){
|
|
|
+ *//* if("ec0e36791ac845f4bd7aa21dc5ad45ba".equals(process.getId()) && "0001be252874536843730b100020".equals(process.getEquipment().getId())){
|
|
|
System.out.println("process.getId():"+process.getId()+";process.getEquipment().getId():"+process.getEquipment().getId()+";process.getDelay():"+process.getDelay());
|
|
|
process.getId();
|
|
|
- }*/
|
|
|
+ }*//*
|
|
|
// 获取所有规划实体对象数据
|
|
|
ApsSolution workingSolution = scoreDirector.getWorkingSolution();
|
|
|
// 最大单批次生产时间
|
|
@@ -292,7 +292,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
allRunTimes.add(copy);
|
|
|
}
|
|
|
}
|
|
|
- /*if(process.getEquipment().getProcessesList() != null && process.getEquipment().getProcessesList().size()>0){
|
|
|
+ *//*if(process.getEquipment().getProcessesList() != null && process.getEquipment().getProcessesList().size()>0){
|
|
|
for (ProductionProcesses productionProcesses : process.getEquipment().getProcessesList()) {
|
|
|
if(productionProcesses.getStartTime() != null && productionProcesses.getEndTime() != null && !productionProcesses.getId().equals(process.getId())){
|
|
|
EquipmentRunTime copy = new EquipmentRunTime();
|
|
@@ -301,7 +301,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
allRunTimes.add(copy);
|
|
|
}
|
|
|
}
|
|
|
- }*/
|
|
|
+ }*//*
|
|
|
// 按照开始时间排序
|
|
|
allRunTimes.sort(Comparator.comparing(EquipmentRunTime::getStartRunTime));
|
|
|
|
|
@@ -362,10 +362,10 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
lzTimes = preProcess.getMinWaitTime();
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
+ *//**
|
|
|
* 后道工序批次生产时间大于等于前道工序批次生产时间
|
|
|
* 从第一批次开始往后排程
|
|
|
- */
|
|
|
+ *//*
|
|
|
|
|
|
if(preProcess.getMaxWaitTime() != null){
|
|
|
lastFirstMaxWaitTime = startTime.plusMinutes(preProcess.getUnitProduceTime()).plusMinutes(preProcess.getMaxWaitTime());
|
|
@@ -375,10 +375,10 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
lastStartTime = startTime.plusMinutes(preProcess.getUnitProduceTime()).plusMinutes(lzTimes);
|
|
|
process.setEndTime(lastStartTime.plusMinutes(process.getProduceTime()));
|
|
|
}
|
|
|
- /**
|
|
|
+ *//**
|
|
|
* 后道工序批次生产时间小于前道工序批次生产时间
|
|
|
* 从最后批次开始往前排程
|
|
|
- */
|
|
|
+ *//*
|
|
|
else{
|
|
|
// 开始时间:最后一批次结束时间加流转时间,再往前倒排批次数减一乘以单批次生产时间
|
|
|
lastStartTime = endTime.plusMinutes(lzTimes).minusMinutes(process.getUnitProduceTime() * (process.getProducePcNum() - 1));
|
|
@@ -398,7 +398,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
allRunTimes.add(copy);
|
|
|
}
|
|
|
}
|
|
|
- /*if(process.getEquipment().getProcessesList() != null && process.getEquipment().getProcessesList().size()>0){
|
|
|
+ *//*if(process.getEquipment().getProcessesList() != null && process.getEquipment().getProcessesList().size()>0){
|
|
|
for (ProductionProcesses productionProcesses : process.getEquipment().getProcessesList()) {
|
|
|
if(productionProcesses.getStartTime() != null && productionProcesses.getEndTime() != null && !productionProcesses.getId().equals(process.getId())){
|
|
|
EquipmentRunTime copy = new EquipmentRunTime();
|
|
@@ -407,7 +407,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
allRunTimes.add(copy);
|
|
|
}
|
|
|
}
|
|
|
- }*/
|
|
|
+ }*//*
|
|
|
// 按照开始时间排序
|
|
|
allRunTimes.sort(Comparator.comparing(EquipmentRunTime::getStartRunTime));
|
|
|
|
|
@@ -438,7 +438,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
allRunTimes.add(copy);
|
|
|
}
|
|
|
}
|
|
|
- /*if(process.getEquipment().getProcessesList() != null && process.getEquipment().getProcessesList().size()>0){
|
|
|
+ *//*if(process.getEquipment().getProcessesList() != null && process.getEquipment().getProcessesList().size()>0){
|
|
|
for (ProductionProcesses productionProcesses : process.getEquipment().getProcessesList()) {
|
|
|
if(productionProcesses.getStartTime() != null && productionProcesses.getEndTime() != null && !productionProcesses.getId().equals(process.getId())){
|
|
|
EquipmentRunTime copy = new EquipmentRunTime();
|
|
@@ -447,7 +447,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
allRunTimes.add(copy);
|
|
|
}
|
|
|
}
|
|
|
- }*/
|
|
|
+ }*//*
|
|
|
allRunTimes.sort(Comparator.comparing(EquipmentRunTime::getStartRunTime));
|
|
|
|
|
|
if(allRunTimes.size()>0){
|
|
@@ -463,15 +463,15 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
toUpdateStartTime = proStartTime;
|
|
|
}
|
|
|
|
|
|
- /*if("6473acca9af24b95956a891520b21357".equals(process.getId())){
|
|
|
+ *//*if("6473acca9af24b95956a891520b21357".equals(process.getId())){
|
|
|
log.info("前道工序开始时间:"+process.getPreviousProcesses().get(0).getStartTime());
|
|
|
log.info("前道工序结束时间:"+process.getPreviousProcesses().get(0).getEndTime());
|
|
|
|
|
|
log.info("当前工序开始时间:"+toUpdateStartTime);
|
|
|
- }*/
|
|
|
+ }*//*
|
|
|
}
|
|
|
return toUpdateStartTime;
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
private LocalDateTime startTimeNewSet(ProductionProcesses process,ScoreDirector<ApsSolution> scoreDirector){
|
|
|
if(process.getId().equals("23b6aee636c2461cb3102fa82be48f28")){
|
|
@@ -533,12 +533,12 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
|
|
|
LocalDateTime proEndTime = proStartTime.plusMinutes(process.getProduceTime());
|
|
|
// 当前工序最大开始时间、结束时间
|
|
|
- LocalDateTime proMaxStartTime = null;
|
|
|
+ /*LocalDateTime proMaxStartTime = null;
|
|
|
LocalDateTime proMaxEndTime = null;
|
|
|
if(preProcess != null && preProcess.getMaxWaitTime() != null && preProcess.getMaxWaitTime()>0){
|
|
|
proMaxStartTime = proStartTime.plusMinutes(preProcess.getMaxWaitTime());
|
|
|
proMaxEndTime = proEndTime.plusMinutes(preProcess.getMaxWaitTime());
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
/*if(1 == 1){
|
|
|
return proStartTime;
|