|
@@ -100,20 +100,23 @@ public class ApsServiceImpl implements ApsService {
|
|
|
if (fbNotLock != null && fbNotLock.size() > 0) {
|
|
|
apsBlankOrders.addAll(fbNotLock);
|
|
|
}
|
|
|
-
|
|
|
- // 模型转换
|
|
|
-// ProductionScheduleVo productionScheduleVo = apsBlankOrderService.apsPlanModelSet(apsBlankOrders);
|
|
|
- ProductionScheduleVo productionScheduleVo = apsProductionScheduleInit(apsBlankOrders);
|
|
|
- JSONConfig jsonConfig = JSONConfig.create();
|
|
|
- jsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
- 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,apsBlankOrders);
|
|
|
+ // 按订单分批排程
|
|
|
+ Map<String, List<ApsBlankOrderVo>> groupedItems = apsBlankOrders.stream()
|
|
|
+ .collect(Collectors.groupingBy(ApsBlankOrderVo::getProductionorderid));
|
|
|
+ groupedItems.forEach((k,v)->{
|
|
|
+ // 模型转换
|
|
|
+ ProductionScheduleVo productionScheduleVo = apsProductionScheduleInit(v);
|
|
|
+ JSONConfig jsonConfig = JSONConfig.create();
|
|
|
+ jsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ 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,apsBlankOrders);
|
|
|
+ });
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
throw e;
|
|
@@ -144,6 +147,7 @@ public class ApsServiceImpl implements ApsService {
|
|
|
apsScheduleConfig = apsConfigs.get(0);
|
|
|
productionScheduleVo.setLooseness(apsScheduleConfig.getLooseness());
|
|
|
productionScheduleVo.setPlanSeconds(apsScheduleConfig.getScheduleruntime());
|
|
|
+ productionScheduleVo.setPcspeed(apsScheduleConfig.getPcspeed());
|
|
|
Map<String, Integer> roamTime = new HashMap<>();
|
|
|
Integer workshopin = apsScheduleConfig.getWorkshopin();
|
|
|
Integer workshopcross = apsScheduleConfig.getWorkshopcross();
|
|
@@ -239,9 +243,9 @@ public class ApsServiceImpl implements ApsService {
|
|
|
if (StringUtils.isNotBlank(operationDo.getCanchoosedeviceid())) {
|
|
|
String[] sbIds = operationDo.getCanchoosedeviceid().split(",");
|
|
|
for (String equIds : sbIds) {
|
|
|
- /*if(equIds.equals("0001be252874536843730b100052")){
|
|
|
+ if(equIds.equals("0001be252874536843730b100064")){
|
|
|
System.out.println(equIds);
|
|
|
- }*/
|
|
|
+ }
|
|
|
AspCheckItemsDo checkItemsD = eqMaps.get(equIds);
|
|
|
if (checkItemsD != null) {
|
|
|
optionalEquipments.add(equIds);
|
|
@@ -278,22 +282,26 @@ public class ApsServiceImpl implements ApsService {
|
|
|
.orderByDesc(ApsProcessOperationProcessEquDo::getPlanstartdate)
|
|
|
);
|
|
|
if (lastpros != null && lastpros.size() > 0) {
|
|
|
+ boolean hasLast = true;
|
|
|
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){
|
|
|
- ApsProcessOperationDo lastop = apsProcessOperationService.getById(lastpro.getProcessid());
|
|
|
- // 输出物料
|
|
|
- List<ApsProcessOperationOutMaterDo> outMaterDos = apsProcessOperationOutMaterService.list(new LambdaQueryWrapper<ApsProcessOperationOutMaterDo>()
|
|
|
- .eq(ApsProcessOperationOutMaterDo::getMainid, lastpro.getProcessid()));
|
|
|
- equipment.setLastProcessType(lastop.getProcess());
|
|
|
- equipment.setLastProcessEndTime(lastpro.getPlanenddate());
|
|
|
- equipment.setLastProcessCutfinishmin(lastop.getCutfinishmin() == null ? null : lastop.getCutfinishmin().intValue());
|
|
|
- // 合金+输入物料+宽度+厚度+输出物料厚度
|
|
|
- equipment.setLastSeriesProduceMark(lastop.getMetal() + "^_^" + lastop.getProducttype() + "^_^" + lastop.getProwidth() + "^_^" + lastop.getThickness() + "^_^" + outMaterDos.get(0).getThickness());
|
|
|
- equipment.setLastProcessCutfinishmin(lastop.getCutfinishmin() == null ? null : lastop.getCutfinishmin().intValue());
|
|
|
+ if(hasLasts != null || hasLasts.size() > 0){
|
|
|
+ hasLast = false;
|
|
|
}
|
|
|
}
|
|
|
+ if(hasLast){
|
|
|
+ ApsProcessOperationDo lastop = apsProcessOperationService.getById(lastpro.getProcessid());
|
|
|
+ // 输出物料
|
|
|
+ List<ApsProcessOperationOutMaterDo> outMaterDos = apsProcessOperationOutMaterService.list(new LambdaQueryWrapper<ApsProcessOperationOutMaterDo>()
|
|
|
+ .eq(ApsProcessOperationOutMaterDo::getMainid, lastpro.getProcessid()));
|
|
|
+ equipment.setLastProcessType(lastop.getProcess());
|
|
|
+ equipment.setLastProcessEndTime(lastpro.getPlanenddate());
|
|
|
+ equipment.setLastProcessCutfinishmin(lastop.getCutfinishmin() == null ? null : lastop.getCutfinishmin().intValue());
|
|
|
+ // 合金+输入物料+宽度+厚度+输出物料厚度
|
|
|
+ equipment.setLastSeriesProduceMark(lastop.getMetal() + "^_^" + lastop.getProducttype() + "^_^" + lastop.getProwidth() + "^_^" + lastop.getThickness() + "^_^" + outMaterDos.get(0).getThickness());
|
|
|
+ equipment.setLastProcessCutfinishmin(lastop.getCutfinishmin() == null ? null : lastop.getCutfinishmin().intValue());
|
|
|
+ }
|
|
|
}
|
|
|
// 查询相关工序作业
|
|
|
Set<String> processIds = new HashSet<>();
|
|
@@ -306,7 +314,9 @@ public class ApsServiceImpl implements ApsService {
|
|
|
processOperationDos = apsProcessOperationService.list(new LambdaQueryWrapper<ApsProcessOperationDo>()
|
|
|
.in(ApsProcessOperationDo::getId, processIds));
|
|
|
}
|
|
|
-
|
|
|
+ //
|
|
|
+ List<ApsProcessOperationOutMaterDo> outMaterDosAll = apsProcessOperationOutMaterService.list(new LambdaQueryWrapper<ApsProcessOperationOutMaterDo>()
|
|
|
+ .in(ApsProcessOperationOutMaterDo::getMainid, processIds));
|
|
|
List<EquipmentRunTime> equipmentRunTimes = new ArrayList<>();
|
|
|
for (ApsProcessOperationProcessEquDo equs : processEqus) {
|
|
|
EquipmentRunTime er = new EquipmentRunTime();
|
|
@@ -319,8 +329,9 @@ public class ApsServiceImpl implements ApsService {
|
|
|
if (pos != null && pos.size() > 0) {
|
|
|
ApsProcessOperationDo processesDo = pos.get(0);
|
|
|
// 输出物料
|
|
|
- List<ApsProcessOperationOutMaterDo> outMaterDos = apsProcessOperationOutMaterService.list(new LambdaQueryWrapper<ApsProcessOperationOutMaterDo>()
|
|
|
- .eq(ApsProcessOperationOutMaterDo::getMainid, processesDo.getId()));
|
|
|
+// List<ApsProcessOperationOutMaterDo> outMaterDos = apsProcessOperationOutMaterService.list(new LambdaQueryWrapper<ApsProcessOperationOutMaterDo>()
|
|
|
+// .eq(ApsProcessOperationOutMaterDo::getMainid, processesDo.getId()));
|
|
|
+ List<ApsProcessOperationOutMaterDo> outMaterDos = outMaterDosAll.stream().filter(v->v.getMainid().equals(processesDo.getId())).collect(Collectors.toList());
|
|
|
er.setProcessType(processesDo.getProcess());
|
|
|
// 合金+输入物料+宽度+厚度
|
|
|
er.setSeriesProduceMark(processesDo.getMetal() + "^_^" + processesDo.getProducttype() + "^_^" + processesDo.getProwidth() + "^_^" + processesDo.getThickness() + "^_^" + outMaterDos.get(0).getThickness());
|