From 79f209a5ec9236adfd4576285d50a7b860da7230 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期二, 26 十二月 2023 13:22:12 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/web/WcsController.java |   83 +++++++++++++++++++++++++++++++++++------
 1 files changed, 70 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index d822f05..113b666 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -8,6 +8,7 @@
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.EmptyPlateOutParam;
 import com.zy.asrs.service.*;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.CodeRes;
 import com.zy.common.model.LocTypeDto;
 import com.zy.common.model.StartupDto;
@@ -49,6 +50,8 @@
     private RowLastnoService rowLastnoService;
     @Autowired
     private WorkService workService;
+    @Autowired
+    private BasCrnpService basCrnpService;
 
     @PostMapping("/pakin/loc/v1")
     @ResponseBody
@@ -74,7 +77,9 @@
                 return R.parse(CodeRes.NO_COMB_700);
             }
             int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
-            int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
+            int countWrk = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode())
+                    .le("io_type",100));
+
             if (countLoc > 0 || countWrk > 0) {
                 return R.error(CodeRes.EXIST_500);
             }
@@ -111,7 +116,7 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(12, true);
 
         // 妫�绱㈠簱浣�
-        StartupDto dto = commonService.getLocNo(rowLastnoService.selectNextWhsType(), 10, 15, null, locTypeDto,0);
+        StartupDto dto = commonService.getLocNo(rowLastnoService.selectNextWhsType(), 10, 12, null, locTypeDto,0);
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
@@ -139,17 +144,42 @@
 
     @PostMapping("auto/emptyOut/v1")
     @ResponseBody
-    public R autoEmptyOut(){
-        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
-                .eq("loc_sts", "D"));
-        if (Cools.isEmpty(locMast)) {
+    public R autoEmptyOut(@RequestParam("crnNo") Integer crnNo) {
+        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                .eq("loc_sts", "D")
+                .eq("crn_no", crnNo)
+                .orderBy("lev1,bay1,row1"));
+        if (locMasts.isEmpty()) {
             return R.error("搴撳瓨娌℃湁绌烘澘");
         }
-        EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
-        emptyPlateOutParam.setOutSite(11);
-        emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locMast.getLocNo()+"");}});
-        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam);
-        return R.ok(!Cools.isEmpty(wrkMast)? R.ok("鑷姩绌烘墭鍑哄簱鎴愬姛,宸ヤ綔鍙�:" + wrkMast.getWrkNo()) : R.error("鐢熸垚鑷姩绌烘墭鍑哄簱澶辫触"));
+
+        for (LocMast locMast : locMasts) {
+            LocMast locMast0 = null;
+            List<String> outerLocNo = Utils.getGroupLocNo(locMast.getLocNo(), false);
+            for (String loc : outerLocNo) {
+                LocMast locMast1 = locMastService.selectByLoc(loc);
+                if (locMast1 == null) {
+                    continue;
+                }
+
+                if (locMast1.getLocSts().equals("D")) {
+                    locMast0 = locMast1;
+                    break;
+                }
+            }
+
+            if (locMast0 == null) {
+                continue;
+            }
+
+            EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
+            ArrayList<String> locNos = new ArrayList<>();
+            locNos.add(locMast0.getLocNo());
+            emptyPlateOutParam.setLocNos(locNos);
+            WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam);
+            return R.ok(!Cools.isEmpty(wrkMast) ? R.ok("鑷姩绌烘墭鍑哄簱鎴愬姛,宸ヤ綔鍙�:" + wrkMast.getWrkNo()) : R.error("鐢熸垚鑷姩绌烘墭鍑哄簱澶辫触"));
+        }
+        return R.error("鐢熸垚鑷姩绌烘墭鍑哄簱澶辫触");
     }
 
     /**
@@ -161,7 +191,18 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
         List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
-        StartupDto dto = commonService.getLocNo(1, 1, devpNo, matNos, locTypeDto,0);
+        int rowCount = rowLastnoService.selectCount(null);
+        Integer integer = 2;
+        for (int i = 1; i <= rowCount; i++) {
+            integer = rowLastnoService.selectNextWhsType();
+            BasCrnp crn_no = basCrnpService.selectOne(new EntityWrapper<BasCrnp>()
+                    .eq("crn_no", integer));
+            if (crn_no.getInEnable().equals("Y") && crn_no.getCrnSts() == 3){
+                break;
+            }
+        }
+
+        StartupDto dto = commonService.getLocNo(integer, 1, devpNo, matNos, locTypeDto,0);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -191,12 +232,17 @@
         }
         // 鐢熸垚宸ヤ綔妗f槑缁�
         waitPakins.forEach(waitPakin -> {
+            String uuid = String.valueOf(System.currentTimeMillis());
             WrkDetl wrkDetl = new WrkDetl();
             wrkDetl.sync(waitPakin);
             wrkDetl.setWrkNo(wrkMast.getWrkNo());
             wrkDetl.setIoTime(wrkMast.getIoTime());
             wrkDetl.setAppeTime(now);
             wrkDetl.setModiTime(now);
+            wrkDetl.setUuid(uuid);
+            wrkDetl.setWeight(waitPakin.getWeight());
+            wrkDetl.setOwner(waitPakin.getOwner());
+            wrkDetl.setPayment(waitPakin.getPayment());
             if (!wrkDetlService.insert(wrkDetl)) {
                 throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
             }
@@ -235,8 +281,19 @@
     public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode) {
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+        int rowCount = rowLastnoService.selectCount(null);
+        Integer integer = 2;
+        for (int i = 1; i <= rowCount; i++) {
+            integer = rowLastnoService.selectNextWhsType();
+            BasCrnp crn_no = basCrnpService.selectOne(new EntityWrapper<BasCrnp>()
+                    .eq("crn_no", integer));
+            if (crn_no.getInEnable().equals("Y")
+                    && crn_no.getCrnSts() == 3){
+                break;
+            }
+        }
         // 妫�绱㈠簱浣�
-        StartupDto dto = commonService.getLocNo(1, 10, devpNo, null, locTypeDto,0);
+        StartupDto dto = commonService.getLocNo(integer, 10, devpNo, null, locTypeDto,0);
         int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();

--
Gitblit v1.9.1