From fce34ab8e1453d7376de56eca7eff01576e62745 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期六, 18 五月 2024 16:52:23 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java        |    1 
 src/main/java/com/zy/common/service/AgvCommonService.java      |    2 
 src/main/java/com/zy/asrs/controller/AgvMobileController.java  |   83 ++++++++++++++++++---------
 src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java         |    3 
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java |   10 ++-
 src/main/java/com/zy/asrs/task/AutoMoveScheduler.java          |   36 ++++++++++++
 src/main/webapp/static/js/agvWrkMast/wrkMast.js                |    7 +-
 src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java    |   38 ++++++++++++
 8 files changed, 144 insertions(+), 36 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index 6dd8c54..c8e678a 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -41,6 +41,8 @@
     private AgvLocDetlService agvLocDetlService;
     @Autowired
     private AgvWrkMastService agvWrkMastService;
+    @Autowired
+    private AgvWrkDetlService agvWrkDetlService;
 
 
     /*
@@ -416,36 +418,23 @@
         }
         for (HashMap<String, String> map : dbList) {
             String locNo = map.get("locNo");
-            String barcode = map.get("barcode");
-            //鐢熸垚宸ヤ綔妗�
-            AgvWrkMast mast = new AgvWrkMast();
-            //宸ヤ綔鐘舵��
-            mast.setWrkSts(22L);
-            //鍏ュ嚭搴撶被鍨�
-            mast.setIoType(ioType);
-            mast.setIoTime(now);
-            //浼樺厛绾�
-            mast.setIoPri(300.0);
-            //婧愮珯鐐�
-            mast.setSourceLocNo(locNo);
-            //鐩爣绔欑偣
-            mast.setLocNo("");
-            //瀹瑰櫒缂栫爜
-            mast.setBarcode(barcode);
-            //瀹瑰櫒绫诲瀷
-            mast.setWhsType(30);
-            // 鐩爣妤煎眰
-            mast.setCrnNo(floor);
-            mast.setAppeUser(getUserId());
-            mast.setAppeTime(now);
-            mast.setModiUser(getUserId());
-            mast.setModiTime(now);
-            if (!agvWrkMastService.insertByIncrease(mast)) {
-                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-            }
+            String barcode = map.get("suppCode");
+            AgvWrkMast wrkMast = createWrkMast(ioType, 22L, locNo, "", barcode, now, getUserId(), 30,floor);
             // 鍚屾璋冩嫧鍗�
             List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
             for (AgvLocDetl agvLocDetl : agvLocDetls) {
+                AgvWrkDetl wrkDetl = new AgvWrkDetl();
+                wrkDetl.setWrkNo(wrkMast.getWrkNo());
+                wrkDetl.sync(agvLocDetl);
+                wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
+                wrkDetl.setIoTime(now);
+                wrkDetl.setAppeUser(getUserId());
+                wrkDetl.setAppeTime(now);
+                wrkDetl.setModiUser(getUserId());
+                wrkDetl.setModiTime(now);
+                if (!agvWrkDetlService.insert(wrkDetl)) {
+                    throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+                }
                 // 鏇存柊璁㈠崟
                 OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
                 orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
@@ -454,7 +443,9 @@
                 }
             }
             // 鏇存柊婧愬簱浣�
-
+            AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo));
+            locMast.setLocSts("R");
+            agvLocMastService.updateById(locMast);
         }
         return R.ok();
     }
@@ -501,5 +492,41 @@
 
         System.out.println(agvLocDetls22.equals(agvLocDetls2));
     }
+    /*
+   鐢熸垚宸ヤ綔妗�
+    */
+    private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode,  Date now, Long userId, int containerType,int floor){
+        AgvWrkMast wrkMast = new AgvWrkMast();
+        //宸ヤ綔鐘舵��
+        wrkMast.setWrkSts(wrkSts);
+        //鍏ュ嚭搴撶被鍨�
+        wrkMast.setIoType(ioType);
+        wrkMast.setIoTime(now);
+        //浼樺厛绾�
+        wrkMast.setIoPri(300.0);
+        //婧愮珯鐐�
+        wrkMast.setSourceLocNo(sourceLocNo);
+        //鐩爣绔欑偣
+        wrkMast.setLocNo(locNo);
+        //瀹瑰櫒缂栫爜
+        wrkMast.setBarcode(barcode);
+        //瀹瑰櫒绫诲瀷
+        wrkMast.setWhsType(containerType);
+        // 鐩爣妤煎眰
+        wrkMast.setCrnNo(floor);
+
+        wrkMast.setAppeUser(userId);
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(now);
+
+        if (!agvWrkMastService.insertByIncrease(wrkMast)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+
+        wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo));
+
+        return wrkMast;
+    }
 
 }
