zwl
8 天以前 cd761b085ddff0d4f55a0d5b892b3120cf8fa9d2
修改了AGV请求接口的逻辑,Mas获取返回信息的订单编号
11个文件已修改
402 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/SiteController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java 349 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WaitPakinMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pipeline.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -118,5 +118,13 @@
            e.printStackTrace();
        }
    }
    @GetMapping("/api/robot/reporter/task1")
    public void reporterTask1(){
        Integer sourceStaNo = 307;
        SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
        StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
        boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
//        log.info("AGV放货完成,给站点写9991工作号,下发任务:{},站点:{},agv任务号:{}", result, task.getStaNo(), task.getTaskNo());
    }
}
src/main/java/com/zy/asrs/controller/SiteController.java
@@ -7,7 +7,7 @@
import com.zy.asrs.domain.vo.SiteTableVo;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.service.BasDevpService;
import com.zy.core.Slave;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
@@ -16,7 +16,6 @@
import com.zy.core.model.Task;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.DevpThread;
import com.zy.core.thread.SiemensDevpThread;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -82,6 +81,7 @@
            vo.setStaNo(staProtocol.getStaNo());                // 目标站
//            vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "低" : "高");     //高低库位
            vo.setLocType1(devp.getDevNo()==102 ? "高" : "低");
            vo.setInreq1(devp.getInreq1());
        }
        return R.ok().add(list);
    }
src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
@@ -28,6 +28,7 @@
    // 需求1
    private String pakMk = "-";
    private String inreq1 = "-";
    // 空板信号
    private String emptyMk = "-";
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -172,6 +172,7 @@
                        && staProtocol.isInEnable()
                        && !staProtocol.isEmptyMk()
                        && staProtocol.getWorkNo() > 9990
                        && staProtocol.getWorkNo() <9998
                        && (staProtocol.isEmptyOutType() || staProtocol.getSiteId() == 301 || staProtocol.getSiteId() == 304)
                        && staProtocol.isPakMk()) {
                    News.warnNoLog("" + mark + " - 0" + " - 开始执行");
@@ -242,7 +243,10 @@
                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                        continue;
                    }
                    WaitPakin waitPakin = waitPakinMapper.selectByBarcode(barcode);
                    if (waitPakin == null){
                        continue;
                    }
                    // 判断重复工作档
                    WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                    //过滤判断,防止拣料再入库货物,经过入库站再入库时,被退回到退库站
