diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index d51a4ac..8d38b12 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -164,6 +164,7 @@ public class ApplicationEvent { // // pointService.syncPetitionContent(initDomain(List.of(124))); pointService.syncMedicalPressure(initDomain(List.of(125))); + pointService.syncSeriousIllness(initDomain(List.of(126))); // *********暂时不要********** // riskTaskService.caseModelTask(initDomain(List.of(35))); diff --git a/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcJZJLBMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcJZJLBMapper.java new file mode 100644 index 0000000..75b7c95 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcJZJLBMapper.java @@ -0,0 +1,20 @@ +package com.biutag.supervisiondata.mapper.wdpc2; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcJZJLB; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * @author kami on 2024-12-06 10:23:13 + * @version 0.0.1 + * @since 1.8 + */ +public interface WdpcJZJLBMapper extends BaseMapper { + @Select("select id_code, disease_name from wdpc_grjd_jzjlb " + + "where (disease_name like '%恶性肿瘤%' or disease_name like '%移植%' or disease_name like '%帕金森%' " + + "or disease_name like '%精神病%' or disease_name like '%严重%' or disease_name like '%脑中风%' " + + "or disease_name like '%急性心肌梗塞%' or (disease_name like '%脑损伤%' and '%重%'))") + List selectSeriousIllness(); +} diff --git a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java index 0c707ef..30d6e3a 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java @@ -134,4 +134,6 @@ public class Default { public static final String MEDICALPRESSURE = "医疗压力"; + public static final String SERIOUSILLNESS = "本人患严重疾病"; + } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcJZJLB.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcJZJLB.java new file mode 100644 index 0000000..e23b325 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcJZJLB.java @@ -0,0 +1,24 @@ +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; + +@Data +@TableName("`wdpc_grjd_jzjlb`") +public class WdpcJZJLB implements Serializable { + // 身份证 + @TableField("id_code") + String idCode; + + // 姓名 + @TableField("name") + String name; + + // 诊断病名 + @TableField("disease_name") + String diseaseName; + +} diff --git a/src/main/java/com/biutag/supervisiondata/repository/WdpcJZJLBRepository.java b/src/main/java/com/biutag/supervisiondata/repository/WdpcJZJLBRepository.java new file mode 100644 index 0000000..6519011 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/repository/WdpcJZJLBRepository.java @@ -0,0 +1,15 @@ +package com.biutag.supervisiondata.repository; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervisiondata.mapper.wdpc2.WdpcJZJLBMapper; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcJZJLB; +import org.springframework.stereotype.Service; + +/** + * @author kami on 2024-12-04 16:18:26 + * @version 0.0.1 + * @since 1.8 + */ +@Service +public class WdpcJZJLBRepository extends ServiceImpl { +} diff --git a/src/main/java/com/biutag/supervisiondata/service/PointService.java b/src/main/java/com/biutag/supervisiondata/service/PointService.java index 6003d38..4125484 100644 --- a/src/main/java/com/biutag/supervisiondata/service/PointService.java +++ b/src/main/java/com/biutag/supervisiondata/service/PointService.java @@ -110,4 +110,7 @@ public interface PointService { // 医疗压力 void syncMedicalPressure(TaskParamDomain domain); + + // 本人患严重疾病 + void syncSeriousIllness(TaskParamDomain domain); } 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 0f0b460..9e1d27c 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -17,6 +17,7 @@ import com.biutag.supervisiondata.pojo.entity.mine.*; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdXfsj; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdZblx; import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcHZCRYXX; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcJZJLB; import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcXdry; import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcXfsjCsDetail; import com.biutag.supervisiondata.repository.*; @@ -80,6 +81,8 @@ public class PointServiceImpl implements PointService { private final WdpcYbxxRepository ybxxRepository; + private final WdpcJZJLBRepository jZJLBRepository; + @Override public void personPullAndSave(LocalDateTime start, LocalDateTime end) { riskPersonalService.formatAndSave(getPersons(), Default.POINT_POEPLE); @@ -572,6 +575,48 @@ public class PointServiceImpl implements PointService { taskRepository.updateById(updateTask); } + @Override + public void syncSeriousIllness(TaskParamDomain domain) { + RiskTask task = createTask(domain.getPersons().size(), 126); + taskRepository.save(task); + + Map oldMap = domain.getOldMap(task.getModelId(), true); + Map idCode = new HashMap<>(); + log.info("模型126开始查询"); + List list = jZJLBRepository.getBaseMapper().selectSeriousIllness(); + log.info("模型126查询结果数:{}", list.size()); + Map idMap = list.stream().collect(Collectors.toMap(WdpcJZJLB::getIdCode, Function.identity(), (old, newVal) -> newVal)); + List persons = domain.getPersons(); + List toInsert = new ArrayList<>(); + for (RiskPersonal person : persons) { + if (!idMap.containsKey(person.getIdCode())) continue; + if (idCode.get(person.getIdCode()) != null) continue; + if (oldMap.get(person.getIdCode()) != null) continue; + + idCode.put(person.getIdCode(), 1); + ClueData data = ClueData.builder() + .name(person.getName()) + .id(person.getId().toString()) + .idCode(person.getIdCode()) + .tag("本人患严重疾病") + .eventTime(LocalDateTime.now()) + .personId(person.getId()) + .sourceData("发现该人员有过就诊记录,诊断病名为“" + idMap.get(person.getIdCode()).getDiseaseName() + "”,该人员患严重疾病,增加风险分5分") + .build(); + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); + } + if (!toInsert.isEmpty()) { + modelTaskClueService.saveClues(toInsert, Default.SERIOUSILLNESS); + } + 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 syncXIDU(TaskParamDomain domain) { RiskTask task = createTask(domain.getPersons().size(), 122);