From ce0ac6f2477d97dd5f22d4a4a0043bffb0f8b20d Mon Sep 17 00:00:00 2001
From: tqs <56479841@qq.com>
Date: 星期一, 28 八月 2023 12:47:42 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  152 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 143 insertions(+), 9 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 c693737..de30601 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -241,6 +241,22 @@
                                 String errorMsg = barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒";
                                 MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
                             }
+                        } else if (code == 1000){
+                            if (inSta.getStaNo().equals(103)){
+                                staProtocol.setWorkNo((short)9996);
+                                staProtocol.setStaNo((short)203);
+                            }else {
+                                staProtocol.setWorkNo((short)9996);
+                                staProtocol.setStaNo((short)103);
+                            }
+                            devpThread.setPakMk(staProtocol.getSiteId(), false);
+                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+
+                            // led 寮傚父鏄剧ず
+                            if (ledThread != null) {
+                                String errorMsg = barcode + "闇�瑕佹崲鍏ュ簱绔欍�傜洰鏍囩珯锛�"+staProtocol.getStaNo();
+                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+                            }
                         }
                     } catch (Exception e) {
                         e.printStackTrace();
@@ -387,12 +403,17 @@
                     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);
+                    if (staProtocol.getStaNo().equals(300)){
+                        BasDevp basDevp = basDevpMapper.selectByDevNo(300);
+                        basDevp.setWrkNo1(wrkMast.getWrkNo());
+                        basDevpService.selectById(basDevp);
+                        News.info("300绔欏幓鍏ュ簱绔欎换鍔′笅鍙戯紝鏇存柊绔欑偣琛紝[浠诲姟鍙�:{}锛岀珯鐐瑰彿:{}]", wrkMast.getWrkNo().shortValue(), staNo);
+                    }
                     boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                     if (!result) {
                         News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+                    } else {
+                        News.info("300绔欏幓鍏ュ簱绔欎换鍔″凡涓嬪彂锛孾浠诲姟鍙�:{}锛岀珯鐐瑰彿:{}]", wrkMast.getWrkNo().shortValue(), staNo);
                     }
                 }
             }
@@ -569,6 +590,11 @@
                     staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
                     staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                     devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    if (staProtocol.getStaNo().equals(300)){
+                        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());
@@ -948,10 +974,16 @@
                 continue;
             }
 
-            // 鍏ュ簱娣卞簱浣嶆槸鍚︽湁闈濬銆丏銆乆搴撲綅杩涜鏍¢獙
+            // 鍏ュ簱娣卞簱浣嶆槸鍚︽湁闈濬銆丏銆乆搴撲綅杩涜鏍¢獙 锛� Q銆丳銆丷銆丼锛�
             if (wrkMastMapper.selectShallowLoc(Integer.parseInt(wrkMast.getLocNo().substring(0, 2)),Integer.parseInt(wrkMast.getLocNo().substring(2, 5)),Integer.parseInt(wrkMast.getLocNo().substring(5, 7)))!=null){
-                continue;
+                //妫�鏌ュ叆搴撳簱浣嶆槸鍚︽槸鍦ㄥ爢鍨涙満杈瑰簱浣�
+                ArrayList<Integer> outLoc = new ArrayList<>();
+                outLoc.add(3);outLoc.add(4);outLoc.add(11);outLoc.add(12);outLoc.add(18);outLoc.add(19);
+                if (!outLoc.contains(Integer.parseInt(wrkMast.getLocNo().substring(0, 2)))) {
+                    continue;
+                }
             }
+
 
             //鍔犲己鍒ゆ柇锛屽彧瑕佸瓨鍦ㄧЩ搴撲换鍔★紝璇存槑鍑哄簱浠诲姟鏈畬鍏ㄧ粨鏉燂紝涓嶆墽琛屽叆搴撲换鍔�
             WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId());
@@ -1337,9 +1369,7 @@
                                         }else {
                                             waitWrkMast.setIoPri(9999d);
                                         }
