zyh
11 小时以前 466cc943089116f996db0c2f249878a74fb1cc10
最后可运行版本
8个文件已修改
316 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/AgvTask.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WaitPakin.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java 150 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/HikUtils.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/AgvTask.java
@@ -4,7 +4,6 @@
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.service.BasCrnpService;
@@ -345,6 +344,12 @@
    @TableField("task_no")
    private String taskNo;
    /**
     * PDA下发任务
     */
    @TableField("is_PDA")
    private String isPDA;
    public String getYmd$(){
        if (Cools.isEmpty(this.ymd)){
            return "";
src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -32,32 +32,9 @@
    /**
     * 仓库号
     */
    @ApiModelProperty(value= "规格")
    private String lgnum;
    /**
     * 仓库号
     */
    @ApiModelProperty(value= "型号")
    private String type;
    /**
     * 仓库号
     */
    @ApiModelProperty(value= "条码")
    private String color;
    /**
     * 仓库号
     */
    @ApiModelProperty(value= "批号")
    private String supplier;
    /**
     * 仓库号
     */
    @ApiModelProperty(value= "单据编号")
    private String warehouse;
    /**
     * 仓库号
@@ -72,22 +49,11 @@
    private Double anfme;
    /**
     * 单位
     */
    @ApiModelProperty(value= "单位")
    private String altme;
    /**
     * 托盘条码
     */
    @ApiModelProperty(value= "托盘条码")
    private String zpallet;
    /**
     * 用户ID
     */
    @ApiModelProperty(value= "客户名称")
    private String bname;
    @ApiModelProperty(value= "库位号")
    @TableField("loc_no")
src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java
@@ -10,7 +10,7 @@
    APPLY_IN_OFF_STATION("applyInOffStation", "取货离站请求"),
    APPLY_OFF_STATION("applyOutOffStation", "放货离站请求"),
    ARRIVE_ON_STATION("arriveOnStation", "到站完成"),
    ARRIVE_PUT_STATION("arrivePutStation", "放货到站完成"),
    /*ARRIVE_PUT_STATION("arrivePutStation", "放货到站完成"),*/
    ARRIVE_OFF_STATION("arriveOffStation", "离站完成"),
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -172,8 +172,8 @@
                        && staProtocol.isInEnable()
                        && !staProtocol.isEmptyMk()
                        && staProtocol.getWorkNo() > 9990
                        && staProtocol.getWorkNo() <9998
                        && (staProtocol.isEmptyOutType() || staProtocol.getSiteId() == 301 || staProtocol.getSiteId() == 304)
                        && staProtocol.getWorkNo() < 9998
                        && (staProtocol.getSiteId() == 307 || staProtocol.getSiteId() == 301 || staProtocol.getSiteId() == 304)
                        && staProtocol.isPakMk()) {
                    News.warnNoLog("" + mark + " - 0" + " - 开始执行");
                    Short wrkNo = 9981;
@@ -215,12 +215,6 @@
                                String errorMsg = "扫码失败,请重试";
                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
                            }
                            log.error("输送线异常组托退回={}", errMsg);
                            staProtocol.setWorkNo(wrkNo);
                            staProtocol.setStaNo(bark);
//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            continue;
                        }
                    } else {
@@ -235,16 +229,6 @@
                            String errorMsg = "扫码失败,请重试";
                            MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
                        }
                        log.error("输送线异常组托退回={}", errMsg);
                        staProtocol.setWorkNo(wrkNo);
                        staProtocol.setStaNo(bark);
//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                        continue;
                    }
                    WaitPakin waitPakin = waitPakinMapper.selectByBarcode(barcode);
                    if (waitPakin == null){
                        continue;
                    }
                    // 判断重复工作档
@@ -291,7 +275,17 @@
                        SearchLocParam param = new SearchLocParam();
                        param.setBarcode(barcode);
                        param.setIoType(1);
                        WaitPakin waitPakin = new WaitPakin();
                        List<WaitPakin> waitPakinList = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>()
                                .eq("zpallet", param.getBarcode())
                        );
                        if (waitPakinList.isEmpty()) {
                            param.setIoType(10);
                        } else {
                            param.setIoType(1);
                        }
                        param.setSourceStaNo(inSta.getStaNo());
                        param.setLocType1(locTypeDto.getLocType1());
                        String response = new HttpHandler.Builder()
