From 6a460f6895f0f09c406c2dc6b2b31e4d77d3ef03 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期三, 18 三月 2026 12:29:28 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OrderPakinController.java |  127 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 123 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderPakinController.java b/src/main/java/com/zy/asrs/controller/OrderPakinController.java
index fb81d0f..b187052 100644
--- a/src/main/java/com/zy/asrs/controller/OrderPakinController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderPakinController.java
@@ -42,6 +42,12 @@
     private WrkMastService wrkMastService;
     @Autowired
     private WrkMastLogService wrkMastLogService;
+    @Autowired
+    private LocOwnerService locOwnerService;
+    @Autowired
+    private OrderDetlPakinService orderDetlPakinService;
+    @Autowired
+    private MatService matService;
 
     @RequestMapping(value = "/order/nav/list/auth")
     @ManagerAuth
@@ -85,7 +91,95 @@
             wrapper.orderBy("settle").orderBy("create_time", false);
         }
         wrapper.eq("status", 1);
-        return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper));
+        wrapper.eq("move_status", 0);
+        Page<OrderPakin> page = orderService.selectPage(new Page<>(curr, limit), wrapper);
+        if (page != null && page.getRecords() != null) {
+            for (OrderPakin order : page.getRecords()) {
+                if (order == null || Cools.isEmpty(order.getOrderNo())) {
+                    continue;
+                }
+                int total = orderDetlPakinService.selectCount(new EntityWrapper<OrderDetlPakin>()
+                        .eq("order_no", order.getOrderNo())
+                        .eq("status", 1));
+                if (total <= 0) {
+                    order.setIssueComplete(0);
+                    continue;
+                }
+                int notComplete = orderDetlPakinService.selectCount(new EntityWrapper<OrderDetlPakin>()
+                        .eq("order_no", order.getOrderNo())
+                        .eq("status", 1)
+                        .where("be_batch is null or be_batch < anfme"));
+                order.setIssueComplete(notComplete <= 0 ? 1 : 0);
+            }
+        }
+        return R.ok(page);
+    }
+
+    @RequestMapping(value = "/actual/shipment/order/report/auth")
+    @ManagerAuth(memo = "涓婃姤MES瀹為檯缁勮揣鍗�")
+    public R actualShipmentOrder(@RequestParam String orderNo) {
+        try{
+            orderService.updateOrderStatus(orderNo);   //鏇存柊璁㈠崟鐘舵�� 0 -> 1
+            return R.ok("鎴愬姛").add("鎴愬姛");
+        } catch (Exception e) {}
+        return R.error("澶辫触").add("澶辫触");
+    }
+
+    @RequestMapping(value = "/order/oneKey/issue/auth")
+    @ManagerAuth(memo = "涓�閿笅鍙�")
+    @Transactional
+    public R oneKeyIssue(@RequestParam String orderNo) {
+        if (Cools.isEmpty(orderNo)) {
+            return R.error("璁㈠崟鍙蜂笉鑳戒负绌�");
+        }
+        List<OrderDetlPakin> detls = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>()
+                .eq("order_no", orderNo)
+                .eq("status", 1));
+        if (detls == null || detls.isEmpty()) {
+            return R.error("鏈壘鍒板搴旀槑缁�");
+        }
+        List<String> errorMessages = new ArrayList<>();
+        final double LENGTH_MIN = 315, LENGTH_MAX = 1150;
+        final double WIDTH_MIN = 160, WIDTH_MAX = 730;
+        final double HEIGHT_MIN = 140, HEIGHT_MAX = 810;
+        final double WIEGHT_MIN = 0, WIEGHT_MAX = 23;
+        for (OrderDetlPakin detl : detls) {
+            Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", detl.getMatnr()));
+            if (mat == null) {
+                errorMessages.add("鐗╂枡缂栧彿 " + detl.getMatnr() + " 涓嶅瓨鍦�");
+                continue;
+            }
+            Double len = mat.getManLength();
+            Double wid = mat.getWidth();
+            Double hei = mat.getHeight();
+            Double wet = mat.getWeight();
+            if (len == null || len < LENGTH_MIN || len > LENGTH_MAX) {
+                errorMessages.add(String.format("鐗╂枡 %s 闀垮害寮傚父锛氬繀椤� %.0f~%.0f mm锛屽綋鍓� %s",
+                        detl.getMatnr(), LENGTH_MIN, LENGTH_MAX, len));
+            }
+            if (wid == null || wid < WIDTH_MIN || wid > WIDTH_MAX) {
+                errorMessages.add(String.format("鐗╂枡 %s 瀹藉害寮傚父锛氬繀椤� %.0f~%.0f mm锛屽綋鍓� %s",
+                        detl.getMatnr(), WIDTH_MIN, WIDTH_MAX, wid));
+            }
+            if (hei == null || hei < HEIGHT_MIN || hei > HEIGHT_MAX) {
+                errorMessages.add(String.format("鐗╂枡 %s 楂樺害寮傚父锛氬繀椤� %.0f~%.0f mm锛屽綋鍓� %s",
+                        detl.getMatnr(), HEIGHT_MIN, HEIGHT_MAX, hei));
+            }
+            if (wet == null || wet < WIEGHT_MIN || wet > WIEGHT_MAX) {
+                errorMessages.add(String.format("鐗╂枡 %s 姣涢噸寮傚父锛氬繀椤� %.0f~%.0f kg锛屽綋鍓� %s",
+                        detl.getMatnr(), WIEGHT_MIN, WIEGHT_MAX, wet));
+            }
+        }
+        if (!errorMessages.isEmpty()) {
+            return R.error(String.join("锛沑n", errorMessages));
+        }
+        if (!orderDetlPakinService.issueAll(orderNo)) {
+            return R.error("涓嬪彂鏄庣粏鏇存柊澶辫触");
+        }
+        if (!orderService.updateOrderStatus(orderNo)) {
+            throw new CoolException("璁㈠崟鐘舵�佹洿鏂板け璐�");
+        }
+        return R.ok("鎴愬姛").add("鎴愬姛");
     }
 
     @RequestMapping(value = "/order/detl/all/auth")
