diff --git a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java index d18ed2f..f14dd8f 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java @@ -48,6 +48,22 @@ public interface GBaseCSCZRKMapper extends BaseMapper { + "") List selectFamilyDiePeople(List part); + @Select("select distinct a.gmsfhm, c.gmsfhm family_id from dwd_ry_kxgxzyk_csczrk a inner join csga_wdpcdb.wdpc_person b on a.gmsfhm = b.id_code " + + "inner join dwd_ry_kxgxzyk_csczrk c ON a.hh = c.hh " + + "where a.gmsfhm != c.gmsfhm and (" + + "( a.mqgmsfzhm IS NULL AND a.fqgmsfzhm IS NULL ) " + + "OR ( a.mqgmsfzhm IS NULL AND a.fqgmsfzhm != c.gmsfhm ) " + + "OR ( a.fqgmsfzhm IS NULL AND a.mqgmsfzhm != c.gmsfhm ) " + + "OR (a.fqgmsfzhm IS NOT NULL AND a.mqgmsfzhm IS NOT NULL AND a.fqgmsfzhm != c.gmsfhm AND a.mqgmsfzhm != c.gmsfhm) " + + ")") + List selectFamilyPeople(); + + @Select("select distinct a.gmsfhm, a.fqgmsfzhm father_id from dwd_ry_kxgxzyk_csczrk a INNER JOIN csga_wdpcdb.wdpc_person b ON a.gmsfhm = b.id_code where a.fqgmsfzhm is not null;") + List selectFather(); + + @Select("select distinct a.gmsfhm, a.mqgmsfzhm mother_id from dwd_ry_kxgxzyk_csczrk a INNER JOIN csga_wdpcdb.wdpc_person b ON a.gmsfhm = b.id_code where a.mqgmsfzhm is not null;") + List selectMother(); + // 父亲是否健在 @Select("") + List selectHZCPeople(List idNos); } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseCSCZRK.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseCSCZRK.java index e7e9973..d73cdae 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseCSCZRK.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseCSCZRK.java @@ -88,4 +88,13 @@ public class GBaseCSCZRK implements Serializable { // 打分(通用SQL计算结果) @TableField("score") Integer score; + + @TableField(exist = false, value = "family_id") + String familyId; + + @TableField(exist = false, value = "father_id") + String fatherId; + + @TableField(exist = false, value = "mother_id") + String motherId; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJJD.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJJD.java index 400206f..48e72d6 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJJD.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJJD.java @@ -2,6 +2,7 @@ package com.biutag.supervisiondata.pojo.entity.dwd; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Getter; import lombok.Setter; @@ -69,6 +70,7 @@ public class GBaseJJD implements Serializable { /** * 报警时间 */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss") @TableField("bjsj") private Date bjsj; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJszxxb.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJszxxb.java index 348537f..d2a7a0e 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJszxxb.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJszxxb.java @@ -2,6 +2,7 @@ package com.biutag.supervisiondata.pojo.entity.dwd; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serial; @@ -33,11 +34,13 @@ public class GBaseJszxxb implements Serializable { /** * 有效期始 */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss") @TableField("yxqs") Date yxqs; /** * 有效期止 */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss") @TableField("yxqz") Date yxqz; 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 578dfd2..17f3bc3 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -477,28 +477,38 @@ public class PointServiceImpl implements PointService { Map oldMap = domain.getOldMap(task.getModelId(), true); Map idCode = new HashMap<>(); - List list = new ArrayList<>(); + List list = new ArrayList<>(); log.info("模型119开始查询"); - List wdpcHZCRYXXS = hZCRYXXRepository.list(new LambdaQueryWrapper().select(WdpcHZCRYXX::getIdCode)); + List father = cSCZRKRepository.getBaseMapper().selectFather(); + log.info("模型119查询father结果数:{}", father.size()); + Map> fatherMap = father.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm, + Collectors.mapping(GBaseCSCZRK::getFatherId, Collectors.toList()))); + List fatherList = father.stream().map(GBaseCSCZRK::getFatherId).toList(); // 切割 每次查10000条 - List> wdpcHZCRYXXSParts = IntStream.range(0, (wdpcHZCRYXXS.size() + 9999) / 10000) - .mapToObj(i -> wdpcHZCRYXXS.subList(i * 10000, Math.min((i + 1) * 10000, wdpcHZCRYXXS.size()))) + List> fatherListParts = IntStream.range(0, (fatherList.size() + 9999) / 10000) + .mapToObj(i -> fatherList.subList(i * 10000, Math.min((i + 1) * 10000, fatherList.size()))) .toList(); - - for (List wdpcHZCRYXXSPart : wdpcHZCRYXXSParts) { - List ids = wdpcHZCRYXXSPart.stream().map(WdpcHZCRYXX::getIdCode).toList(); - list.addAll(cSCZRKRepository.getBaseMapper().selectFatherDiePeople(ids)); + for (List fatherListPart : fatherListParts) { + list.addAll(hZCRYXXRepository.getBaseMapper().selectHZCPeople(fatherListPart)); } log.info("模型119查询结果数:{}", 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()); + for (Map.Entry> entry : fatherMap.entrySet()) { + boolean contains = false; + for (String fatherId : entry.getValue()) { + if (list.contains(fatherId)) { + contains = true; + break; + } + } + if (!contains) continue; + RiskPersonal personal = personalMap.get(entry.getKey()); if (personal == null) continue; - if (idCode.get(domicileType.getGmsfhm()) != null) continue; - if (oldMap.get(domicileType.getGmsfhm()) != null) continue; + if (idCode.get(entry.getKey()) != null) continue; + if (oldMap.get(entry.getKey()) != null) continue; - idCode.put(domicileType.getGmsfhm(), 1); + idCode.put(entry.getKey(), 1); ClueData data = ClueData.builder() .name(personal.getName()) .id(personal.getId().toString()) @@ -529,28 +539,38 @@ public class PointServiceImpl implements PointService { Map oldMap = domain.getOldMap(task.getModelId(), true); Map idCode = new HashMap<>(); - List list = new ArrayList<>(); + List list = new ArrayList<>(); log.info("模型120开始查询"); - List wdpcHZCRYXXS = hZCRYXXRepository.list(new LambdaQueryWrapper().select(WdpcHZCRYXX::getIdCode)); + List mother = cSCZRKRepository.getBaseMapper().selectMother(); + log.info("模型120查询mother结果数:{}", mother.size()); + Map> motherMap = mother.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm, + Collectors.mapping(GBaseCSCZRK::getMotherId, Collectors.toList()))); + List motherList = mother.stream().map(GBaseCSCZRK::getMotherId).toList(); // 切割 每次查10000条 - List> wdpcHZCRYXXSParts = IntStream.range(0, (wdpcHZCRYXXS.size() + 9999) / 10000) - .mapToObj(i -> wdpcHZCRYXXS.subList(i * 10000, Math.min((i + 1) * 10000, wdpcHZCRYXXS.size()))) + List> motherListParts = IntStream.range(0, (motherList.size() + 9999) / 10000) + .mapToObj(i -> motherList.subList(i * 10000, Math.min((i + 1) * 10000, motherList.size()))) .toList(); - - for (List wdpcHZCRYXXSPart : wdpcHZCRYXXSParts) { - List ids = wdpcHZCRYXXSPart.stream().map(WdpcHZCRYXX::getIdCode).toList(); - list.addAll(cSCZRKRepository.getBaseMapper().selectMotherDiePeople(ids)); + for (List motherListPart : motherListParts) { + list.addAll(hZCRYXXRepository.getBaseMapper().selectHZCPeople(motherListPart)); } log.info("模型120查询结果数:{}", 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()); + for (Map.Entry> entry : motherMap.entrySet()) { + boolean contains = false; + for (String motherId : entry.getValue()) { + if (list.contains(motherId)) { + contains = true; + break; + } + } + if (!contains) continue; + RiskPersonal personal = personalMap.get(entry.getKey()); if (personal == null) continue; - if (idCode.get(domicileType.getGmsfhm()) != null) continue; - if (oldMap.get(domicileType.getGmsfhm()) != null) continue; + if (idCode.get(entry.getKey()) != null) continue; + if (oldMap.get(entry.getKey()) != null) continue; - idCode.put(domicileType.getGmsfhm(), 1); + idCode.put(entry.getKey(), 1); ClueData data = ClueData.builder() .name(personal.getName()) .id(personal.getId().toString()) @@ -1351,28 +1371,38 @@ public class PointServiceImpl implements PointService { Map oldMap = domain.getOldMap(task.getModelId(), true); Map idCode = new HashMap<>(); - List list = new ArrayList<>(); + List list = new ArrayList<>(); log.info("模型118开始查询"); - List wdpcHZCRYXXS = hZCRYXXRepository.list(new LambdaQueryWrapper().select(WdpcHZCRYXX::getIdCode)); + List familyPeople = cSCZRKRepository.getBaseMapper().selectFamilyPeople(); + log.info("模型118查询familyPeople结果数:{}", familyPeople.size()); + Map> familyMap = familyPeople.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm, + Collectors.mapping(GBaseCSCZRK::getFamilyId, Collectors.toList()))); + List familyList = familyPeople.stream().map(GBaseCSCZRK::getFamilyId).toList(); // 切割 每次查10000条 - List> wdpcHZCRYXXSParts = IntStream.range(0, (wdpcHZCRYXXS.size() + 9999) / 10000) - .mapToObj(i -> wdpcHZCRYXXS.subList(i * 10000, Math.min((i + 1) * 10000, wdpcHZCRYXXS.size()))) + List> familyListParts = IntStream.range(0, (familyList.size() + 9999) / 10000) + .mapToObj(i -> familyList.subList(i * 10000, Math.min((i + 1) * 10000, familyList.size()))) .toList(); - - for (List wdpcHZCRYXXSPart : wdpcHZCRYXXSParts) { - List ids = wdpcHZCRYXXSPart.stream().map(WdpcHZCRYXX::getIdCode).toList(); - list.addAll(cSCZRKRepository.getBaseMapper().selectFamilyDiePeople(ids)); + for (List familyListPart : familyListParts) { + list.addAll(hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyListPart)); } 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()); + for (Map.Entry> entry : familyMap.entrySet()) { + boolean contains = false; + for (String familyId : entry.getValue()) { + if (list.contains(familyId)) { + contains = true; + break; + } + } + if (!contains) continue; + RiskPersonal personal = personalMap.get(entry.getKey()); if (personal == null) continue; - if (idCode.get(domicileType.getGmsfhm()) != null) continue; - if (oldMap.get(domicileType.getGmsfhm()) != null) continue; + if (idCode.get(entry.getKey()) != null) continue; + if (oldMap.get(entry.getKey()) != null) continue; - idCode.put(domicileType.getGmsfhm(), 1); + idCode.put(entry.getKey(), 1); ClueData data = ClueData.builder() .name(personal.getName()) .id(personal.getId().toString())