From 10ac21082bbbe92dabecdda1a98fe4539f746037 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 14 四月 2026 09:10:38 +0800
Subject: [PATCH] 1

---
 zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java |  113 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 75 insertions(+), 38 deletions(-)

diff --git a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java
index 5c0b8f6..45d9d36 100644
--- a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java
+++ b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java
@@ -1,28 +1,23 @@
 package com.zy.acs.conveyor.controller;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.acs.common.utils.RedisSupport;
 import com.zy.acs.conveyor.controller.vo.SiteTableVo;
+import com.zy.acs.conveyor.core.constant.RedisConveyorConstant;
+import com.zy.acs.conveyor.core.model.SafeSignal;
+import com.zy.acs.conveyor.core.model.StaProtocol;
+import com.zy.acs.conveyor.core.properties.DevpSlave;
+import com.zy.acs.conveyor.core.properties.OutputQueue;
+import com.zy.acs.conveyor.core.properties.SlaveProperties;
+import com.zy.acs.conveyor.core.service.StationService;
 import com.zy.acs.conveyor.entity.Devp;
 import com.zy.acs.conveyor.service.DevpService;
 import com.zy.acs.framework.annotations.ManagerAuth;
 import com.zy.acs.framework.common.R;
-import com.zy.acs.conveyor.core.DevpThread;
-import com.zy.acs.conveyor.core.cache.MessageQueue;
-import com.zy.acs.conveyor.core.cache.OutputQueue;
-import com.zy.acs.conveyor.core.cache.SlaveConnection;
-import com.zy.acs.conveyor.core.enums.SlaveType;
-import com.zy.acs.conveyor.core.enums.TaskType;
-import com.zy.acs.conveyor.core.properties.DevpSlave;
-import com.zy.acs.conveyor.core.model.Task;
-import com.zy.acs.conveyor.core.model.protocol.StaProtocol;
-import com.zy.acs.conveyor.core.properties.SlaveProperties;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 杈撻�佽澶囨帴鍙�
@@ -34,8 +29,16 @@
 
     @Autowired
     private SlaveProperties slaveProperties;
+
+
     @Autowired
     private DevpService devpService;
+
+    @Autowired
+    private StationService stationService;
+
+
+    private final RedisSupport redis = RedisSupport.defaultRedisSupport;
 
 
     @PostMapping("/table/site")
@@ -45,8 +48,8 @@
         // 鍐呭瓨鏁版嵁
         Map<Integer, StaProtocol> station = new HashMap<>();
         for (DevpSlave devp : slaveProperties.getDevp()) {
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-            station.putAll(devpThread.getStation());
+            Map<Integer, StaProtocol> stationMap = stationService.getStationMap(devp.getId());
+            station.putAll(stationMap);
         }
         // 鎸佷箙鏁版嵁
         List<Devp> devps = devpService.selectList(new EntityWrapper<Devp>().orderBy("dev_no"));
@@ -64,11 +67,11 @@
             vo.setLoading(staProtocol.isLoading() ? "Y" : "N");     // 鏈夌墿
             vo.setInEnable(staProtocol.isInEnable() ? "Y" : "N");   // 鍙叆
             vo.setOutEnable(staProtocol.isOutEnable() ? "Y" : "N"); // 鍙嚭
-            vo.setPakMk(staProtocol.isPakMk() ? "Y" : "N");       // 鍏ュ簱鏍囪
-            vo.setEmptyMk(staProtocol.isEmptyMk() ? "Y" : "N");     // 绌烘澘淇″彿
+            vo.setEmptyMk(staProtocol.isEmptyMk() != staProtocol.isFullPlt() ? (staProtocol.isEmptyMk() ? "绌�" : "婊�") : "-");     // 绌烘澘淇″彿
             vo.setStaNo(staProtocol.getStaNo());                // 鐩爣绔�
-//            vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�");     //楂樹綆搴撲綅
-            vo.setLocType1(devp.getDevNo() == 102 ? "楂�" : "浣�");
+            vo.setWeight(staProtocol.getWeight() == null ? 0D : staProtocol.getWeight());
+            vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() ? (staProtocol.isLow() ? "浣�" : "楂�") : "-");     //楂樹綆搴撲綅
+            vo.setAllow((staProtocol.getAllowPut() ? "鍙斁" : "涓嶅彲鏀�") + "/" + (staProtocol.getAllowTake() ? "鍙彇" : "涓嶅彲鍙�"));
         }
 
         return R.ok().add(list);
