Browse Source

Merge remote-tracking branch 'origin/master'

master
kami 1 year ago
parent
commit
dc139a3a59
  1. 142
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

142
src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

@ -1398,104 +1398,52 @@ public class PointServiceImpl implements PointService {
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, Integer> idCode = new HashMap<>();
List<GBaseCSCZRK> list = new ArrayList<>();
log.info("模型118开始查询");
int pageSize = 100000;
int pageNumber1 = 1;
List<GBaseCSCZRK> currentPageResults1;
do {
int offset = (pageNumber1 - 1) * pageSize;
currentPageResults1 = cSCZRKRepository.getBaseMapper().selectFamilyPeople1(offset, pageSize);
log.info("模型118第一部分查询size:{}", currentPageResults1.size());
if (currentPageResults1.isEmpty()) break;
List<GBaseCSCZRK> familyPeople = new ArrayList<>(currentPageResults1);
Map<String, List<String>> familyMap = familyPeople.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm,
Collectors.mapping(GBaseCSCZRK::getFamilyId, Collectors.toList())));
List<String> familyList = familyPeople.stream().map(GBaseCSCZRK::getFamilyId).toList();
List<String> list = new ArrayList<>(hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyList));
log.info("模型118第一部分查询list:{}", list.size());
List<RiskModelTaskClue> toInsert = getRiskModelTaskClues(domain, familyMap, list, idCode, oldMap, task);
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
updateTask.setInsertSize(toInsert.size());
updateTask.setUpdateSize(0);
updateTask.setState(1);
updateTask.setEndTime(LocalDateTime.now());
taskRepository.updateById(updateTask);
pageNumber1++;
} while (!currentPageResults1.isEmpty());
log.info("模型118查询familyPeople1完成");
int pageNumber2 = 1;
List<GBaseCSCZRK> currentPageResults2;
do {
int offset = (pageNumber2 - 1) * pageSize;
currentPageResults2 = cSCZRKRepository.getBaseMapper().selectFamilyPeople2(offset, pageSize);
log.info("模型118第二部分查询size:{}", currentPageResults2.size());
if (currentPageResults2.isEmpty()) break;
List<GBaseCSCZRK> familyPeople = new ArrayList<>(currentPageResults2);
Map<String, List<String>> familyMap = familyPeople.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm,
Collectors.mapping(GBaseCSCZRK::getFamilyId, Collectors.toList())));
List<String> familyList = familyPeople.stream().map(GBaseCSCZRK::getFamilyId).toList();
List<String> list = new ArrayList<>(hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyList));
log.info("模型118第二部分查询list:{}", list.size());
List<RiskModelTaskClue> toInsert = getRiskModelTaskClues(domain, familyMap, list, idCode, oldMap, task);
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
updateTask.setInsertSize(toInsert.size());
updateTask.setUpdateSize(0);
updateTask.setState(1);
updateTask.setEndTime(LocalDateTime.now());
taskRepository.updateById(updateTask);
pageNumber2++;
} while (!currentPageResults2.isEmpty());
log.info("模型118查询familyPeople2完成");
int pageNumber3 = 1;
List<GBaseCSCZRK> currentPageResults3;
do {
int offset = (pageNumber3 - 1) * pageSize;
currentPageResults3 = cSCZRKRepository.getBaseMapper().selectFamilyPeople3(offset, pageSize);
log.info("模型118第三部分查询size:{}", currentPageResults3.size());
if (currentPageResults3.isEmpty()) break;
List<GBaseCSCZRK> familyPeople = new ArrayList<>(currentPageResults3);
Map<String, List<String>> familyMap = familyPeople.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm,
Collectors.mapping(GBaseCSCZRK::getFamilyId, Collectors.toList())));
List<String> familyList = familyPeople.stream().map(GBaseCSCZRK::getFamilyId).toList();
List<String> list = new ArrayList<>(hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyList));
log.info("模型118第三部分查询list:{}", list.size());
List<RiskModelTaskClue> toInsert = getRiskModelTaskClues(domain, familyMap, list, idCode, oldMap, task);
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
updateTask.setInsertSize(toInsert.size());
updateTask.setUpdateSize(0);
updateTask.setState(1);
updateTask.setEndTime(LocalDateTime.now());
taskRepository.updateById(updateTask);
pageNumber3++;
} while (!currentPageResults3.isEmpty());
log.info("模型118查询familyPeople3完成");
int pageNumber4 = 1;
List<GBaseCSCZRK> currentPageResults4;
do {
int offset = (pageNumber4 - 1) * pageSize;
currentPageResults4 = cSCZRKRepository.getBaseMapper().selectFamilyPeople3(offset, pageSize);
log.info("模型118第四部分查询size:{}", currentPageResults4.size());
if (currentPageResults4.isEmpty()) break;
List<GBaseCSCZRK> familyPeople = new ArrayList<>(currentPageResults4);
Map<String, List<String>> familyMap = familyPeople.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm,
Collectors.mapping(GBaseCSCZRK::getFamilyId, Collectors.toList())));
List<String> familyList = familyPeople.stream().map(GBaseCSCZRK::getFamilyId).toList();
List<String> list = new ArrayList<>(hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyList));
log.info("模型118第四部分查询list:{}", list.size());
List<RiskModelTaskClue> toInsert = getRiskModelTaskClues(domain, familyMap, list, idCode, oldMap, task);
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
updateTask.setInsertSize(toInsert.size());
updateTask.setUpdateSize(0);
updateTask.setState(1);
updateTask.setEndTime(LocalDateTime.now());
taskRepository.updateById(updateTask);
pageNumber4++;
} while (!currentPageResults4.isEmpty());
log.info("模型118查询familyPeople4完成");
List<WdpcHZCRYXX> wdpcHZCRYXXS = hZCRYXXRepository.list(new LambdaQueryWrapper<WdpcHZCRYXX>().select(WdpcHZCRYXX::getIdCode));
// 切割 每次查10000条
List<List<WdpcHZCRYXX>> wdpcHZCRYXXSParts = IntStream.range(0, (wdpcHZCRYXXS.size() + 9999) / 10000)
.mapToObj(i -> wdpcHZCRYXXS.subList(i * 10000, Math.min((i + 1) * 10000, wdpcHZCRYXXS.size())))
.toList();
int i = 1;
for (List<WdpcHZCRYXX> wdpcHZCRYXXSPart : wdpcHZCRYXXSParts) {
List<String> ids = wdpcHZCRYXXSPart.stream().map(WdpcHZCRYXX::getIdCode).toList();
list.addAll(cSCZRKRepository.getBaseMapper().selectFamilyDiePeople(ids));
log.info("模型118查询完成{}", i);
i++;
}
log.info("模型118查询结果数:{}", list.size());
Map<String, RiskPersonal> personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal));
List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (GBaseCSCZRK domicileType : list) {
RiskPersonal personal = personalMap.get(domicileType.getGmsfhm());
if (personal == null) continue;
if (idCode.get(domicileType.getGmsfhm()) != null) continue;
if (oldMap.get(domicileType.getGmsfhm()) != null) continue;
idCode.put(domicileType.getGmsfhm(), 1);
ClueData data = ClueData.builder()
.name(personal.getName())
.id(personal.getId().toString())
.idCode(personal.getIdCode())
.tags(List.of("亲近家人死亡"))
.score(5)
.eventTime(LocalDateTime.now())
.personId(personal.getId())
.sourceData("发现该人员亲近家人死亡")
.build();
toInsert.add(DataUtil.createClueData(task, data));
}
if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert, Default.FAMILYDIE);
}
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
updateTask.setInsertSize(toInsert.size());
updateTask.setUpdateSize(0);
updateTask.setState(1);
updateTask.setEndTime(LocalDateTime.now());
taskRepository.updateById(updateTask);
}
private @NotNull List<RiskModelTaskClue> getRiskModelTaskClues(TaskParamDomain domain, Map<String, List<String>> familyMap, List<String> list, Map<String, Integer> idCode, Map<String, RiskModelTaskClue> oldMap, RiskTask task) {

Loading…
Cancel
Save