From 2ded9514aa9a93ee440af0b1437d788fb052028b Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期六, 23 八月 2025 08:36:59 +0800
Subject: [PATCH] wms功能完善

---
 src/main/java/com/zy/asrs/task/MdqzScheduler.java |   53 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 52 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/MdqzScheduler.java b/src/main/java/com/zy/asrs/task/MdqzScheduler.java
index f585916..94fe738 100644
--- a/src/main/java/com/zy/asrs/task/MdqzScheduler.java
+++ b/src/main/java/com/zy/asrs/task/MdqzScheduler.java
@@ -2,7 +2,11 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkDetl;
 import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkDetlService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.system.entity.Config;
 import com.zy.system.service.ConfigService;
@@ -11,6 +15,8 @@
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author pang.jiabao
@@ -27,15 +33,60 @@
     @Resource
     private WrkMastService wrkMastService;
 
+    @Resource
+    private LocMastService locMastService;
+
+    @Resource
+    private WrkDetlService wrkDetlService;
+
     // 璇昏ˉ灏炬《閰嶇疆锛岀粰瀵瑰簲浠诲姟鍙疯ˉ灏炬《淇″彿--鏇挎崲涓哄叆搴撳鎵惧簱浣嶆椂锛屽彂鐜板墠闈㈢被鍨嬩笉涓�鏍峰崟鐫�锛岃嚜鍔ㄨˉ灏炬《
     @Scheduled(cron = "0/5 * * * * ?")
     private void tailFillingBuckets() {
         Config config = configService.selectConfigByCode("tailFillingBuckets");
         if (config != null && config.getStatus() == 1 && !Cools.isEmpty(config.getValue())) {
             WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", config.getValue()));
+
             if (wrkMast != null && wrkMast.getCtnType() == 0) {
-                wrkMast.setCtnType(1);
+                Integer wrkNo = wrkMast.getWrkNo();
+                // 鍙栨柊搴撲綅缁勭殑绗竴涓簱浣�
+                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no", 4).eq("loc_sts", "O"));
+                List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 9 || locMast1.getRow1() == 11).collect(Collectors.toList());
+                List<LocMast> collect1 = locMasts.stream().filter(locMast1 -> locMast1.getRow1() == 10 || locMast1.getRow1() == 12).collect(Collectors.toList()); // 绗竴涓厛鏀捐繖涓ゆ帓
+                if (collect.size() <= 0 && collect1.size()  <= 0) {
+                    log.error("绔欑偣:{},浠诲姟鍙穥}锛氬叆搴撶┖妗跺簱鏃犵┖搴撲綅",1050,wrkNo);
+                    return;
+                }
+                // 鍙敤搴撲綅缁�
+                List<LocMast> locMastList = new ArrayList<>();
+                for(LocMast locMast1:collect) {
+                    Optional<LocMast> first = collect1.stream().filter(locMast2 -> locMast1.getRow1() + 1 == locMast2.getRow1() && Objects.equals(locMast1.getLev1(), locMast2.getLev1())
+                            && Objects.equals(locMast1.getBay1(), locMast2.getBay1())).findFirst();
+                    first.ifPresent(locMastList::add);
+                }
+
+                if (locMastList.size() == 0) {
+                    log.error("绔欑偣:{},浠诲姟鍙穥}锛氬叆搴撶┖妗跺簱鏃犲搴旂┖绌烘《缁�",1050,wrkNo);
+                    return;
+                }
+                WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo));
+                if (wrkDetl.getModel().equals("208L") && locMastList.size() <= 40 * 2 * 2) { // 鏈�涓婇潰涓�灞傚彧鑳芥斁208L锛屽簱浣嶅墿浣欓噺涓嶅鏃讹紝濡傛灉鏄�208L妗跺叆搴擄紝鍒欏厛浠庢渶椤跺眰鏀�
+                    locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).reversed().thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList());
+                } else {
+                    locMastList = locMastList.stream().sorted(Comparator.comparing(LocMast::getLev1).thenComparing(LocMast::getBay1).thenComparing(LocMast::getRow1)).collect(Collectors.toList());
+                }
+                LocMast locMast = locMastList.get(0);
+                wrkMast.setLocNo(locMast.getLocNo());
+                wrkMast.setCtnType(1); // 灏炬墭鏍囪瘑
                 wrkMastService.updateById(wrkMast);
+                if (locMast.getLocSts().equals("O")){
+                    locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+                    locMast.setModiTime(new Date());
+                    if (!locMastService.updateById(locMast)){
+                        log.error("绔欑偣:{},浠诲姟鍙穥}锛氭敼鍙樺簱浣峽}鐘舵�亄}澶辫触",1050,wrkNo,locMast.getLocNo(),locMast.getLocSts());
+                    }
+                } else {
+                    log.error("绔欑偣:{},浠诲姟鍙穥}锛氱洰鏍囧簱浣嶏細{}宸茶鍗犵敤",1050,wrkNo,locMast.getLocNo());
+                }
             }
         }
     }

--
Gitblit v1.9.1