Ver código fonte

排程数据组装优化

fangpy 1 ano atrás
pai
commit
f70a371cb4

+ 20 - 7
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsServiceImpl.java

@@ -841,7 +841,7 @@ public class ApsServiceImpl implements ApsService {
                 List<ApsProcessOperationProcessEquDo> processDetails = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
                         .eq(ApsProcessOperationProcessEquDo::getProcessid, operationDo.getId()));
                 for (ApsProcessOperationProcessEquDo processDetail : processDetails) {
-                    ProductionProcesses processes = productionProcessesDetailInit(operationDo, produceOrder, optionalEquipments,outMaterDos);
+                    ProductionProcesses processes = productionProcessesDetailInit(operationDo, produceOrder, optionalEquipments,outMaterDos,apsBlankOrderVo);
                     processes.setIfLock(true);
                     processes.setEquipmentId(processDetail.getProcessdeviceid());
                     List<String> opeqs = new ArrayList<>();
@@ -863,7 +863,7 @@ public class ApsServiceImpl implements ApsService {
                     Integer ys = operationDo.getPlanprocessrall() % planprocessrall;
                     Integer js = operationDo.getPlanprocessrall() / planprocessrall;
                     for (Integer i = 0; i < planprocessrall; i++) {
-                        ProductionProcesses processes = productionProcessesDetailInit(operationDo, produceOrder, optionalEquipments,outMaterDos);
+                        ProductionProcesses processes = productionProcessesDetailInit(operationDo, produceOrder, optionalEquipments,outMaterDos,apsBlankOrderVo);
                         if(apsBlankOrderVo.getPlanhavematerialdate() != null){
                             // 全局配置
                             ApsOverallConfig apsOverallConfig = new ApsOverallConfig();
@@ -903,7 +903,7 @@ public class ApsServiceImpl implements ApsService {
                     Integer ys = operationDo.getPlanprocessrall() % planprocessrall;
                     Integer js = operationDo.getPlanprocessrall() / planprocessrall;
                     for (Integer i = 0; i < planprocessrall; i++) {
-                        ProductionProcesses processes = productionProcessesDetailInit(operationDo, produceOrder, optionalEquipments,outMaterDos);
+                        ProductionProcesses processes = productionProcessesDetailInit(operationDo, produceOrder, optionalEquipments,outMaterDos,apsBlankOrderVo);
                         if(apsBlankOrderVo.getPlanhavematerialdate() != null){
                             // 全局配置
                             ApsOverallConfig apsOverallConfig = new ApsOverallConfig();
@@ -931,7 +931,7 @@ public class ApsServiceImpl implements ApsService {
                     }
                 }else{
                     for (Integer i = 0; i < operationDo.getPlanprocessrall(); i++) {
-                        ProductionProcesses processes = productionProcessesDetailInit(operationDo, produceOrder, optionalEquipments,outMaterDos);
+                        ProductionProcesses processes = productionProcessesDetailInit(operationDo, produceOrder, optionalEquipments,outMaterDos,apsBlankOrderVo);
                         if(apsBlankOrderVo.getPlanhavematerialdate() != null){
                             // 全局配置
                             ApsOverallConfig apsOverallConfig = new ApsOverallConfig();
@@ -959,7 +959,8 @@ public class ApsServiceImpl implements ApsService {
     }
 
     private ProductionProcesses productionProcessesDetailInit(ApsProcessOperationDo operationDo,ProduceOrder produceOrder
-            ,List<String> optionalEquipments,List<ApsProcessOperationOutMaterDo> outMaterDos){
+            ,List<String> optionalEquipments,List<ApsProcessOperationOutMaterDo> outMaterDos,ApsBlankOrderVo apsBlankOrderVo){
+        String warnPreMsg = "坯料计划号:"+apsBlankOrderVo.getBlanknumber()+"  作业类型:"+operationDo.getProcess()+"  作业名称:"+operationDo.getProcessname();
         ProductionProcesses processes = new ProductionProcesses();
         // 工序所属订单
         processes.setProduceOrder(Arrays.asList(new ProduceOrder[]{produceOrder}));
@@ -976,11 +977,20 @@ public class ApsServiceImpl implements ApsService {
         processes.setProcessType(operationDo.getProcess());
         // 单次加工时长
         if(operationDo.getOnceprocessmin() == null){
-            throw new CustomException("坯料计划ID:"+operationDo.getBlankid()+"  作业类型:"+operationDo.getProcess()+"  作业名称:"+operationDo.getProcessname()+"的作业单卷加工时间为空");
+            throw new CustomException(warnPreMsg + "的作业单卷加工时间为空");
         }
         processes.setUnitProduceTime(operationDo.getOnceprocessmin().intValue());
         processes.setProduceTime(operationDo.getOnceprocessmin().intValue());
         // 单卷宽度和重量
+        if(operationDo.getProwidth() == null){
+            throw new CustomException(warnPreMsg + "的作业单卷宽度为空");
+        }
+        if(operationDo.getSinglerollweight() == null){
+            throw new CustomException(warnPreMsg + "的作业单卷重量为空");
+        }
+        if(operationDo.getThickness() == null){
+            throw new CustomException(warnPreMsg + "的作业单卷厚度为空");
+        }
         processes.setVolumeWidth(operationDo.getProwidth());
         processes.setSinglerollweight(operationDo.getSinglerollweight());
         processes.setVolumeThickness(operationDo.getThickness());
@@ -991,8 +1001,11 @@ public class ApsServiceImpl implements ApsService {
             processes.setMaxWaitTime(operationDo.getMaxflowwaitmin().intValue());
         }
         // 合金
+        if(operationDo.getMetal() == null){
+            throw new CustomException(warnPreMsg + "的作业合金为空");
+        }
         processes.setVolumeMetal(operationDo.getMetal());
-        if("成退".equals(operationDo.getProcess()) || "中退".equals(operationDo.getProcess())){
+        if("成退".equals(operationDo.getProcess()) || "中退".equals(operationDo.getProcess()) || "小卷成退".equals(operationDo.getProcess())){
             processes.setVolumeMetalstate(outMaterDos.get(0).getMetalstate());
         }else{
             processes.setVolumeMetalstate(operationDo.getMetalstate());