From 495b677051e2cbb6a26c0f1e55d9b7f85c5cb9f3 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期一, 10 七月 2023 17:06:51 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  101 ++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 80 insertions(+), 21 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 debb4c3..c693737 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -336,8 +336,6 @@
                             staNo = 103;
                             if (basDevps1.size()!=0 && basDevps2.size()!=0){
                                 continue;
-                            } else if (basDevps1.size()!=0){
-                                staNo = 203;
                             }
 
                             List<WrkMast> wrkMasts1 = wrkMastMapper.selectWrkStsAndIoType((int)staNo);
@@ -360,8 +358,6 @@
                             staNo = 203;
                             if (basDevps1.size()!=0 && basDevps2.size()!=0){
                                 continue;
-                            } else if (basDevps2.size()!=0){
-                                staNo = 103;
                             }
 
 //                            if (basDevps2.size()!=0){
@@ -391,6 +387,9 @@
                     staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
                     staProtocol.setStaNo(staNo);
                     devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    BasDevp basDevp = basDevpMapper.selectByDevNo(300);
+                    basDevp.setWrkNo1(wrkMast.getWrkNo());
+                    basDevpService.selectById(basDevp);
                     boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                     if (!result) {
                         News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
@@ -492,6 +491,15 @@
                             .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
                     StaDesc staDesc = staDescService.selectOne(wrapper);
                     if (Cools.isEmpty(staDesc)) {
+                        // led 寮傚父鏄剧ず
+                        String errorMsg = "";
+                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+                        if (wrkMast.getIoType() == 103) {
+                            errorMsg = "褰撳墠鎷f枡浠诲姟璇风Щ鍔ㄨ嚦203绔�";
+                        } else {
+                            errorMsg = "褰撳墠鎷f枡浠诲姟璇风Щ鍔ㄨ嚦103绔�";
+                        }
+                        if (ledThread != null) {MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));}
                         News.error("鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
                         continue;
                     }
@@ -993,18 +1001,22 @@
                                     }
 
                                 }
-                            } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
-                                News.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo());
+//                            } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
+//                                News.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo());
+//                                flag = true;
+//                                break;
+                            } else if (shallowLoc.getLocSts().equals("R") || shallowLoc.getLocSts().equals("P")) {
+                                News.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 搴撲綅鐘舵�佸湪搴擄紝浣嗘槸娴呭簱浣嶅凡瀛樺湪宸ヤ綔妗d换鍔★紒鍑哄簱搴撲綅={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo());
                                 flag = true;
                                 break;
                             }
 
-                            //20230307 ADD锛屽啀鍔犱竴娆″垽鏂紝褰撴祬搴撲綅鐘舵�佷笉涓篛鏃讹紝涓嶆墽琛屽綋鍓嶅嚭搴撲换鍔�
-                            if (shallowLoc != null && !shallowLoc.getLocSts().equals("O")) {
-                                News.error("鍋氫簡娴呭簱浣嶉樆濉炲鐞嗗悗鍙嶅鍒ゆ柇锛屾祬搴撲綅鐘舵�佷笉涓篛 ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", wrkMast.getSourceLocNo(), shallowLoc.getLocNo());
-                                flag = true;
-                                break;
-                            }
+//                            //20230307 ADD锛屽啀鍔犱竴娆″垽鏂紝褰撴祬搴撲綅鐘舵�佷笉涓篛鏃讹紝涓嶆墽琛屽綋鍓嶅嚭搴撲换鍔�
+//                            if (shallowLoc != null && !shallowLoc.getLocSts().equals("O")) {
+//                                News.error("鍋氫簡娴呭簱浣嶉樆濉炲鐞嗗悗鍙嶅鍒ゆ柇锛屾祬搴撲綅鐘舵�佷笉涓篛 ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", wrkMast.getSourceLocNo(), shallowLoc.getLocNo());
+//                                flag = true;
+//                                break;
+//                            }
                         }
                     }
                 }
@@ -1194,6 +1206,10 @@
                     }
                     // 鍫嗗灈鏈烘惉杩愬皬杞�
                     if (wrkMast.getWrkSts() == 3L) {
+                        if (Cools.isEmpty(wrkMast.getSteNo()) || wrkMast.getSteNo()==0){
+                            News.error("宸ヤ綔鍙�={}鍗冲皢寮�濮嬫惉杩愬皬杞︿絾鏄伐浣滄。娌℃湁灏忚溅鍙�",wrkMast.getWrkNo());
+                            return false;
+                        }
                         this.carMoveIn(wrkMast, wrkMast.getSteNo(), crnProtocol);
                     }
                 }
