From c0e599ec7572e51fbaba10eb8f2f69db7f80654b Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期一, 11 十二月 2023 13:40:01 +0800
Subject: [PATCH] #优化dispatchShuttle逻辑

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   40 +++++++++++++++++++++++++---------------
 1 files changed, 25 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 1f21b56..323e43a 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1303,6 +1303,15 @@
                 return false;//绔欑偣蹇呴』鑷姩銆佺┖闂层�佹病鏈夋墭鐩�
             }
 
+            if (wrkMast.getStaNo() == 300) {
+                //鍑�300绔欙紝妫�娴�300绔欎换鍔℃暟閲�
+                List<WrkMast> wrkMasts = wrkMastMapper.select300Wrk();
+                if (wrkMasts.size() >= 4) {
+                    News.info("{}浠诲姟锛岃緭閫佺嚎浠诲姟杩囪浇{}", wrkMast.getWrkNo(), wrkMasts.size());
+                    return false;
+                }
+            }
+
             if (wrkMast.getShuttleNo() == null) {//娌℃湁缁戝畾灏忚溅锛岃繘琛岃皟搴�
                 //寮哄埗棰勭暀涓�鍙板皬杞︾粰鍏ュ簱浠诲姟
                 int lev = Utils.getLev(wrkMast.getSourceLocNo());
@@ -2923,8 +2932,7 @@
                             Utils.wapperSetCondition(wrapper, "three_code", locDetl.getThreeCode());
                             Utils.wapperSetCondition(wrapper, "dead_time", locDetl.getDeadTime());
                             Utils.wapperSetCondition(wrapper, "supp_code", locDetl.getSuppCode());//鏂欑鐮�
-                            WrkDetl detl = wrkDetlService.selectOne(wrapper);
-
+                            List<WrkDetl> detl = wrkDetlService.selectList(wrapper);
                             if (Cools.isEmpty(detl)) {
                                 String suppCode = "";
                                 if (locDetl.getSuppCode() != null) {
@@ -2932,23 +2940,21 @@
                                 }
                                 ledCommand.getMatDtos().add(new MatDto(locDetl.getMatnr(), locDetl.getMaktx(), 0D, locDetl.getAnfme(), locDetl.getSpecs(), suppCode));
                             } else {
-                                String suppCode = "";
-                                String orderNo = detl.getOrderNo();
-                                if (detl.getSuppCode() != null) {
-                                    suppCode = detl.getSuppCode();
+                                //鍑哄簱鏁伴噺绱
+                                Double conut = 0.0;
+                                for (WrkDetl wrkDetl : detl) {
+                                    conut = conut + wrkDetl.getAnfme();
                                 }
-                                if (isJson(orderNo)) {
-                                    JSONArray orders = JSON.parseArray(orderNo);
-                                    for (Object order : orders) {
-                                        JSONObject order1 = (JSONObject) order;
-                                        ledCommand.getMatDtos().add(new MatDto(detl.getMatnr(), detl.getMaktx(), (Double) order1.get("anfme"), (locDetl.getAnfme() - detl.getAnfme()), detl.getSpecs(), suppCode, (String) order1.get("orderNo")));
+
+                                for (WrkDetl wrkDetl : detl) {
+                                    String suppCode = "";
+                                    if (wrkDetl.getSuppCode() != null) {
+                                        suppCode = wrkDetl.getSuppCode();
                                     }
-                                } else {
-                                    ledCommand.getMatDtos().add(new MatDto(detl.getMatnr(), detl.getMaktx(), detl.getAnfme(), (locDetl.getAnfme() - detl.getAnfme()), detl.getSpecs(), suppCode, detl.getOrderNo()));
+                                    ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), (locDetl.getAnfme() - conut), wrkDetl.getSpecs(), suppCode, wrkDetl.getOrderNo()));
                                 }
-
-
                             }
+
                         });
 
                         if (locDetls.isEmpty()) {
@@ -3178,6 +3184,10 @@
                         continue;
                     }
 
+                    if (shuttleProtocol.getSuspendState() == 1) {
+                        continue;//绠″埗涓�
+                    }
+
                     if (!shuttleProtocol.getCurrentLocNo().equals(wrkCharge.getLocNo())) {
                         //灏忚溅涓嶅湪鍏呯數妗╀綅缃�
                         shuttleDispatchUtils.dispatchShuttle(wrkCharge.getWrkNo(), wrkCharge.getLocNo(), shuttle.getId());//璋冨害灏忚溅鍘诲厖鐢垫々

--
Gitblit v1.9.1