From d9aab59e3d4c8688eaf00c0d98f6926a218ff57f Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 28 四月 2025 15:28:11 +0800
Subject: [PATCH] 拣货单出库完成,但是库存没减,日志埋点

---
 src/main/java/com/zy/asrs/service/impl/OrderCheckServiceImpl.java |  189 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 129 insertions(+), 60 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OrderCheckServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderCheckServiceImpl.java
index 6ab4f2a..3c68fbb 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderCheckServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderCheckServiceImpl.java
@@ -3,22 +3,19 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.core.common.Cools;
-import com.core.common.DateUtils;
+import com.core.common.R;
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.OpenOrderPakinParam;
-import com.zy.asrs.entity.param.OpenOrderPakoutParam;
+import com.zy.asrs.entity.param.ExamineParam;
 import com.zy.asrs.mapper.OrderCheckMapper;
 import com.zy.asrs.mapper.OrderDetlMapper;
-import com.zy.asrs.mapper.OrderMapper;
 import com.zy.asrs.service.*;
-import com.zy.common.model.DetlDto;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 @Slf4j
@@ -40,6 +37,14 @@
 
     @Autowired
     private LocCheckService locCheckService;
+
+    @Autowired
+    private ManLocDetlService manLocDetlService;
+
+    @Autowired
+    private NodeService nodeService;
+    @Autowired
+    private OrderCheckService orderCheckService;
 
     @Override
     public OrderCheck selectByNo(String orderNo) {
@@ -76,8 +81,9 @@
         }
         if (complete) {
             for (OrderDetl orderDetl : orderDetls) {
-                //鐢熸垚鍗曟嵁鍜屽叆搴撻�氱煡妗f椂锛岀粰batch涓虹┖鐨勬槑缁嗚祴浜嗕竴涓� =""锛� 鐜板湪鏀逛负null锛屽洖浼犵敤
-                if (orderDetl.getBatch().equals("")){
+                if (Cools.isEmpty(orderDetl.getBatch())){
+                    orderDetlService.updateById(orderDetl);
+                }else if (orderDetl.getBatch().equals("")){//鐢熸垚鍗曟嵁鍜屽叆搴撻�氱煡妗f椂锛岀粰batch涓虹┖鐨勬槑缁嗚祴浜嗕竴涓� =""锛� 鐜板湪鏀逛负null锛屽洖浼犵敤
                     orderDetl.setBatch(null);
                     orderDetlService.updateById(orderDetl);
                 }
@@ -89,55 +95,55 @@
 
     }
 
-    @Override
-    public boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls) {
-        try {
-            List<DetlDto> detlDtos = new ArrayList<>();
-            wrkDetls.forEach(wrkDetl -> {
-                detlDtos.add(new DetlDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme()));
-            });
-            String orderNo = "HAND" + snowflakeIdWorker.nextId();
-            if (pakin) {
-                // 鐢熸垚鍏ュ簱鍗曟嵁
-                OpenOrderPakinParam openParam = new OpenOrderPakinParam();
-                openParam.setOrderNo(orderNo);
-                openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime()));
-                openParam.setOrderType("鎵嬪姩鍏ュ簱鍗�");
-                openParam.setOrderDetails(detlDtos);
-                openService.pakinOrderCreate(openParam);
-            } else {
-                // 鐢熸垚鍑哄簱鍗曟嵁
-                OpenOrderPakoutParam openParam = new OpenOrderPakoutParam();
-                openParam.setOrderNo(orderNo);
-                openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime()));
-                openParam.setOrderType("鎵嬪姩鍑哄簱鍗�");
-                openParam.setOrderDetails(detlDtos);
-                openService.pakoutOrderCreate(openParam);
-            }
-
-            OrderCheck order = this.selectByNo(orderNo);
-            if (null == order) {
-                throw new CoolException("鐢熸垚鍗曟嵁澶辫触");
-            }
-            if (!this.updateSettle(order.getId(), 4L, null)) {
-                throw new CoolException("淇敼鍗曟嵁鐘舵�佸け璐�");
-            }
-            for (DetlDto detlDto : detlDtos) {
-                // 淇敼璁㈠崟鏄庣粏鏁伴噺
-                if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
-                    throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
-                }
-                // 淇敼璁㈠崟浣滀笟鏁伴噺
-                if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
-                    throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
-                }
-            }
-        } catch (Exception e) {
-            log.error("saveHandlerOrder===>>", e);
-            return false;
-        }
-        return true;
-    }
+//    @Override
+//    public boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls) {
+//        try {
+//            List<DetlDto> detlDtos = new ArrayList<>();
+//            wrkDetls.forEach(wrkDetl -> {
+//                detlDtos.add(new DetlDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme()));
+//            });
+//            String orderNo = "HAND" + snowflakeIdWorker.nextId();
+//            if (pakin) {
+//                // 鐢熸垚鍏ュ簱鍗曟嵁
+//                OpenOrderPakinParam openParam = new OpenOrderPakinParam();
+//                openParam.setOrderNo(orderNo);
+//                openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime()));
+//                openParam.setOrderType("鎵嬪姩鍏ュ簱鍗�");
+//                openParam.setOrderDetails(detlDtos);
+//                openService.pakinOrderCreate(openParam);
+//            } else {
+//                // 鐢熸垚鍑哄簱鍗曟嵁
+//                OpenOrderPakoutParam openParam = new OpenOrderPakoutParam();
+//                openParam.setOrderNo(orderNo);
+//                openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime()));
+//                openParam.setOrderType("鎵嬪姩鍑哄簱鍗�");
+//                openParam.setOrderDetails(detlDtos);
+//                openService.pakoutOrderCreate(openParam);
+//            }
+//
+//            OrderCheck order = this.selectByNo(orderNo);
+//            if (null == order) {
+//                throw new CoolException("鐢熸垚鍗曟嵁澶辫触");
+//            }
+//            if (!this.updateSettle(order.getId(), 4L, null)) {
+//                throw new CoolException("淇敼鍗曟嵁鐘舵�佸け璐�");
+//            }
+//            for (DetlDto detlDto : detlDtos) {
+//                // 淇敼璁㈠崟鏄庣粏鏁伴噺
+//                if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
+//                    throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
+//                }
+//                // 淇敼璁㈠崟浣滀笟鏁伴噺
+//                if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
+//                    throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
+//                }
+//            }
+//        } catch (Exception e) {
+//            log.error("saveHandlerOrder===>>", e);
+//            return false;
+//        }
+//        return true;
+//    }
 
 
 
