From 24c2fd8ab62fa12ae96658664e7ffd478bef6e62 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期一, 13 五月 2024 19:16:15 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java           |    4 +
 src/main/java/com/zy/asrs/controller/OrderController.java         |    2 
 src/main/java/com/zy/asrs/service/AgvLocDetlService.java          |    2 
 src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java            |    3 +
 src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java |    5 +
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java     |    7 ++
 src/main/java/com/zy/asrs/controller/AgvMobileController.java     |   23 +++++--
 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java  |   41 ++++++++-----
 src/main/java/com/zy/asrs/task/AutoMoveScheduler.java             |    4 
 src/main/java/com/zy/asrs/controller/OrderDetlController.java     |   31 ++++++++++
 src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java       |    6 +
 11 files changed, 100 insertions(+), 28 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index f507486..f57a54b 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -14,6 +14,7 @@
 import com.zy.asrs.entity.param.PickParam;
 import com.zy.asrs.service.*;
 import com.zy.common.web.BaseController;
+import io.swagger.models.auth.In;
 import lombok.Synchronized;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -185,6 +186,7 @@
         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);
 
@@ -193,17 +195,26 @@
         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","");
+            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 locNo = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocDetl.getLocNo()));
-            agvLocDetl.setLocSts(locNo.getLocSts());
-            agvLocDetl.setLocSts$(locNo.getLocSts$());
+            AgvLocMast agvLocMast = new AgvLocMast();
+            if (Cools.isEmpty(floor)) {
+                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(agvLocDetls);
+
+        return R.ok(locDetls);
     }
 
     /*
diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index 22f28e5..2808a62 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -210,7 +210,7 @@
         wrapper.in("source",docIds);
         Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
         for (OrderDetl record : page.getRecords()) {
-            Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode());
+            Double sumAnfme = agvLocDetlService.getSumAnfmeDb(record.getMatnr(), record.getThreeCode(),1);
             record.setStock(sumAnfme == null ? 0 : sumAnfme);
         }
         return R.ok(page);
diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
index 495bb62..4aa1c2a 100644
--- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -127,6 +127,37 @@
         return R.ok(page);
     }
 
+    @RequestMapping(value = "/orderDetl/pakout/list/authV4")
+    @ManagerAuth
+    public R pakoutList4(@RequestParam(defaultValue = "1")Integer curr,
+                         @RequestParam(defaultValue = "10")Integer limit,
+                         @RequestParam(required = false)String orderByField,
+                         @RequestParam(required = false)String orderByType,
+                         @RequestParam Map<String, Object> param){
+        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
+        excludeTrash(param);
+        convertLike(param, wrapper);
+        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+            wrapper.orderBy("create_time", false);
+        }
+        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1));
+        List<Long> docIds = new ArrayList<>();
+        for (DocType pakin : pakins) {
+            if (pakin.getDocId() == 34) {
+                docIds.add(pakin.getDocId());
+            }
+        }
+
+        wrapper.in("source",docIds);
+        Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
+        for (OrderDetl record : page.getRecords()) {
+            Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode());
+            record.setStock(sumAnfme == null ? 0 : sumAnfme);
+        }
+
+        return R.ok(page);
+    }
+
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
         for (Map.Entry<String, Object> entry : map.entrySet()){
             String val = String.valueOf(entry.getValue());
diff --git a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
index acfd6af..ec0e68b 100644
--- a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
@@ -25,6 +25,9 @@
     @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr} AND a.three_code = #{threeCode}")
     Double selectSumAnfmeByMatnr(@Param("matnr") String matnr,@Param("threeCode") String threeCode);
 
+    @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where (b.loc_sts = 'F' or b.loc_sts = 'R') and b.floor = #{floor} and a.matnr = #{matnr} AND a.three_code = #{threeCode}")
+    Double selectSumAnfmeByMatnr2(@Param("matnr") String matnr,@Param("threeCode") String threeCode,@Param("floor") Integer floor);
+
     @Select("SELECT SUM(anfme) FROM agv_loc_detl")
     Integer sum();
 
diff --git a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
index b24bc79..c6b771d 100644
--- a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
@@ -22,6 +22,8 @@
 
     Double getSumAnfme(String matnr, String threeCode);
 
+    Double getSumAnfmeDb(String matnr, String threeCode, Integer floor);
+
     Integer sum();
 
     List<AgvLocDetl> getStockStatisExcel();
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 ed9acce..6f91a5b 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -122,6 +122,11 @@
         return this.baseMapper.selectSumAnfmeByMatnr(matnr, threeCode);
     }
 
+    @Override
+    public Double getSumAnfmeDb(String matnr, String threeCode,Integer floor) {
+        return this.baseMapper.selectSumAnfmeByMatnr2(matnr, threeCode, 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 66c5915..971beea 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -103,23 +103,32 @@
 
         for (PickParam.Pick pick : pickParams.getPicks()) {
             if (pick.getCount().equals(0D)) continue;
-            AgvWrkDetl wrkDetl = new AgvWrkDetl();
-            Mat mat = matService.selectByMatnr(pick.getMatnr());
-            if (Cools.isEmpty(mat)) {
-                throw new CoolException(pick.getMatnr() + "鍟嗗搧涓嶅瓨鍦�");
+            AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode()));
+            if (Cools.isEmpty(agvWrkDetl)) {
+                AgvWrkDetl wrkDetl = new AgvWrkDetl();
+                Mat mat = matService.selectByMatnr(pick.getMatnr());
+                if (Cools.isEmpty(mat)) {
+                    throw new CoolException(pick.getMatnr() + "鍟嗗搧涓嶅瓨鍦�");
+                }
+                wrkDetl.sync(mat);
+                wrkDetl.setWrkNo(pickParams.getWrkNo());
+                wrkDetl.setOrderNo(pick.getOrderNo());
+                wrkDetl.setIoTime(now);
+                wrkDetl.setAnfme(pick.getCount()); // 鏁伴噺
+                wrkDetl.setSuppCode(pick.getSuppCode()); // 鎵樼洏鏉$爜
+                wrkDetl.setAppeUser(userId);
+                wrkDetl.setAppeTime(now);
+                wrkDetl.setModiUser(userId);
+                wrkDetl.setModiTime(now);
+                wrkDetl.setThreeCode(pick.getThreeCode());
+                agvWrkDetlService.insert(wrkDetl);
+            } else {
+                Double anfme = agvWrkDetl.getAnfme() + pick.getCount();
+                agvWrkDetl.setAnfme(anfme);
+                agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("matnr",agvWrkDetl.getMatnr()).eq("three_code",agvWrkDetl.getThreeCode()));
+
             }
-            wrkDetl.sync(mat);
-            wrkDetl.setWrkNo(pickParams.getWrkNo());
-            wrkDetl.setOrderNo(pick.getOrderNo());
-            wrkDetl.setIoTime(now);
-            wrkDetl.setAnfme(pick.getCount()); // 鏁伴噺
-            wrkDetl.setSuppCode(pick.getSuppCode()); // 鎵樼洏鏉$爜
-            wrkDetl.setAppeUser(userId);
-            wrkDetl.setAppeTime(now);
-            wrkDetl.setModiUser(userId);
-            wrkDetl.setModiTime(now);
-            wrkDetl.setThreeCode(pick.getThreeCode());
-            agvWrkDetlService.insert(wrkDetl);
+
 
             // 鏇存柊璁㈠崟
             OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code",pick.getThreeCode()));
diff --git a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
index 6a3bc03..a9789ce 100644
--- a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -52,7 +52,8 @@
                 .or().eq("io_type",57)
                 .or().eq("io_type",10)
                 .or().eq("io_type",11)
-                .or().eq("io_type",108));
+                .or().eq("io_type",108)
+                .or().eq("io_type",109));
         if(!Cools.isEmpty(agvWrkMastList)){
             agvWrkMastList.stream().forEach(agvWrkMast -> {
                 agvWrkMastHandler.completedPutWayWrk(agvWrkMast);
@@ -106,6 +107,7 @@
                 .or().eq("io_type", 1)
                 .or().eq("io_type", 10)
                 .or().eq("io_type", 57)
+                .or().eq("io_type", 109)
                 .or().eq("io_type", 108)).getRecords();
 
         if(!Cools.isEmpty(agvWrkMastList)){
diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
index 35835aa..8e08e43 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -45,14 +45,14 @@
         // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋�
         List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
                 new EntityWrapper<AgvLocMast>()
-                        .ne("floor", 3)
+                        .ne("floor", 1)
                         .eq("loc_sts","D")
                         .eq("loc_type1",3));
         if (agvLocMasts.isEmpty()) {
             return;
         }
         for (AgvLocMast agvLocMast : agvLocMasts) {
-            ReturnT<String> returnT = autoMoveHandler.start(agvLocMast);
+            ReturnT<String> returnT = autoMoveHandler.autoEmptyBack(agvLocMast);
         }
 
     }
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 82f159d..61c5ba2 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -69,7 +69,12 @@
         agvWrkMastService.updateById(agvWrkMast);
         // 绌烘澘鍏ュ簱 璁剧疆搴撲綅鐘舵�佷负D.绌烘《/绌烘爤鏉�
         String locSts = agvWrkMast.getIoType() == 10 ? "D" : "F";
-        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),locSts,agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+        if (agvWrkMast.getIoType() == 10 || agvWrkMast.getIoType() == 109) {
+            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+        } else {
+            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+        }
+
         //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
         agvWrkMastLogService.save(agvWrkMast);
         //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
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 c3db2df..256f695 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -126,7 +126,7 @@
             throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
         }
         //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
-        AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3());
+        AgvLocMast LocMast = agvCommonService.getLocNo(3,1);
         //鐢熸垚宸ヤ綔妗�
         AgvWrkMast mast = new AgvWrkMast();
         //宸ヤ綔鐘舵��
@@ -152,6 +152,10 @@
         if (!agvWrkMastService.insertByIncrease(mast)) {
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
+
+        //鏇存柊鐩爣搴撲綅鐘舵��
+        updateAgvLocMast(agvLocMast,"R");
+        updateAgvLocMast(LocMast,"S");
         return SUCCESS;
     }
 }

--
Gitblit v1.9.1