Commit 45ee5031 authored by Tong Li's avatar Tong Li

修改字段

parent f5e8c691
...@@ -21,7 +21,7 @@ import java.util.List; ...@@ -21,7 +21,7 @@ import java.util.List;
@Data @Data
public class Entry { public class Entry {
public Entry() { public Entry() {
PrevEntryIds=new ArrayList<OperationDependency>(); prevEntryIds=new ArrayList<OperationDependency>();
} }
/** /**
...@@ -57,29 +57,29 @@ public class Entry { ...@@ -57,29 +57,29 @@ public class Entry {
/** /**
* 工单ID * 工单ID
*/ */
public String ExecId ; private String execId ;
/** /**
* 工单ID * 工单ID
*/ */
public String MainId; private String mainId;
/** /**
* 离散参数 * 离散参数
*/ */
public List<RoutingDiscreteParam> DiscreteParameter ; private List<RoutingDiscreteParam> discreteParameter ;
/** /**
* 基因编号 * 基因编号
*/ */
public double Priority=1; private double priority=1;
/** /**
* 数量 * 数量
*/ */
public double Quantity; private double quantity;
/** /**
* 工序顺序 * 工序顺序
*/ */
public int Sequence; private int sequence;
/** /**
* 可选设备列表 * 可选设备列表
*/ */
...@@ -93,22 +93,22 @@ public class Entry { ...@@ -93,22 +93,22 @@ public class Entry {
/** /**
* 前工单ID * 前工单ID
*/ */
public List<OperationDependency> PrevEntryIds ;//前工序 private List<OperationDependency> prevEntryIds ;//前工序
/** /**
* 后工单ID * 后工单ID
*/ */
public List<OperationDependency> NextEntryIds ;//后工序 private List<OperationDependency> nextEntryIds ;//后工序
/** /**
* 数据状态 1 拆分 2 新建 * 数据状态 1 拆分 2 新建
*/ */
public Integer state ; private Integer state ;
/** /**
* 是否可中断,间缝插针 * 是否可中断,间缝插针
*/ */
public Long IsInterrupt = 1l; private Long isInterrupt = 1l;
/** /**
* 所需物料 * 所需物料
...@@ -121,26 +121,26 @@ public class Entry { ...@@ -121,26 +121,26 @@ public class Entry {
* 设备资源组 * 设备资源组
*/ */
public Long EquipTypeID ; private Long equipTypeID ;
/// <summary> /// <summary>
/// 当前工序依赖的前置工序ID(半成品工序→成品工序) /// 当前工序依赖的前置工序ID(半成品工序→成品工序)
/// </summary> /// </summary>
public List<Integer> DependentOnOrderIds =new ArrayList<>(); private List<Integer> dependentOnOrderIds =new ArrayList<>();
/// <summary> /// <summary>
/// 关联的成品工序ID(核心:明确该半成品服务于哪个成品工序) /// 关联的成品工序ID(核心:明确该半成品服务于哪个成品工序)
/// </summary> /// </summary>
public List<Integer> TargetFinishedOperationId; private List<Integer> targetFinishedOperationId;
public boolean newCreate = false; private boolean newCreate = false;
/// <summary> /// <summary>
/// 半成品最晚完工时间(即成品工序开始时间-1天) /// 半成品最晚完工时间(即成品工序开始时间-1天)
/// </summary> /// </summary>
public LocalDateTime LatestCompletionTime ; private LocalDateTime latestCompletionTime ;
private String equipTypeName;//资源组名称 private String equipTypeName;//资源组名称
......
...@@ -566,13 +566,13 @@ if(finishedOrder==null||finishedOrder.size()==0) ...@@ -566,13 +566,13 @@ if(finishedOrder==null||finishedOrder.size()==0)
if(setupTime==0) if(setupTime==0)
{ {
geneDetails = machineCalculator.getNextAvailableTime(machine, earliestStartTime, -1, geneDetails = machineCalculator.getNextAvailableTime(machine, earliestStartTime, -1,
processingTimeTotal, machineTasks, operation.IsInterrupt!=1, true,processingTime, operation.getQuantity(), true); processingTimeTotal, machineTasks, operation.getIsInterrupt()!=1, true,processingTime, operation.getQuantity(), true);
}else { }else {
CopyOnWriteArrayList<TimeSegment> AvailableTimeSegment = (CopyOnWriteArrayList<TimeSegment>) reslte.get(6); CopyOnWriteArrayList<TimeSegment> AvailableTimeSegment = (CopyOnWriteArrayList<TimeSegment>) reslte.get(6);
Map<Integer,Object> result = machineCalculator.CreateScheduleResult(machine, processingTimeTotal, earliestStartTime, Map<Integer,Object> result = machineCalculator.CreateScheduleResult(machine, processingTimeTotal, earliestStartTime,
AvailableTimeSegment, processingTime, operation.getQuantity(), operation.IsInterrupt != 1, setupTime, _globalParam.is_smoothChangeOverInWeek(), setupStartTime); AvailableTimeSegment, processingTime, operation.getQuantity(), operation.getIsInterrupt() != 1, setupTime, _globalParam.is_smoothChangeOverInWeek(), setupStartTime);
...@@ -582,7 +582,7 @@ if(finishedOrder==null||finishedOrder.size()==0) ...@@ -582,7 +582,7 @@ if(finishedOrder==null||finishedOrder.size()==0)
} }
}else { }else {
geneDetails = machineCalculator.getNextAvailableTime(machine, earliestStartTime, -1, geneDetails = machineCalculator.getNextAvailableTime(machine, earliestStartTime, -1,
processingTimeTotal, machineTasks, operation.IsInterrupt!=1, true,processingTime, operation.getQuantity(), true); processingTimeTotal, machineTasks, operation.getIsInterrupt()!=1, true,processingTime, operation.getQuantity(), true);
} }
...@@ -1270,7 +1270,7 @@ if(MaterialRequirements==null||MaterialRequirements.size()==0) ...@@ -1270,7 +1270,7 @@ if(MaterialRequirements==null||MaterialRequirements.size()==0)
{ {
CopyOnWriteArrayList<TimeSegment> AvailableTimeSegment = machineCalculator.getMachineAvailableTime(machine, earliestStartTime+setupTime, CopyOnWriteArrayList<TimeSegment> AvailableTimeSegment = machineCalculator.getMachineAvailableTime(machine, earliestStartTime+setupTime,
processingTimeTotal, null, operation.IsInterrupt!=1); processingTimeTotal, null, operation.getIsInterrupt()!=1);
if(AvailableTimeSegment!=null) { if(AvailableTimeSegment!=null) {
reslte.put(6, AvailableTimeSegment); reslte.put(6, AvailableTimeSegment);
...@@ -1294,7 +1294,7 @@ if(MaterialRequirements==null||MaterialRequirements.size()==0) ...@@ -1294,7 +1294,7 @@ if(MaterialRequirements==null||MaterialRequirements.size()==0)
//如果是前提供任务是相同的则跳出 //如果是前提供任务是相同的则跳出
CopyOnWriteArrayList<TimeSegment> AvailableTimeSegment = machineCalculator.getMachineAvailableTime(machine, earliestStartTime, CopyOnWriteArrayList<TimeSegment> AvailableTimeSegment = machineCalculator.getMachineAvailableTime(machine, earliestStartTime,
processingTimeTotal+setupTime, null, operation.IsInterrupt!=1); processingTimeTotal+setupTime, null, operation.getIsInterrupt()!=1);
if(AvailableTimeSegment!=null) { if(AvailableTimeSegment!=null) {
reslte.put(6, AvailableTimeSegment); reslte.put(6, AvailableTimeSegment);
...@@ -1337,7 +1337,7 @@ if(MaterialRequirements==null||MaterialRequirements.size()==0) ...@@ -1337,7 +1337,7 @@ if(MaterialRequirements==null||MaterialRequirements.size()==0)
if(lastGeneOnMachine.getEndTime()>earliestStartTime) if(lastGeneOnMachine.getEndTime()>earliestStartTime)
{ {
CopyOnWriteArrayList<TimeSegment> AvailableTimeSegment = machineCalculator.getMachineAvailableTime(machine, earliestStartTime, CopyOnWriteArrayList<TimeSegment> AvailableTimeSegment = machineCalculator.getMachineAvailableTime(machine, earliestStartTime,
processingTimeTotal, machineTasks, operation.IsInterrupt!=1); processingTimeTotal, machineTasks, operation.getIsInterrupt()!=1);
if(AvailableTimeSegment!=null) { if(AvailableTimeSegment!=null) {
reslte.put(6,AvailableTimeSegment); reslte.put(6,AvailableTimeSegment);
...@@ -1359,7 +1359,7 @@ if(MaterialRequirements==null||MaterialRequirements.size()==0) ...@@ -1359,7 +1359,7 @@ if(MaterialRequirements==null||MaterialRequirements.size()==0)
} }
}else { }else {
CopyOnWriteArrayList<TimeSegment> AvailableTimeSegment = machineCalculator.getMachineAvailableTime(machine, earliestStartTime, CopyOnWriteArrayList<TimeSegment> AvailableTimeSegment = machineCalculator.getMachineAvailableTime(machine, earliestStartTime,
processingTimeTotal, machineTasks, operation.IsInterrupt!=1); processingTimeTotal, machineTasks, operation.getIsInterrupt()!=1);
if(AvailableTimeSegment!=null) { if(AvailableTimeSegment!=null) {
reslte.put(6, AvailableTimeSegment); reslte.put(6, AvailableTimeSegment);
int start = (int) ChronoUnit.SECONDS.between(baseTime, AvailableTimeSegment.get(0).getStart()); int start = (int) ChronoUnit.SECONDS.between(baseTime, AvailableTimeSegment.get(0).getStart());
......
...@@ -177,10 +177,10 @@ public class MaterialRequirementService { ...@@ -177,10 +177,10 @@ public class MaterialRequirementService {
{ {
throw new RuntimeException("配套数据有问题,需求数量为空,请检查数据,"+component.getMaterialNumber()); throw new RuntimeException("配套数据有问题,需求数量为空,请检查数据,"+component.getMaterialNumber());
} }
double allneeded = component.getSpentQty().doubleValue()/ component.getMainQty().doubleValue() * operation.Quantity; double allneeded = component.getSpentQty().doubleValue()/ component.getMainQty().doubleValue() * operation.getQuantity();
OrderMaterialRequirement orderMaterialRequirement = CreateMaterialRequirement(material, orderId, "", operation, OrderMaterialRequirement orderMaterialRequirement = CreateMaterialRequirement(material, orderId, "", operation,
allneeded,component.getSpentQty().doubleValue(), component.getMainQty().doubleValue(),operation.Quantity); allneeded,component.getSpentQty().doubleValue(), component.getMainQty().doubleValue(),operation.getQuantity());
orderMaterialRequirement.setBomId(component.getStrId()); orderMaterialRequirement.setBomId(component.getStrId());
if (!material.getMaterialTypeName().equals("MP") && isIsCheckSf) { if (!material.getMaterialTypeName().equals("MP") && isIsCheckSf) {
materialIds.add(materialId);//半成品ID materialIds.add(materialId);//半成品ID
......
...@@ -76,7 +76,7 @@ int newStartTime=0; ...@@ -76,7 +76,7 @@ int newStartTime=0;
int GroupId=targetOp1.getGroupId(); int GroupId=targetOp1.getGroupId();
OptionalInt OperationIndex = IntStream.range(0, OperationSequencing.size()) OptionalInt OperationIndex = IntStream.range(0, OperationSequencing.size())
.filter(i -> OperationSequencing.get(i).equals(GroupId)) // 过滤出值为1的索引 .filter(i -> OperationSequencing.get(i).equals(GroupId)) // 过滤出值为1的索引
.skip(targetOp1.Sequence-1) // 跳过第一个匹配项 .skip(targetOp1.getSequence()-1) // 跳过第一个匹配项
.findFirst(); // 取第二个匹配项 .findFirst(); // 取第二个匹配项
targetopIndex1=OperationIndex.getAsInt(); targetopIndex1=OperationIndex.getAsInt();
if(isfront) if(isfront)
...@@ -121,7 +121,7 @@ int newStartTime=0; ...@@ -121,7 +121,7 @@ int newStartTime=0;
if(targetopId!=0) { if(targetopId!=0) {
OptionalInt OperationIndex = IntStream.range(0, OperationSequencing.size()) OptionalInt OperationIndex = IntStream.range(0, OperationSequencing.size())
.filter(i -> OperationSequencing.get(i).equals(targetOp.getGroupId())) // 过滤出值为1的索引 .filter(i -> OperationSequencing.get(i).equals(targetOp.getGroupId())) // 过滤出值为1的索引
.skip(targetOp.Sequence - 1) // 跳过第一个匹配项 .skip(targetOp.getSequence() - 1) // 跳过第一个匹配项
.findFirst(); // 取第二个匹配项 .findFirst(); // 取第二个匹配项
int targetOpIndex = OperationIndex.getAsInt(); int targetOpIndex = OperationIndex.getAsInt();
opsIndexs.add(targetOpIndex); opsIndexs.add(targetOpIndex);
...@@ -135,7 +135,7 @@ int newStartTime=0; ...@@ -135,7 +135,7 @@ int newStartTime=0;
for (Entry targetOp4:targetOp2s) { for (Entry targetOp4:targetOp2s) {
OptionalInt OperationIndex1 = IntStream.range(0, OperationSequencing.size()) OptionalInt OperationIndex1 = IntStream.range(0, OperationSequencing.size())
.filter(i -> OperationSequencing.get(i).equals(targetOp.getGroupId())) // 过滤出值为1的索引 .filter(i -> OperationSequencing.get(i).equals(targetOp.getGroupId())) // 过滤出值为1的索引
.skip(targetOp4.Sequence - 1) // 跳过第一个匹配项 .skip(targetOp4.getSequence() - 1) // 跳过第一个匹配项
.findFirst(); // 取第二个匹配项 .findFirst(); // 取第二个匹配项
int targetOpIndex2 = OperationIndex1.getAsInt(); int targetOpIndex2 = OperationIndex1.getAsInt();
if(targetOpIndex2<targetopIndex1)//后面的工序位置比目标位置靠前 if(targetOpIndex2<targetopIndex1)//后面的工序位置比目标位置靠前
...@@ -190,7 +190,7 @@ int newStartTime=0; ...@@ -190,7 +190,7 @@ int newStartTime=0;
int GroupId=targetOp1.getGroupId(); int GroupId=targetOp1.getGroupId();
OptionalInt OperationIndex = IntStream.range(0, OperationSequencing.size()) OptionalInt OperationIndex = IntStream.range(0, OperationSequencing.size())
.filter(i -> OperationSequencing.get(i).equals(GroupId)) // 过滤出值为1的索引 .filter(i -> OperationSequencing.get(i).equals(GroupId)) // 过滤出值为1的索引
.skip(targetOp1.Sequence-1) // 跳过第一个匹配项 .skip(targetOp1.getSequence()-1) // 跳过第一个匹配项
.findFirst(); // 取第二个匹配项 .findFirst(); // 取第二个匹配项
int targetOpIndex= OperationIndex.getAsInt(); int targetOpIndex= OperationIndex.getAsInt();
if(!isfront) if(!isfront)
...@@ -629,7 +629,7 @@ if(targetOp.getSequence()>1) { ...@@ -629,7 +629,7 @@ if(targetOp.getSequence()>1) {
String newId = UUID.randomUUID().toString().replace("-", ""); String newId = UUID.randomUUID().toString().replace("-", "");
if (i == 0) { if (i == 0) {
newids.put(targetOp.ExecId, splitCounts[i]); newids.put(targetOp.getExecId(), splitCounts[i]);
} else { } else {
newids.put(newId, splitCounts[i]); newids.put(newId, splitCounts[i]);
// 添加新节点 // 添加新节点
...@@ -656,7 +656,7 @@ if(targetOp.getSequence()>1) { ...@@ -656,7 +656,7 @@ if(targetOp.getSequence()>1) {
List<Integer> OperationSequencing= chromosome.getOperationSequencing(); List<Integer> OperationSequencing= chromosome.getOperationSequencing();
OptionalInt OperationIndex = IntStream.range(0, OperationSequencing.size()) OptionalInt OperationIndex = IntStream.range(0, OperationSequencing.size())
.filter(i -> OperationSequencing.get(i).equals(targetOp.getGroupId())) // 过滤出值为1的索引 .filter(i -> OperationSequencing.get(i).equals(targetOp.getGroupId())) // 过滤出值为1的索引
.skip(targetOp.Sequence-1) // 跳过第一个匹配项 .skip(targetOp.getSequence()-1) // 跳过第一个匹配项
.findFirst(); // 取第二个匹配项 .findFirst(); // 取第二个匹配项
int targetOpIndex= OperationIndex.getAsInt()+1; int targetOpIndex= OperationIndex.getAsInt()+1;
for (NodeInfo nodeInfo : nodeInfoList) { for (NodeInfo nodeInfo : nodeInfoList) {
...@@ -913,7 +913,7 @@ if(targetOp.getSequence()>1) { ...@@ -913,7 +913,7 @@ if(targetOp.getSequence()>1) {
OptionalInt OperationIndex = IntStream.range(0, OperationSequencing.size()) OptionalInt OperationIndex = IntStream.range(0, OperationSequencing.size())
.filter(i -> OperationSequencing.get(i).equals(entry.getGroupId())) // 过滤出值为1的索引 .filter(i -> OperationSequencing.get(i).equals(entry.getGroupId())) // 过滤出值为1的索引
.skip(entry.Sequence-1) // 跳过第一个匹配项 .skip(entry.getSequence()-1) // 跳过第一个匹配项
.findFirst(); .findFirst();
int targetOpIndex= OperationIndex.getAsInt()+1; int targetOpIndex= OperationIndex.getAsInt()+1;
for (int i = maxgroupId; i < OperatRels.size(); i++) { for (int i = maxgroupId; i < OperatRels.size(); i++) {
...@@ -1089,7 +1089,7 @@ if(targetOp.getSequence()>1) { ...@@ -1089,7 +1089,7 @@ if(targetOp.getSequence()>1) {
//拆分的工序数量补齐到其他的 //拆分的工序数量补齐到其他的
Entry main = entrys.stream(). Entry main = entrys.stream().
filter(t -> t.MainId.equals(entry.getMainId()) &&t.getId()!=entry.getId()) filter(t -> t.getMainId().equals(entry.getMainId()) &&t.getId()!=entry.getId())
.findFirst() .findFirst()
.orElse(null); .orElse(null);
if (main != null) { if (main != null) {
......
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