Browse Source

Merge remote-tracking branch 'origin/master'

master
kami 1 year ago
parent
commit
da3d6c120d
  1. 5
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 42
      src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java
  3. 12
      src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcHZCRYXXMapper.java
  4. 30
      src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcHZCRYXX.java
  5. 15
      src/main/java/com/biutag/supervisiondata/repository/WdpcHZCRYXXRepository.java
  6. 6
      src/main/java/com/biutag/supervisiondata/service/PointService.java
  7. 120
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

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

@ -146,8 +146,9 @@ public class ApplicationEvent {
// pointService.syncCriminalPunishment(initDomain(List.of(115)));
// pointService.syncAdministrativePunishment(initDomain(List.of(116)));
// pointService.syncParentsDivorce(initDomain(List.of(117)));
pointService.syncFamilyDie(initDomain(List.of(118))); // 未完成
pointService.syncFamilyDie(initDomain(List.of(118)));
pointService.syncFatherDie(initDomain(List.of(119)));
pointService.syncMotherDie(initDomain(List.of(120)));
// *********暂时不要**********
// riskTaskService.heightFight(initDomain(List.of(42)));

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

@ -2,6 +2,7 @@ package com.biutag.supervisiondata.mapper.dwd;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseCSCZRK;
import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcHZCRYXX;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@ -37,4 +38,45 @@ public interface GBaseCSCZRKMapper extends BaseMapper<GBaseCSCZRK> {
+ "</foreach>"
+ "</script>")
List<GBaseCSCZRK> selectParentsDivorce(List<String> idNos);
// 亲近家人死亡
@Select("<script>"
+ "select distinct gmsfhm from dwd_ry_kxgxzyk_csczrk where gmsfhm not in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ " and (fqgmsfzhm is null or fqgmsfzhm not in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ ") and (mqgmsfzhm is null or mqgmsfzhm not in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ ") and hh in ("
+ "SELECT distinct hh FROM dwd_ry_kxgxzyk_csczrk WHERE hh is not null and gmsfhm IN "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ ")"
+ "</script>")
List<GBaseCSCZRK> selectFamilyDiePeople(List<WdpcHZCRYXX> part);
// 父亲是否健在
@Select("<script>"
+ "select distinct gmsfhm from dwd_ry_kxgxzyk_csczrk where fqgmsfzhm in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ "</script>")
List<GBaseCSCZRK> selectFatherDiePeople(List<WdpcHZCRYXX> part);
// 母亲是否健在
@Select("<script>"
+ "select distinct gmsfhm from dwd_ry_kxgxzyk_csczrk where mqgmsfzhm in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ "</script>")
List<GBaseCSCZRK> selectMotherDiePeople(List<WdpcHZCRYXX> part);
}

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

@ -0,0 +1,12 @@
package com.biutag.supervisiondata.mapper.wdpc2;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcHZCRYXX;
/**
* @author kami on 2024-12-06 10:23:13
* @version 0.0.1
* @since 1.8
*/
public interface WdpcHZCRYXXMapper extends BaseMapper<WdpcHZCRYXX> {
}

30
src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcHZCRYXX.java

@ -0,0 +1,30 @@
package com.biutag.supervisiondata.pojo.entity.wdpc2;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* 火葬场人员信息
* @author kami on 2024-12-06 10:20:42
* @version 0.0.1
* @since 1.8
*/
@Data
@TableName("`wdpc_grjd_hzcryxx`")
public class WdpcHZCRYXX implements Serializable {
/**
* 名称
*/
@TableField("`name`")
String name;
/**
* 身份证号码
*/
@TableField("`id_code`")
String idCode;
}

15
src/main/java/com/biutag/supervisiondata/repository/WdpcHZCRYXXRepository.java

@ -0,0 +1,15 @@
package com.biutag.supervisiondata.repository;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervisiondata.mapper.wdpc2.WdpcHZCRYXXMapper;
import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcHZCRYXX;
import org.springframework.stereotype.Service;
/**
* @author kami on 2024-12-04 16:18:26
* @version 0.0.1
* @since 1.8
*/
@Service
public class WdpcHZCRYXXRepository extends ServiceImpl<WdpcHZCRYXXMapper, WdpcHZCRYXX> {
}

6
src/main/java/com/biutag/supervisiondata/service/PointService.java

@ -66,4 +66,10 @@ public interface PointService {
// 亲近家人死亡
void syncFamilyDie(TaskParamDomain domain);
// 父亲是否健在
void syncFatherDie(TaskParamDomain domain);
// 母亲是否健在
void syncMotherDie(TaskParamDomain domain);
}

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

@ -14,12 +14,13 @@ import com.biutag.supervisiondata.pojo.domain.*;
import com.biutag.supervisiondata.pojo.entity.dwd.*;
import com.biutag.supervisiondata.pojo.entity.mine.*;
import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdXfsj;
import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcHZCRYXX;
import com.biutag.supervisiondata.repository.*;
import com.biutag.supervisiondata.service.PointService;
import com.biutag.supervisiondata.service.RiskModelTaskClueService;
import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.util.IdCodeUtil;
import com.biutag.supervisiondata.util.BhUtil;
import com.biutag.supervisiondata.util.IdCodeUtil;
import com.biutag.supervisiondata.util.PatternUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -30,10 +31,10 @@ import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* @author kami on 2024-11-15 18:04:18
@ -65,6 +66,8 @@ public class PointServiceImpl implements PointService {
private final GBaseGAXZCFJDSRepository gAXZCFJDSRepository;
private final WdpcHZCRYXXRepository hZCRYXXRepository;
@Override
public void personPullAndSave(LocalDateTime start, LocalDateTime end) {
riskPersonalService.formatAndSave(getPersons(), Default.POINT_POEPLE);
@ -365,9 +368,108 @@ public class PointServiceImpl implements PointService {
taskRepository.updateById(updateTask);
}
@Override
public void syncFatherDie(TaskParamDomain domain) {
RiskTask task = createTask(domain.getPersons().size(), 119);
taskRepository.save(task);
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, Integer> idCode = new HashMap<>();
List<GBaseCSCZRK> list = new ArrayList<>();
log.info("模型119开始查询");
List<WdpcHZCRYXX> wdpcHZCRYXXS = hZCRYXXRepository.list(new LambdaQueryWrapper<WdpcHZCRYXX>().select(WdpcHZCRYXX::getIdCode));
// 切割 每次查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())))
.toList();
for (List<WdpcHZCRYXX> wdpcHZCRYXXSPart : wdpcHZCRYXXSParts) {
list.addAll(cSCZRKRepository.getBaseMapper().selectFatherDiePeople(wdpcHZCRYXXSPart));
}
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());
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())
.tag("父亲是否健在")
.personId(personal.getId())
.sourceData("发现该人员父亲死亡,增加风险分5分")
.build();
toInsert.add(createClue(task.getModelId(), 5, task.getId(), 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);
}
@Override
public void syncMotherDie(TaskParamDomain domain) {
RiskTask task = createTask(domain.getPersons().size(), 120);
taskRepository.save(task);
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, Integer> idCode = new HashMap<>();
List<GBaseCSCZRK> list = new ArrayList<>();
log.info("模型120开始查询");
List<WdpcHZCRYXX> wdpcHZCRYXXS = hZCRYXXRepository.list(new LambdaQueryWrapper<WdpcHZCRYXX>().select(WdpcHZCRYXX::getIdCode));
// 切割 每次查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())))
.toList();
for (List<WdpcHZCRYXX> wdpcHZCRYXXSPart : wdpcHZCRYXXSParts) {
list.addAll(cSCZRKRepository.getBaseMapper().selectMotherDiePeople(wdpcHZCRYXXSPart));
}
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());
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())
.tag("母亲是否健在")
.personId(personal.getId())
.sourceData("发现该人员母亲死亡,增加风险分5分")
.build();
toInsert.add(createClue(task.getModelId(), 5, task.getId(), 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);
}
@Override
public void syncFamilyDie(TaskParamDomain domain) {
/*
RiskTask task = createTask(domain.getPersons().size(), 118);
taskRepository.save(task);
@ -375,8 +477,14 @@ public class PointServiceImpl implements PointService {
Map<String, Integer> idCode = new HashMap<>();
List<GBaseCSCZRK> list = new ArrayList<>();
log.info("模型118开始查询");
for (List<String> idCard : domain.getIdCards()) {
// list.addAll(cSCZRKRepository.getBaseMapper().selectDomicileType(idCard));
List<WdpcHZCRYXX> wdpcHZCRYXXS = hZCRYXXRepository.list(new LambdaQueryWrapper<WdpcHZCRYXX>().select(WdpcHZCRYXX::getIdCode));
// 切割 每次查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())))
.toList();
for (List<WdpcHZCRYXX> wdpcHZCRYXXSPart : wdpcHZCRYXXSParts) {
list.addAll(cSCZRKRepository.getBaseMapper().selectFamilyDiePeople(wdpcHZCRYXXSPart));
}
log.info("模型118查询结果数:{}", list.size());
Map<String, RiskPersonal> personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal));
@ -408,7 +516,7 @@ public class PointServiceImpl implements PointService {
updateTask.setState(1);
updateTask.setEndTime(LocalDateTime.now());
taskRepository.updateById(updateTask);
*/
}
@Override

Loading…
Cancel
Save