From c23c5d3adeac7dca6cc10e4fe96b8d0693a06d16 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期六, 04 一月 2025 12:47:58 +0800
Subject: [PATCH] #出库规则完成,盘点拣料出库测试完成

---
 src/main/java/com/zy/common/web/WcsController.java |   61 ++++++++++++++++++++++--------
 1 files changed, 45 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 5a4001e..a28c43a 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -67,25 +67,25 @@
     public synchronized Re getLocNo(@RequestBody SearchLocParam param) {
         log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
         if (Cools.isEmpty(param.getCargoHeight())) {
-            return Re.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
+            return Re.error("楂樹綆搴撶被鍨嬩笉鑳戒负绌�");
         }
         if (Cools.isEmpty(param.getFromPort())) {
             return Re.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
         }
         List<WaitPakin> waitPakins = null;
-        if (param.getFromPort().equals("100")) {
+        if (param.getFromPort().equals("101")) {
 
             //鏈夌┖鏉垮嚭搴撴椂绂佹鍏ュ簱
-            int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type",110).eq("sta_no",100));
+            int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type",110).eq("sta_no",100).notIn("wrk_sts",7));
             if(wrkCount > 0){
                 return Re.error("鏈夌┖鏉垮嚭搴撳埌100绔欐椂鏃剁姝㈠叆搴�");
             }
 
-            if (Cools.isEmpty(param.getBarCode())) {
+            if (Cools.isEmpty(param.getBarCode()) && param.getIoType() != 10) {
                 return Re.error("鏉$爜涓嶈兘涓虹┖");
             }
             waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarCode()));
-            if (Cools.isEmpty(waitPakins)) {
+            if (Cools.isEmpty(waitPakins) && param.getIoType() != 10) {
                 WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarCode());
                 if (wrkMast != null && wrkMast.getIoType() == 103) {
                     return Re.parse(CodeRes.PICK_600);
@@ -99,7 +99,7 @@
             }
         }else {
             //鏈夋弧鏉垮嚭搴撴椂绂佹绌烘澘鍏ュ簱
-            int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type",101).or().eq("io_type",110));
+            int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no",100).andNew().eq("io_type",101).or().eq("io_type",110));
             if(wrkCount > 0){
                 return Re.error("鏈夋弧鏉垮嚭搴撴椂绂佹绌烘澘鍏ュ簱");
             }
@@ -119,12 +119,12 @@
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
 
         StartupDto dto = null;
-        switch (param.getFromPort()) {
-            case "100"://婊℃墭鐩樺叆搴�
+        switch (param.getIoType()) {
+            case 1://婊℃墭鐩樺叆搴�
                 assert waitPakins != null;
                 dto = startupFullPutStore(Integer.valueOf(param.getFromPort()), param.getBarCode(), locTypeDto, waitPakins);
                 break;
-            case "200"://绌烘墭鐩樺叆搴�
+            case 10://绌烘墭鐩樺叆搴�
                 dto = emptyPlateIn(Integer.valueOf(param.getFromPort()), locTypeDto, param.getBarCode());
                 break;
             default:
@@ -195,6 +195,9 @@
         List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
         List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
         StartupDto dto = commonService.getLocNo(1, devpNo, matnrs.get(0), batchs.get(0), null, locTypeDto);
+        if(dto == null){
+            throw new CoolException("娌℃湁妫�绱㈠埌绌哄簱浣�");
+        }
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -216,6 +219,7 @@
         wrkMast.setLinkMis("Y");
         wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
         wrkMast.setMk("N");//鏄惁瀹屾垚涓婃姤wcs
+        wrkMast.setFullPlt("N");//鍑哄簱绌烘澘娑堥櫎鏍囪
         // 鎿嶄綔浜哄憳鏁版嵁
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
@@ -321,8 +325,12 @@
     @ResponseBody
     public Re status(@RequestBody StatusParam statusParam) {
         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", statusParam.getTaskId()));
-        if(Cools.isEmpty(wrkMast)){
+        if(Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()!=8){
             return Re.error("娌℃湁鎵惧埌:"+statusParam.getTaskId()+"杩欐潯浠诲姟");
+        }else if(Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()==8){
+            return Re.ok();
+        }else if(!Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()==8&&wrkMast.getIoType()==110){
+            return Re.ok();
         }
         /**
          * 浠诲姟鐘舵��
@@ -334,20 +342,41 @@
          * 瀹屾垚,8-浠诲姟缁撴潫
          */
         if (statusParam.getTaskStatus()==0){
-            wrkMast.setWrkSts(1L);//1.宸叉帴鏀�
+            //鎷f枡鍜岀洏鐐瑰啀鍏ュ簱鍒ゆ柇
+            if((wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) && wrkMast.getWrkSts() == 14){
+                Date now = new Date();
+                wrkMast.setIoTime(now);
+                wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+                wrkMast.setWrkSts(1L);//1.宸叉帴鏀�
+                wrkMast.setSourceStaNo(101); // 婧愮珯
+                wrkMast.setStaNo(null); // 鐩爣绔�
+                wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+                wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+                wrkMast.setModiTime(now);
+                // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+                LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+                locMast.setLocSts("Q");
+                locMast.setModiTime(new Date());
+                if (!locMastService.updateById(locMast)) {
+
+                    throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+                }
+            }else{
+                wrkMast.setWrkSts(1L);//1.宸叉帴鏀�
+            }
         }else if (statusParam.getTaskStatus()==1){
             wrkMast.setWrkSts(2L);//2.浠诲姟寮�濮�
         }else if (statusParam.getTaskStatus()==2){
             wrkMast.setWrkSts(3L);//3.鍙栬揣瀹屾垚
         }else if (statusParam.getTaskStatus()==3){
             wrkMast.setWrkSts(6L);//6.浠诲姟涓柇
-        } else if (statusParam.getTaskStatus()==4){
-            wrkMast.setWrkSts(7L);//6.鏀捐揣瀹屾垚
-        }if (statusParam.getTaskStatus()==8){
-            if(wrkMast.getIoType()==1 || wrkMast.getIoType() == 10){
+        } else if (statusParam.getTaskStatus()==4 || statusParam.getTaskStatus()==8){
+            if(wrkMast.getIoType()==1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 11 || wrkMast.getIoType() == 53 ||wrkMast.getIoType() == 57){
                 wrkMast.setWrkSts(4L);//4.鍏ュ簱瀹屾垚
-            }else if (wrkMast.getIoType()==101 || wrkMast.getIoType() == 110){
+            }else if (wrkMast.getIoType()==103 || wrkMast.getIoType()==107){
                 wrkMast.setWrkSts(14L);//14.宸插嚭搴撴湭纭
+            }else if (wrkMast.getIoType()==101 || wrkMast.getIoType()==110){
+                wrkMast.setWrkSts(7L);//7.鍑哄簱瀹屾垚
             }
         }
         wrkMastService.updateById(wrkMast);

--
Gitblit v1.9.1