diff --git a/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java
index edb28d1..c0fd131 100644
--- a/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/AgvWrkMastMapper.java
@@ -14,13 +14,14 @@
             "io_pri," +
             "source_loc_no," +
             "loc_no," +
+            "crn_no," +
             "barcode," +
             "whs_type," +
             "appe_user," +
             "appe_time," +
             "modi_user," +
             "modi_time) " +
-            "VALUES(#{wrkSts},#{ioType},#{ioTime},#{ioPri},#{sourceLocNo},#{locNo},#{barcode},#{whsType},#{appeUser},#{appeTime},#{modiUser},#{modiTime})")
+            "VALUES(#{wrkSts},#{ioType},#{ioTime},#{ioPri},#{sourceLocNo},#{locNo},#{crnNo},#{barcode},#{whsType},#{appeUser},#{appeTime},#{modiUser},#{modiTime})")
     public int insertByIncrease(AgvWrkMast agvWrkMast);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index a5cd6e2..bbc5f3e 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -564,7 +564,7 @@
         agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205);
 
         //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱
-        if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107){
+        if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107 || wrkMast.getIoType() == 111){
             //淇敼鍑哄簱绔欑偣鐘舵��
             agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
         }
@@ -616,9 +616,13 @@
             String targetLocNo = wrkMast.getLocNo();
             agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo),"",(short)0);
             if (wrkMast.getIoType() == 108) {
-                agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
+                if (wrkMast.getWrkSts() != 22) {
+                    agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
+                }
             } else {
-                agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue());
+                if (wrkMast.getWrkSts() != 22) {
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue());
+                }
             }
 
             List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
diff --git a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
index 38491e9..df8b0c4 100644
--- a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -79,6 +79,7 @@
         }
     }
 
+
     /*
     瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206.鍑哄簱瀹屾垚 涓� (101.鍑哄簱 || 110.绌烘澘鍑哄簱)
      */
diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
index c1d9027..a5825d4 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -3,7 +3,9 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.zy.asrs.entity.AgvLocMast;
+import com.zy.asrs.entity.AgvWrkMast;
 import com.zy.asrs.service.AgvLocMastService;
+import com.zy.asrs.service.AgvWrkMastService;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.AutoMoveHandler;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +23,8 @@
     private AgvLocMastService agvLocMastService;
     @Autowired
     private AutoMoveHandler autoMoveHandler;
+    @Autowired
+    private AgvWrkMastService agvWrkMastService;
 
     // 璋冩嫧鍑哄簱
     @Scheduled(cron = "0/2 * * * * ? ")
@@ -40,6 +44,38 @@
 
     }
 
+    // 璋冩嫧鍑哄簱
+    @Scheduled(cron = "0/2 * * * * ? ")
+    private void execute2(){
+        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
+                .eq("wrk_sts", 22)
+                .andNew().eq("io_type",108)
+                );
+        if (agvWrkMastList.isEmpty()) {
+            return;
+        }
+        for (AgvWrkMast agvWrkMast : agvWrkMastList) {
+            ReturnT<String> returnT = autoMoveHandler.start2(agvWrkMast);
+        }
+
+    }
+
+    // 璋冩嫧鍑哄簱
+    @Scheduled(cron = "0/2 * * * * ? ")
+    private void execute3(){
+        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
+                .eq("wrk_sts", 22)
+                .andNew().eq("io_type",111)
+        );
+        if (agvWrkMastList.isEmpty()) {
+            return;
+        }
+        for (AgvWrkMast agvWrkMast : agvWrkMastList) {
+            ReturnT<String> returnT = autoMoveHandler.start3(agvWrkMast);
+        }
+
+    }
+
     // 绌烘澘鑷姩鍥炲簱
     @Scheduled(cron = "0/2 * * * * ? ")
     private void autoEmptyBack(){
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
index 1aca5fd..73a5e0a 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -45,6 +45,17 @@
         return SUCCESS;
     }
 
