From 0e10bf39c53b0b79cbdc051ddb10845d361042c3 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期三, 06 五月 2026 09:51:50 +0800
Subject: [PATCH] 初始化

---
 src/main/java/com/zy/service/impl/MainServiceImpl.java |  132 ++++++++++++++++++++++++++++++++-----------
 1 files changed, 98 insertions(+), 34 deletions(-)

diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 95e7bff..3c1a631 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -95,6 +95,9 @@
     @Value("${wms.url}")
     private String wmsUrl;
 
+    @Value("${open-door.site}")
+    private String openDoorSite;
+
     public Integer wrkNo = 9901;
 
     /**
@@ -1068,7 +1071,12 @@
                     // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
                     if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
                         News.warnNoLog(""+mark+" - 2"+" - 6"+" - 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� : 寮�濮嬫墽琛� 浠诲姟鍙�={}",wrkMast.getWrkNo());
-                        String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
+                        String shallowLocNo = "";
+                        if (Utils.getRow(wrkMast.getSourceLocNo()) == 11 && Utils.getBay(wrkMast.getSourceLocNo()) <= 18){
+                            shallowLocNo = "10" + Utils.getBay(wrkMast.getSourceLocNo()) + Utils.getLev(wrkMast.getSourceLocNo());
+                        }else {
+                            shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
+                        }
                         LocMast shallowLoc = locMastService.selectById(shallowLocNo);
                         // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
                         if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
@@ -1883,7 +1891,12 @@
 
                     if (loc != null) {
                         if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
-                            String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
+                            String shallowLocNo = "";
+                            if (row == 11){
+                                shallowLocNo = "10" + loc.getBay1() + loc.getLev1();
+                            }else {
+                                shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
+                            }
                             LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
                             if (!shallowLoc1.getLocSts().equals("O")) {
                                 loc = null;
@@ -1900,7 +1913,7 @@
                     if (Utils.isShallowLoc(slaveProperties, row)) {
                         loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2());
 
-                        if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
+                        if (null != loc && row != 9 && row != 10) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
                             String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
                             LocMast deepLoc1 = locMastService.selectById(deepLoc);
                             if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) {
@@ -1932,7 +1945,7 @@
                 wrkMast.setCrnNo(crn.getId());
                 wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
                 wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
-                wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
+                wrkMast.setFullPlt(shallowLoc.getLocSts().equals("F") ? "Y" : "N"); // 婊℃澘
                 wrkMast.setPicking("N"); // 鎷f枡
                 wrkMast.setExitMk("N"); // 閫�鍑�
                 wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
@@ -3101,20 +3114,39 @@
     }
 
     public synchronized void writePlc305() {
-        BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305));
-        if (basDevp.getWrkNo() != 0 && basDevp.getWrkNo() != 9999) {
-            WrkMast wrkMast = wrkMastService.selectById(basDevp.getWrkNo());
-            if(wrkMast != null && wrkMast.getWhsType() != null && wrkMast.getWhsType() == 2) {
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                StaProtocol staProtocol305 = devpThread.getStation().get(305);
-                if (!staProtocol305.getOpenAskDoor() && !staProtocol305.getIfOpenDoor()) { // 娌¤姹傛墦寮�
-                    // 璇锋眰鎵撳紑
-                    if(!MessageQueue.offer(SlaveType.Devp, 1, new Task(3, 1))){
-                        log.error("璇锋眰寮�闂ㄥけ璐�");
+        String[] sites = openDoorSite.split(",");
+        for (String site : sites) {
+            Integer sta = Integer.valueOf(site);
+            BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", sta));
+            if (basDevp.getWrkNo() != 0 && basDevp.getWrkNo() != 9999) {
+                WrkMast wrkMast = wrkMastService.selectById(basDevp.getWrkNo());
+                if(wrkMast != null && wrkMast.getWhsType() != null && wrkMast.getWhsType() == 2) {
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                    StaProtocol staProtocol305 = devpThread.getStation().get(sta);
+                    if (!staProtocol305.getOpenAskDoor() && !staProtocol305.getIfOpenDoor()) { // 娌¤姹傛墦寮�
+                        // 璇锋眰鎵撳紑
+//                        if(!MessageQueue.offer(SlaveType.Devp, 1, new Task(3, 1))){
+                        if(!MessageQueue.offer(SlaveType.Devp, 1, new Task(3, site))){ // data涓洪渶瑕佸紑闂ㄧ殑绔欑偣 閫氱煡PLC闇�瑕佸紑鍝釜闂�
+                            log.error("璇锋眰寮�闂ㄥけ璐�");
+                        }
                     }
                 }
             }
         }
+//        BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305));
+//        if (basDevp.getWrkNo() != 0 && basDevp.getWrkNo() != 9999) {
+//            WrkMast wrkMast = wrkMastService.selectById(basDevp.getWrkNo());
+//            if(wrkMast != null && wrkMast.getWhsType() != null && wrkMast.getWhsType() == 2) {
+//                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+//                StaProtocol staProtocol305 = devpThread.getStation().get(305);
+//                if (!staProtocol305.getOpenAskDoor() && !staProtocol305.getIfOpenDoor()) { // 娌¤姹傛墦寮�
+//                    // 璇锋眰鎵撳紑
+//                    if(!MessageQueue.offer(SlaveType.Devp, 1, new Task(3, 1))){
+//                        log.error("璇锋眰寮�闂ㄥけ璐�");
+//                    }
+//                }
+//            }
+//        }
     }
     public synchronized void readPlc305() {
         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 16L));
@@ -3122,28 +3154,60 @@
     }
 
     public synchronized void invokingBase() {
-        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 1L).eq("io_type", 1)
-                .eq("source_sta_no", 305));
-        if (wrkMast != null) {
-            int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("wrk_sts", 2L).eq("io_type", 1)
-                    .eq("source_sta_no", 305));
-            if (count != 0) {
-                log.warn("瀛樺湪305鍏ュ簱浠诲姟锛岀姸鎬佷负璁惧涓婅蛋");
-                return;
-            }
-            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-            StaProtocol staProtocol= devpThread.getStation().get(wrkMast.getStaNo());
-            if (staProtocol == null) {
-                return;
-            } else {
-                staProtocol = staProtocol.clone();
-            }
-            if(staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0) {
+//        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 1L).eq("io_type", 1)
+//                .eq("source_sta_no", 305));
+//        if (wrkMast != null) {
+//            int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("wrk_sts", 2L).eq("io_type", 1)
+//                    .eq("source_sta_no", 305));
+//            if (count != 0) {
+//                log.warn("瀛樺湪305鍏ュ簱浠诲姟锛岀姸鎬佷负璁惧涓婅蛋");
+//                return;
+//            }
+           List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 1L).eq("io_type", 1)
+                .in("source_sta_no", 305, 1202).orderBy("appe_time",true));
+           for (WrkMast wrkMast : wrkMastList) {
+               SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+               StaProtocol staProtocol= devpThread.getStation().get(wrkMast.getStaNo());
+               if (staProtocol == null) {
+                   return;
+               } else {
+                   staProtocol = staProtocol.clone();
+               }
+               if(staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0) {
+                   staProtocol.setWorkNo(wrkMast.getWrkNo());
+                   staProtocol.setStaNo(wrkMast.getSourceStaNo().shortValue());
+                   devpThread.setPakMk(staProtocol.getSiteId(), false);
+                   MessageQueue.offer(SlaveType.Devp,1, new Task(2, staProtocol));
+                   log.info("鍏ュ簱璇锋眰搴曞骇-,浠诲姟鍙凤細{}锛岀洰鏍囩珯锛歿}-----", wrkMast.getWrkNo(), wrkMast.getStaNo());
+               }
+           }
+
+//        }
+    }
+
+    public synchronized void inOutSwap() {
+        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+        StaProtocol staProtocol = devpThread.getStation().get(305);
+        if (staProtocol == null) {
+            return;
+        } else {
+            staProtocol = staProtocol.clone();
+        }
+        if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 6000 && staProtocol.getWorkNo() <= 9000) {
+
+            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 1L).eq("io_type", 1)
+                    .eq("source_sta_no", 305).orderBy("appe_time", true));
+            for (WrkMast wrkMast : wrkMasts) {
+                wrkMast.setWhsType(3);
+                wrkMastService.updateById(wrkMast);
+
                 staProtocol.setWorkNo(wrkMast.getWrkNo());
-                staProtocol.setStaNo(wrkMast.getSourceStaNo().shortValue());
+                staProtocol.setStaNo((short) 0);
                 devpThread.setPakMk(staProtocol.getSiteId(), false);
-                boolean result = MessageQueue.offer(SlaveType.Devp,1, new Task(2, staProtocol));
-                log.info("鍏ュ簱璇锋眰搴曞骇------");
+                MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+
+                log.info("鍑哄簱浠诲姟瀹屾垚杞叆搴�,浠诲姟鍙凤細{}锛岀洰鏍囩珯锛歿}-----", wrkMast.getWrkNo(), wrkMast.getStaNo());
+                break;
             }
         }
     }

--
Gitblit v1.9.1