@@ -110,6 +204,12 @@
         if (order != null) {
             return R.error("鍗曟嵁缂栧彿宸插瓨鍦�");
         }
+        LocOwner locOwner = null;
+        if (!Cools.isEmpty(param.getOwnerId())) {
+            locOwner = locOwnerService.selectById(param.getOwnerId());
+        } else {
+            locOwner = locOwnerService.selectById(1);
+        }
         Date now = new Date();
         order = new OrderPakin(
                 String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
@@ -117,12 +217,12 @@
                 DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡
                 param.getDocType(),    // 鍗曟嵁绫诲瀷
                 null,    // 椤圭洰缂栧彿
-                null,    //
+                param.getStandby1(),    //
                 null,    // 璋冩嫧椤圭洰缂栧彿
                 null,    // 鍒濆绁ㄦ嵁鍙�
                 null,    // 绁ㄦ嵁鍙�
                 null,    // 瀹㈡埛缂栧彿
-                null,    // 瀹㈡埛
+                locOwner.getOwner(),    // 瀹㈡埛
                 null,    // 鑱旂郴鏂瑰紡
                 null,    // 鎿嶄綔浜哄憳
                 null,    // 鍚堣閲戦
@@ -174,6 +274,11 @@
                 orderDetl.setUpdateTime(now);
                 orderDetl.setStatus(1);
                 orderDetl.setQty(0.0D);
+                orderDetl.setStandby1(param.getStandby1().toString());//po
+                orderDetl.setBoxType1(locOwner.getId().toString());//璐т富ID
+                orderDetl.setBoxType2(locOwner.getOwnerUuid().toString());//璐т富UUID
+                orderDetl.setBoxType3(locOwner.getOwner());//璐т富
+                orderDetl.setPakinPakoutStatus(1);
                 if (!orderDetlService.insert(orderDetl)) {
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
                 }
@@ -365,7 +470,21 @@
                 throw new CoolException("瀛樺湪浣滀笟涓暟鎹紝涓嶈兘瀹岀粨銆傝妫�鏌ュ叆搴撻�氱煡妗e拰宸ヤ綔妗�");
             }
         }
-
+        if(order.getSettle() == 66){
+            List<OrderDetlPakin> lists = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_no",order.getOrderNo()));
+            for (OrderDetlPakin orderDetlPakin : lists) {
+                String boxType3 = orderDetlPakin.getBoxType3();
+                if (boxType3 == null || !boxType3.contains("HDU")) {
+                    throw new CoolException(
+                            String.format("璁㈠崟 %s 鐨勬槑缁嗕腑涓嶅瓨鍦ㄥ寘鍚獺DU鐨勭墿鏂欐槑缁�: %s (鐗╂枡: %s)",
+                                    order.getOrderNo(),
+                                    boxType3,
+                                    orderDetlPakin.getMatnr() != null ? orderDetlPakin.getMatnr() : "鏈煡鐗╂枡"
+                            )
+                    );
+                }
+            }
+        }
         order.setUpdateBy(getUserId());
         order.setUpdateTime(new Date());
         if (!orderService.updateById(order)) {

--
Gitblit v1.9.1