#
vincentlu
2025-12-18 ff176992e79222234735220fea9e767e4942d25d
#
1个文件已添加
6个文件已修改
6个文件已删除
2234 ■■■■■ 已修改文件
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AgvAreaDispatcher.java 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AgvGroupConstant.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AreaConstant.java 1619 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AreaDisableConstant.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/LocGroupConstant.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/StaGroupConstant.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvAreaDispatcher.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AreaAgvService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AreaAgvServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AreaServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FuncStaServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AgvAreaDispatcher.java
File was deleted
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AgvGroupConstant.java
File was deleted
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AreaConstant.java
File was deleted
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AreaDisableConstant.java
File was deleted
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/LocGroupConstant.java
File was deleted
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/StaGroupConstant.java
File was deleted
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvAreaDispatcher.java
New file
@@ -0,0 +1,80 @@
package com.zy.acs.manager.core.service;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.manager.manager.entity.Loc;
import com.zy.acs.manager.manager.entity.Sta;
import com.zy.acs.manager.manager.entity.Task;
import com.zy.acs.manager.manager.service.AreaAgvService;
import com.zy.acs.manager.manager.service.LocService;
import com.zy.acs.manager.manager.service.StaService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Slf4j
@Service
public class AgvAreaDispatcher {
    @Autowired
    private LocService locService;
    @Autowired
    private StaService staService;
    @Autowired
    private AreaGovernService areaGovernService;
    @Autowired
    private AreaAgvService areaAgvService;
    @PostConstruct
    public void init() {
    }
    public List<Long> getAgvNosByTask(Task task) {
        if (null == task) {
            return null;
        }
        Loc oriLoc = null;
        Sta oriSta = null;
        Loc destLoc = null;
        Sta destSta = null;
        if (null != task.getOriLoc()) {
            oriLoc = locService.getById(task.getOriLoc());
            return this.getAgvIdsByCode(oriLoc.getCode$());
        }
        if (null != task.getOriSta()) {
            oriSta = staService.getById(task.getOriSta());
            return this.getAgvIdsByCode(oriSta.getCode$());
        }
        if (null != task.getDestLoc()) {
            destLoc = locService.getById(task.getDestLoc());
            return this.getAgvIdsByCode(destLoc.getCode$());
        }
        if (null != task.getDestSta()) {
            destSta = staService.getById(task.getDestSta());
            return this.getAgvIdsByCode(destSta.getCode$());
        }
        return null;
    }
    public List<Long> getAgvIdsByCode(String code) {
        if (Cools.isEmpty(code)) {
            return Collections.emptyList();
        }
        List<Long> areaIds = areaGovernService.queryAreas(code);
        return areaAgvService.queryAgvIdsByAreaIds(areaIds);
    }
    public List<String> getAgvNosByStaNo(String staNo) {
        return null;
    }
    public List<String> getAreaCodeListByAgvNo(String agvNo) {
        List<String> areaCodeList = new ArrayList<>();
        return areaCodeList;
    }
}
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
@@ -3,7 +3,6 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.manager.common.utils.CommonUtil;
import com.zy.acs.manager.core.constant.AgvAreaDispatcher;
import com.zy.acs.manager.core.domain.Lane;
import com.zy.acs.manager.core.domain.TaskPosDto;
import com.zy.acs.manager.manager.entity.*;
@@ -50,7 +49,7 @@
    /**
     * get available agv list which is idle
     */
    private List<String> getAvailableAgvNos(List<String> agvNos) {
    private List<String> getAvailableAgvNos(List<Long> agvIds) {
//        List<Agv> agvList = new ArrayList<>();
//        if (Cools.isEmpty(agvNos)) {
//            // global
@@ -65,9 +64,9 @@
//            }
//        }
        List<Agv> agvList = Cools.isEmpty(agvNos)
        List<Agv> agvList = Cools.isEmpty(agvIds)
                ? agvService.list(new LambdaQueryWrapper<Agv>().eq(Agv::getStatus, StatusType.ENABLE.val))
                : agvNos.stream().map(agvService::selectByUuid).filter(Agv::getStatusBool).collect(Collectors.toList());
                : agvIds.stream().map(agvService::getById).filter(Agv::getStatusBool).collect(Collectors.toList());
        List<String> result = new ArrayList<>();
        for (Agv agv : agvList) {
@@ -106,8 +105,8 @@
     *      it can break the limit of the number of agv backpack
     */
    public synchronized Agv execute(Task task) {
//        List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvNosByTask(task));
        List<String> availableAgvNos = this.getAvailableAgvNos(null);
        List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvNosByTask(task));
//        List<String> availableAgvNos = this.getAvailableAgvNos(null);
        if (Cools.isEmpty(availableAgvNos)) {
//            log.warn("No available agv to assign the task[{}]", task.getSeqNum());
            return null;
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java
@@ -43,6 +43,8 @@
    private TaskService taskService;
    @Autowired
    private MapDataDispatcher mapDataDispatcher;
    @Autowired
    private AreaAgvService areaAgvService;
//    @PreAuthorize("hasAuthority('manager:agv:list')")
//    @PostMapping("/agv/page")
@@ -149,6 +151,9 @@
    @OperationLog("Delete Agv")
    @PostMapping("/agv/remove/{ids}")
    public R remove(@PathVariable Long[] ids) {
        for (Long agvId : ids) {
            areaAgvService.removeByAgvId(agvId);
        }
        if (!agvService.removeByIds(Arrays.asList(ids))) {
            return R.error("Delete Fail");
        }
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AreaAgvService.java
@@ -3,6 +3,14 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.acs.manager.manager.entity.AreaAgv;
import java.util.List;
public interface AreaAgvService extends IService<AreaAgv> {
    List<Long> queryAgvIdsByAreaIds(List<Long> areaIds);
    void removeByAgvId(Long agvId);
    void removeByAreaId(Long areaId);
}
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AreaAgvServiceImpl.java
@@ -1,12 +1,37 @@
package com.zy.acs.manager.manager.service.impl;
import com.zy.acs.manager.manager.mapper.AreaAgvMapper;
import com.zy.acs.manager.manager.entity.AreaAgv;
import com.zy.acs.manager.manager.service.AreaAgvService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.manager.manager.entity.AreaAgv;
import com.zy.acs.manager.manager.mapper.AreaAgvMapper;
import com.zy.acs.manager.manager.service.AreaAgvService;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@Service("areaAgvService")
public class AreaAgvServiceImpl extends ServiceImpl<AreaAgvMapper, AreaAgv> implements AreaAgvService {
    @Override
    public List<Long> queryAgvIdsByAreaIds(List<Long> areaIds) {
        if (Cools.isEmpty(areaIds)) {
            return Collections.emptyList();
        }
        return this.list(new LambdaQueryWrapper<AreaAgv>().in(AreaAgv::getAreaId, areaIds).select(AreaAgv::getAgvId))
                .stream().map(AreaAgv::getAgvId).collect(Collectors.toList());
    }
    @Override
    public void removeByAgvId(Long agvId) {
        this.remove(new LambdaQueryWrapper<AreaAgv>().eq(AreaAgv::getAgvId, agvId));
    }
    @Override
    public void removeByAreaId(Long areaId) {
        this.remove(new LambdaQueryWrapper<AreaAgv>().eq(AreaAgv::getAreaId, areaId));
    }
}
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AreaServiceImpl.java
@@ -131,7 +131,7 @@
    @Override
    public void removeMapArea(Long areaId, Long loginUserId) {
        // area - agv
        areaAgvService.remove(new LambdaQueryWrapper<AreaAgv>().eq(AreaAgv::getAreaId, areaId));
        areaAgvService.removeByAreaId(areaId);
        // cache
        areaGovernService.removeArea(areaId);
        // db
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FuncStaServiceImpl.java
@@ -5,7 +5,7 @@
import com.zy.acs.common.enums.AgvStatusType;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.manager.common.utils.CommonUtil;
import com.zy.acs.manager.core.constant.AgvAreaDispatcher;
import com.zy.acs.manager.core.service.AgvAreaDispatcher;
import com.zy.acs.manager.manager.entity.*;
import com.zy.acs.manager.manager.enums.*;
import com.zy.acs.manager.manager.mapper.FuncStaMapper;