*
L
2025-07-17 608775c2431d9a8eab45fab90f8df31a4ca7873f
*
1个文件已修改
94 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4940,6 +4940,9 @@
     * 小车XY移动  避让
     * */
    public synchronized boolean rgvAvoidanceXY(Integer rgvId){
        if (rgvId>20){
            rgvId = rgvId-20;
        }
        if (rgvId==1){
            try{
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
@@ -4992,6 +4995,9 @@
     * 小车XY移动  避让
     * */
    public synchronized boolean rgvAvoidanceXYWrkMast(Integer rgvId,short wrkNo1){
        if (rgvId>20){
            rgvId = rgvId-20;
        }
        if (rgvId==2){
            try{
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
@@ -5053,6 +5059,9 @@
     * 小车XY移动  避让
     * */
    public synchronized boolean rgvAvoidanceXY(Integer rgvId,WrkMastSta wrkMastSta){
        if (rgvId>20){
            rgvId = rgvId-20;
        }
        if (rgvId==1){
            try{
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
@@ -5106,6 +5115,9 @@
    * 小车取货至工位任务
    * */
    public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){
        if (rgvId>20){
            rgvId = rgvId-20;
        }
        try{
            //  命令下发区 --------------------------------------------------------------------------
            RgvCommand rgvCommand = new RgvCommand();
@@ -5128,64 +5140,13 @@
        }
    }
    /*
     * 小车取货至工位任务
     * */
    public synchronized boolean rgvTakeFullPut(Integer rgvId,WrkMastSta wrkMastSta){
        try{
            //  命令下发区 --------------------------------------------------------------------------
            RgvCommand rgvCommand = new RgvCommand();
            rgvCommand.setRgvNo(rgvId); // RGV编号
            rgvCommand.setAckFinish1((short) 0);  // 工位1任务完成确认位
            rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 工位1工作号
            rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 工位1任务模式:  单取
            rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue());   //工位1起点
            rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue());   //工位1目标站点
            rgvCommand.setCommand((short) 1);   //工位1任务确认
            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
                //step=2,工位1、2写任务;   step=4,工位1写任务;     step=5,工位2写任务
                log.error("RGV命令下发失败,RGV号={},任务数据={}", rgvId, JSON.toJSON(rgvCommand));
                return false;
            } else {
                return true;
            }
        }catch (Exception e){
            return false;
        }
    }
    /*
     * 小车放货至工位任务
     * */
    public synchronized boolean rgvTakeFullTake(Integer rgvId,WrkMastSta wrkMastSta){
        try{
            //  命令下发区 --------------------------------------------------------------------------
            RgvCommand rgvCommand = new RgvCommand();
            rgvCommand.setRgvNo(rgvId); // RGV编号
            rgvCommand.setAckFinish1((short) 0);  // 工位1任务完成确认位
            rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 工位1工作号
            rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 工位1任务模式:  单放
            rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue());   //工位1起点
            rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue());   //工位1目标站点
            rgvCommand.setCommand((short) 1);   //工位1任务确认
            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
                //step=2,工位1、2写任务;   step=4,工位1写任务;     step=5,工位2写任务
                log.error("RGV命令下发失败,RGV号={},任务数据={}", rgvId, JSON.toJSON(rgvCommand));
                return false;
            } else {
                return true;
            }
        }catch (Exception e){
            return false;
        }
    }
    /*
     * 小车取货至工位任务
     * */
    public synchronized boolean rgvTakeFull(Integer rgvId,WrkMastSta wrkMastSta){
        if (rgvId>20){
            rgvId = rgvId-20;
        }
        try{
            //  命令下发区 --------------------------------------------------------------------------
            RgvCommand rgvCommand = new RgvCommand();
@@ -5211,6 +5172,9 @@
    * 小车放货至输送线任务
    * */
    public synchronized boolean rgvPutFull(Integer rgvId,WrkMastSta wrkMastSta){
        if (rgvId>20){
            rgvId = rgvId-20;
        }
        try{
            //  命令下发区 --------------------------------------------------------------------------
            RgvCommand rgvCommand = new RgvCommand();
@@ -5236,6 +5200,9 @@
     * 小车取空板至工位任务  叠盘
     * */
    public synchronized boolean rgvTakeEmpty(Integer rgvId,WrkMastSta wrkMastSta){
        if (rgvId>20){
            rgvId = rgvId-20;
        }
        try{
            //  命令下发区 --------------------------------------------------------------------------
            RgvCommand rgvCommand = new RgvCommand();
@@ -5261,6 +5228,9 @@
     * 小车放空板至输送线任务   //拆盘
     * */
    public synchronized boolean rgvPutEmpty(Integer rgvId,WrkMastSta wrkMastSta){
        if (rgvId>20){
            rgvId = rgvId-20;
        }
        try{
            //  命令下发区 --------------------------------------------------------------------------
            RgvCommand rgvCommand = new RgvCommand();
@@ -5286,6 +5256,9 @@
     * 小车取空板至工位任务  满取
     * */
    public synchronized boolean rgvTakeEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){
        if (rgvId>20){
            rgvId = rgvId-20;
        }
        try{
            //  命令下发区 --------------------------------------------------------------------------
            RgvCommand rgvCommand = new RgvCommand();
@@ -5311,6 +5284,9 @@
     * 小车放空板至输送线任务   //满放
     * */
    public synchronized boolean rgvPutEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){
        if (rgvId>20){
            rgvId = rgvId-20;
        }
        try{
            //  命令下发区 --------------------------------------------------------------------------
            RgvCommand rgvCommand = new RgvCommand();
@@ -5336,6 +5312,9 @@
     * 小车复位
     * */
    public synchronized boolean rgvComplete(Integer rgvId){
        if (rgvId>20){
            rgvId = rgvId-20;
        }
        try{
            //  命令下发区 --------------------------------------------------------------------------
            if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(3, new RgvCommand()))) {
@@ -5356,6 +5335,9 @@
     * 小车复位
     * */
    public synchronized boolean rgvComplete(Integer rgvId,Short taskNo1){
        if (rgvId>20){
            rgvId = rgvId-20;
        }
        try{
            RgvCommand rgvCommand = new RgvCommand();
            rgvCommand.setTaskNo1(taskNo1);
@@ -5381,7 +5363,9 @@
        if (rgvOpen){
            return true;
        }
        if (basRgvMapCurrent.getRgvNo()>20){
            return true;
        }
//        List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute());
        //更新当前小车锁
        try{