+    public ReturnT<String> start2(AgvWrkMast agvWrkMast) {
+        // locType 1. 鑷姩锛� 2. 鎵嬪姩
+        doAutoMove2(agvWrkMast);
+        return SUCCESS;
+    }
+    public ReturnT<String> start3(AgvWrkMast agvWrkMast) {
+        // locType 1. 鑷姩锛� 2. 鎵嬪姩
+        doHandMove2(agvWrkMast);
+        return SUCCESS;
+    }
+
     private ReturnT<String> doAutoMove(AgvLocMast agvLocMast) {
         Date now = new Date();
         //鏌ヨ宸ヤ綔妗�
@@ -168,6 +179,33 @@
         return SUCCESS;
     }
 
+    private ReturnT<String> doAutoMove2(AgvWrkMast agvWrkMast) {
+        Date now = new Date();
+        //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+        AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo());
+        if (Cools.isEmpty(locMast)) {
+            throw new CoolException("鏆傛棤搴撲綅");
+        }
+        agvWrkMast.setWrkSts(201L);
+        agvWrkMast.setLocNo(locMast.getLocNo());
+        agvWrkMastService.updateById(agvWrkMast);
+        //鏇存柊鐩爣搴撲綅鐘舵��
+        updateAgvLocMast(locMast,"S");
+
+        return SUCCESS;
+    }
+    private ReturnT<String> doHandMove2(AgvWrkMast agvWrkMast) {
+        Date now = new Date();
+        AgvBasDevp devpNo = agvCommonService.getDevpNo(3, 1);
+        if (Cools.isEmpty(devpNo)) {
+            throw new CoolException("鏆傛棤绌洪棽鎺ラ┏浣�");
+        }
+        agvWrkMast.setWrkSts(201L);
+        agvWrkMast.setLocNo(devpNo.getDevNo());
+        agvWrkMastService.updateById(agvWrkMast);
+        updateAgvBasDevp(devpNo,"S",null,agvWrkMast.getBarcode());
+        return SUCCESS;
+    }
     /*
     鏇存柊鐩爣搴撲綅淇℃伅
      */
diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java
index d8e1dff..f8c55c2 100644
--- a/src/main/java/com/zy/common/service/AgvCommonService.java
+++ b/src/main/java/com/zy/common/service/AgvCommonService.java
@@ -250,7 +250,7 @@
         }
 
         //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父
-        throw new CoolException("璇ユゼ灞傛病鏈夌┖搴撲綅");
+        throw new CoolException("璇ユゼ灞傛病鏈夌┖鎺ラ┏浣�");
     }
 
     //闅忔満鍙栦竴涓揣浣�
diff --git a/src/main/webapp/static/js/agvWrkMast/wrkMast.js b/src/main/webapp/static/js/agvWrkMast/wrkMast.js
index b5724c2..c7cf16b 100644
--- a/src/main/webapp/static/js/agvWrkMast/wrkMast.js
+++ b/src/main/webapp/static/js/agvWrkMast/wrkMast.js
@@ -24,16 +24,17 @@
             ,{field: 'ioTime$', align: 'center',title: '宸ヤ綔鏃堕棿',sort: true, width: 160}
             ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��'}
             ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�'}
-            ,{field: 'ioPri', align: 'center',title: '浼樺厛绾�'}
+            ,{field: 'ioPri', align: 'center',title: '浼樺厛绾�',width: 80}
             //,{field: 'sourceStaNo$', align: 'center',title: '婧愮珯'}
             //,{field: 'staNo$', align: 'center',title: '鐩爣绔�'}
             ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'}
             ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'}
             //,{field: 'steNo', align: 'center',title: '灏忚溅', width: 70}
-            ,{field: 'barcode', align: 'center',title: '瀹瑰櫒鐮�'}
-            ,{field: 'whsType', align: 'center',title: '瀹瑰櫒绫诲瀷'}
+            ,{field: 'barcode', align: 'center',title: '瀹瑰櫒鐮�',width: 80}
+            ,{field: 'whsType', align: 'center',title: '瀹瑰櫒绫诲瀷',width: 90}
             ,{field: 'preHave', align: 'center',title: '鍏堝叆鍝�', hide: true}
             ,{field: 'takeNone', align: 'center',title: '绌烘搷浣�', hide: true}
+            ,{field: 'crnNo', align: 'center',title: '鐩爣妤煎眰', hide: false}
             // ,{field: 'picking', align: 'center',title: '鎷f枡', templet:function(row){
             //         var html = "<input value='picking' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
             //         if(row.picking === 'Y'){html += " checked ";}

--
Gitblit v1.9.1