#
Junjie
17 小时以前 08431a89037a83be754aca8bb7ad76d254dd8e70
#
9个文件已修改
89 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/BasCrnp.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/AspectConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/CoolExceptionHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/plugin/FakeProcess.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BasCrnpMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/basCrnp/basCrnp.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/basCrnp/basCrnp.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasCrnp.java
@@ -79,6 +79,10 @@
    @TableField("control_rows")
    private String controlRows;
    @ApiModelProperty(value= "深库位排号")
    @TableField("deep_rows")
    private String deepRows;
    /**
     * 入站列表
     */
src/main/java/com/zy/common/config/AspectConfig.java
@@ -63,7 +63,7 @@
            if (annotation != null && !Cools.isEmpty(annotation.memo())) {
                saveErrLog(joinPoint, request, errorResponse, ex, annotation.memo());
            }
            throw ex;
            return errorResponse;
        } finally {
            long end = System.currentTimeMillis();
//            log.info("请求日志的打印");
@@ -122,7 +122,7 @@
    private Object buildErrorResponse(Throwable ex) {
        if (ex instanceof CoolException) {
            return R.parse(ex.getMessage());
            return R.error(ex.getMessage());
        }
        return R.error();
    }
src/main/java/com/zy/common/config/CoolExceptionHandler.java
@@ -26,7 +26,7 @@
    @ExceptionHandler(CoolException.class)
    public R handleRRException(CoolException e) {
        return R.parse(e.getMessage());
        return R.error(e.getMessage());
    }
}
src/main/java/com/zy/common/service/CommonService.java
@@ -38,8 +38,6 @@
    @Autowired
    private NavigateUtils navigateUtils;
    @Autowired
    private CommonService commonService;
    @Autowired
    private RedisUtil redisUtil;
    /**
@@ -139,12 +137,12 @@
            ioPri = param.getTaskPri().doubleValue();
        }
        Integer sourceCrnNo = commonService.findCrnNoByLocNo(sourceLocMast.getLocNo());
        Integer sourceCrnNo = this.findCrnNoByLocNo(sourceLocMast.getLocNo());
        if (sourceCrnNo == null) {
            throw new CoolException("未找到对应堆垛机");
        }
        Integer crnNo = commonService.findCrnNoByLocNo(locMast.getLocNo());
        Integer crnNo = this.findCrnNoByLocNo(locMast.getLocNo());
        if (crnNo == null) {
            throw new CoolException("未找到对应堆垛机");
        }
@@ -202,7 +200,7 @@
            ioPri = param.getTaskPri().doubleValue();
        }
        Integer crnNo = commonService.findCrnNoByLocNo(locMast.getLocNo());
        Integer crnNo = this.findCrnNoByLocNo(locMast.getLocNo());
        if (crnNo == null) {
            throw new CoolException("未找到对应堆垛机");
        }
@@ -256,12 +254,12 @@
            ioPri = param.getTaskPri().doubleValue();
        }
        Integer crnNo = commonService.findCrnNoByLocNo(locMast.getLocNo());
        Integer crnNo = this.findCrnNoByLocNo(locMast.getLocNo());
        if (crnNo == null) {
            throw new CoolException("未找到对应堆垛机");
        }
        Integer sourceStationId = commonService.findOutStationId(crnNo, param.getStaNo());
        Integer sourceStationId = this.findOutStationId(crnNo, param.getStaNo());
        if (sourceStationId == null) {
            throw new CoolException("未找到输送目标站点可走行路径");
        }
src/main/java/com/zy/core/plugin/FakeProcess.java
@@ -582,6 +582,8 @@
                        StationCommand command = stationThread.getMoveCommand(9998, wrkMast.getSourceStaNo(), 0, 0);
                        MessageQueue.offer(SlaveType.Devp, stationObjModel.getDeviceNo(), new Task(2, command));
                    }
                }else if(wrkMast.getWrkSts() == WrkStsType.LOC_MOVE_RUN.sts){
                    updateWrkSts = WrkStsType.COMPLETE_LOC_MOVE.sts;
                }else{
                    News.error("堆垛机处于等待确认且任务完成状态,但工作状态异常。堆垛机号={},工作号={}", basCrnp.getCrnNo(), crnProtocol.getTaskNo());
                    continue;
src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
@@ -91,6 +91,9 @@
                        crnProtocol.setLastIo("O");
                    }
                }
                //库位移转
                this.crnExecuteLocTransfer(basCrnp, crnThread);
            }
        }
    }
@@ -285,6 +288,58 @@
        }
    }
    private synchronized void crnExecuteLocTransfer(BasCrnp basCrnp, CrnThread crnThread) {
        CrnProtocol crnProtocol = crnThread.getStatus();
        if(crnProtocol == null){
            return;
        }
        Integer crnNo = basCrnp.getCrnNo();
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                .eq("crn_no", crnNo)
                .eq("wrk_sts", WrkStsType.NEW_LOC_MOVE.sts)
        );
        for (WrkMast wrkMast : wrkMasts) {
            // 获取源库位信息
            LocMast sourceLocMast = locMastService.selectById(wrkMast.getSourceLocNo());
            if (sourceLocMast == null) {
                News.taskInfo(wrkMast.getWrkNo(), "源库位:{} 信息不存在", wrkMast.getSourceLocNo());
                continue;
            }
            if(!sourceLocMast.getLocSts().equals("R")){
                News.taskInfo(wrkMast.getWrkNo(), "源库位:{} 状态异常,不属于出库预约状态", wrkMast.getSourceLocNo());
                continue;
            }
            // 获取库位信息
            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
            if (locMast == null) {
                News.taskInfo(wrkMast.getWrkNo(), "库位:{} 信息不存在", wrkMast.getLocNo());
                continue;
            }
            if (!locMast.getLocSts().equals("S")) {
                News.taskInfo(wrkMast.getWrkNo(), "库位:{} 状态异常,不属于入库预约状态", wrkMast.getLocNo());
                continue;
            }
            CrnCommand command = crnThread.getPickAndPutCommand(wrkMast.getSourceLocNo(), wrkMast.getLocNo(), wrkMast.getWrkNo(), crnNo);
            wrkMast.setWrkSts(WrkStsType.LOC_MOVE_RUN.sts);
            wrkMast.setCrnNo(crnNo);
            wrkMast.setSystemMsg("");
            wrkMast.setIoTime(new Date());
            if (wrkMastService.updateById(wrkMast)) {
                MessageQueue.offer(SlaveType.Crn, crnNo, new Task(2, command));
                News.info("堆垛机命令下发成功,堆垛机号={},任务数据={}", crnNo, JSON.toJSON(command));
                return;
            }
        }
    }
    //堆垛机任务执行完成
    public synchronized void crnIoExecuteFinish() {
        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
@@ -320,6 +375,8 @@
                    updateWrkSts = WrkStsType.COMPLETE_INBOUND.sts;
                }else if(wrkMast.getWrkSts() == WrkStsType.OUTBOUND_RUN.sts){
                    updateWrkSts = WrkStsType.OUTBOUND_RUN_COMPLETE.sts;
                }else if(wrkMast.getWrkSts() == WrkStsType.LOC_MOVE_RUN.sts){
                    updateWrkSts = WrkStsType.COMPLETE_LOC_MOVE.sts;
                }else{
                    News.error("堆垛机处于等待确认且任务完成状态,但工作状态异常。堆垛机号={},工作号={}", basCrnp.getCrnNo(), crnProtocol.getTaskNo());
                    continue;
src/main/resources/mapper/BasCrnpMapper.xml
@@ -19,6 +19,7 @@
        <result column="out_station_list" property="outStationList" />
        <result column="max_in_task" property="maxInTask" />
        <result column="max_out_task" property="maxOutTask" />
        <result column="deep_rows" property="deepRows" />
    </resultMap>
src/main/webapp/static/js/basCrnp/basCrnp.js
@@ -28,6 +28,7 @@
            ,{field: 'inEnable', align: 'center',title: '可入(checkBox)'}
            ,{field: 'outEnable', align: 'center',title: '可出(checkBox)'}
            ,{field: 'controlRows', align: 'center',title: '控制库位排号'}
            ,{field: 'deepRows', align: 'center',title: '深库位排号'}
            ,{field: 'inStationList', align: 'center',title: '入库站列表'}
            ,{field: 'outStationList', align: 'center',title: '出库站列表'}
            ,{field: 'maxInTask', align: 'center',title: '最大入库任务数'}
src/main/webapp/views/basCrnp/basCrnp.html
@@ -107,6 +107,12 @@
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">深库位排号: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="deepRows" placeholder="请输入深库位排号">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">入库站列表: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="inStationList" placeholder="请输入入库站列表">