zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AgvAreaDispatcher.java
@@ -7,6 +7,7 @@ import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -101,4 +102,32 @@ return null; } public List<String> getAreaCodeListByAgvNo(String agvNo) { List<String> areaCodeList = new ArrayList<>(); if (null == agvNo) { return areaCodeList; } if (AgvGroupConstant.FIRST_AGV_GROUP.contains(agvNo)) { areaCodeList = FAR_LEFT_AREA; areaCodeList.addAll(FAR_LEFT_DISABLE_AREA); } if (AgvGroupConstant.SECOND_AGV_GROUP.contains(agvNo)) { areaCodeList = LEFT_AREA; areaCodeList.addAll(LEFT_DISABLE_AREA); } if (AgvGroupConstant.THIRD_AGV_GROUP.contains(agvNo)) { areaCodeList = MIDDLE_AREA; areaCodeList.addAll(MIDDLE_DISABLE_AREA); } if (AgvGroupConstant.FOURTH_AGV_GROUP.contains(agvNo)) { areaCodeList = RIGHT_AREA; areaCodeList.addAll(RIGHT_DISABLE_AREA); } if (AgvGroupConstant.FIFTH_AGV_GROUP.contains(agvNo)) { areaCodeList = FAR_RIGHT_AREA; areaCodeList.addAll(FAR_RIGHT_DISABLE_AREA); } return areaCodeList; } } zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
@@ -202,7 +202,9 @@ List<String> codeList = AgvAreaDispatcher.AGV_AREA.get(agvNo); List<String> disableCodeList = AgvAreaDispatcher.AGV_DISABLE_AREA.get(agvNo); if (!Cools.isEmpty(codeList)) { Collections.shuffle(codeList); } for (String endCodeData : codeList) { if (disableCodeList.contains(endCodeData)) { continue; } zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/FuncStaServiceImpl.java
@@ -5,6 +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.manager.entity.*; import com.zy.acs.manager.manager.enums.FuncStaType; import com.zy.acs.manager.manager.enums.StatusType; @@ -31,6 +32,8 @@ private AgvModelService agvModelService; @Autowired private TaskService taskService; @Autowired private AgvAreaDispatcher agvAreaDispatcher; @Override public FuncSta getByCodeAndType(Long codeId, String type) { @@ -60,7 +63,22 @@ return new ArrayList<>(); } // area limit List<String> areaCodeList = agvAreaDispatcher.getAreaCodeListByAgvNo(agvService.getAgvNo(agvId)); if (Cools.isEmpty(areaCodeList)) { funcStaList.clear(); } else { funcStaList.removeIf(funcSta -> { Code code = codeService.getCacheById(funcSta.getCode()); if (Cools.isEmpty(code, code.getData())) { return true; } return !areaCodeList.contains(code.getData()); }); } if (!Cools.isEmpty(funcStaList)) { Collections.shuffle(funcStaList); } // filter idle funcStaList = funcStaList.stream().filter(funcSta -> {