| | |
| | | package com.xiaopeng.map.controller; |
| | | |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import com.xiaopeng.api.dto.operation.ElectronicFenceAddDto; |
| | | import com.xiaopeng.api.dto.operation.ElectronicFenceAreaUpdateStatusDto; |
| | | import com.xiaopeng.api.dto.operation.ElectronicFenceUpdateDto; |
| | |
| | | import com.xiaopeng.api.model.operation.XpElectronicFence; |
| | | import com.xiaopeng.api.model.operation.XpElectronicFenceArea; |
| | | import com.xiaopeng.api.model.operation.XpPoint; |
| | | import com.xiaopeng.api.model.operation.XpRegion; |
| | | import com.xiaopeng.api.query.operation.ElectronicPageListQuery; |
| | | import com.xiaopeng.api.vo.operation.ElectronicFenceDetailVo; |
| | | import com.xiaopeng.common.core.domain.R; |
| | |
| | | import com.xiaopeng.common.core.utils.bean.BeanUtils; |
| | | import com.xiaopeng.common.core.web.page.PageInfo; |
| | | import com.xiaopeng.common.security.service.TokenService; |
| | | import com.xiaopeng.map.constant.I18nKeyConstant; |
| | | import com.xiaopeng.map.service.XpElectronicFenceAreaService; |
| | | import com.xiaopeng.map.service.XpElectronicFenceService; |
| | | import com.xiaopeng.map.service.XpRegionService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Collection; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | |
| | | |
| | | @Resource |
| | | private XpElectronicFenceService xpElectronicFenceService; |
| | | private TokenService tokenService; |
| | | |
| | | @Resource |
| | | private XpElectronicFenceAreaService xpElectronicFenceAreaService; |
| | | private XpElectronicClient xpElectronicClient; |
| | | |
| | | @Resource |
| | | private XpRegionService regionService; |
| | | /** |
| | | * 查询省市管理 |
| | | */ |
| | | @ApiOperation(value = "查询省市区",response = XpRegion.class) |
| | | @GetMapping(value = "/getRegion") |
| | | public R<List<List<XpRegion>>> geXpRegion() { |
| | | return R.ok(regionService.getXpRegion()); |
| | | } |
| | | @ApiOperation(value = "电子围栏管理列表", response = XpElectronicFence.class) |
| | | @ApiOperation(value = "电子围栏管理列表", response = XpPoint.class) |
| | | @PostMapping("/pageList") |
| | | public R<PageInfo<XpElectronicFence>> pageList(@RequestBody ElectronicPageListQuery query) { |
| | | PageInfo<XpElectronicFence> pageList = xpElectronicFenceService.pageList(query); |
| | | return R.ok(pageList); |
| | | return R.ok(xpElectronicClient.pageList(query).getData()); |
| | | } |
| | | /** |
| | | * 电子围栏列表接口 |
| | | * |
| | | * @return 电子围栏列表 |
| | | */ |
| | | @ApiOperation(value = "电子围栏列表接口", tags = {"运维APP-车辆管理"}) |
| | | @GetMapping("/api/v1/electronicFence/list") |
| | | public R<List<XpElectronicFence>> vehicleMap() { |
| | | List<XpElectronicFence> list = xpElectronicFenceService.list(); |
| | | return R.ok(list); |
| | | } |
| | | |
| | | /** |
| | | * 新增电子围栏 |
| | | */ |
| | |
| | | // @Transactional |
| | | // @ShardingSphereTransactionType(TransactionType.BASE) |
| | | public R add(@Validated @RequestBody ElectronicFenceAddDto dto) { |
| | | return xpElectronicFenceService.addElectronic(dto); |
| | | |
| | | return xpElectronicClient.add(dto); |
| | | } |
| | | |
| | | |
| | |
| | | // @Transactional |
| | | // @ShardingSphereTransactionType(TransactionType.BASE) |
| | | public R updateStatus(@RequestBody ElectronicFenceAreaUpdateStatusDto dto) { |
| | | XpElectronicFenceArea electronicFenceArea = xpElectronicFenceAreaService.getById(dto.getId()); |
| | | if (electronicFenceArea == null) { |
| | | throw new ServiceException( |
| | | "围栏构成不存在,请刷新重试", |
| | | I18nKeyConstant.FENCE_STRUCTURE_NOT_EXIST |
| | | ); |
| | | } |
| | | xpElectronicFenceAreaService.updateById(electronicFenceArea); |
| | | return R.ok(); |
| | | |
| | | return xpElectronicClient.updateStatus(dto); |
| | | } |
| | | |
| | | /** |
| | | * 电子围栏详情 |
| | | */ |
| | | @PostMapping("/queryById") |
| | | @ResponseBody |
| | | @ApiOperation(value = "电子围栏详情") |
| | | public R<ElectronicFenceDetailVo> queryById(@RequestParam("id")Long id) { |
| | | ElectronicFenceDetailVo res = new ElectronicFenceDetailVo(); |
| | | XpElectronicFence electronicFence = xpElectronicFenceService.getById(id); |
| | | if (electronicFence == null) { |
| | | throw new ServiceException( |
| | | "电子围栏不存在,请刷新重试", |
| | | I18nKeyConstant.FENCE_NOT_EXIST |
| | | ); |
| | | } |
| | | BeanUtils.copyProperties(electronicFence, res); |
| | | List<XpElectronicFenceArea> electronicFenceAreaList = xpElectronicFenceAreaService.lambdaQuery().eq(XpElectronicFenceArea::getElectronicId, id) |
| | | .list(); |
| | | res.setElectronicFenceAreas(electronicFenceAreaList); |
| | | return R.ok(res); |
| | | return xpElectronicClient.queryById(id); |
| | | } |
| | | |
| | | /** |
| | | * 编辑电子围栏 |
| | | */ |
| | | @PostMapping("/edit") |
| | | @ResponseBody |
| | | @ApiOperation(value = "编辑电子围栏") |
| | | // @Transactional |
| | | // @ShardingSphereTransactionType(TransactionType.BASE) |
| | | public R edit(@Validated @RequestBody ElectronicFenceUpdateDto dto) { |
| | | return xpElectronicFenceService.editElectronic(dto); |
| | | return xpElectronicClient.edit(dto); |
| | | } |
| | | |
| | | /** |
| | |
| | | // @Transactional |
| | | // @ShardingSphereTransactionType(TransactionType.BASE) |
| | | public R<Long> copy(@RequestParam("id") Integer id) { |
| | | XpElectronicFence electronicFence = xpElectronicFenceService.getById(id); |
| | | if (electronicFence.getStatus()==2){ |
| | | throw new ServiceException( |
| | | "当前电子围栏状态为启用中,不可复制", |
| | | I18nKeyConstant.FENCE_STATUS_CANNOT_COPIED |
| | | ); |
| | | } |
| | | electronicFence.setElectronicName("副本_"+electronicFence.getElectronicName()); |
| | | electronicFence.setId(null); |
| | | electronicFence.setStatus(0); |
| | | xpElectronicFenceService.save(electronicFence); |
| | | List<XpElectronicFenceArea> electronicFenceAreaList = xpElectronicFenceAreaService.lambdaQuery().eq(XpElectronicFenceArea::getElectronicId, id) |
| | | .list(); |
| | | for (XpElectronicFenceArea area : electronicFenceAreaList) { |
| | | area.setId(null); |
| | | area.setElectronicId(electronicFence.getId()); |
| | | area.setAreaStatus(2); |
| | | area.setAreaName("副本_"+area.getAreaName()); |
| | | } |
| | | xpElectronicFenceAreaService.saveBatch(electronicFenceAreaList); |
| | | return R.ok(electronicFence.getId()); |
| | | } |
| | | |
| | | /** |
| | | * 根据ID列表批量查询电子围栏 |
| | | * |
| | | * @param electronicIdSet |
| | | * @return |
| | | */ |
| | | @PostMapping("/listByIds") |
| | | R<List<XpElectronicFence>> listByIds(@RequestBody Collection<Long> electronicIdSet) { |
| | | if (CollUtil.isEmpty(electronicIdSet)) { |
| | | return R.ok(Collections.emptyList()); |
| | | } |
| | | return R.ok(xpElectronicFenceService.listByIds(electronicIdSet)); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取已启用的电子围栏列表",tags = {"管理后台-在库车辆管理"}) |
| | | @GetMapping("/available/list") |
| | | R<List<XpElectronicFence>> getAvailableList(){ |
| | | return R.ok(xpElectronicFenceService.getAvailableList()); |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "获取不分页的电子围栏列表",tags = {"管理后台-在库车辆管理"}) |
| | | @GetMapping("/list") |
| | | R<List<XpElectronicFence>> getList(){ |
| | | return R.ok(xpElectronicFenceService.getList()); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 批量查询电子围栏 |
| | | * @param fenceIds |
| | | * @return |
| | | */ |
| | | @PostMapping("/inner/xpElectronicFence/selectBatchIds") |
| | | public R<List<XpElectronicFence>> selectBatchIds(@RequestBody List<String> fenceIds){ |
| | | List<XpElectronicFence> xpElectronicFences = xpElectronicFenceService.listByIds(fenceIds); |
| | | return R.ok(xpElectronicFences); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据ID查询电子围栏 |
| | | * @param fenceId |
| | | * @return |
| | | */ |
| | | @GetMapping("/inner/xpElectronicFence/selectById") |
| | | public R<XpElectronicFence> selectById(@RequestParam String fenceId){ |
| | | XpElectronicFence xpElectronicFence = xpElectronicFenceService.getById(fenceId); |
| | | return R.ok(xpElectronicFence); |
| | | return xpElectronicClient.copy(id); |
| | | } |
| | | } |