-                                        if(wrkMast.getIoPri()>=9000.0){
-                                            wrkMast.setIoPri(9999d);
-                                        }else if (wrkMast.getIoPri()>20.0){
+                                        if (wrkMast.getIoPri()>23.0){
                                             wrkMast.setIoPri(wrkMast.getIoPri()-10.0);
                                         }else {
                                             wrkMast.setIoPri(13.0d);
@@ -4365,6 +4395,63 @@
                     break;
             }
             LocMast loc = null;
+
+            if(shallowLoc.getLocType2()==3){ //浣庨娣风洿鎺ュ嚭搴�
+                // 鑾峰彇宸ヤ綔鍙�
+                int workNo = commonService.getWorkNo(0);
+                Date now = new Date();
+                // 淇濆瓨宸ヤ綔妗�
+                WrkMast wrkMast = new WrkMast();
+                wrkMast.setWrkNo(workNo);
+                wrkMast.setIoTime(now);
+                wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+                wrkMast.setIoType(101); // 鍏ュ嚭搴撶姸鎬侊細 101.鍏ㄦ澘鍑哄簱
+                wrkMast.setIoPri((double) 9999);
+                wrkMast.setCrnNo(crn.getId());
+                wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
+//                wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
+                wrkMast.setFullPlt("Y"); // 婊℃澘
+                wrkMast.setPicking("N"); // 鎷f枡
+                wrkMast.setExitMk("N"); // 閫�鍑�
+                wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
+                wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
+                wrkMast.setLinkMis("N");
+                wrkMast.setAppeTime(now);
+                wrkMast.setModiTime(now);
+                int res = wrkMastMapper.insert(wrkMast);
+                if (res == 0) {
+                    throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+                }
+                // 宸ヤ綔妗f槑缁嗕繚瀛�
+                if (shallowLoc.getLocSts().equals("F")) {
+                    List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
+                    for (LocDetl locDetl : locDetls) {
+                        WrkDetl wrkDetl = new WrkDetl();
+                        wrkDetl.sync(locDetl);
+                        wrkDetl.setWrkNo(workNo);
+                        wrkDetl.setIoTime(new Date());
+                        wrkDetl.setAnfme(locDetl.getAnfme());
+                        wrkDetl.setAppeTime(new Date());
+                        wrkDetl.setModiTime(new Date());
+                        if (!wrkDetlService.insert(wrkDetl)) {
+                            throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+                        }
+                    }
+                }
+                // 淇敼婧愬簱浣嶇姸鎬�
+                if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
+                    shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+                    shallowLoc.setModiTime(now);
+                    if (!locMastService.updateById(shallowLoc)) {
+                        throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+                    }
+                } else {
+                    throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
+                }
+
+                return;
+            }
+
             List<LocMast> locs = locMastService.selectList(new EntityWrapper<LocMast>().eq("crn_no",crn.getId())
                                                 .eq("loc_type1",shallowLoc.getLocType1())
                                                 .eq("loc_type2",shallowLoc.getLocType2())
@@ -4400,7 +4487,7 @@
 
             if (null == loc) {
                 News.error("娣卞簱浣嶅嚭搴� --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
-//                return;
+                return;
 //                throw new CoolException("娣卞簱浣嶅嚭搴� --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
             }
 
@@ -4531,4 +4618,51 @@
         }
     }
 
+    public synchronized void automaticallyTurnOffCharging() {
+        // 鑾峰彇褰撳墠鏃堕棿鎴�
+        long timestamp = System.currentTimeMillis();
+        Date date = new Date(timestamp);
+        TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
+        java.util.Calendar calendar = java.util.Calendar.getInstance(timeZone);
+        calendar.setTime(date);
+        int hour = calendar.get(java.util.Calendar.HOUR_OF_DAY);
+        if (hour>8 && hour<18){
+            for (SteSlave ste : slaveProperties.getSte()) {
+                SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId());
+                SteProtocol steProtocol = steThread.getSteProtocol();
+                BasSte basSte = basSteService.selectById(ste.getId());
+                if (Cools.isEmpty(steProtocol, basSte)) { continue; }
+                try{
+                    // 鍦ㄧ嚎 绌洪棽   鏃犱綔涓氭爣璁�   涓嶅湪鍏呯數
+                    if (steProtocol.getMode() == 0
+                            || !steProtocol.statusType.equals(SteStatusType.IDLE)
+                            || basSte.getPakMk().equals("Y")
+                            || steProtocol.getChargeStatus() == 0
+                    ) {
+                        continue;
+                    }
+                    if (!steProtocol.isEnable()) {
+                        continue;
+                    }
+                    if (steProtocol.getCharge() > Float.parseFloat(basSte.getChargeLine())) {
+                        WrkCharge wrkCharge = wrkChargeService.selectWorking(steProtocol.getSteNo().intValue());
+                        if (wrkCharge == null) {
+                            if (steProtocol.getChargeStatus() == 1){
+                                SteCommand steCommand = new SteCommand();
+                                steCommand.setSteNo(ste.getId()); // 绌挎杞︾紪鍙�
+                                steCommand.setTaskNo(9999); // 宸ヤ綔鍙�
+                                steCommand.setTaskMode(SteTaskModeType.CLOSE_CHARGE);
+                                if (!MessageQueue.offer(SlaveType.Ste, ste.getId(), new Task(2, steCommand))) {
+                                    News.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", ste.getId(), JSON.toJSON(steCommand));
+                                }
+                            }
+                        }
+                    }
+                }catch (Exception e){
+                    News.error("鑷姩鍏抽棴鍏呯數鍑洪敊锛岃仈绯荤鐞嗗憳锛�"+hour+"鐐�;"+ste.getId()+"鍙峰皬杞�;");
+                }
+            }
+        }
+    }
+
 }

--
Gitblit v1.9.1