|
|
|
@ -416,7 +416,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
Map<String, RiskPersonal> idCodelMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (val, old) -> val)); |
|
|
|
Map<String, RiskPersonal> idCodelMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (val, old) -> val)); |
|
|
|
Map<String, RiskPersonal> mobileMap = domain.getPersons().stream().filter(item -> item.getMobileNumber() != null && !item.getMobileNumber().isEmpty()).collect(Collectors.toMap(RiskPersonal::getMobileNumber, Function.identity(), (val, old) -> val)); |
|
|
|
Map<String, RiskPersonal> mobileMap = domain.getPersons().stream().filter(item -> item.getMobileNumber() != null && !item.getMobileNumber().isEmpty()).collect(Collectors.toMap(RiskPersonal::getMobileNumber, Function.identity(), (val, old) -> val)); |
|
|
|
|
|
|
|
|
|
|
|
Map<String, List<String>> personJqList = new WeakHashMap<>(); |
|
|
|
Map<String, List<GBaseJJD>> personJqList = new WeakHashMap<>(); |
|
|
|
|
|
|
|
|
|
|
|
int count = gBaseJJDRepository.getBaseMapper().selectWarningInstanceCount(startTime); |
|
|
|
int count = gBaseJJDRepository.getBaseMapper().selectWarningInstanceCount(startTime); |
|
|
|
RiskTask task = taskRepository.create(count, 64); |
|
|
|
RiskTask task = taskRepository.create(count, 64); |
|
|
|
@ -437,7 +437,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
riskPerson = mobileMap.get(jjd.getBjdh()); |
|
|
|
riskPerson = mobileMap.get(jjd.getBjdh()); |
|
|
|
} |
|
|
|
} |
|
|
|
if (riskPerson != null) { |
|
|
|
if (riskPerson != null) { |
|
|
|
personJqList.computeIfAbsent(riskPerson.getIdCode(), k -> new ArrayList<>()).add(jjd.getJjdbh()); |
|
|
|
personJqList.computeIfAbsent(riskPerson.getIdCode(), k -> new ArrayList<>()).add(jjd); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 一个都不放过
|
|
|
|
// 一个都不放过
|
|
|
|
@ -450,7 +450,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
for (String s : str) { |
|
|
|
for (String s : str) { |
|
|
|
riskPerson = idCodelMap.get(s); |
|
|
|
riskPerson = idCodelMap.get(s); |
|
|
|
if (riskPerson == null) continue; |
|
|
|
if (riskPerson == null) continue; |
|
|
|
personJqList.computeIfAbsent(riskPerson.getIdCode(), k -> new ArrayList<>()).add(jjd.getJjdbh()); |
|
|
|
personJqList.computeIfAbsent(riskPerson.getIdCode(), k -> new ArrayList<>()).add(jjd); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -463,39 +463,93 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
for (String s : str) { |
|
|
|
for (String s : str) { |
|
|
|
riskPerson = mobileMap.get(s); |
|
|
|
riskPerson = mobileMap.get(s); |
|
|
|
if (riskPerson == null) continue; |
|
|
|
if (riskPerson == null) continue; |
|
|
|
personJqList.computeIfAbsent(riskPerson.getIdCode(), k -> new ArrayList<>()).add(jjd.getJjdbh()); |
|
|
|
personJqList.computeIfAbsent(riskPerson.getIdCode(), k -> new ArrayList<>()).add(jjd); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
log.info("开始统计每个人的警情"); |
|
|
|
log.info("开始统计每个人的警情"); |
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIds = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<GBaseJJD> list; |
|
|
|
|
|
|
|
for (Map.Entry<String, List<GBaseJJD>> entry : personJqList.entrySet()) { |
|
|
|
|
|
|
|
list = entry.getValue().stream().distinct().sorted().toList(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LocalDateTime maxTime = null; |
|
|
|
|
|
|
|
for (GBaseJJD gBaseJJD : list) { |
|
|
|
|
|
|
|
LocalDateTime tmp = DateTimeUtil.date2LocalDateTime(gBaseJJD.getBjsj()); |
|
|
|
|
|
|
|
if(maxTime == null) { |
|
|
|
|
|
|
|
maxTime = tmp; |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if(tmp.isAfter(maxTime)) { |
|
|
|
|
|
|
|
maxTime = tmp; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if(maxTime == null) { |
|
|
|
|
|
|
|
maxTime = LocalDateTime.now(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<String> list; |
|
|
|
|
|
|
|
for (Map.Entry<String, List<String>> entry : personJqList.entrySet()) { |
|
|
|
|
|
|
|
list = entry.getValue().stream().distinct().toList(); |
|
|
|
|
|
|
|
RiskPersonal person = idCodelMap.get(entry.getKey()); |
|
|
|
RiskPersonal person = idCodelMap.get(entry.getKey()); |
|
|
|
StringBuilder sb = new StringBuilder("该人员近一年来有" + list.size() + "起平台涉警事件,接警单编号为:"); |
|
|
|
StringBuilder sb = new StringBuilder("该人员近一年来有" + list.size() + "起平台涉警事件,接警单编号为:"); |
|
|
|
for (int i = 0, length = Math.min(3, list.size()); i < length; i++) { |
|
|
|
for (int i = 0, length = Math.min(3, list.size()); i < length; i++) { |
|
|
|
sb.append(list.get(i)).append(","); |
|
|
|
sb.append(list.get(i).getJjdbh()).append(","); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
String desc = sb.substring(0, sb.length() - 1); |
|
|
|
|
|
|
|
if(list.size() > 3) { |
|
|
|
|
|
|
|
desc += "等"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
RiskModelTaskClue old = oldMap.get(entry.getKey()); |
|
|
|
|
|
|
|
if(old != null) { |
|
|
|
|
|
|
|
oldMap.remove(entry.getKey()); |
|
|
|
|
|
|
|
if(!desc.equals(desc)) { |
|
|
|
|
|
|
|
RiskModelTaskClue update = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
update.setId(old.getId()); |
|
|
|
|
|
|
|
update.setTags(List.of(list.size() + "起平台涉警事件")); |
|
|
|
|
|
|
|
update.setData(desc); |
|
|
|
|
|
|
|
update.setEventTime(maxTime); |
|
|
|
|
|
|
|
toUpdate.add(update); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ClueData data = ClueData.builder() |
|
|
|
ClueData data = ClueData.builder() |
|
|
|
.name(person.getName()) |
|
|
|
.name(person.getName()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.tags(List.of(list.size() + "起平台涉警事件")) |
|
|
|
.tags(List.of(list.size() + "起平台涉警事件")) |
|
|
|
.sourceData(sb.substring(0, sb.length() - 1)) |
|
|
|
.sourceData(desc) |
|
|
|
.eventTime(LocalDateTime.now()) |
|
|
|
.eventTime(maxTime) |
|
|
|
.personId(person.getId()) |
|
|
|
.personId(person.getId()) |
|
|
|
.score(Math.min(5, list.size())) |
|
|
|
.score(Math.min(5, list.size())) |
|
|
|
.build(); |
|
|
|
.build(); |
|
|
|
toInsert.add(DataUtil.createClueData(task, data)); |
|
|
|
toInsert.add(DataUtil.createClueData(task, data)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIds.add(entry.getKey()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
log.info("保存平台涉警事件数据:{}", toInsert.size()); |
|
|
|
log.info("保存平台涉警事件数据:{}", toInsert.size()); |
|
|
|
clueService.saveClues(toInsert, "B28平台涉警事件"); |
|
|
|
clueService.saveClues(toInsert, "B28平台涉警事件"); |
|
|
|
} |
|
|
|
} |
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), 0); |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
log.info("修改平台涉警事件数据:{}", toUpdate.size()); |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
log.info("删除平台涉警事件数据:{}", toDelete.size()); |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIds, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toDelete.size()+toUpdate.size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
|