Jelajahi Sumber

数据组装优化

fangpy 6 bulan lalu
induk
melakukan
1d0d22903f

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

@@ -87,7 +87,7 @@ public class ApsServiceImpl implements ApsService {
     /**
      * Aps排程
      * @param apsBlankOrders
-     * @param apsType cd:插单,lzcp:冷轧连续重排
+     * @param apsType cd:插单,lzcp:冷轧连续重排,mix:混合排程
      */
     @Override
     public void apsSchedule(List<ApsBlankOrderVo> apsBlankOrders,String apsType,SysUserVo currentUser) {
@@ -145,9 +145,9 @@ public class ApsServiceImpl implements ApsService {
                 }
                 // 冷轧连续性问题重排
                 if(StrUtil.isNotBlank(apsType) && "lzcp".equals(apsType)){
-                    lzlxOrderSchedule(apsBlankOrders,currentUser);
+                    lzlxOrderSchedule(apsBlankOrders,currentUser,apsType);
                 }else{
-                    apsOrderScheduleNew(apsBlankOrders,currentUser);
+                    apsOrderScheduleNew(apsBlankOrders,currentUser,apsType);
                 }
             } catch (Exception e) {
                 e.printStackTrace();
@@ -337,7 +337,7 @@ public class ApsServiceImpl implements ApsService {
         });
     }
 
-    private void apsOrderScheduleNew(List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser){
+    private void apsOrderScheduleNew(List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser,String apsType){
         // 插单重排的优先排程
         List<ApsBlankOrderVo> cdorders = apsBlankOrders.stream().filter(v -> "1".equals(v.getCdbs())).collect(Collectors.toList());
         // 先按合金,合金状态分组,再每组分别排程
@@ -364,7 +364,7 @@ public class ApsServiceImpl implements ApsService {
         Date finalApsPlanStartDate = apsPlanStartDate;
         if(cdorders != null && cdorders.size()>0){
             try{
-                apsOrderScheduleApsNew(cdorders,currentUser,allEqs, finalApsPlanStartDate);
+                apsOrderScheduleApsNew(cdorders,currentUser,allEqs, finalApsPlanStartDate,apsType);
             }catch (Exception e) {
                 e.printStackTrace();
                 logger.info("排程异常",e);
@@ -460,7 +460,7 @@ public class ApsServiceImpl implements ApsService {
                         }
                         return a;
                     });
-                    apsOrderScheduleApsNew(v,currentUser,allEqs, finalApsPlanStartDate);
+                    apsOrderScheduleApsNew(v,currentUser,allEqs, finalApsPlanStartDate,apsType);
                 }catch (Exception e) {
                     e.printStackTrace();
                     logger.info("排程异常",e);
@@ -490,7 +490,7 @@ public class ApsServiceImpl implements ApsService {
      * @param apsBlankOrders
      * @param currentUser
      */
-    private void lzlxOrderSchedule(List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser){
+    private void lzlxOrderSchedule(List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser,String apsType){
         // 坯料计划排序
         Collections.sort(apsBlankOrders,(v1,v2)->{
             // 合金
@@ -579,10 +579,10 @@ public class ApsServiceImpl implements ApsService {
             }
         }
         Date finalApsPlanStartDate = apsPlanStartDate;
-        apsOrderScheduleApsNew(apsBlankOrders,currentUser,allEqs, finalApsPlanStartDate);
+        apsOrderScheduleApsNew(apsBlankOrders,currentUser,allEqs, finalApsPlanStartDate,apsType);
     }
 
-    private void apsOrderScheduleApsNew(List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser,Map<String,Equipment> allEqs,Date apsPlanStartDate){
+    private void apsOrderScheduleApsNew(List<ApsBlankOrderVo> apsBlankOrders,SysUserVo currentUser,Map<String,Equipment> allEqs,Date apsPlanStartDate,String apsType){
         // 设备数据每批次开始清空
         allEqs.clear();
         // 排程前解锁所有待排程订单
@@ -705,6 +705,10 @@ public class ApsServiceImpl implements ApsService {
 
             apsProductionSchedule.setProcesses(processes);
             apsProductionSchedule.setEquipmentList(equipmentList);
+            // 是否混排
+            if(StrUtil.isNotBlank(apsType)){
+                apsProductionSchedule.setScheduleType(apsType);
+            }
 
             System.out.println("排程数据:" + JSONUtil.toJsonStr(apsProductionSchedule, jsonConfig));
             logger.info("排程数据:" + JSONUtil.toJsonStr(apsProductionSchedule, jsonConfig));

+ 7 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/ProductionScheduleVo.java

@@ -33,6 +33,13 @@ public class ProductionScheduleVo {
      */
     private Integer planSeconds;
 
+    /**
+     * 排程模式:
+     * default:分批排程(默认排程)
+     * mix:混合排程
+     */
+    private String scheduleType;
+
     /**
      * 生产工序集合
      */