From d350136e80016d9559f608710de65e827936771d Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期三, 30 十月 2024 15:35:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/AgvMobileController.java |  200 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 192 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index 6b12669..e1f9782 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -5,6 +5,7 @@
 import com.core.annotations.ManagerAuth;
 import com.core.common.Cools;
 import com.core.common.R;
+import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.*;
@@ -47,6 +48,10 @@
     private AgvWrkMastService agvWrkMastService;
     @Autowired
     private AgvWrkDetlService agvWrkDetlService;
+    @Autowired
+    private SnowflakeIdWorker snowflakeIdWorker;
+    @Autowired
+    private FlowLogService flowLogService;
 
 
     /*
@@ -117,7 +122,7 @@
     }
 
     /*
-    鍚姩鍏ュ簱锛岀粍鎵� + 鐢熶骇宸ヤ綔妗�
+    鍚姩鍏ュ簱锛岀粍鎵� + 鐢熸垚宸ヤ綔妗�
     */
     @PostMapping("/start/pakin/auth")
     @Synchronized
@@ -189,7 +194,54 @@
         String matnr = params.get("matnr");
         String floor = params.get("floor");
 
-        Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr);
+        Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).ne("process_sts",1);
+
+
+//        wrapper.eq("orderNo",orderNo);
+
+        wrapper = Cools.isEmpty(threeCode) ? wrapper.isNull("three_code") : wrapper.eq("three_code",threeCode);
+
+        if (threeCode.substring(0,2).equals(30)) {
+            wrapper.isNull("specs").or().eq("specs","").eq("floor",1);
+        }
+        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(wrapper);
+        List<AgvLocDetl> locDetls = new ArrayList<>();
+        for (AgvLocDetl agvLocDetl : agvLocDetls) {
+            AgvLocMast agvLocMast = new AgvLocMast();
+            if (Cools.isEmpty(floor)) {
+                agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).notLike("loc_no","F1"));
+            } else {
+                // 濡傛灉鏄姞宸ュ崟 鍙湪 lev1 = 1 鏌ュ簱瀛�
+                if ("JG".equals(orderNo.substring(0,2))) {
+                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("lev1",1).eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor));
+                } else {
+                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor));
+                }
+            }
+
+            if (Cools.isEmpty(agvLocMast)) continue;
+            agvLocDetl.setLocSts(agvLocMast.getLocSts());
+            agvLocDetl.setLocSts$(agvLocMast.getLocSts$());
+            locDetls.add(agvLocDetl);
+        }
+
+
+        return R.ok(locDetls);
+    }
+
+    /*
+    鏌ヨ搴撳瓨 鍏ュ簱璁㈠崟涓庨攢鍞崟鍙�
+     */
+    @PostMapping("/query/locDetl/v3")
+    public R queryAgvLocDetl3(@RequestBody HashMap<String,String> params){
+
+        String orderNo = params.get("orderNo");
+        String threeCode = params.get("threeCode");
+        String matnr = params.get("matnr");
+        String floor = params.get("floor");
+
+        Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).ne("process_sts",1);
+
 
 //        wrapper.eq("orderNo",orderNo);
 
@@ -206,6 +258,53 @@
                 agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).notLike("loc_no","F1"));
             } else {
                 agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor));
+            }
+
+            if (Cools.isEmpty(agvLocMast)) continue;
+            agvLocDetl.setLocSts(agvLocMast.getLocSts());
+            agvLocDetl.setLocSts$(agvLocMast.getLocSts$());
+            locDetls.add(agvLocDetl);
+        }
+
+
+        return R.ok(locDetls);
+    }
+
+    /*
+    鏌ヨ搴撳瓨 鍏ュ簱璁㈠崟涓庨攢鍞崟鍙�
+     */
+    @PostMapping("/query/locDetl/v2")
+    public R queryAgvLocDetl2(@RequestBody HashMap<String,String> params){
+
+        String orderNo = params.get("orderNo");
+        String threeCode = params.get("threeCode");
+        String matnr = params.get("matnr");
+        String floor = params.get("floor");
+
+        OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", orderNo).eq("three_code", threeCode).eq("matnr", matnr));
+        Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr);
+
+
+//        wrapper.eq("orderNo",orderNo);
+
+        wrapper = Cools.isEmpty(threeCode) ? wrapper.isNull("three_code") : wrapper.eq("three_code",threeCode);
+
+        if (threeCode.substring(0,2).equals(30)) {
+            wrapper.isNull("specs").or().eq("specs","").eq("floor",1);
+        }
+        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(wrapper);
+        List<AgvLocDetl> locDetls = new ArrayList<>();
+        for (AgvLocDetl agvLocDetl : agvLocDetls) {
+            AgvLocMast agvLocMast = new AgvLocMast();
+            if (Cools.isEmpty(floor)) {
+                agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).notLike("loc_no","F1"));
+            } else {
+                // 濡傛灉鏄姞宸ュ崟 鍙湪 lev1 = 1 鏌ュ簱瀛�
+                if (orderDetl.getSource().equals(35)) {
+                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("lev1",1).eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor));
+                } else {
+                    agvLocMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()).like("loc_no",floor));
+                }
             }
 
             if (Cools.isEmpty(agvLocMast)) continue;
@@ -279,9 +378,7 @@
 
 
 
