From a9f4a820c583eb85cec381b6236063256f753652 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 02 八月 2025 14:53:02 +0800
Subject: [PATCH] 完善和新增多次拣料

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 57 insertions(+), 3 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
index 0f9375b..29de0a6 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.wms.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sun.org.apache.xpath.internal.operations.Or;
 import com.zy.asrs.common.domain.dto.LocDetlDto;
 import com.zy.asrs.common.domain.dto.WrkDto;
 import com.zy.asrs.common.domain.entity.MobileAdjustResult;
@@ -488,14 +489,25 @@
         }
 
         LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(Order::getStatus, 1);
+        wrapper.in(Order::getStatus, 1,2);
         wrapper.eq(Order::getHostId, getHostId());
         wrapper.in(Order::getDocType, typeList);
         List<Order> orders = orderService.list(wrapper);
 
         ArrayList<Long> orderIds = new ArrayList<>();
         for (Order order : orders) {
-            orderIds.add(order.getId());
+            Date currentDate = new Date();
+
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(currentDate);
+            calendar.add(Calendar.MONTH, -1);
+
+            Date previousMonthDate = calendar.getTime();
+            int result=previousMonthDate.compareTo(order.getCreateTime());
+            if(result<0){
+                orderIds.add(order.getId());
+            }
+
         }
 
         //鎼滅储鏄庣粏
@@ -504,6 +516,7 @@
         wrapper1.eq(OrderDetl::getHostId, getHostId());
         wrapper1.in(OrderDetl::getOrderId, orderIds);
         wrapper1.orderByDesc(OrderDetl::getCreateTime);
+//        wrapper1.last("LIMIT 1000");
         if (!Cools.isEmpty(matnr)) {
             wrapper1.like(OrderDetl::getMatnr, matnr);
         }
@@ -522,6 +535,7 @@
 
             PickMatParam matParam = new PickMatParam();
             matParam.setMatnr(orderDetl.getMatnr());
+            matParam.setMaktx(orderDetl.getMaktx());
             matParam.setBatch(orderDetl.getBatch());
             matParam.setOrderNo(orderDetl.getOrderNo());
             matParam.setOrderId(orderDetl.getOrderId());
@@ -679,6 +693,9 @@
             wrkDetl.setHostId(getHostId());
             wrkDetl.setWrkMastId(wrkMast.getId());
             wrkDetl.setZpallet(wrkMast.getBarcode());
+            if(Cools.isEmpty(matParam.getBatch())){
+                wrkDetl.setBatch("");
+            }
             if (!wrkDetlService.save(wrkDetl)) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
             }
@@ -744,7 +761,7 @@
     @RequestMapping("/barcode/list/pick")
     @ManagerAuth(memo = "鎷f枡鍏ュ簱閫斾腑骞舵澘")
     @Transactional
-    public R orderOutListOrderPick(@RequestBody String barcode) {
+    public R orderOutListOrderPick(@RequestBody(required = false) String barcode) {
         ArrayList<WrkMast> wrkMastArrayList = new ArrayList<>();
         if (Cools.isEmpty(barcode) || barcode.isEmpty()) {
             List<WrkMast> wrkMasts = wrkMastService.list(new LambdaQueryWrapper<WrkMast>()
@@ -834,6 +851,9 @@
         }
         for (OrderDetl o : orderDetls
         ) {
+            if(o.getAnfme().equals(o.getQty())){
+                continue;
+            }
             for (LocDetl l : locDetls
             ) {
                 if (o.getMatnr().equals(l.getMatnr())) {
@@ -850,4 +870,38 @@
         return R.ok(locDetlList);
     }
 
+    @PostMapping("/pda/OutOrder")
+    @ManagerAuth(memo = "鑾峰緱鍑哄簱鍗�")
+    @Transactional
+    public R OutOrder(@RequestParam String orderNo) {
+        List<Order> orders=new ArrayList<Order>();
+        List<Order> OrderList=new ArrayList<Order>();
+        if(Cools.isEmpty(orderNo)){
+            orders= orderService.list(new LambdaQueryWrapper<Order>()
+                    .between(Order::getSettle,1,2)
+                    .eq(Order::getHostId, getHostId())
+            );
+        }else{
+            orders= orderService.list(new LambdaQueryWrapper<Order>()
+                    .like(Order::getOrderNo, orderNo)
+                    .between(Order::getSettle,1,2)
+                    .eq(Order::getHostId, getHostId())
+            );
+        }
+        if(Cools.isEmpty(orders)){
+            return R.ok();
+        }
+        for (Order o:orders
+             ) {
+            DocType docType=docTypeService.getOne(new LambdaQueryWrapper<DocType>()
+                    .eq(DocType::getDocId,o.getDocType()));
+            if(docType.getPakout()==1){
+                OrderList.add(o);
+            }
+        }
+
+
+        return R.ok(OrderList);
+    }
+
 }

--
Gitblit v1.9.1