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

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java              |    8 ++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java          |    6 +++
 zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/EmptyPlateOutParam.java  |   36 ++++++++++++++++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java        |    1 
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java |   65 ++++++++++++++++++++++++++++++++
 5 files changed, 116 insertions(+), 0 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/EmptyPlateOutParam.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/EmptyPlateOutParam.java
new file mode 100644
index 0000000..51f595b
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/param/EmptyPlateOutParam.java
@@ -0,0 +1,36 @@
+package com.zy.asrs.common.domain.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/6/13
+ */
+@Data
+public class EmptyPlateOutParam {
+
+    // 鍑虹珯鍙�
+    private Integer outSite;
+    // AGV鍑虹珯鍙�
+    private String stationCode;
+
+    // 搴撲綅鍙烽泦鍚�
+    private List<String> locNos;
+
+    public Integer getOutSite() {
+        return outSite;
+    }
+
+    public void setOutSite(Integer outSite) {
+        this.outSite = outSite;
+    }
+
+    public List<String> getLocNos() {
+        return locNos;
+    }
+
+    public void setLocNos(List<String> locNos) {
+        this.locNos = locNos;
+    }
+}
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java
index dc37f85..984dbf9 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java
@@ -325,6 +325,7 @@
         startupDto.setSourceStaNo(sourceStaNo);
         startupDto.setStaNo(staNo.getDevNo());
         startupDto.setLocNo(locMast.getLocNo());
+        startupDto.setCrnNo(locMast.getCrnNo());
         return startupDto;
     }
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
index f2b4085..55002d2 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/WorkService.java
@@ -3,6 +3,7 @@
 import com.zy.asrs.common.domain.dto.LocDetlDto;
 import com.zy.asrs.common.domain.dto.TaskDto;
 import com.zy.asrs.common.domain.enums.IoWorkType;
+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;
@@ -31,6 +32,11 @@
     void startupFullTakeStore(StockOutParam param, Long userId, Long hostId);
 
     /**
+     * 绌烘澘鍑哄簱
+     */
+    void emptyPlateOut(EmptyPlateOutParam param, Long userId, Long hostId);
+
+    /**
      * 鎵嬪姩瀹屾垚宸ヤ綔妗�
      */
     void completeWrkMast(String workNo, Long userId, Long hostId);
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();
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
index b58e4db..d9029b4 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WorkController.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.wms.controller;
 
+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;
@@ -99,6 +100,13 @@
         return R.ok("鍑哄簱鍚姩鎴愬姛");
     }
 
+    @RequestMapping("/empty/plate/out/start")
+    @ManagerAuth(memo = "绌烘澘鍑哄簱")
+    public R emptyPlateOutStart(EmptyPlateOutParam param) {
+        workService.emptyPlateOut(param, getUserId(), getHostId());
+        return R.ok("鍑哄簱鍚姩鎴愬姛");
+    }
+
     @RequestMapping("/hand/control/wrkMast")
     @ManagerAuth(memo = "鎵嬪姩澶勭悊宸ヤ綔妗�")
     public R handControlWrkMast(@RequestParam String workNo,

--
Gitblit v1.9.1