From b3b5eb6bd7955afb4be48f0e34a18b92a38b102d Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期四, 18 十二月 2025 15:15:33 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OrderController.java |  108 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 80 insertions(+), 28 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index fd50042..2739897 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -29,6 +29,14 @@
     @Autowired
     private OrderDetlService orderDetlService;
     @Autowired
+    private OrderPakinService orderPakinService;
+    @Autowired
+    private OrderDetlPakinService orderDetlPakinService;
+    @Autowired
+    private OrderPakoutService orderPakoutService;
+    @Autowired
+    private OrderDetlPakoutService orderDetlPakoutService;
+    @Autowired
     private SnowflakeIdWorker snowflakeIdWorker;
     @Autowired
     private DocTypeService docTypeService;
@@ -42,6 +50,8 @@
     private WrkMastService wrkMastService;
     @Autowired
     private WrkMastLogService wrkMastLogService;
+    @Autowired
+    private LocOwnerService locOwnerService;
 
     @RequestMapping(value = "/order/nav/list/auth")
     @ManagerAuth
@@ -98,14 +108,28 @@
     @ManagerAuth(memo = "鎵嬪姩娣诲姞璁㈠崟")
     @Transactional
     public R formAdd(@RequestBody OrderDomainParam param){
+        int status = 0;
         if(Cools.isEmpty(param.getOrderNo())){
             String prefix = "";
             DocType docType = docTypeService.selectById(param.getDocType());
             if(!Cools.isEmpty(docType)){
                 prefix = docType.getPakin() == 1 ? "RK" : "CK";
+                status = (prefix.equals("RK") ? 1 : (prefix.equals("CK") ? 2 : 0));
             }
             param.setOrderNo(prefix + snowflakeIdWorker.nextId());
+        } else {
+            DocType docType = docTypeService.selectById(param.getDocType());
+            if(!Cools.isEmpty(docType)){
+                status = (docType.getPakin() == 1 ? 1 :  2 );
+            }
         }
+        LocOwner locOwner = null;
+        if (!Cools.isEmpty(param.getOwnerId())) {
+            locOwner = locOwnerService.selectById(param.getOwnerId());
+        } else {
+            locOwner = locOwnerService.selectById(1);
+        }
+
         Order order = orderService.selectByNo(param.getOrderNo());
         if (order != null) {
             return R.error("鍗曟嵁缂栧彿宸插瓨鍦�");
@@ -117,7 +141,7 @@
                 DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡
                 param.getDocType(),    // 鍗曟嵁绫诲瀷
                 null,    // 椤圭洰缂栧彿
-                null,    //
+                null,    //椤圭洰鍚嶇О 瀹㈡埛PO鍙�
                 null,    // 璋冩嫧椤圭洰缂栧彿
                 null,    // 鍒濆绁ㄦ嵁鍙�
                 null,    // 绁ㄦ嵁鍙�
@@ -145,16 +169,20 @@
                 now,    // 娣诲姞鏃堕棿
                 getUserId(),    // 淇敼浜哄憳
                 now,    // 淇敼鏃堕棿
-                null    // 澶囨敞
+                null,    // 澶囨敞
+                status
         );
         if (!orderService.insert(order)) {
             throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触");
         }
         List<DetlDto> list = new ArrayList<>();
         for (OrderDetl orderDetl : param.getOrderDetlList()) {
-            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
+            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getBrand(),
+                    orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
+                    orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
             if (DetlDto.has(list, dto)) {
-                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
+                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
+                        orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
                 item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                 if (!orderDetlService.updateById(item)) {
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
@@ -169,6 +197,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(status);
                 if (!orderDetlService.insert(orderDetl)) {
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
                 }
@@ -205,9 +238,13 @@
         // 2.閲嶇粍鏁版嵁
         List<DetlDto> list = new ArrayList<>();
         for (OrderDetl orderDetl : param.getOrderDetlList()) {
-            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
+            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBrand(),
+                    orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
+                    orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
             if (DetlDto.has(list, dto)) {
-                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
+                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBrand(),
+                        orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
+                        orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
                 item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                 if (!orderDetlService.updateById(item)) {
                     throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
@@ -247,19 +284,21 @@
             totalQty = totalQty + orderDetl.getAnfme();
             wrkQty = wrkQty + orderDetl.getWorkQty();
             endQty = endQty + orderDetl.getQty();
-            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
-            if (issued > 0.0) {
-                List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrigin(), null);
-                for (LocDetl locDetl : locDetls) {
-                    if (issued > 0) {
-                        issued = issued - locDetl.getAnfme();
-                    } else {
-                        break;
+            if (!Cools.isEmpty(order.getPakinPakoutStatus$()) && order.getPakinPakoutStatus$().equals("N")){
+                double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
+                if (issued > 0.0) {
+                    List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrigin(), null);
+                    for (LocDetl locDetl : locDetls) {
+                        if (issued > 0) {
+                            issued = issued - locDetl.getAnfme();
+                        } else {
+                            break;
+                        }
                     }
                 }
-            }
-            if (issued > 0.0) {
-                lackQty = lackQty + issued;
+                if (issued > 0.0) {
+                    lackQty = lackQty + issued;
+                }
             }
         }
         // 浠诲姟杩芥函
@@ -298,7 +337,7 @@
                 .add("list", wrkTraceVos)
                 .add("orderNo", order.getOrderNo())
                 .add("totalQty", totalQty)
-                .add("wrkQty", wrkQty)
+                .add("wrkQty", wrkQty+endQty)
                 .add("lackQty", lackQty)
                 .add("endQty",endQty)
         );
@@ -367,19 +406,32 @@
     @RequestMapping(value = "/order/delete/auth")
     @ManagerAuth(memo = "鎵嬪姩鍒犻櫎璁㈠崟")
     @Transactional
-    public R delete(@RequestParam Long orderId){
-        orderService.remove(orderId);
-//        Order order = orderService.selectById(orderId);
-//        if (order != null) {
-//            order.setStatus(0);
-//        }
-//        if (!orderService.updateById(order)) {
-//            throw new CoolException("鍒犻櫎璁㈠崟澶辫触");
-//        }
-//        orderDetlService.modifyStatus(orderId, 0);
+    public R delete(@RequestParam Long orderId) {
+        // 鑾峰彇璁㈠崟淇℃伅
+        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("id", orderId));
+        String orderNo = order.getOrderNo();
+
+        // 鍒犻櫎 OrderDetl 琛ㄤ腑涓庤鍗曠浉鍏崇殑鏁版嵁
+        orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_no", orderNo));
+
+        // 鏍规嵁 PakinPakoutStatus 鍒犻櫎鐩稿叧鏁版嵁
+        if (order.getPakinPakoutStatus() == 1) {
+            // 鍒犻櫎 OrderPakin 鍜� OrderDetlPakin 鐩稿叧鏁版嵁
+            orderPakinService.delete(new EntityWrapper<OrderPakin>().eq("order_no", orderNo));
+            orderDetlPakinService.delete(new EntityWrapper<OrderDetlPakin>().eq("order_no", orderNo));
+        } else if (order.getPakinPakoutStatus() == 2) {
+            // 鍒犻櫎 OrderPakout 鍜� OrderDetlPakout 鐩稿叧鏁版嵁
+            orderPakoutService.delete(new EntityWrapper<OrderPakout>().eq("order_no", orderNo));
+            orderDetlPakoutService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_no", orderNo));
+        }
+
+        // 鍒犻櫎 Order 琛ㄤ腑瀵瑰簲鐨勮鍗曟暟鎹�
+        orderService.delete(new EntityWrapper<Order>().eq("order_no", orderNo));
+
         return R.ok();
     }
 
+
     @RequestMapping(value = "/order/export/auth")
     @ManagerAuth
     public R export(@RequestBody JSONObject param){

--
Gitblit v1.9.1