diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/ModelClueServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/ModelClueServiceImpl.java index d47308c..1d42a80 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/ModelClueServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/ModelClueServiceImpl.java @@ -118,8 +118,6 @@ public class ModelClueServiceImpl implements ModelClueService { } else if (modelId == 22) { // 22号模型:执法记录仪使用不规范问题 getModelCluesForModel22(sql, modelClues); return modelClues; - } else if (modelId == 23) { // 23号模型:保安员预警 - modelClueMapper.delete(Wrappers.lambdaUpdate().eq(ModelClue::getModelId, 23)); } else if (modelId == 25) { // 25号模型:重点人员管控人数过多 getModelCluesForModel25(sql, modelClues); return modelClues; @@ -160,7 +158,14 @@ public class ModelClueServiceImpl implements ModelClueService { if (needsInsertIds.isEmpty()) { return new ArrayList<>(); } - List needsInsertModelClues = modelClues.stream().filter(item -> needsInsertIds.contains(item.getUniqueKey())).toList(); + List needsInsertModelClues; + if (modelId == 23) { + List oldModelClues = modelClueMapper.selectList(Wrappers.lambdaQuery().eq(ModelClue::getModelId, 25)); + List oldModelClueKeys = oldModelClues.stream().map(ModelClue::getUniqueKey).toList(); + needsInsertModelClues = modelClues.stream().filter(item -> needsInsertIds.contains(item.getUniqueKey()) && !oldModelClueKeys.contains(item.getUniqueKey())).toList(); + } else { + needsInsertModelClues = modelClues.stream().filter(item -> needsInsertIds.contains(item.getUniqueKey())).toList(); + } String newSql = generateNewSql(sql, needsInsertIds, modelId); System.out.println("开始查询新sql" + newSql); List> allData = modelClueDataMapper.selectByUniqueKeys(newSql); @@ -911,7 +916,8 @@ public class ModelClueServiceImpl implements ModelClueService { } private void getModelCluesForModel25(String sql, List modelClues) { - modelClueMapper.delete(Wrappers.lambdaUpdate().eq(ModelClue::getModelId, 25)); + List oldModelClues = modelClueMapper.selectList(Wrappers.lambdaQuery().eq(ModelClue::getModelId, 25)); + List oldModelClueKeys = oldModelClues.stream().map(ModelClue::getUniqueKey).toList(); System.out.println("模型25开始查询数据库"); List> sqlList = modelClueDataMapper.selectByUniqueKeys(sql); System.out.println("模型25查询数据库完毕,结果数量:" + sqlList.size()); @@ -951,6 +957,9 @@ public class ModelClueServiceImpl implements ModelClueService { } } newModelClue.setUniqueKey(gxdwjgdm + xzdzrr); + if (oldModelClueKeys.contains(newModelClue.getUniqueKey())) { + continue; + } newModelClue.setNegativeIdEx(gxdwjgdm + xzdzrr); newModelClue.setInvolveDepartName(gxdw); if (newModelClue.getInvolveDepartId() != null) { @@ -1090,7 +1099,8 @@ public class ModelClueServiceImpl implements ModelClueService { } private void getModelCluesForModel105(String sql, List modelClues) { - modelClueMapper.delete(Wrappers.lambdaUpdate().eq(ModelClue::getModelId, 105)); + List oldModelClues = modelClueMapper.selectList(Wrappers.lambdaQuery().eq(ModelClue::getModelId, 105)); + List oldModelClueKeys = oldModelClues.stream().map(ModelClue::getUniqueKey).toList(); System.out.println("模型105开始查询数据库"); List> sqlList = modelClueMapper.selectByUniqueKeys(sql); System.out.println("模型105查询数据库完毕,结果数量:" + sqlList.size()); @@ -1100,6 +1110,9 @@ public class ModelClueServiceImpl implements ModelClueService { for (Map map : sqlList) { ModelClue newModelClue = new ModelClue(); newModelClue.setUniqueKey((String) map.get("blameId")); + if (oldModelClueKeys.contains(newModelClue.getUniqueKey())) { + continue; + } newModelClue.setNegativeIdEx((String) map.get("blameId")); newModelClue.setInvolveDepartName(map.get("involveDepartName") == null ? "" : (String) map.get("involveDepartName")); newModelClue.setInvolveDepartId(map.get("involveDepartId") == null ? "" : (String) map.get("involveDepartId"));