From 560061f07be81dd4436f940b26a4cb26941a4201 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期三, 12 六月 2024 17:12:16 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java |    3 +
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java     |   18 +++++++++
 src/main/java/com/zy/asrs/controller/AgvMobileController.java     |    9 ++++
 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java  |   58 ++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java    |    3 +
 src/main/java/com/zy/common/model/LocDto.java                     |   11 +++++
 src/main/java/com/zy/asrs/controller/OutController.java           |    4 +-
 src/main/java/com/zy/asrs/service/AgvMobileService.java           |    5 ++
 8 files changed, 106 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index 030e574..6b12669 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -542,6 +542,15 @@
         return R.ok();
     }
 
+    @PostMapping("/hand/control/processed")
+    @Transactional
+    @ManagerAuth(memo = "纭鍔犲伐瀹屾垚")
+    @Synchronized
+    public R processed(@RequestBody AgvMobileStartPakin param){
+        agvMobileService.processed(param, getUserId());
+        return R.ok();
+    }
+
     public static void main(String[] args) {
         List<AgvLocDetl> agvLocDetls1 = new ArrayList<>();
         List<AgvLocDetl> agvLocDetls2 = new ArrayList<>();
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 8628b88..425cdb0 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -84,7 +84,7 @@
                 if (issued <= 0.0D) { continue; }
                 issued = locDetlService.queryStockAndSetLocDto1(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
                 if (issued > 0) {
-                    LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+                    LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued,orderDetl.getProcessSts());
                     locDto.setLack(Boolean.TRUE);
                     locDtoList.add(locDto);
                 }
@@ -101,7 +101,7 @@
                 //issued = locDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
 
                 if (issued > 0) {
-                    LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+                    LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued,orderDetl.getProcessSts());
                     locDto.setLack(Boolean.TRUE);
                     locDtoList.add(locDto);
                 }
diff --git a/src/main/java/com/zy/asrs/service/AgvMobileService.java b/src/main/java/com/zy/asrs/service/AgvMobileService.java
index 8dc32f4..7e7db3d 100644
--- a/src/main/java/com/zy/asrs/service/AgvMobileService.java
+++ b/src/main/java/com/zy/asrs/service/AgvMobileService.java
@@ -59,6 +59,11 @@
     String handBack(AgvMobileStartPakin param, Long userId);
 
     /**
+     * 纭鍔犲伐瀹屾垚
+     */
+    String processed(AgvMobileStartPakin param, Long userId);
+
+    /**
      * 绌烘灦绂诲満
      */
     String empOut(AgvMobileStartPakin param, Long userId);
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
index 9e7dff0..f835a93 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -86,10 +86,11 @@
                 String orderNoWrkDtel = Utils.getOrderNo(orderNo,anfme);
                 //鏇存柊璁㈠崟鏁伴噺
                 orderNo = Utils.orderMergeUpdate(orderNo,anfme);
-                LocDto locDto = new LocDto(agvLocDetl.getLocNo(), agvLocDetl.getMatnr(), agvLocDetl.getMaktx(), agvLocDetl.getBatch(), orderNoWrkDtel, anfme);
+                LocDto locDto = new LocDto(agvLocDetl.getLocNo(), agvLocDetl.getMatnr(), agvLocDetl.getMaktx(), agvLocDetl.getBatch(), orderNoWrkDtel, anfme,agvLocDetl.getProcessSts());
                 locDto.setCsocode(csocode);
                 locDto.setIsoseq(isoseq);
                 locDto.setContainerCode(agvLocDetl.getSuppCode());
+                locDto.setProcessSts(agvLocDetl.getProcessSts());
                 //褰撳墠搴撲綅鎵�澶勬ゼ灞�
                 int floor = Integer.parseInt(agvLocDetl.getLocNo().split("F")[1]);
                 //locDto.setAgvStaNos(queryAgvStaNosByFloor(floor));
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index 0a596ab..f31eea5 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -644,7 +644,7 @@
         return "ok";
     }
     /*
-     * 绔欑偣鍥為��
+     * 杞墜鍔ㄥ洖娴�
     */
     @Override
     @Transactional
