|
@@ -173,6 +173,12 @@ public class ApsServiceImpl implements ApsService {
|
|
List<List<ApsBlankOrderVo>> apsOrders = new ArrayList<>();
|
|
List<List<ApsBlankOrderVo>> apsOrders = new ArrayList<>();
|
|
for (ApsBlankOrderVo apsBlankOrder : apsBlankOrders) {
|
|
for (ApsBlankOrderVo apsBlankOrder : apsBlankOrders) {
|
|
|
|
|
|
|
|
+ }
|
|
|
|
+ // 所有设备
|
|
|
|
+ List<AspCheckItemsDo> eqs = aspCheckItemsService.list(new LambdaQueryWrapper<>());
|
|
|
|
+ Map<String, AspCheckItemsDo> eqMaps = new HashMap<>();
|
|
|
|
+ for (AspCheckItemsDo eq : eqs) {
|
|
|
|
+ eqMaps.put(eq.getId(), eq);
|
|
}
|
|
}
|
|
apsBlankOrders.forEach((bo)->{
|
|
apsBlankOrders.forEach((bo)->{
|
|
List<ApsBlankOrderVo> v = new ArrayList<>();
|
|
List<ApsBlankOrderVo> v = new ArrayList<>();
|
|
@@ -195,24 +201,34 @@ public class ApsServiceImpl implements ApsService {
|
|
productionScheduleThVo.setLooseness(productionScheduleVos.get(0).getLooseness());
|
|
productionScheduleThVo.setLooseness(productionScheduleVos.get(0).getLooseness());
|
|
productionScheduleThVo.setPcspeed(productionScheduleVos.get(0).getPcspeed());
|
|
productionScheduleThVo.setPcspeed(productionScheduleVos.get(0).getPcspeed());
|
|
List<ProductionProcesses> pros = new ArrayList<>();
|
|
List<ProductionProcesses> pros = new ArrayList<>();
|
|
- List<Equipment> equipmentList = new ArrayList<>();
|
|
|
|
|
|
+ List<String> thBlankIds = new ArrayList<>();
|
|
Map<String,List<String>> blankProcessIds = new HashMap<>();
|
|
Map<String,List<String>> blankProcessIds = new HashMap<>();
|
|
List<WashingMetal> closealloynames = new ArrayList<>();
|
|
List<WashingMetal> closealloynames = new ArrayList<>();
|
|
for (ProductionScheduleVo productionScheduleVo : productionScheduleVos) {
|
|
for (ProductionScheduleVo productionScheduleVo : productionScheduleVos) {
|
|
pros.addAll(productionScheduleVo.getProcesses());
|
|
pros.addAll(productionScheduleVo.getProcesses());
|
|
- for (Equipment equipment : productionScheduleVo.getEquipmentList()) {
|
|
|
|
- List<Equipment> ess = equipmentList.stream().filter(v -> v.getBsEquipmentId().equals(equipment.getBsEquipmentId())).collect(Collectors.toList());
|
|
|
|
- if(ess == null || ess.size() == 0){
|
|
|
|
- equipmentList.add(equipment);
|
|
|
|
|
|
+ for (ProductionProcesses pross : productionScheduleVo.getProcesses()) {
|
|
|
|
+ for (ProduceOrder produceOrder : pross.getProduceOrder()) {
|
|
|
|
+ thBlankIds.add(produceOrder.getId());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
blankProcessIds.putAll(productionScheduleVo.getBlankProcessIds());
|
|
blankProcessIds.putAll(productionScheduleVo.getBlankProcessIds());
|
|
closealloynames.addAll(productionScheduleVo.getClosealloynames());
|
|
closealloynames.addAll(productionScheduleVo.getClosealloynames());
|
|
}
|
|
}
|
|
productionScheduleThVo.setProcesses(pros);
|
|
productionScheduleThVo.setProcesses(pros);
|
|
- productionScheduleThVo.setEquipmentList(equipmentList);
|
|
|
|
productionScheduleThVo.setBlankProcessIds(blankProcessIds);
|
|
productionScheduleThVo.setBlankProcessIds(blankProcessIds);
|
|
productionScheduleThVo.setClosealloynames(closealloynames);
|
|
productionScheduleThVo.setClosealloynames(closealloynames);
|
|
|
|
+ // 退火设备列表
|
|
|
|
+ thBlankIds = thBlankIds.stream().distinct().collect(Collectors.toList());
|
|
|
|
+ // 排程计划设备集合
|
|
|
|
+ List<Equipment> equipmentList = new ArrayList<>();
|
|
|
|
+ List<ApsProcessOperationDo> operationDos = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
|
|
|
|
+ .in(ApsProcessOperationDo::getBlankid, thBlankIds));
|
|
|
|
+ List<ApsScheduleConfigDo> apsConfigs = apsScheduleConfigService.list();
|
|
|
|
+ for (ApsProcessOperationDo operationDo : operationDos) {
|
|
|
|
+ List<String> optionalEquipments = equipmentListInit(operationDo,equipmentList,eqMaps,thBlankIds,productionScheduleThVo,apsConfigs.get(0));
|
|
|
|
+ }
|
|
|
|
+ productionScheduleThVo.setEquipmentList(equipmentList);
|
|
|
|
+
|
|
// 退火排程
|
|
// 退火排程
|
|
JSONConfig jsonConfig = JSONConfig.create();
|
|
JSONConfig jsonConfig = JSONConfig.create();
|
|
jsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
jsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
@@ -243,6 +259,22 @@ public class ApsServiceImpl implements ApsService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ // 设备列表赋值
|
|
|
|
+ List<String> blankIds = new ArrayList<>();
|
|
|
|
+ for (ProductionProcesses pross : productionScheduleVo.getProcesses()) {
|
|
|
|
+ for (ProduceOrder produceOrder : pross.getProduceOrder()) {
|
|
|
|
+ blankIds.add(produceOrder.getId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ blankIds = blankIds.stream().distinct().collect(Collectors.toList());
|
|
|
|
+ // 排程计划设备集合
|
|
|
|
+ List<Equipment> equipmentList1 = new ArrayList<>();
|
|
|
|
+ List<ApsProcessOperationDo> operationDos1 = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
|
|
|
|
+ .in(ApsProcessOperationDo::getBlankid, blankIds));
|
|
|
|
+ for (ApsProcessOperationDo operationDo : operationDos1) {
|
|
|
|
+ List<String> optionalEquipments = equipmentListInit(operationDo,equipmentList1,eqMaps,blankIds,productionScheduleVo,apsConfigs.get(0));
|
|
|
|
+ }
|
|
|
|
+ productionScheduleVo.setEquipmentList(equipmentList1);
|
|
|
|
|
|
System.out.println("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo, jsonConfig));
|
|
System.out.println("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo, jsonConfig));
|
|
logger.info("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo, jsonConfig));
|
|
logger.info("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo, jsonConfig));
|
|
@@ -310,14 +342,6 @@ public class ApsServiceImpl implements ApsService {
|
|
List<WashingMetal> washingMetalConfig = apsBlankOrderDao.getWashingMetalConfig();
|
|
List<WashingMetal> washingMetalConfig = apsBlankOrderDao.getWashingMetalConfig();
|
|
productionScheduleVo.setClosealloynames(washingMetalConfig);
|
|
productionScheduleVo.setClosealloynames(washingMetalConfig);
|
|
|
|
|
|
- // 所有设备
|
|
|
|
- List<AspCheckItemsDo> eqs = aspCheckItemsService.list(new LambdaQueryWrapper<>());
|
|
|
|
- Map<String, AspCheckItemsDo> eqMaps = new HashMap<>();
|
|
|
|
- for (AspCheckItemsDo eq : eqs) {
|
|
|
|
- eqMaps.put(eq.getId(), eq);
|
|
|
|
- }
|
|
|
|
- // 排程计划设备集合
|
|
|
|
- List<Equipment> equipmentList = new ArrayList<>();
|
|
|
|
// 排程计划工序任务集合
|
|
// 排程计划工序任务集合
|
|
List<ProductionProcesses> processesList = new ArrayList<>();
|
|
List<ProductionProcesses> processesList = new ArrayList<>();
|
|
// 坯料计划ID和所属工序作业ID对应关系
|
|
// 坯料计划ID和所属工序作业ID对应关系
|
|
@@ -356,9 +380,9 @@ public class ApsServiceImpl implements ApsService {
|
|
}
|
|
}
|
|
operationMaps.put(operationDo.getId(),operationDo);
|
|
operationMaps.put(operationDo.getId(),operationDo);
|
|
// 设备列表初始化
|
|
// 设备列表初始化
|
|
- List<String> optionalEquipments = equipmentListInit(operationDo,equipmentList,eqMaps,blankids,productionScheduleVo,apsScheduleConfig);
|
|
|
|
|
|
+// List<String> optionalEquipments = equipmentListInit(operationDo,equipmentList,eqMaps,blankids,productionScheduleVo,apsScheduleConfig);
|
|
// 工序作业相关数据初始化
|
|
// 工序作业相关数据初始化
|
|
- productionProcessesInit(operationDo,produceOrder,optionalEquipments,processesList,operationProductionProcesses,apsBlankOrderVo,productionScheduleVo);
|
|
|
|
|
|
+ productionProcessesInit(operationDo,produceOrder,processesList,operationProductionProcesses,apsBlankOrderVo,productionScheduleVo);
|
|
}
|
|
}
|
|
// 前后关联关系初始化
|
|
// 前后关联关系初始化
|
|
processesRelationInit(rootOperationDo,operationProductionProcesses,operationMaps,apsBlankOrderVo);
|
|
processesRelationInit(rootOperationDo,operationProductionProcesses,operationMaps,apsBlankOrderVo);
|
|
@@ -368,7 +392,7 @@ public class ApsServiceImpl implements ApsService {
|
|
}
|
|
}
|
|
// 合并生产工序
|
|
// 合并生产工序
|
|
productionScheduleVo.setProcesses(processesList);
|
|
productionScheduleVo.setProcesses(processesList);
|
|
- productionScheduleVo.setEquipmentList(equipmentList);
|
|
|
|
|
|
+// productionScheduleVo.setEquipmentList(equipmentList);
|
|
productionScheduleVo.setBlankProcessIds(blankProcessIds);
|
|
productionScheduleVo.setBlankProcessIds(blankProcessIds);
|
|
return productionScheduleVo;
|
|
return productionScheduleVo;
|
|
}
|
|
}
|
|
@@ -590,17 +614,21 @@ public class ApsServiceImpl implements ApsService {
|
|
* 工序作业模型初始化
|
|
* 工序作业模型初始化
|
|
* @param operationDo
|
|
* @param operationDo
|
|
* @param produceOrder
|
|
* @param produceOrder
|
|
- * @param optionalEquipments
|
|
|
|
* @param processesList
|
|
* @param processesList
|
|
* @param operationProductionProcesses
|
|
* @param operationProductionProcesses
|
|
*/
|
|
*/
|
|
- private void productionProcessesInit(ApsProcessOperationDo operationDo,ProduceOrder produceOrder,List<String> optionalEquipments
|
|
|
|
|
|
+ private void productionProcessesInit(ApsProcessOperationDo operationDo,ProduceOrder produceOrder
|
|
,List<ProductionProcesses> processesList,Map<String,List<ProductionProcesses>> operationProductionProcesses,ApsBlankOrderVo apsBlankOrderVo,ProductionScheduleVo productionScheduleVo){
|
|
,List<ProductionProcesses> processesList,Map<String,List<ProductionProcesses>> operationProductionProcesses,ApsBlankOrderVo apsBlankOrderVo,ProductionScheduleVo productionScheduleVo){
|
|
// 输出物料
|
|
// 输出物料
|
|
List<ApsProcessOperationOutMaterDo> outMaterDos = apsProcessOperationOutMaterService.list(new LambdaQueryWrapper<ApsProcessOperationOutMaterDo>()
|
|
List<ApsProcessOperationOutMaterDo> outMaterDos = apsProcessOperationOutMaterService.list(new LambdaQueryWrapper<ApsProcessOperationOutMaterDo>()
|
|
.eq(ApsProcessOperationOutMaterDo::getMainid, operationDo.getId()));
|
|
.eq(ApsProcessOperationOutMaterDo::getMainid, operationDo.getId()));
|
|
List<ProductionProcesses> operationProcess = new ArrayList<>();
|
|
List<ProductionProcesses> operationProcess = new ArrayList<>();
|
|
if(operationDo != null && operationDo.getPlanprocessrall() != null && operationDo.getPlanprocessrall()>0){
|
|
if(operationDo != null && operationDo.getPlanprocessrall() != null && operationDo.getPlanprocessrall()>0){
|
|
|
|
+ List<String> optionalEquipments = new ArrayList<>();
|
|
|
|
+ String[] sbIds = operationDo.getCanchoosedeviceid().split(",");
|
|
|
|
+ for (String equIds : sbIds) {
|
|
|
|
+ optionalEquipments.add(equIds);
|
|
|
|
+ }
|
|
if(LOCKMARK_Y.equals(operationDo.getLockmark())){
|
|
if(LOCKMARK_Y.equals(operationDo.getLockmark())){
|
|
List<ApsProcessOperationProcessEquDo> processDetails = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
|
|
List<ApsProcessOperationProcessEquDo> processDetails = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
|
|
.eq(ApsProcessOperationProcessEquDo::getProcessid, operationDo.getId()));
|
|
.eq(ApsProcessOperationProcessEquDo::getProcessid, operationDo.getId()));
|