野心家
2025-03-20 95cc083ea58c4db51d0b89184c58ad67bc4f3b12
初始化
13个文件已修改
536 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/BasDevp.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/TaskWrk.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/Result.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/TaskLogScheduler.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/TaskMastScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-prod.yml 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BasDevpMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasDevp.java
@@ -234,6 +234,10 @@
    @TableField("sta_err")
    private Integer staErr;
    @ApiModelProperty(value= "异常码")
    @TableField("sta_err_msg")
    private String staErrMsg;
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
src/main/java/com/zy/asrs/entity/TaskWrk.java
@@ -186,7 +186,7 @@
    @TableField("origin_start_point")
    private String originStartPoint;
    @ApiModelProperty(value = "原始起点")
    @ApiModelProperty(value = "原始终点")
    @TableField("origin_target_point")
    private String originTargetPoint;
src/main/java/com/zy/asrs/entity/param/Result.java
@@ -4,13 +4,11 @@
@Data
public class Result {
    private Long ShelfUnitId;   //分配的货位ID
    private String Alley;       //分配的货位所属巷道
    private Long TaskId;        //分配的货位所属任务ID
    private String TaskNo;      //分配的货位所属任务编号
    private int Row;            //分配的货位所属排
    private int Floor;          //分配的货位所属层
    private int Column;         //分配的货位所属列
    private Integer taskNo;      //分配的货位所属任务编号
    //站位编号   用户是从哪个口入的
    private Integer TerminalNo;
    private String shelfUnitId;
    //托盘码
    private String barcode;
}
src/main/java/com/zy/asrs/entity/param/StorageEscalationParam.java
@@ -1,13 +1,20 @@
package com.zy.asrs.entity.param;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
@Data
public class StorageEscalationParam {
    //托盘码
    private String BoxNo;
    private String boxNo;
    //执行状态   0:成功 1:失败
    private Integer WCSStatus=0;
    //错误信息   具体的错误信息(超高,超重等)
    private String WCSErrorMessage="";
    //源站点
    private Integer wcsSourceStaNo;
    //空板满板 1.满板 2.空板
    private Integer wcsIoType;
}
src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
@@ -13,7 +13,7 @@
@Repository
public interface TaskWrkMapper extends BaseMapper<TaskWrk> {
    TaskWrk selectByTaskNo(String taskNo);
        TaskWrk selectByTaskNo(String taskNo);
    TaskWrk selectByStartPoint(@Param("startPoint") String startPoint);
    TaskWrk selectByWrkNo(Integer wrkNo);
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -131,38 +131,6 @@
                    }
                    Short workNo = staProtocol.getWorkNo();
                    Short stano = staProtocol.getStaNo();
                    // 尺寸检测异常
                    boolean back = false;
                    String errMsg = "";
                    if (staProtocol.isFrontErr()) {
                        errMsg = "前超限";
                        back = true;
                    }
                    if (!back && staProtocol.isBackErr()) {
                        errMsg = "后超限";
                        back = true;
                    }
                    if (!back && staProtocol.isHighErr()) {
                        errMsg = "高超限";
                        back = true;
                    }
                    if (!back && staProtocol.isLeftErr()) {
                        errMsg = "左超限";
                        back = true;
                    }
                    if (!back && staProtocol.isRightErr()) {
                        errMsg = "右超限";
                        back = true;
                    }
                    if (!back && staProtocol.isWeightErr()) {
                        errMsg = "超重";
                        back = true;
                    }
                    if (!back && staProtocol.isBarcodeErr()) {
                        errMsg = "扫码失败";
                        back = true;
                    }
                    // 判断是否满足入库条件
                    if (staProtocol.isAutoing() && staProtocol.isLoading()
                            && staProtocol.isInEnable()
@@ -174,25 +142,38 @@
                            continue;
                        }
                        String BoxNo = barcodeThread.getBarcode();
                        TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
                        if (!Cools.isEmpty(taskWrk1)) {
                            log.info("托盘码:" + BoxNo + "任务档存在");
                            if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
                                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                                        .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
                                if (Cools.isEmpty(staDesc)) {
                                    return;
                                } else {
                                    continue;
                        if (BoxNo.equals("00000000")) {
                            storageEscalationParam.setWCSStatus(1);
                            storageEscalationParam.setWCSErrorMessage("没有扫到码");
                            BasDevp basDevp= basDevpService.selectOne(new EntityWrapper<BasDevp>()
                                    .eq("dev_no",staProtocol.getSiteId()));
                            if(Cools.isEmpty(basDevp)){
                                log.error("扫码失败并且没有找到该站点---"+staProtocol.getSiteId());
                            }else{
                                basDevp.setStaErr(1);//没有扫到码
                                basDevp.setStaErrMsg("没有扫到码!");
                                basDevpService.updateById(basDevp);
                            }
                            continue;
                        }else{
                            TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
                            if (!Cools.isEmpty(taskWrk1)) {
                                log.info("托盘码:" + BoxNo + "任务档存在");
                                if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
                                    StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                                            .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
                                    if (Cools.isEmpty(staDesc)) {
                                        return;
                                    } else {
                                        continue;
                                    }
                                }
                            }
                        }
                        if (back) {
                            storageEscalationParam.setWCSStatus(1);
                            storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
                        }
                        log.info("组托入库={}", storageEscalationParam);
                        storageEscalationParam.setBoxNo(BoxNo);
                        storageEscalationParam.setWcsIoType(1);//满板
                        storageEscalationParam.setWcsSourceStaNo(staProtocol.getSiteId());
                        String response = "";
                        Boolean success = false;
                        try {
@@ -203,84 +184,52 @@
                                    .build()
                                    .doPost();
                            JSONObject jsonObject = JSON.parseObject(response);
                            if (back) {
                                if (staProtocol.getWorkNo() >= 9801 && staProtocol.getWorkNo() <= 9825) {
                                    staProtocol.setStaNo((short) 105);
                                } else if (staProtocol.getWorkNo() >= 9826 && staProtocol.getWorkNo() <= 9850) {
                                    staProtocol.setStaNo((short) 107);
                                } else if (staProtocol.getWorkNo() >= 9851 && staProtocol.getWorkNo() <= 9875) {
                                    staProtocol.setStaNo((short) 109);
                                } else {
                                    staProtocol.setStaNo((short) 110);
                                }
                                devpThread.setPakMk(staProtocol.getSiteId(), false);
                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            } else {
                                if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("ReturnStatus")) && jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
                                    Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
                                    // 创新一个入库工作档
                                    TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
                            if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("ReturnStatus")) && jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
                                Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
                                // 创新一个入库工作档
                                TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo()+"");
                                if (Cools.isEmpty(taskWrk)) {
                                    taskWrk = createTask1(result, BoxNo,staProtocol.getSiteId());
                                    if (Cools.isEmpty(taskWrk)) {
                                        taskWrk = createTask1(result, BoxNo);
                                        if (Cools.isEmpty(taskWrk)) {
                                            log.error("库位异常,库位号:={}", taskWrk.getOriginTargetPoint());
                                        } else {
                                            taskWrkService.insert(taskWrk);
                                            StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                                                    .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
                                            staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
                                            staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
                                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                            HashMap<String, Object> hashMap = new HashMap<>();
                                            hashMap.put("TaskNo", taskWrk.getTaskNo());
                                            Boolean bool = false;
                                            try {
                                                //开始上报,任务开始时,WCS回调WMS
                                                response = new HttpHandler.Builder()
                                                        .setUri(wmsUrl)
                                                        .setPath(taskStatusFeedbackPath)
                                                        .setJson(JSON.toJSONString(hashMap))
                                                        .build()
                                                        .doPost();
                                                JSONObject jsonObject1 = JSON.parseObject(response);
                                                if (jsonObject1.get("ReturnStatus").equals(0)) {
                                                    bool = true;
                                                }
                                            } catch (Exception e) {
                                            }finally {
                                                apiLogService.save("wcs开始入库任务上报wms"
                                                        , wmsUrl + TaskExecCallback
                                                        , null
                                                        , "127.0.0.1"
                                                        , JSON.toJSONString(hashMap)
                                                        , response
                                                        , bool
                                                );
                                            }
                                        }
                                        log.error("库位异常,库位号:={}", taskWrk.getOriginTargetPoint());
                                    } else {
//                                    staProtocol.setWorkNo((short) 9991);
                                        if (staProtocol.getWorkNo() >= 9801 && staProtocol.getWorkNo() <= 9825) {
                                            staProtocol.setStaNo((short) 105);
                                        } else if (staProtocol.getWorkNo() >= 9826 && staProtocol.getWorkNo() <= 9850) {
                                            staProtocol.setStaNo((short) 107);
                                        } else if (staProtocol.getWorkNo() >= 9851 && staProtocol.getWorkNo() <= 9875) {
                                            staProtocol.setStaNo((short) 109);
                                        } else {
                                            staProtocol.setStaNo((short) 110);
                                        }
                                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                                        taskWrkService.insert(taskWrk);
                                        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                                                .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
                                        staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
                                        staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
                                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                    }
                                        HashMap<String, Object> hashMap = new HashMap<>();
                                        hashMap.put("TaskNo", taskWrk.getTaskNo());
                                        Boolean bool = false;
                                        try {
                                            //开始上报,任务开始时,WCS回调WMS
                                            response = new HttpHandler.Builder()
                                                    .setUri(wmsUrl)
                                                    .setPath(taskStatusFeedbackPath)
                                                    .setJson(JSON.toJSONString(hashMap))
                                                    .build()
                                                    .doPost();
                                            JSONObject jsonObject1 = JSON.parseObject(response);
                                } else {
//                                staProtocol.setWorkNo((short) 9991);
                                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
                                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                            if (jsonObject1.get("ReturnStatus").equals(0)) {
                                                bool = true;
                                            }
                                        } catch (Exception e) {
                                        } finally {
                                            apiLogService.save("wcs开始入库任务上报wms"
                                                    , wmsUrl + TaskExecCallback
                                                    , null
                                                    , "127.0.0.1"
                                                    , JSON.toJSONString(hashMap)
                                                    , response
                                                    , bool
                                            );
                                        }
                                    }
                                }
                            }
                        } catch (Exception e) {
@@ -423,13 +372,13 @@
                    continue;
                }
                String mbz=taskWrk.getTargetPoint().substring(5);
                String mbz = taskWrk.getTargetPoint().substring(5);
                HashMap<String, Object> hashMap = new HashMap<>();
                hashMap.put("taskNo",taskWrk.getTaskNo());//wms任务号
                hashMap.put("sourceStaNo",staDetl.getDevNo());//源站点
                hashMap.put("staNo",Integer.parseInt(mbz)+"");//目标站
                hashMap.put("locNo",taskWrk.getTargetPoint());//目标库位
                hashMap.put("taskNo", taskWrk.getTaskNo());//wms任务号
                hashMap.put("sourceStaNo", staDetl.getDevNo());//源站点
                hashMap.put("staNo", Integer.parseInt(mbz) + "");//目标站
                hashMap.put("locNo", taskWrk.getTargetPoint());//目标库位
                String response = "";
                Boolean bool = false;
                try {
@@ -442,7 +391,7 @@
                            .doPost();
                    JSONObject jsonObject = JSON.parseObject(response);
                    if(jsonObject.get("code").equals(200)){
                    if (jsonObject.get("code").equals(200)) {
                        bool = true;
//                        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//派发状态
                        taskWrk.setAssignTime(new Date());//派发时间
@@ -452,7 +401,7 @@
                        taskWrk.setModiUser(9988L);
                    }
                } catch (Exception e) {
                }finally {
                } finally {
                    apiLogService.save("wcs派发入库任务给RCS"
                            , wcsUrl + wcsInboundTaskApplyPath
                            , null
@@ -521,13 +470,13 @@
                            break;
                        }
                        String mbz=taskWrk.getTargetPoint().substring(5);
                        String mbz = taskWrk.getTargetPoint().substring(5);
                        HashMap<String, Object> hashMap = new HashMap<>();
                        hashMap.put("taskNo",taskWrk.getTaskNo());//wms任务号
                        hashMap.put("sourceStaNo",staDetl.getDevNo());//源站点
                        hashMap.put("staNo",Integer.parseInt(mbz)+"");//目标站
                        hashMap.put("locNo",taskWrk.getTargetPoint());//目标库位
                        hashMap.put("taskNo", taskWrk.getTaskNo());//wms任务号
                        hashMap.put("sourceStaNo", staDetl.getDevNo());//源站点
                        hashMap.put("staNo", Integer.parseInt(mbz) + "");//目标站
                        hashMap.put("locNo", taskWrk.getTargetPoint());//目标库位
                        String response = "";
                        Boolean bool = false;
                        try {
@@ -540,7 +489,7 @@
                                    .doPost();
                            JSONObject jsonObject = JSON.parseObject(response);
                            if(jsonObject.get("code").equals(200)){
                            if (jsonObject.get("code").equals(200)) {
                                bool = true;
//                        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//派发状态
                                taskWrk.setAssignTime(new Date());//派发时间
@@ -550,7 +499,7 @@
                                taskWrk.setModiUser(9988L);
                            }
                        } catch (Exception e) {
                        }finally {
                        } finally {
                            apiLogService.save("wcs派发出库任务给RCS"
                                    , wcsUrl + wcsInboundTaskApplyPath
                                    , null
@@ -1140,35 +1089,21 @@
        return response;
    }
    private TaskWrk createTask1(Result result, String barcode) {
        String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
    private TaskWrk createTask1(Result result, String barcode,Integer devNo) {
        Date now = new Date();
        TaskWrk taskWrk = new TaskWrk();
        int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//获取入库工作号
        taskWrk.setTaskNo(result.getTaskNo());//任务号
        taskWrk.setWrkNo(workNo1);
//        int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//获取入库工作号
        taskWrk.setTaskNo(result.getTaskNo()+"");//任务号
        taskWrk.setWrkNo(result.getTaskNo());
        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//任务状态:派发
        taskWrk.setCreateTime(now);
        taskWrk.setIoType(1);//任务类型
        taskWrk.setIoPri(13);//优先级
        taskWrk.setBarcode(barcode);//条码
        LocMast locMast = locMastService.selectByLocNo(locNo);
        taskWrk.setCrnNo(locMast.getCrnNo());
        taskWrk.setTargetPoint(locNo);
        taskWrk.setStartPoint("116");
        if (result.getAlley().equals("1")) {
            taskWrk.setCrnNo(1);
        } else {
            taskWrk.setCrnNo(2);
        }
        if (taskWrk.getIoType() == 1) {
            taskWrk.setWrkSts(2);
            if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
                taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
            }
        }
        taskWrk.setTargetPoint(devNo+"");//站点终点
        taskWrk.setStartPoint(devNo+"");//站点起点
        taskWrk.setOriginStartPoint("");//源库位
        taskWrk.setOriginTargetPoint(result.getShelfUnitId());//目标库位
        return taskWrk;
    }
src/main/java/com/zy/asrs/task/TaskLogScheduler.java
@@ -53,8 +53,8 @@
    private String movePath;
    @Value("${wms.inboundTaskApplyPath}")
    private String inboundTaskApplyPath;
    @Value("${wms.TaskExecCallback}")
    private String TaskExecCallback;
    @Value("${wms.taskLeave}")
    private String taskLeave;
    @Value("${wms.taskStatusFeedbackPath}")
    private String taskStatusFeedbackPath;
@@ -68,18 +68,58 @@
        List<TaskWrk> taskWrkList = taskWrkService.selectList(new EntityWrapper<TaskWrk>().in("wrk_sts", 7,18));
        for (TaskWrk taskWrk : taskWrkList) {
            TaskWrkLog taskWrkLog = new TaskWrkLog(taskWrk);
            if(taskWrkLog.getIoType().equals(2)){
                taskWrkLog.setWrkSts(19);
            }else{
            if(taskWrkLog.getIoType().equals(1)){
                taskWrkLog.setWrkSts(8);
                taskWrkLog.setModiTime(new Date());
                if (!wrkLogService.insert(taskWrkLog)) {
                    throw new CoolException("转历史档失败" + taskWrkLog);
                }
                if (!taskWrkService.deleteById(taskWrk)) {
                    throw new CoolException("任务档删除失败" + taskWrkLog);
                }
            }else if(taskWrkLog.getIoType().equals(2)){
                BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("wrk_no",taskWrk.getWrkNo()));
                if(basDevp==null){
                    HashMap<Object, Object> headParam = new HashMap<>();
                    String response = "";
                    Boolean bool = false;
                    try {
                        headParam.put("TaskNo", taskWrk.getTaskNo());
                        log.info("wcs"+"出库搬离任务上报wms={}", taskWrk);
                        response = new HttpHandler.Builder()
                                // .setHeaders(headParam)
                                .setUri(wmsUrl)
                                .setPath(taskLeave)
                                .setJson(JSON.toJSONString(headParam))
                                .build()
                                .doPost();
                        JSONObject jsonObject = JSON.parseObject(response);
                        if(jsonObject.get("ReturnStatus").equals(0)){
                        }
                    } catch (Exception e){
                        log.error("wcs搬离出库给wms失败{},返回值={}", taskWrk, response);
                    }finally {
                        apiLogService.save("wcs搬离出库给wms"
                                , wmsUrl + taskLeave
                                , null
                                , "127.0.0.1"
                                , JSON.toJSONString(headParam)
                                , response
                                , bool
                        );
                    }
                    taskWrkLog.setWrkSts(19);
                    taskWrkLog.setModiTime(new Date());
                    if (!wrkLogService.insert(taskWrkLog)) {
                        throw new CoolException("转历史档失败" + taskWrkLog);
                    }
                    if (!taskWrkService.deleteById(taskWrk)) {
                        throw new CoolException("任务档删除失败" + taskWrkLog);
                    }
                }
            }
            taskWrkLog.setModiTime(new Date());
            if (!wrkLogService.insert(taskWrkLog)) {
                throw new CoolException("转历史档失败" + taskWrkLog);
            }
            if (!taskWrkService.deleteById(taskWrk)) {
                throw new CoolException("任务档删除失败" + taskWrkLog);
            }
        }
    }
}
src/main/java/com/zy/asrs/task/TaskMastScheduler.java
@@ -65,7 +65,7 @@
            if (taskWrk.getWrkSts() == 6) {//入库完成
                headParam.put("Result", 1);
                s="入库完成";
                taskWrk.setWrkSts(7);//入库任务转历史档7--》8
                taskWrk.setStatus(7);//入库任务转历史档6--》7
            } else if (taskWrk.getWrkSts() == 16) {//出库完成-待搬离
                headParam.put("Result", 1);
                s="出库完成-待搬离";
src/main/java/com/zy/core/MainProcess.java
@@ -50,7 +50,7 @@
                    // 入出库  ===>>  调用RCS进行入出库
                    mainService.crnIoExecute();
                    // 出库  ===>>  堆垛机出库站到出库站
                    mainService.crnStnToOutStn();
//                    mainService.crnStnToOutStn();
                    // 入库  ===>> 执行对工作档的完成操作
//                    mainService.storeFinished();
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -48,12 +48,7 @@
    private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
    private short heartBeatVal = 1;
    public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
        add(100);add(101);add(102);add(103);add(104);
        add(105);add(106);add(107);add(108);add(109);
        add(110);add(111);add(112);add(113);add(114);
        add(115);add(116);add(117);add(118);add(119);
        add(120);add(121);add(122);add(123);add(124);
        add(125);add(1001);add(1002);add(1003);add(1004);
        add(100);add(200);
    }};
    /*public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
        add(200);add(201);add(202);add(203);
@@ -209,7 +204,7 @@
//        updateIoMode();
        ArrayList<Integer> staNos = getStaNo();
        int staNoSize = staNos.size();
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8));
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB1000.0", (short) (staNoSize*8));
        if (result.IsSuccess) {
            for (int i = 0; i < staNoSize; i++) {
                Integer siteId = staNos.get(i); // 站点编号
@@ -241,9 +236,9 @@
        if (slave.getId() == 1) {
            //条码
            //Thread.sleep(200);
            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.848.0", (short) 8);
            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB1000.100.0", (short) 16);
            if (result2.IsSuccess) {
                for (int i = 0; i < 1; i++) {
                for (int i = 0; i < 2; i++) {
                    String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
                    if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
src/main/resources/application-prod.yml
@@ -1,165 +1,33 @@
wcs-slave:
  devp[0]: #输送线
    id: 1
    ip: 10.10.10.130
    ip: 10.10.12.100
    rack: 0
    port: 102
    slot: 0
    emptyInSta[0]: #空板入库口0
      staNo: 116
      staNo: 100
    emptyInSta[1]: #空板入库口2
      staNo: 200
    inSta[0]: #入库口1
      staNo: 116
      backSta: 110
      staNo: 100
      backSta: 100
      barcode: ${wcs-slave.barcode[0].id}
    inSta[1]: #入库口2
      staNo: 200
      backSta: 200
      barcode: ${wcs-slave.barcode[1].id}
    outSta[0]: #出库口1
      staNo: 105
      staNo: 100
    outSta[1]: #出库口2
      staNo: 107
    outSta[2]: #出库口2
      staNo: 109
    outSta[3]: #出库口1
      staNo: 110
      staNo: 200
  barcode[0]: #条码扫描仪
    port: 51236
    ip: 172.17.91.39
    id: 1
#  crn[0]: #堆垛机1
#    rack: 0
#    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
#    port: 102
#    crnOutStn[0]:    #堆垛机出库站点
#      staNo: 101
#      row: 2
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    ip: 192.168.1.100
#    crnInStn[0]:    #堆垛机入库站点1
#      staNo: 100
#      row: 1
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    id: 1
#    slot: 0
#    demo: false
#  crn[1]: #堆垛机2
#    rack: 0
#    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
#    port: 102
#    crnOutStn[0]:    #堆垛机出库站点
#      staNo: 103
#      row: 5
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    ip: 192.168.1.110
#    crnInStn[0]:    #堆垛机入库站点1
#      staNo: 102
#      row: 4
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    id: 2
#    slot: 0
#    demo: false
#  barcode[3]: #条码扫描仪4
#    port: 51236
#    ip: 10.10.10.52
#    id: 4
#  barcode[2]: #条码扫描仪3
#    port: 51236
#    ip: 10.10.10.52
#    id: 3
#
#  barcode[1]: #条码扫描仪2
#    port: 51236
#    ip: 10.10.10.52
#    id: 2
#
#  devp[0]: #输送线
#    emptyInSta[2]: #空板入库口3
#      staNo: 104
#    emptyInSta[1]: #空板入库口2
#      staNo: 102
#    rack: 0
#    emptyInSta[0]: #空板入库口1
#      staNo: 100
#    ip: 192.168.1.140
#    outSta[4]: #出库口5
#      staNo: 104
#    outSta[3]: #出库口4
#      staNo: 103
#    outSta[6]: #出库口7
#      staNo: 106
#    slot: 0
#    outSta[5]: #出库口6
#      staNo: 105
#    outSta[0]: #出库口1
#      staNo: 100
#    outSta[2]: #出库口3
#      staNo: 102
#    emptyInSta[3]: #空板入库口4
#      staNo: 106
#    outSta[1]: #出库口2
#      staNo: 101
#    inSta[2]:
#      staNo: 104
#      barcode: ${wcs-slave.barcode[2].id}
#    inSta[3]:
#      staNo: 106
#      barcode: ${wcs-slave.barcode[3].id}
#    port: 102
#    outSta[7]: #出库口8
#      staNo: 107
#    inSta[0]: #入库口1
#      staNo: 100
#      barcode: ${wcs-slave.barcode[0].id}
#    inSta[1]: #入库口2
#      staNo: 102
#      barcode: ${wcs-slave.barcode[1].id}
#    id: 1
#
#
#  crn[2]: #堆垛机3
#    rack: 0
#    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
#    port: 102
#    crnOutStn[0]:    #堆垛机出库站点
#      staNo: 105
#      row: 9
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    ip: 192.168.1.120
#    crnInStn[0]:    #堆垛机入库站点1
#      staNo: 104
#      row: 8
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    id: 3
#    slot: 0
#    demo: false
#  crn[3]: #堆垛机4
#    rack: 0
#    offset: 2    #偏移量,当堆垛机站点列号=1时,偏移量=2
#    port: 102
#    crnOutStn[0]:    #堆垛机出库站点
#      staNo: 107
#      row: 12
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    ip: 192.168.1.130
#    crnInStn[0]:    #堆垛机入库站点1
#      staNo: 106
#      row: 11
#      bay: 1
#      lev: 1
#      devpPlcId: ${wcs-slave.devp[0].id}
#    id: 4
#    slot: 0
#    demo: false
  barcode[1]: #条码扫描仪
    port: 51236
    ip: 172.17.91.34
    id: 2
src/main/resources/application.yml
@@ -50,15 +50,17 @@
  #url: 10.32.53.195:8080
  # WMS系统ip
  #  url: 10.210.157.109:8090
  url: 127.0.0.1:2410
  url: 127.0.0.1:8081
  # 入库任务申请接口
  #inboundTaskApplyPath: api/InterFace/inboundTaskApply
  inboundTaskApplyPath: api/StereoscopicCallBack/AcceptTaskStatus
  inboundTaskApplyPath: rpc/pakin/loc/v1
  #  inboundTaskApplyPath: open/asrs/inboundTaskApply
  # 任务开始时,WCS回调WMS
  taskStatusFeedbackPath: api/StereoscopicCallBack/TaskExecCallback
  # 任务完成结束时,WCS回调WMS
  TaskExecCallback: api/StereoscopicCallBack/TaskExecFinishedCallback
  taskStatusFeedbackPath: open/asrs/start/task
  # 任务搬到目的地,WCS回调WMS
  TaskExecCallback: open/asrs/destination/task
  # 任务货物离开出库口
  taskLeave : open/asrs/leave/task
  # 移库申请接口
  movePath: api/InterFace/get_InterFace_TestStorage
wcs:
src/main/resources/mapper/BasDevpMapper.xml
@@ -46,6 +46,7 @@
        <result column="agv_start_place" property="agvStartPlace" />
        <result column="agv_target_place" property="agvTargetPlace" />
        <result column="sta_err" property="staErr" />
        <result column="sta_err_msg" property="staErrMsg" />
    </resultMap>