@@ -166,9 +172,8 @@
     }
 
     @Override
-    public List<OrderCheck> selectToBeHistoryOrder(boolean isERP) {
-        int settle = isERP ? 6 : 4;
-        return this.baseMapper.selectToBeHistoryOrder(settle);
+    public List<OrderCheck> selectToBeHistoryOrder() {
+        return this.baseMapper.selectToBeHistoryOrder();
     }
 
     @Override
@@ -179,5 +184,69 @@
         locCheckService.delete(new EntityWrapper<LocCheck>().eq("order_no", orderNo));
     }
 
+    @Override
+    public R examine(ExamineParam param) {
+     for (ExamineParam.data list:param.getList()){
+         EntityWrapper<ManLocDetl> wrapper = new EntityWrapper<>();
+         wrapper.eq("matnr", list.getMatnr())
+                 .eq("loc_no", list.getLocNo())
+                 .eq("batch", list.getBatch());
+
+         ManLocDetl manLocDetl = manLocDetlService.selectOne(wrapper);
+         if (manLocDetl == null){
+             Date now = new Date();
+
+             Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", list.getLocNo()));
+
+             ManLocDetl manLocDetl1 = new ManLocDetl();
+
+             manLocDetl1.setLocNo(list.getLocNo());
+             manLocDetl1.setNodeId(node.getId());
+             manLocDetl1.setAnfme(list.getRealAnfme());
+             manLocDetl1.setMatnr(list.getMatnr());
+             manLocDetl1.setMaktx(list.getMaktx());
+             manLocDetl1.setStatus(1);
+             manLocDetl1.setCreateTime(now);
+             manLocDetl1.setModiTime(now);
+             manLocDetl1.setOrderNo(list.getOrderNo());
+             manLocDetl1.setStockFreeze(1);
+             manLocDetl1.setBatch(list.getBatch());
+
+             if (!manLocDetlService.insert(manLocDetl1)){
+                 return R.error("鎻掑叆鏁版嵁澶辫触");
+             }
+
+         }else {
+             if (list.getRealAnfme() == 0){
+                 if (!manLocDetlService.delete(wrapper)){
+                     return R.error("鍒犻櫎鏁版嵁澶辫触锛�");
+                 }
+             }else {
+                 manLocDetl.setAnfme(list.getRealAnfme());
+                 if (!manLocDetlService.update(manLocDetl,wrapper)){
+                     return R.error("鏇存柊搴撳瓨鏁伴噺澶辫触锛�");
+                 }
+             }
+         }
+
+         EntityWrapper<LocCheck> wrapper2 = new EntityWrapper<>();
+         wrapper2.eq("order_no", list.getOrderNo())
+                 .eq("matnr", list.getMatnr())
+                 .eq("loc_no", list.getLocNo());
+         LocCheck checkDetl = locCheckService.selectOne(wrapper2);
+         checkDetl.setType(2);
+         if (!locCheckService.update(checkDetl,wrapper2)){
+             return R.error("鏇存柊鐩樼偣鏄庣粏澶辫触锛�");
+         }
+     }
+        OrderCheck orderCheck = orderCheckService.selectOne(new EntityWrapper<OrderCheck>().eq("order_no", param.getOrderNo()));
+        orderCheck.setSettle(4L);
+        if (!orderCheckService.update(orderCheck,new EntityWrapper<OrderCheck>().eq("order_no", param.getOrderNo()))){
+            return R.error("鏇存柊鐩樼偣鍗曠姸鎬佸け璐ワ紒");
+        }
+
+        return R.ok();
+}
+
 }
 

--
Gitblit v1.9.1