Browse Source

Merge remote-tracking branch 'origin/master'

master
kami 1 year ago
parent
commit
51d9b646d6
  1. 1
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 15
      src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java
  3. 2
      src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java
  4. 3
      src/main/java/com/biutag/supervisiondata/service/PointService.java
  5. 53
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

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

@ -161,6 +161,7 @@ public class ApplicationEvent {
pointService.syncPetitionContent(initDomain(List.of(124))); pointService.syncPetitionContent(initDomain(List.of(124)));
pointService.syncMedicalPressure(initDomain(List.of(125))); pointService.syncMedicalPressure(initDomain(List.of(125)));
pointService.syncSeriousIllness(initDomain(List.of(126))); pointService.syncSeriousIllness(initDomain(List.of(126)));
pointService.syncFamilySeriousIllness(initDomain(List.of(127)));
// *********暂时不要********** // *********暂时不要**********
// riskTaskService.caseModelTask(initDomain(List.of(35))); // riskTaskService.caseModelTask(initDomain(List.of(35)));

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

@ -95,4 +95,19 @@ public interface GBaseCSCZRKMapper extends BaseMapper<GBaseCSCZRK> {
+ "</foreach> ) c GROUP BY c.gmsfhm" + "</foreach> ) c GROUP BY c.gmsfhm"
+ "</script>") + "</script>")
List<GBaseCSCZRK> selectChildNo(List<String> idNos); List<GBaseCSCZRK> selectChildNo(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 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> selectFamilySeriousIllness(List<String> part);
} }

2
src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java

@ -136,4 +136,6 @@ public class Default {
public static final String SERIOUSILLNESS = "本人患严重疾病"; public static final String SERIOUSILLNESS = "本人患严重疾病";
public static final String FAMILYSERIOUSILLNESS = "家人患严重疾病";
} }

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

@ -113,4 +113,7 @@ public interface PointService {
// 本人患严重疾病 // 本人患严重疾病
void syncSeriousIllness(TaskParamDomain domain); void syncSeriousIllness(TaskParamDomain domain);
// 家人患严重疾病
void syncFamilySeriousIllness(TaskParamDomain domain);
} }

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

@ -575,6 +575,59 @@ public class PointServiceImpl implements PointService {
taskRepository.updateById(updateTask); taskRepository.updateById(updateTask);
} }
@Override
public void syncFamilySeriousIllness(TaskParamDomain domain) {
RiskTask task = createTask(domain.getPersons().size(), 127);
taskRepository.save(task);
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, Integer> idCode = new HashMap<>();
log.info("模型127开始查询");
List<WdpcJZJLB> wdpcJZJLBList = jZJLBRepository.getBaseMapper().selectSeriousIllness();
// 切割 每次查10000条
List<List<WdpcJZJLB>> wdpcJZJLBParts = IntStream.range(0, (wdpcJZJLBList.size() + 9999) / 10000)
.mapToObj(i -> wdpcJZJLBList.subList(i * 10000, Math.min((i + 1) * 10000, wdpcJZJLBList.size())))
.toList();
List<GBaseCSCZRK> list = new ArrayList<>();
for (List<WdpcJZJLB> wdpcJZJLBPart : wdpcJZJLBParts) {
List<String> ids = wdpcJZJLBPart.stream().map(WdpcJZJLB::getIdCode).toList();
list.addAll(cSCZRKRepository.getBaseMapper().selectFamilySeriousIllness(ids));
}
log.info("模型127查询结果数:{}", 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("家人患严重疾病")
.eventTime(LocalDateTime.now())
.personId(personal.getId())
.sourceData("发现该人员的家人有重大疾病,增加风险分5分")
.build();
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data));
}
if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert, Default.FAMILYSERIOUSILLNESS);
}
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 @Override
public void syncSeriousIllness(TaskParamDomain domain) { public void syncSeriousIllness(TaskParamDomain domain) {
RiskTask task = createTask(domain.getPersons().size(), 126); RiskTask task = createTask(domain.getPersons().size(), 126);

Loading…
Cancel
Save