|
|
|
@ -554,10 +554,9 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void syncHomeViolence(TaskParamDomain domain) { |
|
|
|
public void syncHomeViolence(TaskParamDomain domain) { |
|
|
|
String startTime = LocalDateTime.of(2023, 12, 6, 0, 0, 0).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
|
|
|
|
LocalDateTime limit = LocalDateTime.now().minusYears(1); |
|
|
|
LocalDateTime limit = LocalDateTime.now().minusYears(1); |
|
|
|
|
|
|
|
|
|
|
|
List<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectHomeViolence(startTime); |
|
|
|
List<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectHomeViolence(limit.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
|
|
|
// 被家暴
|
|
|
|
// 被家暴
|
|
|
|
RiskTask task = taskRepository.create(result.size(), 65); |
|
|
|
RiskTask task = taskRepository.create(result.size(), 65); |
|
|
|
// 家暴
|
|
|
|
// 家暴
|
|
|
|
@ -622,69 +621,92 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); |
|
|
|
Map<String, RiskModelTaskClue> personOldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
List<RiskModelTaskClue> oldList2 = Optional.ofNullable(domain.getMap().get(task2.getModelId())).orElse(new ArrayList<>()); |
|
|
|
Map<String, RiskModelTaskClue> personOldMap2 = domain.getOldMap(task2.getModelId(), true); |
|
|
|
// 按人分
|
|
|
|
|
|
|
|
Map<String, List<RiskModelTaskClue>> personOldMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); |
|
|
|
|
|
|
|
Map<String, List<RiskModelTaskClue>> personOldMap2 = oldList2.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toInsert2 = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toInsert2 = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toUpdate2 = new ArrayList<>(); |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
// 被家暴
|
|
|
|
// 被家暴
|
|
|
|
toInsert.addAll(collectionClue(shIdCodeMap, shMobileMap, person, personOldMap, task, "被家暴")); |
|
|
|
RiskModelTaskClue clue1 = collectionClue(shIdCodeMap, shMobileMap, person, task, "被家暴"); |
|
|
|
toInsert2.addAll(collectionClue(wfIdCodeMap, wfMobileMap, person, personOldMap2, task2, "家暴")); |
|
|
|
if (clue1 != null) { |
|
|
|
|
|
|
|
RiskModelTaskClue old1 = personOldMap.get(person.getIdCode()); |
|
|
|
|
|
|
|
if (old1 != null) { |
|
|
|
|
|
|
|
personOldMap.remove(person.getIdCode()); |
|
|
|
|
|
|
|
if (!old1.getData().equals(clue1.getData())) { |
|
|
|
|
|
|
|
clue1.setId(old1.getId()); |
|
|
|
|
|
|
|
toUpdate.add(clue1); |
|
|
|
} |
|
|
|
} |
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
} else { |
|
|
|
List<RiskModelTaskClue> toUpdate2 = new ArrayList<>(); |
|
|
|
toInsert.add(clue1); |
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards2 = new ArrayList<>(); |
|
|
|
|
|
|
|
for (RiskModelTaskClue clue : oldList) { |
|
|
|
|
|
|
|
if (clue.getEventTime().isBefore(limit)) { |
|
|
|
|
|
|
|
RiskModelTaskClue update = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
update.setId(update.getId()); |
|
|
|
|
|
|
|
update.setDel(1); |
|
|
|
|
|
|
|
toUpdate.add(update); |
|
|
|
|
|
|
|
deleteIdCards.add(clue.getIdCode()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 家暴
|
|
|
|
for (RiskModelTaskClue clue : oldList2) { |
|
|
|
RiskModelTaskClue clue2 = collectionClue(wfIdCodeMap, wfMobileMap, person, task2, "家暴"); |
|
|
|
if (clue.getEventTime().isBefore(limit)) { |
|
|
|
if (clue2 == null) continue; |
|
|
|
RiskModelTaskClue update = new RiskModelTaskClue(); |
|
|
|
RiskModelTaskClue old2 = personOldMap2.get(person.getIdCode()); |
|
|
|
update.setId(update.getId()); |
|
|
|
if (old2 == null) { |
|
|
|
update.setDel(1); |
|
|
|
toInsert2.add(clue2); |
|
|
|
toUpdate2.add(update); |
|
|
|
continue; |
|
|
|
deleteIdCards2.add(clue.getIdCode()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
personOldMap2.remove(person.getIdCode()); |
|
|
|
|
|
|
|
if (!old2.getData().equals(clue2.getData())) { |
|
|
|
|
|
|
|
clue2.setId(old2.getId()); |
|
|
|
|
|
|
|
toUpdate2.add(clue2); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete2 = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards2 = new ArrayList<>(); |
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : personOldMap.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCards.add(entry.getKey()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : personOldMap2.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete2.add(delete); |
|
|
|
|
|
|
|
deleteIdCards2.add(entry.getKey()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
log.info("被家暴:{} | {}", toInsert.size(), toUpdate.size()); |
|
|
|
log.info("被家暴:{} | {} | {}", toInsert.size(), toUpdate.size(), toDelete.size()); |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
clueService.saveClues(toInsert, "B53被他人家暴"); |
|
|
|
clueService.saveClues(toInsert, "B53被他人家暴"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, task.getModelId()); |
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCards, task.getModelId()); |
|
|
|
} |
|
|
|
} |
|
|
|
log.info("家暴:{} | {}", toInsert2.size(), toUpdate2.size()); |
|
|
|
log.info("家暴:{} | {} | {}", toInsert2.size(), toUpdate2.size(), toDelete2.size()); |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
clueService.saveClues(toInsert2, "B52对他人家暴"); |
|
|
|
clueService.saveClues(toInsert2, "B52对他人家暴"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (!toUpdate2.isEmpty()) { |
|
|
|
if (!toUpdate2.isEmpty()) { |
|
|
|
clueService.deleteCluesAndDeleteTag(toUpdate2, deleteIdCards2, task2.getModelId()); |
|
|
|
clueService.updateClues(toUpdate2, task2.getModelId()); |
|
|
|
} |
|
|
|
} |
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size()); |
|
|
|
if (!toDelete2.isEmpty()) { |
|
|
|
taskRepository.updateTask(task2.getId(), toInsert.size(), toUpdate2.size()); |
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete2, deleteIdCards2, task2.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size() + toDelete.size()); |
|
|
|
|
|
|
|
taskRepository.updateTask(task2.getId(), toInsert.size(), toUpdate2.size() + toDelete2.size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void syncParentRelation(TaskParamDomain domain) { |
|
|
|
public void syncParentRelation(TaskParamDomain domain) { |
|
|
|
String startTime = LocalDateTime.of(2023, 12, 6, 0, 0, 0).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
LocalDateTime startTime = LocalDateTime.now().minusYears(1); |
|
|
|
// LocalDateTime limit = LocalDateTime.now().minusYears(1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<GBaseJJD> fathers = gBaseJJDRepository.getBaseMapper().selectFatherRelation(startTime); |
|
|
|
List<GBaseJJD> fathers = gBaseJJDRepository.getBaseMapper().selectFatherRelation(startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
|
|
|
|
|
|
|
|
|
|
|
List<GBaseJJD> mothers = gBaseJJDRepository.getBaseMapper().selectMotherRelation(startTime); |
|
|
|
List<GBaseJJD> mothers = gBaseJJDRepository.getBaseMapper().selectMotherRelation(startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
|
|
|
|
|
|
|
|
|
|
|
RiskTask task = taskRepository.create(fathers.size(), 69); |
|
|
|
RiskTask task = taskRepository.create(fathers.size(), 69); |
|
|
|
RiskTask task2 = taskRepository.create(mothers.size(), 70); |
|
|
|
RiskTask task2 = taskRepository.create(mothers.size(), 70); |
|
|
|
@ -696,28 +718,98 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
|
|
|
|
|
|
|
|
log.info("父亲条数:{} | 母亲条数:{}", fatherIdCodeMap.size(), motherIdCodeMap.size()); |
|
|
|
log.info("父亲条数:{} | 母亲条数:{}", fatherIdCodeMap.size(), motherIdCodeMap.size()); |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = eachClue2Save(domain, task, fatherIdCodeMap, "父亲"); |
|
|
|
List<RiskModelTaskClue> tmp1 = eachClue2Save(domain, task, fatherIdCodeMap, "父亲"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> tmp2 = eachClue2Save(domain, task2, motherIdCodeMap, "母亲"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
|
|
|
|
for (RiskModelTaskClue riskModelTaskClue : tmp1) { |
|
|
|
|
|
|
|
RiskModelTaskClue old = oldMap.get(riskModelTaskClue.getIdCode()); |
|
|
|
|
|
|
|
if (old == null) { |
|
|
|
|
|
|
|
toInsert.add(riskModelTaskClue); |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
oldMap.remove(riskModelTaskClue.getIdCode()); |
|
|
|
|
|
|
|
if (!old.getData().equals(riskModelTaskClue.getData())) { |
|
|
|
|
|
|
|
riskModelTaskClue.setId(old.getId()); |
|
|
|
|
|
|
|
toUpdate.add(riskModelTaskClue); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert2 = eachClue2Save(domain, task2, motherIdCodeMap, "母亲"); |
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCards.add(entry.getKey()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
log.info("父亲矛盾增加 {}", toInsert.size()); |
|
|
|
log.info("父亲矛盾增加 {}", toInsert.size()); |
|
|
|
clueService.saveClues(toInsert, "B48与父亲关系"); |
|
|
|
clueService.saveClues(toInsert, "B48与父亲关系"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
log.info("父亲矛盾修改 {}", toUpdate.size()); |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
log.info("父亲矛盾删除 {}", toDelete.size()); |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCards, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert2 = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toUpdate2 = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete2 = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards2 = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, RiskModelTaskClue> oldMap2 = domain.getOldMap(task2.getModelId(), true); |
|
|
|
|
|
|
|
for (RiskModelTaskClue riskModelTaskClue : tmp2) { |
|
|
|
|
|
|
|
RiskModelTaskClue old = oldMap2.get(riskModelTaskClue.getIdCode()); |
|
|
|
|
|
|
|
if (old == null) { |
|
|
|
|
|
|
|
toInsert2.add(riskModelTaskClue); |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
oldMap2.remove(riskModelTaskClue.getIdCode()); |
|
|
|
|
|
|
|
if (!old.getData().equals(riskModelTaskClue.getData())) { |
|
|
|
|
|
|
|
riskModelTaskClue.setId(old.getId()); |
|
|
|
|
|
|
|
toUpdate2.add(riskModelTaskClue); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap2.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete2.add(delete); |
|
|
|
|
|
|
|
deleteIdCards2.add(entry.getKey()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!toInsert2.isEmpty()) { |
|
|
|
if (!toInsert2.isEmpty()) { |
|
|
|
log.info("母亲矛盾增加 {}", toInsert2.size()); |
|
|
|
log.info("母亲矛盾增加 {}", toInsert2.size()); |
|
|
|
clueService.saveClues(toInsert2, "B49与母亲关系"); |
|
|
|
clueService.saveClues(toInsert2, "B49与母亲关系"); |
|
|
|
} |
|
|
|
} |
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), 0); |
|
|
|
if (!toUpdate2.isEmpty()) { |
|
|
|
taskRepository.updateTask(task2.getId(), toInsert2.size(), 0); |
|
|
|
log.info("母亲矛盾修改 {}", toUpdate2.size()); |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate2, task2.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete2.isEmpty()) { |
|
|
|
|
|
|
|
log.info("母亲矛盾删除 {}", toDelete2.size()); |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete2, deleteIdCards2, task2.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size() + toDelete.size()); |
|
|
|
|
|
|
|
taskRepository.updateTask(task2.getId(), toInsert2.size(), toUpdate2.size() + toDelete2.size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void syncLove(TaskParamDomain domain) { |
|
|
|
public void syncLove(TaskParamDomain domain) { |
|
|
|
String startTime = LocalDateTime.of(2023, 12, 6, 0, 0, 0).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
|
|
|
|
LocalDateTime limit = LocalDateTime.now().minusYears(1); |
|
|
|
LocalDateTime limit = LocalDateTime.now().minusYears(1); |
|
|
|
|
|
|
|
List<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectLoveDispute(limit.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
|
|
|
List<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectLoveDispute(startTime); |
|
|
|
|
|
|
|
// 恋爱创伤
|
|
|
|
// 恋爱创伤
|
|
|
|
RiskTask task = taskRepository.create(result.size(), 71); |
|
|
|
RiskTask task = taskRepository.create(result.size(), 71); |
|
|
|
|
|
|
|
|
|
|
|
@ -772,42 +864,52 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
// 按人分
|
|
|
|
|
|
|
|
Map<String, List<RiskModelTaskClue>> personOldMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
|
|
|
|
toInsert.addAll(collectionClue(idCodesMap, mobilesMap, person, personOldMap, task, "个人恋爱创伤")); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
for (RiskModelTaskClue clue : oldList) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
if (clue.getEventTime().isBefore(limit)) { |
|
|
|
RiskModelTaskClue clue = collectionClue(idCodesMap, mobilesMap, person, task, "个人恋爱创伤"); |
|
|
|
RiskModelTaskClue update = new RiskModelTaskClue(); |
|
|
|
if (clue == null) continue; |
|
|
|
update.setId(update.getId()); |
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
update.setDel(1); |
|
|
|
if (old == null) { |
|
|
|
toUpdate.add(update); |
|
|
|
toInsert.add(clue); |
|
|
|
deleteIdCards.add(clue.getIdCode()); |
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
|
|
|
|
if (!old.getData().equals(clue.getData())) { |
|
|
|
|
|
|
|
clue.setId(old.getId()); |
|
|
|
|
|
|
|
toUpdate.add(clue); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCards.add(entry.getValue().getIdCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
log.info("恋爱创伤:{} | {}", toInsert.size(), toUpdate.size()); |
|
|
|
log.info("恋爱创伤:{} | {} | {}", toInsert.size(), toUpdate.size(), toDelete.size()); |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
clueService.saveClues(toInsert, "B68个人恋爱创伤"); |
|
|
|
clueService.saveClues(toInsert, "B68个人恋爱创伤"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, task.getModelId()); |
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
} |
|
|
|
} |
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size()); |
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCards, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size() + toDelete.size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void syncMarryDispute(TaskParamDomain domain) { |
|
|
|
public void syncMarryDispute(TaskParamDomain domain) { |
|
|
|
String startTime = LocalDateTime.of(2023, 12, 6, 0, 0, 0).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
|
|
|
|
LocalDateTime limit = LocalDateTime.now().minusYears(1); |
|
|
|
LocalDateTime limit = LocalDateTime.now().minusYears(1); |
|
|
|
|
|
|
|
|
|
|
|
List<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectMarryDispute(startTime); |
|
|
|
List<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectMarryDispute(limit.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
|
|
|
// 恋爱创伤
|
|
|
|
// 婚姻矛盾
|
|
|
|
RiskTask task = taskRepository.create(result.size(), 72); |
|
|
|
RiskTask task = taskRepository.create(result.size(), 72); |
|
|
|
|
|
|
|
|
|
|
|
Map<String, List<GBaseJJD>> idCodesMap = new WeakHashMap<>(); |
|
|
|
Map<String, List<GBaseJJD>> idCodesMap = new WeakHashMap<>(); |
|
|
|
@ -861,42 +963,51 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
// 按人分
|
|
|
|
|
|
|
|
Map<String, List<RiskModelTaskClue>> personOldMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
|
|
|
|
toInsert.addAll(collectionClue(idCodesMap, mobilesMap, person, personOldMap, task, "与配偶关系不和")); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
for (RiskModelTaskClue clue : oldList) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
if (clue.getEventTime().isBefore(limit)) { |
|
|
|
RiskModelTaskClue clue = collectionClue(idCodesMap, mobilesMap, person, task, "与配偶关系不和"); |
|
|
|
RiskModelTaskClue update = new RiskModelTaskClue(); |
|
|
|
if (clue == null) continue; |
|
|
|
update.setId(update.getId()); |
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
update.setDel(1); |
|
|
|
if (old == null) { |
|
|
|
toUpdate.add(update); |
|
|
|
toInsert.add(clue); |
|
|
|
deleteIdCards.add(clue.getIdCode()); |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
|
|
|
|
if (!old.getData().equals(clue.getData())) { |
|
|
|
|
|
|
|
clue.setId(old.getId()); |
|
|
|
|
|
|
|
toUpdate.add(clue); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCards.add(entry.getValue().getIdCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
log.info("与配偶关系不和:{} | {}", toInsert.size(), toUpdate.size()); |
|
|
|
log.info("与配偶关系不和:{} | {} | {}", toInsert.size(), toUpdate.size(), toDelete.size()); |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
clueService.saveClues(toInsert, "B55与配偶关系"); |
|
|
|
clueService.saveClues(toInsert, "B55与配偶关系"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, task.getModelId()); |
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCards, task.getModelId()); |
|
|
|
} |
|
|
|
} |
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size()); |
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size() + toDelete.size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void syncNeighborAndColleagueDispute(TaskParamDomain domain) { |
|
|
|
public void syncNeighborAndColleagueDispute(TaskParamDomain domain) { |
|
|
|
String startTime = LocalDateTime.of(2023, 12, 6, 0, 0, 0).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
|
|
|
|
LocalDateTime limit = LocalDateTime.now().minusYears(1); |
|
|
|
LocalDateTime limit = LocalDateTime.now().minusYears(1); |
|
|
|
|
|
|
|
List<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectNeighborAndColleagueDispute(limit.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
|
|
|
List<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectNeighborAndColleagueDispute(startTime); |
|
|
|
// 邻居同事
|
|
|
|
// 恋爱创伤
|
|
|
|
|
|
|
|
RiskTask task = taskRepository.create(result.size(), 73); |
|
|
|
RiskTask task = taskRepository.create(result.size(), 73); |
|
|
|
|
|
|
|
|
|
|
|
Map<String, List<GBaseJJD>> idCodesMap = new WeakHashMap<>(); |
|
|
|
Map<String, List<GBaseJJD>> idCodesMap = new WeakHashMap<>(); |
|
|
|
@ -950,43 +1061,54 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
// 按人分
|
|
|
|
|
|
|
|
Map<String, List<RiskModelTaskClue>> personOldMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
|
|
|
|
toInsert.addAll(collectionClue(idCodesMap, mobilesMap, person, personOldMap, task, "与邻居或同事纠纷")); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
for (RiskModelTaskClue clue : oldList) { |
|
|
|
|
|
|
|
if (clue.getEventTime().isBefore(limit)) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
RiskModelTaskClue update = new RiskModelTaskClue(); |
|
|
|
RiskModelTaskClue clue = collectionClue(idCodesMap, mobilesMap, person, task, "与邻居或同事纠纷"); |
|
|
|
update.setId(update.getId()); |
|
|
|
if (clue == null) continue; |
|
|
|
update.setDel(1); |
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
toUpdate.add(update); |
|
|
|
if (old == null) { |
|
|
|
deleteIdCards.add(clue.getIdCode()); |
|
|
|
toInsert.add(clue); |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
|
|
|
|
if (!old.getData().equals(clue.getData())) { |
|
|
|
|
|
|
|
clue.setId(old.getId()); |
|
|
|
|
|
|
|
toUpdate.add(clue); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCards.add(entry.getValue().getIdCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
log.info("邻里和同事:{} | {}", toInsert.size(), toUpdate.size()); |
|
|
|
log.info("邻里和同事:{} | {} | {}", toInsert.size(), toUpdate.size(), toDelete.size()); |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
clueService.saveClues(toInsert, "B55同事与邻居关系"); |
|
|
|
clueService.saveClues(toInsert, "B55同事与邻居关系"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, task.getModelId()); |
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
} |
|
|
|
} |
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size()); |
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCards, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size() + toDelete.size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void syncBullying(TaskParamDomain domain) { |
|
|
|
public void syncBullying(TaskParamDomain domain) { |
|
|
|
String startTime = LocalDateTime.of(2023, 12, 6, 0, 0, 0).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
String startTime = LocalDateTime.now().minusYears(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
|
|
|
|
|
|
|
|
List<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectBullying(startTime); |
|
|
|
List<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectBullying(startTime); |
|
|
|
// 恋爱创伤
|
|
|
|
// 遭遇霸凌
|
|
|
|
RiskTask task = taskRepository.create(result.size(), 74); |
|
|
|
RiskTask task = taskRepository.create(result.size(), 74); |
|
|
|
|
|
|
|
|
|
|
|
Map<String, List<GBaseJJD>> idCodesMap = new WeakHashMap<>(); |
|
|
|
Map<String, List<GBaseJJD>> idCodesMap = new WeakHashMap<>(); |
|
|
|
List<String> mobiles = new ArrayList<>(); |
|
|
|
List<String> mobiles = new ArrayList<>(); |
|
|
|
LocalDate today = LocalDate.now(); |
|
|
|
LocalDate today = LocalDate.now(); |
|
|
|
@ -1046,51 +1168,75 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
Map<String, List<RiskModelTaskClue>> personMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
List<GBaseJJD> jjdList = Optional.ofNullable(idCodesMap.get(person.getIdCode())).orElse(new ArrayList<>()); |
|
|
|
List<GBaseJJD> jjdList = Optional.ofNullable(idCodesMap.get(person.getIdCode())).orElse(new ArrayList<>()); |
|
|
|
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).toList(); |
|
|
|
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).sorted().toList(); |
|
|
|
if (jjdList.isEmpty()) { |
|
|
|
if (jjdList.isEmpty()) { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
List<RiskModelTaskClue> olds = personMap.get(person.getIdCode()); |
|
|
|
|
|
|
|
if (olds != null) { |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
StringBuilder sb = new StringBuilder("该人员存在" + jjdList.size() + "起被欺凌警情,接警单编号:"); |
|
|
|
StringBuilder sb = new StringBuilder("该人员存在" + jjdList.size() + "起被欺凌警情,接警单编号:"); |
|
|
|
LocalDateTime time = null; |
|
|
|
LocalDateTime time = null; |
|
|
|
for (GBaseJJD jjd : jjdList) { |
|
|
|
for (GBaseJJD jjd : jjdList) { |
|
|
|
sb.append(jjd.getJjdbh()).append(","); |
|
|
|
sb.append(jjd.getJjdbh()).append(","); |
|
|
|
try { |
|
|
|
LocalDateTime tmp = DateTimeUtil.date2LocalDateTime(jjd.getBjsj()); |
|
|
|
LocalDateTime tmp = jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); |
|
|
|
if (time == null || (tmp!= null && time.isBefore(tmp))) { |
|
|
|
if (time == null) { |
|
|
|
|
|
|
|
time = tmp; |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (time.isBefore(tmp)) { |
|
|
|
|
|
|
|
time = tmp; |
|
|
|
time = tmp; |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (Exception ignored) { |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
String desc = sb.substring(0, sb.length() - 1); |
|
|
|
|
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
|
|
|
|
if (old == null) { |
|
|
|
|
|
|
|
toInsert.add(DataUtil.createClueData(task, ClueData.builder() |
|
|
|
|
|
|
|
.name(person.getName()) |
|
|
|
|
|
|
|
.idCode(person.getIdCode()) |
|
|
|
|
|
|
|
.tags(List.of("被欺凌")) |
|
|
|
|
|
|
|
.score(Math.min(jjdList.size(), 5)) |
|
|
|
|
|
|
|
.sourceData(desc) |
|
|
|
|
|
|
|
.personId(person.getId()) |
|
|
|
|
|
|
|
.eventTime(time) |
|
|
|
|
|
|
|
.build())); |
|
|
|
|
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
ClueData data = ClueData.builder() |
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
|
|
|
|
if(old.getData().equals(desc)) continue; |
|
|
|
|
|
|
|
RiskModelTaskClue update = DataUtil.createClueData(task, ClueData.builder() |
|
|
|
.name(person.getName()) |
|
|
|
.name(person.getName()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.tags(List.of("被欺凌")) |
|
|
|
.tags(List.of("被欺凌")) |
|
|
|
.score(Math.min(jjdList.size(), 5)) |
|
|
|
.score(Math.min(jjdList.size(), 5)) |
|
|
|
.sourceData(sb.substring(0, sb.length() - 1)) |
|
|
|
.sourceData(desc) |
|
|
|
.personId(person.getId()) |
|
|
|
.personId(person.getId()) |
|
|
|
.eventTime(time) |
|
|
|
.eventTime(time) |
|
|
|
.build(); |
|
|
|
.build()); |
|
|
|
toInsert.add(DataUtil.createClueData(task, data)); |
|
|
|
update.setId(old.getId()); |
|
|
|
|
|
|
|
toUpdate.add(update); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCards.add(entry.getValue().getIdCode()); |
|
|
|
} |
|
|
|
} |
|
|
|
log.info("欺凌:{}", toInsert.size()); |
|
|
|
log.info("欺凌:{} | {} | {}", toInsert.size(), toUpdate.size(), toDelete.size()); |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
clueService.saveClues(toInsert, "B73遭遇暴力欺凌"); |
|
|
|
clueService.saveClues(toInsert, "B73遭遇暴力欺凌"); |
|
|
|
} |
|
|
|
} |
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), 0); |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCards, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size()+toDelete.size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -1240,7 +1386,6 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Map<String, List<GBaseJJD>> findTargetJJD(List<GBaseJJD> jjdList) { |
|
|
|
Map<String, List<GBaseJJD>> findTargetJJD(List<GBaseJJD> jjdList) { |
|
|
|
|
|
|
|
|
|
|
|
Map<String, List<GBaseJJD>> fatherIdCodeMap = new WeakHashMap<>(); |
|
|
|
Map<String, List<GBaseJJD>> fatherIdCodeMap = new WeakHashMap<>(); |
|
|
|
List<GBaseJJD> others = new ArrayList<>(); |
|
|
|
List<GBaseJJD> others = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
@ -1304,34 +1449,19 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> eachClue2Save(TaskParamDomain domain, RiskTask task, Map<String, List<GBaseJJD>> idCodeMap, String tag) { |
|
|
|
List<RiskModelTaskClue> eachClue2Save(TaskParamDomain domain, RiskTask task, Map<String, List<GBaseJJD>> idCodeMap, String tag) { |
|
|
|
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); |
|
|
|
|
|
|
|
Map<String, List<RiskModelTaskClue>> personMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
List<GBaseJJD> jjdList = Optional.ofNullable(idCodeMap.get(person.getIdCode())).orElse(new ArrayList<>()); |
|
|
|
List<GBaseJJD> jjdList = Optional.ofNullable(idCodeMap.get(person.getIdCode())).orElse(new ArrayList<>()); |
|
|
|
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).toList(); |
|
|
|
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).sorted().toList(); |
|
|
|
if (jjdList.isEmpty()) { |
|
|
|
if (jjdList.isEmpty()) { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
List<RiskModelTaskClue> olds = personMap.get(person.getIdCode()); |
|
|
|
|
|
|
|
if (olds != null) { |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
LocalDateTime time = null; |
|
|
|
LocalDateTime time = null; |
|
|
|
StringBuilder sb = new StringBuilder("该人员与" + tag + "存在" + jjdList.size() + "起矛盾,接警单编号:"); |
|
|
|
StringBuilder sb = new StringBuilder("该人员与" + tag + "存在" + jjdList.size() + "起矛盾,接警单编号:"); |
|
|
|
for (GBaseJJD jjd : jjdList) { |
|
|
|
for (GBaseJJD jjd : jjdList) { |
|
|
|
sb.append(jjd.getJjdbh()).append(","); |
|
|
|
sb.append(jjd.getJjdbh()).append(","); |
|
|
|
try { |
|
|
|
LocalDateTime tmp = DateTimeUtil.date2LocalDateTime(jjd.getBjsj()); |
|
|
|
LocalDateTime tmp = jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); |
|
|
|
if (time == null || (tmp!= null && time.isBefore(tmp))) time = tmp; |
|
|
|
if (time == null) { |
|
|
|
|
|
|
|
time = tmp; |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (time.isBefore(tmp)) { |
|
|
|
|
|
|
|
time = tmp; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} catch (Exception ignored) { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
toInsert.add(DataUtil.createClueData(task, ClueData.builder() |
|
|
|
toInsert.add(DataUtil.createClueData(task, ClueData.builder() |
|
|
|
.name(person.getName()) |
|
|
|
.name(person.getName()) |
|
|
|
@ -1417,6 +1547,41 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
return toInsert; |
|
|
|
return toInsert; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 手机要搜索的clue数据 |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @param idCode 身份证Map |
|
|
|
|
|
|
|
* @param mobile 手机号map |
|
|
|
|
|
|
|
* @param personal 人员 |
|
|
|
|
|
|
|
* @param task 任务 |
|
|
|
|
|
|
|
* @param tag 标签 |
|
|
|
|
|
|
|
* @return 要新增的clue |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
RiskModelTaskClue collectionClue(Map<String, List<GBaseJJD>> idCode, Map<String, List<GBaseJJD>> mobile, RiskPersonal personal, RiskTask task, String tag) { |
|
|
|
|
|
|
|
List<GBaseJJD> jjdList = Optional.ofNullable(idCode.get(personal.getIdCode())).orElse(new ArrayList<>()); |
|
|
|
|
|
|
|
jjdList.addAll(Optional.ofNullable(mobile.get(personal.getMobileNumber())).orElse(new ArrayList<>())); |
|
|
|
|
|
|
|
if (jjdList.isEmpty()) return null; |
|
|
|
|
|
|
|
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).sorted().toList(); |
|
|
|
|
|
|
|
StringBuilder sb = new StringBuilder("该人员存在" + jjdList.size() + "起" + tag + "警情,接警单编号:"); |
|
|
|
|
|
|
|
LocalDateTime time = null; |
|
|
|
|
|
|
|
for (GBaseJJD gBaseJJD : jjdList) { |
|
|
|
|
|
|
|
sb.append(gBaseJJD.getJjdbh()).append(","); |
|
|
|
|
|
|
|
LocalDateTime tmp = DateTimeUtil.date2LocalDateTime(gBaseJJD.getBjsj()); |
|
|
|
|
|
|
|
if (time == null || (tmp!= null && time.isBefore(tmp))) { |
|
|
|
|
|
|
|
time = tmp; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return DataUtil.createClueData(task, ClueData.builder() |
|
|
|
|
|
|
|
.name(personal.getName()) |
|
|
|
|
|
|
|
.idCode(personal.getIdCode()) |
|
|
|
|
|
|
|
.tags(List.of(tag)) |
|
|
|
|
|
|
|
.personId(personal.getId()) |
|
|
|
|
|
|
|
.eventTime(time) |
|
|
|
|
|
|
|
.sourceData(sb.substring(0, sb.length() - 1)) |
|
|
|
|
|
|
|
.score(Math.min(jjdList.size(), 5)) |
|
|
|
|
|
|
|
.build()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 多身份证对比名称 |
|
|
|
* 多身份证对比名称 |
|
|
|
* |
|
|
|
* |
|
|
|
|