From ad79ba405b2d1ac96423f88f4e8a76c584b9d38a Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 09 二月 2026 15:57:06 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OpenController.java |  175 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 154 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 9ca84ee..138fc9c 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,29 +1,39 @@
 package com.zy.asrs.controller;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 import com.core.common.R;
+import com.core.exception.CoolException;
 import com.zy.asrs.domain.param.*;
+import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.DeviceConfig;
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.DeviceConfigService;
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.common.annotations.OpenApiLog;
+import com.zy.common.model.MonitorParam;
 import com.zy.common.service.CommonService;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.enums.WrkIoType;
 import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.model.protocol.DualCrnProtocol;
 import com.zy.core.model.protocol.RgvProtocol;
+import com.zy.core.model.protocol.StationProtocol;
 import com.zy.core.thread.CrnThread;
+import com.zy.core.thread.DualCrnThread;
 import com.zy.core.thread.RgvThread;
+import com.zy.core.thread.StationThread;
 import com.zy.system.entity.Config;
 import com.zy.system.service.ConfigService;
 
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
@@ -37,6 +47,10 @@
 
     @Value("${mainProcessPlugin}")
     private String mainProcessPlugin;
+    @Value("${app.version:1.0.0}")
+    private String appVersion;
+    @Value("${app.version-type:stable}")
+    private String appVersionType;
     @Autowired
     private CommonService commonService;
     @Autowired
@@ -47,8 +61,10 @@
     private ConfigService configService;
     @Autowired
     private DeviceConfigService deviceConfigService;
+    @Autowired
+    private BasDevpService basDevpService;
 
-    //绉诲簱浠诲姟
+    // 绉诲簱浠诲姟
     @PostMapping("/createLocMoveTask")
     @OpenApiLog(memo = "绉诲簱浠诲姟")
     public R createLocMoveTask(@RequestBody CreateLocMoveTaskParam param) {
@@ -62,7 +78,7 @@
         return R.error("鐢熸垚绉诲簱浠诲姟澶辫触");
     }
 
-    //鍏ュ簱浠诲姟
+    // 鍏ュ簱浠诲姟
     @PostMapping("/createInTask")
     @OpenApiLog(memo = "鍏ュ簱浠诲姟")
     public R createInTask(@RequestBody CreateInTaskParam param) {
@@ -76,7 +92,7 @@
         return R.error("鐢熸垚鍏ュ簱浠诲姟澶辫触");
     }
 
-    //鍑哄簱浠诲姟
+    // 鍑哄簱浠诲姟
     @PostMapping("/createOutTask")
     @OpenApiLog(memo = "鍑哄簱浠诲姟")
     public R createOutTask(@RequestBody CreateOutTaskParam param) {
@@ -88,6 +104,29 @@
             return R.ok();
         }
         return R.error("鐢熸垚鍑哄簱浠诲姟澶辫触");
+    }
+
+    // 鎵归噺鍑哄簱浠诲姟
+    @PostMapping("/createOutTaskBatch")
+    @OpenApiLog(memo = "鎵归噺鍑哄簱浠诲姟")
+    @Transactional
+    public R createOutTaskBatch(@RequestBody CreateOutTaskBatchParam param) {
+        if (param == null) {
+            return R.error("鍙傛暟涓嶈兘涓虹┖");
+        }
+
+        List<CreateOutTaskParam> taskList = param.getTaskList();
+        if (taskList == null || taskList.size() == 0) {
+            return R.error("浠诲姟鍒楄〃涓嶈兘涓虹┖");
+        }
+
+        for (CreateOutTaskParam createOutTaskParam : taskList) {
+            if (createOutTaskParam == null) {
+                throw new CoolException("浠诲姟鍙傛暟涓嶈兘涓虹┖");
+            }
+            commonService.createOutTask(createOutTaskParam);
+        }
+        return R.ok();
     }
 
     @PostMapping("/completeTask")
@@ -117,10 +156,10 @@
     }
 
     @RequestMapping("/deviceStatus")
