diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java index cf92db1..7922399 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -1398,104 +1398,52 @@ public class PointServiceImpl implements PointService { Map oldMap = domain.getOldMap(task.getModelId(), true); Map idCode = new HashMap<>(); + List list = new ArrayList<>(); log.info("模型118开始查询"); - int pageSize = 100000; - int pageNumber1 = 1; - List currentPageResults1; - do { - int offset = (pageNumber1 - 1) * pageSize; - currentPageResults1 = cSCZRKRepository.getBaseMapper().selectFamilyPeople1(offset, pageSize); - log.info("模型118第一部分查询size:{}", currentPageResults1.size()); - if (currentPageResults1.isEmpty()) break; - List familyPeople = new ArrayList<>(currentPageResults1); - Map> familyMap = familyPeople.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm, - Collectors.mapping(GBaseCSCZRK::getFamilyId, Collectors.toList()))); - List familyList = familyPeople.stream().map(GBaseCSCZRK::getFamilyId).toList(); - List list = new ArrayList<>(hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyList)); - log.info("模型118第一部分查询list:{}", list.size()); - List 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 currentPageResults2; - do { - int offset = (pageNumber2 - 1) * pageSize; - currentPageResults2 = cSCZRKRepository.getBaseMapper().selectFamilyPeople2(offset, pageSize); - log.info("模型118第二部分查询size:{}", currentPageResults2.size()); - if (currentPageResults2.isEmpty()) break; - List familyPeople = new ArrayList<>(currentPageResults2); - Map> familyMap = familyPeople.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm, - Collectors.mapping(GBaseCSCZRK::getFamilyId, Collectors.toList()))); - List familyList = familyPeople.stream().map(GBaseCSCZRK::getFamilyId).toList(); - List list = new ArrayList<>(hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyList)); - log.info("模型118第二部分查询list:{}", list.size()); - List 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 currentPageResults3; - do { - int offset = (pageNumber3 - 1) * pageSize; - currentPageResults3 = cSCZRKRepository.getBaseMapper().selectFamilyPeople3(offset, pageSize); - log.info("模型118第三部分查询size:{}", currentPageResults3.size()); - if (currentPageResults3.isEmpty()) break; - List familyPeople = new ArrayList<>(currentPageResults3); - Map> familyMap = familyPeople.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm, - Collectors.mapping(GBaseCSCZRK::getFamilyId, Collectors.toList()))); - List familyList = familyPeople.stream().map(GBaseCSCZRK::getFamilyId).toList(); - List list = new ArrayList<>(hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyList)); - log.info("模型118第三部分查询list:{}", list.size()); - List 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 currentPageResults4; - do { - int offset = (pageNumber4 - 1) * pageSize; - currentPageResults4 = cSCZRKRepository.getBaseMapper().selectFamilyPeople3(offset, pageSize); - log.info("模型118第四部分查询size:{}", currentPageResults4.size()); - if (currentPageResults4.isEmpty()) break; - List familyPeople = new ArrayList<>(currentPageResults4); - Map> familyMap = familyPeople.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm, - Collectors.mapping(GBaseCSCZRK::getFamilyId, Collectors.toList()))); - List familyList = familyPeople.stream().map(GBaseCSCZRK::getFamilyId).toList(); - List list = new ArrayList<>(hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyList)); - log.info("模型118第四部分查询list:{}", list.size()); - List 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 wdpcHZCRYXXS = hZCRYXXRepository.list(new LambdaQueryWrapper().select(WdpcHZCRYXX::getIdCode)); + // 切割 每次查10000条 + List> 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 wdpcHZCRYXXSPart : wdpcHZCRYXXSParts) { + List ids = wdpcHZCRYXXSPart.stream().map(WdpcHZCRYXX::getIdCode).toList(); + list.addAll(cSCZRKRepository.getBaseMapper().selectFamilyDiePeople(ids)); + log.info("模型118查询完成{}", i); + i++; + } + log.info("模型118查询结果数:{}", list.size()); + Map personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal)); + List 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 getRiskModelTaskClues(TaskParamDomain domain, Map> familyMap, List list, Map idCode, Map oldMap, RiskTask task) {