package com.xiaopeng.map.service; import com.baomidou.mybatisplus.extension.service.IService; import com.xiaopeng.api.dto.operation.ElectronicFenceAddDto; import com.xiaopeng.api.dto.operation.ElectronicFenceUpdateDto; import com.xiaopeng.api.dto.operation.TestElectronicFenceAddDto; import com.xiaopeng.api.dto.operation.TestElectronicFenceUpdateDto; import com.xiaopeng.api.model.operation.XpTestElectronicFence; import com.xiaopeng.api.query.operation.ElectronicPageListQuery; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.page.PageInfo; import org.springframework.data.mongodb.core.geo.GeoJsonPolygon; import java.util.List; /** *

* 电子围栏 服务类 *

* * @author liu * @since 2026-02-03 */ public interface XpTestElectronicFenceService extends IService { PageInfo pageList(ElectronicPageListQuery query); R addElectronic(TestElectronicFenceAddDto dto); R editElectronic(TestElectronicFenceUpdateDto dto); GeoJsonPolygon convertToGeoJsonPolygon(String fencePointsStr); /** * 校验围栏名称唯一 */ void validateElectronicNameUnique(String electronicName, Long excludeId); /** * 查询启用的电子围栏列表 * @return */ List getAvailableList(); /** * 获取不分页的围栏列表 * @return */ List getList(ElectronicPageListQuery query); /** * 将围栏置为已停用,并同步禁用围栏区域 * @param electronicId 围栏ID */ void expireFence(Long electronicId); }