From 5315fe106471728406cbd521576c3fc5d9d28791 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期五, 21 十一月 2025 17:01:18 +0800
Subject: [PATCH] #盘点

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  141 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 128 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 86a7212..5e26534 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -18,6 +18,7 @@
 import com.zy.asrs.utils.OrderInAndOutUtil;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.*;
+import com.zy.common.model.enumUtils.OrderEnumVo;
 import com.zy.common.model.enums.IoWorkType;
 import com.zy.common.model.enums.WorkNoType;
 import com.zy.common.properties.SlaveProperties;
@@ -68,12 +69,6 @@
     @Autowired
     private WrkDetlLogService wrkDetlLogService;
     @Autowired
-    private SnowflakeIdWorker snowflakeIdWorker;
-    @Autowired
-    private OrderService orderService;
-    @Autowired
-    private OrderDetlService orderDetlService;
-    @Autowired
     private WcsController wcsController;
     @Autowired
     private RowLastnoService rowLastnoService;
@@ -91,8 +86,11 @@
     @Resource
     private LocMastMapper locMastMapper;
 
-    @Resource
-    private OrderPakoutService orderPakOutService;
+    @Autowired
+    private CheckOrderService checkOrderService;
+
+    @Autowired
+    private CheckOrderDetlService checkOrderDetlService;
 
     @Override
     @Transactional
@@ -390,7 +388,7 @@
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId) {
         Date now = new Date();
         List<LocDto> locDtos = taskDto.getLocDtos();
@@ -403,8 +401,9 @@
         LocMast locMast = locMastService.selectById(taskDto.getLocNo());
         // 鍒ゆ柇鏄惁鏄洏鐐瑰崟
         String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
-        OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
-        int ioType = orderPakout.getDocType() == 8 ? 107 : (taskDto.isAll() ? 101 : 103);
+//        OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
+        CheckOrder checkOrder = checkOrderService.selectOne(new EntityWrapper<CheckOrder>().eq("order_no", orderNo));
+        int ioType = checkOrder.getDocType() == 8 ? 107 : (taskDto.isAll() ? 101 : 103);
         StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
@@ -470,6 +469,98 @@
                     orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3()
                     , locDto.getAnfme());
             OrderInAndOutUtil.updateOrder(Boolean.FALSE, orderDetl.getOrderId(), 2L, userId);
+        }
+        // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+        locMast = locMastService.selectById(taskDto.getLocNo());
+        if (locMast.getLocSts().equals("F")) {
+            locMast.setLocSts(ioType == 101 ? "R" : "P");
+            locMast.setModiUser(userId);
+            locMast.setModiTime(now);
+            if (!locMastService.updateById(locMast)) {
+                throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + taskDto.getLocNo());
+            }
+        } else {
+            throw new CoolException(taskDto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void checkStockOut(BasDevp staNo, TaskDto taskDto, Long userId) {
+        Date now = new Date();
+        List<LocDto> locDtos = taskDto.getLocDtos();
+        for (LocDto locDto : locDtos) {
+            if (!taskDto.getLocNo().equals(locDto.getLocNo()) && !taskDto.getStaNo().equals(locDto.getStaNo())) {
+                throw new CoolException("璁㈠崟鍑哄簱寮傚父锛岃鑱旂郴绠$悊鍛�");
+            }
+        }
+        // 鑾峰彇搴撲綅
+        LocMast locMast = locMastService.selectById(taskDto.getLocNo());
+        int ioType = 107;
+        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(now);
+        wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+        wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
+        wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+        wrkMast.setCrnNo(locMast.getCrnNo());
+        wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
+        wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
+        wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setLinkMis("N");
+        wrkMast.setBarcode(locMast.getBarcode());
+        wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(now);
+        if (!wrkMastService.insert(wrkMast)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + taskDto.getLocNo());
+        }
+        // 鐢熸垚宸ヤ綔妗f槑缁�
+        for (LocDto locDto : taskDto.getLocDtos()) {
+            if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) {
+                continue;
+            }
+
+            List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>()
+                    .eq("loc_no", locDto.getLocNo())
+                    .eq("matnr", locDto.getMatnr())
+                    .eq("batch", locDto.getBatch())
+                    .eq("order_no", locDto.getOrderNo())
+            );
+
+            if (checkOrderDetls.size() > 1) {
+                throw new CoolException("鏁版嵁澶т簬1,璇锋鏌ユ暟鎹�");
+            }
+
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(checkOrderDetls.get(0));
+            wrkDetl.setZpallet(wrkMast.getBarcode());
+            wrkDetl.setIoTime(now);
+            wrkDetl.setWrkNo(workNo);
+            wrkDetl.setBatch(locDto.getBatch());
+            wrkDetl.setOrderNo(locDto.getOrderNo());
+            wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setAppeUser(userId);
+            wrkDetl.setModiTime(now);
+            wrkDetl.setModiUser(userId);
+            if (!wrkDetlService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+            }
+            // 淇敼璁㈠崟鏄庣粏
+            checkOrderDetls.get(0).setStatus(2);
+            if (!checkOrderDetlService.updateById(checkOrderDetls.get(0))){
+                throw new CoolException("淇濆瓨璁㈠崟鏄庣粏澶辫触");
+            }
         }
         // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
         locMast = locMastService.selectById(taskDto.getLocNo());
@@ -1065,10 +1156,10 @@
 
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void cancelWrkMast(String workNo, Long userId) {
         Date now = new Date();
-        WrkMast wrkMast = wrkMastService.selectById(workNo);
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",workNo));
         if (Cools.isEmpty(wrkMast)) {
             throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
         }
@@ -1172,6 +1263,30 @@
 
         }
 
+        if (wrkMast.getIoType() == 107) {
+            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+            if (!Cools.isEmpty(wrkDetls.get(0).getOrderNo())){
+
+                for (WrkDetl wrkDetl : wrkDetls) {
+                    CheckOrderDetl checkOrderDetl = checkOrderDetlService.selectOne(new EntityWrapper<CheckOrderDetl>()
+                            .eq("loc_no", wrkMast.getSourceLocNo())
+                            .eq("matnr", wrkDetl.getMatnr())
+                            .eq("batch", wrkDetl.getBatch())
+                            .eq("order_no", wrkDetl.getOrderNo())
+                    );
+                    checkOrderDetl.setStatus(1);
+                    checkOrderDetlService.updateById(checkOrderDetl);
+                }
+                CheckOrder checkOrder = checkOrderService.selectOne(new EntityWrapper<CheckOrder>().eq("order_no", wrkDetls.get(0).getOrderNo()));
+                List<CheckOrderDetl> checkOrderDetls = checkOrderDetlService.selectList(new EntityWrapper<CheckOrderDetl>().eq("order_id", checkOrder.getId()));
+                boolean is = checkOrderDetls.stream().allMatch(item -> item.getStatus().equals(1));
+                checkOrder.setSettle(is?1L:12L);
+                checkOrderService.updateById(checkOrder);
+            }
+
+
+        }
+
 //        // 璁㈠崟鍏宠仈
 //        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
 //        for (WrkDetl wrkDetl : wrkDetls) {

--
Gitblit v1.9.1