@@ -1287,7 +1291,7 @@
                if (staProtocol.isEmptyOutType() || staProtocol.getSiteId() == 301 || staProtocol.getSiteId() == 304) {
                    boo1 = true;
                }
                if ((staProtocol.getSiteId() == 301 || staProtocol.getSiteId() == 304) && staProtocol.isOutEnable()) {
                if (((staProtocol.getSiteId() == 301 || staProtocol.getSiteId() == 304) && staProtocol.isOutEnable()) || staProtocol.getSiteId()==307) {
                    boo2 = true;
                }
@@ -1297,7 +1301,7 @@
                    // 命令下发区 --------------------------------------------------------------------------
                    //判断是否有正在执行中的AGV任务
                    List<AgvTask> agvTasks = agvTaskService.selectList(new EntityWrapper<AgvTask>().eq("wrk_sts", 302).eq("source_sta_no", staProtocol.getSiteId()));
                    List<AgvTask> agvTasks = agvTaskService.selectList(new EntityWrapper<AgvTask>().eq("wrk_sts", 302).eq("source_sta_no", String.valueOf(staProtocol.getSiteId())));
                    if (agvTasks != null && agvTasks.size() > 0) {
                        continue;
                    }
@@ -2427,6 +2431,7 @@
            int workNo = commonService.getWorkNo(0);
            // 保存工作档
            WrkMast wrkMast = new WrkMast();
            wrkMast.setId(new Date().getTime());
            wrkMast.setWrkNo(workNo);
            wrkMast.setIoTime(new Date());
            wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -68,24 +68,24 @@
        String slotCategory = values.getString("slotCategory");
        String slotCode = values.getString("slotCode");
        EntityWrapper<AgvTask> wrapper = new EntityWrapper<>();
        wrapper.eq("task_no", robotTaskCode);
        wrapper.eq("task_no", rcsReporterTask.getRobotTaskCode().substring(0, rcsReporterTask.getRobotTaskCode().length() - 2));
        AgvTask task = agvTaskService.selectOne(wrapper);
        if (!Cools.isEmpty(task)) {
            try {
                switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
                    //放货申请
                    case APPLY_PUT: {
                        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")) {
                            Integer sourceStaNo = Integer.valueOf(task.getStaNo());
                            SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                            StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
                            //wcs反馈rcs继续执行
                            if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
                                if(task.getTaskType().equals("AGV补空料架")){
                                if (task.getTaskType().equals("AGV补空料架")) {
                                    RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
                                    rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
                                    rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                                    rcsTaskContinue.setTriggerType("TASK");
                                    rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
                                    rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                                    String url = HIK_URL + "api/robot/controller/task/extend/continue";
                                    String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
@@ -98,7 +98,7 @@
                                    JSONObject data = new JSONObject();
                                    data.put("robotTaskCode", robotTaskCode);
                                    rcsReturn.setData(data);
                                }else {
                                } else {
                                    //出发PLC站点的扫码器扫码
                                    boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
                                    if (result) {
@@ -110,9 +110,9 @@
                                        data.put("robotTaskCode", robotTaskCode);
                                        rcsReturn.setData(data);
                                        RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
                                        rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
                                        rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                                        rcsTaskContinue.setTriggerType("TASK");
                                        rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
                                        rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                                        String url = HIK_URL + "api/robot/controller/task/extend/continue";
                                        String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
@@ -129,12 +129,23 @@
                                    }
                                }
                            }
                        }else {
                        } else {
                            TransParent transParent = new TransParent();
                            transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
                            transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            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 = applyInStation(transParent);
                            if (i == 1) {
                                rcsReturn.setCode("SUCCESS");
@@ -142,7 +153,7 @@
                                JSONObject data = new JSONObject();
                                data.put("robotTaskCode", robotTaskCode);
                                rcsReturn.setData(data);
                            }else {
                            } else {
                                // 返回RCS
                                rcsReturn.setCode("Err_Internal");
                                rcsReturn.setMessage("");
@@ -157,13 +168,13 @@
                    //放货完成 --》agv已经离开
                    case TASK_END: {
                        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")) {
                            Integer sourceStaNo = Integer.valueOf(task.getStaNo());
                            SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                            StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
                            Boolean boo = false;
                            Short wrkNo = 9991;
                            if(task.getStaNo().equals("307")){
                            if (task.getStaNo().equals("307")) {
                                wrkNo = 9997;
                            }
@@ -172,7 +183,7 @@
                            if (task.getTaskType().equals("AGV补空料架") && staProtocol != null && !staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0) {
                                boo = true;
                                wrkNo = 9998;
                            } else if (!task.getTaskType().equals("AGV补空料架") && staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0) {
                            } else if (!task.getTaskType().equals("AGV补空料架") && staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType()) {
                                boo = true;
                            }
                            if (boo) {
@@ -207,23 +218,49 @@
                                data.put("robotTaskCode", robotTaskCode);
                                rcsReturn.setData(data);
                            }
                        }else {
                            // 更新任务状态等内部逻辑
                            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 {
                            TransParent transParent = new TransParent();
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            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 = AGVDepartureCompleted(transParent);
                            if (i == 1) {
                                // 更新任务状态等内部逻辑
                                task.setWrkSts(304L);   // 301 任务下发、302 任务执行、303 任务中断、304 任务结束
                                task.setModiTime(new Date());
                                agvTaskService.updateById(task);
                                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;
                    //rcs请求wms取货申请
                    case APPLY_PICK: {
                        if(task.getSourceStaNo().equals("401")||task.getSourceStaNo().equals("402")||task.getSourceStaNo().equals("307")) {
                        if (task.getSourceStaNo().equals("401") || task.getSourceStaNo().equals("402") || task.getSourceStaNo().equals("307")) {
                            Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
                            SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                            StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
@@ -239,7 +276,7 @@
                                String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
                                if (!StringUtils.isEmpty(response) && response.contains("code")) {
                                    RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
                                    if ("200".equals(rcsReturn1.getCode())) {
                                    if ("SUCCESS".equals(rcsReturn1.getCode())) {
                                        // 返回RCS
                                        rcsReturn.setCode("SUCCESS");
                                        rcsReturn.setMessage("");
@@ -256,43 +293,25 @@
                                    }
                                }
                            }
                        }else {
                        } else {
                            TransParent transParent = new TransParent();
                            transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
                            transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            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 = applyInStation(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;
                    //rcs取货完成,已退出输送线
                    case PICK_COMPLETE: {
                        Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
                        SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                        StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
                        //放货完成 --》agv已经离开 --》给PLC站点写9991工作号
                        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));
                            log.info("AGV取货完成,给站点写0工作号,下发任务:{},站点:{},agv任务号:{}", result, task.getStaNo(), task.getTaskNo());
                            if (result) {
                                // 返回RCS
                                rcsReturn.setCode("SUCCESS");
                                rcsReturn.setMessage("");
                                JSONObject data = new JSONObject();
@@ -306,14 +325,83 @@
                                data.put("robotTaskCode", robotTaskCode);
                                rcsReturn.setData(data);
                            }
                        }
                    }
                    break;
                    //rcs取货完成,已退出输送线
                    case PICK_COMPLETE: {
                        if (task.getSourceStaNo().equals("401") || task.getSourceStaNo().equals("402") || task.getSourceStaNo().equals("307")) {
                            Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
                            SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                            StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
                            //放货完成 --》agv已经离开 --》给PLC站点写9991工作号
                            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));
                                log.info("AGV取货完成,给站点写0工作号,下发任务:{},站点:{},agv任务号:{}", result, task.getStaNo(), task.getTaskNo());
                                if (result) {
                                    // 返回RCS
                                    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);
                                }
                            }
                        } else {
                            TransParent transParent = new TransParent();
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            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 = AGVDepartureCompleted(transParent);
                            if (i == 1) {
                                // 更新任务状态等内部逻辑
                                task.setWrkSts(304L);   // 301 任务下发、302 任务执行、303 任务中断、304 任务结束
                                task.setModiTime(new Date());
                                agvTaskService.updateById(task);
                                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;
                    //AGV取货离站请求
                    case APPLY_IN_OFF_STATION:{
                    case APPLY_IN_OFF_STATION: {
                        //如果是立库站点直接允许离站
                        if(task.getSourceStaNo().equals("401")||task.getSourceStaNo().equals("402")||task.getSourceStaNo().equals("307")) {
                        if (task.getSourceStaNo().equals("401") || task.getSourceStaNo().equals("402") || task.getSourceStaNo().equals("307")) {
                            RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
                            rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            rcsTaskContinue.setTriggerType("TASK");
@@ -323,7 +411,7 @@
                            String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
                            if (!StringUtils.isEmpty(response) && response.contains("code")) {
                                RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
                                if ("200".equals(rcsReturn1.getCode())) {
                                if ("SUCCESS".equals(rcsReturn1.getCode())) {
                                    // 返回RCS
                                    rcsReturn.setCode("SUCCESS");
                                    rcsReturn.setMessage("");
@@ -339,13 +427,24 @@
                                    rcsReturn.setData(data);
                                }
                            }
                        }else{
                        } else {
                            //如果是工位需要像mes请求离站
                            TransParent transParent = new TransParent();
                            transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
                            transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            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 = applyOutStation(transParent);
                            if (i == 1) {
                                rcsReturn.setCode("SUCCESS");
@@ -353,7 +452,7 @@
                                JSONObject data = new JSONObject();
                                data.put("robotTaskCode", robotTaskCode);
                                rcsReturn.setData(data);
                            }else {
                            } else {
                                // 返回RCS
                                rcsReturn.setCode("Err_Internal");
                                rcsReturn.setMessage("");
@@ -362,12 +461,12 @@
                                rcsReturn.setData(data);
                            }
                        }
                            break;
                        break;
                    }
                    //AGV放货离站请求
                    case APPLY_OFF_STATION:{
                    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")) {
                            RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
                            rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            rcsTaskContinue.setTriggerType("TASK");
@@ -377,7 +476,7 @@
                            String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
                            if (!StringUtils.isEmpty(response) && response.contains("code")) {
                                RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
                                if ("200".equals(rcsReturn1.getCode())) {
                                if ("SUCCESS".equals(rcsReturn1.getCode())) {
                                    // 返回RCS
                                    rcsReturn.setCode("SUCCESS");
                                    rcsReturn.setMessage("");
@@ -393,13 +492,24 @@
                                    rcsReturn.setData(data);
                                }
                            }
                        }else{
                        } else {
                            //如果是工位需要像mes请求离站
                            TransParent transParent = new TransParent();
                            transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
                            transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
                            transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
                            transParent.setStationId(task.getStaNo());
                            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 = applyOutStation(transParent);
                            if (i == 1) {
                                rcsReturn.setCode("SUCCESS");
@@ -407,7 +517,7 @@
                                JSONObject data = new JSONObject();
                                data.put("robotTaskCode", robotTaskCode);
                                rcsReturn.setData(data);
                            }else {
                            } else {
                                // 返回RCS
                                rcsReturn.setCode("Err_Internal");
                                rcsReturn.setMessage("");
@@ -417,6 +527,50 @@
                            }
                        }
                        break;
                    }
                    //到站完成
                    case ARRIVE_ON_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.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;
                    }
@@ -463,8 +617,8 @@
            conn.setRequestProperty("X-lr-request-id", String.valueOf(new Date().getTime()));
            conn.setRequestProperty("X-lr-version", "4.3");
            conn.setConnectTimeout(5000);
            conn.setReadTimeout(5000);
            conn.setConnectTimeout(10000);
            conn.setReadTimeout(10000);
            conn.setDoOutput(true);
            conn.setDoInput(true);
            out = new PrintWriter(conn.getOutputStream());
@@ -538,4 +692,45 @@
        return 0;
    }
    /**
     * 离站完成:wms->mes
     * AGV离开接驳位后发送离开状态给MES
     *
     * @param apply
     * @return
     */
    public int AGVDepartureCompleted(TransParent apply) {
        String url = MES_URL + "AGVDepartureCompleted";
        String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
        if (!StringUtils.isEmpty(response) && response.contains("Success")) {
            MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
            if ("1".equals(mesReturn.getSuccess())) {
                return 1;
            }
        }
        return 0;
    }
    /**
     * 到站完成:AGV到达工位里面--》mes到位完成
     *
     * @param apply
     * @return
     */
    public int AGVArrivalCompletedFit(TransParent apply) {
        String url = MES_URL + "AGVArrivalCompletedFit";
        String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
        if (!StringUtils.isEmpty(response) && response.contains("Success")) {
            MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
            if ("1".equals(mesReturn.getSuccess())) {
                return 1;
            }
        }
        return 0;
    }
}
src/main/java/com/zy/core/MainProcess.java
@@ -50,16 +50,16 @@
//                    mainService.generateStoreWrkFile0(2); // WMS入库
                    Thread.sleep(500);
                    // 拣料、并板、盘点再入库
                    mainService.stnToCrnStnPick(3);
                    //mainService.stnToCrnStnPick(3);
                    // 拣料、并板、盘点再入库-条码
//                    mainService.stnToCrnStnPickBarcode(33);
                    // 出库  ===>>  堆垛机出库站到出库站
                    mainService.stnToCrnStnPickBarcode(33);
                    // 出库  ===>>  堆垛机出库站到出库站0
                    mainService.crnStnToOutStn(4);
                    // 入出库  ===>>  堆垛机入出库作业下发
                    mainService.crnIoExecute(5);
                    // 入出库增强 ===>> 堆垛机命令下发后,异步修改工作档状态
//                    mainService.crnIoWrkMast();
                    // 入库  ===>> 执行对工作档的完成操作
                    // 入出库  ===>> 执行对工作档的完成操作
                    mainService.storeFinished(6);
                    // 堆垛机异常信息记录
                    mainService.recCrnErr(7);
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -257,7 +257,7 @@
        Thread.sleep(200);
        if(slave.getId()==1) {
            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.602.0", (short) (barcodeSize * 8));
            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.600.0", (short) (barcodeSize * 8));
            if (result2.IsSuccess) {
                for (int i = 0; i < barcodeSize; i++) {
                    String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
@@ -355,7 +355,7 @@
        if(staProtocol.getSiteId() == 307){
            index = 0;
        }
        OperateResult writeResult1 = siemensS7Net.Write("DB100.500" + index,  1);    // 扫码器触发
        OperateResult writeResult1 = siemensS7Net.Write("DB100.500" ,  true);    // 扫码器触发
        if (!writeResult1.IsSuccess) {
            OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(staProtocol)));
src/main/resources/application.yml
@@ -39,7 +39,7 @@
#mes对接
mes:
  url: http://192.9.100.173:8088/prod-api/basicmodel/WmsFit/Api/
  url: http://172.26.160.5:80/dev-api/basicmodel/WmsFit/Api/
  #默认接口操作人员id
  defaultUserId: 30
@@ -87,8 +87,8 @@
    crnInStn[1]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 307
      row: 1
      bay: 16
      row: 3
      bay: 5
      lev: 1
    # 堆垛机入库站点
    crnInStn[2]:
@@ -108,8 +108,8 @@
    crnOutStn[1]:
      devpPlcId: ${wcs-slave.devp[0].id}
      staNo: 307
      row: 1
      bay: 16
      row: 3
      bay: 5
      lev: 1
    # 堆垛机出库站点
    crnOutStn[2]:
src/main/resources/mapper/WaitPakinMapper.xml
@@ -28,7 +28,7 @@
    </resultMap>
    <select id="selectByBarcode" resultMap="BaseResultMap">
        select * from cust_wait_pakin where zpallet = #{barcode}
        select top 1 * from cust_wait_pakin where zpallet = #{barcode}
    </select>
</mapper>
src/main/resources/mapper/WrkMastMapper.xml
@@ -105,7 +105,7 @@
    </select>
    <select id="selectPickStep" resultMap="BaseResultMap">
        select top 1 * from asr_wrk_mast where barcode=#{barcode} and wrk_sts=20 and (io_type=103 or io_type=107 or io_type=104)
        select top 1 * from asr_wrk_mast where barcode=#{barcode} and (wrk_sts=20 or wrk_sts = 14) and (io_type=103 or io_type=107 or io_type=104)
    </select>
    <select id="selectPakOutStep1" resultMap="BaseResultMap">
src/main/webapp/views/pipeline.html
@@ -116,6 +116,7 @@
                        <th>空板信号</th>
                        <th>目标站</th>
                        <th>高低库位</th>
                        <th>控料架</th>
                    </tr>
                    </thead>
                    <!-- 表格内容 -->
@@ -310,6 +311,7 @@
                        setVal(tr.children("td").eq(7), table[i-1].emptyMk);
                        setVal(tr.children("td").eq(8), table[i-1].staNo);
                        setVal(tr.children("td").eq(9), table[i-1].locType1);
                        setVal(tr.children("td").eq(10), table[i-1].inreq1);
                    }
                } else if (res.code === 403){
                    window.location.href = baseUrl+"/login";
@@ -396,6 +398,7 @@
                "       <td></td>\n" +
                "       <td></td>\n" +
                "       <td></td>\n" +
                "       <td></td>\n" +
                "     </tr>\n";
        }
        $('#site-table tbody').after(html);