Pārlūkot izejas kodu

APS二开服务业务数据转换模型数据

fangpy 1 gadu atpakaļ
vecāks
revīzija
17da6a8507

+ 4 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsBlankOrderDao.java

@@ -28,6 +28,10 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
     @Select("select a.*,b.DELIVERYDATE from aps_blank_order a LEFT JOIN aps_production_order b on a.PRODUCTIONORDERID=b.ID where a.PRODUCTIONORDERID=#{orderId} and a.DELETED='0' and b.DELETED='0'")
     List<ApsBlankOrderVo> getByOrderId(@Param("orderId") String orderId);
 
+    @Select("select a.*,b.DELIVERYDATE from aps_blank_order a LEFT JOIN aps_production_order b on a.PRODUCTIONORDERID=b.ID " +
+            "where (a.LOCKMARK is null or a.LOCKMARK='n') and a.DELETED='0' and b.DELETED='0' and b.SCHEDULSTATUS='待发布' and a.ID not in (${hasIds})")
+    List<ApsBlankOrderVo> getFbNotLock(@Param("hasIds") String hasIds);
+
     @Select("select a.*,b.DELIVERYDATE from aps_blank_order a LEFT JOIN aps_production_order b on a.PRODUCTIONORDERID=b.ID " +
             "where b.SCHEDULSTATUS='待发布' and (a.LOCKMARK='n' or a.LOCKMARK is null) and a.DELETED='0' and b.DELETED='0'")
     List<ApsBlankOrderVo> getNotLockOrders();

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

@@ -1,6 +1,8 @@
 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;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.json.JSONConfig;
