1、电子围栏点位删除修改为物理删除

master
shenzhidan 2026-08-10 17:10:10 +08:00
parent d6ac29e24e
commit 1f585a01ef
6 changed files with 15 additions and 11 deletions

View File

@ -1,7 +1,6 @@
package com.zcloud.personnel.positioning.command; package com.zcloud.personnel.positioning.command;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.zcloud.personnel.positioning.domain.model.FenceE; import com.zcloud.personnel.positioning.domain.model.FenceE;
@ -39,9 +38,7 @@ public class FencePointPersistenceService {
throw new BizException("Fence id is required"); throw new BizException("Fence id is required");
} }
List<RingPoint> points = parsePolygon(fence.getPolygonJson()); List<RingPoint> points = parsePolygon(fence.getPolygonJson());
QueryWrapper<FencePointDO> removeWrapper = new QueryWrapper<>(); fencePointRepository.physicalDeleteByFenceId(fence.getId());
removeWrapper.eq("fence_id", fence.getId());
fencePointRepository.remove(removeWrapper);
for (RingPoint point : points) { for (RingPoint point : points) {
FencePointDO pointDO = new FencePointDO(); FencePointDO pointDO = new FencePointDO();
pointDO.setFenceId(fence.getId()); pointDO.setFenceId(fence.getId());
@ -60,9 +57,7 @@ public class FencePointPersistenceService {
if (fenceId == null) { if (fenceId == null) {
return; return;
} }
QueryWrapper<FencePointDO> removeWrapper = new QueryWrapper<>(); fencePointRepository.physicalDeleteByFenceId(fenceId);
removeWrapper.eq("fence_id", fenceId);
fencePointRepository.remove(removeWrapper);
} }
public void fillCenter(FenceDO fence) { public void fillCenter(FenceDO fence) {

View File

@ -7,7 +7,6 @@ import com.zcloud.personnel.positioning.persistence.dataobject.AlarmRuleDO;
import com.zcloud.personnel.positioning.persistence.dataobject.AlarmRuleFenceRelDO; import com.zcloud.personnel.positioning.persistence.dataobject.AlarmRuleFenceRelDO;
import com.zcloud.personnel.positioning.persistence.dataobject.AlarmRuleItemDO; import com.zcloud.personnel.positioning.persistence.dataobject.AlarmRuleItemDO;
import com.zcloud.personnel.positioning.persistence.dataobject.FenceDO; import com.zcloud.personnel.positioning.persistence.dataobject.FenceDO;
import com.zcloud.personnel.positioning.persistence.dataobject.FencePointDO;
import com.zcloud.personnel.positioning.persistence.dataobject.TerminalBindDO; import com.zcloud.personnel.positioning.persistence.dataobject.TerminalBindDO;
import com.zcloud.personnel.positioning.persistence.dataobject.TerminalDO; import com.zcloud.personnel.positioning.persistence.dataobject.TerminalDO;
import com.zcloud.personnel.positioning.persistence.repository.AlarmRuleFenceRelRepository; import com.zcloud.personnel.positioning.persistence.repository.AlarmRuleFenceRelRepository;
@ -89,9 +88,7 @@ public class FindsPendingSyncService {
fenceFindsSyncService.delete(fence); fenceFindsSyncService.delete(fence);
transactionTemplate.execute(status -> { transactionTemplate.execute(status -> {
if (findsSyncStateService.deleteFenceIfCurrent(fence)) { if (findsSyncStateService.deleteFenceIfCurrent(fence)) {
QueryWrapper<FencePointDO> pointWrapper = new QueryWrapper<>(); fencePointRepository.physicalDeleteByFenceId(id);
pointWrapper.eq("fence_id", id);
fencePointRepository.remove(pointWrapper);
} }
return null; return null;
}); });

View File

@ -3,6 +3,7 @@ package com.zcloud.personnel.positioning.persistence.mapper;
import com.zcloud.personnel.positioning.persistence.dataobject.FencePointDO; import com.zcloud.personnel.positioning.persistence.dataobject.FencePointDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/** /**
* web-infrastructure * web-infrastructure
@ -12,4 +13,5 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface FencePointMapper extends BaseMapper<FencePointDO> { public interface FencePointMapper extends BaseMapper<FencePointDO> {
int physicalDeleteByFenceId(@Param("fenceId") Long fenceId);
} }

View File

@ -14,4 +14,6 @@ import java.util.Map;
*/ */
public interface FencePointRepository extends BaseRepository<FencePointDO> { public interface FencePointRepository extends BaseRepository<FencePointDO> {
PageResponse<FencePointDO> listPage(Map<String, Object> params); PageResponse<FencePointDO> listPage(Map<String, Object> params);
boolean physicalDeleteByFenceId(Long fenceId);
} }

View File

@ -35,4 +35,9 @@ public class FencePointRepositoryImpl extends BaseRepositoryImpl<FencePointMappe
IPage<FencePointDO> result = fencePointMapper.selectPage(iPage, queryWrapper); IPage<FencePointDO> result = fencePointMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords()); return PageHelper.pageToResponse(result, result.getRecords());
} }
@Override
public boolean physicalDeleteByFenceId(Long fenceId) {
return fencePointMapper.physicalDeleteByFenceId(fenceId) >= 0;
}
} }

View File

@ -3,4 +3,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.personnel.positioning.persistence.mapper.FencePointMapper"> <mapper namespace="com.zcloud.personnel.positioning.persistence.mapper.FencePointMapper">
<delete id="physicalDeleteByFenceId">
DELETE FROM fence_point WHERE fence_id = #{fenceId}
</delete>
</mapper> </mapper>