From 4df80cad47f22a930435835e7f7135bd60672cd8 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期四, 26 九月 2024 15:38:43 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java |   95 ++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 80 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java
index 462f199..09b1651 100644
--- a/src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java
@@ -1,17 +1,18 @@
 package com.zy.asrs.service.impl;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.zy.asrs.entity.ManLocDetl;
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.entity.OrderDetl;
-import com.zy.asrs.mapper.PakoutMapper;
-import com.zy.asrs.entity.Pakout;
-import com.zy.asrs.service.*;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.GlobleParameter;
+import com.zy.asrs.mapper.PakoutMapper;
+import com.zy.asrs.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
 
 @Service("pakoutService")
@@ -25,9 +26,18 @@
     @Autowired
     private ManLocDetlService manLocDetlService;
 
+    @Autowired
+    private PlaService plaService;
+
+    @Autowired
+    private PlaQtyService plaQtyService;
+
     @Override
     public void deletePakout(String docNum) {
         Order order = orderService.selectByNo(docNum);
+        if (Cools.isEmpty(order)){
+            throw new RuntimeException("鏈煡璇㈠埌璁㈠崟妗f");
+        }
         List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", docNum));
 
         for (OrderDetl orderDetl: orderDetls){
@@ -45,23 +55,78 @@
            throw new RuntimeException("璁㈠崟鏄庣粏鎵归噺鏇存柊澶辫触");
        }
 
-        List<Pakout> pakouts = selectList(new EntityWrapper<Pakout>().eq("doc_num", docNum));
+       List<Pakout> pakouts = selectList(new EntityWrapper<Pakout>().eq("doc_num", docNum));
        for (Pakout pakout: pakouts){
-           ManLocDetl manLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>()
-                   .eq("loc_no", pakout.getLocNo())
-                   .eq("matnr", pakout.getMatnr()));
-           manLocDetl.setStatus(1);
-           if (!manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>()
-                   .eq("loc_no", pakout.getLocNo())
-                   .eq("matnr", pakout.getMatnr()))){
-               throw new RuntimeException("搴撳瓨鐘舵�佹洿鏂板け璐�");
+
+           Pla pla = plaService.selectByBatchAndPackageNo(pakout.getBatch(), Integer.parseInt(pakout.getBarcode()), pakout.getMaktx());
+           if(!Cools.isEmpty(pla)){
+               pla.setQtyAnfme(pla.getQtyAnfme() - pakout.getAnfme());
+               pla.setModifyTime(new Date());
+               if(pla.getQtyAnfme() <= 0){
+                   pla.setStatus(GlobleParameter.PLA_STATUS_1);
+               }
+               plaService.updateById(pla);
+               plaQtyService.deleteById(pakout.getNodeId());
+
+           }else {
+               ManLocDetl manLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>()
+                       .eq("loc_no", pakout.getLocNo())
+                       .eq("matnr", pakout.getMatnr()));
+               manLocDetl.setStatus(1);
+               if (!manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>()
+                       .eq("loc_no", pakout.getLocNo())
+                       .eq("matnr", pakout.getMatnr()))){
+                   throw new RuntimeException("搴撳瓨鐘舵�佹洿鏂板け璐�");
+               }
            }
        }
 
         if (!delete(new EntityWrapper<Pakout>().eq("doc_num",docNum))){
           throw new RuntimeException("鎷h揣鍗曞垹闄ゅけ璐�");
       }
+    }
 
+    @Override
+    @Transactional
+    public void deletePakoutByWrkNo(String wrkNo) {
+        Pakout pakout = this.selectById(wrkNo);
+        //鏇存柊鍗曟嵁淇℃伅
+        if(pakout.getCount() > 0){
+            throw new CoolException("璇ユ潯鎷h揣淇℃伅宸插畬鎴愶紝鏃犳硶鍒犻櫎");
+        }
+        OrderDetl orderDetl = orderDetlService.selectById(pakout.getDocId());
+        orderDetl.setWorkQty(orderDetl.getWorkQty() - pakout.getAnfme());
+        orderDetl.setUpdateTime(new Date());
+        orderDetlService.updateById(orderDetl);
+
+        Order order = orderService.selectByNo(pakout.getDocNum());
+        List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
+        //鍒ゆ柇鍗曟嵁鏄惁鏈夋鍦ㄤ綔涓氱殑浠诲姟锛宼rue涓烘病鏈�
+        boolean flag = true;
+        for (OrderDetl od : orderDetlList){
+            if(od.getWorkQty() + od.getQty() > 0){
+                flag = false;
+            }
+        }
+
+        if(flag){
+            order.setSettle(1L);
+            order.setUpdateTime(new Date());
+            orderService.updateById(order);
+        }
+
+        //鏇存柊pla淇℃伅
+        Pla pla = plaService.selectByBatchAndPackageNo(pakout.getBatch(), Integer.parseInt(pakout.getBarcode()),pakout.getMaktx());
+        pla.setQtyAnfme(pla.getQtyAnfme() - pakout.getAnfme());
+        pla.setStatus(GlobleParameter.PLA_STATUS_1);
+        pla.setModifyTime(new Date());
+        plaService.updateById(pla);
+
+        //鏇存柊plaQty淇℃伅
+        plaQtyService.deleteById(pakout.getNodeId());
+
+        //鍒犻櫎鎷h揣鍗�
+        this.deleteById(wrkNo);
 
     }
 }

--
Gitblit v1.9.1