Browse Source

修复118模型4

master
sjh 1 year ago
parent
commit
2d82a86287
  1. 2
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 100
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

2
src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java

@ -159,7 +159,7 @@ public class ApplicationEvent {
// pointService.syncFamilySeriousIllness(initDomain(List.of(127))); // pointService.syncFamilySeriousIllness(initDomain(List.of(127)));
// pointService.syncPetitionDissatisfied(initDomain(List.of(128))); // pointService.syncPetitionDissatisfied(initDomain(List.of(128)));
// pointService.syncIsSpecialPeople(initDomain(List.of(129))); // pointService.syncIsSpecialPeople(initDomain(List.of(129)));
// pointService.syncSpecialPeopleType(initDomain(List.of(130))); pointService.syncSpecialPeopleType(initDomain(List.of(130)));
// pointService.syncParentsRelationship(initDomain(List.of(131))); // pointService.syncParentsRelationship(initDomain(List.of(131)));
// pointService.syncMentalDiseaseDriver(initDomain(List.of(132))); // pointService.syncMentalDiseaseDriver(initDomain(List.of(132)));
// pointService.syncXIDUDriver(initDomain(List.of(133))); // pointService.syncXIDUDriver(initDomain(List.of(133)));

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

@ -27,6 +27,7 @@ import com.biutag.supervisiondata.util.IdCodeUtil;
import com.biutag.supervisiondata.util.PatternUtil; import com.biutag.supervisiondata.util.PatternUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -1397,8 +1398,6 @@ public class PointServiceImpl implements PointService {
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, Integer> idCode = new HashMap<>(); Map<String, Integer> idCode = new HashMap<>();
List<String> list = new ArrayList<>();
List<GBaseCSCZRK> familyPeople = new ArrayList<>();
log.info("模型118开始查询"); log.info("模型118开始查询");
int pageSize = 100000; int pageSize = 100000;
int pageNumber1 = 1; int pageNumber1 = 1;
@ -1406,49 +1405,100 @@ public class PointServiceImpl implements PointService {
do { do {
int offset = (pageNumber1 - 1) * pageSize; int offset = (pageNumber1 - 1) * pageSize;
currentPageResults1 = cSCZRKRepository.getBaseMapper().selectFamilyPeople1(offset, pageSize); currentPageResults1 = cSCZRKRepository.getBaseMapper().selectFamilyPeople1(offset, pageSize);
log.info("模型118第一部分查询完毕"); log.info("模型118第一部分查询size:{}", currentPageResults1.size());
familyPeople.addAll(currentPageResults1); 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++; pageNumber1++;
} while (!currentPageResults1.isEmpty()); } while (!currentPageResults1.isEmpty());
log.info("模型118查询familyPeople1结果数:{}", familyPeople.size()); log.info("模型118查询familyPeople1完成");
int pageNumber2 = 1; int pageNumber2 = 1;
List<GBaseCSCZRK> currentPageResults2; List<GBaseCSCZRK> currentPageResults2;
do { do {
int offset = (pageNumber2 - 1) * pageSize; int offset = (pageNumber2 - 1) * pageSize;
currentPageResults2 = cSCZRKRepository.getBaseMapper().selectFamilyPeople2(offset, pageSize); currentPageResults2 = cSCZRKRepository.getBaseMapper().selectFamilyPeople2(offset, pageSize);
familyPeople.addAll(currentPageResults2); 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++; pageNumber2++;
} while (!currentPageResults2.isEmpty()); } while (!currentPageResults2.isEmpty());
log.info("模型118查询familyPeople2结果数:{}", familyPeople.size()); log.info("模型118查询familyPeople2完成");
int pageNumber3 = 1; int pageNumber3 = 1;
List<GBaseCSCZRK> currentPageResults3; List<GBaseCSCZRK> currentPageResults3;
do { do {
int offset = (pageNumber3 - 1) * pageSize; int offset = (pageNumber3 - 1) * pageSize;
currentPageResults3 = cSCZRKRepository.getBaseMapper().selectFamilyPeople3(offset, pageSize); currentPageResults3 = cSCZRKRepository.getBaseMapper().selectFamilyPeople3(offset, pageSize);
familyPeople.addAll(currentPageResults3); 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++; pageNumber3++;
} while (!currentPageResults3.isEmpty()); } while (!currentPageResults3.isEmpty());
log.info("模型118查询familyPeople3结果数:{}", familyPeople.size()); log.info("模型118查询familyPeople3完成");
int pageNumber4 = 1; int pageNumber4 = 1;
List<GBaseCSCZRK> currentPageResults4; List<GBaseCSCZRK> currentPageResults4;
do { do {
int offset = (pageNumber4 - 1) * pageSize; int offset = (pageNumber4 - 1) * pageSize;
currentPageResults4 = cSCZRKRepository.getBaseMapper().selectFamilyPeople4(offset, pageSize); currentPageResults4 = cSCZRKRepository.getBaseMapper().selectFamilyPeople3(offset, pageSize);
familyPeople.addAll(currentPageResults4); log.info("模型118第四部分查询size:{}", currentPageResults4.size());
pageNumber4++; if (currentPageResults4.isEmpty()) break;
} while (!currentPageResults4.isEmpty()); List<GBaseCSCZRK> familyPeople = new ArrayList<>(currentPageResults4);
log.info("模型118查询familyPeople结果数:{}", familyPeople.size());
Map<String, List<String>> familyMap = familyPeople.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm, Map<String, List<String>> familyMap = familyPeople.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm,
Collectors.mapping(GBaseCSCZRK::getFamilyId, Collectors.toList()))); Collectors.mapping(GBaseCSCZRK::getFamilyId, Collectors.toList())));
List<String> familyList = familyPeople.stream().map(GBaseCSCZRK::getFamilyId).toList(); List<String> familyList = familyPeople.stream().map(GBaseCSCZRK::getFamilyId).toList();
// 切割 每次查10000条 List<String> list = new ArrayList<>(hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyList));
List<List<String>> familyListParts = IntStream.range(0, (familyList.size() + 9999) / 10000) log.info("模型118第四部分查询list:{}", list.size());
.mapToObj(i -> familyList.subList(i * 10000, Math.min((i + 1) * 10000, familyList.size()))) List<RiskModelTaskClue> toInsert = getRiskModelTaskClues(domain, familyMap, list, idCode, oldMap, task);
.toList(); RiskTask updateTask = new RiskTask();
for (List<String> familyListPart : familyListParts) { updateTask.setId(task.getId());
list.addAll(hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyListPart)); 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完成");
} }
log.info("模型118查询结果数:{}", list.size());
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) {
Map<String, RiskPersonal> personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal)); Map<String, RiskPersonal> personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal));
List<RiskModelTaskClue> toInsert = new ArrayList<>(); List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (Map.Entry<String, List<String>> entry : familyMap.entrySet()) { for (Map.Entry<String, List<String>> entry : familyMap.entrySet()) {
@ -1481,13 +1531,7 @@ public class PointServiceImpl implements PointService {
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert, Default.FAMILYDIE); modelTaskClueService.saveClues(toInsert, Default.FAMILYDIE);
} }
RiskTask updateTask = new RiskTask(); return toInsert;
updateTask.setId(task.getId());
updateTask.setInsertSize(toInsert.size());
updateTask.setUpdateSize(0);
updateTask.setState(1);
updateTask.setEndTime(LocalDateTime.now());
taskRepository.updateById(updateTask);
} }
@Override @Override

Loading…
Cancel
Save