From 4aebedd582c7b1beb23df39829c341b40343e2ce Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 21 十二月 2025 16:16:16 +0800
Subject: [PATCH] pda相关功能开发完善

---
 src/main/java/com/zy/asrs/controller/OrderController.java      |   21 ++++++++++
 src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java     |   11 +----
 src/main/java/com/zy/asrs/task/handler/JlerHandler.java        |   15 +------
 src/main/java/com/zy/asrs/controller/OrderPakinController.java |   13 +++++-
 src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java     |    3 +
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java  |   17 +++++++-
 src/main/resources/application-dev.yml                         |    2 +
 src/main/java/com/zy/asrs/controller/MobileController.java     |    8 +++-
 src/main/java/com/zy/asrs/service/MobileService.java           |    6 ++
 9 files changed, 64 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 3e69d15..63780c7 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -542,10 +542,14 @@
     @PostMapping("/callEmptyBinInBound")
     @ManagerAuth(memo = "pda鍛煎彨鏂欐鍥炲簱")
     public synchronized R callEmptyBinInBound(@RequestBody JSONObject param) {
-        if(!param.containsKey("site")){ // 鎼繍璧风偣
+        if (!param.containsKey("site") || !param.containsKey("barcode") || !param.containsKey("emptyFlag")) {
             return R.parse(BaseRes.PARAM);
         }
-        return mobileService.callEmptyBinInBound(param.getString("site"),getUserId());
+        String site = param.getString("site"); // 璧峰绔欑偣
+        String barcode = param.getString("barcode"); // 鎵樼洏鏉$爜
+        String emptyFlag = param.getString("emptyFlag"); // 1.鏈夎揣(榛樿)锛�2.绌烘墭
+
+        return mobileService.callEmptyBinInBound(site, barcode, emptyFlag, getUserId());
     }
 
 }
diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index 4c1bd74..4c87c56 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -19,6 +19,8 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.*;
 
 @RestController
@@ -43,6 +45,25 @@
     @Autowired
     private WrkMastLogService wrkMastLogService;
 
