|
|
|
@ -62,10 +62,6 @@ public class PointServiceImpl implements PointService { |
|
|
|
|
|
|
|
|
|
|
|
private final GBaseCSCZRKRepository cSCZRKRepository; |
|
|
|
private final GBaseCSCZRKRepository cSCZRKRepository; |
|
|
|
|
|
|
|
|
|
|
|
private final GBaseWFRWFXXRepository wFRWFXXRepository; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final GBaseGAXZCFJDSRepository gAXZCFJDSRepository; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final WdpcHZCRYXXRepository hZCRYXXRepository; |
|
|
|
private final WdpcHZCRYXXRepository hZCRYXXRepository; |
|
|
|
|
|
|
|
|
|
|
|
private final WdpcXdryRepository xdryRepository; |
|
|
|
private final WdpcXdryRepository xdryRepository; |
|
|
|
@ -103,20 +99,30 @@ public class PointServiceImpl implements PointService { |
|
|
|
List<RiskPersonal> persons = getPersons(); |
|
|
|
List<RiskPersonal> persons = getPersons(); |
|
|
|
RiskTask task = taskRepository.create(persons.size(), 43); |
|
|
|
RiskTask task = taskRepository.create(persons.size(), 43); |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> clues = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); |
|
|
|
Map<String, RiskModelTaskClue> oldClueMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
Map<String, List<RiskModelTaskClue>> oldClueMap = clues.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); |
|
|
|
|
|
|
|
Map<String, List<RiskPersonal>> map = persons.stream().collect(Collectors.groupingBy(RiskPersonal::getIdCode)); |
|
|
|
Map<String, List<RiskPersonal>> map = persons.stream().collect(Collectors.groupingBy(RiskPersonal::getIdCode)); |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCodes = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, List<RiskPersonal>> entry : map.entrySet()) { |
|
|
|
for (Map.Entry<String, List<RiskPersonal>> entry : map.entrySet()) { |
|
|
|
List<RiskModelTaskClue> olds = oldClueMap.get(entry.getKey()); |
|
|
|
List<RiskPersonal> personals = entry.getValue().stream().filter(StreamUtil.distinctByKey(RiskPersonal::getTags)).toList(); |
|
|
|
// 是否类型只存在一条
|
|
|
|
if (personals.isEmpty()) continue; |
|
|
|
if (olds != null) { |
|
|
|
String desc = "发现该人员为重点人员,存在" + personals.size() + "个标签"; |
|
|
|
|
|
|
|
RiskModelTaskClue old = oldClueMap.get(entry.getKey()); |
|
|
|
|
|
|
|
if (old != null && old.getData().equals(desc)) { |
|
|
|
|
|
|
|
oldClueMap.remove(entry.getKey()); |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
List<RiskPersonal> personals = entry.getValue().stream().filter(StreamUtil.distinctByKey(RiskPersonal::getTags)).toList(); |
|
|
|
if (old != null) { |
|
|
|
if (personals.isEmpty()) { |
|
|
|
oldClueMap.remove(entry.getKey()); |
|
|
|
|
|
|
|
RiskModelTaskClue update = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
update.setId(old.getId()); |
|
|
|
|
|
|
|
update.setData(desc); |
|
|
|
|
|
|
|
update.setEventTime(LocalDateTime.now()); |
|
|
|
|
|
|
|
toUpdate.add(update); |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
toInsert.add(DataUtil.createClueData(task, ClueData.builder() |
|
|
|
toInsert.add(DataUtil.createClueData(task, ClueData.builder() |
|
|
|
@ -124,16 +130,31 @@ public class PointServiceImpl implements PointService { |
|
|
|
.score(5) |
|
|
|
.score(5) |
|
|
|
.personId(personals.getFirst().getId()) |
|
|
|
.personId(personals.getFirst().getId()) |
|
|
|
.tags(List.of("重点人员")) |
|
|
|
.tags(List.of("重点人员")) |
|
|
|
.sourceData("发现该人员为重点人员,存在" + personals.size() + "个标签") |
|
|
|
.sourceData(desc) |
|
|
|
.name(personals.getFirst().getName()) |
|
|
|
.name(personals.getFirst().getName()) |
|
|
|
.idCode(personals.getFirst().getIdCode()) |
|
|
|
.idCode(personals.getFirst().getIdCode()) |
|
|
|
.eventTime(personals.getFirst().getControlTime()) |
|
|
|
|
|
|
|
.build())); |
|
|
|
.build())); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldClueMap.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCodes.add(entry.getValue().getIdCode()); |
|
|
|
|
|
|
|
} |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
|
|
|
|
log.info("新增是否重点人员人数{}条", toInsert.size()); |
|
|
|
modelTaskClueService.saveClues(toInsert, "B11是否是重点人员"); |
|
|
|
modelTaskClueService.saveClues(toInsert, "B11是否是重点人员"); |
|
|
|
} |
|
|
|
} |
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), 0); |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
log.info("修改是否重点人员人数{}条", toUpdate.size()); |
|
|
|
|
|
|
|
modelTaskClueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
log.info("修改是否重点人员人数{}条", toDelete.size()); |
|
|
|
|
|
|
|
modelTaskClueService.deleteCluesAndDeleteTag(toDelete, deleteIdCodes, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size() + toUpdate.size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private final WdpcGrjdZblxRepository zblxRepository; |
|
|
|
private final WdpcGrjdZblxRepository zblxRepository; |
|
|
|
@ -166,7 +187,7 @@ public class PointServiceImpl implements PointService { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
List<RiskModelTaskClue> oldList = personMap.get(ry.getSfzh()); |
|
|
|
List<RiskModelTaskClue> oldList = personMap.get(ry.getSfzh()); |
|
|
|
if(oldList != null) { |
|
|
|
if (oldList != null) { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
codes = codes.stream().distinct().toList(); |
|
|
|
codes = codes.stream().distinct().toList(); |
|
|
|
@ -234,52 +255,67 @@ public class PointServiceImpl implements PointService { |
|
|
|
List<Violence> list = zdryRepository.getBaseMapper().syncViolencePerson(); |
|
|
|
List<Violence> list = zdryRepository.getBaseMapper().syncViolencePerson(); |
|
|
|
Map<String, List<Violence>> violenceMap = list.stream().collect(Collectors.groupingBy(Violence::getZjhm)); |
|
|
|
Map<String, List<Violence>> violenceMap = list.stream().collect(Collectors.groupingBy(Violence::getZjhm)); |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> olds = Optional.ofNullable(domain.getMap().get(task.getId())).orElse(new ArrayList<>()); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
Map<String, List<RiskModelTaskClue>> maps = olds.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> deleteIdCodes = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
List<Violence> tmp = violenceMap.get(person.getIdCode()); |
|
|
|
List<Violence> tmp = violenceMap.get(person.getIdCode()); |
|
|
|
if (tmp == null) continue; |
|
|
|
if (tmp == null) continue; |
|
|
|
List<RiskModelTaskClue> old = maps.get(person.getIdCode()); |
|
|
|
String desc = "通过核查案件信息,发现该人员有暴力伤害行为,案件编号为:" + String.join(",", tmp.stream().map(Violence::getAjbh).distinct().sorted().toList()); |
|
|
|
if (old != null) continue; |
|
|
|
|
|
|
|
tmp = tmp.stream().filter(StreamUtil.distinctByKey(Violence::getAjbh)).toList(); |
|
|
|
tmp = tmp.stream().filter(StreamUtil.distinctByKey(Violence::getAjbh)).toList(); |
|
|
|
StringBuilder sb = new StringBuilder("通过核查案件信息,发现该人员有暴力伤害行为,案件编号为:"); |
|
|
|
List<String> tags = tmp.stream().map(Violence::getAjlbmc).distinct().toList(); |
|
|
|
List<String> tags = new ArrayList<>(); |
|
|
|
|
|
|
|
LocalDateTime date = null; |
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
for (Violence violence : tmp) { |
|
|
|
if (old != null && old.getData().equals(desc)) { |
|
|
|
sb.append(violence.getAjbh()).append(","); |
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
if(!tags.contains(violence.getAjlbmc())) { |
|
|
|
continue; |
|
|
|
tags.add(violence.getAjlbmc()); |
|
|
|
} |
|
|
|
} |
|
|
|
if (old != null) { |
|
|
|
try { |
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
LocalDateTime ld = violence.getBarq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); |
|
|
|
RiskModelTaskClue update = new RiskModelTaskClue(); |
|
|
|
if(date == null) { |
|
|
|
update.setId(old.getId()); |
|
|
|
date = ld; |
|
|
|
update.setData(desc); |
|
|
|
continue; |
|
|
|
update.setEventTime(LocalDateTime.now()); |
|
|
|
} |
|
|
|
update.setScore(Math.min(tmp.size(), 5)); |
|
|
|
if(date.isAfter(ld)) { |
|
|
|
toUpdate.add(update); |
|
|
|
date = ld; |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
} catch (Exception ignored) { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
ClueData data = ClueData.builder() |
|
|
|
ClueData data = ClueData.builder() |
|
|
|
.name(person.getName()) |
|
|
|
.name(person.getName()) |
|
|
|
.id("") |
|
|
|
.id("") |
|
|
|
.personId(person.getId()) |
|
|
|
.personId(person.getId()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.sourceData(sb.substring(0, sb.length()-1)) |
|
|
|
.sourceData(desc) |
|
|
|
.tags(tags) |
|
|
|
.tags(tags) |
|
|
|
.score(Math.min(tmp.size(), 5)) |
|
|
|
.score(Math.min(tmp.size(), 5)) |
|
|
|
.eventTime(date) |
|
|
|
|
|
|
|
.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); |
|
|
|
|
|
|
|
deleteIdCodes.add(entry.getValue().getIdCode()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
|
|
|
|
log.info("新增暴力伤害行为数据{}条", toInsert.size()); |
|
|
|
modelTaskClueService.saveClues(toInsert, "B89暴力伤害行为"); |
|
|
|
modelTaskClueService.saveClues(toInsert, "B89暴力伤害行为"); |
|
|
|
} |
|
|
|
} |
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), 0); |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
log.info("修改暴力伤害行为数据{}条", toUpdate.size()); |
|
|
|
|
|
|
|
modelTaskClueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
log.info("删除暴力伤害行为数据{}条", toDelete.size()); |
|
|
|
|
|
|
|
modelTaskClueService.deleteCluesAndDeleteTag(toDelete, deleteIdCodes, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toDelete.size()+toUpdate.size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -311,7 +347,8 @@ public class PointServiceImpl implements PointService { |
|
|
|
.build(); |
|
|
|
.build(); |
|
|
|
try { |
|
|
|
try { |
|
|
|
data.setEventTime(extreme.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); |
|
|
|
data.setEventTime(extreme.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); |
|
|
|
} catch (Exception ignored) {} |
|
|
|
} catch (Exception ignored) { |
|
|
|
|
|
|
|
} |
|
|
|
toInsert.add(DataUtil.createClueData(task, data)); |
|
|
|
toInsert.add(DataUtil.createClueData(task, data)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -1425,18 +1462,18 @@ public class PointServiceImpl implements PointService { |
|
|
|
if (oldMap.get(domicileType) != null) continue; |
|
|
|
if (oldMap.get(domicileType) != null) continue; |
|
|
|
|
|
|
|
|
|
|
|
idCode.put(domicileType, 1); |
|
|
|
idCode.put(domicileType, 1); |
|
|
|
ClueData data = ClueData.builder() |
|
|
|
ClueData data = ClueData.builder() |
|
|
|
.name(personal.getName()) |
|
|
|
.name(personal.getName()) |
|
|
|
.id(personal.getId().toString()) |
|
|
|
.id(personal.getId().toString()) |
|
|
|
.idCode(personal.getIdCode()) |
|
|
|
.idCode(personal.getIdCode()) |
|
|
|
.tags(List.of("亲近家人死亡")) |
|
|
|
.tags(List.of("亲近家人死亡")) |
|
|
|
.score(5) |
|
|
|
.score(5) |
|
|
|
.eventTime(LocalDateTime.now()) |
|
|
|
.eventTime(LocalDateTime.now()) |
|
|
|
.personId(personal.getId()) |
|
|
|
.personId(personal.getId()) |
|
|
|
.sourceData("发现该人员亲近家人死亡") |
|
|
|
.sourceData("发现该人员亲近家人死亡") |
|
|
|
.build(); |
|
|
|
.build(); |
|
|
|
toInsert.add(DataUtil.createClueData(task, data)); |
|
|
|
toInsert.add(DataUtil.createClueData(task, data)); |
|
|
|
} |
|
|
|
} |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
modelTaskClueService.saveClues(toInsert, Default.FAMILYDIE); |
|
|
|
modelTaskClueService.saveClues(toInsert, Default.FAMILYDIE); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -1630,9 +1667,9 @@ public class PointServiceImpl implements PointService { |
|
|
|
case "研究生", "研究生肄业", "研究生毕业", "大学毕业", "大学本科", "大学肄业", "相当大学毕业" -> 1;// 本科
|
|
|
|
case "研究生", "研究生肄业", "研究生毕业", "大学毕业", "大学本科", "大学肄业", "相当大学毕业" -> 1;// 本科
|
|
|
|
case "大学专科和专科学校", "相当专科毕业", "专科毕业", "专科肄业" -> 2;// 大专
|
|
|
|
case "大学专科和专科学校", "相当专科毕业", "专科毕业", "专科肄业" -> 2;// 大专
|
|
|
|
case "相当高中毕业", "相当中专或中技毕业", "中专中技肄业", "职业高中毕业", "中专毕业", "高中肄业", |
|
|
|
case "相当高中毕业", "相当中专或中技毕业", "中专中技肄业", "职业高中毕业", "中专毕业", "高中肄业", |
|
|
|
"中技毕业", "中等专科学校", "高中", "高中毕业", "农业高中毕业" -> 3;// 高中中专
|
|
|
|
"中技毕业", "中等专科学校", "高中", "高中毕业", "农业高中毕业" -> 3;// 高中中专
|
|
|
|
case "农业初中毕业", "技工学校", "技工学校肄业", "技工学校毕业", "初中", "职业初中毕业", "初中毕业", |
|
|
|
case "农业初中毕业", "技工学校", "技工学校肄业", "技工学校毕业", "初中", "职业初中毕业", "初中毕业", |
|
|
|
"初中肆业", "相当初中毕业" -> 4;// 初中
|
|
|
|
"初中肆业", "相当初中毕业" -> 4;// 初中
|
|
|
|
case "小学", "小学肄业", "小学肆业", "小学毕业", "相当小学毕业", "文盲", "文盲或半文盲", "学龄前儿童" -> |
|
|
|
case "小学", "小学肄业", "小学肆业", "小学毕业", "相当小学毕业", "文盲", "文盲或半文盲", "学龄前儿童" -> |
|
|
|
5;// 小学
|
|
|
|
5;// 小学
|
|
|
|
default -> 0; |
|
|
|
default -> 0; |
|
|
|
@ -1933,18 +1970,18 @@ public class PointServiceImpl implements PointService { |
|
|
|
count++; |
|
|
|
count++; |
|
|
|
try { |
|
|
|
try { |
|
|
|
LocalDateTime tmp = LocalDateTime.parse(item.getTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
LocalDateTime tmp = LocalDateTime.parse(item.getTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
if(time == null) { |
|
|
|
if (time == null) { |
|
|
|
time = tmp; |
|
|
|
time = tmp; |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
if(tmp.isAfter(time)) { |
|
|
|
if (tmp.isAfter(time)) { |
|
|
|
time = tmp; |
|
|
|
time = tmp; |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("散装油时间转化异常"); |
|
|
|
log.error("散装油时间转化异常"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if(count <= 0) { |
|
|
|
if (count <= 0) { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
ClueData data = ClueData.builder() |
|
|
|
ClueData data = ClueData.builder() |
|
|
|
@ -2032,7 +2069,7 @@ public class PointServiceImpl implements PointService { |
|
|
|
log.info("车主数量:{}", carUsers.size()); |
|
|
|
log.info("车主数量:{}", carUsers.size()); |
|
|
|
RiskTask task = taskRepository.create(carUsers.size(), 53); |
|
|
|
RiskTask task = taskRepository.create(carUsers.size(), 53); |
|
|
|
|
|
|
|
|
|
|
|
Map<String, RiskModelTaskClue> clueMap = domain.getOldMap(task.getModelId(), false); |
|
|
|
Map<String, RiskModelTaskClue> clueMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
HashSet<String> exist = new HashSet<>(); |
|
|
|
HashSet<String> exist = new HashSet<>(); |
|
|
|
for (String carUser : carUsers) { |
|
|
|
for (String carUser : carUsers) { |
|
|
|
exist.add(carUser); |
|
|
|
exist.add(carUser); |
|
|
|
|