#
yxFwq
2025-05-10 3b604eb218a3b167144cc6e5d9c86cd95e16157c
src/main/java/com/zy/asrs/controller/RgvController.java
@@ -13,7 +13,7 @@
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.service.impl.MainServiceImpl;
import com.zy.asrs.utils.VersionUtils;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
@@ -24,11 +24,11 @@
import com.zy.core.model.Task;
import com.zy.core.model.command.RgvCommand;
import com.zy.core.model.protocol.RgvProtocol;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.RgvThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -64,37 +64,29 @@
    @ManagerAuth(memo = "RGV信息表")
    public R rgvStateTable(){
        List<RgvStateTableVo> list = new ArrayList<>();
        List<BasRgv> rgvs = basRgvService.selectList(new EntityWrapper<BasRgv>().orderBy("rgv_no"));
        for (BasRgv basRgv : rgvs) {
            // 表格行
            RgvStateTableVo vo = new RgvStateTableVo();
            vo.setRgvNo(basRgv.getRgvNo());   //  RGV号
            list.add(vo);
            // 获取RGV信息
            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo());
            if (rgvThread == null) {
                continue;
            }
            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
            if (rgvProtocol == null) {
                continue;
            }
            vo.setStatusType(rgvProtocol.modeType.desc);   //  模式状态
            vo.setStatus(rgvProtocol.getStatusType().desc);     //  状态
            vo.setWorkNo1(rgvProtocol.getTaskNo1());  //  工位1任务号
            vo.setStatus1(rgvProtocol.getStatusType1().desc);  // 工位1状态
            vo.setLoading1(rgvProtocol.getLoaded1()==1?"有物":"无物");  // 工位1有物
            vo.setRgvPos(rgvProtocol.getRgvPos());
            vo.setWalkPos(rgvProtocol.getWalkPos()==1?"不在定位":"在定位");
            vo.setWorkNo2(rgvProtocol.getTaskNo2());  //  工位2任务号
            vo.setStatus2(rgvProtocol.getStatusType2().desc);  // 工位2状态
            vo.setLoading2(rgvProtocol.getLoaded2()==1?"有物":"无物");  // 工位2有物
        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
        Map<Integer, StaProtocol> station = devpThread.getStation();
        int[] basRgvList =new int[]{623,624,625,626};
            vo.setWarnCode(String.valueOf(rgvProtocol.getAlarm()));
            if (rgvProtocol.getAlarm() > 0) {
                BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm());
                vo.setAlarm(rgvErr==null?"未知异常":rgvErr.getErrName());
            }
        for (int rgvNo : basRgvList) {
            RgvStateTableVo vo = new RgvStateTableVo();
            vo.setRgvNo(rgvNo);    // 站点编号
            list.add(vo);
            StaProtocol staProtocol = station.get(rgvNo);
            if (null == staProtocol) { continue; }
            vo.setWorkNo1(staProtocol.getWorkNo().shortValue());   //  工作号
            vo.setStatusType(staProtocol.isAutoing()?"Y":"N");   //  自动
            vo.setStatus(staProtocol.isLoading()?"Y":"N");     //  有物
            vo.setEndRow(staProtocol.getEndRow());   //  小车目标位
            vo.setNowRow(staProtocol.getNowRow());   //  小车当前位   //左:1  中: 2  右:3   (面朝入料口)
            vo.setStatus11(staProtocol.isRGV1()?"Y":"N");   //  工作号
            vo.setStatus12(staProtocol.isRGV2()?"Y":"N");   //  工作号
            vo.setStatus13(staProtocol.isRGV3()?"Y":"N");   //  工作号
            vo.setStatus14(staProtocol.isRGV4()?"Y":"N");   //  工作号
            vo.setStatus15(staProtocol.isRGV5()?"Y":"N");   //  工作号
            vo.setStatus16(staProtocol.isRGV6()?"Y":"N");   //  工作号
//            vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "低" : "高");     //高低库位
//            vo.setLocType1(devp.getDevNo()==102 ? "高" : "低");
        }
        return R.ok().add(list);
    }
@@ -110,7 +102,7 @@
            vo.setRgvNo(basRgv.getRgvNo());   //  RGV号
            list.add(vo);
            // 获取RGV信息
            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Crn, basRgv.getRgvNo());
            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo());
            if (rgvThread == null) {
                continue;
            }
@@ -119,7 +111,7 @@
                continue;
            }
            vo.setWorkNo1(rgvProtocol.getTaskNo1());  //  任务号
            vo.setWorkNo(rgvProtocol.getTaskNo1());  //  任务号
            if (rgvProtocol.getTaskNo1()>0) {
                WrkMast wrkMast = wrkMastService.selectById(rgvProtocol.getTaskNo1());
                if (wrkMast != null) {
@@ -145,7 +137,7 @@
        StringBuilder str = new StringBuilder();
        String s;
        int i = 0;
        while((s = OutputQueue.CRN.poll()) != null && i <=10) {
        while((s = OutputQueue.RGV.poll()) != null && i <=10) {
            str.append("\n").append(s);
            i++;
        }
@@ -321,4 +313,26 @@
        return false;
    }
    @PostMapping("/console/rgv/site/data")
    @ManagerAuth(memo = "小车实时位置")
    public R scaleLatestData(){
        List<Map> result = new ArrayList<>();
        for (RgvSlave rgv : slaveProperties.getRgv()) {
            // 获取RGV信息
            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
            if (rgvThread == null) {
                throw new CoolException("RGV不在线");
            }
            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
            if (rgvProtocol == null) {
                throw new CoolException("RGV不在线");
            }
            Map<String, Object> rgvMap = new HashMap<>();
            rgvMap.put("title", rgvProtocol.getRgvPosI());
            rgvMap.put("id", rgvProtocol.getRgvNo());
            result.add(rgvMap);
        }
        return R.ok().add(result);
    }
}