*
L
2025-07-17 96ffc9779885b70bbd886954fc756465f833374d
*
1个文件已修改
2个文件已添加
170 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/BasRgvMapService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasRgvMapServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 139 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/BasRgvMapService.java
New file
@@ -0,0 +1,10 @@
package com.zy.asrs.service;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.BasRgvMap;
public interface BasRgvMapService extends IService<BasRgvMap> {
    BasRgvMap selectByIdSignTwo(Integer rgvNo,Integer signTwo);
}
src/main/java/com/zy/asrs/service/impl/BasRgvMapServiceImpl.java
New file
@@ -0,0 +1,21 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.BasRgvMap;
import com.zy.asrs.mapper.BasRgvMapMapper;
import com.zy.asrs.service.BasRgvMapService;
import org.springframework.stereotype.Service;
@Service("basRgvMapService")
public class BasRgvMapServiceImpl extends ServiceImpl<BasRgvMapMapper, BasRgvMap> implements BasRgvMapService {
    @Override
    public BasRgvMap selectByIdSignTwo(Integer rgvNo,Integer signTwo) {
        if (signTwo == null || signTwo <2) {
            return this.baseMapper.selectById(rgvNo);
        } else {
            return this.baseMapper.selectById(rgvNo+20);
        }
    }
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -93,9 +93,9 @@
    @Autowired
    private WrkMastStaMapper wrkMastStaMapper;
    @Autowired
    private BasRgvMapMapper basRgvMapMapper;
    @Autowired
    private RgvOneSignMapper rgvOneSignMapper;
    @Autowired
    private BasRgvMapService basRgvMapService;
    @Value("${wms.url}")
    private String wmsUrl;
@@ -3552,7 +3552,13 @@
                            if (!rgvComplete){
                                log.error("小车复位失败,小车号{}!",rgvProtocol.getRgvNo());
                            }
                            BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                            RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                            int rgvSignTwoType = 0;
                            if (!Cools.isEmpty(rgvSignTwo)){
                                rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                            }
                            BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(rgvProtocol.getRgvNo(),rgvSignTwoType);
                            basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
                            rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
                            break;
@@ -3630,7 +3636,13 @@
                        }
                        wrkMastSta.setWrkSts(3);
                        wrkMastStaMapper.updateById(wrkMastSta);
                        BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                        RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                        int rgvSignTwoType = 0;
                        if (!Cools.isEmpty(rgvSignTwo)){
                            rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                        }
                        BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(rgvProtocol.getRgvNo(),rgvSignTwoType);
                        basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
                        rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
                    }else if (rgvProtocol.getTaskNo2()!=0 && (rgvProtocol.getStatusType2()==RgvStatusType.WAITING || rgvProtocol.getStatusType2()==RgvStatusType.FETCHWAITING)){
@@ -3639,7 +3651,13 @@
                            if (!rgvComplete){
                                log.error("小车复位失败,小车号{}!",rgvProtocol.getRgvNo());
                            }
                            BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                            RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                            int rgvSignTwoType = 0;
                            if (!Cools.isEmpty(rgvSignTwo)){
                                rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                            }
                            BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(rgvProtocol.getRgvNo(),rgvSignTwoType);
                            basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
                            rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
                            break;
@@ -3688,7 +3706,13 @@
                        }
                        wrkMastSta.setWrkSts(3);
                        wrkMastStaMapper.updateById(wrkMastSta);
                        BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                        RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                        int rgvSignTwoType = 0;
                        if (!Cools.isEmpty(rgvSignTwo)){
                            rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                        }
                        BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(rgvProtocol.getRgvNo(),rgvSignTwoType);
                        basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
                        rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
                    }else {
@@ -3840,7 +3864,13 @@
                        && rgvProtocol.getLoaded1()==0
                        && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
                ) {
                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(basRgv.getRgvNo());
                    RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                    int rgvSignTwoType = 0;
                    if (!Cools.isEmpty(rgvSignTwo)){
                        rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                    }
                    BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(basRgv.getRgvNo(),rgvSignTwoType);
                    if (basRgvMap == null) {
                        log.error("{}号RGV尚未在数据库地图中进行维护!", rgvProtocol.getRgvNo());
                        return false;
@@ -3955,7 +3985,13 @@
                    && rgvProtocol.getLoaded1()==0
                    && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
            ) {
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(basRgv.getRgvNo());
                RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                int rgvSignTwoType = 0;
                if (!Cools.isEmpty(rgvSignTwo)){
                    rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                }
                BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(basRgv.getRgvNo(),rgvSignTwoType);
                if (basRgvMap == null) {
                    log.error("{}号RGV尚未在数据库地图中进行维护!", rgvProtocol.getRgvNo());
                    return false;
@@ -4037,7 +4073,13 @@
                        && rgvProtocol.getLoaded1()==1
                        && rgvProtocol.getTaskNo1()!=0 && rgvProtocol.getTaskNo2()==0
            ) {// 只有当RGV空闲、自动,工位一有物  有工作号//rgv可用
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(basRgv.getRgvNo());
                RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                int rgvSignTwoType = 0;
                if (!Cools.isEmpty(rgvSignTwo)){
                    rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                }
                BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(basRgv.getRgvNo(),rgvSignTwoType);
                if (basRgvMap == null) {
                    log.error("{}号RGV尚未在数据库地图中进行维护!", rgvProtocol.getRgvNo());
                    return false;
@@ -4124,7 +4166,13 @@
                        && rgvProtocol.getTaskNo2()==0
                        && (rgvProtocol.getLoaded2()==3  || rgvProtocol.getLoaded2()==1 || rgvProtocol.getLoaded2()==4)////0 无物;1 一层无物二层有物 (只能拆叠) ;2一层有物二层无物() ;3  1、2层都有物  4:()只允许拆盘
                ) {
                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                    RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                    int rgvSignTwoType = 0;
                    if (!Cools.isEmpty(rgvSignTwo)){
                        rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                    }
                    BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(basRgv.getRgvNo(),rgvSignTwoType);
                    if (basRgvMap == null) {
                        log.error("{}号RGV尚未在数据库地图中进行维护!", rgvProtocol.getRgvNo());
                        return false;
@@ -4232,7 +4280,13 @@
                    && rgvProtocol.getLoaded1()==1
                    && rgvProtocol.getTaskNo1()!=0 && rgvProtocol.getTaskNo2()==0
            ) {
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                int rgvSignTwoType = 0;
                if (!Cools.isEmpty(rgvSignTwo)){
                    rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                }
                BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(rgvProtocol.getRgvNo(),rgvSignTwoType);
                if (basRgvMap == null) {
                    log.error("{}号RGV尚未在数据库地图中进行维护!", rgvProtocol.getRgvNo());
                    return false;
@@ -4345,7 +4399,13 @@
                        && rgvProtocol.getTaskNo2()==0
                        &&  (rgvProtocol.getLoaded2()==2  || rgvProtocol.getLoaded2()==3 ) ////0 无物;1 一层无物二层有物  ;2一层有物二层无物 (只能满放);3  1、2层都有物  4:()只允许拆盘
                ) {
                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                    RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                    int rgvSignTwoType = 0;
                    if (!Cools.isEmpty(rgvSignTwo)){
                        rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                    }
                    BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(rgvProtocol.getRgvNo(),rgvSignTwoType);
                    if (basRgvMap == null) {
                        log.error("{}号RGV尚未在数据库地图中进行维护!", rgvProtocol.getRgvNo());
                        return false;
@@ -4453,7 +4513,13 @@
                        && rgvProtocol.getTaskNo2()==0
                        &&  (rgvProtocol.getLoaded2()==0  || rgvProtocol.getLoaded2()==1 ) //现场修改:叠盘机,////0 无物;1 一层无物二层有物(只能拆叠)   ;2一层有物二层无物 (只能满放);3  1、2层都有物  4:()只允许拆盘
                ) {
                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                    RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                    int rgvSignTwoType = 0;
                    if (!Cools.isEmpty(rgvSignTwo)){
                        rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                    }
                    BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(rgvProtocol.getRgvNo(),rgvSignTwoType);
                    if (basRgvMap == null) {
                        log.error("{}号RGV尚未在数据库地图中进行维护!", rgvProtocol.getRgvNo());
                        return false;
@@ -4549,7 +4615,13 @@
                    && rgvProtocol.getLoaded1() == 0
                    && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
            ) {
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                int rgvSignTwoType = 0;
                if (!Cools.isEmpty(rgvSignTwo)){
                    rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                }
                BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(rgvProtocol.getRgvNo(),rgvSignTwoType);
                if (basRgvMap == null) {
                    log.error("{}号RGV尚未在数据库地图中进行维护!", rgvProtocol.getRgvNo());
                    return false;
@@ -4638,7 +4710,13 @@
                        && rgvProtocol.getTaskNo2()==0
                        &&  rgvProtocol.getLoaded2()==0  //现场修改:叠盘机,////0 无物;1 一层无物二层有物(只能拆叠)   ;2一层有物二层无物 (只能满放);3  1、2层都有物  4:()只允许拆盘
                ) {
                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                    RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                    int rgvSignTwoType = 0;
                    if (!Cools.isEmpty(rgvSignTwo)){
                        rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                    }
                    BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(rgvProtocol.getRgvNo(),rgvSignTwoType);
                    if (basRgvMap == null) {
                        log.error("{}号RGV尚未在数据库地图中进行维护!", rgvProtocol.getRgvNo());
                        return false;
@@ -4732,7 +4810,13 @@
                        || (rgvProtocol.getTaskNo1()>0 && rgvProtocol.getLoaded1()==1))
                        && rgvProtocol.getTaskNo2()==0
                ) {
                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
                    RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                    int rgvSignTwoType = 0;
                    if (!Cools.isEmpty(rgvSignTwo)){
                        rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                    }
                    BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(rgvProtocol.getRgvNo(),rgvSignTwoType);
                    if (basRgvMap == null) {
                        log.error("{}号RGV尚未在数据库地图中进行维护!", rgvProtocol.getRgvNo());
                        return false;
@@ -4925,7 +5009,13 @@
                        || (rgvProtocol.getTaskNo1()>0 && rgvProtocol.getLoaded1()==1))
                        && rgvProtocol.getTaskNo2()==0
                ) {
                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvSlave.getId());
                    RgvOneSign rgvSignTwo = rgvOneSignMapper.selectOneSign("rgvTwo");
                    int rgvSignTwoType = 0;
                    if (!Cools.isEmpty(rgvSignTwo)){
                        rgvSignTwoType = rgvSignTwo.getRgvOneSign();
                    }
                    BasRgvMap basRgvMap = basRgvMapService.selectByIdSignTwo(rgvSlave.getId(),rgvSignTwoType);
                    basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
                    rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
                }
@@ -4945,7 +5035,6 @@
        }
        if (rgvId==1){
            try{
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
                //  命令下发区 --------------------------------------------------------------------------
                RgvCommand rgvCommand = new RgvCommand();
                rgvCommand.setRgvNo(rgvId); // RGV编号
@@ -4968,7 +5057,6 @@
            }
        }else {
            try{
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
                //  命令下发区 --------------------------------------------------------------------------
                RgvCommand rgvCommand = new RgvCommand();
                rgvCommand.setRgvNo(rgvId); // RGV编号
@@ -5000,7 +5088,6 @@
        }
        if (rgvId==2){
            try{
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
                //  命令下发区 --------------------------------------------------------------------------
                RgvCommand rgvCommand = new RgvCommand();
                rgvCommand.setRgvNo(rgvId); // RGV编号
@@ -5027,7 +5114,6 @@
            }
        }else {
            try{
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
                //  命令下发区 --------------------------------------------------------------------------
                RgvCommand rgvCommand = new RgvCommand();
                rgvCommand.setRgvNo(rgvId); // RGV编号
@@ -5064,7 +5150,6 @@
        }
        if (rgvId==1){
            try{
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
                //  命令下发区 --------------------------------------------------------------------------
                RgvCommand rgvCommand = new RgvCommand();
                rgvCommand.setRgvNo(rgvId); // RGV编号
@@ -5087,7 +5172,6 @@
            }
        }else {
            try{
                BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
                //  命令下发区 --------------------------------------------------------------------------
                RgvCommand rgvCommand = new RgvCommand();
                rgvCommand.setRgvNo(rgvId); // RGV编号
@@ -5363,7 +5447,7 @@
        if (rgvOpen){
            return true;
        }
        if (basRgvMapCurrent.getRgvNo()>20){
        if (basRgvMapCurrent.getRgvNo()>2){
            return true;
        }
//        List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute());
@@ -5373,16 +5457,17 @@
//            Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(staEnd, staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//获取最远站点
            Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //获取合并干涉项
            basRgvMapCurrent.setLockEndRoute(fallMerge);
            basRgvMapMapper.updateById(basRgvMapCurrent);
            basRgvMapService.updateById(basRgvMapCurrent);
            //更新另一台小车地图
            Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther();
            BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
            BasRgvMap basRgvMapOther = basRgvMapService.selectById(rgvNoOther);
            List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
            Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//另一台小车可活动最远位置
            Integer lockEndRouteL = RouteUtils.RouteIndexFarMasL(rgvNoOther, lockEndRoute);//另一台小车可活动最远位置
            basRgvMapOther.setEndRoute(lockEndRouteL);
            basRgvMapMapper.updateById(basRgvMapOther);
            basRgvMapService.updateById(basRgvMapOther);
            return true;
        }catch (Exception e){
            log.error("小车地图更新出错!");