From e84d4700e32dba450aa4d239779fc39f38ae4afa Mon Sep 17 00:00:00 2001
From: admin <841110950@qq.com>
Date: 星期三, 01 九月 2021 17:22:32 +0800
Subject: [PATCH] 1.0.8

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   89 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 88 insertions(+), 1 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 a551d93..b67cfb9 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -17,10 +17,16 @@
 import com.zy.common.model.OutLocDto;
 import com.zy.common.model.StartupDto;
 import com.zy.common.service.CommonService;
+import com.zy.ints.entity.IoComplete;
+import com.zy.ints.entity.WaitMatchk;
+import com.zy.ints.entity.WaitMatout;
+import com.zy.ints.service.IoCompleteService;
+import com.zy.ints.service.WaitMatchkService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -30,6 +36,7 @@
  */
 @Service
 public class WorkServiceImpl implements WorkService {
+    static int i =1;
 
     // 宸ヤ綔鍙风敓鎴愯鍒欓粯璁ょ被鍨�
     private static final int DEFAULT_WORK_NO_TYPE = 0;
@@ -58,6 +65,10 @@
     private WrkMastLogService wrkMastLogService;
     @Autowired
     private WrkDetlLogService wrkDetlLogService;
+    @Autowired
+    private WaitMatchkService waitMatchkService;
+    @Autowired
+    private IoCompleteService ioCompleteService;
 
     @Override
     @Transactional
@@ -155,6 +166,7 @@
     @Override
     @Transactional
     public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Integer ioType, Long userId) {
+
         // 鍚堝苟鍚岀被椤�
         Set<String> locNos = new HashSet<>();
         locDetlDtos.forEach(dto -> locNos.add(dto.getLocDetl().getLocNo()));
@@ -166,13 +178,47 @@
                 LocDetlDto dto = iterator.next();
                 if (locNo.equals(dto.getLocDetl().getLocNo())) {
                     list.add(dto);
-                    iterator.remove();
+//                    iterator.remove();
                 }
             }
             dtos.add(new OutLocDto(locNo, list));
         }
+        //鐢熸垚鐩樼偣鏂囨。
+        for (LocDetlDto locDetlDto : locDetlDtos) {
+
+            String id="";
+            //鑾峰彇褰撳墠鏃堕棿鎴�
+            SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
+            String temp = sf.format(new Date());
+            //鑾峰彇6浣嶉殢鏈烘暟
+            int random=(int) ((Math.random()+1)*1000);
+            id=temp+random;
+
+//            String replace = UUID.randomUUID().toString().replace("-", "");
+            LocDetl locDetl = locDetlDto.getLocDetl();
+            //鐢熸垚鐩樼偣妗�
+            WaitMatchk waitMatchk = new WaitMatchk();
+            waitMatchk.setBillNo(id);//璁㈠崟缂栧彿
+            waitMatchk.setLocNo(locDetl.getLocNo());//搴撲綅鍙�
+            waitMatchk.setStockQty(locDetl.getQty());
+            waitMatchk.setMatNo(locDetl.getMatNo());//浜у搧缂栧彿
+            waitMatchk.setMatName(locDetl.getMatName());//閾插钩鍚嶇О
+            waitMatchk.setSeqNo(i);
+            waitMatchk.setIoTime(new Date());
+            waitMatchk.setZpallet(locDetl.getZpallet());
+            waitMatchk.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
+            waitMatchk.setAppeTime(new Date());
+            waitMatchk.setModiUser(userId);
+            waitMatchk.setModiTime(new Date());
+            if (!waitMatchkService.insert(waitMatchk)){
+                throw new CoolException("淇濆瓨鐩樼偣妗eけ璐�");
+            }
+            i++;
+        }
+
         // 鐢熸垚宸ヤ綔妗�
         for (OutLocDto dto : dtos) {
+
             // 鍒ゆ柇鍏ュ嚭搴撶被鍨嬶細101.鍏ㄦ澘鍑哄簱 or 103.鎷f枡鍑哄簱
             if (ioType == null) {
                 ioType = dto.isAll() ? 101 : 103;
@@ -190,6 +236,8 @@
             }
             // 鐢熸垚宸ヤ綔鍙�
             int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+
+
             // 鐢熸垚宸ヤ綔妗�
             WrkMast wrkMast = new WrkMast();
             wrkMast.setWrkNo(workNo);
@@ -485,6 +533,32 @@
         } else if (wrkMast.getWrkSts() > 10) {
             wrkMast.setWrkSts(14L);
         }
+        //鏌ヨ鏄庣粏
+        List<WrkDetl> detls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
+        int i=1;
+        for (WrkDetl detl : detls) {
+            //鐢熸垚鍥炴姤妗�
+            IoComplete ioComplete = new IoComplete();
+            ioComplete.setBillNo(detl.getBillNo());
+            ioComplete.setMatNo(detl.getMatNo());
+            ioComplete.setMatName(detl.getMatName());
+            ioComplete.setSeqNo(i);
+            ioComplete.setQty(detl.getQty());
+            ioComplete.setZpallet(detl.getZpallet());
+            ioComplete.setAppeUser(userId);
+            if (wrkMast.getWrkSts()==4L){
+                ioComplete.setTaskType(1);
+                ioComplete.setLocNo(wrkMast.getLocNo());
+            }else if (wrkMast.getWrkSts()==14L){
+                ioComplete.setTaskType(2);
+                ioComplete.setLocNo(wrkMast.getSourceLocNo());
+            }
+            ioComplete.setAppeTime(new Date());
+            if (!ioCompleteService.insert(ioComplete)){
+                throw new CoolException("鐢熸垚鍥炴姤妗eけ璐�");
+            }
+            i++;
+        }
         // 瀹屾垚鎿嶄綔浜哄憳璁板綍
         wrkMast.setManuType("鎵嬪姩瀹屾垚");
         Date now = new Date();
@@ -500,10 +574,22 @@
     @Override
     @Transactional
     public void adjustLocDetl(LocDetlAdjustParam param, Long userId) {
+        //鏍规嵁搴撲綅鍙锋壘瀵诲簱浣�
         LocMast locMast = locMastService.selectById(param.getLocNo());
+        //鍒ゆ柇
         if (Cools.isEmpty(locMast)) {
             throw new CoolException("搴撲綅涓嶅瓨鍦�");
         }
+        //鏌ヨ搴撲綅鐘舵��
+        if (locMast.getLocSts().equals("O")){
+            //鏇存柊搴撲綅鐘舵��
+            locMast.setLocSts("F");
+//            boolean b = locMastService.updateById(locMast);
+            if (!locMastService.updateById(locMast)){
+                throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+            }
+        }
+
         for (LocDetlAdjustParam.LocDetlAdjust adjust : param.getList()) {
             if (Cools.isEmpty(adjust.getMatNo())) {
                 throw new CoolException(BaseRes.PARAM);
@@ -526,6 +612,7 @@
                 locDetl.setModiTime(new Date());
                 locDetl.setAppeUser(userId);
                 locDetl.setAppeTime(new Date());
+                locDetl.setZpallet(param.getZpallet());//鎵樼洏鍙�
                 if (!locDetlService.insert(locDetl)) {
                     throw new CoolException("淇濆瓨搴撳瓨鏄庣粏澶辫触");
                 }

--
Gitblit v1.9.1