From ebd2f4397a92c6a5096de1b86d59154363344720 Mon Sep 17 00:00:00 2001 From: vincentlu <t1341870251@gmail.com> Date: 星期二, 13 五月 2025 08:48:15 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java | 126 +++++++++++++++++++++++++++++++++-------- 1 files changed, 100 insertions(+), 26 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java index 299d4e2..513ab9b 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java @@ -13,15 +13,21 @@ import com.zy.acs.manager.common.domain.MapDto; import com.zy.acs.manager.common.domain.MapRouteDto; import com.zy.acs.manager.common.exception.BusinessException; +import com.zy.acs.manager.core.domain.BackpackDto; +import com.zy.acs.manager.core.service.AvoidWaveCalculator; import com.zy.acs.manager.core.service.MapService; +import com.zy.acs.manager.core.service.PatrolService; import com.zy.acs.manager.core.service.floyd.FloydNavigateService; import com.zy.acs.manager.manager.controller.param.MapDataParam; import com.zy.acs.manager.manager.controller.param.MapParam; import com.zy.acs.manager.manager.controller.result.MapAgvVo; -import com.zy.acs.manager.manager.entity.Map; +import com.zy.acs.manager.manager.controller.result.MapPointVo; +import com.zy.acs.manager.manager.controller.result.MapRouteVo; import com.zy.acs.manager.manager.entity.*; import com.zy.acs.manager.manager.enums.AgvStsType; -import com.zy.acs.manager.manager.mapper.MapMapper; +import com.zy.acs.manager.manager.enums.StatusType; +import com.zy.acs.manager.manager.enums.TaskStsType; +import com.zy.acs.manager.manager.mapper.NavMapMapper; import com.zy.acs.manager.manager.service.*; import com.zy.acs.manager.system.controller.BaseController; import com.zy.acs.manager.system.service.ConfigService; @@ -31,6 +37,7 @@ import org.springframework.web.bind.annotation.*; import java.util.*; +import java.util.stream.Collectors; /** * Created by vincent on 2023/6/1 @@ -54,13 +61,26 @@ @Autowired private MapService mapService; @Autowired - private ConfigService configService; + private TaskService taskService; @Autowired - private MapMapper mapMapper; + private NavMapMapper navMapMapper; @Autowired private SnowflakeIdWorker snowflakeIdWorker; @Autowired private LocService locService; + @Autowired + private ConfigService configService; + @Autowired + private PatrolService patrolService; + @Autowired + private AvoidWaveCalculator avoidWaveCalculator; + + @PreAuthorize("hasAuthority('manager:loc:update')") + @PostMapping("/startupOrShutdown") + public synchronized R startupOrShutdown() { + Boolean taskAssignMode = configService.getVal("TaskAssignMode", Boolean.class); + return configService.setVal("TaskAssignMode", !taskAssignMode) ? R.ok() : R.error(); + } @PreAuthorize("hasAuthority('manager:loc:list')") @PostMapping("/data/fetch") @@ -78,10 +98,11 @@ mapCodeItems.add(mapItem); }); // common - Map activeMap = mapMapper.selectActive(zoneId, floor); + NavMap activeNavMap = navMapMapper.selectActive(zoneId, floor); return R.ok().add(Cools + .add("rcsStatus", configService.getVal("TaskAssignMode", Boolean.class)) .add("point", GsonUtils.toJson(mapCodeItems)) - .add("common", activeMap.getData()) + .add("common", null != activeNavMap ? activeNavMap.getData() : null) ); } @@ -92,25 +113,25 @@ Date now = new Date(); Long userId = getLoginUserId(); // previous - Map previousMap = mapMapper.selectActive(param.getZoneId(), param.getFloor()); - if (null != previousMap) { - previousMap.setActive(0); - previousMap.setUpdateTime(now); - previousMap.setUpdateBy(userId); - if (0 == mapMapper.updateById(previousMap)) { + NavMap previousNavMap = navMapMapper.selectActive(param.getZoneId(), param.getFloor()); + if (null != previousNavMap) { + previousNavMap.setActive(0); + previousNavMap.setUpdateTime(now); + previousNavMap.setUpdateBy(userId); + if (0 == navMapMapper.updateById(previousNavMap)) { throw new CoolException("Save Fail"); } } // current - Map map = new Map(); - map.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); - map.setZoneId(param.getZoneId()); - map.setFloor(param.getFloor()); - map.setData(GsonUtils.toJson(param.getItemList())); - map.setActive(1); - map.setUpdateBy(userId); - map.setCreateBy(userId); - if (0 == mapMapper.insert(map)) { + NavMap navMap = new NavMap(); + navMap.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); + navMap.setZoneId(param.getZoneId()); + navMap.setFloor(param.getFloor()); + navMap.setData(GsonUtils.toJson(param.getItemList())); + navMap.setActive(1); + navMap.setUpdateBy(userId); + navMap.setCreateBy(userId); + if (0 == navMapMapper.insert(navMap)) { throw new CoolException("Save Fail"); } return R.ok("Save Success"); @@ -133,10 +154,63 @@ Agv agv = agvService.selectByUuid(agvNo); AgvDetail agvDetail = agvDetailService.selectByAgvNo(agvNo); MapAgvVo vo = new MapAgvVo(); + vo.setAgvId(agv.getId()); vo.setAgvNo(agv.getUuid()); + vo.setStatus(agv.getStatus()); + if (null != agvDetail) { + vo.setOnline(agvService.judgeOnline(agvDetail.getAgvId())); + vo.setAgvStatus(agvDetail.getStatusDesc()); + vo.setVol(String.valueOf(agvDetail.getVol())); + vo.setSoc(String.valueOf(agvDetail.getSoc())); + vo.setPos(agvDetail.getPos() != null && agvDetail.getPos() == 1); + Code code = codeService.getCacheById(agvDetail.getRecentCode()); + if (null != code) { + vo.setCode(code.getData()); + } + vo.setDirection(agvDetail.getAgvAngle()); + vo.setBackpack(GsonUtils.fromJsonToList(agvDetail.getBackpack(), BackpackDto.class)); + vo.setPatrol(patrolService.isPatrolling(agvNo)); + String error = agvDetail.realError(); + if (!Cools.isEmpty(error)) { + vo.setError(error); + } + } + List<Task> tasks = taskService.selectInSts(agv.getId(), TaskStsType.WAITING, TaskStsType.ASSIGN, TaskStsType.PROGRESS); + if (!Cools.isEmpty(tasks)) { + vo.setTaskIds(tasks.stream().map(Task::getId).collect(Collectors.toList())); + } return R.ok().add(vo); } + @PostMapping("/point/info") + public R pointInfo(@RequestParam(required = false) String codeData) { + if (Cools.isEmpty(codeData)) { + return R.error(); + } + Code code = codeService.getCacheByData(codeData); + MapPointVo vo = new MapPointVo(); + vo.setCodeId(code.getId()); + vo.setCodeData(code.getData()); + vo.setStatus(code.getStatus()); + return R.ok().add(vo); + } + + @PostMapping("/route/list") + public R routeList(@RequestParam(required = false) Long zoneId) { + List<MapRouteVo> result = new ArrayList<>(); + List<Route> routeList = routeService.list(new LambdaQueryWrapper<Route>().eq(Route::getStatus, StatusType.ENABLE.val)); + for (Route route : routeList) { + MapRouteVo vo = new MapRouteVo(); + vo.setRouteId(route.getId()); + vo.setStartCode(route.getStartCode()); + vo.setStartCodeStr(route.getStartCode$()); + vo.setEndCode(route.getEndCode()); + vo.setEndCodeStr(route.getEndCode$()); + vo.setDirection(route.getDirection()); + result.add(vo); + } + return R.ok().add(result); + } @@ -166,7 +240,7 @@ List<Code> codes = codeService.list(); List<Code> codeArr = param.getCodeArr(); for (Code code : codeArr) { - Code one = codeService.selectByData(code.getData()); + Code one = codeService.getCacheByData(code.getData()); if (one == null) { if (!codeService.save(code)) { throw new BusinessException(code.getData()+" save fail![Code]"); @@ -192,8 +266,8 @@ List<MapParam.Route> routeArr = param.getRouteArr(); for (MapParam.Route paramRoute : routeArr) { - Code startCode = codeService.selectByData(paramRoute.getStartCode()); - Code endCode = codeService.selectByData(paramRoute.getEndCode()); + Code startCode = codeService.getCacheByData(paramRoute.getStartCode()); + Code endCode = codeService.getCacheByData(paramRoute.getEndCode()); Route route = routeService.findByCodeOfBoth(startCode.getId(), endCode.getId()); if (route == null) { @@ -270,7 +344,7 @@ if (Cools.isEmpty(agvParam.getPos())) { throw new BusinessException(agvParam.getAgvNo() + " agv not in position锛�"); } - Code code = codeService.selectByData(agvParam.getPos()); + Code code = codeService.getCacheByData(agvParam.getPos()); Agv agv = agvService.selectByUuid(agvParam.getAgvNo()); if (agv == null) { agv = new Agv(); @@ -355,7 +429,7 @@ for (Agv agv : agvList) { AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId()); if (null == agvDetail) { continue; } - Code currCode = codeService.getById(agvDetail.getCode()); + Code currCode = codeService.getCacheById(agvDetail.getCode()); MapAgvDto agvDto = new MapAgvDto(); agvDto.setUuid(agv.getUuid()); agvDto.setCurrCode(currCode==null?null:currCode.getData()); -- Gitblit v1.9.1