@@ -166,6 +168,15 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     @Transactional(rollbackFor = Exception.class)
     public void blankOrderAps(List<ApsBlankOrderVo> apsBlankOrders){
         assert apsBlankOrders != null : "排程订单不能为空";
+        // 合并待发布未锁定的订单一起排程
+        List<String> hasIds = apsBlankOrders.stream().map(v -> v.getId()).collect(Collectors.toList());
+        String idStrs = CollUtil.join(hasIds, "','");
+        idStrs = "'"+idStrs+"'";
+        // 查询待发布未锁定的所有坯料计划
+        List<ApsBlankOrderVo> fbNotLock = apsBlankOrderDao.getFbNotLock(idStrs);
+        if(fbNotLock != null && fbNotLock.size()>0){
+            apsBlankOrders.addAll(fbNotLock);
+        }
         // 先删除所有作业的明细
         List<String> blankids = apsBlankOrders.stream().map(v->v.getId()).collect(Collectors.toList());
         processOperationProcessEquService.remove(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>().in(ApsProcessOperationProcessEquDo::getBlankid,blankids));
@@ -236,10 +247,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             }
         }
         if(apsProcessOperationProcessEquDos != null && apsProcessOperationProcessEquDos.size()>0){
-
             // 再保存新数据
             processOperationProcessEquService.saveBatch(apsProcessOperationProcessEquDos);
-
             // 回写订单排程交货期
             Map<String,Date> orderDeliveryTime = new HashMap<>();
             for (ProductionProcesses process : lastProcess) {
@@ -357,7 +366,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                                     List<ApsProcessOperationProcessEquDo> processEqus = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
                                             .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
                                             .ge(ApsProcessOperationProcessEquDo::getPlanstartdate,productionScheduleVo.getApsPlanStartDate())
-//                                            .eq(ApsProcessOperationProcessEquDo::getLockmark,SaveConstans.LockmarkType.LOCKMARK_Y)
+                                            .orderByAsc(ApsProcessOperationProcessEquDo::getPlanstartdate)
                                     );
                                     if(processEqus != null && processEqus.size()>0){
                                         List<EquipmentRunTime> equipmentRunTimes = new ArrayList<>();
@@ -399,8 +408,12 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                         // 单次加工时长
                         processes.setUnitProduceTime(operationDo.getOnceprocessmin().intValue());
                         processes.setProduceTime(processes.getUnitProduceTime()*processes.getProducePcNum());
-                        processes.setMinWaitTime(operationDo.getMinflowwaitmin().intValue());
-                        processes.setMaxWaitTime(operationDo.getMaxflowwaitmin().intValue());
+                        if(operationDo.getMinflowwaitmin() != null){
+                            processes.setMinWaitTime(operationDo.getMinflowwaitmin().intValue());
+                        }
+                        if(operationDo.getMaxflowwaitmin() != null){
+                            processes.setMaxWaitTime(operationDo.getMaxflowwaitmin().intValue());
+                        }
                         // 上道工序
                         if(StringUtils.isNotBlank(operationDo.getPreviousprocessid())){
                             processes.setPreviousProcessesIds(Arrays.asList(operationDo.getPreviousprocessid().split(",")));
@@ -655,9 +668,13 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                                         // 批次
                                         processes.setProducePcNum(1);
                                         // 最小等待时长
-                                        processes.setMinWaitTime(processOperationM.getMinflowwaitmin().intValue());
+                                        if(processOperationM.getMinflowwaitmin() != null){
+                                            processes.setMinWaitTime(processOperationM.getMinflowwaitmin().intValue());
+                                        }
                                         // 最大等待时长
-                                        processes.setMaxWaitTime(processOperationM.getMaxflowwaitmin().intValue());
+                                        if(processOperationM.getMaxflowwaitmin() != null){
+                                            processes.setMaxWaitTime(processOperationM.getMaxflowwaitmin().intValue());
+                                        }
                                         // 合并加工的为瓶颈工序
                                         processes.setBottleneck(true);
                                         // 单次加工时长

+ 5 - 5
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/utils/CodeGeneration.java

@@ -83,7 +83,7 @@ public class CodeGeneration {
         strategy.setSuperEntityClass(BaseDo.class);
         strategy.setRestControllerStyle(true);
         // 设置要映射的表名(重要,需要修改的地方)
-        strategy.setInclude("asp_check_items");
+        strategy.setInclude("aps_process_operation");
         strategy.setNaming(NamingStrategy.underline_to_camel); // 自动转换表名的驼峰命名法
         strategy.setColumnNaming(NamingStrategy.no_change); // 自动转换列名的驼峰命名法
         strategy.setEntityLombokModel(true); // 是否使用lombox
@@ -113,13 +113,13 @@ public class CodeGeneration {
         String entityParentPath = projectPath + "\\cx-aps\\cx-aps-entity\\src\\main\\java\\com\\rongwei\\bsentity\\domain\\";
         String commonPath = projectPath + "\\cx-aps\\cx-aps-common\\src\\main\\java\\com\\rongwei\\bscommon\\sys\\";
         // 自定义配置会被优先输出
-        focList.add(new FileOutConfig("/gentemplates/controller.java.vm") {
+        /*focList.add(new FileOutConfig("/gentemplates/controller.java.vm") {
             @Override
             public String outputFile(TableInfo tableInfo) {
                 // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
                 return controllerParentPath + tableInfo.getEntityName() + "Controller" + StringPool.DOT_JAVA;
             }
-        });
+        });*/
         focList.add(new FileOutConfig("/gentemplates/entity.java.vm") {
             @Override
             public String outputFile(TableInfo tableInfo) {
@@ -127,7 +127,7 @@ public class CodeGeneration {
                 return entityParentPath + tableInfo.getEntityName() + "Do" + StringPool.DOT_JAVA;
             }
         });
-        focList.add(new FileOutConfig("/gentemplates/mapper.java.vm") {
+        /*focList.add(new FileOutConfig("/gentemplates/mapper.java.vm") {
             @Override
             public String outputFile(TableInfo tableInfo) {
                 // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
@@ -147,7 +147,7 @@ public class CodeGeneration {
                 // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
                 return commonPath + "service\\impl\\" + tableInfo.getEntityName() + "ServiceImpl" + StringPool.DOT_JAVA;
             }
-        });
+        });*/
         cfg.setFileOutConfigList(focList);
 
         autoGenerator.setCfg(cfg);