From 7e10622ead5bd8b3ce0c9fda39d22ae0e938e030 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期五, 12 九月 2025 13:44:10 +0800
Subject: [PATCH] 完善订单组托可用数据显示功能

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java |  143 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 141 insertions(+), 2 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java
index 4faa9f0..9b88462 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java
@@ -3,10 +3,11 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.zy.asrs.common.wms.entity.OrderDetl;
-import com.zy.asrs.common.wms.service.OrderDetlService;
+import com.zy.asrs.common.wms.entity.*;
+import com.zy.asrs.common.wms.service.*;
 import com.zy.asrs.framework.annotations.ManagerAuth;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.R;
@@ -23,6 +24,20 @@
 
     @Autowired
     private OrderDetlService orderDetlService;
+    @Autowired
+    private WaitPakinService waitPakinService;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private DocTypeService docTypeService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private LocDetlService locDetlService;
 
     @RequestMapping(value = "/orderDetl/forOrderNo/auth")
     @ManagerAuth
@@ -59,6 +74,87 @@
         return R.ok(orderDetlService.page(new Page<>(curr, limit), wrapper));
     }
 
+    @RequestMapping(value = "/orderDetl/forOrderNo/auth/v1")
+    @ManagerAuth
+    public R forOrderNoV1(@RequestParam String orderNo,@RequestParam String locNo,@RequestParam String batch,@RequestParam String matnr) {
+        LambdaQueryWrapper<LocDetl> locDetlLambdaQueryWrapper = new LambdaQueryWrapper<LocDetl>()
+                .eq(LocDetl::getLocNo, locNo)
+                .eq(LocDetl::getHostId, getHostId())
+                .eq(LocDetl::getMatnr, matnr);
+        List<LocDetl> detls = locDetlService.list(locDetlLambdaQueryWrapper);
+        if (Cools.isEmpty(detls)){
+            return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
+        }
+        if (detls.size()>1){
+            return R.error("搴撳瓨鏁版嵁澶т簬1鏉★紝涓轰繚璇佹暟鎹噯纭�э紝璇风敤姝e父娴佺▼鍑哄簱锛侊紒锛�");
+        }
+        List<OrderDetl> orderDetlList = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
+                .eq(OrderDetl::getMatnr, matnr)
+                .eq(OrderDetl::getHostId, getHostId())
+                .like(OrderDetl::getOrderNo, orderNo)
+        );
+        if (Cools.isEmpty(orderDetlList)){
+            return R.error("鏈煡璇㈠埌姝よ鍗曟鐗╂枡鏁版嵁");
+        }
+        if (orderDetlList.size()>1){
+            return R.error("姝よ鍗曟鐗╂枡鏁版嵁鏁版嵁澶т簬1鏉★紝涓轰繚璇佹暟鎹噯纭�э紝璇风敤姝e父娴佺▼鍑哄簱锛侊紒锛�");
+        }
+        ArrayList<OrderDetl> orderDetls = new ArrayList<>();
+        for(OrderDetl orderDetl:orderDetlList){
+            double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+            if (count <= 0D) {
+                continue;
+            }
+            orderDetl.setAnfme(count);
+            orderDetls.add(orderDetl);
+        }
+        return R.ok(orderDetls);
+    }
+
+    @RequestMapping(value = "/orderDetl/forOrderNo/mergePakin/v1")
+    @ManagerAuth
+    public R forOrderNoMergePakinV1(@RequestParam String orderNo) {
+        List<DocType> docTypes = docTypeService.list(new LambdaQueryWrapper<DocType>().eq(DocType::getPakin, 1));
+        ArrayList<Long> docTypeIds = new ArrayList<>();
+        for (DocType docType : docTypes) {
+            docTypeIds.add(docType.getDocId());
+        }
+
+        if (docTypeIds.isEmpty()) {
+            return R.error("鍗曟嵁绫诲瀷涓嶅瓨鍦�");
+        }
+
+        List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getDocType, docTypeIds).in(Order::getSettle, 0, 1, 2));
+        if (orders.isEmpty()) {
+            return R.error("鏈煡璇㈠埌璁㈠崟");
+        }
+
+        ArrayList<Long> orderIds = new ArrayList<>();
+        for (Order order : orders) {
+            orderIds.add(order.getId());
+        }
+
+        List<OrderDetl> orderDetlList = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
+                .eq(OrderDetl::getHostId, getHostId())
+                .in(OrderDetl::getOrderId, orderIds)
+                .like(OrderDetl::getOrderNo, orderNo)
+        );
+        if (Cools.isEmpty(orderDetlList)){
+            return R.error("鏈煡璇㈠埌姝よ鍗曟鐗╂枡鏁版嵁");
+        }
+
+        ArrayList<OrderDetl> orderDetls = new ArrayList<>();
+        for(OrderDetl orderDetl:orderDetlList){
+            double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+            if (count <= 0D) {
+                continue;
+            }
+            orderDetl.setAnfme(count);
+            orderDetls.add(orderDetl);
+        }
+        return R.ok(orderDetls);
+    }
+
 
     @RequestMapping(value = "/orderDetl/add/auth")
     @ManagerAuth
@@ -67,6 +163,49 @@
         orderDetlService.save(orderDetl);
         return R.ok();
     }
+    @RequestMapping(value = "/order/cancel/wrk/auth")
+    @ManagerAuth
+    public R cancelWrk(String orderId) {
+        Order order = orderService.getById(orderId);
+        DocType docType = docTypeService.getById(order.getDocType());
+        if (null != docType && docType.getPakin() == 1) {
+            List<WaitPakin> waitPakinList = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getOrderNo, order.getOrderNo()));
+            if (!Cools.isEmpty(waitPakinList)){
+                for (WaitPakin entity : waitPakinList){
+                    List<WrkMast> wrkMasts = wrkMastService.list(new QueryWrapper<WrkMast>().eq("barcode", entity.getZpallet()));
+                    if(!Cools.isEmpty(wrkMasts) || wrkMasts.size() > 0){
+                        continue;
+                    }
+                    waitPakinService.removeById(entity.getId());
+                    //璁㈠崟鍏宠仈锛屼慨鏀硅鍗曚綔涓氭暟閲�
+                    if (!Cools.isEmpty(entity.getOrderNo())) {
+                        if (!orderDetlService.decrease(entity.getOrderNo(),entity.getHostId(), entity.getMatnr(), entity.getBatch(), entity.getAnfme())) {
+                            return R.error("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+                        }
+                    }
+                }
+            }
+        } else if (null != docType && docType.getPakout() == 1) {
+            List<WrkDetl> wrkDetlList = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getOrderNo, order.getOrderNo()));
+            if (!Cools.isEmpty(wrkDetlList)){
+                List<Integer> wrkNoList = new ArrayList<>();
+               for (WrkDetl wrkDetl:wrkDetlList){
+                   if (!wrkNoList.contains(wrkDetl.getWrkNo())){
+                       wrkNoList.add(wrkDetl.getWrkNo());
+                   }
+               }
+               for (Integer wrkNo:wrkNoList){
+                   List<WrkMast> wrkMasts = wrkMastService.list(new QueryWrapper<WrkMast>().eq("wrk_no", wrkNo));
+                   if (wrkMasts.size()==1){
+                       if (wrkMasts.get(0).getWrkSts()==101){
+                           workService.cancelWrkMast(wrkNo.toString(), getUserId(), getHostId());
+                       }
+                   }
+               }
+            }
+        }
+        return R.ok();
+    }
 
 	@RequestMapping(value = "/orderDetl/update/auth")
 	@ManagerAuth

--
Gitblit v1.9.1