+    @Resource
+    private OrderDetlPakinService orderDetlPakinService;
+
+    @RequestMapping(value = "/order/list/orderNo")
+    public R orderListorderNo(@RequestParam String orderNo) {
+        //鏁伴噺淇敼鎴愪负瀹屾垚鏁伴噺
+        List<OrderDetlPakin> orderDetl1 = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_no", orderNo));
+        List<OrderDetlPakin> orderDetls= new ArrayList<>();
+        for (OrderDetlPakin o: orderDetl1) {
+            BigDecimal c1 = new BigDecimal(o.getEnableQty()).setScale(2,BigDecimal.ROUND_HALF_UP);
+            o.setAnfme(c1.doubleValue());
+            if (o.getAnfme().equals(0.0)){
+                continue;
+            }
+            orderDetls.add(o);
+        }
+        return R.ok(orderDetls);
+    }
+
     @RequestMapping(value = "/order/nav/list/auth")
     @ManagerAuth
     public R navList(@RequestParam(required = false) String orderNo){
diff --git a/src/main/java/com/zy/asrs/controller/OrderPakinController.java b/src/main/java/com/zy/asrs/controller/OrderPakinController.java
index fb81d0f..17785a0 100644
--- a/src/main/java/com/zy/asrs/controller/OrderPakinController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderPakinController.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.controller;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -53,7 +54,7 @@
         wrapper.le("settle", 2).eq("status", 1);
         wrapper.orderBy("create_time", false);
         List<OrderPakin> orders = orderService.selectList(wrapper);
-        // 淇濈暀鍑哄簱鍗�
+        // 淇濈暀鍏ュ簱鍗�
         if (!Cools.isEmpty(orders)) {
             Iterator<OrderPakin> iterator = orders.iterator();
             while (iterator.hasNext()) {
@@ -61,14 +62,20 @@
                 if (order.getDocType() != null) {
                     DocType docType = docTypeService.selectById(order.getDocType());
                     if (docType != null) {
-                        if (docType.getPakout() == 0) {
+                        if (docType.getPakout() == 1) {
                             iterator.remove();
                         }
                     }
                 }
             }
         }
-        return R.ok().add(orders);
+        JSONArray jsonArray = new JSONArray();
+        for(OrderPakin orderPakin: orders) {
+            JSONObject object = new JSONObject();
+            object.put("order_no",orderPakin.getOrderNo());
+            jsonArray.add(object);
+        }
+        return R.ok().add(jsonArray);
     }
 
     @RequestMapping(value = "/order/head/page/auth")
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index a561770..b2ebfdc 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -111,6 +111,10 @@
 
     /**
      * pda鍛煎彨鏂欐鍥炲簱
+     * @param site 璧峰绔欑偣
+     * @param barcode 鏉$爜
+     * @param emptyFlag 1.鏈夎揣(榛樿)锛�2.绌烘墭
+     * @param userId 鐢ㄦ埛id
      */
-    R callEmptyBinInBound(String site, Long userId);
+    R callEmptyBinInBound(String site, String barcode, String emptyFlag, Long userId);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
index c18ad1e..3150545 100644
--- a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
@@ -983,7 +983,7 @@
                         transTask.setAgvFactory(1);
                         JSONObject sendAgvTask = submitTask(transTask);
                         if (!"1".equals(sendAgvTask.getString("Success"))) {
-                            log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触", JSONObject.toJSONString(transTask));
+                            log.error("鍑哄簱涓嬪彂agv杩愯緭浠诲姟澶辫触:{}", JSONObject.toJSONString(transTask));
                         }
                     }
                 } else {
@@ -1073,7 +1073,6 @@
 
     /**
      * 9.1涓嬪彂杩愯緭浠诲姟
-     * TODO:鍏朵粬搴撶殑浠诲姟鍏ㄩ儴杞埌婊戝潡搴撶粺涓�璋冨害
      *
      * @param transTask
      * @return
@@ -1123,12 +1122,6 @@
         // 杞彂缁欐捣搴锋垨鍗庢檽RCS
         RcsReturn rcsReturn = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
         if (rcsReturn.getCode().equals("SUCCESS")) {
-            if (Cools.isEmpty(transTask.getTaskno())) {
-                JSONObject data = rcsReturn.getData();
-                String robotTaskCode = data.getString("robotTaskCode");
-                transTask.setTaskno(robotTaskCode);
-                result.put("taskno", transTask.getTaskno());
-            }
             int workNo = commonService.getWorkNo(WorkNoType.OTHER.type);
             Date now = new Date();
             Task task = new Task();
@@ -1160,7 +1153,7 @@
             taskDetl.setSpecs(mat.getSpecs());
             taskDetl.setOrderNo(transTask.getOrderNo());
             taskDetl.setZpallet(transTask.getTuoPanId());
-            taskDetl.setMemo(barCodeListToStr(transTask.getItemBarcode()));
+            taskDetl.setMemo(Cools.isEmpty(transTask.getItemBarcode()) ? "":barCodeListToStr(transTask.getItemBarcode()));
             taskDetl.setModiUser(defaultUserId);
             taskDetl.setModiTime(now);
             taskDetl.setAppeUser(defaultUserId);
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 174cbdd..23c861b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -50,6 +50,9 @@
     @Value("${wms.zpalletId}")
     public String WMS_ZPALLET_ID;
 
+    @Value("${wms.loadedPallet}")
+    public String WMS_LOADED_PALLET;
+
     @Autowired
     private MatService matService;
     @Autowired
@@ -597,7 +600,7 @@
 
         Date now = new Date();
         // 鏃犲崟缁勬墭
-        if (Cools.isEmpty(param.getOrderNo())) {
+        if (Cools.isEmpty(param.getCombMats().get(0).getOrderNo())) {
             // 鐢熸垚鍏ュ簱閫氱煡妗�
             List<DetlDto> detlDtos = new ArrayList<>();
             param.getCombMats().forEach(elem -> {
@@ -1349,9 +1352,9 @@
     }
 
     @Override
-    public R callEmptyBinInBound(String site, Long userId) {
+    public R callEmptyBinInBound(String site, String barcode, String emptyFlag, Long userId) {
         TransTask transTask = new TransTask();
-//        transTask.setTaskno(mesInApply.getTaskno());
+        transTask.setTaskno(String.valueOf(new Date().getTime()));
 //        transTask.setTaskname(mesInApply.getTaskname());
 //        transTask.setOrderNo(mesInApply.getOrderNo());
         transTask.setTransType("02"); // 涓嬫瘺鍧�
@@ -1359,10 +1362,18 @@
         transTask.setCurStationId(site);
         transTask.setNextStationId(WMS_TRANS_START_STATION_2);
         transTask.setItemno(WMS_ZPALLET_ID);  // 鍥哄畾涓虹┖鎵樼殑缂栫爜
+        if ("1".equals(emptyFlag)) { // 鍒ゆ柇鏄惁缁勬墭
+            int count = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", barcode));
+            if(count <= 0) {
+                return R.parse("鏈粍鎵橈細" + barcode);
+            }
+            transTask.setItemno(WMS_LOADED_PALLET);  // 鍥哄畾涓烘弧鎵樼殑缂栫爜
+        }
         transTask.setQty(1);    // 绌烘墭鍙洖1涓�
 //        transTask.setProductLineId(mesInApply.getProductLineId());
         transTask.setOperateType(1);
         transTask.setAgvFactory(1);
+        transTask.setTuoPanId(barcode);
         JSONObject sendAgvTask = mesService.submitTask(transTask);
         if ("1".equals(sendAgvTask.getString("Success"))) {
             log.info("pda鍛煎彨鏂欐鍥炲簱鎴愬姛,{}", JSONObject.toJSONString(transTask));
diff --git a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
index 4c69d23..148e36d 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -229,8 +229,9 @@
         try {
             // 妯℃嫙杩斿洖
 //            rcsReturn.setCode("SUCCESS");
-//            log.info("鍛煎彨agv鎼繍鎴愬姛锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url, JSON.toJSONString(rcsTaskSubmit), response);
 //            success = true;
+//            log.info("鍛煎彨agv鎼繍鎴愬姛锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url, JSON.toJSONString(rcsTaskSubmit), response);
+
 
             response = sendPost(url, JSONObject.toJSONString(rcsTaskSubmit));
             if (!StringUtils.isEmpty(response) && response.contains("code")) {
diff --git a/src/main/java/com/zy/asrs/task/handler/JlerHandler.java b/src/main/java/com/zy/asrs/task/handler/JlerHandler.java
index 06862fe..6f4331e 100644
--- a/src/main/java/com/zy/asrs/task/handler/JlerHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/JlerHandler.java
@@ -15,6 +15,7 @@
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.Date;
 
 /**
  * @author pang.jiabao
@@ -50,7 +51,7 @@
         if(wrkMast.getIoType() == 110) {
             if(mesOutApply == null) { // 涓嶆槸mes涓嬪彂鐨勭┖鎵樺嚭搴�
                 TransTask transTask = new TransTask();
-//                transTask.setTaskno(mesOutApply.getTaskno());
+                transTask.setTaskno(String.valueOf(new Date().getTime()));
 //                transTask.setTaskname(mesOutApply.getTaskname());
 //                transTask.setOrderNo(mesOutApply.getOrderNo());
                 transTask.setTransType("01");
@@ -64,10 +65,6 @@
                 transTask.setAgvFactory(1);
                 JSONObject sendAgvTask = mesService.submitTask(transTask);
                 if ("1".equals(sendAgvTask.getString("Success"))) {
-                    String taskno = sendAgvTask.getString("taskno");
-                    if(Cools.isEmpty(wrkMast.getTaskNo())) {
-                        wrkMast.setTaskNo(taskno);
-                    }
                     wrkMast.setCallAgv(1);
                     wrkMastService.updateById(wrkMast);
                 }else {
@@ -90,10 +87,6 @@
                 transTask.setAgvFactory(1);
                 JSONObject sendAgvTask = mesService.submitTask(transTask);
                 if ("1".equals(sendAgvTask.getString("Success"))) {
-//                    String taskno = sendAgvTask.getString("taskno");
-//                    if(Cools.isEmpty(wrkMast.getTaskNo())) {
-//                        wrkMast.setTaskNo(taskno);
-//                    }
                     wrkMast.setCallAgv(1);
                     wrkMastService.updateById(wrkMast);
                 }else {
@@ -122,10 +115,6 @@
 
                 JSONObject sendAgvTask = mesService.submitTask(transTask);
                 if ("1".equals(sendAgvTask.getString("Success"))) {
-//                    String taskno = sendAgvTask.getString("taskno");
-//                    if(Cools.isEmpty(wrkMast.getTaskNo())) {
-//                        wrkMast.setTaskNo(taskno);
-//                    }
                     wrkMast.setCallAgv(1);
                     wrkMastService.updateById(wrkMast);
                 }else {
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index eb60083..1c04b05 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -128,6 +128,8 @@
   wmsTransStartStation3: 204
   #鎵樼洏鐗╂枡鍙�
   zpalletId: tuopan
+  #鏈夎揣鎵樼洏 pda鎵樼洏鍥炲簱鐢�
+  loadedPallet: loadedPallet
 
 #mes瀵规帴
 mes:

--
Gitblit v1.9.1