From 4cef4cd611b226e2d62de9859049b180b1a23f58 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 15 六月 2020 11:18:01 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  184 ++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 171 insertions(+), 13 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 9f25e0a..9cb39a0 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,12 +1,12 @@
 package com.zy.asrs.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
-import com.zy.asrs.entity.BasDevp;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.MatCodeCountDto;
-import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.EmptyPlateOutParam;
 import com.zy.asrs.entity.param.FullStoreParam;
 import com.zy.asrs.service.*;
 import com.zy.common.model.StartupDto;
@@ -35,6 +35,8 @@
     private WrkDetlService wrkDetlService;
     @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private StaDescService staDescService;
 
     @Override
     @Transactional
@@ -47,15 +49,8 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo());
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(0);
-        if (workNo == 0) {
-            throw new CoolException("鐢熸垚宸ヤ綔鍙峰け璐ワ紝璇疯仈绯荤鐞嗗憳");
-        } else {
-            if (wrkMastService.selectById(workNo)!=null) {
-                throw new CoolException("鐢熸垚宸ヤ綔鍙�" + workNo + "鍦ㄥ伐浣滄。涓凡瀛樺湪");
-            }
-        }
         // 妫�绱㈠簱浣�
-        StartupDto dto = commonService.getLocNo(1, param.getDevpNo());
+        StartupDto dto = commonService.getLocNo(1, 1, param.getDevpNo());
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
@@ -95,7 +90,7 @@
         if (!basDevpService.updateById(sourceStaNo)){
             throw new CoolException("鏇存柊婧愮珯澶辫触");
         }
-        // 鏇存柊鐩爣搴撲綅淇℃伅
+        // 鏇存柊鐩爣搴撲綅鐘舵��
         LocMast locMast = locMastService.selectById(dto.getLocNo());
         if (locMast.getLocType().equals("O")){
             locMast.setLocType("S"); // S.鍏ュ簱棰勭害
@@ -109,4 +104,167 @@
         }
     }
 
