diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java index 2ea3ea881b..0852c02801 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java @@ -45,6 +45,7 @@ import java.io.InputStream; import java.net.URLEncoder; import java.nio.file.Path; import java.util.List; +import java.util.Map; import java.util.UUID; @@ -329,4 +330,24 @@ public class IcNatController implements ResultDataResolver { return new Result(); } + /** + * 清楚核酸检测记录(只保留近n天) + * @author wxz + * @date 2022/11/28 下午5:36 + * * @param map + * * @return Result + */ + @PostMapping("clearNatRecords") + public Result clearNatRecords(@RequestBody Map map) { + // 保留天数 + Integer retentionDays = (Integer) map.get("retentionDays"); + + // 如果是-1直接不做任何操作 + if (-1 != retentionDays) { + icNucleinService.clearNatRecords(retentionDays); + } + + return new Result(); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java index 7b8b0a0ab7..ba20fdcc8b 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatDao.java @@ -12,6 +12,7 @@ import com.epmet.entity.IcResiUserEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -86,4 +87,6 @@ public interface IcNatDao extends BaseDao { * @Date 2022/10/25 11:13 */ void updateRelationOther(); + + void deleteNatRecordsBeforeRetentionDays(Date criticleTime); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatRelationDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatRelationDao.java index 0b37f87121..aa9395f9cc 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatRelationDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcNatRelationDao.java @@ -5,6 +5,8 @@ import com.epmet.entity.IcNatRelationEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.Date; + /** * 核酸记录关系表 * @@ -19,4 +21,6 @@ public interface IcNatRelationDao extends BaseDao { * @Description 关系数据删除--物理删除 **/ int delRelation(@Param("icNatId") String icNatId, @Param("agencyId") String agencyId); + + void deleteBeforeRetentionDays(Date criticleTime); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java index b9f89d921e..72c0ab6a82 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcNatService.java @@ -97,4 +97,12 @@ public interface IcNatService extends BaseService { void initNatLocal(); + /** + * 清理nat记录,目前不区分客户,后期需要区分可以再加 + * @author wxz + * @date 2022/11/28 下午5:39 + * * @param retentionDays 保留的天数(最近) + * + */ + void clearNatRecords(Integer retentionDays); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java index 78c935c4ca..cbcbaf427f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java @@ -733,4 +733,15 @@ public class IcNatServiceImpl extends BaseServiceImpl imp icNatRelationDao.insert(relation); } + @Override + public void clearNatRecords(Integer retentionDays) { + Date criticleTime = DateUtils.addDateDays(new Date(), 0 - retentionDays); + + // 1。删除nat核酸检测信息。NatTime建索引 + baseDao.deleteNatRecordsBeforeRetentionDays(criticleTime); + + // 2.删除关系信息 + // 没有记录业务时间,只能暂且按照创建时间来了,大不了多些脏数据。createdTime建索引! + icNatRelationDao.deleteBeforeRetentionDays(criticleTime); + } } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml index 4a5872efd2..16d15f05a2 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatDao.xml @@ -275,4 +275,8 @@ UPDATED_TIME = NOW() where user_type != 'import' + + + delete from ic_nat where SAMPLE_TIME #{criticleTime} + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatRelationDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatRelationDao.xml index 1857d13df7..bae7f15b27 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatRelationDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcNatRelationDao.xml @@ -13,4 +13,8 @@ + + delete from ic_nat_relation where CREATED_TIME #{criticleTime} + + \ No newline at end of file