From ae81dbb1364e69cc8c73462795a64cbc6316c1fc Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 17 十月 2024 10:03:50 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java | 89 +++++++++++++++++++++++++++++++++++++++----- 1 files changed, 78 insertions(+), 11 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 2861c4d..299d4e2 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 @@ -2,8 +2,12 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zy.acs.common.utils.GsonUtils; import com.zy.acs.framework.common.Cools; import com.zy.acs.framework.common.R; +import com.zy.acs.framework.common.SnowflakeIdWorker; +import com.zy.acs.framework.exception.CoolException; +import com.zy.acs.manager.common.constant.MapItemType; import com.zy.acs.manager.common.domain.MapAgvDto; import com.zy.acs.manager.common.domain.MapCodeDto; import com.zy.acs.manager.common.domain.MapDto; @@ -13,8 +17,11 @@ 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.entity.*; import com.zy.acs.manager.manager.enums.AgvStsType; +import com.zy.acs.manager.manager.mapper.MapMapper; import com.zy.acs.manager.manager.service.*; import com.zy.acs.manager.system.controller.BaseController; import com.zy.acs.manager.system.service.ConfigService; @@ -23,10 +30,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; -import java.util.Arrays; -import java.util.Date; -import java.util.Iterator; -import java.util.List; +import java.util.*; /** * Created by vincent on 2023/6/1 @@ -51,24 +55,87 @@ private MapService mapService; @Autowired private ConfigService configService; - - - - + @Autowired + private MapMapper mapMapper; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private LocService locService; @PreAuthorize("hasAuthority('manager:loc:list')") @PostMapping("/data/fetch") - public R fetch(@RequestParam(required = false) Long zoneId) { - String mapData = configService.getVal("mapData", String.class); - return R.ok().add(mapData); + public R fetch(@RequestParam(required = false) Long zoneId, @RequestParam(required = false) Integer floor) { + // code + List<Code> codeList = codeService.list(new LambdaQueryWrapper<Code>().eq(Code::getStatus, 1)); + List<MapItem> mapCodeItems = new ArrayList<>(); + codeList.forEach(code -> { + MapItem mapItem = new MapItem(); + mapItem.setType(MapItemType.POINT.toString()); + mapItem.setNo(code.getData()); + mapItem.setUuid(code.getUuid()); + mapItem.setPositionX(code.getX()); + mapItem.setPositionY(code.getY()); + mapCodeItems.add(mapItem); + }); + // common + Map activeMap = mapMapper.selectActive(zoneId, floor); + return R.ok().add(Cools + .add("point", GsonUtils.toJson(mapCodeItems)) + .add("common", activeMap.getData()) + ); } @PreAuthorize("hasAuthority('manager:loc:update')") @PostMapping("/data/save") + @Transactional public R save(@RequestBody MapDataParam param) { + 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)) { + 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)) { + throw new CoolException("Save Fail"); + } return R.ok("Save Success"); } + @PostMapping("/shelf/group") + public R shelfGroup(@RequestParam(required = false) Integer row, @RequestParam(required = false) Integer bay) { + if (null == row || null == bay) { + return R.error(); + } + List<Loc> locList = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getRow, row).eq(Loc::getBay, bay).orderByAsc(Loc::getLev)); + return R.ok().add(locList); + } + + @PostMapping("/agv/info") + public R agvInfo(@RequestParam(required = false) String agvNo) { + if (Cools.isEmpty(agvNo)) { + return R.error(); + } + Agv agv = agvService.selectByUuid(agvNo); + AgvDetail agvDetail = agvDetailService.selectByAgvNo(agvNo); + MapAgvVo vo = new MapAgvVo(); + vo.setAgvNo(agv.getUuid()); + return R.ok().add(vo); + } -- Gitblit v1.9.1