-//    @OpenApiLog(memo = "鑾峰彇璁惧鐘舵��")
+    // @OpenApiLog(memo = "鑾峰彇璁惧鐘舵��")
     public R getDeviceStatus() {
         HashMap<String, Object> map = new HashMap<>();
-        //鑾峰彇鍫嗗灈鏈烘暟鎹�
+        // 鑾峰彇鍫嗗灈鏈烘暟鎹�
         ArrayList<CrnProtocol> crnProtocols = new ArrayList<>();
         List<DeviceConfig> crnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
                 .eq("device_type", String.valueOf(SlaveType.Crn)));
@@ -137,7 +176,7 @@
             crnProtocols.add(crnProtocol);
         }
 
-        //鑾峰彇RGV鏁版嵁
+        // 鑾峰彇RGV鏁版嵁
         ArrayList<RgvProtocol> rgvProtocols = new ArrayList<>();
         List<DeviceConfig> rgvList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
                 .eq("device_type", String.valueOf(SlaveType.Rgv)));
@@ -154,8 +193,44 @@
             rgvProtocols.add(rgvProtocol);
         }
 
-        map.put("crn", crnList);
-        map.put("rgv", rgvList);
+        // 鑾峰彇鍙屽伐浣嶅爢鍨涙満鏁版嵁
+        ArrayList<DualCrnProtocol> dualCrnProtocols = new ArrayList<>();
+        List<DeviceConfig> dualCrnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.DualCrn)));
+        for (DeviceConfig device : dualCrnList) {
+            DualCrnThread dualCrnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, device.getDeviceNo());
+            if (dualCrnThread == null) {
+                continue;
+            }
+
+            DualCrnProtocol dualCrnProtocol = dualCrnThread.getStatus();
+            if (dualCrnProtocol == null) {
+                continue;
+            }
+            dualCrnProtocols.add(dualCrnProtocol);
+        }
+
+        // 鑾峰彇杈撻�佺珯鐐规暟鎹�
+        ArrayList<StationProtocol> stationProtocols = new ArrayList<>();
+        List<DeviceConfig> stationList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.Devp)));
+        for (DeviceConfig device : stationList) {
+            StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, device.getDeviceNo());
+            if (stationThread == null) {
+                continue;
+            }
+
+            List<StationProtocol> stationProtocolList = stationThread.getStatus();
+            if (stationProtocolList == null) {
+                continue;
+            }
+            stationProtocols.addAll(stationProtocolList);
+        }
+
+        map.put("crnList", crnProtocols);
+        map.put("rgvList", rgvList);
+        map.put("dualCrnList", dualCrnProtocols);
+        map.put("stationList", stationProtocols);
         return R.ok().add(map);
     }
 
@@ -179,18 +254,31 @@
 
     @PostMapping("/getAllLocInformation")
     @OpenApiLog(memo = "鑾峰彇鍏ㄩ儴搴撲綅淇℃伅")