-        if((!Cools.eq("F",agvLocMastByContainerCode.getLocSts())
-                && !Cools.eq("D",agvLocMastByContainerCode.getLocSts()))
-                || (!Cools.eq("F",agvLocMastByLocNo.getLocSts())
+        if((!Cools.eq("F",agvLocMastByLocNo.getLocSts())
                 && !Cools.eq("D",agvLocMastByLocNo.getLocSts()))){
 
             return R.error("搴撲綅鐘舵�佷笉涓篎鎴栬�匘锛屾棤娉曠淮鎶�");
@@ -334,7 +431,13 @@
         }
 
         if((listByLocNo == null && listByContainerCode == null) || listByLocNo.equals(listByContainerCode)){
-            return R.ok("璇ュ簱浣嶄笌璐ф灦搴撳瓨涓�鑷达紝鏃犻渶缁存姢");
+            //agvLocMastByContainerCode.setBarcode(agvLocMastByLocNo.getBarcode());
+            //agvLocMastService.updateById(agvLocMastByContainerCode);
+
+            agvLocMastByLocNo.setBarcode(containerCode);
+            agvLocMastService.updateById(agvLocMastByLocNo);
+            //return R.ok("璇ュ簱浣嶄笌璐ф灦搴撳瓨涓�鑷达紝鏃犻渶缁存姢");
+            return R.ok("缁存姢鎴愬姛");
         }
 
 
@@ -447,6 +550,84 @@
             }
             AgvWrkMast wrkMast = createWrkMast(ioType, 22L, locNo, "", barcode, now, getUserId(), 30,floor);
             // 鍚屾璋冩嫧鍗�
+            long flowId = snowflakeIdWorker.nextId();
+            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("source",33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
+                FlowLog flowLog = new FlowLog();
+                flowLog.setFid(String.valueOf(flowId));
+                flowLog.setSpare2(wrkMast.getWrkNo().toString());
+                flowLog.setLocNo(wrkMast.getSourceLocNo());
+                flowLog.setSpare1(barcode);
+                flowLog.setOpType(5L);
+                flowLog.setOrderNo(orderDetl.getOrderNo());
+                flowLog.setThreeCode(orderDetl.getThreeCode());
+                flowLog.setMatnr(agvLocDetl.getMatnr());
+                flowLog.setMaktx(agvLocDetl.getMaktx());
+                flowLog.setOrderPrevious(orderDetl.getAnfme());
+                flowLog.setOrderCurrent(orderDetl.getAnfme());
+                flowLog.setOrderChanged(0.0);
+
+                flowLog.setQtyPrevious(orderDetl.getQty());
+                flowLog.setQtyCurrent(orderDetl.getQty() + agvLocDetl.getAnfme());
+                flowLog.setQtyChanged(agvLocDetl.getAnfme());
+
+                flowLog.setLocPrevious(agvLocDetl.getAnfme());
+                flowLog.setLocCurrent(0.0d);
+                flowLog.setLocChanged(agvLocDetl.getAnfme());
+                flowLog.setUserId(getUserId());
+                flowLog.setAppeTime(now);
+                if (!flowLogService.insert(flowLog)) {
+                    throw new CoolException("鍚屾鍗婃垚鍝佽皟鎷ㄥ崟娴佹按璁板綍澶辫触");
+                }
+                orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
+                if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("source",33).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
+                    throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr());
+                }
+            }
+            // 鏇存柊婧愬簱浣�
+            AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo));
+            locMast.setLocSts("R");
+            agvLocMastService.updateById(locMast);
+        }
+        return R.ok();
+    }
+
+    @PostMapping("/agv/v3/locMove")
+    @Transactional
+    @ManagerAuth(memo = "鍥炶皟鍗曚换鍔′笅鍙�")
+    @Synchronized
+    public R agvLocMove3(@RequestBody HashMap<String,Object> params){
+        Date now = new Date();
+        List<HashMap<String,String>> dbList = (List<HashMap<String, String>>) params.get("dbList");
+        params.get("dbList");
+        for (HashMap<String, String> map : dbList) {
+            String locNo = map.get("locNo");
+            String barcode = map.get("suppCode");
+            AgvWrkMast source_loc_no = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", locNo));
+            if (!Cools.isEmpty(source_loc_no)) {
+                throw new CoolException("褰撳墠搴撲綅宸茬敓鎴愪换鍔★紒");
+            }
+            AgvLocMast locMastS = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo).eq("loc_sts","F"));
+            if (Cools.isEmpty(locMastS)) {
+                throw new CoolException("褰撳墠搴撲綅闈炲湪搴撶姸鎬侊紒搴撲綅鍙�="+locNo);
+            }
+            AgvWrkMast wrkMast = createWrkMast(114, 22L, locNo, "", barcode, now, getUserId(), 30,1);
+            // 鍚屾璋冩嫧鍗�
             List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
             for (AgvLocDetl agvLocDetl : agvLocDetls) {
                 AgvWrkDetl wrkDetl = new AgvWrkDetl();
@@ -462,9 +643,11 @@
                     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 orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("source",36).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
                 orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
-                if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
+                if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("source",36).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
                     throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr());
                 }
             }
@@ -551,6 +734,7 @@
         return R.ok();
     }
 
+
     public static void main(String[] args) {
         List<AgvLocDetl> agvLocDetls1 = new ArrayList<>();
         List<AgvLocDetl> agvLocDetls2 = new ArrayList<>();

--
Gitblit v1.9.1