pang.jiabao
2025-05-09 0bdf2da5b1407d7d0dbb90ba11a6ba0f18856ac0
单机调试完成
13个文件已修改
775 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/TaskWrkController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/ToWmsService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/TaskLogScheduler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/TaskReportScheduler.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensCrnThread.java 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-prod.yml 270 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/wcs和wms接口(2).docx 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/TaskWrkController.java
@@ -214,7 +214,7 @@
            locMast.setBarcode(taskWrk.getBarcode());
        }
        toWmsService.addReportLog(taskWrk);
//        toWmsService.addReportLog(taskWrk);
        locMastService.updateById(locMast);
        taskWrk.setStatus(7);//手动完成任务
        taskWrk.setModiTime(new Date());
@@ -263,7 +263,7 @@
        } catch (Exception e) {
            taskWrk.setModiUser(9999L);//操作员
        }
        toWmsService.addReportLog(taskWrk);
//        toWmsService.addReportLog(taskWrk);
        taskWrk.setCompleteTime(now);//完结时间
        taskWrkService.updateById(taskWrk);
src/main/java/com/zy/asrs/service/ToWmsService.java
@@ -15,4 +15,9 @@
    TaskWrk getLocNoFromWms(StorageEscalationParam wmsParam);
    /**
     * ä¸ŠæŠ¥æ‰§è¡ŒçŠ¶æ€
     */
    void executionStatusReport(String taskNo,Integer wrkSts);
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -112,12 +112,15 @@
    private boolean crn3;
    public void generateStoreWrkFile() throws IOException, InterruptedException {
    public synchronized void generateStoreWrkFile() {
        try {
            // æ ¹æ®è¾“送线plc遍历
            for (DevpSlave devp : slaveProperties.getDevp()) {
                // éåŽ†å…¥åº“å£
                for (DevpSlave.Sta inSta : devp.getInSta()) {
                    if (inSta.getStaNo() != 114) {
                        continue;
                    }
                    StorageEscalationParam storageEscalationParam = new StorageEscalationParam();
                    storageEscalationParam.setStationCode(inSta.getStaNo());
                    // èŽ·å–å…¥åº“ç«™ä¿¡æ¯
@@ -161,28 +164,32 @@
                        back = true;
                    }
                    // åˆ¤æ–­æ˜¯å¦æ»¡è¶³å…¥åº“条件
                    if (staProtocol.isAutoing() && staProtocol.isLoading()
                            && staProtocol.isInEnable()
                            && !staProtocol.isEmptyMk() && workNo >= 9790
                            && staProtocol.isPakMk()) {
                    if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
                            && !staProtocol.isEmptyMk() && workNo >= 9000 && staProtocol.isPakMk()) {
//                    if(true){
                        // èŽ·å–æ¡ç æ‰«æä»ªä¿¡æ¯
                        BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
                        if (barcodeThread == null) {
                            continue;
                        }
                        String BoxNo = barcodeThread.getBarcode();
                        if (Cools.isEmpty(BoxNo)) {
                            log.error("{}号条码扫描失败,值:{}",inSta.getBarcode(),BoxNo);
                            continue;
                        }
                        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 (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);
@@ -191,26 +198,37 @@
                        storageEscalationParam.setBarcode(BoxNo);
                        log.info("组托入库={}", storageEscalationParam);
                        TaskWrk taskWrk = toWmsService.getLocNoFromWms(storageEscalationParam);
                        if (taskWrk == null) {
                            log.error("入库请求wms创建任务工作档为空:{}",storageEscalationParam);
                            continue;
                        }
                        if (back) {
                            log.info("托盘退回==>{},{}", BoxNo, errMsg);
                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                        } else {
                            if (!Cools.isEmpty(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));
                                //添加上报日志
                                toWmsService.addReportLog(taskWrk);
                            } else {
                                log.info("创建工作档失败==>{}", taskWrk.getTaskNo());
                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
                                devpThread.setPakMk(staProtocol.getSiteId(), false);
                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            }
//                            toWmsService.addReportLog(taskWrk);
//                            if (!Cools.isEmpty(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));
//                                //添加上报日志
//                                toWmsService.addReportLog(taskWrk);
//                            } else {
//                                log.info("创建工作档失败==>{}", taskWrk.getTaskNo());
//                                staProtocol.setStaNo(inSta.getBackSta().shortValue());
//                                devpThread.setPakMk(staProtocol.getSiteId(), false);
//                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
//                            }
                        }
@@ -231,8 +249,8 @@
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
            // éåŽ†å †åž›æœºå‡ºåº“ç«™
            for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
                List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo()));
                for (StaDesc staDesc : staDescs) {
//                List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo()));
//                for (StaDesc staDesc : staDescs) {
                    try {
                        // èŽ·å–å †åž›æœºå‡ºåº“ç«™ä¿¡æ¯
                        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
@@ -244,13 +262,20 @@
                        }
                        if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
                            // æŸ¥è¯¢å·¥ä½œæ¡£
                            TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString());
                            TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), String.valueOf(crnStn.getStaNo()-1));
                            if (taskWrk == null) {
                                continue;
                            }
                            // åˆ¤æ–­åŠè½¦æ˜¯å¦å®žé™…已完成,且电脑状态在move中,以备电脑进行更新工作档
