Commit 13d1cc93 authored by Tong Li's avatar Tong Li

换型,拖动

parent eb9004a2
......@@ -387,7 +387,8 @@ if(finishedOrder==null||finishedOrder.size()==0)
operation.setSelectMachineID(machine.getId());
operation.setEquipCode(machine.getCode());
operation.setEquipName(machine.getName());
//准备工时
int setTime = operation.getSetupTime().intValue();
if(setTime>0)
{
processingTimeTotal+=setTime;//加上准备工时
......@@ -395,6 +396,7 @@ if(finishedOrder==null||finishedOrder.size()==0)
//后处理时间
int teardownTime = operation.getTeardownTime();
//前处理时间
int preTime = machineOption.getPreTime();
//设置时间平滑 是 不考虑设置时间
......@@ -404,7 +406,11 @@ if(finishedOrder==null||finishedOrder.size()==0)
// 工序的前处理不能提前,则要在前处理完成后才能开工,所以要在前一工序的结束时间基础上+前处理
earliestStartTime+=preTime;
}
GAScheduleResult existingResult = chromosome.getResultOld().stream().filter(r-> r.getOperationId() == operation.getId()).findFirst().orElse(null);
if(existingResult!=null)
{
earliestStartTime = Math.max(earliestStartTime,existingResult.getDesignatedStartTime());
}
int setupTime=0;
CopyOnWriteArrayList<GAScheduleResult> machineTasks =chromosome.getResult().stream()
.filter(t -> t.getMachineId() == machine.getId())
......@@ -428,28 +434,16 @@ if(finishedOrder==null||finishedOrder.size()==0)
}else {
CopyOnWriteArrayList<TimeSegment> AvailableTimeSegment = (CopyOnWriteArrayList<TimeSegment>) reslte.get(6);
GAScheduleResult existingResult = chromosome.getResultOld().stream().filter(r-> r.getOperationId() == operation.getId()).findFirst().orElse(null);
if(existingResult!=null)
{
earliestStartTime = Math.max(earliestStartTime,existingResult.getDesignatedStartTime());
}
//准备工时
int setTime = operation.getSetupTime().intValue();
Map<Integer,Object> result = machineCalculator.CreateScheduleResult(machine, processingTimeTotal, earliestStartTime,
AvailableTimeSegment, processingTime, operation.getQuantity(), operation.IsInterrupt != 1, setupTime, _globalParam.is_smoothChangeOverInWeek(), setupStartTime);
geneDetails = machineCalculator.getNextAvailableTime(machine, earliestStartTime, -1,
processingTimeTotal, chromosome.getResult(), operation.IsInterrupt!=1, true,processingTime, operation.getQuantity(), true);
}
setupTime=(int)result.get(1);
operation.setChangeLineTime(setupTime);
geneDetails=(CopyOnWriteArrayList<ScheduleResultDetail>) result.get(2);
}
}else {
}
// FileHelper.writeLogFile(" 开始 "+operation.getGroupId()+" : "+operation.getId()+",处理时间: " + processingTime + ", 后处理: " + teardownTime +
// ", 前处理: " + preTime + ", 换型: " + setupTime+ ", 数量: " + operation.getQuantity()+ ", 设备: "+machine.getId()+ ", 是否可中断: "+operation.getIsInterrupt());
......
......@@ -1071,10 +1071,11 @@ private GlobalParam InitGlobalParam()
{
globalParam.setIsUseCalendar(c.isValue());
}
// else if(c.getTitle().contains("设置时间"))
// {
// globalParam.setIsUseCalendar(c.isValue());
// }
else if(c.getTitle().contains("设置时间"))
{
//是否考虑换型时间
globalParam.set_smoothChangeOver(c.isValue());
}
else if(c.getTitle().contains("原材料"))
{
......@@ -1082,11 +1083,12 @@ private GlobalParam InitGlobalParam()
}
else if(c.getTitle().contains("后台任务设置"))
{
globalParam.set_smoothSetup(c.isValue());
//休息时间是否换型
globalParam.set_smoothChangeOverInWeek(c.isValue());
}
else if(c.getTitle().contains("设置时间平滑"))
{
globalParam.set_smoothSetup(c.isValue());
globalParam.set_smoothSetup(c.isValue());//工序的前处理是否提前
}
else if(c.getTitle().contains("自制件"))
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment