pang.jiabao
昨天 a1e94379b115721b2e604070dc48063b8016f72f
侧面输送线出库码盘信息对接
10个文件已修改
115 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/TaskWrk.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/TaskWrkLog.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/StaProtocol.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/TaskWrkLogMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/TaskWrkMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/TaskWrk.java
@@ -180,6 +180,14 @@
    @TableField("type")
    private String type;
    @TableField("mp")
    private short mp;
    @TableField("lx")
    private short lx;
    @TableField("lev")
    private short lev;
    public TaskWrk() {
    }
src/main/java/com/zy/asrs/entity/TaskWrkLog.java
@@ -171,6 +171,15 @@
    @TableField("type")
    private String type;
    @TableField("mp")
    private short mp;
    @TableField("lx")
    private short lx;
    @TableField("lev")
    private short lev;
    public TaskWrkLog() {
    }
src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
@@ -35,6 +35,21 @@
    //堆垛机
    private Integer crn;
    /**
     * 1:码盘。  2不码盘
     */
    private short mp;
    /**
     * 种类1 永远不叠盘;2叠2层;3叠三层;4叠四层
     */
    private short lx;
    /**
     * 码盘层数
     */
    private short lev;
    public TaskCreateParam() {
    }
src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java
@@ -18,6 +18,9 @@
    //是否满板
    private Integer fullPlt;
    // 码盘高度 1低2高
    private short mpHigh;
    // 物料号列表
    private List<String> matIdList;
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -182,6 +182,7 @@
                        storageEscalationParam.setBarcode(BoxNo);
                        storageEscalationParam.setMatIdList(staProtocol.getMatIdList());
                        storageEscalationParam.setFullPlt(staProtocol.isFullPlt() ? 1 : 0);
                        storageEscalationParam.setMpHigh(staProtocol.getMpHigh());
                        log.info("组托入库={}", storageEscalationParam);
                        TaskWrk taskWrk = toWmsService.getLocNoFromWms(storageEscalationParam);
                        if (taskWrk == null) {
@@ -254,6 +255,10 @@
                            boolean offer = false;
                            try {
                                offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
                                staProtocol.setMp(taskWrk.getMp());
                                staProtocol.setLx(taskWrk.getLx());
                                staProtocol.setLev(taskWrk.getLev());
                                MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
                            } catch (Exception e) {
                                log.error("下发输送线任务失败:异常:" + e);
                                log.error("下发输送线任务失败:异常:offer:" + offer);
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -81,6 +81,9 @@
        taskWrk.setBarcode(param.getBarcode());//条码
        taskWrk.setCrnNo(locMast.getCrnNo());
        taskWrk.setType(param.getType());
        taskWrk.setMp(param.getMp());
        taskWrk.setLx(param.getLx());
        taskWrk.setLev(param.getLev());
        if (param.getIoType() == 1) {
            taskWrk.setWrkSts(1);
            if (!Cools.isEmpty(param.getTargetPoint())) {
src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -73,6 +73,24 @@
    // 条码,侧面出库给输送线
    private String barcode;
    // 高度,侧面码盘的高度
    private short mpHigh;
    /**
     * 1:码盘。  2不码盘
     */
    private short mp;
    /**
     * 种类1 永远不叠盘;2叠2层;3叠三层;4叠四层
     */
    private short lx;
    /**
     * 码盘层数
     */
    private short lev;
    // 外形检测 ------------------------------------------------------------------------
    // 前超限
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -159,6 +159,11 @@
                        write((StaProtocol) task.getData());
                        read();
                        break;
                    // 出入库写码盘信息
                    case 3:
                        write3((StaProtocol) task.getData());
                        read();
                        break;
                    default:
                        break;
                }
@@ -653,6 +658,48 @@
    }
    private void write3(StaProtocol staProtocol){
        int lx = 0,mp = 0,lev = 0;
        switch (staProtocol.getSiteId()) {
            case 205: lx = 16;mp = 18;lev=344;break;
            case 207: lx = 24;mp = 26;lev=348;break;
            case 210: lx = 36;mp = 38;lev=354;break;
            case 212: lx = 44;mp = 46;lev=358;break;
            default:
                log.error("写码盘信息站点有误:{}" , staProtocol.getSiteId());
                return;
        }
        String addressPre = "DB79.";
        //任务下发次数
        int writeCount = 0;
        //任务下发成功标识
        boolean writeFlag = false;
        while (writeCount < 5) {
            OperateResult writeResult1 = siemensS7Net.Write(addressPre + lx, staProtocol.getLx());    // 工装类型
            OperateResult writeResult2 = siemensS7Net.Write(addressPre + mp, staProtocol.getMp());    // 是否码盘
            OperateResult writeResult3 = siemensS7Net.Write(addressPre + lev, staProtocol.getLev());    // 码盘层数
            if (writeResult1.IsSuccess && writeResult2.IsSuccess && writeResult3.IsSuccess) {
                    writeFlag = true;
                    log.info("码盘信息写入输送线命令后返回成功,并且回读成功。输送线plc编号={},{},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                    break;
            } else {
                writeCount++;
                log.error("码盘信息写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
            }
        }
        //写命令尝试了5次还是失败了
        if (!writeFlag) {
            //重新添加数据到任务队列
            MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
            log.error("码盘信息写入输送线命令尝试5次失败重新推送队列。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(staProtocol));
        }
    }
//    /**
//     * 写入 ID+目标站 =====> 单站点写入
//     */
src/main/resources/mapper/TaskWrkLogMapper.xml
@@ -25,7 +25,9 @@
        <result column="crn_no" property="crnNo" />
        <result column="command_step" property="commandStep" />
        <result column="transfer_mark" property="transferMark" />
        <result column="mp" property="mp"/>
        <result column="lx" property="lx"/>
        <result column="lev" property="lev"/>
    </resultMap>
</mapper>
src/main/resources/mapper/TaskWrkMapper.xml
@@ -25,6 +25,9 @@
        <result column="command_step" property="commandStep" />
        <result column="transfer_mark" property="transferMark" />
        <result column="mark_start" property="markStart"/>
        <result column="mp" property="mp"/>
        <result column="lx" property="lx"/>
        <result column="lev" property="lev"/>
    </resultMap>