瀏覽代碼

自动匹配工艺路线

DLC 2 月之前
父節點
當前提交
1ee7b3d964

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

@@ -191,4 +191,7 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
 
     @Select("select * from aps_process_operation_process_equ where DELETED = 0 ORDER BY PLANSTARTDATE DESC LIMIT 1")
     ApsProcessOperationProcessEquDo selectLatestEqu();
+
+    @Select("select ID,CRAFTROUTEID from aps_blank_order where DELETED='0' and IFNULL(CRAFTROUTEID,'')!='' and IFNULL(PROCESSDESC,'')=#{processdesc} order by MODIFYDATE desc limit 1")
+    ApsBlankOrderDo getHistoryBlank(@Param("processdesc") String processdesc);
 }

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

@@ -56,7 +56,8 @@ import static com.rongwei.safecommon.utils.SaveConstans.JobStatus.*;
 import static com.rongwei.safecommon.utils.SaveConstans.LockmarkType.LOCKMARK_N;
 import static com.rongwei.safecommon.utils.SaveConstans.LockmarkType.LOCKMARK_Y;
 import static com.rongwei.safecommon.utils.SaveConstans.ProductionStatus.*;
-import static com.rongwei.safecommon.utils.SaveConstans.SchedulstatusTyep.*;
+import static com.rongwei.safecommon.utils.SaveConstans.SchedulstatusTyep.SCHEDULSTATUS_HASRELEASE;
+import static com.rongwei.safecommon.utils.SaveConstans.SchedulstatusTyep.SCHEDULSTATUS_TORELEASE;
 
 /**
  * <p>
@@ -1041,7 +1042,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 
             //更新生产状态为“待发布”(20)
             List<ApsBlankOrderVo> toupstatus = apsBlankOrders.stream().filter(v ->
-                            blankids.contains(v.getId()) && (StringUtils.isBlank(v.getIfcp()) || "N".equals(v.getIfcp())))
+                    blankids.contains(v.getId()) && (StringUtils.isBlank(v.getIfcp()) || "N".equals(v.getIfcp())))
                     .collect(Collectors.toList());
             updateProductStatusByOrderIds(toupstatus);
             // 自动加锁坯料计划下的工序作业
@@ -2537,15 +2538,15 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             }
         }
         //工艺描述
-        setProcessDesc(apsProductionOrderDo,apsBlankOrderDo,apsProcessOutputProductDoList,collator);
-
+        setProcessDesc(apsProductionOrderDo, apsBlankOrderDo, apsProcessOutputProductDoList, collator, checkLevel);
 
         return R.ok();
     }
 
-    private void setProcessDesc(ApsProductionOrderDo apsProductionOrderDo, ApsBlankOrderDo apsBlankOrderDo, List<ApsProcessOutputProductDo> apsProcessOutputProductDoList, Collator collator) {
+    private void setProcessDesc(ApsProductionOrderDo apsProductionOrderDo, ApsBlankOrderDo apsBlankOrderDo, List<ApsProcessOutputProductDo> apsProcessOutputProductDoList, Collator collator, Integer checkLevel) {
         //输出成品拼接字段:输出工艺描述
         List<ApsProcessOutputProductDo> needUpdateOutputList = new LinkedList<>();
+        boolean idmatureprocess = true;//是否成熟工艺
         for (ApsProcessOutputProductDo apsProcessOutputProductDo : apsProcessOutputProductDoList) {
             //合金、合金状态、产品类型及其替代
             String alloy = StringUtils.isNotBlank(apsProcessOutputProductDo.getAlloy()) ? apsProcessOutputProductDo.getAlloy() : "";
@@ -2592,6 +2593,10 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             needUpdate.setId(apsProcessOutputProductDo.getId());
             needUpdate.setOutputprocessdes(outputprocessdes);
             needUpdateOutputList.add(needUpdate);
+
+            if (StringUtils.isEmpty(apsProcessOutputProductDo.getIdmatureprocess()) || apsProcessOutputProductDo.getIdmatureprocess().equals("否")) {
+                idmatureprocess = false;
+            }
         }
         //坯料计划拼接字段:工艺描述
         List<String> outputProcessDescList = needUpdateOutputList.stream().map(ApsProcessOutputProductDo::getOutputprocessdes).collect(Collectors.toList());
@@ -2607,7 +2612,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         String customid = StringUtils.isNotBlank(apsProductionOrderDo.getCustomid()) ? apsProductionOrderDo.getCustomid() : "";
         //是否新料
         String isNewBlank = "否";
-        if ("新料".equals(apsBlankOrderDo.getBlankcomefrom())){
+        if ("新料".equals(apsBlankOrderDo.getBlankcomefrom())) {
             isNewBlank = "是";
         }
         //排产车间
@@ -2623,7 +2628,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         String prowidth = apsBlankOrderDo.getProwidth() != null ? CXCommonUtils.removeExtraZerosAndDecimal(apsBlankOrderDo.getProwidth()) : "";
 
         //坯料计划工艺描述
-        String endProcessDesc = String.join(",",Arrays.asList(customid,isNewBlank,plannedproductionworkshop,routetag,blanktype,producttype,alloy,alloystatus,thickness+"*"+prowidth,processDesc));
+        String endProcessDesc = String.join(",", Arrays.asList(customid, isNewBlank, plannedproductionworkshop, routetag, blanktype, producttype, alloy, alloystatus, thickness + "*" + prowidth, processDesc));
         ApsBlankOrderDo needUpdate = new ApsBlankOrderDo();
         needUpdate.setId(apsBlankOrderDo.getId());
         needUpdate.setProcessdesc(endProcessDesc);
@@ -2631,6 +2636,34 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         //更新输出成品和坯料计划
         apsProcessOutputProductService.updateBatchById(needUpdateOutputList);
         apsBlankOrderService.updateById(needUpdate);
+
+        //自动匹配工艺路线 && apsProductionOrderDo.getAuditstatus().equals("待制定坯料计划")
+        if (checkLevel == 1 && idmatureprocess) {
+            ApsBlankOrderDo historyBlank = apsBlankOrderDao.getHistoryBlank(endProcessDesc);
+            if (historyBlank != null) {
+                Map<String, Object> processMap = new HashMap<>();
+                Map<String, Object> blankMap = new HashMap<>();
+                blankMap.put("ID", apsBlankOrderDo.getId());
+                blankMap.put("PRODUCTTYPEID", apsBlankOrderDo.getProducttypeid());
+                blankMap.put("PRODUCTTYPE", apsBlankOrderDo.getProducttype());
+                blankMap.put("ALLOY", apsBlankOrderDo.getAlloy());
+                blankMap.put("ALLOYSTATUS", apsBlankOrderDo.getAlloystatus());
+                blankMap.put("THICKNESS", apsBlankOrderDo.getThickness());
+                blankMap.put("PROWIDTH", apsBlankOrderDo.getProwidth());
+                blankMap.put("PROLENGTH", apsBlankOrderDo.getProlength());
+                blankMap.put("SINGLEROLLWEIGHT", apsBlankOrderDo.getSinglerollweight());
+                blankMap.put("NUMBERUNIT", apsBlankOrderDo.getNumberunit());
+                blankMap.put("ROLLNUM", apsBlankOrderDo.getRollnum());
+                blankMap.put("TOTALWEIGHT", apsBlankOrderDo.getTotalweight());
+                blankMap.put("PRODUCTSTATUS", apsBlankOrderDo.getProductstatus());
+                blankMap.put("BLANKCOMEFROM", apsBlankOrderDo.getBlankcomefrom());
+
+                processMap.put("BLANKDATA", blankMap);
+                processMap.put("NEWBLANKID", historyBlank.getId());
+                processMap.put("CRAFTROUTEID", historyBlank.getCraftrouteid());
+                apsProcessOperationService.chooseHistoryRoute(processMap);
+            }
+        }
     }
 
     public R checkBlankOrder(CheckAndSaveOrUpdateBlankReq req, int j) {