From c979722dffe66a92ebdf5c5e27afb401f49f2758 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期五, 13 六月 2025 13:00:36 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java            |    3 +
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |   87 ++++++++++++++++++++++++++++++++++++++++++-
 src/main/java/com/zy/asrs/service/TaskWrkService.java          |    3 +
 src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java |    5 ++
 src/main/java/com/zy/core/MainProcess.java                     |    5 ++
 src/main/resources/mapper/TaskWrkMapper.xml                    |   10 ++++
 src/main/java/com/zy/core/thread/SiemensDevpThread.java        |    2 
 7 files changed, 110 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java b/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
index 4b924b7..fad3a6e 100644
--- a/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
@@ -14,6 +14,9 @@
 public interface TaskWrkMapper extends BaseMapper<TaskWrk> {
 
     TaskWrk selectByTaskNo(String taskNo);
+
+    TaskWrk selectByTargetPoint(@Param("targetPoint") String startPoint);
+
     TaskWrk selectByStartPoint(@Param("startPoint") String startPoint);
 
     TaskWrk selectByWrkNo(Integer wrkNo);
diff --git a/src/main/java/com/zy/asrs/service/TaskWrkService.java b/src/main/java/com/zy/asrs/service/TaskWrkService.java
index abf25b8..d76d12d 100644
--- a/src/main/java/com/zy/asrs/service/TaskWrkService.java
+++ b/src/main/java/com/zy/asrs/service/TaskWrkService.java
@@ -8,6 +8,9 @@
 public interface TaskWrkService extends IService<TaskWrk> {
 
     TaskWrk selectByTaskNo(String taskNo);
+
+    TaskWrk selectByTargetPoint(String taskNo);
+
     TaskWrk selectByStartPoint(String taskNo);
 
     TaskWrk selectByWrkNo(Integer wrkNo);
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 7ee9bc6..8e98ef9 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -867,9 +867,9 @@
 //                            JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(r));
 //                            if (offer) {
 //                                log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
-                                taskWrk.setStatus(5);
-                                taskWrk.setWrkSts(14);
-                                taskWrkService.updateById(taskWrk);
+                            taskWrk.setStatus(5);
+                            taskWrk.setWrkSts(14);
+                            taskWrkService.updateById(taskWrk);
 
 //                            } else {
 //                                log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
@@ -1813,4 +1813,85 @@
 //        log.info(""+mark+" - 0"+" - 鎵ц瀹屾垚锛氬叾浠�  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
     }
 
+
+    /**
+     * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
+     */
+    public synchronized void ioConvert() {
+        try {
+            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+            for (DevpSlave devp : slaveProperties.getDevp()) {
+                if (devp.getId() == 2) {
+                    continue;
+                }
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                for (DevpSlave.Sta inSta : devp.getInSta()) {
+                    TaskWrk taskWrk = taskWrkService.selectByTargetPoint(inSta.getBackSta() + "");
+                    switch (inSta.getBackSta()) {
+                        case 101:
+                            if (taskWrk != null) {
+                                if (devpThread.ioModeOf1F1 != IoModeType.PAKOUT_MODE) {
+                                    // 鍑哄簱鍒囨崲涓�
+                                    devpThread.ioModeOf1F1 = IoModeType.PAKOUT_BOOTING;
+                                    TaskWrk pakin = taskWrkService.selectByStartPoint(inSta.getStaNo() + "");
+                                    if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+                                            && !devpThread.getStation().get(inSta.getBackSta()).isLoading()
+                                            && devpThread.getStation().get(inSta.getBackSta()).getWorkNo() == 0) {
+                                        // 鍑哄簱妯″紡
+                                        devpThread.ioModeOf1F1 = IoModeType.PAKOUT_MODE;
+                                    }
+                                }
+                            } else {
+                                // 鍏ュ簱妯″紡
+                                devpThread.ioModeOf1F1 = IoModeType.PAKIN_MODE;
+                            }
+                            break;
+                        default:
+                            break;
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 璺戝簱绋嬪簭
+     */
+//    public void debug(String sts, Long modiUser, Integer loc_type1) {
+//        if (!enable) {
+//            return;
+//        }
+//        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>());
+//        if (basCrnps.isEmpty()) {
+//            return;
+//        }
+//        for (BasCrnp basCrnp : basCrnps) {
+//            if (!basCrnp.getInEnable().equals("N") || !basCrnp.getOutEnable().equals("Y")) {
+//                continue;
+//            }
+//            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", basCrnp.getCrnNo()).eq("io_type", 11));
+//            if (Cools.isEmpty(wrkMasts) || wrkMasts.isEmpty()) {
+//                int i = locMastService.selectCount(new EntityWrapper<LocMast>().eq("loc_sts", sts).eq("loc_type1", loc_type1).ne("modi_user", modiUser));
+//                LocMast locMastStart = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", sts).eq("loc_type1", loc_type1).ne("modi_user", modiUser));
+//                if (locMastStart == null || i > 1) {
+//                    continue;
+//                }
+//                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+//                        .eq("loc_sts", "O")
+//                        .eq("crn_no", basCrnp.getCrnNo())
+//                        .eq("loc_type1", locMastStart.getLocType1())
+//                        .ne("modi_user", 77));
+//                if (Cools.isEmpty(locMasts)) {
+//                    continue;
+//                }
+//                Random random = new Random();
+//                LocMast locMastEnd = locMasts.get(random.nextInt(locMasts.size()));
+//                locMove(locMastStart, locMastEnd, Long.parseLong(basCrnp.getCrnNo().toString()));
+//            }
+//        }
+//    }
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java
index 5b20240..ed84734 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java
@@ -38,6 +38,11 @@
     }
 
     @Override
+    public TaskWrk selectByTargetPoint(String taskNo) {
+        return this.baseMapper.selectByTargetPoint(taskNo);
+    }
+
+    @Override
     public TaskWrk selectByStartPoint(String taskNo) {
         return this.baseMapper.selectByStartPoint(taskNo);
     }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 95a133f..a8373b1 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -68,6 +68,11 @@
 //                    mainService.outOfDevp();
 
                     // 鍏朵粬  ===>> // 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
+                    i++;
+                    if (i > 1) {
+                        mainService.ioConvert();
+                        i = 0;
+                    }
                     //鐜舰寰幆鍑芥暟
 //                    mainService.shiftTargetToCyclePoint();
 //                    mainService.shiftCyclePointToTarget();
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 9139aaa..23fd1e1 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -42,7 +42,7 @@
      * 3.鍑哄簱鍚姩涓� 锛堜笉鑳界敓鎴愬叆搴撳伐浣滄。锛�
      * 4.鍑哄簱妯″紡
      */
-    public IoModeType ioModeOf1F = IoModeType.NONE;
+    public IoModeType ioModeOf1F1 = IoModeType.NONE;
 
     public SiemensDevpThread(DevpSlave slave) {
         this.slave = slave;
diff --git a/src/main/resources/mapper/TaskWrkMapper.xml b/src/main/resources/mapper/TaskWrkMapper.xml
index 81b71b7..5027694 100644
--- a/src/main/resources/mapper/TaskWrkMapper.xml
+++ b/src/main/resources/mapper/TaskWrkMapper.xml
@@ -34,10 +34,18 @@
         and task_no = #{taskNo}
     </select>
 
+    <select id="selectByTargetPoint" resultMap="BaseResultMap">
+        select top 1 * from wcs_task_wrk
+        where 1=1
+          and io_type=2
+          and target_point = #{targetPoint}
+    </select>
+
+
     <select id="selectByStartPoint" resultMap="BaseResultMap">
         select top 1 * from wcs_task_wrk
         where 1=1
-        and io_type=3
+        and io_type=1
         and start_point = #{startPoint}
     </select>
 

--
Gitblit v1.9.1