+    @Override
+    public void emptyPlateIn(Integer devpNo, Long userId) {
+        // 婧愮珯鐐圭姸鎬佹娴�
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo);
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = commonService.getWorkNo(0);
+        // 妫�绱㈠簱浣�
+        StartupDto dto = commonService.getLocNo(1, 10, devpNo);
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(new Date());
+        wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+        wrkMast.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱
+        wrkMast.setIoPri(10D); // 浼樺厛绾э細10
+        wrkMast.setCrnNo(dto.getCrnNo());
+        wrkMast.setSourceStaNo(dto.getSourceStaNo());
+        wrkMast.setStaNo(dto.getStaNo());
+        wrkMast.setLocNo(dto.getLocNo());
+        wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("Y"); // 绌烘澘
+        wrkMast.setLinkMis("N");
+        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+        // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeUser(userId);
+        wrkMast.setAppeTime(new Date());
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(new Date());
+        boolean res = wrkMastService.insert(wrkMast);
+        if (!res) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+        // 鏇存柊婧愮珯鐐逛俊鎭�
+        sourceStaNo.setWrkNo(workNo);
+        sourceStaNo.setModiUser(userId);
+        sourceStaNo.setModiTime(new Date());
+        if (!basDevpService.updateById(sourceStaNo)){
+            throw new CoolException("鏇存柊婧愮珯澶辫触");
+        }
+        // 鏇存柊鐩爣搴撲綅鐘舵��
+        LocMast locMast = locMastService.selectById(dto.getLocNo());
+        if (locMast.getLocType().equals("O")){
+            locMast.setLocType("S"); // S.鍏ュ簱棰勭害
+            locMast.setModiUser(userId);
+            locMast.setModiTime(new Date());
+            if (!locMastService.updateById(locMast)){
+                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+            }
+        } else {
+            throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+        }
+    }
+
+    @Override
+    @Transactional
+    public void emptyPlateOut(EmptyPlateOutParam param, Long userId) {
+        if (Cools.isEmpty(param.getOutSite())) {
+            throw new CoolException("绔欑偣涓嶅瓨鍦�");
+        }
+        for (String locNo : param.getLocNos()) {
+            // 鑾峰彇宸ヤ綔鍙�
+            int workNo = commonService.getWorkNo(0);
+            // 鑾峰彇搴撲綅
+            LocMast locMast = locMastService.selectById(locNo);
+            if (Cools.isEmpty(locMast)) {
+                throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�");
+            }
+            // 鑾峰彇婧愮珯
+            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                    .eq("type_no", 110)
+                    .eq("stn_no", param.getOutSite())
+                    .eq("crn_no", locMast.getCrnNo());
+            StaDesc staDesc = staDescService.selectOne(wrapper);
+            Integer sourceStaNo = staDesc.getCrnStn();
+            if (Cools.isEmpty(sourceStaNo)) {
+                throw new CoolException("妫�绱㈡簮绔欏け璐�");
+            }
+            // 淇濆瓨宸ヤ綔妗�
+            WrkMast wrkMast = new WrkMast();
+            wrkMast.setWrkNo(workNo);
+            wrkMast.setIoTime(new Date());
+            wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+            wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
+            wrkMast.setIoPri(10D);
+            wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+            wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔�
+            wrkMast.setCrnNo(locMast.getCrnNo());
+            wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
+            wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+            wrkMast.setPicking("N"); // 鎷f枡
+            wrkMast.setExitMk("N"); // 閫�鍑�
+            wrkMast.setEmptyMk("Y"); // 绌烘澘
+            wrkMast.setLinkMis("N");
+            wrkMast.setAppeUser(userId);
+            wrkMast.setAppeTime(new Date());
+            wrkMast.setModiUser(userId);
+            wrkMast.setModiTime(new Date());
+            boolean res = wrkMastService.insert(wrkMast);
+            if (!res) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+            }
+            // 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
+            if (locMast.getLocType().equals("D")){
+                locMast.setLocType("R");
+                locMast.setModiUser(userId);
+                locMast.setModiTime(new Date());
+                if (!locMastService.updateById(locMast)) {
+                    throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+                }
+            }
+            // todo 鏇存柊绔欑偣淇℃伅锛堝伐浣滃彿锛�
+        }
+    }
+
+    @Override
+    @Transactional
+    public void completeWrkMast(String workNo) {
+        WrkMast wrkMast = wrkMastService.selectById(workNo);
+        if (Cools.isEmpty(wrkMast)){
+            throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
+        }
+        // 鍏ュ簱 + 搴撲綅杞Щ
+        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
+            wrkMast.setWrkSts(4L);
+        // 鍑哄簱
+        } else if (wrkMast.getWrkSts() > 10) {
+            wrkMast.setWrkSts(14L);
+        }
+        if (!wrkMastService.updateById(wrkMast)) {
+            throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
+        }
+    }
+
+    @Override
+    @Transactional
+    public void cancelWrkMast(String workNo) {
+        WrkMast wrkMast = wrkMastService.selectById(workNo);
+        if (Cools.isEmpty(wrkMast)){
+            throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
+        }
+        // 鍏ュ簱
+        if (wrkMast.getWrkSts() < 4) {
+            if (wrkMast.getIoType() != 11) {
+
+            } else {
+                // 搴撲綅杞Щ
+
+
+            }
+        // 鍑哄簱
+        } else if (wrkMast.getWrkSts() > 10) {
+
+        }
+        // 鍒犻櫎宸ヤ綔妗�
+        wrkMastService.deleteById(wrkMast);
+        // 鍒犻櫎宸ヤ綔妗f槑缁�
+        wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));
+        // 淇敼搴撲綅鐘舵��
+//        locMastService.updateById()
+    }
+
 }

--
Gitblit v1.9.1