@@ -661,6 +661,62 @@
     }
 
     /*
+     * 纭鍔犲伐瀹屾垚
+     */
+    @Override
+    @Transactional
+    public String processed(AgvMobileStartPakin param, Long userId) {
+        Date now = new Date();
+        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", param.getBarcode()).eq("loc_no", param.getDevNo()));
+        if (Cools.isEmpty(agvWrkMast)) {
+            throw new CoolException("鏆傛棤褰撳墠璐ф灦鐨勫伐浣滄。");
+        }
+        if (agvWrkMast.getWrkSts() != 205) {
+            throw new CoolException("褰撳墠浠诲姟鏈畬鎴愶紝璇风‘璁�");
+        }
+        //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� + 鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
+        agvWrkMastLogService.save(agvWrkMast);
+        agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
+        String sourceLocNo = agvWrkMast.getSourceLocNo();
+        AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1,false,false);
+        agvWrkMast.setSourceLocNo(agvWrkMast.getLocNo());
+        agvWrkMast.setLocNo(newLocMast.getLocNo());
+        agvWrkMast.setIoType(57);
+        agvWrkMast.setWrkSts(201L);
+        agvWrkMast.setModiUser(userId);
+        agvWrkMast.setModiTime(now);
+
+
+
+        if (!agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no",agvWrkMast.getWrkNo()))) {
+            throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+        }
+
+        // 鏇存柊婧愮珯鐐� + 鐩爣搴撲綅鐘舵�� + 鍘嗗彶婧愬簱浣�
+        agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"R",param.getBarcode(),agvWrkMast.getWhsType().shortValue());
+        agvLocMastService.updateLocStsByLocNo(newLocMast.getLocNo(),"S",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+        agvLocMastService.updateLocStsByLocNo(sourceLocNo,"O","",(short)30);
+        agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",sourceLocNo));
+
+        List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code",param.getBarcode()));
+        agvWrkDetls.forEach(agvWrkDetl -> {
+            agvWrkDetl.setProcessSts(2);
+            agvWrkDetl.setOrderNo(agvWrkDetl.getOrderNo().substring(2));
+            agvWrkDetl.setModiUser(userId);
+            agvWrkDetl.setModiTime(now);
+            if (!agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>()
+                    .eq("matnr",agvWrkDetl.getMatnr())
+                    .eq("three_code",agvWrkDetl.getThreeCode())
+                    .eq("supp_code",param.getBarcode()))) {
+                throw new CoolException("鏇存柊宸ヤ綔鏄庣粏澶辫触");
+            }
+        });
+        return "ok";
+    }
+
+
+
+    /*
      * 绔欑偣鍥為��
      */
     @Override
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 8d6e68a..b1196b0 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -255,7 +255,7 @@
             updateAgvLocMast(agvLocMastService.selectById(sourceLocNo),locSts);
             //鏇存柊鐩爣绔欑偣鐘舵��
             //locSts = ioType == 101 ? "S" : "Q";
-            updateAgvBasDevp(agvBasDevpService.selectById(targetLocNo),"S");
+            updateAgvBasDevp(agvBasDevpService.selectById(targetLocNo),"S",Short.valueOf(containerCode.substring(0,2)),containerCode);
 
         });
     }
@@ -881,6 +881,7 @@
                         }
 
                     }else {
+                        agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
                         agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
                     }
                 } else if (wrkMast.getIoType() == 113) {
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
index 4436169..00aaa3e 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -119,6 +119,24 @@
                     agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                     agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                     break;
+                case 57:
+                    Date now = new Date();
+                    // 鏇存柊搴撳瓨鏄庣粏
+                    List<AgvWrkDetl> wrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+                    wrkDetlList.forEach(agvWrkDetl -> {
+                        AgvLocDetl agvLocDetl = new AgvLocDetl();
+                        agvLocDetl.setLocNo(agvWrkMast.getLocNo());
+                        agvLocDetl.sync(agvWrkDetl);
+                        agvLocDetl.setModiTime(now);
+                        agvLocDetl.setAppeTime(now);
+                        if (!agvLocDetlService.insert(agvLocDetl)) {
+                            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+                        }
+                    });
+                    // 鏇存柊绔欑偣 + 搴撲綅鐘舵��     婧愬簱浣嶆槸绔欑偣
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
+                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                    break;
                 case 58:
                     agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                     agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
diff --git a/src/main/java/com/zy/common/model/LocDto.java b/src/main/java/com/zy/common/model/LocDto.java
index 3ef4adb..38c5d0c 100644
--- a/src/main/java/com/zy/common/model/LocDto.java
+++ b/src/main/java/com/zy/common/model/LocDto.java
@@ -95,6 +95,17 @@
         this.anfme = anfme;
     }
 
+
+    public LocDto(String locNo, String matnr, String maktx, String batch, String orderNo, Double anfme,Integer processSts) {
+        this.locNo = locNo;
+        this.matnr = matnr;
+        this.maktx = maktx;
+        this.batch = batch;
+        this.orderNo = orderNo;
+        this.anfme = anfme;
+        this.processSts = processSts;
+    }
+
     public String getTitle() {
         return this.matnr + "锛�" + this.maktx + "锛�";
     }

--
Gitblit v1.9.1