From 1e874438b4baf12c2668d04a59b0bd5098ef7fd6 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期六, 13 十二月 2025 18:17:02 +0800
Subject: [PATCH] #pda

---
 src/main/resources/mapper/WrkDetlMapper.xml                      |    4 +
 src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java              |    1 
 src/main/java/com/zy/asrs/controller/OpenController.java         |   19 ++++++
 src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java   |    5 +
 src/main/java/com/zy/asrs/entity/param/PdaPickListParam.java     |    8 ++
 src/main/java/com/zy/asrs/entity/param/PickWrkDetlListParam.java |   39 +++++++++++++
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java      |   41 +++++++++++++
 src/main/java/com/zy/asrs/service/OpenService.java               |    3 
 src/main/java/com/zy/asrs/service/WrkDetlService.java            |    1 
 9 files changed, 118 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index e369e5e..1d4bec1 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -4,6 +4,8 @@
 import com.core.annotations.AppAuth;
 import com.core.common.*;
 import com.core.exception.CoolException;
+import com.zy.asrs.entity.WaitPakin;
+import com.zy.asrs.entity.WrkDetl;
 import com.zy.asrs.entity.param.*;
 import com.zy.asrs.service.ApiLogService;
 import com.zy.asrs.service.OpenService;
@@ -525,6 +527,23 @@
     }
 
     /**
+     * PDA妫�绱㈢洏鐐规暟閲�
+     */
+    @PostMapping("/pick/v1/getPickList")
+    @AppAuth(memo = "PDA妫�绱㈢洏鐐规暟閲�")
+    public synchronized R getPickList(@RequestHeader(required = false) String appkey,
+                                        @RequestBody PdaPickListParam param,
+                                        HttpServletRequest request) {
+        auth(appkey, param, request);
+
+        List<PickWrkDetlListParam> list = openService.getPickList(param);
+        if (!list.isEmpty()) {
+            return R.ok(list);
+        }
+        return R.error("搴撲綅涓嶅瓨鍦ㄦ垨鏃犳槑缁�");
+    }
+
+    /**
      * PDA缁戝畾瑙g粦
      */
     @PostMapping("/agv/bindCtnrAndBin/v1")
