Browse Source

重构118模型

master
sjh 1 year ago
parent
commit
caf6d90434
  1. 2
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 11
      src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java
  3. 6
      src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseCSCZRK.java
  4. 42
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

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

@ -145,7 +145,7 @@ public class ApplicationEvent {
pointService.syncAdministrativePunishment(initDomain(List.of(116)));
// pointService.syncParentsDivorce(initDomain(List.of(117)));
// gBaseJJDService.syncOtherContradict(initDomain(List.of(75)));
// pointService.syncFamilyDie(initDomain(List.of(118)));
pointService.syncFamilyDie(initDomain(List.of(118)));
// pointService.syncFatherDie(initDomain(List.of(119)));
// pointService.syncMotherDie(initDomain(List.of(120)));
// pointService.syncChildNo(initDomain(List.of(121)));

11
src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java

@ -25,6 +25,17 @@ public interface GBaseCSCZRKMapper extends BaseMapper<GBaseCSCZRK> {
+ "on (a.fqgmsfzhm = b.male_id_code or a.mqgmsfzhm = b.female_id_code)) a inner join csga_wdpcdb.wdpc_person b on a.gmsfhm = b.id_code;")
List<GBaseCSCZRK> selectParentsDivorce();
@Select("select a.gmsfhm, a.hh, a.fqgmsfzhm, a.mqgmsfzhm from dwd_ry_kxgxzyk_csczrk a inner join csga_wdpcdb.wdpc_person b on a.gmsfhm = b.id_code;")
List<GBaseCSCZRK> selectRiskHH();
@Select("<script>"
+ "select distinct gmsfhm, hh from dwd_ry_kxgxzyk_csczrk where hh in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ "</script>")
List<GBaseCSCZRK> selectFamilyByHh(List<String> hhPart);
// 亲近家人死亡
@Select("<script>"
+ "select distinct gmsfhm from dwd_ry_kxgxzyk_csczrk where gmsfhm not in "

6
src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseCSCZRK.java

@ -89,6 +89,12 @@ public class GBaseCSCZRK implements Serializable {
@TableField("score")
Integer score;
/**
* 户号
*/
@TableField("`hh`")
String hh;
@TableField(exist = false, value = "family_id")
String familyId;

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

@ -1400,30 +1400,38 @@ 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<>();
List<String> list = new ArrayList<>();
log.info("模型118开始查询");
List<WdpcHZCRYXX> wdpcHZCRYXXS = hZCRYXXRepository.list(new LambdaQueryWrapper<WdpcHZCRYXX>().select(WdpcHZCRYXX::getIdCode));
List<GBaseCSCZRK> riskHHs = cSCZRKRepository.getBaseMapper().selectRiskHH();
log.info("模型118查询到{}条户号", riskHHs.size());
// 切割 每次查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())))
List<List<GBaseCSCZRK>> riskHHsParts = IntStream.range(0, (riskHHs.size() + 9999) / 10000)
.mapToObj(i -> riskHHs.subList(i * 10000, Math.min((i + 1) * 10000, riskHHs.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());
for (List<GBaseCSCZRK> riskHHsPart : riskHHsParts) {
List<String> idCodePart = riskHHsPart.stream().map(GBaseCSCZRK::getGmsfhm).toList();
List<String> fatherCodePart = riskHHsPart.stream().map(GBaseCSCZRK::getFqgmsfzhm).filter(Objects::nonNull).toList();
List<String> motherCodePart = riskHHsPart.stream().map(GBaseCSCZRK::getMqgmsfzhm).filter(Objects::nonNull).toList();
List<String> hhPart = riskHHsPart.stream().map(GBaseCSCZRK::getHh).toList();
List<GBaseCSCZRK> familys = cSCZRKRepository.getBaseMapper().selectFamilyByHh(hhPart);
log.info("模型118查询到{}条familys", familys.size());
List<String> familyIds = familys.stream().map(GBaseCSCZRK::getGmsfhm).filter(v -> !idCodePart.contains(v) && !fatherCodePart.contains(v) && !motherCodePart.contains(v)).toList();
List<String> wdpcHZCRYXXS = hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyIds);
log.info("模型118查询到{}条HZCPeople", wdpcHZCRYXXS.size());
List<String> targetHHs = familys.stream().filter(v -> !wdpcHZCRYXXS.contains(v.getGmsfhm())).map(GBaseCSCZRK::getHh).toList();
list.addAll(riskHHsPart.stream().filter(v -> targetHHs.contains(v.getHh())).map(GBaseCSCZRK::getGmsfhm).toList());
log.info("模型118当前listSize:{}", list.size());
}
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());
for (String domicileType : list) {
RiskPersonal personal = personalMap.get(domicileType);
if (personal == null) continue;
if (idCode.get(domicileType.getGmsfhm()) != null) continue;
if (oldMap.get(domicileType.getGmsfhm()) != null) continue;
if (idCode.get(domicileType) != null) continue;
if (oldMap.get(domicileType) != null) continue;
idCode.put(domicileType.getGmsfhm(), 1);
idCode.put(domicileType, 1);
ClueData data = ClueData.builder()
.name(personal.getName())
.id(personal.getId().toString())

Loading…
Cancel
Save