From b8b193fddead0318eca4ee81167e873df622854c Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期三, 22 五月 2024 16:10:41 +0800
Subject: [PATCH] #

---
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java |   65 ++++++++++++++++++++++++++++++++
 1 files changed, 65 insertions(+), 0 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
index 23d3fdb..06afdd8 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java
@@ -5,6 +5,7 @@
 import com.zy.asrs.common.domain.entity.StaDesc;
 import com.zy.asrs.common.domain.enums.IoWorkType;
 import com.zy.asrs.common.domain.enums.WorkNoType;
+import com.zy.asrs.common.domain.param.EmptyPlateOutParam;
 import com.zy.asrs.common.domain.param.FullStoreParam;
 import com.zy.asrs.common.domain.param.LocDetlAdjustParam;
 import com.zy.asrs.common.domain.param.StockOutParam;
@@ -227,6 +228,70 @@
     }
 
     @Override
+    public void emptyPlateOut(EmptyPlateOutParam param, Long userId, Long hostId) {
+        if (Cools.isEmpty(param.getOutSite())) {
+            throw new CoolException("绔欑偣涓嶅瓨鍦�");
+        }
+        for (String locNo : param.getLocNos()) {
+            // 鑾峰彇宸ヤ綔鍙�
+            int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
+            // 鑾峰彇搴撲綅
+            LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>()
+                    .eq(LocMast::getLocNo, locNo)
+                    .eq(LocMast::getHostId, hostId));
+            if (Cools.isEmpty(locMast)) {
+                throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�");
+            }
+            if (!locMast.getLocSts().equals("D")){
+                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+            }
+            // 鑾峰彇婧愮珯
+            StaDesc staDesc = staDescService.getOne(new LambdaQueryWrapper<StaDesc>()
+                    .eq(StaDesc::getTypeNo, 110)
+                    .eq(StaDesc::getStnNo, param.getOutSite())
+                    .eq(StaDesc::getDeviceNo, locMast.getCrnNo()));
+            Integer sourceStaNo = staDesc.getDeviceStn();
+            if (Cools.isEmpty(sourceStaNo)) {
+                throw new CoolException("妫�绱㈡簮绔欏け璐�");
+            }
+            Date now = new Date();
+            // 淇濆瓨宸ヤ綔妗�
+            WrkMast wrkMast = new WrkMast();
+            wrkMast.setWrkNo(workNo);
+            wrkMast.setIoTime(now);
+            wrkMast.setWrkSts(101L); // 宸ヤ綔鐘舵�侊細101.鐢熸垚鍑哄簱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.setAppeUser(String.valueOf(userId));
+            wrkMast.setAppeTime(now);
+            wrkMast.setModiUser(String.valueOf(userId));
+            wrkMast.setModiTime(now);
+            wrkMast.setHostId(hostId);
+            boolean res = wrkMastService.save(wrkMast);
+            if (!res) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+            }
+            // 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害
+            if (locMast.getLocSts().equals("D")){
+                locMast.setLocSts("R");
+                locMast.setModiUser(userId);
+                locMast.setModiTime(now);
+                if (!locMastService.updateById(locMast)) {
+                    throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�");
+                }
+            }
+        }
+    }
+
+    @Override
     @Transactional
     public void stockOut(Integer staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, Long hostId) {
         Date now = new Date();

--
Gitblit v1.9.1