@@ -96,8 +99,7 @@
     public R siteDetl(@PathVariable("siteId") Integer siteId) {
         SiteTableVo vo = new SiteTableVo();
         for (DevpSlave devp : slaveProperties.getDevp()) {
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-            Map<Integer, StaProtocol> station = devpThread.getStation();
+            Map<Integer, StaProtocol> station = stationService.getStationMap(devp.getId());
             for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
                 if (siteId.equals(entry.getKey())) {
                     StaProtocol staProtocol = entry.getValue();
@@ -107,10 +109,11 @@
                     vo.setLoading(staProtocol.isLoading() ? "Y" : "N");     // 鏈夌墿
                     vo.setInEnable(staProtocol.isInEnable() ? "Y" : "N");   // 鍙叆
                     vo.setOutEnable(staProtocol.isOutEnable() ? "Y" : "N"); // 鍙嚭
-                    vo.setPakMk(staProtocol.isPakMk() ? "Y" : "N");       // 闇�姹�1
-                    vo.setEmptyMk(staProtocol.isEmptyMk() ? "Y" : "N");     // 绌烘澘淇″彿
+                    vo.setEmptyMk(staProtocol.isEmptyMk() != staProtocol.isFullPlt() ? (staProtocol.isEmptyMk() ? "绌�" : "婊�") : "-");     // 绌烘澘淇″彿
                     vo.setStaNo(staProtocol.getStaNo());                // 鐩爣绔�
-                    vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�");     //楂樹綆搴撲綅
+                    vo.setWeight(staProtocol.getWeight() == null ? 0D : staProtocol.getWeight());
+                    vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() ? (staProtocol.isLow() ? "浣�" : "楂�") : "-");     //楂樹綆搴撲綅
+                    vo.setAllow((staProtocol.getAllowPut() ? "鍙斁" : "涓嶅彲鏀�") + "/" + (staProtocol.getAllowTake() ? "鍙彇" : "涓嶅彲鍙�"));
                     return R.ok().add(vo);
                 }
             }
@@ -122,11 +125,9 @@
     @ManagerAuth(memo = "淇敼绔欑偣鏁版嵁")
     public R siteDetlUpdate(@RequestParam Integer siteId,
                             @RequestParam Integer workNo,
-                            @RequestParam Integer staNo,
-                            @RequestParam String pakMk) {
+                            @RequestParam Integer staNo) {
         for (DevpSlave devp : slaveProperties.getDevp()) {
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-            Map<Integer, StaProtocol> station = devpThread.getStation();
+            Map<Integer, StaProtocol> station = stationService.getStationMap(devp.getId());
             for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
                 if (siteId.equals(entry.getKey())) {
                     StaProtocol staProtocol = entry.getValue();
@@ -141,20 +142,56 @@
                     if (staNo != null) {
                         staProtocol.setStaNo(staNo);
                     }
-                    if (pakMk != null) {
-                        staProtocol.setPakMk(pakMk.equals("Y"));
-                    }
-                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(TaskType.WRITE, staProtocol));
-                    if (result) {
-                        return R.ok();
-                    } else {
-                        return R.error("涓嬪彂鍛戒护澶辫触");
-                    }
+                    redis.push(RedisConveyorConstant.CONVEYOR_TASK_FLAG, staProtocol);
+                    return R.ok();
+
                 }
             }
         }
         return R.error("plc宸叉帀绾�");
     }
 
+    @PostMapping("/detl/safe")
+    @ManagerAuth(memo = "琛ュ厖瀹夊叏淇″彿")
+    public R safe(@RequestParam Integer siteId) {
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            Map<Integer, StaProtocol> station = stationService.getStationMap(devp.getId());
+            for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
+                if (siteId.equals(entry.getKey())) {
+                    StaProtocol staProtocol = entry.getValue();
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+                    boolean flag = true;
+                    List<DevpSlave.Sta> putSta = devp.getPutSta();
+                    List<DevpSlave.Sta> takeSta = devp.getTakeSta();
+                    Optional<DevpSlave.Sta> first = takeSta.stream().filter(sta -> sta.getStaNo().equals(siteId)).findFirst();
+                    int i = -1;
+                    if (first.isPresent()) {
+                        i = takeSta.indexOf(first.get());
+                        if (i != -1) {
+                            flag = false;
+                        }
+                    }
+                    if (i == -1) {
+                        first = putSta.stream().filter(sta -> sta.getStaNo().equals(siteId)).findFirst();
+                        if (first.isPresent()) {
+                            i = putSta.indexOf(first.get());
+                            flag = true;
+                        }
+                    }
+                    if (i == -1) {
+                        return R.error("姝ょ珯鐐规棤闇�瀹夊叏淇″彿");
+                    }
+                    staProtocol.setSafeSignal(new SafeSignal(i, (short) 0, flag));
+                    redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG, staProtocol);
+                    return R.ok();
 
+                }
+            }
+        }
+        return R.error("plc宸叉帀绾�");
+    }
 }

--
Gitblit v1.9.1