Commit 06ae8e1c authored by Tong Li's avatar Tong Li

单件工时不在外面计算,和订单数量一起算

parent a6b17e54
...@@ -27,5 +27,14 @@ public class OpMachine { ...@@ -27,5 +27,14 @@ public class OpMachine {
/** /**
* 单件工时 * 单件工时
*/ */
private double processingTime; // 加工时间 private double processingTime;
/**
* 单件工时
*/
private BigDecimal runtime;//持续时间
/**
* 产出
*/
private BigDecimal singleOut;//产出
} }
...@@ -268,6 +268,9 @@ if(finishedOrder==null||finishedOrder.size()==0) ...@@ -268,6 +268,9 @@ if(finishedOrder==null||finishedOrder.size()==0)
opMachine.setSequence(sequence); opMachine.setSequence(sequence);
opMachine.setMachineId(selectedMachine.getMachineId()); opMachine.setMachineId(selectedMachine.getMachineId());
opMachine.setProcessingTime(selectedMachine.getProcessingTime()); opMachine.setProcessingTime(selectedMachine.getProcessingTime());
opMachine.setRuntime(selectedMachine.getRuntime());
opMachine.setSingleOut(selectedMachine.getSingleOut());
opMachineMap.add(opMachine); opMachineMap.add(opMachine);
} }
...@@ -350,7 +353,7 @@ if(finishedOrder==null||finishedOrder.size()==0) ...@@ -350,7 +353,7 @@ if(finishedOrder==null||finishedOrder.size()==0)
// int changeoverTime =0; //(lastDiscreteParameter.isEmpty() || // int changeoverTime =0; //(lastDiscreteParameter.isEmpty() ||
// lastDiscreteParameter.equals(currentOp.getDiscreteParameter())) ? 0 : 0; // lastDiscreteParameter.equals(currentOp.getDiscreteParameter())) ? 0 : 0;
int actualEndTime = processWithSingleMachine(currentOp, machine, processTime, prevtime, chromosome); int actualEndTime = processWithSingleMachine(currentOp, machine, processTime, prevtime,machineOption, chromosome);
orderProcessCounter.put(groupId, orderProcessCounter.get(groupId) + 1); orderProcessCounter.put(groupId, orderProcessCounter.get(groupId) + 1);
orderLastEndTime.put(groupId, actualEndTime); orderLastEndTime.put(groupId, actualEndTime);
...@@ -365,14 +368,15 @@ if(finishedOrder==null||finishedOrder.size()==0) ...@@ -365,14 +368,15 @@ if(finishedOrder==null||finishedOrder.size()==0)
private int processWithSingleMachine(Entry operation, Machine machine, double processingTime, private int processWithSingleMachine(Entry operation, Machine machine, double processingTime,
int prevOperationEndTime, Chromosome chromosome) { int prevOperationEndTime,OpMachine machineOption, Chromosome chromosome) {
int processingTimeTotal=0; int processingTimeTotal=0;
int earliestStartTime = prevOperationEndTime; int earliestStartTime = prevOperationEndTime;
if(operation.getConstTime()==1)//常数时间 if(operation.getConstTime()==1)//常数时间
{ {
processingTimeTotal=(int)Math.ceil (processingTime); processingTimeTotal=(int)Math.ceil (processingTime);
}else { }else {
processingTimeTotal =(int)Math.ceil (processingTime * operation.getQuantity()); BigDecimal t= machineOption.getSingleOut().divide(machineOption.getRuntime()).multiply(BigDecimal.valueOf(operation.getQuantity()));
processingTimeTotal =(int)Math.ceil (t.doubleValue());
} }
if(machine==null||operation.getMachineOptions()==null) if(machine==null||operation.getMachineOptions()==null)
...@@ -380,9 +384,9 @@ if(finishedOrder==null||finishedOrder.size()==0) ...@@ -380,9 +384,9 @@ if(finishedOrder==null||finishedOrder.size()==0)
return 0; return 0;
} }
MachineOption machineOption= operation.getMachineOptions().stream() // MachineOption machineOption= operation.getMachineOptions().stream()
.filter(t->t.getMachineId()==machine.getId()) // .filter(t->t.getMachineId()==machine.getId())
.findFirst().orElse(null); // .findFirst().orElse(null);
operation.setSelectMachineID(machine.getId()); operation.setSelectMachineID(machine.getId());
operation.setEquipCode(machine.getCode()); operation.setEquipCode(machine.getCode());
......
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