Browse Source

Merge remote-tracking branch 'origin/master'

master
kami 1 year ago
parent
commit
ca5e9c559a
  1. 16
      src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java
  2. 8
      src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcHZCRYXXMapper.java
  3. 9
      src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseCSCZRK.java
  4. 2
      src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJJD.java
  5. 3
      src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJszxxb.java
  6. 108
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

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

@ -48,6 +48,22 @@ public interface GBaseCSCZRKMapper extends BaseMapper<GBaseCSCZRK> {
+ "</script>")
List<GBaseCSCZRK> selectFamilyDiePeople(List<String> 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<GBaseCSCZRK> 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<GBaseCSCZRK> 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<GBaseCSCZRK> selectMother();
// 父亲是否健在
@Select("<script>"
+ "select distinct gmsfhm from dwd_ry_kxgxzyk_csczrk where fqgmsfzhm in "

8
src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcHZCRYXXMapper.java

@ -19,4 +19,12 @@ public interface WdpcHZCRYXXMapper extends BaseMapper<WdpcHZCRYXX> {
*/
@Select(" select distinct id_code from wdpc_grjd_hzcryxx")
List<String> selectDistinctIdCodes();
@Select("<script>"
+ "select distinct id_code from wdpc_grjd_hzcryxx where id_code in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ "</script>")
List<String> selectHZCPeople(List<String> idNos);
}

9
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;
}

2
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;
}

3
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;

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

@ -477,28 +477,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("模型119开始查询");
List<WdpcHZCRYXX> wdpcHZCRYXXS = hZCRYXXRepository.list(new LambdaQueryWrapper<WdpcHZCRYXX>().select(WdpcHZCRYXX::getIdCode));
List<GBaseCSCZRK> father = cSCZRKRepository.getBaseMapper().selectFather();
log.info("模型119查询father结果数:{}", father.size());
Map<String, List<String>> fatherMap = father.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm,
Collectors.mapping(GBaseCSCZRK::getFatherId, Collectors.toList())));
List<String> fatherList = father.stream().map(GBaseCSCZRK::getFatherId).toList();
// 切割 每次查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<String>> fatherListParts = IntStream.range(0, (fatherList.size() + 9999) / 10000)
.mapToObj(i -> fatherList.subList(i * 10000, Math.min((i + 1) * 10000, fatherList.size())))
.toList();
for (List<WdpcHZCRYXX> wdpcHZCRYXXSPart : wdpcHZCRYXXSParts) {
List<String> ids = wdpcHZCRYXXSPart.stream().map(WdpcHZCRYXX::getIdCode).toList();
list.addAll(cSCZRKRepository.getBaseMapper().selectFatherDiePeople(ids));
for (List<String> fatherListPart : fatherListParts) {
list.addAll(hZCRYXXRepository.getBaseMapper().selectHZCPeople(fatherListPart));
}
log.info("模型119查询结果数:{}", 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 (Map.Entry<String, List<String>> 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<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("模型120开始查询");
List<WdpcHZCRYXX> wdpcHZCRYXXS = hZCRYXXRepository.list(new LambdaQueryWrapper<WdpcHZCRYXX>().select(WdpcHZCRYXX::getIdCode));
List<GBaseCSCZRK> mother = cSCZRKRepository.getBaseMapper().selectMother();
log.info("模型120查询mother结果数:{}", mother.size());
Map<String, List<String>> motherMap = mother.stream().collect(Collectors.groupingBy(GBaseCSCZRK::getGmsfhm,
Collectors.mapping(GBaseCSCZRK::getMotherId, Collectors.toList())));
List<String> motherList = mother.stream().map(GBaseCSCZRK::getMotherId).toList();
// 切割 每次查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<String>> motherListParts = IntStream.range(0, (motherList.size() + 9999) / 10000)
.mapToObj(i -> motherList.subList(i * 10000, Math.min((i + 1) * 10000, motherList.size())))
.toList();
for (List<WdpcHZCRYXX> wdpcHZCRYXXSPart : wdpcHZCRYXXSParts) {
List<String> ids = wdpcHZCRYXXSPart.stream().map(WdpcHZCRYXX::getIdCode).toList();
list.addAll(cSCZRKRepository.getBaseMapper().selectMotherDiePeople(ids));
for (List<String> motherListPart : motherListParts) {
list.addAll(hZCRYXXRepository.getBaseMapper().selectHZCPeople(motherListPart));
}
log.info("模型120查询结果数:{}", 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 (Map.Entry<String, List<String>> 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<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> familyPeople = cSCZRKRepository.getBaseMapper().selectFamilyPeople();
log.info("模型118查询familyPeople结果数:{}", familyPeople.size());
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();
// 切割 每次查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<String>> familyListParts = IntStream.range(0, (familyList.size() + 9999) / 10000)
.mapToObj(i -> familyList.subList(i * 10000, Math.min((i + 1) * 10000, familyList.size())))
.toList();
for (List<WdpcHZCRYXX> wdpcHZCRYXXSPart : wdpcHZCRYXXSParts) {
List<String> ids = wdpcHZCRYXXSPart.stream().map(WdpcHZCRYXX::getIdCode).toList();
list.addAll(cSCZRKRepository.getBaseMapper().selectFamilyDiePeople(ids));
for (List<String> familyListPart : familyListParts) {
list.addAll(hZCRYXXRepository.getBaseMapper().selectHZCPeople(familyListPart));
}
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 (Map.Entry<String, List<String>> 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())

Loading…
Cancel
Save