From d360bba38d918e2f586d27c5aeb8b1174a612630 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期二, 07 五月 2024 13:04:38 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/PakoutServiceImpl.java |  126 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 123 insertions(+), 3 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 4438c18..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,12 +1,132 @@
 package com.zy.asrs.service.impl;
 
-import com.zy.asrs.mapper.PakoutMapper;
-import com.zy.asrs.entity.Pakout;
-import com.zy.asrs.service.PakoutService;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 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")
 public class PakoutServiceImpl extends ServiceImpl<PakoutMapper, Pakout> implements PakoutService {
+    @Autowired
+    private OrderService orderService;
 
+    @Autowired
+    private OrderDetlService orderDetlService;
+
+    @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){
+            if (orderDetl.getQty() > 0.0){
+                throw new RuntimeException("鎷h揣鍗曞凡鏈夊嚭搴撲换鍔★紝涓嶅彲鍒犻櫎!");
+            }
+            orderDetl.setWorkQty(0.0D);
+        }
+
+       if (!orderDetlService.updateBatchById(orderDetls)){
+           throw new RuntimeException("璁㈠崟鏄庣粏鎵归噺鏇存柊澶辫触");
+       }
+       order.setSettle(1L);
+       if (!orderService.updateById(order)){
+           throw new RuntimeException("璁㈠崟鏄庣粏鎵归噺鏇存柊澶辫触");
+       }
+
+       List<Pakout> pakouts = selectList(new EntityWrapper<Pakout>().eq("doc_num", docNum));
+       for (Pakout pakout: pakouts){
+
+           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