@@ -1316,12 +1332,27 @@
                                     News.error("搴撲綅寮傚父");
                                 }else {
                                     if (waitWrkMast.getIoType() != 11 || waitWrkMast.getWrkSts() != 17){
-                                        waitWrkMast.setIoPri((double)9999);
+                                        if(waitWrkMast.getIoPri()<=9980.0){
+                                            waitWrkMast.setIoPri(waitWrkMast.getIoPri()+10.0);
+                                        }else {
+                                            waitWrkMast.setIoPri(9999d);
+                                        }
+                                        if(wrkMast.getIoPri()>=9000.0){
+                                            wrkMast.setIoPri(9999d);
+                                        }else if (wrkMast.getIoPri()>20.0){
+                                            wrkMast.setIoPri(wrkMast.getIoPri()-10.0);
+                                        }else {
+                                            wrkMast.setIoPri(13.0d);
+                                        }
+                                        if (wrkMastMapper.updateById(wrkMast)==0){
+                                            News.error("璋冩暣浼樺厛绾уけ璐�");
+                                        }
                                         if (wrkMastMapper.updateById(waitWrkMast)==0){
                                             News.error("璋冩暣浼樺厛绾уけ璐�");
                                         }else if (waitWrkMast.getWrkSts() != 17){
                                             flag = true;
                                         }
+
                                         break;
                                     }
                                 }
@@ -1553,6 +1584,10 @@
                         }
                         // 鍫嗗灈鏈烘惉杩愬皬杞�
                         if (wrkMast.getWrkSts() == 12L) {
+                            if (Cools.isEmpty(wrkMast.getSteNo()) || wrkMast.getSteNo()==0) {
+                                News.error("宸ヤ綔鍙�={}鍗冲皢寮�濮嬫惉杩愬皬杞︿絾鏄伐浣滄。娌℃湁灏忚溅鍙�",wrkMast.getWrkNo());
+                                return false;
+                            }
                             this.carMoveIn(wrkMast, wrkMast.getSteNo(), crnProtocol);
                         }
                     }
@@ -2451,6 +2486,10 @@
                 }
                 // 鍫嗗灈鏈烘惉杩愬皬杞�
                 if (wrkMast.getWrkSts() == 12L) {
+                    if (Cools.isEmpty(wrkMast.getSteNo()) || wrkMast.getSteNo()==0) {
+                        News.error("宸ヤ綔鍙�={}鍗冲皢寮�濮嬫惉杩愬皬杞︿絾鏄伐浣滄。娌℃湁灏忚溅鍙�",wrkMast.getWrkNo());
+                        return;
+                    }
                     this.carMoveIn(wrkMast, wrkMast.getSteNo(), crnProtocol);
                 }
             }
@@ -3395,6 +3434,10 @@
                     switch (wrkMast.getWrkSts().intValue()) {
                         case 2:
                             // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.灏忚溅寰呮惉
+                            if (Cools.isEmpty(wrkMast.getSteNo()) || wrkMast.getSteNo()==0){
+                                News.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.灏忚溅寰呮惉 澶辫触锛侊紒锛屽伐浣滃彿={}   鍘熷洜锛氬伐浣滃彿娌″皬杞�", wrkMast.getWrkNo());
+                                break;
+                            }
                             wrkMast.setWrkSts(3L);
                             wrkMast.setModiTime(now);
                             if (wrkMastMapper.updateById(wrkMast) == 0) {
@@ -3873,15 +3916,24 @@
                 ledCommand.setBarcode(wrkMast.getBarcode());
                 if (wrkMast.getIoType() != 110) {
                     List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
+
                     wrkDetls.forEach(wrkDetl -> {
+                        Double total = 0.0;
+                        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+                        LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+                        if (Cools.isEmpty(locDetl)) {
+                            total = wrkDetl.getAnfme();
+                        } else {
+                            total = locDetl.getAnfme();
+                        }
                         if (wrkMast.getIoType() == 101) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme()));
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
                         }
                         if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme()));
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
                         }
                         if (wrkMast.getIoType() == 107) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme()));
+                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
                         }
                     });
                 }
@@ -4323,15 +4375,21 @@
                     || Utils.getBay(one.getLocNo()) != Utils.getBay(shallowLoc.getLocNo())
                     || Utils.getLev(one.getLocNo()) != Utils.getLev(shallowLoc.getLocNo())){
 
-                    Integer steNo = this.hasCarOfIdle(one.getLocNo());
+                    Integer steNo = this.hasCar(one.getLocNo());
                     if (steNo != null) {
                         //鏈夊皬杞�
                         continue;
                     }
 
-                    //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆
-                    if (Utils.checkInsideLocIsDFX(one.getLocNo())) {
-                        //鍐呬晶鍏朵粬搴撲綅涓嶆槸D銆丗銆乆銆備笉鑳介�夊彇璇ュ簱浣�
+//                    //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆
+//                    if (Utils.checkInsideLocIsDFX(one.getLocNo())) {
+//                        //鍐呬晶鍏朵粬搴撲綅涓嶆槸D銆丗銆乆銆備笉鑳介�夊彇璇ュ簱浣�
+//                        continue;
+//                    }
+
+                    //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆銆丱
+                    if (Utils.checkInsideLocIsDFXO(one.getLocNo())) {
+                        //鍐呬晶鍏朵粬搴撲綅涓嶆槸D銆丗銆乆銆丱銆備笉鑳介�夊彇璇ュ簱浣�
                         continue;
                     }
 
@@ -4342,7 +4400,8 @@
 
             if (null == loc) {
                 News.error("娣卞簱浣嶅嚭搴� --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
-                throw new CoolException("娣卞簱浣嶅嚭搴� --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
+//                return;
+//                throw new CoolException("娣卞簱浣嶅嚭搴� --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
             }
 
             // 鑾峰彇宸ヤ綔鍙�

--
Gitblit v1.9.1