野心家
2025-05-23 d75bdc98e2bc456eecfa4003bf700cb701d52a9b
初始化
7个文件已修改
341 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/DeviceErrorServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/RgvProtocol.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/RgvThread.java 175 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/taskWrk/taskWrk.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/taskWrkLog/taskWrkLog.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -544,7 +544,7 @@
            basRgvWmsParam.setSteNo(rgvSlave.getId());
            basRgvWmsParam.setSteErr(rgvStatus.getAlarm().longValue());
            try{
                BasRgvErr basRgvErr = basRgvErrService.selectById(rgvStatus.getAlarm().longValue());
                BasRgvErr basRgvErr = basRgvErrService.selectById((long)rgvStatus.getAlarm$());
                basRgvWmsParam.setSteErrM(basRgvErr.getErrName());
            } catch (Exception e){
@@ -562,4 +562,85 @@
    }
    //设备状态查询接口
    @PostMapping("/errorRgv1")
    @Transactional
    public R errorRgv(@RequestHeader String appkey,
                          HttpServletRequest request) {
        auth(appkey, "设备状态查询接口", request);
        List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>());
        List<Object> list = new ArrayList<>();
        WcsStatusResponseModel wcsStatusResponseModel = new WcsStatusResponseModel();
        for (BasDevp basDevp:basDevps){
            BasDevpWmsParam basDevpWmsParam = new BasDevpWmsParam();
            basDevpWmsParam.setDevNo(basDevp.getDevNo());
            basDevpWmsParam.setWrkNo(basDevp.getWrkNo().longValue());
            basDevpWmsParam.setAutoing(basDevp.getAutoing());
            basDevpWmsParam.setLoading(basDevp.getLoading());
            basDevpWmsParam.setInEnable(basDevp.getInEnable());
            basDevpWmsParam.setOutEnable(basDevp.getOutEnable());
            basDevpWmsParam.setDevErr(basDevp.getStaErr().longValue());
            basDevpWmsParam.setDevErrM(basDevpWmsParam.getDevErr$());
//            list.add(basDevpWmsParam);
            wcsStatusResponseModel.getChainList().add(basDevpWmsParam);
        }
        List<BasCrnpWmsParam> basCrnpWmsParamList = new ArrayList<>();
        for (CrnSlave crn : slaveProperties.getCrn()) {
            // 获取堆垛机信息
            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
            if (crnProtocol == null) { continue; }
            BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
            if (basCrnp == null) {
                log.error("{}号堆垛机尚未在数据库进行维护!", crn.getId());
                continue;
            }
            BasCrnpWmsParam basCrnpWmsParam = new BasCrnpWmsParam();
            basCrnpWmsParam.sync(basCrnp);
            basCrnpWmsParam.setCrnNoH(crnProtocol.getLaneNo());
            try{
                BasCrnError basCrnError = basCrnErrorService.selectById(basCrnp.getCrnErr());
                basCrnpWmsParam.setCrnErrM(basCrnError.getErrName());
            } catch (Exception e){
                basCrnpWmsParam.setCrnErrM("未知异常");
            }
            basCrnpWmsParamList.add(basCrnpWmsParam);
//            list.add(basCrnpWmsParam);
        }
        wcsStatusResponseModel.setPilingCarList(basCrnpWmsParamList);
        for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
            RgvProtocol rgvStatus = RgvStatusCache.getRgvStatus(rgvSlave.getId());
            if (Cools.isEmpty(rgvStatus)){
                continue;
            }
            BasRgvWmsParam basRgvWmsParam = new BasRgvWmsParam();
            basRgvWmsParam.setWrkNo(rgvStatus.getTaskNo());
            basRgvWmsParam.setCrnSts(rgvStatus.getStatus().intValue());
            basRgvWmsParam.setStatusType(rgvStatus.getStatusType().desc);
            basRgvWmsParam.setSteNo(rgvSlave.getId());
            basRgvWmsParam.setSteErr(rgvStatus.getAlarm().longValue());
            basRgvWmsParam.setSteErrM(rgvStatus.getAlarmM());
            try{
//                BasRgvErr basRgvErr = basRgvErrService.selectById((long)rgvStatus.getAlarm$());
//                basRgvWmsParam.setSteErrM(basRgvErr.getErrName());
            } catch (Exception e){
                basRgvWmsParam.setSteErrM("未知异常");
            }
//            list.add(basRgvWmsParam);
            wcsStatusResponseModel.getRgvList().add(basRgvWmsParam);
        }
