|
@@ -195,16 +195,46 @@ public class ApsServiceImpl implements ApsService {
|
|
|
for (AspCheckItemsDo eq : eqs) {
|
|
|
eqMaps.put(eq.getId(), eq);
|
|
|
}
|
|
|
+ // 1卷一起排
|
|
|
+ List<ApsBlankOrderVo> singleApsList = new ArrayList<>();
|
|
|
+ // 多卷先排
|
|
|
apsBlankOrders.forEach((bo)->{
|
|
|
- List<ApsBlankOrderVo> v = new ArrayList<>();
|
|
|
- v.add(bo);
|
|
|
- dataMapOrder.put(bo.getId(),bo);
|
|
|
- // 模型转换
|
|
|
- ProductionScheduleVo productionScheduleVo = apsProductionScheduleInit(v);
|
|
|
- productionScheduleVos.add(productionScheduleVo);
|
|
|
- dataMap.put(productionScheduleVo.getProductionScheduleId(),v);
|
|
|
+ /*if(bo.getRollnum() == 1){
|
|
|
+ singleApsList.add(bo);
|
|
|
+ }else{*/
|
|
|
+ List<ApsBlankOrderVo> v = new ArrayList<>();
|
|
|
+ v.add(bo);
|
|
|
+ dataMapOrder.put(bo.getId(),bo);
|
|
|
+
|
|
|
+ // 模型转换
|
|
|
+ ProductionScheduleVo productionScheduleVo = apsProductionScheduleInit(v);
|
|
|
+ productionScheduleVos.add(productionScheduleVo);
|
|
|
+ dataMap.put(productionScheduleVo.getProductionScheduleId(),v);
|
|
|
+// int mergeThNum = mergeThNum(bo, productionScheduleVo);
|
|
|
+ // 排程计划设备集合
|
|
|
+ List<Equipment> equipmentList1 = new ArrayList<>();
|
|
|
+ List<ApsProcessOperationDo> operationDos1 = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
|
|
|
+ .in(ApsProcessOperationDo::getBlankid, bo.getId()));
|
|
|
+ List<String> blankids = new ArrayList<>();
|
|
|
+ blankids.add(bo.getId());
|
|
|
+ for (ApsProcessOperationDo operationDo : operationDos1) {
|
|
|
+ List<String> optionalEquipments = equipmentListInit(operationDo,equipmentList1,eqMaps,blankids,null,productionScheduleVo,apsConfigs.get(0));
|
|
|
+ }
|
|
|
+ productionScheduleVo.setEquipmentList(equipmentList1);
|
|
|
+
|
|
|
+ System.out.println("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo, jsonConfig));
|
|
|
+ logger.info("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo, jsonConfig));
|
|
|
+ // APS平台排程接口调用
|
|
|
+ ProductionScheduleRetVo productionScheduleRetVo = rwApsServer.productionSchedule(productionScheduleVo);
|
|
|
+ if (!"200".equals(productionScheduleRetVo.getCode())) {
|
|
|
+ throw new CustomException(productionScheduleRetVo.getMsg());
|
|
|
+ }
|
|
|
+ // 获取坯料计划
|
|
|
+ List<ApsBlankOrderVo> apsBlankOrderss = new ArrayList<>();
|
|
|
+ apsBlankOrderss.add(bo);
|
|
|
+ apsBlankOrderService.apsAfter(productionScheduleRetVo,apsBlankOrderss);
|
|
|
+// }
|
|
|
|
|
|
- int mergeThNum = mergeThNum(bo, productionScheduleVo);
|
|
|
/*if(bo.getRollnum()>mergeThNum){
|
|
|
Map<String,ProductionProcesses> allProcesses = new HashMap<>();
|
|
|
List<ProductionProcesses> rootProcesses = new ArrayList<>();
|
|
@@ -326,30 +356,34 @@ public class ApsServiceImpl implements ApsService {
|
|
|
apsBlankOrderService.apsAfter(productionScheduleRetVo,apsBlankOrderss);
|
|
|
}
|
|
|
}else{*/
|
|
|
- // 排程计划设备集合
|
|
|
- List<Equipment> equipmentList1 = new ArrayList<>();
|
|
|
- List<ApsProcessOperationDo> operationDos1 = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
|
|
|
- .in(ApsProcessOperationDo::getBlankid, bo.getId()));
|
|
|
- List<String> blankids = new ArrayList<>();
|
|
|
- blankids.add(bo.getId());
|
|
|
- for (ApsProcessOperationDo operationDo : operationDos1) {
|
|
|
- List<String> optionalEquipments = equipmentListInit(operationDo,equipmentList1,eqMaps,blankids,null,productionScheduleVo,apsConfigs.get(0));
|
|
|
- }
|
|
|
- productionScheduleVo.setEquipmentList(equipmentList1);
|
|
|
|
|
|
- System.out.println("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo, jsonConfig));
|
|
|
- logger.info("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo, jsonConfig));
|
|
|
- // APS平台排程接口调用
|
|
|
- ProductionScheduleRetVo productionScheduleRetVo = rwApsServer.productionSchedule(productionScheduleVo);
|
|
|
- if (!"200".equals(productionScheduleRetVo.getCode())) {
|
|
|
- throw new CustomException(productionScheduleRetVo.getMsg());
|
|
|
- }
|
|
|
- // 获取坯料计划
|
|
|
- List<ApsBlankOrderVo> apsBlankOrderss = new ArrayList<>();
|
|
|
- apsBlankOrderss.add(bo);
|
|
|
- apsBlankOrderService.apsAfter(productionScheduleRetVo,apsBlankOrderss);
|
|
|
// }
|
|
|
});
|
|
|
+ // 1卷排程
|
|
|
+ /*if(singleApsList != null && singleApsList.size()>0){
|
|
|
+ // 模型转换
|
|
|
+ ProductionScheduleVo productionScheduleVo = apsProductionScheduleInit(singleApsList);
|
|
|
+ // 排程计划设备集合
|
|
|
+ List<String> blankids = singleApsList.stream().map(ApsBlankOrderVo::getId).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,null,productionScheduleVo,apsConfigs.get(0));
|
|
|
+ }
|
|
|
+ productionScheduleVo.setEquipmentList(equipmentList1);
|
|
|
+
|
|
|
+ System.out.println("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo, jsonConfig));
|
|
|
+ logger.info("排程数据:" + JSONUtil.toJsonStr(productionScheduleVo, jsonConfig));
|
|
|
+ // APS平台排程接口调用
|
|
|
+ ProductionScheduleRetVo productionScheduleRetVo = rwApsServer.productionSchedule(productionScheduleVo);
|
|
|
+ if (!"200".equals(productionScheduleRetVo.getCode())) {
|
|
|
+ throw new CustomException(productionScheduleRetVo.getMsg());
|
|
|
+ }
|
|
|
+ // 获取坯料计划
|
|
|
+ apsBlankOrderService.apsAfter(productionScheduleRetVo,singleApsList);
|
|
|
+ }*/
|
|
|
+
|
|
|
/*if(productionScheduleVos != null && productionScheduleVos.size()>0){
|
|
|
// 提前退火排程
|
|
|
*//*ProductionScheduleVo productionScheduleThVo = new ProductionScheduleVo();
|
|
@@ -717,6 +751,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
List<String> processIdss = new ArrayList<>();
|
|
|
// 坯料计划订单
|
|
|
ProduceOrder produceOrder = new ProduceOrder(apsBlankOrderVo.getId(), apsBlankOrderVo.getMaterialname(), DateUtil.offsetHour(apsBlankOrderVo.getDeliverydate(), -apsBlankOrderVo.getDeliverytime()));
|
|
|
+ produceOrder.setMaxheatroll(apsBlankOrderVo.getMaxheatroll());
|
|
|
// 获取所有订单工序
|
|
|
List<ApsProcessOperationDo> operationDos = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
|
|
|
.eq(ApsProcessOperationDo::getBlankid, apsBlankOrderVo.getId()));
|
|
@@ -769,7 +804,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
if (StringUtils.isNotBlank(operationDo.getCanchoosedeviceid())) {
|
|
|
String[] sbIds = operationDo.getCanchoosedeviceid().split(",");
|
|
|
for (String equIds : sbIds) {
|
|
|
- if(equIds.equals("0001be252874536843730b100064")){
|
|
|
+ if(equIds.equals("0001be252874536843730b100124")){
|
|
|
System.out.println(equIds);
|
|
|
}
|
|
|
AspCheckItemsDo checkItemsD = eqMaps.get(equIds);
|
|
@@ -839,7 +874,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
ApsProcessOperationProcessEquDo lastpro = lastpros.get(0);
|
|
|
if(processEqus != null && processEqus.size()>0){
|
|
|
List<ApsProcessOperationProcessEquDo> hasLasts = processEqus.stream().filter(v -> v.getId().equals(lastpro.getId())).collect(Collectors.toList());
|
|
|
- if(hasLasts != null || hasLasts.size() > 0){
|
|
|
+ if(hasLasts != null && hasLasts.size() > 0){
|
|
|
hasLast = false;
|
|
|
}
|
|
|
}
|
|
@@ -881,6 +916,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
equipment.setLastProcessEndTime(lastpro.getPlanenddate());
|
|
|
equipment.setOnceprocessmin(lastop.getOnceprocessmin().intValue());
|
|
|
equipment.setLastProcessCutfinishmin(lastop.getCutfinishmin() == null ? null : lastop.getCutfinishmin().intValue());
|
|
|
+ equipment.setLastSinglerollweight(lastop.getSinglerollweight());
|
|
|
equipment.setLastSerialLbWeight(hasLbs);
|
|
|
// 合金+输入物料+宽度+厚度+输出物料厚度
|
|
|
equipment.setLastSeriesProduceMark(lastop.getMetal() + "^_^" + lastop.getProducttype() + "^_^" + lastop.getProwidth() + "^_^" + lastop.getThickness() + "^_^" + outMaterDos.get(0).getThickness());
|