|
@@ -1,5 +1,6 @@
|
|
|
package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.collection.ListUtil;
|
|
|
import cn.hutool.core.date.DateField;
|
|
@@ -783,9 +784,12 @@ public class ApsServiceImpl implements ApsService {
|
|
|
System.out.println("排程数据:" + JSONUtil.toJsonStr(apsProductionSchedule, jsonConfig));
|
|
|
logger.info("排程数据:" + JSONUtil.toJsonStr(apsProductionSchedule, jsonConfig));
|
|
|
// APS平台排程接口调用
|
|
|
- ProductionScheduleRetVo productionScheduleRetVo;
|
|
|
+ ProductionScheduleRetVo productionScheduleRetVo = new ProductionScheduleRetVo();
|
|
|
if (apsType.getConstraintMode() != null && apsType.getConstraintMode().equals("lz")) {
|
|
|
- productionScheduleRetVo = rwApsServer.productionLzDdSchedule(apsProductionSchedule);
|
|
|
+ List<ProductionScheduleVo> reqList = xmxSplit(apsProductionSchedule);
|
|
|
+ for (ProductionScheduleVo productionScheduleVo : reqList) {
|
|
|
+ productionScheduleRetVo = rwApsServer.productionLzDdSchedule(productionScheduleVo);
|
|
|
+ }
|
|
|
} else {
|
|
|
productionScheduleRetVo = rwApsServer.productionSchedule(apsProductionSchedule);
|
|
|
}
|
|
@@ -905,6 +909,39 @@ public class ApsServiceImpl implements ApsService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private List<ProductionScheduleVo> xmxSplit(ProductionScheduleVo apsProductionSchedule) {
|
|
|
+ List<ProductionScheduleVo> res = new LinkedList<>();
|
|
|
+ List<ProductionProcesses> processes = apsProductionSchedule.getProcesses();
|
|
|
+ List<String> blankIdList = processes.stream().map(item -> item.getProduceOrder().get(0).getId()).distinct().collect(Collectors.toList());
|
|
|
+ //查询涉及到的所有明细
|
|
|
+ List<ApsProcessOperationProcessEquDo> allProcessEquList = apsProcessOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>().in(ApsProcessOperationProcessEquDo::getBlankid, blankIdList));
|
|
|
+ for (String blankId : blankIdList) {
|
|
|
+ List<ProductionProcesses> productionProcesses = new LinkedList<>(processes);
|
|
|
+ for (ProductionProcesses productionProcess : productionProcesses) {
|
|
|
+ //不是此坯料计划的明细,并且解锁的,锁定,并且填入加工设备、计划开工时间
|
|
|
+ if (!productionProcess.getProduceOrder().get(0).getId().equals(blankId)
|
|
|
+ && !productionProcess.isIfLock()) {
|
|
|
+ ApsProcessOperationProcessEquDo equDo = allProcessEquList.stream().filter(item -> item.getId().equals(productionProcess.getId())).findFirst().orElse(null);
|
|
|
+ if (equDo != null) {
|
|
|
+ LocalDateTime planstartdate = DateUtil.parseLocalDateTime(equDo.getPlanstartdate().toString());
|
|
|
+ LocalDateTime planenddate = DateUtil.parseLocalDateTime(equDo.getPlanenddate().toString());
|
|
|
+ String processdeviceid = equDo.getProcessdeviceid();
|
|
|
+ Equipment equipment = new Equipment();
|
|
|
+ equipment.setId(processdeviceid);
|
|
|
+ productionProcess.setStartTime(planstartdate);
|
|
|
+ productionProcess.setEndTime(planenddate);
|
|
|
+ productionProcess.setEquipment(equipment);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ProductionScheduleVo newProductionSchedule = BeanUtil.toBean(apsProductionSchedule, ProductionScheduleVo.class);
|
|
|
+ newProductionSchedule.setProcesses(productionProcesses);
|
|
|
+ res.add(newProductionSchedule);
|
|
|
+ }
|
|
|
+
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
private void logSave(SysUserVo currentUser, DateTime startTime, DateTime endTime, ApsTypeVo apsType, Date apsPlanStartDate, Date apsPlanEndDate, ProductionScheduleRetVo productionScheduleRetVo) {
|
|
|
try {
|
|
|
ApsScheduleLogDo apsScheduleLogDo = new ApsScheduleLogDo();
|