#
lsh
2024-07-15 8c47919d892aaeb00cdef1b408c88a09113a6213
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4483,6 +4483,84 @@
        }
    }
    /*
     * 堆垛机取货至工位任务
     * */
    public synchronized boolean crnExecuteTakeFullPair(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwinOne,WrkMastSplitTwin wrkMastSplitTwinTwo, Integer crnStation){
        try{
            //  命令下发区 --------------------------------------------------------------------------
            // 1.堆垛机开始移动
            CrnCommandParam crnCommandParam = new CrnCommandParam();
            crnCommandParam.setCrnNo(crnNo); // 堆垛机编号
            crnCommandParam.setTaskNo(wrkMastSplitTwinOne.getWrkNo().shortValue()); // 工作号
            crnCommandParam.setAckFinish((short) 0);  // 任务完成确认位
            crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 任务模式:  单取货
            crnCommandParam.setSourcePosX(wrkMastSplitTwinOne.getStartRow().shortValue());     // 源库位排
            crnCommandParam.setSourcePosY(wrkMastSplitTwinOne.getStartBay().shortValue());     // 源库位列
            crnCommandParam.setSourcePosZ(wrkMastSplitTwinOne.getStartLev().shortValue());     // 源库位层
            crnCommandParam.setDestinationPosX((short)0);     // 目标库位排
            crnCommandParam.setDestinationPosY((short)0);     // 目标库位列
            crnCommandParam.setDestinationPosZ((short)0);     // 目标库位层
            crnCommandParam.setTaskNo2(wrkMastSplitTwinTwo.getWrkNo().shortValue()); // 工作号
            crnCommandParam.setAckFinish2((short) 0);  // 任务完成确认位
            crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_TAKE); // 任务模式:  单取货
            crnCommandParam.setSourcePosX2(wrkMastSplitTwinTwo.getStartRow().shortValue());     // 源库位排
            crnCommandParam.setSourcePosY2(wrkMastSplitTwinTwo.getStartBay().shortValue());     // 源库位列
            crnCommandParam.setSourcePosZ2(wrkMastSplitTwinTwo.getStartLev().shortValue());     // 源库位层
            crnCommandParam.setDestinationPosX2((short)0);     // 目标库位排
            crnCommandParam.setDestinationPosY2((short)0);     // 目标库位列
            crnCommandParam.setDestinationPosZ2((short)0);     // 目标库位层
            if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) {
                log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", crnCommandParam.getCrnNo(), JSON.toJSONString(crnCommandParam));
                return false;
            } else {
                return true;
            }
        }catch (Exception e){
            return false;
        }
    }
    /*
     * 堆垛机放货货至出库站点任务
     * */
    public synchronized boolean crnExecutePutFullPair(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwinOne,WrkMastSplitTwin wrkMastSplitTwinTwo, Integer crnStation){
        try{
            //  命令下发区 --------------------------------------------------------------------------
            // 1.堆垛机开始移动
            CrnCommandParam crnCommandParam = new CrnCommandParam();
            crnCommandParam.setCrnNo(crnNo); // 堆垛机编号
            crnCommandParam.setTaskNo(wrkMastSplitTwinOne.getWrkNo().shortValue()); // 工作号
            crnCommandParam.setAckFinish((short) 0);  // 任务完成确认位
            crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_PUT); // 任务模式:  单放货
            crnCommandParam.setSourcePosX((short)0);     // 源库位排
            crnCommandParam.setSourcePosY((short)0);     // 源库位列
            crnCommandParam.setSourcePosZ((short)0);     // 源库位层
            crnCommandParam.setDestinationPosX(wrkMastSplitTwinOne.getEndRow().shortValue());     // 目标库位排
            crnCommandParam.setDestinationPosY(wrkMastSplitTwinOne.getEndBay().shortValue());     // 目标库位列
            crnCommandParam.setDestinationPosZ(wrkMastSplitTwinOne.getEndLev().shortValue());     // 目标库位层
            crnCommandParam.setTaskNo2(wrkMastSplitTwinTwo.getWrkNo().shortValue()); // 工作号
            crnCommandParam.setAckFinish2((short) 0);  // 任务完成确认位
            crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_PUT); // 任务模式:  单放货
            crnCommandParam.setSourcePosX2((short)0);     // 源库位排
            crnCommandParam.setSourcePosY2((short)0);     // 源库位列
            crnCommandParam.setSourcePosZ2((short)0);     // 源库位层
            crnCommandParam.setDestinationPosX2(wrkMastSplitTwinTwo.getEndRow().shortValue());     // 目标库位排
            crnCommandParam.setDestinationPosY2(wrkMastSplitTwinTwo.getEndBay().shortValue());     // 目标库位列
            crnCommandParam.setDestinationPosZ2(wrkMastSplitTwinTwo.getEndLev().shortValue());     // 目标库位层
            if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) {
                log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", crnCommandParam.getCrnNo(), JSON.toJSONString(crnCommandParam));
                return false;
            } else {
                return true;
            }
        }catch (Exception e){
            return false;
        }
    }
    /**
     *  Jar任务创建  初始  //完成
     */