|
@@ -224,6 +224,8 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
|
|
|
|
|
|
List<TTask> taskList = new ArrayList<TTask>();
|
|
List<TTask> taskList = new ArrayList<TTask>();
|
|
|
|
|
|
|
|
+ // 排产需要的数组组装进行优化,提高组装数据的时效
|
|
|
|
+ //
|
|
double totalOpNum = 0.0;
|
|
double totalOpNum = 0.0;
|
|
for(int partIndex = 1;partIndex <= planProductList.size(); partIndex++){
|
|
for(int partIndex = 1;partIndex <= planProductList.size(); partIndex++){
|
|
PlanProduct planProduct = planProductList.get(partIndex - 1);
|
|
PlanProduct planProduct = planProductList.get(partIndex - 1);
|
|
@@ -258,6 +260,8 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
|
|
LbqWrapper<TWorkpiece> workpieceWrapper = new LbqWrapper<TWorkpiece>().in(TWorkpiece::getPlanId, planProduct.getPlanId());
|
|
LbqWrapper<TWorkpiece> workpieceWrapper = new LbqWrapper<TWorkpiece>().in(TWorkpiece::getPlanId, planProduct.getPlanId());
|
|
List<TWorkpiece> planWorkpieces = workpieceMapper.selectList(workpieceWrapper);
|
|
List<TWorkpiece> planWorkpieces = workpieceMapper.selectList(workpieceWrapper);
|
|
|
|
|
|
|
|
+ Map<String,List<CandidateProcess>> operationCandidateProcesses = new HashMap<>();
|
|
|
|
+
|
|
for(int partNum = 0; partNum < planWorkpieces.size(); partNum++){
|
|
for(int partNum = 0; partNum < planWorkpieces.size(); partNum++){
|
|
TWorkpiece workpiece = planWorkpieces.get(partNum);
|
|
TWorkpiece workpiece = planWorkpieces.get(partNum);
|
|
Part part = new Part();
|
|
Part part = new Part();
|
|
@@ -288,26 +292,33 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
|
|
List<CandidateProcess> candidateProcesses = new ArrayList<CandidateProcess>();
|
|
List<CandidateProcess> candidateProcesses = new ArrayList<CandidateProcess>();
|
|
BomProcedure bomProcedure = bomProcedureList.get(tTask.getProcedureSort());
|
|
BomProcedure bomProcedure = bomProcedureList.get(tTask.getProcedureSort());
|
|
|
|
|
|
- if (bomProcedure.getProductionresourceList().size() > 0){
|
|
|
|
- for(BomProcedureProductionresource bomProcedureProductionresource : bomProcedure.getProductionresourceList()){
|
|
|
|
- Machine machine = new Machine();
|
|
|
|
- CandidateProcess candidateProcess = new CandidateProcess();
|
|
|
|
- // TODO 工艺模板还是需要工序类型,先用名称判断
|
|
|
|
- if(bomProcedure.getType().contains("上料") || bomProcedure.getType().contains("下料") || bomProcedure.getType().contains("翻面")){
|
|
|
|
- if("0".equals(stationGaSwitchFlag)){
|
|
|
|
- assemblingCandidate(candidateProMap, machineMap, workpiece, candidateProcesses, bomProcedure, machine, candidateProcess, bomProcedureProductionresource);
|
|
|
|
- }else if("1".equals(stationGaSwitchFlag)){
|
|
|
|
- if(stationResourcesIds.contains(bomProcedureProductionresource.getResourceId())){
|
|
|
|
|
|
+ // 同一计划订单中的工件工序对应设备信息只要找一次后用工序匹配
|
|
|
|
+ if(operationCandidateProcesses.containsKey(tTask.getProcedureNo())){
|
|
|
|
+ candidateProMap.put(workpiece.getCompleteBatchNo() + "_" + bomProcedure.getNo(), operationCandidateProcesses.get(tTask.getProcedureNo()));
|
|
|
|
+ }else{
|
|
|
|
+ if (bomProcedure.getProductionresourceList().size() > 0){
|
|
|
|
+ for(BomProcedureProductionresource bomProcedureProductionresource : bomProcedure.getProductionresourceList()){
|
|
|
|
+ Machine machine = new Machine();
|
|
|
|
+ CandidateProcess candidateProcess = new CandidateProcess();
|
|
|
|
+ // TODO 工艺模板还是需要工序类型,先用名称判断
|
|
|
|
+ if(bomProcedure.getType().contains("上料") || bomProcedure.getType().contains("下料") || bomProcedure.getType().contains("翻面")){
|
|
|
|
+ if("0".equals(stationGaSwitchFlag)){
|
|
|
|
+ assemblingCandidate(candidateProMap, machineMap, workpiece, candidateProcesses, bomProcedure, machine, candidateProcess, bomProcedureProductionresource);
|
|
|
|
+ }else if("1".equals(stationGaSwitchFlag)){
|
|
|
|
+ if(stationResourcesIds.contains(bomProcedureProductionresource.getResourceId())){
|
|
|
|
+ assemblingCandidate(candidateProMap, machineMap, workpiece, candidateProcesses, bomProcedure, machine, candidateProcess, bomProcedureProductionresource);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ // 查询设备状态
|
|
|
|
+ Productionresource productionresource = productionresourceBizMapper.selectOne(Wraps.<Productionresource>lbQ().eq(Productionresource::getId, bomProcedureProductionresource.getResourceId()));
|
|
|
|
+ if("1".equals(productionresource.getStatus()) || "1".equals(productionresource.getOnlineStatus())){
|
|
assemblingCandidate(candidateProMap, machineMap, workpiece, candidateProcesses, bomProcedure, machine, candidateProcess, bomProcedureProductionresource);
|
|
assemblingCandidate(candidateProMap, machineMap, workpiece, candidateProcesses, bomProcedure, machine, candidateProcess, bomProcedureProductionresource);
|
|
}
|
|
}
|
|
- }
|
|
|
|
- }else{
|
|
|
|
- // 查询设备状态
|
|
|
|
- Productionresource productionresource = productionresourceBizMapper.selectOne(Wraps.<Productionresource>lbQ().eq(Productionresource::getId, bomProcedureProductionresource.getResourceId()));
|
|
|
|
- if("1".equals(productionresource.getStatus()) || "1".equals(productionresource.getOnlineStatus())){
|
|
|
|
- assemblingCandidate(candidateProMap, machineMap, workpiece, candidateProcesses, bomProcedure, machine, candidateProcess, bomProcedureProductionresource);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ candidateProMap.put(workpiece.getCompleteBatchNo() + "_" + bomProcedure.getNo(), candidateProcesses.stream().sorted(Comparator.comparing(CandidateProcess::getPrority,Comparator.reverseOrder())).collect(Collectors.toList()));
|
|
|
|
+ operationCandidateProcesses.put(bomProcedure.getNo(), candidateProcesses.stream().sorted(Comparator.comparing(CandidateProcess::getPrority,Comparator.reverseOrder())).collect(Collectors.toList()));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -410,7 +421,7 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
|
|
if (!candidateProcesses.contains(candidateProcess)) {
|
|
if (!candidateProcesses.contains(candidateProcess)) {
|
|
candidateProcesses.add(candidateProcess);
|
|
candidateProcesses.add(candidateProcess);
|
|
}
|
|
}
|
|
- candidateProMap.put(workpiece.getCompleteBatchNo() + "_" + bomProcedure.getNo(), candidateProcesses.stream().sorted(Comparator.comparing(CandidateProcess::getPrority,Comparator.reverseOrder())).collect(Collectors.toList()));
|
|
|
|
|
|
+
|
|
// }
|
|
// }
|
|
}
|
|
}
|
|
|
|
|