From efd08b1b4e4cbf8007096bee5d7912979e3e427a Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期一, 10 二月 2025 12:44:12 +0800
Subject: [PATCH] 兼容四期

---
 src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java |   15 ++++---
 src/main/java/com/zy/asrs/controller/AgvLocDetlController.java    |   35 +++++++++--------
 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java  |    3 +
 src/main/java/com/zy/asrs/controller/OutController.java           |   46 +++++++++++++++++++++++
 4 files changed, 76 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java b/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java
index d2adaec..c1a7f88 100644
--- a/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java
@@ -137,19 +137,22 @@
             }
         }
         for (AgvLocDetl record : agvLocDetlPage.getRecords()) {
-            OrderDetl orderDetl;
-            if (!Cools.isEmpty(orderNo)) {
-                orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
-                        .eq("order_no", orderNo)
-                        .eq("three_code", record.getThreeCode())
-                        .eq("matnr", record.getMatnr())
-                        .in("source", docIds));
-            } else {
-                orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
-                        .eq("three_code", record.getThreeCode())
-                        .eq("matnr", record.getMatnr())
-                        .in("source", docIds));
-            }
+            //OrderDetl orderDetl;
+//            if (!Cools.isEmpty(orderNo)) {
+//                orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
+//                        .eq("order_no", orderNo)
+//                        .eq("three_code", record.getThreeCode())
+//                        .eq("matnr", record.getMatnr())
+//                        .in("source", docIds));
+//            } else {
+            OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
+                    .eq("three_code", record.getThreeCode())
+                    .eq("matnr", record.getMatnr())
+                    .in("source", docIds)
+                    .orderBy("qty", false)
+                    .orderBy("anfme", false)
+                    .orderBy("create_time", true));
+            //   }
 //            if (orderDetl.getAnfme() - orderDetl.getQty() > 0) {
 //                record.setStock(orderDetl.getAnfme() - orderDetl.getQty());
 //            } else {
@@ -157,9 +160,9 @@
 //            }
             if (Cools.isEmpty(orderDetl)) {
                 record.setStock(0D);
-                if (!Cools.isEmpty(orderNo)) {
-                    record.setOrderNo(orderNo);
-                }
+//                if (!Cools.isEmpty(orderNo)) {
+//                    record.setOrderNo(orderNo);
+//                }
             } else {
                 record.setStock(orderDetl.getAnfme() - orderDetl.getQty());
                 record.setOrderNo(orderDetl.getOrderNo());
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 70a25c7..9e8d0b8 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -6,6 +6,7 @@
 import com.core.common.Cools;
 import com.core.common.R;
 import com.core.exception.CoolException;
+import com.zy.asrs.constant.AsrsConstants;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
 import com.zy.common.model.LocDto;
@@ -159,6 +160,51 @@
 
     }
 
+    @PostMapping("/bcp/out/pakout/preview/auth/v2")
+    @ManagerAuth
+    public R bcpPakoutPreviewV2(@RequestBody List<Long> ids) {
+
+        List<OrderDetl> orderDetlList = orderDetlService.selectBatchIds(ids);
+        //杩斿洖缁欏墠绔殑搴撲綅浠ュ強绔欑偣淇℃伅
+        List<LocDto> locDtoList = new ArrayList<>();
+
+        for (OrderDetl orderDetl : orderDetlList) {
+            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
+            Order order = orderService.selectByNo(orderDetl.getOrderNo());
+            DocType docType = docTypeService.selectById(order.getDocType());
+            if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
+                if (issued <= 0.0D) { continue; }
+                issued = locDetlService.queryStockAndSetLocDto1(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
+                if (issued > 0) {
+                    LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued,orderDetl.getProcessSts());
+                    locDto.setLack(Boolean.TRUE);
+                    locDtoList.add(locDto);
+                }
+            }else {
+                if (issued <= 0.0D) { continue; }
+
+                //浠庡钩搴撳鎵�
+                //issued = manLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
+
+                //鍏堟壘AGV鐨勫簱瀛橈紝濡傛灉杩斿洖鐨刬ssued澶т簬0锛屽垯鍘诲洓椤瑰簱鎵�
+                issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime(), AsrsConstants.ERCHANG);
+
+                //浠庡洓椤瑰簱鐨勫簱瀛橀噷闈㈡壘锛�
+                //issued = locDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime());
+
+                if (issued > 0) {
+                    LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued,orderDetl.getProcessSts());
+                    locDto.setLack(Boolean.TRUE);
+                    locDtoList.add(locDto);
+                }
+            }
+
+
+        }
+        return R.ok().add(locDtoList);
+
+    }
+
     @PostMapping("/out/pakout/auth")
     @ManagerAuth(memo = "璁㈠崟鍑哄簱")
     @Transactional
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
index d702e36..0f417f3 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -7,6 +7,7 @@
 import com.core.common.Cools;
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
+import com.zy.asrs.constant.AsrsConstants;
 import com.zy.asrs.entity.AgvLocDetl;
 import com.zy.asrs.entity.AgvLocMast;
 import com.zy.asrs.entity.AgvWrkDetl;
@@ -95,20 +96,22 @@
 
     }
 
-    public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq, String type2) {
+    public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq, String type) {
         //鏍规嵁鐗╂枡鍙峰拰鎵规鎵惧埌瀵瑰簲鐨勫簱瀛橈紝骞朵笖鎸夌収淇敼鏃堕棿鎺掑簭
         Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).orderBy("modi_time");
-//        if (type != null) {
-//            wrapper.notLike("loc_no", "F1");
-//        }
+        if (type != null) {
+            if (type.equals(AsrsConstants.ERCHANG)){
+                wrapper.notLike("loc_no", "F3");
+            }else {
+                wrapper.notLike("loc_no", "F1");
+            }
+        }
         wapperSetCondition(wrapper, "batch", batch);
         wapperSetCondition(wrapper, "three_code", csocode);
         //wapperSetCondition(wrapper, "dead_time", isoseq);
 
         if ("JG".equals(orderNo.substring(0, 2))) {
             wapperSetCondition(wrapper, "process_sts", "1");
-        } else {
-            wrapper.ne("process_sts", "1");
         }
 
         List<AgvLocDetl> agvLocDetls = this.selectList(wrapper);
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index ddb7f00..8ac6675 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -977,7 +977,8 @@
             } else {
                 orderDetl = orderDetls.get(0);
             }
-            orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
+            double v = orderDetl.getQty() - agvWrkDetl.getAnfme();
+            orderDetl.setQty(v < 0 ? 0 : v);
             if (!orderDetlService.updateById(orderDetl)) {
                 throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + orderDetl.getOrderNo() + orderDetl.getMatnr());
             }

--
Gitblit v1.9.1