#
Junjie
2025-11-19 5fb7dae61f9d6c38c37014cf27f28107c6f52e74
src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -1,5 +1,7 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
@@ -10,27 +12,27 @@
import com.zy.asrs.domain.vo.CrnDetailVo;
import com.zy.asrs.domain.vo.CrnLatestDataVo;
import com.zy.asrs.domain.vo.StationLatestDataVo;
import com.zy.asrs.entity.BasCrnpErr;
import com.zy.asrs.entity.BasMap;
import com.zy.asrs.entity.DeviceConfig;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.BasCrnpErrService;
import com.zy.asrs.service.BasMapService;
import com.zy.asrs.service.DeviceConfigService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.domain.vo.RgvLatestDataVo;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.CodeRes;
import com.zy.common.model.MapNode;
import com.zy.common.model.enums.NavigationMapType;
import com.zy.common.utils.RedisUtil;
import com.zy.core.News;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.CrnModeType;
import com.zy.core.enums.MapNodeType;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.RgvStatusType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.StationProtocol;
import com.zy.core.properties.SystemProperties;
import com.zy.core.thread.CrnThread;
import com.zy.core.thread.StationThread;
import com.zy.core.thread.RgvThread;
import com.zy.core.model.protocol.RgvProtocol;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -56,6 +58,8 @@
    private BasMapService basMapService;
    @Autowired
    private RedisUtil redisUtil;
    @Autowired
    private LocMastService locMastService;
    @PostMapping("/system/running/status")
    @ManagerAuth(memo = "系统运行状态")
@@ -170,32 +174,29 @@
        return R.ok().add(vos);
    }
    // @PostMapping("/latest/data/rgv")
    // @ManagerAuth(memo = "RGV实时数据")
    // public R rgvLatestData(){
    // List<RgvLatestDataVo> vos = new ArrayList<>();
    // for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
    // // 获取堆垛机信息
    // RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv,
    // rgvSlave.getId());
    // if (rgvThread == null) {
    // continue;
    // }
    // RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
    // if (rgvProtocol == null) {
    // continue;
    // }
    // RgvLatestDataVo vo = new RgvLatestDataVo();
    // vo.setRgvId(rgvProtocol.getRgvNo()); // RGV编号
    // vo.setTrackSiteNo(String.valueOf(rgvProtocol.getRgvPos()));
    // vo.setRgvStatus(rgvProtocol.getStatusType());
    // vos.add(vo);
    //
    // }
    // Object object = redisUtil.get("rgvLatestData");
    // List<Object> siteLatestDataVos = JSON.parseArray(object.toString());
    // return R.ok().add(siteLatestDataVos);
    // }
    @PostMapping("/latest/data/rgv")
    @ManagerAuth(memo = "RGV实时数据")
    public R rgvLatestData(){
        List<RgvLatestDataVo> vos = new ArrayList<>();
        List<DeviceConfig> rgvList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
                .eq("device_type", String.valueOf(SlaveType.Rgv)));
        for (DeviceConfig deviceConfig : rgvList) {
            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, deviceConfig.getDeviceNo());
            if (rgvThread == null) {
                continue;
            }
            RgvProtocol rgvProtocol = rgvThread.getStatus();
            if (rgvProtocol == null) {
                continue;
            }
            RgvLatestDataVo vo = new RgvLatestDataVo();
            vo.setRgvNo(rgvProtocol.getRgvNo());
            vo.setTrackSiteNo(String.valueOf(rgvProtocol.getRgvPos()));
            vo.setRgvStatus(RgvStatusType.get(rgvProtocol.getStatus()));
            vos.add(vo);
        }
        return R.ok().add(vos);
    }
    // @PostMapping("/latest/data/barcode")
    // @ManagerAuth(memo = "条码扫描仪实时数据")
@@ -264,11 +265,7 @@
    @GetMapping("/map/lev/list")
    @ManagerAuth
    public R getMapLevList() {
        List<BasMap> basMaps = basMapService.selectList(new EntityWrapper<BasMap>().orderBy("lev", true));
        ArrayList<Integer> levList = new ArrayList<>();
        for (BasMap basMap : basMaps) {
            levList.add(basMap.getLev());
        }
        List<Integer> levList = locMastService.getLevList();
        return R.ok().add(levList);
    }
@@ -276,14 +273,20 @@
     * 获取地图数据
     */
    @GetMapping("/map/{lev}/auth")
    @ManagerAuth
    public R getMapFromRedis(@PathVariable Integer lev) {
        Object data = redisUtil.get(RedisKeyType.MAP.key + lev);
        if (data == null) {
            return R.error();
    public R getLocMap(@PathVariable Integer lev) {
        Object object = redisUtil.get(RedisKeyType.LOC_MAP_BASE.key);
        if (object == null) {
            return R.error("地图未初始化");
        }
        return R.ok();
        List<List<HashMap<String, Object>>> mapNodeList = (List<List<HashMap<String, Object>>>) object;
        List<LocMast> locMastList = locMastService.selectLocByLev(lev);
        for (LocMast locMast : locMastList) {
            String[] locType = locMast.getLocType().split("-");
            HashMap<String, Object> mapNode = mapNodeList.get(Integer.parseInt(locType[0])).get(Integer.parseInt(locType[1]));
            mapNode.put("locSts", locMast.getLocSts());
            mapNode.put("locNo", locMast.getLocNo());
        }
        return R.ok().add(mapNodeList);
    }
}