//        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
//        for (BasCrnp basCrnp:basCrnps){
//            list.add(basCrnp);
//        }
        return R.ok(wcsStatusResponseModel);
    }
}
src/main/java/com/zy/asrs/service/impl/DeviceErrorServiceImpl.java
@@ -21,17 +21,23 @@
    @Override
    public Boolean addDeviceError(String device, Integer deviceId, String msg) {
        DeviceError error = this.selectByDeviceAndDeviceId(device, deviceId);
        if (error == null) {
//        DeviceError error = this.selectByDeviceAndDeviceId(device, deviceId);
//        if (error == null) {
            DeviceError deviceError = new DeviceError();
            deviceError.setDevice(device);
            deviceError.setDeviceId(deviceId);
            deviceError.setMsg(msg);
            deviceError.setCreateTime(new Date());
            return this.baseMapper.insert(deviceError) > 0;
        }
            Integer insert = 0;
            try{
                insert = this.baseMapper.insert(deviceError);
            } catch (Exception e){
        return true;
            }
            return  insert> 0;
//        }
//        return true;
    }
    @Override
src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -97,6 +97,26 @@
     */
    public boolean statusEnable;//0\1\2
    // 急停
    private boolean err1;
    // 有物无资料
    private boolean err2;
    // 命令错误走行链条冲突
    private boolean err3;
    // 目标为超过走行极限
    private boolean err4;
    // 变频器异常
    private boolean err5;
    // 光电异常
    private boolean err6;
    public void setMode(Short mode) {
        this.mode = mode;
        this.modeType = RgvModeType.get(mode);
@@ -145,4 +165,43 @@
        this.xDuration = Float.valueOf(xDuration);
    }
    public int getAlarm$(){
        if (err1){
            return 1;
        }
        if (err2){
            return 2;
        }
        if (err3){
            return 3;
        }
        if (err4){
            return 4;
        }
        if (err5){
            return 5;
        }
        if (err6){
            return 6;
        }
        return 0;
    }
    public String getAlarmM(){
        switch (getAlarm$()){
            case 1:
                return "急停";
            case 2:
                return "有物无资料";
            case 3:
                return "命令错误走行链条冲突";
            case 4:
                return "目标为超过走行极限";
            case 5:
                return "变频器异常";
            case 6:
                return "光电异常";
        }
        return "正常";
    }
}
src/main/java/com/zy/core/thread/RgvThread.java
@@ -12,6 +12,7 @@
import com.zy.asrs.entity.BasRgvOpt;
import com.zy.asrs.service.BasRgvOptService;
import com.zy.asrs.service.BasRgvService;
import com.zy.asrs.service.DeviceErrorService;
import com.zy.asrs.utils.RouteUtils;
import com.zy.asrs.utils.TrackRangeUtils;
import com.zy.core.DevpThread;
@@ -114,7 +115,13 @@
                    }
                }
            } catch (Exception e) {
                log.error("RGV数据读取线程异常!!!" + e.getMessage());
                log.error("rgv连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                try{
                    DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                    deviceErrorService.addDeviceError("rgv", slave.getId(), "rgv连接失败"+e.getMessage());
                } catch (Exception e2){
                    log.error("e2:"+e2.getMessage());
                }
                initRgv();
//                e.printStackTrace();
            }
@@ -129,7 +136,13 @@
                readStatus();
            } catch (Exception e) {
                log.error("RGV数据读取线程异常!!!" + e.getMessage());
                log.error("RGV数据读取线程异常!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                try{
                    DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                    deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV数据读取线程异常"+e.getMessage());
                } catch (Exception e2){
                    log.error("e2:"+e2.getMessage());
                }
                initRgv();
//                e.printStackTrace();
            }
@@ -156,7 +169,13 @@
                    OperateResult result4 = siemensNet.Write("DB100.12.0", false);
                }
            } catch (Exception e) {
                log.error("RGV数据读取线程异常!!!" + e.getMessage());
                log.error("RGV数据任务下发复位线程异常!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                try{
                    DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                    deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV数据任务下发复位线程异常"+e.getMessage());
                } catch (Exception e2){
                    log.error("e2:"+e2.getMessage());
                }
                initRgv();
//                e.printStackTrace();
            }
