diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index e13c885..d51a4ac 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -150,8 +150,8 @@ public class ApplicationEvent { // pointService.syncFatherEducation(initDomain(List.of(112))); // pointService.syncMotherEducation(initDomain(List.of(113))); // pointService.syncDomicileType(initDomain(List.of(114))); -// pointService.syncCriminalPunishment(initDomain(List.of(115))); -// pointService.syncAdministrativePunishment(initDomain(List.of(116))); + 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.syncFatherDie(initDomain(List.of(119))); @@ -159,10 +159,11 @@ public class ApplicationEvent { // pointService.syncChildNo(initDomain(List.of(121))); // pointService.syncXIDU(initDomain(List.of(122))); // pointService.syncFiliation(initDomain(List.of(123))); - // 必须在123后面 +// // 必须在123后面 // gBaseJJDService.syncOtherContradict(initDomain(List.of(75))); // // pointService.syncPetitionContent(initDomain(List.of(124))); + pointService.syncMedicalPressure(initDomain(List.of(125))); // *********暂时不要********** // riskTaskService.caseModelTask(initDomain(List.of(35))); @@ -170,7 +171,6 @@ public class ApplicationEvent { // pointService.syncKillSelf(initDomain(List.of(46))); // policeService.contradictModelTask(initDomain(List.of(38))); - }); } diff --git a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseGAXZCFJDSMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseGAXZCFJDSMapper.java index 832953c..2201241 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseGAXZCFJDSMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseGAXZCFJDSMapper.java @@ -12,6 +12,7 @@ import java.util.List; * @since 1.8 */ public interface GBaseGAXZCFJDSMapper extends BaseMapper { - @Select("select ajbh, ajmc, zjhm, cfms1 from dwd_wp_zfba_gaxzcfjds;") + @Select("select ajbh, ajmc, zjhm, cfms1, " + + "(SELECT COUNT(DISTINCT ajbh) FROM dwd_wp_zfba_gaxzcfjds AS sub WHERE sub.zjhm = main.zjhm) count_num from dwd_wp_zfba_gaxzcfjds main;") List selectAdministrativePunishment(); } diff --git a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseWFRWFXXMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseWFRWFXXMapper.java index 4b3c309..073338e 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseWFRWFXXMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseWFRWFXXMapper.java @@ -12,7 +12,12 @@ import java.util.List; * @since 1.8 */ public interface GBaseWFRWFXXMapper extends BaseMapper { - @Select("select a.ajbh, b.zjhm, b.ajmc, b.jysm, b.djrq from dwd_asj_zfba_ajjbxx a " + - "join dwd_asj_zfba_wfrwfxx b on a.ajbh = b.ajbh where ajbzdm = 1;") + @Select("select a.ajbh, b.zjhm, b.ajmc, b.jysm, b.djrq, " + + "(SELECT COUNT(DISTINCT a2.ajbh) FROM dwd_asj_zfba_ajjbxx a2 " + + "JOIN dwd_asj_zfba_wfrwfxx b2 ON a2.ajbh = b2.ajbh " + + "WHERE a2.zjhm = a.zjhm AND a2.ajbzdm = 1) count_num " + + "from dwd_asj_zfba_ajjbxx a " + + "join dwd_asj_zfba_wfrwfxx b on a.ajbh = b.ajbh " + + "where a.ajbzdm = 1;") List selectCriminalPunishment(); } diff --git a/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcYbxxMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcYbxxMapper.java new file mode 100644 index 0000000..7d2f50b --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcYbxxMapper.java @@ -0,0 +1,17 @@ +package com.biutag.supervisiondata.mapper.wdpc2; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcYbxx; +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 WdpcYbxxMapper extends BaseMapper { + @Select("select distinct id_code from wdpc_grjd_ybxx") + List selectMedicalPressure(); +} 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 ee3db83..0c707ef 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java @@ -132,4 +132,6 @@ public class Default { public static final String PETITIONCONTENT = "上访诉求内容"; + public static final String MEDICALPRESSURE = "医疗压力"; + } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseGAXZCFJDS.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseGAXZCFJDS.java index a70d0b4..af6dce3 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseGAXZCFJDS.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseGAXZCFJDS.java @@ -40,4 +40,7 @@ public class GBaseGAXZCFJDS implements Serializable { @TableField("cfms1") String cfms1; + // 数量 + @TableField("count_num") + Integer countNum; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseWFRWFXX.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseWFRWFXX.java index b101ed6..bde9c41 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseWFRWFXX.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseWFRWFXX.java @@ -46,4 +46,8 @@ public class GBaseWFRWFXX implements Serializable { @TableField("djrq") Date djrq; + // 数量 + @TableField("count_num") + Integer countNum; + } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcYbxx.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcYbxx.java new file mode 100644 index 0000000..cdd98d2 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcYbxx.java @@ -0,0 +1,28 @@ +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_ybxx`") +public class WdpcYbxx implements Serializable { + + /** + * 身份证号码 + */ + @TableField("`id_code`") + String idCode; + + @TableField("`name`") + String name; + +} diff --git a/src/main/java/com/biutag/supervisiondata/repository/WdpcYbxxRepository.java b/src/main/java/com/biutag/supervisiondata/repository/WdpcYbxxRepository.java new file mode 100644 index 0000000..b963af8 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/repository/WdpcYbxxRepository.java @@ -0,0 +1,16 @@ +package com.biutag.supervisiondata.repository; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervisiondata.mapper.wdpc2.WdpcYbxxMapper; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcYbxx; +import org.springframework.stereotype.Service; + +/** + * @author kami on 2024-12-06 10:25:23 + * @version 0.0.1 + * @since 1.8 + */ +@Service +public class WdpcYbxxRepository 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 ab69332..6003d38 100644 --- a/src/main/java/com/biutag/supervisiondata/service/PointService.java +++ b/src/main/java/com/biutag/supervisiondata/service/PointService.java @@ -107,4 +107,7 @@ public interface PointService { // 上访诉求内容 void syncPetitionContent(TaskParamDomain domain); + + // 医疗压力 + void syncMedicalPressure(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 b088a0f..0f0b460 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -78,6 +78,8 @@ public class PointServiceImpl implements PointService { private final WdpcXfsjCsDetailRepository xfsjCsDetailRepository; + private final WdpcYbxxRepository ybxxRepository; + @Override public void personPullAndSave(LocalDateTime start, LocalDateTime end) { riskPersonalService.formatAndSave(getPersons(), Default.POINT_POEPLE); @@ -330,6 +332,16 @@ public class PointServiceImpl implements PointService { if (oldMap.get(domicileType.getZjhm()) != null) continue; idCode.put(domicileType.getZjhm(), 1); + int score; + if (domicileType.getCountNum() > 5) { + score = 5; + } else { + score = domicileType.getCountNum(); + } + String context = ""; + if (domicileType.getCountNum() > 1) { + context = "其中一件"; + } ClueData data = ClueData.builder() .name(personal.getName()) .id(personal.getId().toString()) @@ -337,9 +349,9 @@ public class PointServiceImpl implements PointService { .tag("受到行政处罚") .eventTime(LocalDateTime.now()) .personId(personal.getId()) - .sourceData("发现该人员涉及案件“" + domicileType.getAjmc() + "”,案件编号:" + .sourceData("发现该人员涉及" + domicileType.getCountNum() + "起案件," + context + "为“" + domicileType.getAjmc() + "”,案件编号:" + domicileType.getAjbh() + ",处罚内容为“" + domicileType.getCfms1() - + "”。因受到行政处罚,增加风险分5分") + + "”。因受到" + domicileType.getCountNum() + "起行政处罚,增加风险分" + score + "分") .build(); toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } @@ -374,6 +386,18 @@ public class PointServiceImpl implements PointService { if (oldMap.get(domicileType.getZjhm()) != null) continue; idCode.put(domicileType.getZjhm(), 1); + int score; + String context = ""; + if (domicileType.getCountNum() > 5) { + score = 5; + } else { + score = domicileType.getCountNum(); + } + if (domicileType.getCountNum() > 1) { + context = "。除此案件外,该人员还有" + domicileType.getCountNum() + "个刑事处罚"; + } else { + context = "。因受到过1个刑事处罚"; + } ClueData data = ClueData.builder() .name(personal.getName()) .id(personal.getId().toString()) @@ -382,7 +406,7 @@ public class PointServiceImpl implements PointService { .eventTime(LocalDateTime.now()) .personId(personal.getId()) .sourceData("发现该人员" + domicileType.getJysm() + "案件编号:" + domicileType.getAjbh() - + ",因受到刑事处罚,增加风险分5分") + + context + ",增加风险分" + score + "分") .build(); toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } @@ -615,6 +639,46 @@ public class PointServiceImpl implements PointService { taskRepository.updateById(updateTask); } + @Override + public void syncMedicalPressure(TaskParamDomain domain) { + RiskTask task = createTask(domain.getPersons().size(), 125); + taskRepository.save(task); + + Map oldMap = domain.getOldMap(task.getModelId(), true); + Map idCode = new HashMap<>(); + log.info("模型125开始查询"); + List list = ybxxRepository.getBaseMapper().selectMedicalPressure(); + log.info("模型125查询结果数:{}", list.size()); + List persons = domain.getPersons(); + List toInsert = new ArrayList<>(); + for (RiskPersonal person : persons) { + if (list.contains(person.getIdCode())) continue; + if (oldMap.get(person.getIdCode()) != null) continue; + if (idCode.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("发现该人员近三年没有医保缴纳信息,存在医疗压力,增加风险分5分") + .build(); + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); + } + if (!toInsert.isEmpty()) { + modelTaskClueService.saveClues(toInsert, Default.MEDICALPRESSURE); + } + 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 syncPetitionContent(TaskParamDomain domain) { RiskTask task = createTask(domain.getPersons().size(), 124);