-    public R getAllLocInformation() {
-        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>());
-        if (locMasts.isEmpty()) {
-            return R.error("搴撲綅淇℃伅涓嶅瓨鍦�");
+    public R getAllLocInformation(@RequestBody GetAllLocInformationParam param) {
+        List<HashMap<String, Object>> list = new ArrayList<>();
+        EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
+
+        if (!Cools.isEmpty(param.getRow())) {
+            wrapper.eq("row1", param.getRow());
         }
 
-        ArrayList<HashMap<String, Object>> list = new ArrayList<>();
+        if (!Cools.isEmpty(param.getLev())) {
+            wrapper.eq("lev1", param.getLev());
+        }
+
+        List<LocMast> locMasts = locMastService.selectList(wrapper);
+        if (locMasts.isEmpty()) {
+            return R.ok().add(list);
+        }
+
         for (LocMast locMast : locMasts) {
             HashMap<String, Object> map = new HashMap<>();
             map.put("locNo", locMast.getLocNo());
             map.put("locSts", locMast.getLocSts());
             map.put("barcode", locMast.getBarcode());
+            map.put("row", locMast.getRow1());
+            map.put("bay", locMast.getBay1());
+            map.put("lev", locMast.getLev1());
             list.add(map);
         }
 
@@ -201,13 +289,13 @@
     @OpenApiLog(memo = "鏌ヨ浠诲姟")
     public R queryTask(@RequestBody QueryTaskParam param) {
         EntityWrapper<WrkMast> wrapper = new EntityWrapper<>();
-        if(param.getTaskNo() != null) {
+        if (param.getTaskNo() != null) {
             wrapper.eq("wms_wrk_no", param.getTaskNo());
         }
 
-        if(param.getTaskType() != null) {
+        if (param.getTaskType() != null) {
             WrkIoType ioType = WrkIoType.get(param.getTaskType());
-            if(ioType == null) {
+            if (ioType == null) {
                 return R.error("浠诲姟绫诲瀷涓嶅瓨鍦�");
             }
             wrapper.eq("io_type", ioType.id);
@@ -221,15 +309,23 @@
         return R.ok();
     }
 
+    @GetMapping("/getSystemVersion")
+    public R getSystemVersion() {
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("version", appVersion);
+        map.put("versionType", appVersionType);
+        return R.ok().add(map);
+    }
+
     @GetMapping("/getFakeSystemRunStatus")
     public R getFakeSystemRunStatus() {
         HashMap<String, Object> map = new HashMap<>();
-        if(mainProcessPlugin.equals("FakeProcess")) {
+        if (mainProcessPlugin.contains("Fake")) {
             map.put("running", false);
             map.put("isFake", true);
             Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "enableFake"));
-            if(config != null) {
-                if(config.getValue().equals("Y")) {
+            if (config != null) {
+                if (config.getValue().equals("Y")) {
                     map.put("running", true);
                 }
             }
@@ -243,7 +339,7 @@
     @OpenApiLog(memo = "鍚姩浠跨湡妯℃嫙")
     public R startFakeSystem() {
         Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "enableFake"));
-        if(config != null) {
+        if (config != null) {
             config.setValue("Y");
             configService.updateById(config);
         }
@@ -254,11 +350,48 @@
     @OpenApiLog(memo = "鍋滄浠跨湡妯℃嫙")
     public R stopFakeSystem() {
         Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "enableFake"));
-        if(config != null) {
+        if (config != null) {
             config.setValue("N");
             configService.updateById(config);
         }
         return R.ok();
     }
 
+    // 鍙嶉浠诲姟鎵ц缁撴灉
+    @PostMapping("/stationStatus")
+    public R stationStatus(@RequestBody MonitorParam param){
+        if(param == null || param.getStationIds().length == 0){
+            return R.error("杈撳叆鐨勫弬鏁颁负绌�");
+        }
+        List<StationProtocol> basDevps  =  new ArrayList<>();
+        Boolean flag = false;
+        // 鑾峰彇杈撻�佺珯鐐规暟鎹�
+        ArrayList<StationProtocol> stationProtocols = new ArrayList<>();
+        List<DeviceConfig> stationList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.Devp)));
+        for (DeviceConfig device : stationList) {
+            StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, device.getDeviceNo());
+            if (stationThread == null) {
+                continue;
+            }
+
+            List<StationProtocol> stationProtocolList = stationThread.getStatus();
+            if (stationProtocolList == null) {
+                continue;
+            }
+            for (StationProtocol stationProtocol : stationProtocolList) {
+                for (int i = 0; i < param.getStationIds().length; i++) {
+                    if (stationProtocol.getStationId().equals(param.getStationIds()[i])){
+                        flag = true;
+                        basDevps.add(stationProtocol);
+                    }
+                }
+            }
+        }
+        if(flag){
+            return R.ok().add(basDevps);
+        }
+        return null;
+    }
+
 }

--
Gitblit v1.9.1