@@ -216,7 +235,13 @@
                    }
                }
            } catch (Exception e) {
                log.error("RGV取货任务下发线程异常!!!" + e.getMessage());
                log.error("RGV任务下发线程异常!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                try{
                    DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                    deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV任务下发线程异常"+e.getMessage());
                } catch (Exception e2){
                    log.error("e2:"+e2.getMessage());
                }
//                e.printStackTrace();
            }
        }
@@ -380,7 +405,13 @@
                    }
                }
            } catch (Exception e) {
                log.error("RGV取货任务下发线程异常!!!" + e.getMessage());
                log.error("RGV任务下发线程异常!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                try{
                    DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                    deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV任务下发线程异常"+e.getMessage());
                } catch (Exception e2){
                    log.error("e2:"+e2.getMessage());
                }
//                e.printStackTrace();
            }
        }
@@ -437,12 +468,18 @@
            if (rgvProtocolOther.getStatusType().equals(RgvStatusType.IDLE)) {
                if ((rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing())
                        - (targetPosition + rgvProtocol.getCarBodyKunPeng())
                        > avoidDistance) {//无需避让
                        > avoidDistance - 50) {//无需避让
                    return true;
                } else {
                    long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing();
                    if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
                        log.error("行走超出范围!!!任务异常  联系管理员!!!");
                        log.error("RGV行走超出范围!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                        try{
                            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                            deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV行走超出范围");
                        } catch (Exception e2){
                            log.error("e2:"+e2.getMessage());
                        }
                        return false;
                    }
                    long avoidAbs = Math.abs(avoid - rgvProtocolOther.getRgvPos());
@@ -452,17 +489,23 @@
                    rgvTaskProtocolOther.setAvoid(1);
                    rgvTaskProtocolOther.setAvoidingTheDestination(avoid);
                    RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther);
                    return true;
                    return false;
                }
            } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.ROAM)) {
                if ((rgvProtocolOther.getRgvPosDestination() - rgvProtocolOther.getCarBodyJiaoMing())
                        - (targetPosition + rgvProtocol.getCarBodyKunPeng())
                        > avoidDistance) {//无需避让
                        > avoidDistance - 50) {//无需避让
                    return true;
                } else {
                    long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing();
                    if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
                        log.error("行走超出范围!!!任务异常  联系管理员!!!");
                        log.error("RGV行走超出范围!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                        try{
                            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                            deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV行走超出范围");
                        } catch (Exception e2){
                            log.error("e2:"+e2.getMessage());
                        }
                        return false;
                    }
                    long avoidAbs = Math.abs(avoid - rgvProtocolOther.getRgvPos());
@@ -472,18 +515,24 @@
                    rgvTaskProtocolOther.setAvoid(1);
                    rgvTaskProtocolOther.setAvoidingTheDestination(avoid);
                    RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther);
                    return true;
                    return false;
                }
            } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.WORKING)) {
                if ((rgvProtocolOther.getRgvPosDestination() - rgvProtocolOther.getCarBodyJiaoMing())
                        - (targetPosition + rgvProtocol.getCarBodyKunPeng())
                        > avoidDistance) {//无需避让
                        > avoidDistance - 50) {//无需避让
                    return true;
                } else {
                    if (rgvProtocolOther.getRgvPosDestination() >= rgvProtocolOther.getRgvPos()-50) {
                        long avoid = rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing() - avoidDistance - rgvProtocol.getCarBodyKunPeng();
                        if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
                            log.error("行走超出范围!!!任务异常  联系管理员!!!");
                            log.error("RGV行走超出范围!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                            try{
                                DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                                deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV行走超出范围");
                            } catch (Exception e2){
                                log.error("e2:"+e2.getMessage());
                            }
                            return false;
                        }
                        long avoidAbs = Math.abs(avoid - rgvProtocol.getRgvPos());
@@ -500,7 +549,7 @@
            } else {
                if ((rgvProtocolOther.getRgvPosDestinationOrPos(true) - rgvProtocolOther.getCarBodyJiaoMing())
                        - (targetPosition + rgvProtocol.getCarBodyKunPeng())
                        > avoidDistance) {//无需避让
                        > avoidDistance - 50) {//无需避让
                    return true;
                }
            }
@@ -508,12 +557,18 @@
            if (rgvProtocolOther.getStatusType().equals(RgvStatusType.IDLE)) {
                if ((targetPosition - rgvProtocol.getCarBodyJiaoMing())
                        - (rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng())
                        > avoidDistance) {//无需避让
                        > avoidDistance - 50) {//无需避让
                    return true;
                } else {
                    long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng();
                    if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
                        log.error("行走超出范围!!!任务异常  联系管理员!!!");
                        log.error("RGV行走超出范围!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                        try{
                            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                            deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV行走超出范围");
                        } catch (Exception e2){
                            log.error("e2:"+e2.getMessage());
                        }
                        return false;
                    }
                    long avoidAbs = Math.abs(avoid - rgvProtocolOther.getRgvPos());
@@ -523,17 +578,23 @@
                    rgvTaskProtocolOther.setAvoid(1);
                    rgvTaskProtocolOther.setAvoidingTheDestination(avoid);
                    RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther);
                    return true;
                    return false;
                }
            } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.ROAM)) {
                if ((targetPosition - rgvProtocol.getCarBodyJiaoMing())
                        - (rgvProtocolOther.getRgvPosDestination() + rgvProtocolOther.getCarBodyKunPeng())
                        > avoidDistance) {//无需避让
                        > avoidDistance - 50) {//无需避让
                    return true;
                } else {
                    long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng();
                    if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
                        log.error("行走超出范围!!!任务异常  联系管理员!!!");
                        log.error("RGV行走超出范围!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                        try{
                            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                            deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV行走超出范围");
                        } catch (Exception e2){
                            log.error("e2:"+e2.getMessage());
                        }
                        return false;
                    }
                    long avoidAbs = Math.abs(avoid - rgvProtocolOther.getRgvPos());
@@ -543,19 +604,25 @@
                    rgvTaskProtocolOther.setAvoid(1);
                    rgvTaskProtocolOther.setAvoidingTheDestination(avoid);
                    RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther);
                    return true;
                    return false;
                }
            } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.WORKING)) {
                if ((targetPosition - rgvProtocol.getCarBodyJiaoMing())
                        - (rgvProtocolOther.getRgvPosDestination() + rgvProtocolOther.getCarBodyKunPeng())
                        > avoidDistance) {//无需避让
                        > avoidDistance-50) {//无需避让
                    return true;
                } else {
                    if (rgvProtocolOther.getRgvPosDestination() <= rgvProtocolOther.getRgvPos() + 50) {
                        long avoid = rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng() + avoidDistance + rgvProtocol.getCarBodyJiaoMing();
                        if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
                            log.error("行走超出范围!!!任务异常  联系管理员!!!");
                            log.error("RGV行走超出范围!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                            try{
                                DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                                deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV行走超出范围");
                            } catch (Exception e2){
                                log.error("e2:"+e2.getMessage());
                            }
                            return false;
                        }
                        long avoidAbs = Math.abs(avoid - rgvProtocol.getRgvPos());
@@ -572,7 +639,7 @@
            } else {
                if ((rgvProtocolOther.getRgvPosDestinationOrPos(false) - rgvProtocolOther.getCarBodyJiaoMing())
                        - (targetPosition + rgvProtocol.getCarBodyKunPeng())
                        > avoidDistance) {//无需避让
                        > avoidDistance - 50) {//无需避让
                    return true;
                }
            }
@@ -608,7 +675,13 @@
                rgvProtocol.setStatusEnable(false);
            }
        } catch (Exception e) {
            log.error("RGV异常!!!" + e.getMessage());
            log.error("RGV异常!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
            try{
                DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV异常"+e.getMessage());
            } catch (Exception e2){
                log.error("e2:"+e2.getMessage());
            }
            rgvProtocol.setStatusEnable(true);
        }
@@ -641,6 +714,12 @@
//            OutputQueue.RGV.offer(MessageFormat.format("【{0}】RGV plc连接失败!!! ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
            log.error("RGV plc连接失败!!! ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
            try{
                DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                deviceErrorService.addDeviceError("rgv", slave.getId(), "RGVplc连接失败");
            } catch (Exception e2){
                log.error("e2:"+e2.getMessage());
            }
        }
        initRgv();
//        siemensNet.ConnectClose();
@@ -652,7 +731,7 @@
     */
    private void readStatus() {
        try {
            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 19);
            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 20);
            if (result.IsSuccess) {
                // 构建设备状态对象
                RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
@@ -679,8 +758,14 @@
//                rgvProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
//                OperateResultExOne<byte[]> result11 = siemensNet.Read("DB100.12", (short) 1);
                boolean[] status = siemensNet.getByteTransform().TransBool(result.Content, 18, 1);
                boolean[] status = siemensNet.getByteTransform().TransBool(result.Content, 18, 2);
                rgvProtocol.setLoaded(status[0]? (short)1:(short)0);
                rgvProtocol.setErr1(status[8]);
                rgvProtocol.setErr2(status[9]);
                rgvProtocol.setErr3(status[10]);
                rgvProtocol.setErr4(status[11]);
                rgvProtocol.setErr5(status[12]);
                rgvProtocol.setErr6(status[13]);
                OutputQueue.RGV.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功", DateUtils.convert(new Date()), slave.getId()));
//                // 工位1复位信号
@@ -709,6 +794,13 @@
                    basRgv.setRgvSts((int) rgvProtocol.getMode());
                    if (!basRgvService.updateById(rgvProtocol.toSqlModel(basRgv))) {
                        log.error("RGV plc数据库更新失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
                        try{
                            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                            deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV plc数据库更新失败");
                        } catch (Exception e2){
                            log.error("e2:"+e2.getMessage());
                        }
                    }
                } catch (Exception ignore) {
@@ -723,11 +815,25 @@
                connectRgv = false;
//                OutputQueue.RGV.offer(MessageFormat.format("【{0}】读取RGV plc状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
                log.error("读取RGV plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
                try{
                    DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                    deviceErrorService.addDeviceError("rgv", slave.getId(), "读取RGV plc状态信息失败");
                } catch (Exception e2){
                    log.error("e2:"+e2.getMessage());
                }
            }
        } catch (Exception e) {
//            e.printStackTrace();
//            OutputQueue.RGV.offer(MessageFormat.format("【{0}】读取RGV plc状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
            log.error("读取RGV plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
            try{
                DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                deviceErrorService.addDeviceError("rgv", slave.getId(), "读取RGV plc状态信息失败");
            } catch (Exception e2){
                log.error("e2:"+e2.getMessage());
            }
            initRgv();
        }
    }
@@ -737,7 +843,14 @@
     */
    private boolean write(TaskProtocol taskProtocol) throws InterruptedException {
        if (null == taskProtocol) {
            log.error("RGV写入命令为空");
            log.error("RGV写入命令为空 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
            try{
                DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV写入命令为空");
            } catch (Exception e2){
                log.error("e2:"+e2.getMessage());
            }
            return false;
        }
//        convertRow(command);
@@ -789,6 +902,14 @@
            Thread.sleep(200);
            this.readStatus();
            log.info("RGV 命令下发[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(taskProtocol));
            log.error("RGV 命令下发 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
            try{
                DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
                deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV 命令下发"+JSON.toJSON(taskProtocol));
            } catch (Exception e2){
                log.error("e2:"+e2.getMessage());
            }
            OutputQueue.RGV.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(taskProtocol)));
            return true;
        } else {
src/main/resources/application.yml
@@ -13,7 +13,7 @@
#    password: sa@123
    driver-class-name: dm.jdbc.driver.DmDriver
#    url: jdbc:dm://27.172.2.101:5236/SOURCE
    url: jdbc:dm://27.172.2.102:5236/SOURCE
    url: jdbc:dm://27.172.2.106:5236/SOURCE
#    url: jdbc:dm://127.0.0.1:5236/SOURCE
    username: SYSDBA
    password: Zy@12345
@@ -67,7 +67,7 @@
  #url: 10.32.53.195:8080
  # WMS系统ip
  #  url: 10.210.157.109:8090
  url: 27.172.2.135:9027
  url: 27.172.1.135:9027
  # 入库任务申请接口
  #inboundTaskApplyPath: api/InterFace/inboundTaskApply
  inboundTaskApplyPath: api/external/wcs/inboundTaskApply
src/main/webapp/views/taskWrk/taskWrk.html
@@ -84,7 +84,7 @@
                </el-table-column>
                <el-table-column property="barcode" label="托盘码">
                </el-table-column>
                <el-table-column property="crnNo" label="堆垛机号">
                <el-table-column property="crnNo" label="巷道号">
                </el-table-column>
                <el-table-column property="ioPri" label="优先级">
                </el-table-column>
src/main/webapp/views/taskWrkLog/taskWrkLog.html
@@ -79,7 +79,7 @@
                </el-table-column>
                <el-table-column property="wrkSts$" label="工作状态">
                </el-table-column>
                <el-table-column property="crnNo" label="堆垛机号">
                <el-table-column property="crnNo" label="巷道号">
                </el-table-column>
                <el-table-column property="barcode" label="条码">
                </el-table-column>