|
@@ -590,6 +590,24 @@ public class ApsServiceImpl implements ApsService {
|
|
|
apsBlankOrders.forEach((bo)->{
|
|
|
blankOrderIds.add(bo.getId());
|
|
|
});
|
|
|
+ // 排程前数据组装
|
|
|
+ ProductionScheduleVo apsProductionSchedule = apsBfDataAssemble(apsBlankOrders,blankOrderIds, allEqs, apsPlanStartDate, apsType);
|
|
|
+ // 排程后数据处理
|
|
|
+ if(apsProductionSchedule != null){
|
|
|
+ apsDataUpdate(apsProductionSchedule,blankOrderIds,apsBlankOrders,currentUser);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 排程前数据组装
|
|
|
+ * @param apsBlankOrders
|
|
|
+ * @param allEqs
|
|
|
+ * @param apsPlanStartDate
|
|
|
+ * @param apsType
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ProductionScheduleVo apsBfDataAssemble(List<ApsBlankOrderVo> apsBlankOrders,List<String> blankOrderIds,Map<String,Equipment> allEqs,Date apsPlanStartDate,ApsTypeVo apsType){
|
|
|
System.out.println("当前批次排程坯料计划ID:" + blankOrderIds);
|
|
|
logger.info("当前批次排程坯料计划ID:" + blankOrderIds);
|
|
|
// 更新待排程的锁定的作业
|
|
@@ -604,11 +622,10 @@ public class ApsServiceImpl implements ApsService {
|
|
|
apsBlankOrderDao.setProDetailLockMark(blankidStrs);
|
|
|
}
|
|
|
// 排程
|
|
|
+ ProductionScheduleVo apsProductionSchedule = null;
|
|
|
List<ProductionScheduleVo> productionScheduleVos = new ArrayList<>();
|
|
|
Map<String,List<ApsBlankOrderVo>> dataMap = new HashMap<>();
|
|
|
Map<String,ApsBlankOrderVo> dataMapOrder = new HashMap<>();
|
|
|
- JSONConfig jsonConfig = JSONConfig.create();
|
|
|
- jsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
List<ApsScheduleConfigDo> apsConfigs = apsScheduleConfigService.list();
|
|
|
// 所有设备
|
|
|
List<AspCheckItemsDo> eqs = aspCheckItemsService.list(new LambdaQueryWrapper<>());
|
|
@@ -660,7 +677,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
|
|
|
// 多个坯料计划合并排程
|
|
|
if(apsProductionSchedules != null && apsProductionSchedules.size()>0){
|
|
|
- ProductionScheduleVo apsProductionSchedule = apsProductionSchedules.get(0);
|
|
|
+ apsProductionSchedule = apsProductionSchedules.get(0);
|
|
|
List<ProductionProcesses> processes = new ArrayList<>();
|
|
|
List<Equipment> equipmentList = new ArrayList<>();
|
|
|
for (ProductionScheduleVo productionSchedule : apsProductionSchedules) {
|
|
@@ -709,44 +726,56 @@ public class ApsServiceImpl implements ApsService {
|
|
|
if(apsType != null){
|
|
|
apsProductionSchedule.setScheduleType(apsType);
|
|
|
}
|
|
|
+ }
|
|
|
+ return apsProductionSchedule;
|
|
|
+ }
|
|
|
|
|
|
- System.out.println("排程数据:" + JSONUtil.toJsonStr(apsProductionSchedule, jsonConfig));
|
|
|
- logger.info("排程数据:" + JSONUtil.toJsonStr(apsProductionSchedule, jsonConfig));
|
|
|
- // APS平台排程接口调用
|
|
|
- ProductionScheduleRetVo productionScheduleRetVo = rwApsServer.productionSchedule(apsProductionSchedule);
|
|
|
- if (!"200".equals(productionScheduleRetVo.getCode())) {
|
|
|
- logger.info("排程异常,坯料计划ID:" + blankOrderIds);
|
|
|
+ /**
|
|
|
+ * 排程后数据处理
|
|
|
+ * @param apsProductionSchedule
|
|
|
+ * @param blankOrderIds
|
|
|
+ * @param apsBlankOrders
|
|
|
+ * @param currentUser
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void apsDataUpdate(ProductionScheduleVo apsProductionSchedule,List<String> blankOrderIds
|
|
|
+ ,List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser){
|
|
|
+ JSONConfig jsonConfig = JSONConfig.create();
|
|
|
+ jsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ System.out.println("排程数据:" + JSONUtil.toJsonStr(apsProductionSchedule, jsonConfig));
|
|
|
+ logger.info("排程数据:" + JSONUtil.toJsonStr(apsProductionSchedule, jsonConfig));
|
|
|
+ // APS平台排程接口调用
|
|
|
+ ProductionScheduleRetVo productionScheduleRetVo = rwApsServer.productionSchedule(apsProductionSchedule);
|
|
|
+ if (!"200".equals(productionScheduleRetVo.getCode())) {
|
|
|
+ logger.info("排程异常,坯料计划ID:" + blankOrderIds);
|
|
|
+ // 排程异常后恢复历史排程结果为锁定状态
|
|
|
+ processOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>().set(ApsProcessOperationProcessEquDo::getLockmark,"y")
|
|
|
+ .in(ApsProcessOperationProcessEquDo::getBlankid,blankOrderIds));
|
|
|
+ // 没有可排程工序的订单跳过
|
|
|
+ if("没有可排程的工序".equals(productionScheduleRetVo.getMsg())){
|
|
|
+ logger.info("排程异常:没有可排程的工序,坯料计划编号:" + blankOrderIds);
|
|
|
+ }else{
|
|
|
+ throw new CustomException(productionScheduleRetVo.getMsg()+" "+DateUtil.formatDateTime(new Date()));
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ // 获取坯料计划
|
|
|
+ apsBlankOrderService.apsAfter(productionScheduleRetVo,apsBlankOrders,currentUser);
|
|
|
+ if(StrUtil.isNotBlank(productionScheduleRetVo.getMsg())){
|
|
|
// 排程异常后恢复历史排程结果为锁定状态
|
|
|
- processOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>().set(ApsProcessOperationProcessEquDo::getLockmark,"y")
|
|
|
- .in(ApsProcessOperationProcessEquDo::getBlankid,blankOrderIds));
|
|
|
- // 没有可排程工序的订单跳过
|
|
|
- if("没有可排程的工序".equals(productionScheduleRetVo.getMsg())){
|
|
|
- logger.info("排程异常:没有可排程的工序,坯料计划编号:" + blankOrderIds);
|
|
|
+ List<String> blankids = CollUtil.distinct(productionScheduleRetVo.getProcesses().stream().map(v -> v.getProduceOrder().get(0).getId()).collect(Collectors.toList()));
|
|
|
+ List<String> allblankids = apsBlankOrders.stream().map(v -> v.getId()).collect(Collectors.toList());
|
|
|
+ List<String> exblankids = null;
|
|
|
+ if(blankids != null && blankids.size()>0){
|
|
|
+ exblankids = allblankids.stream().filter(v->!blankids.contains(v)).collect(Collectors.toList());
|
|
|
}else{
|
|
|
- throw new CustomException(productionScheduleRetVo.getMsg()+" "+DateUtil.formatDateTime(new Date()));
|
|
|
+ exblankids = allblankids;
|
|
|
}
|
|
|
- }else{
|
|
|
- // 获取坯料计划
|
|
|
- /*List<ApsBlankOrderVo> apsBlankOrderss = new ArrayList<>();
|
|
|
- apsBlankOrderss.add(bo);*/
|
|
|
- apsBlankOrderService.apsAfter(productionScheduleRetVo,apsBlankOrders,currentUser);
|
|
|
- if(StrUtil.isNotBlank(productionScheduleRetVo.getMsg())){
|
|
|
- // 排程异常后恢复历史排程结果为锁定状态
|
|
|
- List<String> blankids = CollUtil.distinct(productionScheduleRetVo.getProcesses().stream().map(v -> v.getProduceOrder().get(0).getId()).collect(Collectors.toList()));
|
|
|
- List<String> allblankids = apsBlankOrders.stream().map(v -> v.getId()).collect(Collectors.toList());
|
|
|
- List<String> exblankids = null;
|
|
|
- if(blankids != null && blankids.size()>0){
|
|
|
- exblankids = allblankids.stream().filter(v->!blankids.contains(v)).collect(Collectors.toList());
|
|
|
- }else{
|
|
|
- exblankids = allblankids;
|
|
|
- }
|
|
|
- if(exblankids != null && exblankids.size()>0){
|
|
|
- processOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>().set(ApsProcessOperationProcessEquDo::getLockmark,"y")
|
|
|
- .in(ApsProcessOperationProcessEquDo::getBlankid,exblankids));
|
|
|
- }
|
|
|
-
|
|
|
- throw new CustomException(productionScheduleRetVo.getMsg()+" "+DateUtil.formatDateTime(new Date()));
|
|
|
+ if(exblankids != null && exblankids.size()>0){
|
|
|
+ processOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>().set(ApsProcessOperationProcessEquDo::getLockmark,"y")
|
|
|
+ .in(ApsProcessOperationProcessEquDo::getBlankid,exblankids));
|
|
|
}
|
|
|
+
|
|
|
+ throw new CustomException(productionScheduleRetVo.getMsg()+" "+DateUtil.formatDateTime(new Date()));
|
|
|
}
|
|
|
}
|
|
|
}
|