#
Administrator
昨天 8dd292cfbf013f4ebc444582d508f18825f321d2
#
5个文件已修改
81 ■■■■■ 已修改文件
src/main/java/com/zy/common/service/CommonService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/plugin/NormalProcess.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/utils/WmsOperateUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java
@@ -258,8 +258,10 @@
        wrkMast.setIoType(WrkIoType.IN.id); // 入出库状态: 1.入库
        wrkMast.setIoPri(ioPri);
        wrkMast.setLocNo(param.getLocNo()); // 目标库位
        wrkMast.setSourceStaNo(Integer.valueOf(param.getSourceStaNo()));//源站
        wrkMast.setStaNo(Integer.valueOf(param.getSourceStaNo()));//目标站
        if (!Cools.isEmpty(param.getSourceStaNo())&&!param.getSourceStaNo().equals("null")){
            wrkMast.setSourceStaNo(Integer.valueOf(param.getSourceStaNo()));//源站
        }
        wrkMast.setStaNo(Integer.valueOf(param.getStaNo()));//目标站
        wrkMast.setWmsWrkNo(String.valueOf(param.getTaskNo()));
        wrkMast.setBarcode(param.getBarcode());
        wrkMast.setAppeTime(now);
src/main/java/com/zy/core/plugin/NormalProcess.java
@@ -177,7 +177,9 @@
                            JSONObject jsonObject = JSON.parseObject(response);
                            if (jsonObject.getInteger("code").equals(200)) {
                                StartupDto dto = jsonObject.getObject("data", StartupDto.class);
                                if (Cools.isEmpty(dto.getTaskNo())){
                                    throw new Exception("TaskNo不能为空");
                                }
                                CreateInTaskParam taskParam = new CreateInTaskParam();
                                taskParam.setTaskNo(String.valueOf(dto.getTaskNo()));
                                taskParam.setLocNo(dto.getLocNo());
src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
@@ -82,16 +82,14 @@
                    if (task != null) {
                        step = task.getStep();
                    }
                    if (step == 2) {
                        sendCommand((CrnCommand) task.getData());
                    }
                    if (step == 3) {
                    }else if (step == 3) {
                        sendCommand1((CrnCommand) task.getData());
                    }
                    if (step == 4) {
                    }else if (step == 4) {
                        sendCommand2((CrnCommand) task.getData());
                    }
                    if (step == 5) {
                    }else if (step == 5) {
                        sendCommand3((CrnCommand) task.getData());
                    }
src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
@@ -80,7 +80,11 @@
            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                    .eq("crn_no", basCrnp.getCrnNo())
                    .in("wrk_sts", WrkStsType.INBOUND_RUN.sts, WrkStsType.OUTBOUND_RUN.sts)
                    .in("wrk_sts",
                            WrkStsType.INBOUND_RUN.sts
                            , WrkStsType.OUTBOUND_RUN.sts
                            , WrkStsType.LOC_MOVE_RUN.sts
                    )
            );
            if(!wrkMasts.isEmpty()){
                continue;
@@ -97,46 +101,61 @@
                // 如果最近一次是入库模式
                if (crnProtocol.getLastIo().equals("I")) {
                    if (basCrnp.getInEnable().equals("Y")) {
                        this.crnExecuteIn(basCrnp, crnThread); //  入库
                        boolean result = this.crnExecuteIn(basCrnp, crnThread);//  入库
                        crnProtocol.setLastIo("O");
                        if (result) {
                            break;
                        }
                    } else if (basCrnp.getOutEnable().equals("Y")) {
                        this.crnExecuteOut(basCrnp, crnThread); //  出库
                        boolean result = this.crnExecuteOut(basCrnp, crnThread);//  出库
                        crnProtocol.setLastIo("I");
                        if(result) {
                            break;
                        }
                    }
                }
                // 如果最近一次是出库模式
                else if (crnProtocol.getLastIo().equals("O")) {
                    if (basCrnp.getOutEnable().equals("Y")) {
                        this.crnExecuteOut(basCrnp, crnThread); //  出库
                        boolean result = this.crnExecuteOut(basCrnp, crnThread);//  出库
                        crnProtocol.setLastIo("I");
                        if (result) {
                            break;
                        }
                    } else if (basCrnp.getInEnable().equals("Y")) {
                        this.crnExecuteIn(basCrnp, crnThread); //  入库
                        boolean result = this.crnExecuteIn(basCrnp, crnThread);//  入库
                        crnProtocol.setLastIo("O");
                        if (result) {
                            break;
                        }
                    }
                }
                //库位移转
                this.crnExecuteLocTransfer(basCrnp, crnThread);
                boolean result = this.crnExecuteLocTransfer(basCrnp, crnThread);
                if(result) {
                    break;
                }
            }
        }
    }
    @Synchronized
    private void crnExecuteIn(BasCrnp basCrnp, CrnThread crnThread) {
    private boolean crnExecuteIn(BasCrnp basCrnp, CrnThread crnThread) {
        CrnProtocol crnProtocol = crnThread.getStatus();
        if(crnProtocol == null){
            return;
            return false;
        }
        if(!basCrnp.getInEnable().equals("Y")){
            News.info("堆垛机:{} 可入信号不满足", basCrnp.getCrnNo());
            return;
            return false;
        }
        List<StationObjModel> inStationList = basCrnp.getInStationList$();
        if(inStationList.isEmpty()){
            News.info("堆垛机:{} 入库站点未设置", basCrnp.getCrnNo());
            return;
            return false;
        }
        Integer crnNo = basCrnp.getCrnNo();
@@ -219,25 +238,27 @@
                MessageQueue.offer(SlaveType.Crn, crnNo, new Task(2, command));
                notifyUtils.notify(String.valueOf(SlaveType.Crn), crnNo, String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.CRN_IN_TASK_RUN, null);
                News.info("堆垛机命令下发成功,堆垛机号={},任务数据={}", crnNo, JSON.toJSON(command));
                return true;
            }
        }
        return false;
    }
    private synchronized void crnExecuteOut(BasCrnp basCrnp, CrnThread crnThread) {
    private synchronized boolean crnExecuteOut(BasCrnp basCrnp, CrnThread crnThread) {
        CrnProtocol crnProtocol = crnThread.getStatus();
        if(crnProtocol == null){
            return;
            return false;
        }
        if(!basCrnp.getOutEnable().equals("Y")){
            News.info("堆垛机:{} 可出信号不满足", basCrnp.getCrnNo());
            return;
            return false;
        }
        List<StationObjModel> outStationList = basCrnp.getOutStationList$();
        if(outStationList.isEmpty()){
            News.info("堆垛机:{} 出库站点未设置", basCrnp.getCrnNo());
            return;
            return false;
        }
        Integer crnNo = basCrnp.getCrnNo();
@@ -316,10 +337,11 @@
                    MessageQueue.offer(SlaveType.Crn, crnNo, new Task(2, command));
                    notifyUtils.notify(String.valueOf(SlaveType.Crn), crnNo, String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.CRN_OUT_TASK_RUN, null);
                    News.info("堆垛机命令下发成功,堆垛机号={},任务数据={}", crnNo, JSON.toJSON(command));
                    return;
                    return true;
                }
            }
        }
        return false;
    }
    private synchronized boolean crnExecuteInPlanner(BasCrnp basCrnp, CrnThread crnThread, WrkMast wrkMast) {
@@ -500,10 +522,10 @@
        return false;
    }
    private synchronized void crnExecuteLocTransfer(BasCrnp basCrnp, CrnThread crnThread) {
    private synchronized boolean crnExecuteLocTransfer(BasCrnp basCrnp, CrnThread crnThread) {
        CrnProtocol crnProtocol = crnThread.getStatus();
        if(crnProtocol == null){
            return;
            return false;
        }
        Integer crnNo = basCrnp.getCrnNo();
@@ -561,9 +583,10 @@
                MessageQueue.offer(SlaveType.Crn, crnNo, new Task(2, command));
                notifyUtils.notify(String.valueOf(SlaveType.Crn), crnNo, String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.CRN_TRANSFER_TASK_RUN, null);
                News.info("堆垛机命令下发成功,堆垛机号={},任务数据={}", crnNo, JSON.toJSON(command));
                return;
                return true;
            }
        }
        return false;
    }
    //堆垛机任务执行完成
src/main/java/com/zy/core/utils/WmsOperateUtils.java
@@ -423,7 +423,7 @@
        String[] split = crnNo1.getArr().split(",");
        for (Integer idx : indices) {
            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", split[idx]));
            if (locMast == null||Cools.isEmpty(locMast.getBarcode())) {
            if (locMast == null||Cools.isEmpty(locMast.getBarcode())||locMast.getLocSts().equals("O")) {
                News.info("没有查询到该库位或者没有找到该库位对应托盘码 :{}", split[idx]);
                CrnCommand command = new CrnCommand();
                command.setLocNo(locMast.getLocNo());