换型修改

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