diff --git a/src/main/java/com/zy/asrs/entity/param/PdaPickListParam.java b/src/main/java/com/zy/asrs/entity/param/PdaPickListParam.java
new file mode 100644
index 0000000..230a724
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/PdaPickListParam.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class PdaPickListParam {
+    String barcode;
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/PickWrkDetlListParam.java b/src/main/java/com/zy/asrs/entity/param/PickWrkDetlListParam.java
new file mode 100644
index 0000000..c6b2546
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/PickWrkDetlListParam.java
@@ -0,0 +1,39 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class PickWrkDetlListParam {
+
+    // 鐗╂枡缂栧彿
+    private String matnr;
+
+    // 鐗╂枡鍚嶇О
+    private String maknx;
+
+    //鍗曟嵁缂栧彿
+    private String orderNo;
+    //閲囪喘鍗曞彿
+    private String boxType3;
+
+    //瀹㈡埛PO
+    private String standby1;
+
+    //鏉$爜UPC
+    private String standby2;
+
+    //瀹㈡埛sku
+    private String standby3;
+
+    // 瀹㈡埛淇℃伅
+    private String manu;
+
+    // 澶囨敞
+    private String memo;
+
+    // 鐗╂枡鏁伴噺
+    private Double count;
+
+    private Double total;
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
index e10e894..496b208 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -21,6 +21,7 @@
     List<WrkDetl> selectAndLogByOrderNo(String orderNo);
 
     int updateInspect( @Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
+    List<WrkDetl> findByBarcode(String barcode);
 
     List<WrkDetl> selectPakoutQuery(@Param("staNo")Integer staNo, @Param("matnr")String matnr);
 
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index a7429de..45df305 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.service;
 
+import com.zy.asrs.entity.WrkDetl;
 import com.zy.asrs.entity.param.*;
 import com.zy.asrs.entity.result.OpenOrderCompeteResult;
 import com.zy.asrs.entity.result.StockVo;
@@ -58,5 +59,5 @@
     boolean agvApplicationPassedTheGrating(AgvGoTheArnParam param);
     boolean agvBindAndBin(String taskNo);
     boolean taskArmOrderResult(OrderArmEndParam param);
-
+    List<PickWrkDetlListParam> getPickList(PdaPickListParam param);
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index a40f47a..00850c6 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -16,6 +16,7 @@
     boolean updateAnfme(Double anfme, Integer wrkNo, String matnr, String batch);
 
     List<WrkDetl> selectAndLogByOrderNo(String orderNo);
+    List<WrkDetl> findByBarcode(String barcode);
 
     boolean updateInspect(Integer wrkNo, String matnr, String batch);
 
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 0ae85bc..5ff9f70 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -75,7 +75,8 @@
     private CommonService commonService;
     @Autowired
     private LocMastServiceImpl locMastService;
-
+    @Autowired
+    private WrkDetlService wrkDetlService;
     @Override
     @Transactional
     public void pakinOrderCreate(OpenOrderPakinParam param) {
@@ -904,6 +905,44 @@
             throw new CoolException("鏈兘缁戝畾");
         }
     }
+    @Override
+    @Transactional
+    public List<PickWrkDetlListParam> getPickList(PdaPickListParam param) {
+        List<WrkDetl> wrkDetls = wrkDetlService.findByBarcode(param.getBarcode());
+        List<PickWrkDetlListParam> result = new ArrayList<>();
+        wrkDetls.forEach(wrkDetl -> {
+            Double total;
+            EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+            LocDetl locDetl = locDetlService.selectOne(
+                    wrapper.eq("zpallet", wrkDetl.getZpallet())
+                            .eq("matnr", wrkDetl.getMatnr())
+            );
+            // 鍙嫞鎬婚噺锛氫紭鍏堝彇搴撳瓨琛紝鍚﹀垯鍙栦綔涓氭暟閲�
+            if (Cools.isEmpty(locDetl)) {
+                total = wrkDetl.getAnfme();
+            } else {
+                total = locDetl.getAnfme();
+            }
+            // ===== 缁勮杩斿洖瀵硅薄 =====
+            PickWrkDetlListParam dto = new PickWrkDetlListParam();
+            dto.setMatnr(wrkDetl.getMatnr());
+            dto.setMaknx(wrkDetl.getMaktx());
+            dto.setOrderNo(wrkDetl.getOrderNo());
+            dto.setBoxType3(wrkDetl.getBoxType3());
+            dto.setStandby1(wrkDetl.getStandby1());
+            dto.setStandby2(wrkDetl.getStandby2());
+            dto.setStandby3(wrkDetl.getStandby3());
+            dto.setManu(wrkDetl.getManu());
+            dto.setMemo(wrkDetl.getMemo());
+            // 褰撳墠鎷h揣鏁伴噺
+            dto.setCount(wrkDetl.getAnfme());
+            // 鍙嫞鎬绘暟閲�
+            dto.setTotal(total);
+            result.add(dto);
+        });
+
+        return result;
+    }
 
     @Override
     @Transactional
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
index 3eaaa7a..626156a 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -76,6 +76,11 @@
     }
 
     @Override
+    public List<WrkDetl> findByBarcode(String barcode) {
+        return this.baseMapper.findByBarcode(barcode);
+    }
+
+    @Override
     public List<WrkDetl> selectPakoutQuery(Integer staNo, String matnr) {
         return this.baseMapper.selectPakoutQuery(staNo, matnr);
     }
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index 2d7e421..191eb20 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -76,7 +76,9 @@
         and matnr = #{matnr}
         <include refid="batchSeq"></include>
     </delete>
-
+    <select id="findByBarcode" resultMap="BaseResultMap">
+        select * from asr_wrk_detl where 1=1 and zpallet = #{barcode} and wrk_no != 9996
+    </select>
     <update id="updateAnfme">
         update asr_wrk_detl
         set anfme = #{anfme}

--
Gitblit v1.9.1