@@ -345,25 +339,19 @@
//                            }
                        } else {
                            News.error("" + mark + " - 5" + " - 请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
//                            staProtocol.setWorkNo((short)9992);
//                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
//                            devpThread.setPakMk(staProtocol.getSiteId(), false);
//                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                            if (!result) {
//                                throw new CoolException("更新plc站点信息失败");
//                            }
                            staProtocol.setWorkNo((short)9992);
                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            if (!result) {
                                throw new CoolException("更新plc站点信息失败");
                            }
                            // led 异常显示
                            if (ledThread != null) {
                                String errorMsg = jsonObject.getString("msg");
                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
                            }
                            log.error("输送线异常组托退回={}", errMsg);
                            staProtocol.setWorkNo(wrkNo);
                            staProtocol.setStaNo(bark);
//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                        }
                    } catch (Exception e) {
@@ -1140,11 +1128,11 @@
            } else if (wrkMast.getStaNo() == 402) {
                ip = "172.26.4.232";
            } else if (wrkMast.getStaNo() == 307) {
                ip = "172.26.1.231";
            } else if (wrkMast.getStaNo() == 303) {
                ip = "172.26.1.232";
                ip = "172.26.1.182";
            } else if (wrkMast.getStaNo() == 301) {
                ip = "172.26.1.180";
            } else if (wrkMast.getStaNo() == 304) {
                ip = "172.26.1.233";
                ip = "172.26.1.181";
            }
            SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
            String newName = sf.format(new Date()) + "_" + locMast.getLocNo();
@@ -1291,7 +1279,7 @@
                if (staProtocol.isEmptyOutType() || staProtocol.getSiteId() == 301 || staProtocol.getSiteId() == 304) {
                    boo1 = true;
                }
                if (((staProtocol.getSiteId() == 301 || staProtocol.getSiteId() == 304) && staProtocol.isOutEnable()) || staProtocol.getSiteId()==307) {
                if (((staProtocol.getSiteId() == 301 || staProtocol.getSiteId() == 304) && staProtocol.isOutEnable()) || staProtocol.getSiteId() == 307) {
                    boo2 = true;
                }
@@ -1311,7 +1299,7 @@
                        break;
                    }
                    // 双深库位且浅库位有货,则需先对浅库位进行库位移转
                    // 双深库位且浅库位有货,则需先对0浅库位进行库位移转
                    if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
                        String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
                        LocMast shallowLoc = locMastService.selectById(shallowLocNo);
@@ -1398,7 +1386,7 @@
                        wrkMast.setModiTime(now);
                        wrkMastMapper.updateById(wrkMast);
                    }
                } else if (staProtocol.getSiteId() == 304 && staProtocol.isAutoing() && staProtocol.isLoading() && !staProtocol.isOutEnable()){
                } else if (staProtocol.getSiteId() == 304 && staProtocol.isAutoing() && staProtocol.isLoading() && !staProtocol.isOutEnable()) {
                    StaProtocol staProtocol1 = devpThread.getStation().get(301);
                    if (staProtocol1 == null) {
                        break;
@@ -2188,7 +2176,7 @@
//                        ledCommand.setTitle("并板入库");
//                        break;
                    default:
                        News.error("" + mark + " - 1" + " - 任务入出库类型错误!!![工作号:{}] [入出库类型:{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
//                        News.error("" + mark + " - 1" + " - 任务入出库类型错误!!![工作号:{}] [入出库类型:{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
                        break;
                }
                ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -1,6 +1,7 @@
package com.zy.asrs.service.impl;
import com.alibaba.excel.util.StringUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
@@ -11,6 +12,7 @@
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.Task;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
@@ -68,7 +70,12 @@
        String slotCategory = values.getString("slotCategory");
        String slotCode = values.getString("slotCode");
        EntityWrapper<AgvTask> wrapper = new EntityWrapper<>();
        wrapper.eq("task_no", rcsReporterTask.getRobotTaskCode().substring(0, rcsReporterTask.getRobotTaskCode().length() - 2));
        // 修改后的逻辑:有"-"则去掉最后一个"-"及后面内容,没有则保持原样
        String taskNo = rcsReporterTask.getRobotTaskCode();
        if (taskNo.contains("-")) {
            taskNo = taskNo.substring(0, taskNo.lastIndexOf("-"));
        }
        wrapper.eq("task_no", taskNo);
        AgvTask task = agvTaskService.selectOne(wrapper);
        if (!Cools.isEmpty(task)) {
            try {
@@ -100,7 +107,7 @@
                                    rcsReturn.setData(data);
                                } else {
                                    //出发PLC站点的扫码器扫码
                                    boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
                                    boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
                                    if (result) {
                                        log.info("入库站点={}触发扫码成功", staProtocol.getSiteId());
                                        // 返回RCS
@@ -134,7 +141,6 @@
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            transParent.setStartStation(task.getSourceStaNo());
                            transParent.setAgvCode("2");//连接器库
                            //08-1是空托盘转序任务
                            //08-2是物料转序任务
@@ -169,7 +175,26 @@
                    //放货完成 --》agv已经离开
                    case TASK_END: {
                        if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307")) {
                        try {
                            Thread.sleep(5000);
                        } catch (InterruptedException e) {
                            throw new RuntimeException(e);
                        }
                        if (task.getStaNo().equals("Q-E1")){
                            // 更新任务状态等内部逻辑
                            task.setWrkSts(304L);   // 301 任务下发、302 任务执行、303 任务中断、304 任务结束
                            task.setModiTime(new Date());
                            agvTaskService.updateById(task);
                            // 返回RCS
                            rcsReturn.setCode("SUCCESS");
                            rcsReturn.setMessage("");
                            JSONObject data = new JSONObject();
                            data.put("robotTaskCode", robotTaskCode);
                            rcsReturn.setData(data);
                        }
                        else if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307")) {
                            Integer sourceStaNo = Integer.valueOf(task.getStaNo());
                            SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                            StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
@@ -190,8 +215,8 @@
                            if (boo) {
                                staProtocol.setWorkNo(wrkNo);//空料架到位信号点
                                staProtocol.setStaNo(Short.valueOf("0"));
                                boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
                                log.info("AGV放货完成,给站点写9991工作号,下发任务:{},站点:{},agv任务号:{}", result, task.getStaNo(), task.getTaskNo());
                                boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
                                log.info("AGV放货完成,给站点写9997工作号,下发任务:{},站点:{},agv任务号:{}", result, task.getStaNo(), task.getTaskNo());
                                if (result) {
                                    // 更新任务状态等内部逻辑
                                    task.setWrkSts(304L);   // 301 任务下发、302 任务执行、303 任务中断、304 任务结束
@@ -200,6 +225,7 @@
                                    // 返回RCS
                                    rcsReturn.setCode("SUCCESS");
                                    rcsReturn.setMessage("");
                                    JSONObject data = new JSONObject();
                                    data.put("robotTaskCode", robotTaskCode);
                                    rcsReturn.setData(data);
@@ -224,7 +250,6 @@
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            transParent.setStartStation(task.getSourceStaNo());
                            transParent.setAgvCode("2");//连接器库
                            //08-1是空托盘转序任务
                            //08-2是物料转序任务
@@ -299,8 +324,7 @@
                            TransParent transParent = new TransParent();
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            transParent.setStartStation(task.getSourceStaNo());
                            transParent.setStationId(task.getSourceStaNo());
                            transParent.setAgvCode("2");//连接器库
                            //08-1是空托盘转序任务
                            //08-2是物料转序任务
@@ -341,9 +365,11 @@
                            if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
                                staProtocol.setWorkNo((short) 0);
                                staProtocol.setStaNo((short) 0);
                                boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
                                boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
                                log.info("AGV取货完成,给站点写0工作号,下发任务:{},站点:{},agv任务号:{}", result, task.getStaNo(), task.getTaskNo());
                                if (result) {
                                    task.setWrkSts(303L);
                                    agvTaskService.updateById(task);
                                    // 返回RCS
                                    rcsReturn.setCode("SUCCESS");
                                    rcsReturn.setMessage("");
@@ -358,15 +384,12 @@
                                    data.put("robotTaskCode", robotTaskCode);
                                    rcsReturn.setData(data);
                                }
                            }
                        } else {
                            TransParent transParent = new TransParent();
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            transParent.setStartStation(task.getSourceStaNo());
                            transParent.setStationId(task.getSourceStaNo());
                            transParent.setAgvCode("2");//连接器库
                            //08-1是空托盘转序任务
                            //08-2是物料转序任务
@@ -400,6 +423,7 @@
                    break;
                    //AGV取货离站请求
                    case APPLY_IN_OFF_STATION: {
                        //如果是立库站点直接允许离站
                        if (task.getSourceStaNo().equals("401") || task.getSourceStaNo().equals("402") || task.getSourceStaNo().equals("307")) {
                            RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
@@ -428,12 +452,20 @@
                                }
                            }
                        } else {
                            // 延迟处理,确保到站完成信号优先处理
                            try {
                                Thread.sleep(5000); // 睡眠5秒
                            } catch (InterruptedException e)
                            {
                                Thread.currentThread().interrupt();
                            }
                            //如果是工位需要像mes请求离站
                            TransParent transParent = new TransParent();
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            transParent.setStartStation(task.getSourceStaNo());
                            transParent.setStationId(values.getString("slotName"));
                            transParent.setAgvCode("2");//连接器库
                            //08-1是空托盘转序任务
                            //08-2是物料转序任务
@@ -467,7 +499,7 @@
                    //AGV放货离站请求
                    case APPLY_OFF_STATION: {
                        //如果是立库站点直接允许离站
                        if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307")) {
                        if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307") || task.getTaskType().equals("AGV补空料架")) {
                            RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
                            rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            rcsTaskContinue.setTriggerType("TASK");
@@ -478,7 +510,7 @@
                            if (!StringUtils.isEmpty(response) && response.contains("code")) {
                                RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
                                if ("SUCCESS".equals(rcsReturn1.getCode())) {
                                    // 返回RCS
//                                     返回RCS
                                    rcsReturn.setCode("SUCCESS");
                                    rcsReturn.setMessage("");
                                    JSONObject data = new JSONObject();
@@ -494,12 +526,19 @@
                                }
                            }
                        } else {
                            // 延迟处理,确保到站完成信号优先处理
                            try {
                                Thread.sleep(5000); // 睡眠5秒
                            } catch (InterruptedException e)
                            {
                                Thread.currentThread().interrupt();
                            }
                            //如果是工位需要像mes请求离站
                            TransParent transParent = new TransParent();
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            transParent.setStartStation(task.getSourceStaNo());
                            transParent.setStationId(values.getString("slotName"));
                            transParent.setAgvCode("2");//连接器库
                            //08-1是空托盘转序任务
                            //08-2是物料转序任务
@@ -533,7 +572,7 @@
                    }
                    //到站完成
                    case ARRIVE_ON_STATION: {
                        if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307")) {
                        if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || values.getString("slotName").equals("307")) {
                            // 返回RCS
                            rcsReturn.setCode("SUCCESS");
                            rcsReturn.setMessage("");
@@ -544,53 +583,7 @@
                            TransParent transParent = new TransParent();
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            transParent.setStartStation(task.getSourceStaNo());
                            transParent.setAgvCode("2");//连接器库
                            //08-1是空托盘转序任务
                            //08-2是物料转序任务
                            if (task.getTaskType().equals("ZX-AGV-08-1")) {
                                transParent.setTransType("08-1");
                            } else if (task.getTaskType().equals("ZX-AGV-08-2")) {
                                transParent.setTransType("08-2");
                            } else if (task.getTaskType().equals("PP-AGV")) {
                                transParent.setTransType("10");
                            } else if (task.getTaskType().equals("ZP-AGV")) {
                                transParent.setTransType("11");
                            }
                            int i = AGVArrivalCompletedFit(transParent);
                            if (i == 1) {
                                rcsReturn.setCode("SUCCESS");
                                rcsReturn.setMessage("");
                                JSONObject data = new JSONObject();
                                data.put("robotTaskCode", robotTaskCode);
                                rcsReturn.setData(data);
                            } else {
                                // 返回RCS
                                rcsReturn.setCode("Err_Internal");
                                rcsReturn.setMessage("");
                                JSONObject data = new JSONObject();
                                data.put("robotTaskCode", robotTaskCode);
                                rcsReturn.setData(data);
                            }
                        }
                        break;
                    }
                    //到站完成
                    case ARRIVE_PUT_STATION: {
                        if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307")) {
                            // 返回RCS
                            rcsReturn.setCode("SUCCESS");
                            rcsReturn.setMessage("");
                            JSONObject data = new JSONObject();
                            data.put("robotTaskCode", robotTaskCode);
                            rcsReturn.setData(data);
                        } else {
                            TransParent transParent = new TransParent();
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            transParent.setStartStation(task.getSourceStaNo());
                            transParent.setStationId(values.getString("slotName"));
                            transParent.setAgvCode("2");//连接器库
                            //08-1是空托盘转序任务
                            //08-2是物料转序任务
@@ -781,4 +774,25 @@
        return 0;
    }
    public void agvPause(StaProtocol staProtocol){
        if (staProtocol.isHighError()) {
            String url = HIK_URL + "/api/robot/controller/zone/pause";
            try {
                System.out.println("超高报警");
                JSONObject params = null;
                params.put("zoneCode", "GK307");
                params.put("mapCode", "BB");
                params.put("invoke", "FREEZE");
                String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(params));
                JSONObject jsonObject = JSON.parseObject(response);
                if (!StringUtils.isEmpty(response) && (jsonObject.getString("code").equals("SUCCESS") || jsonObject.getInteger("code") == 200)) {
                    System.out.println("暂停成功");
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    }
}
src/main/java/com/zy/common/utils/HikUtils.java
@@ -15,6 +15,18 @@
    public void startPic(String ip, String filename) {
        try {
            if (hikUrl == null || "".equals(hikUrl)) {
                News.error("hikUrl配置为空,无法进行拍摄");
                return;
            }
            if (ip == null || "".equals(ip)) {
                News.error("IP地址为空,无法进行拍摄");
                return;
            }
            if (filename == null || "".equals(filename)) {
                News.error("文件名为空,无法进行拍摄");
                return;
            }
            HashMap<String, Object> data = new HashMap<>();
            data.put("ip", ip);
            data.put("filename", filename);
@@ -25,13 +37,23 @@
                    .setJson(JSON.toJSONString(data))
                    .build()
                    .doPost();
            if (response == null || "".equals(response)) {
                News.error("请求接口失败,返回值为空");
                return;
            }
            JSONObject jsonObject = JSON.parseObject(response);
            if (jsonObject.getInteger("code").equals(200)) {
            if (jsonObject == null) {
                News.error("解析响应失败,返回值不是有效的JSON");
                return;
            }
            Boolean success = jsonObject.getBoolean("success");
            if (success != null && success) {
                News.error("请求接口成功!!!url:{};request:{};response:{}", hikUrl + "/capture", JSON.toJSONString(data), response);
            } else {
                News.error("请求接口失败!!!url:{};request:{};response:{}", hikUrl + "/capture", JSON.toJSONString(data), response);
            }
        } catch (Exception e) {
            News.error("拍摄失败:{}", e.getMessage());
            e.printStackTrace();
        }
    }
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -13,6 +13,7 @@
import com.zy.asrs.entity.DeviceDataLog;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.DeviceDataLogService;
import com.zy.asrs.service.impl.RcsServiceImpl;
import com.zy.common.utils.News;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
@@ -250,6 +251,9 @@
                staProtocol1.setRightError(status1[4]);
                staProtocol1.setWeightError(status1[5]);
                staProtocol1.setBarcodeError(status1[6]);
                RcsServiceImpl rcsService = new RcsServiceImpl();
                rcsService.agvPause(staProtocol1);
            }
        }
src/main/resources/application.yml
@@ -38,8 +38,9 @@
#mes对接
mes:
  url: http://172.26.160.5:80/dev-api/basicmodel/WmsFit/Api/
  #  url: http://192.9.100.173:8088/prod-api/basicmodel/WmsFit/Api/
  url: http://172.26.160.73:8080/basicmodel/WmsFit/Api/
  #  url: http://172.26.160.5:8080/basicmodel/WmsFit/Api/
  #默认接口操作人员id
  defaultUserId: 30
@@ -48,22 +49,22 @@
  switch: false
  url: http://172.26.11.98:80/rcs/rtas/
zyHikUrl: 127.0.0.1:8000
zyHikUrl: 172.26.1.189:8000
# 下位机配置
wcs-slave:
  # 双深
  doubleDeep: true
  # 双深库位排号
  doubleLocs: 1
  doubleLocs: 3
  # 左深库位排号
#  doubleLocsLeft: 4,7,11,15,19,23
  # 右深库位排号
  doubleLocsRight: 1
  doubleLocsRight: 3
  # 左浅库位排号
  shallowLocsLeft: 2
  shallowLocsLeft: 4
  # 右浅库位排号
  shallowLocsRight: 2
  shallowLocsRight: 4
  # 一个堆垛机负责的货架排数
  groupCount: 2
  # 堆垛机1
@@ -80,42 +81,42 @@
    crnInStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 301
      row: 2
      row: 4
      bay: 1
      lev: 1
    # 堆垛机入库站点
    crnInStn[1]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 307
      row: 3
      row: 5
      bay: 5
      lev: 1
    # 堆垛机入库站点
    crnInStn[2]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 304
      row: 3
      row: 5
      bay: 1
      lev: 1
    # 堆垛机出库站点
    crnOutStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 304
      row: 3
      row: 5
      bay: 1
      lev: 1
    # 堆垛机出库站点
    crnOutStn[1]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 307
      row: 3
      row: 5
      bay: 5
      lev: 1
    # 堆垛机出库站点
    crnOutStn[2]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 301
      row: 2
      row: 4
      bay: 1
      lev: 1
  # 输送线1