//                            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, taskWrk.getCrnNo());
//                            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
//                            log.info(crnProtocol.statusType+""+crnProtocol.getForkPosType());
//                            if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(taskWrk.getWrkNo().shortValue())
//                                    && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED
//                                    && crnProtocol.forkPosType == CrnForkPosType.HOME) {
                            log.info("下发输送线任务:taskWrk:" + JSON.toJSONString(taskWrk));
                            staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
                            staProtocol.setStaNo(staDesc.getStnNo().shortValue());
                                staProtocol.setStaNo(Short.valueOf(taskWrk.getTargetPoint()));
                            boolean offer = false;
                            try {
                                offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
@@ -267,11 +292,12 @@
                            } else {
                                log.error("下发输送线任务失败:taskWrk:" + JSON.toJSONString(taskWrk));
                            }
//                            }
                        }
                    } catch (Exception e) {
                        log.error("出库到出库站异常:异常信息:" + e);
                    }
                }
//                }
            }
        }
@@ -398,6 +424,8 @@
                    throw new CoolException("堆垛机命令生成失败");
                } else {
                    try {
                        // ä¸ŠæŠ¥æ‰§è¡ŒçŠ¶æ€
                        toWmsService.executionStatusReport(taskWrk.getTaskNo(), taskWrk.getWrkSts());
                        taskWrkService.updateById(taskWrk);
                    } catch (Exception e) {
                        log.error("修改工作档状态 2.设备上走 => 3.吊车入库中 å¤±è´¥ï¼ï¼ï¼Œå·¥ä½œå·={}", taskWrk.getWrkNo());
@@ -522,6 +550,8 @@
                                if (taskWrkMapper.updateById(taskWrk) == 0) {
                                    log.error("修改工作档状态 11.生成出库ID => 12.吊车出库中 å¤±è´¥ï¼ï¼ï¼Œå·¥ä½œå·={}", taskWrk.getWrkNo());
                                }
                                // ä¸ŠæŠ¥æ‰§è¡ŒçŠ¶æ€
                                toWmsService.executionStatusReport(taskWrk.getTaskNo(), taskWrk.getWrkSts());
                            } catch (Exception e) {
                                log.error("修改工作档状态 11.生成出库ID => 12.吊车出库中 å¤±è´¥ï¼ï¼ï¼Œå·¥ä½œå·={}", taskWrk.getWrkNo());
                                log.error("修改工作档状态 11.生成出库ID => 12.吊车出库中 å¤±è´¥ï¼ï¼ï¼Œå¼‚常:" + e);
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -78,14 +78,14 @@
        taskWrk.setWrkNo(workNo1);
        taskWrk.setStatus(TaskStatusType.RECEIVE.id);//任务状态:接收
        taskWrk.setCreateTime(now);
        try {
            if (param.getIoType() > 1) {
                if (Utils.locNoRowBoolean(locMast.getRow1())) {
                    param.setTaskPriority(11);
                }
            }
        } catch (Exception e) {
        }
//        try {
//            if (param.getIoType() > 1) {
//                if (Utils.locNoRowBoolean(locMast.getRow1())) {
//                    param.setTaskPriority(11);
//                }
//            }
//        } catch (Exception e) {
//        }
        taskWrk.setIoType(param.getIoType());//任务类型
        taskWrk.setIoPri(param.getTaskPriority());//优先级
        taskWrk.setBarcode(param.getBarcode());//条码
@@ -99,11 +99,11 @@
        } else if (param.getIoType() == 2) {
            taskWrk.setWrkSts(11);
            if (!Cools.isEmpty(param.getStartPoint())) {
//            if (!Cools.isEmpty(param.getStartPoint())) {
                taskWrk.setStartPoint(param.getStartPoint());//起点
                taskWrk.setTargetPoint(param.getTargetPoint());
            }
            taskWrk.setTargetPoint(param.getTargetPoint());
                taskWrk.setTargetPoint(String.valueOf(Integer.parseInt(param.getTargetPoint())-1));
//            }
//            taskWrk.setTargetPoint(param.getTargetPoint());
        } else if (param.getIoType() == 3) {
            taskWrk.setWrkSts(11);
            if (!Cools.isEmpty(param.getStartPoint())) {
src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java
@@ -60,6 +60,9 @@
    @Value("${wms.taskStatusFeedbackPath}")
    private String taskStatusFeedbackPath;
    @Value("${wms.executionStatusReport}")
    private String executionStatusReport;
    @Value("${wms.code}")
    private String code;
@@ -110,7 +113,7 @@
                    .doPost();
            if (!Cools.isEmpty(response)) {
                JSONObject jsonObject = JSON.parseObject(response);
                if (!Cools.isEmpty(jsonObject.get(code)) && jsonObject.get(code).equals(successCode)) {
                if (successCode.equals(jsonObject.get(code).toString())) {
                    WmsResult result = JSON.parseObject(jsonObject.get(data).toString(), WmsResult.class);
                    return createInTask(result, wmsParam.getBarcode(), wmsParam.getStationCode());
                }
@@ -124,9 +127,42 @@
        return null;
    }
    @Override
    public void executionStatusReport(String taskNo, Integer wrkSts) {
        String response = "";
        boolean bool = false;
        JSONObject param = new JSONObject();
        try {
            log.info("任务执行状态上报,任务号:{},执行状态:{}", taskNo,wrkSts);
            param.put("taskNo",taskNo);
            param.put("wrkSts",wrkSts);
            response = new HttpHandler.Builder()
                    // .setHeaders(headParam)
                    .setUri(wmsUrl)
                    .setPath(executionStatusReport)
                    .setJson(param.toJSONString())
                    .build()
                    .doPost();
            if (!Cools.isEmpty(response)) {
                bool = true;
            }
        } catch (Exception e) {
            log.error("任务执行状态上报异常" +  e);
        } finally {
            apiLogService.save("任务状态上报"
                    , wmsUrl + executionStatusReport
                    , null
                    , "127.0.0.1"
                    , param.toJSONString()
                    , response
                    , bool
            );
        }
    }
    private TaskWrk createInTask(WmsResult result, String barcode, Integer startPoint) {
        //String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
        String locNo = result.getLocNo();
        Date now = new Date();
        TaskWrk taskWrk = new TaskWrk();
@@ -142,13 +178,14 @@
        taskWrk.setCrnNo(locMast.getCrnNo());
        taskWrk.setTargetPoint(locNo);
        taskWrk.setStartPoint(startPoint + "");
        taskWrk.setCrnNo(result.getCrnNo());
        taskWrk.setCrnNo(locMast.getCrnNo());
        if (taskWrk.getIoType() == 1) {
            taskWrk.setWrkSts(2);
            if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
                taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
            }
        }
        taskWrkService.insert(taskWrk);
        return taskWrk;
    }
src/main/java/com/zy/asrs/task/TaskLogScheduler.java
@@ -33,8 +33,8 @@
    private TaskWrkReportService taskWrkReportService;
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute() throws IOException {
    @Scheduled(cron = "0/5 * * * * ? ")
    public synchronized void execute() throws IOException {
        for (TaskWrk taskWrk : taskWrkService.selectToBeHistoryData()) {
            switch (taskWrk.getStatus()) {
                case 4:
src/main/java/com/zy/asrs/task/TaskReportScheduler.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.TaskWrkReport;
@@ -17,6 +18,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.io.IOException;
@@ -46,15 +48,15 @@
    private String TaskExecCallback;
    //@Scheduled(cron = "0/3 * * * * ? ")
    public void execute() throws IOException {
    @Scheduled(cron = "0/5 * * * * ? ")
    public synchronized void execute() throws IOException {
        Page<TaskWrkReport> taskWrkReportPage = taskWrkReportService.selectPage(new Page<>(0, 100), new EntityWrapper<TaskWrkReport>().orderBy("create_time", true));
        if (taskWrkReportPage.getRecords() != null) {
            //新增一个过滤机制
            for (TaskWrkReport taskWrk : taskWrkReportPage.getRecords()) {
                WmsFeedback wmsFeedback = getWmsFeedback(taskWrk);
                String response = "";
                Boolean bool = false;
                boolean bool = false;
                try {
                    log.info("wcs手动完成任务上报wms={}", taskWrk);
                    response = new HttpHandler.Builder()
@@ -64,7 +66,9 @@
                            .setJson(JSON.toJSONString(wmsFeedback))
                            .build()
                            .doPost();
                    if (!Cools.isEmpty(response)) {
                    JSONObject jsonObject = JSON.parseObject(response);
                        if (Integer.parseInt(String.valueOf(jsonObject.get("code"))) == 200) {
                    TaskWrkReportLog taskWrkLog = new TaskWrkReportLog();
                    Synchro.Copy(taskWrk, taskWrkLog);
                    taskWrkLog.setId(null);
@@ -75,6 +79,9 @@
                        throw new CoolException("任务档删除失败" + taskWrkLog);
                    }
                    bool = true;
                        }
                    }
                } catch (Exception e) {
                    log.error("wcs手动完成任务上报wms失败{},返回值={}", taskWrk, response);
                } finally {
src/main/java/com/zy/core/MainProcess.java
@@ -52,18 +52,18 @@
                    mainService.crnStnToOutStn();
                    // å…¥å‡ºåº“  ===>>  å †åž›æœºå…¥å‡ºåº“作业下发
                    mainService.crnIoExecute();
                    // å…¥åº“  ===>> æ‰§è¡Œå¯¹å·¥ä½œæ¡£çš„完成操作
                    // æ‰§è¡Œå¯¹å·¥ä½œæ¡£çš„完成操作
                    mainService.storeFinished();
                    // å †åž›æœºå¼‚常信息记录
                    mainService.recCrnErr();
                    // å…¶ä»–  ===>> // å…¥å‡ºåº“模式切换函数
                    i++;
                    if (i > 1) {
                        mainService.ioConvert();
                        i = 0;
                    }
//                    i++;
//                    if (i > 1) {
//                        mainService.ioConvert();
//                        i = 0;
//                    }
                } catch (Exception e) {
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -5,15 +5,12 @@
import HslCommunication.Profinet.Siemens.SiemensPLCS;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SpringUtils;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.TaskOverToWms;
import com.zy.asrs.service.*;
import com.zy.common.utils.HttpHandler;
import com.zy.core.CrnThread;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
@@ -26,10 +23,9 @@
import com.zy.core.model.protocol.CrnProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import java.text.MessageFormat;
import java.util.*;
import java.util.Date;
/**
 * å †åž›æœºçº¿ç¨‹
@@ -39,35 +35,6 @@
@Slf4j
public class SiemensCrnThread implements Runnable, CrnThread {
    public static final List<Short> rowOne = new ArrayList<Short>() {{
        add((short) 1);
        add((short) 5);
        add((short) 7);
        add((short) 11);
        add((short) 15);
        add((short) 19);
    }};
    public static final List<Short> rowTwo = new ArrayList<Short>() {{
        add((short) 2);
        add((short) 6);
        add((short) 8);
        add((short) 12);
        add((short) 16);
        add((short) 20);
    }};
    public static final List<Short> rowThree = new ArrayList<Short>() {{
        add((short) 3);
        add((short) 9);
        add((short) 13);
        add((short) 17);
        add((short) 21);
    }};
    public static final List<Short> rowFour = new ArrayList<Short>() {{
        add((short) 4);
        add((short) 10);
        add((short) 14);
        add((short) 18);
    }};
    private SiemensS7Net siemensNet;
    private CrnSlave slave;
    private CrnProtocol crnProtocol;
@@ -267,7 +234,7 @@
    @Override
    public boolean connect() {
        boolean result = false;
        siemensNet = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp());
        siemensNet = new SiemensS7Net(SiemensPLCS.S1500, slave.getIp());
        siemensNet.setRack(slave.getRack().byteValue());
        siemensNet.setSlot(slave.getSlot().byteValue());
        OperateResult connect = siemensNet.ConnectServer();
@@ -332,72 +299,72 @@
                        //堆垛机任务完成后访问wms请求任务完成 locationDone è´§ä½å¤„理完成
                        TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class);
                        TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("wrk_no", crnProtocol.getTaskNo()));
                        String tasktype = null;
                        switch (taskWrk.getIoType()) {
                            case 1:
                                tasktype = "RK";
                                break;
                            case 2:
                                tasktype = "CK";
                                break;
                            case 3:
                                tasktype = "YK";
                                break;
                            default:
                                tasktype = "未知";
                        }
                        Map<String, Object> map = new HashMap<>();
                        map.put("x-api-key", "7a15b5db-29b6-552c-8cff-0cfec3756da2");
                        TaskOverToWms taskOverToWms = new TaskOverToWms();
                        taskOverToWms.setFeedbackFrom("WCS"); //来源
                        taskOverToWms.setWarehouseId("1688469798893297665"); //仓库标识
                        taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //任务号
                        taskOverToWms.setTaskType(tasktype); // ä»»åŠ¡ç±»åž‹
                        taskOverToWms.setContainerCode(taskWrk.getBarcode()); // å®¹å™¨ç¼–码
                        if (taskWrk.getIoType() == 1) {
                            taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //设备编码
                            taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //目标库位
                        } else if (taskWrk.getIoType() == 2) {
                            Map<Integer, String> map1 = new HashMap<>();
                            map1.put(102, "J-1101");
                            map1.put(106, "J-1103");
                            map1.put(110, "J-1105");
                            map1.put(114, "J-1107");
                            map1.put(118, "J-1109");
                            map1.put(122, "J-1111");
                            map1.put(305, "H-1101");
                            map1.put(405, "G-1101");
                            taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //设备编码
                            taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //源库位
                        } else if (taskWrk.getIoType() == 3) {
                            taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //设备编码
                            taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint());
                            taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //目标库位
                        }
                        taskOverToWms.setTaskStatus("location_done"); //任务状态
                        String response = null;
                        try {
                            response = new HttpHandler.Builder()
                                    .setHeaders(map)
                                    .setUri("10.32.53.195:8080")
                                    .setPath("wcsManager/wcsInterface/taskStatusFeedback")
                                    .setJson(JSON.toJSONString(taskOverToWms))
                                    .build()
                                    .doPost();
                        } catch (Exception e) {
                            log.error("堆垛机任务完成,请求wms任务完成接口失败");
                        }
                        ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
                        apiLogService.save("Wms任务完成接口"
                                , "10.32.53.195:8080" + "/wcsManager/wcsInterface/taskStatusFeedback"
                                , null
                                , "127.0.0.1"
                                , JSON.toJSONString(taskOverToWms)
                                , response
                                , true
                        );
                        JSONObject jsonObject = JSON.parseObject(response);
                        if (jsonObject.getInteger("code").equals(200)) {
//                        String tasktype = null;
//                        switch (taskWrk.getIoType()) {
//                            case 1:
//                                tasktype = "RK";
//                                break;
//                            case 2:
//                                tasktype = "CK";
//                                break;
//                            case 3:
//                                tasktype = "YK";
//                                break;
//                            default:
//                                tasktype = "未知";
//                        }
//                        Map<String, Object> map = new HashMap<>();
//                        map.put("x-api-key", "7a15b5db-29b6-552c-8cff-0cfec3756da2");
//                        TaskOverToWms taskOverToWms = new TaskOverToWms();
//                        taskOverToWms.setFeedbackFrom("WCS"); //来源
//                        taskOverToWms.setWarehouseId("1688469798893297665"); //仓库标识
//                        taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //任务号
//                        taskOverToWms.setTaskType(tasktype); // ä»»åŠ¡ç±»åž‹
//                        taskOverToWms.setContainerCode(taskWrk.getBarcode()); // å®¹å™¨ç¼–码
//                        if (taskWrk.getIoType() == 1) {
//                            taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //设备编码
//                            taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //目标库位
//                        } else if (taskWrk.getIoType() == 2) {
//                            Map<Integer, String> map1 = new HashMap<>();
//                            map1.put(102, "J-1101");
//                            map1.put(106, "J-1103");
//                            map1.put(110, "J-1105");
//                            map1.put(114, "J-1107");
//                            map1.put(118, "J-1109");
//                            map1.put(122, "J-1111");
//                            map1.put(305, "H-1101");
//                            map1.put(405, "G-1101");
//                            taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //设备编码
//                            taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //源库位
//                        } else if (taskWrk.getIoType() == 3) {
//                            taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //设备编码
//                            taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint());
//                            taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //目标库位
//                        }
//                        taskOverToWms.setTaskStatus("location_done"); //任务状态
//                        String response = null;
//                        try {
//                            response = new HttpHandler.Builder()
//                                    .setHeaders(map)
//                                    .setUri("10.32.53.195:8080")
//                                    .setPath("wcsManager/wcsInterface/taskStatusFeedback")
//                                    .setJson(JSON.toJSONString(taskOverToWms))
//                                    .build()
//                                    .doPost();
//                        } catch (Exception e) {
//                            log.error("堆垛机任务完成,请求wms任务完成接口失败");
//                        }
//                        ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
//                        apiLogService.save("Wms任务完成接口"
//                                , "10.32.53.195:8080" + "/wcsManager/wcsInterface/taskStatusFeedback"
//                                , null
//                                , "127.0.0.1"
//                                , JSON.toJSONString(taskOverToWms)
//                                , response
//                                , true
//                        );
//                        JSONObject jsonObject = JSON.parseObject(response);
//                        if (jsonObject.getInteger("code").equals(200)) {
                            if (taskWrk.getIoType() == 3) {
                                taskWrk.setWrkSts(4);
                            }
@@ -411,7 +378,7 @@
                            log.error("堆垛机任务完成,请求wms任务完成接口完成,但返回失败");
                        }
                    }
//                    }
                }
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -40,55 +40,13 @@
public class SiemensDevpThread implements Runnable, DevpThread {
    public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
        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(201);
        add(202);
        add(203);
        add(204);
        add(205);
        add(206);
        add(207);
        add(208);
        add(209);
        add(210);
        add(211);
        add(212);
        add(213);
        add(214);
        add(215);
        add(216);
        add(217);
        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(201);add(202);add(203);add(205);add(206);add(207);add(210);add(211);add(212);
    }};
    public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
        add(301);
        add(302);
        add(303);
        add(304);
        add(305);
        add(306);
        add(307);
        add(308);
        add(301);add(302);add(303);add(304);add(305);add(306);add(307);add(308);
    }};
    /**
     * å…¥å‡ºåº“模式
@@ -218,10 +176,11 @@
     * è¯»å–状态 ====> æ•´å—plc
     */
    private void read() throws InterruptedException {
        // æ›´æ–°å…¥å‡ºåº“模式
//        updateIoMode();
        ArrayList<Integer> staNos = getStaNo();
        int staNoSize = staNos.size();
        // è¯»è´§ä½ä¿¡æ¯åé¦ˆ
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 8));
        if (result.IsSuccess) {
            for (int i = 0; i < staNoSize; i++) {
@@ -252,32 +211,47 @@
            }
        }
        if (slave.getId() == 1) {
            //条码
            //Thread.sleep(200);
            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.848.0", (short) 8);
            // è¯»å–条码
            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1404", (short) (staNoSize*8));
            if (result2.IsSuccess) {
                for (int i = 0; i < 1; i++) {
                    String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
                for (int i =0; i <staNoSize; i++) {
                    int barcodeId = 0;
                    switch (i){
                        case 1:barcodeId=1;break;
                        case 4:barcodeId=2;break;
                        case 7:barcodeId=3;break;
                        case 10:barcodeId=4;break;
                        case 13:barcodeId=5;break;
                        default:
                    }
                    if (barcodeId != 0) {
                        String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 6, "UTF-8");
                        BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
                    if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
                        barcodeThread.setBarcode(barcode);
                    }
                }
            }
            }
            //外形检测
            OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.810.0", (short) (barcodeSize * 1));
            StaProtocol staProtocol1 = station.get(116);
            boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, 0, 1);
            staProtocol1.setFrontErr(status1[0]);
            staProtocol1.setBackErr(status1[1]);
            staProtocol1.setHighErr(status1[2]);
            staProtocol1.setLeftErr(status1[3]);
            staProtocol1.setRightErr(status1[4]);
            staProtocol1.setWeightErr(status1[5]);
            staProtocol1.setBarcodeErr(status1[6]);
            // è¯»å–外形检测
            OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.936", (short) (staNoSize * 8));
            if (resultErr1.IsSuccess) {
                for (int i = 0; i < staNoSize; i++) {
                    Integer siteId = staNos.get(i); // ç«™ç‚¹ç¼–号
                    StaProtocol staProtocol = station.get(siteId);
                    boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, i * 2, 1);
                    staProtocol.setFrontErr(status1[0]);
                    staProtocol.setBackErr(status1[1]);
                    staProtocol.setHighErr(status1[2]);
                    staProtocol.setLeftErr(status1[3]);
                    staProtocol.setRightErr(status1[4]);
                    staProtocol.setWeightErr(status1[5]);
                    staProtocol.setBarcodeErr(status1[6]);
                }
            }
            OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4));
            if (resultErr.IsSuccess) {
@@ -347,25 +321,25 @@
        //任务下发成功标识
        boolean writeFlag = false;
        while (writeCount < 5) {
            OperateResult writeResult1 = siemensS7Net.Write("DB100." + index * 6, staProtocol.getWorkNo().intValue());    // å·¥ä½œå·
            OperateResult writeResult2 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo());    // ç›®æ ‡ç«™
            OperateResult writeResult1 = siemensS7Net.Write("DB100." + index * 4, staProtocol.getWorkNo());    // å·¥ä½œå·
            OperateResult writeResult2 = siemensS7Net.Write("DB100." + (index * 4 + 2), staProtocol.getStaNo());    // ç›®æ ‡ç«™
            if (writeResult1.IsSuccess && writeResult2.IsSuccess) {
                Thread.sleep(200);
                OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 6, (short) 6);
                OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 4, (short) 2);
                if (readResult.IsSuccess) {
                    Integer workNo = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0);
                    short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);
                    if (workNo.equals(staProtocol.getWorkNo().intValue()) && staProtocol.getStaNo().equals(staNo)) {
                        //任务命令写入成功
//                    short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
//                    short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2);
//                    if (staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)) {
//                        //任务命令写入成功
                        writeFlag = true;
                        log.info("写入输送线命令后返回成功,并且回读成功。输送线plc编号={},{},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                        break;
                    } else {//返回结果是成功了,但是真实值不相同
                        writeCount++;
                        OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线命令后返回成功,但是读取任务值不一致。输送线plc编号={1},站点数据={2},写入次数={3}",
                                slave.getId(), JSON.toJSON(staProtocol), writeCount));
                        log.error("写入输送线命令后返回成功,但是读取任务值不一致。输送线plc编号={},{},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                    }
//                    } else {//返回结果是成功了,但是真实值不相同
//                        writeCount++;
//                        OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线命令后返回成功,但是读取任务值不一致。输送线plc编号={1},站点数据={2},写入次数={3}",
//                                slave.getId(), JSON.toJSON(staProtocol), writeCount));
//                        log.error("写入输送线命令后返回成功,但是读取任务值不一致。输送线plc编号={},{},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
//                    }
                } else {
                    writeCount++;
                    OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线命令后读取失败。输送线plc编号={1},站点数据={2},写入次数={3}",
src/main/resources/application-prod.yml
@@ -4,235 +4,247 @@
  groupCount: 4 #一个堆垛机负责的货架排数
  crn[0]: #堆垛机1
    id: 1
    ip: 10.10.10.110
    ip: 10.49.210.11
    slot: 0
    demo: false
    rack: 0
    offset: 2  #偏移量,当堆垛机站点列号=1时,偏移量=2
    port: 102
    crnOutStn[0]: #堆垛机出库站点
      staNo: 103
      row: 3
      bay: 1
      lev: 2
      devpPlcId: ${wcs-slave.devp[0].id}
    crnOutStn[1]: #堆垛机出库站点
      staNo: 106
      row: 3
      bay: 1
      lev: 2
      devpPlcId: ${wcs-slave.devp[0].id}
    crnInStn[0]: #堆垛机入库站点1
      staNo: 102
    #堆垛机出库站点1
    crnOutStn[0]:
      staNo: 114
      row: 2
      bay: 1
      lev: 2
      backSta: 101
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    crnInStn[1]: #堆垛机入库站点1
      staNo: 105
      #堆垛机出库站点2
    crnOutStn[1]:
      staNo: 210
      row: 2
      bay: 2
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
      #堆垛机出库站点3
    crnOutStn[2]:
      staNo: 205
      row: 2
      bay: 5
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
      #堆垛机出库站点4
    crnOutStn[3]:
      staNo: 201
      row: 2
      bay: 7
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    #堆垛机入库站点1
    crnInStn[0]:
      staNo: 114
      row: 2
      bay: 1
      lev: 2
      backSta: 104
      lev: 1
      backSta: 113
      devpPlcId: ${wcs-slave.devp[0].id}
    #堆垛机入库站点2
    crnInStn[1]:
      staNo: 210
      row: 2
      bay: 2
      lev: 1
      backSta: 212
      devpPlcId: ${wcs-slave.devp[0].id}
    #堆垛机入库站点3
    crnInStn[2]:
      staNo: 205
      row: 5
      bay: 1
      lev: 1
      backSta: 207
      devpPlcId: ${wcs-slave.devp[0].id}
    #堆垛机入库站点4
    crnInStn[3]:
      staNo: 201
      row: 2
      bay: 7
      lev: 1
      backSta: 203
      devpPlcId: ${wcs-slave.devp[0].id}
  crn[1]: #堆垛机2
    id: 2
    ip: 10.10.10.120
    ip: 10.49.210.21
    slot: 0
    demo: false
    rack: 0
    offset: 2  #偏移量,当堆垛机站点列号=1时,偏移量=2
    port: 102
    crnOutStn[0]: #堆垛机出库站点
      staNo: 109
      row: 7
      bay: 1
      lev: 2
      devpPlcId: ${wcs-slave.devp[0].id}
    crnOutStn[1]: #堆垛机出库站点
      staNo: 112
      row: 7
      bay: 1
      lev: 2
      devpPlcId: ${wcs-slave.devp[0].id}
    crnInStn[0]: #堆垛机入库站点1
      staNo: 108
      row: 6
      bay: 1
      lev: 2
      backSta: 107
      devpPlcId: ${wcs-slave.devp[0].id}
    crnInStn[1]: #堆垛机入库站点1
    #堆垛机出库站点1
    crnOutStn[0]:
      staNo: 111
      row: 6
      bay: 1
      lev: 2
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
     #堆垛机出库站2
    crnOutStn[1]:
      staNo: 108
      row: 7
      bay: 1
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    #堆垛机入库站点1
    crnInStn[0]:
      staNo: 111
      row: 6
      bay: 1
      lev: 1
      backSta: 110
      devpPlcId: ${wcs-slave.devp[0].id}
  crn[2]: #堆垛机2
      #堆垛机入库站点2
    crnInStn[1]: #堆垛机入库站点1
      staNo: 108
      row: 7
      bay: 1
      lev: 1
      backSta: 107
      devpPlcId: ${wcs-slave.devp[0].id}
  crn[2]: #堆垛机3
    id: 3
    ip: 10.10.10.120
    ip: 10.49.210.31
    slot: 0
    demo: false
    rack: 0
    offset: 2  #偏移量,当堆垛机站点列号=1时,偏移量=2
    port: 102
    crnOutStn[0]: #堆垛机出库站点
      staNo: 115
      row: 7
      staNo: 105
      row: 10
      bay: 1
      lev: 2
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    crnOutStn[1]: #堆垛机出库站点
      staNo: 201
      row: 7
      staNo: 102
      row: 11
      bay: 1
      lev: 2
      devpPlcId: ${wcs-slave.devp[0].id}
    crnOutStn[2]: #堆垛机出库站点
      staNo: 205
      row: 7
      bay: 1
      lev: 2
      devpPlcId: ${wcs-slave.devp[0].id}
    crnOutStn[3]: #堆垛机出库站点
      staNo: 210
      row: 7
      bay: 1
      lev: 2
      lev: 1
      devpPlcId: ${wcs-slave.devp[0].id}
    crnInStn[0]: #堆垛机入库站点1
      staNo: 114
      row: 6
      staNo: 105
      row: 10
      bay: 1
      lev: 2
      backSta: 113
      lev: 1
      backSta: 104
      devpPlcId: ${wcs-slave.devp[0].id}
    crnInStn[1]: #堆垛机入库站点1
      staNo: 202
      row: 6
    crnInStn[1]: #堆垛机入库站点2
      staNo: 102
      row: 11
      bay: 1
      lev: 2
      backSta: 203
      devpPlcId: ${wcs-slave.devp[0].id}
    crnInStn[2]: #堆垛机入库站点1
      staNo: 206
      row: 6
      bay: 1
      lev: 2
      backSta: 207
      devpPlcId: ${wcs-slave.devp[0].id}
    crnInStn[3]: #堆垛机入库站点1
      staNo: 211
      row: 6
      bay: 1
      lev: 2
      backSta: 212
      lev: 1
      backSta: 101
      devpPlcId: ${wcs-slave.devp[0].id}
  devp[0]: #输送线
    id: 1
    ip: 10.10.10.140
    ip: 10.49.210.41
    rack: 0
    port: 102
    slot: 0
    emptyInSta[0]: #空板入库口0
      staNo: 116
      staNo: 210
    inSta[0]: #入库口1
      staNo: 101
      backSta: 116
      staNo: 102
      backSta: 101
      barcode: ${wcs-slave.barcode[0].id}
    inSta[1]: #入库口2
      staNo: 117
      staNo: 105
      backSta: 104
      barcode: ${wcs-slave.barcode[1].id}
    inSta[2]: #入库口3
      staNo: 118
      staNo: 108
      backSta: 107
      barcode: ${wcs-slave.barcode[2].id}
    inSta[3]: #入库口4
      staNo: 110
      backSta: 119
      staNo: 111
      backSta: 110
      barcode: ${wcs-slave.barcode[3].id}
    inSta[4]: #入库口5
      staNo: 113
      backSta: 120
      staNo: 114
      backSta: 113
      barcode: ${wcs-slave.barcode[4].id}
    inSta[5]: #入库口6
      staNo: 202
      backSta: 203
      staNo: 211
      backSta: 212
      barcode: ${wcs-slave.barcode[5].id}
    inSta[6]: #入库口7
      staNo: 206
      backSta: 207
      barcode: ${wcs-slave.barcode[6].id}
    inSta[7]: #入库口8
      staNo: 211
      backSta: 212
      staNo: 202
      backSta: 203
      barcode: ${wcs-slave.barcode[7].id}
    outSta[0]: #出库口1
      staNo: 116
      staNo: 101
    outSta[1]: #出库口2
      staNo: 117
      staNo: 104
    outSta[2]: #出库口3
      staNo: 118
      staNo: 107
    outSta[3]: #出库口4
      staNo: 119
      staNo: 110
    outSta[4]: #出库口5
      staNo: 120
      staNo: 113
    outSta[5]: #出库口6
      staNo: 203
      staNo: 212
    outSta[6]: #出库口7
      staNo: 207
    outSta[7]: #出库口8
      staNo: 212
      staNo: 203
  devp[1]: #输送线
    id: 2
    ip: 10.10.10.140
    rack: 0
    port: 102
    slot: 0
    inSta[0]:
      staNo: 301
    inSta[1]:
      staNo: 303
    inSta[2]:
      staNo: 305
    inSta[3]:
      staNo: 307
#  devp[1]: #输送线
#    id: 2
#    ip: 10.10.10.140
#    rack: 0
#    port: 102
#    slot: 0
#    inSta[0]:
#      staNo: 301
#    inSta[1]:
#      staNo: 303
#    inSta[2]:
#      staNo: 305
#    inSta[3]:
#      staNo: 307
  barcode[0]: #条码扫描仪
    port: 51236
    ip: 172.17.91.39
    ip: 10.49.210.44
    id: 1
  barcode[1]: #条码扫描仪
    port: 51236
    ip: 172.17.91.39
    ip: 10.49.210.45
    id: 2
  barcode[2]: #条码扫描仪
    port: 51236
    ip: 172.17.91.39
    ip: 10.49.210.46
    id: 3
  barcode[3]: #条码扫描仪
    port: 51236
    ip: 172.17.91.39
    ip: 10.49.210.47
    id: 4
  barcode[4]: #条码扫描仪
    port: 51236
    ip: 172.17.91.39
    ip: 10.49.210.48
    id: 5
  barcode[5]: #条码扫描仪
    port: 51236
    ip: 172.17.91.39
    ip: 10.49.210.67
    id: 6
  barcode[6]: #条码扫描仪
    port: 51236
    ip: 172.17.91.39
    ip: 10.49.210.66
    id: 7
  barcode[7]: #条码扫描仪
    port: 51236
    ip: 172.17.91.39
    ip: 10.49.210.65
    id: 8
src/main/resources/application.yml
@@ -47,15 +47,26 @@
  # æ˜¯å¦å¼€å¯ä¸ŠæŠ¥
  start: true
  # WMS系统ip
  url: 10.10.10.222:2410
  url: http://10.227.21.31:8060/fromwcs
  # å…¥åº“任务申请接口
  inboundTaskApplyPath: api/StereoscopicCallBack/AcceptTaskStatus
  inboundTaskApplyPath: /inboundTaskApply
  # ä»»åŠ¡å¼€å§‹æ—¶ï¼ŒWCS回调WMS
  taskStatusFeedbackPath: api/StereoscopicCallBack/TaskExecCallback
  # ä»»åŠ¡å®Œæˆç»“æŸæ—¶ï¼ŒWCS回调WMS
  taskExecCallback: api/StereoscopicCallBack/TaskExecFinishedCallback
  taskExecCallback: /taskStateReport
  # ç§»åº“申请接口
  movePath: api/InterFace/get_InterFace_TestStorage
  # ä»»åŠ¡æ‰§è¡ŒçŠ¶æ€ä¸ŠæŠ¥
  executionStatusReport: /executionStatusReport
  # æµ‹è¯•环境
#  url: http://127.0.0.1:8080/ghlnwms
#  taskStatusFeedbackPath: api/StereoscopicCallBack/TaskExecCallback
#  executionStatusReport: /open/asrs/executionStatusReport
#  taskExecCallback: /open/asrs/taskExecCallback
#  inboundTaskApplyPath: /open/asrs/testInLoc
#  movePath: api/InterFace/get_InterFace_TestStorage
  code: code
  successCode: 200
  msg: msg
src/main/resources/wcsºÍwms½Ó¿Ú(2).docx
Binary files differ