无关风月
2026-02-28 cb7be09dc82cdc3deed507a7ae3685e81f46e814
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java
@@ -1,7 +1,6 @@
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;
@@ -9,7 +8,6 @@
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;
@@ -17,10 +15,6 @@
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;
@@ -31,8 +25,6 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/**
@@ -51,38 +43,17 @@
    @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);
    }
    /**
     * 新增电子围栏
     */
@@ -91,7 +62,8 @@
//    @Transactional
//    @ShardingSphereTransactionType(TransactionType.BASE)
    public R add(@Validated @RequestBody ElectronicFenceAddDto dto) {
        return xpElectronicFenceService.addElectronic(dto);
        return xpElectronicClient.add(dto);
    }
@@ -105,47 +77,30 @@
//    @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);
    }
    /**
@@ -156,77 +111,6 @@
//    @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);
    }
}