换型修改

parent bddca3a7
...@@ -628,7 +628,7 @@ public class ResourceGanttController { ...@@ -628,7 +628,7 @@ public class ResourceGanttController {
taskVO.setEnd(scheduleChromosome.getBaseTime().plusSeconds(gene.getEndTime())); taskVO.setEnd(scheduleChromosome.getBaseTime().plusSeconds(gene.getEndTime()));
taskVO.setSetup(0); // 默认值 taskVO.setSetup(0); // 默认值
taskVO.setTeardown(gene.getTeardownTime()); // 默认值 taskVO.setTeardown(gene.getTeardownTime()); // 默认值
taskVO.setEquipChange(gene.getChangeoverTime()); // 默认值 taskVO.setEquipChange(gene.getChangeOverTime()); // 默认值
taskVO.setEquipCooling(0); // 默认值 taskVO.setEquipCooling(0); // 默认值
taskVO.setEquipType(resourceGanttVO.getType()); taskVO.setEquipType(resourceGanttVO.getType());
taskVO.setEquipName(resourceGanttVO.getName()); taskVO.setEquipName(resourceGanttVO.getName());
...@@ -739,7 +739,7 @@ public class ResourceGanttController { ...@@ -739,7 +739,7 @@ public class ResourceGanttController {
taskVO.setEnd(scheduleChromosome.getBaseTime().plusSeconds(gene.getEndTime())); taskVO.setEnd(scheduleChromosome.getBaseTime().plusSeconds(gene.getEndTime()));
taskVO.setSetup(0); // 默认值 taskVO.setSetup(0); // 默认值
taskVO.setTeardown(gene.getTeardownTime()); // 默认值 taskVO.setTeardown(gene.getTeardownTime()); // 默认值
taskVO.setEquipChange(gene.getChangeoverTime()); // 默认值 taskVO.setEquipChange(gene.getChangeOverTime()); // 默认值
taskVO.setEquipCooling(0); // 默认值 taskVO.setEquipCooling(0); // 默认值
// taskVO.setEquipType("PTT-" + (i+1) + "-" + gene.getOperationName().toUpperCase().substring(0, Math.min(3, gene.getOperationName().length()))); // taskVO.setEquipType("PTT-" + (i+1) + "-" + gene.getOperationName().toUpperCase().substring(0, Math.min(3, gene.getOperationName().length())));
// taskVO.setEquipName(gene.getOperationName()); // taskVO.setEquipName(gene.getOperationName());
......
...@@ -31,7 +31,7 @@ public class GAScheduleResult { ...@@ -31,7 +31,7 @@ public class GAScheduleResult {
private boolean IsLocked=false; private boolean IsLocked=false;
private double OneTime; // 单件工时 private double OneTime; // 单件工时
private double ProcessingTime; // 绝对处理时间(分钟) private double ProcessingTime; // 绝对处理时间(分钟)
private int ChangeoverTime; private int changeOverTime;
private int preTime; private int preTime;
private int seq; //工序顺序 private int seq; //工序顺序
......
...@@ -37,4 +37,6 @@ public class DiscreteParameterMatrix { ...@@ -37,4 +37,6 @@ public class DiscreteParameterMatrix {
private String equipname; private String equipname;
private Long equiptypeid; private Long equiptypeid;
private String equiptypename; private String equiptypename;
private double durationsecond;
} }
\ No newline at end of file
...@@ -16,7 +16,7 @@ private String taskType; ...@@ -16,7 +16,7 @@ private String taskType;
private Long productId; private Long productId;
private String stage; private String stage;
private String materialId; private String materialId;
private Long quantity; private Double quantity;
private String remark; private String remark;
private LocalDateTime taskInputDate; private LocalDateTime taskInputDate;
private String taskRequire; private String taskRequire;
...@@ -92,4 +92,5 @@ private String senderpstatus; ...@@ -92,4 +92,5 @@ private String senderpstatus;
private String senderpmsg; private String senderpmsg;
private LocalDateTime senderptime; private LocalDateTime senderptime;
private String sendversionid; private String sendversionid;
private String orderCode;
} }
\ No newline at end of file
...@@ -129,4 +129,5 @@ public class Entry { ...@@ -129,4 +129,5 @@ public class Entry {
private String equipTypeCode;//资源组编码 private String equipTypeCode;//资源组编码
private BigDecimal runtime;//持续时间 private BigDecimal runtime;//持续时间
private BigDecimal singleOut;//单件产出 private BigDecimal singleOut;//单件产出
private double changeLineTime;//换模时间
} }
...@@ -502,7 +502,7 @@ if(finishedOrder==null||finishedOrder.size()==0) ...@@ -502,7 +502,7 @@ if(finishedOrder==null||finishedOrder.size()==0)
result.setEndTime(endTime); result.setEndTime(endTime);
result.setOneTime(processingTime); result.setOneTime(processingTime);
result.setQuantity(operation.getQuantity()); result.setQuantity(operation.getQuantity());
result.setChangeoverTime(setupTime); result.setChangeOverTime(setupTime);
result.setPreTime(preTime); result.setPreTime(preTime);
result.setTeardownTime(teardownTime); result.setTeardownTime(teardownTime);
if(existingResult!=null) { if(existingResult!=null) {
...@@ -852,6 +852,14 @@ if(finishedOrder==null||finishedOrder.size()==0) ...@@ -852,6 +852,14 @@ if(finishedOrder==null||finishedOrder.size()==0)
double discreteParameterMatrixValue = service.getDiscreteParameterMatrixValue(prev, operation); double discreteParameterMatrixValue = service.getDiscreteParameterMatrixValue(prev, operation);
setupTime = (int) discreteParameterMatrixValue; setupTime = (int) discreteParameterMatrixValue;
operation.setChangeLineTime(discreteParameterMatrixValue);
if (operation.getOrderId()=="a0e61488-0647-4f8e-a27c-cfed9cbbba52"){
System.out.println("lastGene"+operation.getExecId());
}
System.out.println("换型时间"+discreteParameterMatrixValue);
// System.out.println(setupTime+"换型时间"+"huanxingshijian "); // System.out.println(setupTime+"换型时间"+"huanxingshijian ");
} }
...@@ -859,7 +867,7 @@ if(finishedOrder==null||finishedOrder.size()==0) ...@@ -859,7 +867,7 @@ if(finishedOrder==null||finishedOrder.size()==0)
System.out.println("换型时间111"+setupTime);
return setupTime; return setupTime;
} }
...@@ -962,7 +970,7 @@ if(finishedOrder==null||finishedOrder.size()==0) ...@@ -962,7 +970,7 @@ if(finishedOrder==null||finishedOrder.size()==0)
// 计算总换型时间 // 计算总换型时间
private double calculateTotalSetupTime(Chromosome chromosome) { private double calculateTotalSetupTime(Chromosome chromosome) {
return chromosome.getResult().stream() return chromosome.getResult().stream()
.mapToDouble(GAScheduleResult::getChangeoverTime) .mapToDouble(GAScheduleResult::getChangeOverTime)
.sum(); .sum();
} }
......
...@@ -48,6 +48,13 @@ public class DiscreteParameterDurationServiceImpl extends ServiceImpl<DiscretePa ...@@ -48,6 +48,13 @@ public class DiscreteParameterDurationServiceImpl extends ServiceImpl<DiscretePa
return 0.0; return 0.0;
} }
if (operation.getOrderId()=="a0e61488-0647-4f8e-a27c-cfed9cbbba52"){
System.out.println("lastGene"+lastGene.getExecId());
}
// 找到最后一个任务对应的Entry // 找到最后一个任务对应的Entry
Entry prev = allOperations.stream() Entry prev = allOperations.stream()
.filter(t -> t.getExecId().equals(lastGene.getExecId())) .filter(t -> t.getExecId().equals(lastGene.getExecId()))
...@@ -259,7 +266,7 @@ public class DiscreteParameterDurationServiceImpl extends ServiceImpl<DiscretePa ...@@ -259,7 +266,7 @@ public class DiscreteParameterDurationServiceImpl extends ServiceImpl<DiscretePa
sameParamChain.add(0, gene); // 添加到开头保持时间顺序 sameParamChain.add(0, gene); // 添加到开头保持时间顺序
// 如果这个任务有换型,停止追溯(换型后重新计算) // 如果这个任务有换型,停止追溯(换型后重新计算)
if (gene.getChangeoverTime() > 0) { if (gene.getChangeOverTime() > 0) {
break; break;
} }
} else { } else {
...@@ -344,7 +351,7 @@ public class DiscreteParameterDurationServiceImpl extends ServiceImpl<DiscretePa ...@@ -344,7 +351,7 @@ public class DiscreteParameterDurationServiceImpl extends ServiceImpl<DiscretePa
*/ */
private int findLastChangeoverIndex(List<GAScheduleResult> taskChain) { private int findLastChangeoverIndex(List<GAScheduleResult> taskChain) {
for (int i = taskChain.size() - 1; i >= 0; i--) { for (int i = taskChain.size() - 1; i >= 0; i--) {
if (taskChain.get(i).getChangeoverTime() > 0) { if (taskChain.get(i).getChangeOverTime() > 0) {
return i; return i;
} }
} }
......
...@@ -35,6 +35,7 @@ public class DiscreteParameterMatrixServiceImpl extends ServiceImpl<DiscretePara ...@@ -35,6 +35,7 @@ public class DiscreteParameterMatrixServiceImpl extends ServiceImpl<DiscretePara
return 0.0; return 0.0;
} }
// 2. 获取基础数据 // 2. 获取基础数据
List<RoutingDiscreteParam> firstParams = lastEntry.getDiscreteParameter(); List<RoutingDiscreteParam> firstParams = lastEntry.getDiscreteParameter();
List<RoutingDiscreteParam> secondParams = entry.getDiscreteParameter(); List<RoutingDiscreteParam> secondParams = entry.getDiscreteParameter();
...@@ -225,8 +226,8 @@ public class DiscreteParameterMatrixServiceImpl extends ServiceImpl<DiscretePara ...@@ -225,8 +226,8 @@ public class DiscreteParameterMatrixServiceImpl extends ServiceImpl<DiscretePara
*/ */
private double getMaxDuration(List<DiscreteParameterMatrix> matrixList) { private double getMaxDuration(List<DiscreteParameterMatrix> matrixList) {
return matrixList.stream() return matrixList.stream()
.filter(matrix -> matrix.getDuration() > 0) .filter(matrix -> matrix.getDurationsecond() > 0)
.map(DiscreteParameterMatrix::getDuration) // 保持Double类型 .map(DiscreteParameterMatrix::getDurationsecond) // 保持Double类型
.max(Double::compareTo) // 使用Double的比较器 .max(Double::compareTo) // 使用Double的比较器
.orElse(0.0); .orElse(0.0);
} }
......
...@@ -235,7 +235,15 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -235,7 +235,15 @@ public class LanuchServiceImpl implements LanuchService {
mesOrder.setMesCode(prodLaunchOrder.getOrderId()); mesOrder.setMesCode(prodLaunchOrder.getOrderId());
mesOrder.setMaterialId(prodLaunchOrder.getMaterialId()); mesOrder.setMaterialId(prodLaunchOrder.getMaterialId());
mesOrder.setQuantity(0L); mesOrder.setQuantity(prodLaunchOrder.getQuantity());
mesOrder.setRoutingId(Long.valueOf(prodLaunchOrder.getRoutingId()));
mesOrder.setDemandStartDate(prodLaunchOrder.getStartDate());
mesOrder.setDemandFinishDate(prodLaunchOrder.getDueDate());
mesOrder.setDrawnNumber(prodLaunchOrder.getMaterialCode());
mesOrder.setOrderCode(prodLaunchOrder.getOrderCode());
mesOrder.setStatus(12L);
mesOrder.setTaskType(prodLaunchOrder.getFinishOrderId() != null ? "半成品" : "成品");
mesOrderList.add(mesOrder); mesOrderList.add(mesOrder);
} }
...@@ -274,6 +282,8 @@ public class LanuchServiceImpl implements LanuchService { ...@@ -274,6 +282,8 @@ public class LanuchServiceImpl implements LanuchService {
dispatch.setMesCode(gaResult.getOrderId()); dispatch.setMesCode(gaResult.getOrderId());
dispatch.setRoutingDetailId(entry1.getRoutingDetailId()); dispatch.setRoutingDetailId(entry1.getRoutingDetailId());
dispatch.setOpe(entry1.getRoutingDetailName()); dispatch.setOpe(entry1.getRoutingDetailName());
dispatch.setRoutingDetailId(entry1.getRoutingDetailId());
dispatch.setStatus(12L);
// 添加到列表中 // 添加到列表中
dispatches.add(dispatch); dispatches.add(dispatch);
} }
......
...@@ -697,7 +697,7 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0)); ...@@ -697,7 +697,7 @@ order.setDueDate(LocalDateTime.of(2025, 12, 1,0,0,0));
job.getProcessingTime(), job.getProcessingTime(),
job.getPreTime(), job.getPreTime(),
job.getTeardownTime(), job.getTeardownTime(),
job.getChangeoverTime() job.getChangeOverTime()
)); ));
// 追加基因详情 // 追加基因详情
...@@ -1482,7 +1482,7 @@ private GlobalParam InitGlobalParam() ...@@ -1482,7 +1482,7 @@ private GlobalParam InitGlobalParam()
List<GAScheduleResult> machineGenes = scheduleChromosome.getResult().stream() List<GAScheduleResult> machineGenes = scheduleChromosome.getResult().stream()
.filter(gene -> gene.getMachineId()==(machine.getId())) .filter(gene -> gene.getMachineId()==(machine.getId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
System.out.println("machineGenes: " + machineGenes.size());
// 按开始时间排序 // 按开始时间排序
machineGenes.sort((g1, g2) -> Integer.compare(g1.getStartTime(), g2.getStartTime())); machineGenes.sort((g1, g2) -> Integer.compare(g1.getStartTime(), g2.getStartTime()));
...@@ -1503,8 +1503,8 @@ private GlobalParam InitGlobalParam() ...@@ -1503,8 +1503,8 @@ private GlobalParam InitGlobalParam()
taskVO.setEnd(scheduleChromosome.getBaseTime().plusSeconds(gene.getEndTime())); taskVO.setEnd(scheduleChromosome.getBaseTime().plusSeconds(gene.getEndTime()));
taskVO.setSetup(gene.getPreTime()); taskVO.setSetup(gene.getPreTime());
taskVO.setTeardown(gene.getTeardownTime()); // 默认值 taskVO.setTeardown(gene.getTeardownTime()); // 默认值
taskVO.setEquipChange(gene.getChangeoverTime()); // 默认值 taskVO.setEquipChange(gene.getChangeOverTime()); // 默认值
taskVO.setEquipCooling(0); // 默认值 taskVO.setEquipCooling(888); // 默认值
taskVO.setEquipType(resourceGanttVO.getType()); taskVO.setEquipType(resourceGanttVO.getType());
taskVO.setEquipName(resourceGanttVO.getName()); taskVO.setEquipName(resourceGanttVO.getName());
taskVO.setLocked(gene.isIsLocked()); // 默认值 taskVO.setLocked(gene.isIsLocked()); // 默认值
...@@ -1517,7 +1517,7 @@ private GlobalParam InitGlobalParam() ...@@ -1517,7 +1517,7 @@ private GlobalParam InitGlobalParam()
// scheduleChromosome.getBaseTime().plusMinutes(gene.getStartTime()), // scheduleChromosome.getBaseTime().plusMinutes(gene.getStartTime()),
// scheduleChromosome.getBaseTime().plusMinutes(gene.getEndTime()))); // 计算持续时间 // scheduleChromosome.getBaseTime().plusMinutes(gene.getEndTime()))); // 计算持续时间
taskVO.setDuration(0); // taskVO.setDuration(888); //
taskVO.setEquipId(machine.getId()); taskVO.setEquipId(machine.getId());
taskVO.setShopId(machine.getId()); taskVO.setShopId(machine.getId());
taskVO.setShopName(resourceGanttVO.getShopName()); taskVO.setShopName(resourceGanttVO.getShopName());
...@@ -1615,7 +1615,7 @@ private GlobalParam InitGlobalParam() ...@@ -1615,7 +1615,7 @@ private GlobalParam InitGlobalParam()
taskVO.setEnd(scheduleChromosome.getBaseTime().plusSeconds(gene.getEndTime())); taskVO.setEnd(scheduleChromosome.getBaseTime().plusSeconds(gene.getEndTime()));
taskVO.setSetup(gene.getPreTime()); // 默认值 taskVO.setSetup(gene.getPreTime()); // 默认值
taskVO.setTeardown(gene.getTeardownTime()); // 默认值 taskVO.setTeardown(gene.getTeardownTime()); // 默认值
taskVO.setEquipChange(gene.getChangeoverTime()); // 默认值 taskVO.setEquipChange(gene.getChangeOverTime()); // 默认值
taskVO.setEquipCooling(0); // 默认值 taskVO.setEquipCooling(0); // 默认值
// taskVO.setEquipType("PTT-" + (i+1) + "-" + gene.getOperationName().toUpperCase().substring(0, Math.min(3, gene.getOperationName().length()))); // taskVO.setEquipType("PTT-" + (i+1) + "-" + gene.getOperationName().toUpperCase().substring(0, Math.min(3, gene.getOperationName().length())));
// taskVO.setEquipName(gene.getOperationName()); // taskVO.setEquipName(gene.getOperationName());
......
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