From 4e32eae9008b56a346f52710d86241890a0ae1a7 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 27 十一月 2025 19:59:00 +0800
Subject: [PATCH] #库存调整

---
 src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java |   81 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 81 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java
index 778076d..28004d3 100644
--- a/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/CheckOrderServiceImpl.java
@@ -1,15 +1,19 @@
 package com.zy.asrs.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
 import com.core.common.Cools;
+import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.CheckTaskListParam;
 import com.zy.asrs.mapper.CheckOrderMapper;
 import com.zy.asrs.service.*;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.zy.common.model.LocDto;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -29,6 +33,12 @@
 
     @Autowired
     private StaDescService staDescService;
+
+    @Autowired
+    private WrkMastService wrkMastService;
+
+    @Autowired
+    private WrkDetlService wrkDetlService;
 
     @Override
     public void remove(Long orderId) {
@@ -51,9 +61,15 @@
         }
         List<LocDto> locDtos = new ArrayList<>();
         for (CheckOrderDetl checkOrderDetl : checkOrderDetls) {
+            if (!checkOrderDetl.getStatus().equals(1)){
+                continue;
+            }
             LocDto locDto = new LocDto(checkOrderDetl.getLocNo(), checkOrderDetl.getMatnr(), checkOrderDetl.getMaktx(), checkOrderDetl.getBatch(), checkOrderDetl.getOrderNo(),
                     checkOrderDetl.getAnfme().doubleValue());
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", checkOrderDetl.getLocNo()));
+            if (!locMast.getLocSts().equals("F")){
+                continue;
+            }
             LocDetl locDetl = locDetlService.selectById(checkOrderDetl.getLocDetlId());
             locDto.setFrozen(locDetl.getFrozen());
             locDto.setFrozenLoc(locMast.getFrozen());
@@ -67,4 +83,69 @@
         return locDtos;
 
     }
+
+    @Override
+    public List<CheckOrderDetl> getTaskList(String barcode) {
+        List<CheckOrderDetl> checkOrderDetls = new ArrayList<>();
+
+        WrkMast wrkMast = wrkMastService.selectByBarcode(barcode);
+        if (Cools.isEmpty(wrkMast)) {
+            throw new CoolException("鏈壘鍒颁换鍔�");
+        }
+
+        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+        if (Cools.isEmpty(wrkDetls)) {
+            throw new CoolException("鏈壘鍒颁换鍔℃槑缁�");
+        }
+
+        for (WrkDetl wrkDetl : wrkDetls) {
+            if(Cools.isEmpty(wrkDetl.getOrderNo())){
+                throw new CoolException("鏄庣粏鏁版嵁鏈夎锛屾棤璁㈠崟鍙锋暟鎹�");
+            }
+            CheckOrderDetl checkOrderDetl = checkOrderDetlService.selectById(wrkDetl.getOrderId());
+            if(Cools.isEmpty(checkOrderDetl)){
+                throw new CoolException("鏄庣粏鏁版嵁鏈夎锛屾湭鎵惧埌鐩樼偣鍗曟暟鎹�");
+            }
+            if (checkOrderDetl.getStatus().equals(2)){
+                checkOrderDetls.add(checkOrderDetl);
+            }
+
+        }
+        if (Cools.isEmpty(checkOrderDetls)) {
+            throw new CoolException("璇ュ鍣ㄥ凡瀹屾垚鐩樼偣");
+        }
+
+        return checkOrderDetls;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R pdaComplete(CheckTaskListParam checkTaskListParam) {
+
+        WrkMast wrkMast = wrkMastService.selectByBarcode(checkTaskListParam.getBarcode());
+        if (Cools.isEmpty(wrkMast)) {
+            throw new CoolException("鏈壘鍒颁换鍔�");
+        }
+
+        for (CheckOrderDetl checkOrderDetl: checkTaskListParam.getCheckOrderDetlList()){
+            checkOrderDetl.setDiffQty(checkOrderDetl.getWorkQty().subtract(checkOrderDetl.getAnfme()));
+            checkOrderDetl.setStatus(3);
+            if (!checkOrderDetlService.updateById(checkOrderDetl)){
+                throw new CoolException("鏇存柊鐩樼偣鐘舵�佸け璐�");
+            }
+        }
+        CheckOrder checkOrder = this.selectOne(new EntityWrapper<CheckOrder>().eq("order_no", checkTaskListParam.getCheckOrderDetlList().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(3));
+        if (is){
+            checkOrder.setSettle(4L);
+            if (!this.updateById(checkOrder)){
+                throw new CoolException("鏇存柊鐩樼偣涓诲崟鐘舵�佸け璐�");
+            }
+
+        }
+
+
+        return R.ok();
+    }
 }

--
Gitblit v1.9.1