diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index c7e073c..9a192bc 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -143,15 +143,15 @@ public class ApplicationEvent { // pointService.syncIsPetition(initDomain(List.of(111))); // pointService.syncFatherEducation(initDomain(List.of(112))); // pointService.syncMotherEducation(initDomain(List.of(113))); -// pointService.syncDomicileType(initDomain(List.of(114))); + pointService.syncDomicileType(initDomain(List.of(114))); 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))); pointService.syncMotherDie(initDomain(List.of(120))); - -// pointService.syncChildrenNo(initDomain(List.of(120)));// 未完成 + pointService.syncChildNo(initDomain(List.of(121))); + pointService.syncXIDU(initDomain(List.of(122))); // *********暂时不要********** // riskTaskService.caseModelTask(initDomain(List.of(35))); diff --git a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java index 9c030c6..2204e12 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java @@ -79,4 +79,23 @@ public interface GBaseCSCZRKMapper extends BaseMapper { + "" + "") List selectMotherDiePeople(List part); + + // 行为人子女数 + @Select("") + List selectChildNo(List idNos); } 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 ebcc27a..4b3c309 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,7 @@ import java.util.List; * @since 1.8 */ public interface GBaseWFRWFXXMapper extends BaseMapper { - @Select("select a.ajbh, b.zjhm, b.ajmc, b.yjsm, b.djrq from dwd_asj_zfba_ajjbxx a " + + @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;") List selectCriminalPunishment(); } diff --git a/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcXdryMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcXdryMapper.java new file mode 100644 index 0000000..a5c5e28 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcXdryMapper.java @@ -0,0 +1,23 @@ +package com.biutag.supervisiondata.mapper.wdpc2; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcXdry; +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 WdpcXdryMapper extends BaseMapper { + @Select("") + List selectXIDU(List idCard); +} 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 dafba47..5adbc6a 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java @@ -124,5 +124,8 @@ public class Default { public static final String MOTHERDIE = "母亲是否健在"; + public static final String CHILDNO = "行为人子女数"; + + public static final String DRUG = "吸食毒品"; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseCSCZRK.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseCSCZRK.java index dfe5484..e7e9973 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseCSCZRK.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseCSCZRK.java @@ -84,4 +84,8 @@ public class GBaseCSCZRK implements Serializable { @TableField(exist = false) String motherEducation; + + // 打分(通用SQL计算结果) + @TableField("score") + Integer score; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcXdry.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcXdry.java new file mode 100644 index 0000000..1f59219 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcXdry.java @@ -0,0 +1,51 @@ +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_xdry`") +public class WdpcXdry implements Serializable { + // 身份证 + @TableField("sfzh") + String sfzh; + + // 姓名 + @TableField("xm") + String xm; + + // 服刑单位 + @TableField("fxdw_dwmc") + String fxdwDwmc; + + // 服刑结束日期 + @TableField("fxjsrq") + String fxjsrq; + + // 服刑起止日期 + @TableField("fxqsrq") + String fxqsrq; + + // 查获单位 + @TableField("chdw_dwmc") + String chdwDwmc; + + // 管控现状 + @TableField("gkxz_mc") + String gkxzMc; + + // 拘留所名称 + @TableField("jlsmc") + String jlsmc; + + // 入所日期 + @TableField("rsrq") + String rsrq; + + // 出所日期 + @TableField("csrq") + String csrq; +} diff --git a/src/main/java/com/biutag/supervisiondata/repository/WdpcXdryRepository.java b/src/main/java/com/biutag/supervisiondata/repository/WdpcXdryRepository.java new file mode 100644 index 0000000..f59993e --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/repository/WdpcXdryRepository.java @@ -0,0 +1,15 @@ +package com.biutag.supervisiondata.repository; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervisiondata.mapper.wdpc2.WdpcXdryMapper; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcXdry; +import org.springframework.stereotype.Service; + +/** + * @author kami on 2024-12-04 16:18:26 + * @version 0.0.1 + * @since 1.8 + */ +@Service +public class WdpcXdryRepository 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 6c417fe..4bd55cf 100644 --- a/src/main/java/com/biutag/supervisiondata/service/PointService.java +++ b/src/main/java/com/biutag/supervisiondata/service/PointService.java @@ -95,4 +95,10 @@ public interface PointService { // 母亲是否健在 void syncMotherDie(TaskParamDomain domain); + + // 行为人子女数 + void syncChildNo(TaskParamDomain domain); + + // 吸食毒品 + void syncXIDU(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 f54d73f..56da328 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -16,6 +16,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.WdpcXdry; import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.service.PointService; import com.biutag.supervisiondata.service.RiskModelTaskClueService; @@ -69,6 +70,8 @@ public class PointServiceImpl implements PointService { private final WdpcHZCRYXXRepository hZCRYXXRepository; + private final WdpcXdryRepository xdryRepository; + @Override public void personPullAndSave(LocalDateTime start, LocalDateTime end) { riskPersonalService.formatAndSave(getPersons(), Default.POINT_POEPLE); @@ -306,6 +309,7 @@ public class PointServiceImpl implements PointService { Map oldMap = domain.getOldMap(task.getModelId(), true); Map idCode = new HashMap<>(); + log.info("模型116开始查询"); List list = gAXZCFJDSRepository.getBaseMapper().selectAdministrativePunishment(); log.info("模型116查询结果数:{}", list.size()); Map personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal)); @@ -322,6 +326,7 @@ public class PointServiceImpl implements PointService { .id(personal.getId().toString()) .idCode(personal.getIdCode()) .tag("受到行政处罚") + .eventTime(LocalDateTime.now()) .personId(personal.getId()) .sourceData("发现该人员涉及案件“" + domicileType.getAjmc() + "”,案件编号:" + domicileType.getAjbh() + ",处罚内容为“" + domicileType.getCfms1() @@ -348,6 +353,7 @@ public class PointServiceImpl implements PointService { Map oldMap = domain.getOldMap(task.getModelId(), true); Map idCode = new HashMap<>(); + log.info("模型115开始查询"); List list = wFRWFXXRepository.getBaseMapper().selectCriminalPunishment(); log.info("模型115查询结果数:{}", list.size()); Map personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal)); @@ -364,6 +370,7 @@ public class PointServiceImpl implements PointService { .id(personal.getId().toString()) .idCode(personal.getIdCode()) .tag("受到刑事处罚") + .eventTime(LocalDateTime.now()) .personId(personal.getId()) .sourceData("发现该人员" + domicileType.getJysm() + "案件编号:" + domicileType.getAjbh() + ",因受到刑事处罚,增加风险分5分") @@ -409,6 +416,7 @@ public class PointServiceImpl implements PointService { .id(personal.getId().toString()) .idCode(personal.getIdCode()) .tag("父母婚姻变故") + .eventTime(LocalDateTime.now()) .personId(personal.getId()) .sourceData("发现该人员父母离婚,增加风险分5分") .build(); @@ -459,6 +467,7 @@ public class PointServiceImpl implements PointService { .id(personal.getId().toString()) .idCode(personal.getIdCode()) .tag("父亲是否健在") + .eventTime(LocalDateTime.now()) .personId(personal.getId()) .sourceData("发现该人员父亲死亡,增加风险分5分") .build(); @@ -509,6 +518,7 @@ public class PointServiceImpl implements PointService { .id(personal.getId().toString()) .idCode(personal.getIdCode()) .tag("母亲是否健在") + .eventTime(LocalDateTime.now()) .personId(personal.getId()) .sourceData("发现该人员母亲死亡,增加风险分5分") .build(); @@ -526,6 +536,129 @@ public class PointServiceImpl implements PointService { taskRepository.updateById(updateTask); } + @Override + public void syncXIDU(TaskParamDomain domain) { + RiskTask task = createTask(domain.getPersons().size(), 122); + taskRepository.save(task); + + Map oldMap = domain.getOldMap(task.getModelId(), true); + Map idCode = new HashMap<>(); + List list = new ArrayList<>(); + log.info("模型122开始查询"); + for (List idCard : domain.getIdCards()) { + list.addAll(xdryRepository.getBaseMapper().selectXIDU(idCard)); + } + log.info("模型122查询结果数:{}", list.size()); + Map personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal)); + List toInsert = new ArrayList<>(); + for (WdpcXdry domicileType : list) { + RiskPersonal personal = personalMap.get(domicileType.getSfzh()); + if (personal == null) continue; + if (idCode.get(domicileType.getSfzh()) != null) continue; + if (oldMap.get(domicileType.getSfzh()) != null) continue; + + idCode.put(domicileType.getSfzh(), 1); + String dataString = ""; + if (domicileType.getFxdwDwmc() != null) { + dataString = dataString + ",且在" + domicileType.getFxdwDwmc() + "服刑"; + } + if (domicileType.getFxqsrq() != null) { + dataString = dataString + ",服刑起始日期为" + getDateString(domicileType.getFxqsrq()); + } + if (domicileType.getFxjsrq() != null) { + dataString = dataString + ",服刑结束日期为" + getDateString(domicileType.getFxjsrq()); + } + if (domicileType.getChdwDwmc() != null) { + dataString = dataString + ",查获单位为" + domicileType.getChdwDwmc(); + } + if (domicileType.getGkxzMc() != null) { + dataString = dataString + ",管控现状为" + domicileType.getGkxzMc(); + } + if (domicileType.getJlsmc() != null && (domicileType.getRsrq() != null)) { + dataString = dataString + ",于" + getDateString(domicileType.getRsrq()) + "进入" + domicileType.getJlsmc(); + if (domicileType.getCsrq() != null) { + dataString = dataString + "," + getDateString(domicileType.getRsrq()) + "出所"; + } + } + ClueData data = ClueData.builder() + .name(personal.getName()) + .id(personal.getId().toString()) + .idCode(personal.getIdCode()) + .tag("吸食毒品") + .eventTime(LocalDateTime.now()) + .personId(personal.getId()) + .sourceData("发现该人员吸食毒品" + dataString + "增加风险分5分") + .build(); + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); + } + if (!toInsert.isEmpty()) { + modelTaskClueService.saveClues(toInsert, Default.DRUG); + } + 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 syncChildNo(TaskParamDomain domain) { + RiskTask task = createTask(domain.getPersons().size(), 121); + taskRepository.save(task); + + Map oldMap = domain.getOldMap(task.getModelId(), true); + Map idCode = new HashMap<>(); + List list = new ArrayList<>(); + log.info("模型121开始查询"); + for (List idCard : domain.getIdCards()) { + list.addAll(cSCZRKRepository.getBaseMapper().selectChildNo(idCard)); + } + log.info("模型121查询结果数:{}", list.size()); + Map personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal)); + List 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); + if (domicileType.getScore() == 0){ + continue; + } + int realScore = 0; + if (domicileType.getScore() == 1) { + realScore = 1; + } else if (domicileType.getScore() == 2 || domicileType.getScore() == 3) { + realScore = 3; + } else if (domicileType.getScore() > 3) { + realScore = 5; + } + ClueData data = ClueData.builder() + .name(personal.getName()) + .id(personal.getId().toString()) + .idCode(personal.getIdCode()) + .tag("行为人子女数") + .eventTime(LocalDateTime.now()) + .personId(personal.getId()) + .sourceData("发现该人员子女数为" + domicileType.getScore() + ",增加风险分" + realScore + "分") + .build(); + toInsert.add(createClue(task.getModelId(), realScore, task.getId(), data)); + } + if (!toInsert.isEmpty()) { + modelTaskClueService.saveClues(toInsert, Default.CHILDNO); + } + 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); @@ -559,6 +692,7 @@ public class PointServiceImpl implements PointService { .id(personal.getId().toString()) .idCode(personal.getIdCode()) .tag("亲近家人死亡") + .eventTime(LocalDateTime.now()) .personId(personal.getId()) .sourceData("发现该人员亲近家人死亡,增加风险分5分") .build(); @@ -574,7 +708,6 @@ public class PointServiceImpl implements PointService { updateTask.setState(1); updateTask.setEndTime(LocalDateTime.now()); taskRepository.updateById(updateTask); - } @Override @@ -609,8 +742,9 @@ public class PointServiceImpl implements PointService { .id(personal.getId().toString()) .idCode(personal.getIdCode()) .tag("户籍类型") + .eventTime(LocalDateTime.now()) .personId(personal.getId()) - .sourceData("发现该人员户籍类型为" + domicileType.getGmsfhm() + ",增加风险分5分") + .sourceData("发现该人员户籍类型为" + domicileType.getHlxmc() + ",增加风险分5分") .build(); toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } @@ -650,6 +784,7 @@ public class PointServiceImpl implements PointService { .id(personal.getId().toString()) .idCode(personal.getIdCode()) .tag("父亲文化程度") + .eventTime(LocalDateTime.now()) .personId(personal.getId()) .sourceData("发现该人员父亲文化程度为" + fatherEducation.getFatherEducation() + ",增加风险分" + eduScore + "分") .build(); @@ -691,6 +826,7 @@ public class PointServiceImpl implements PointService { .id(personal.getId().toString()) .idCode(personal.getIdCode()) .tag("母亲文化程度") + .eventTime(LocalDateTime.now()) .personId(personal.getId()) .sourceData("发现该人员母亲文化程度为" + motherEducation.getMotherEducation() + ",增加风险分" + eduScore + "分") .build(); @@ -752,6 +888,7 @@ public class PointServiceImpl implements PointService { .id(personal.getId().toString()) .idCode(personal.getIdCode()) .tag("上访人员") + .eventTime(LocalDateTime.now()) .personId(personal.getId()) .sourceData("发现该人员有过上访经历,增加风险分5分") .build(); @@ -1380,4 +1517,20 @@ public class PointServiceImpl implements PointService { return org; } + private static String getDateString(String dateString) { + if (dateString != null) { + try { + LocalDateTime localDateTime = LocalDateTime.parse(dateString, DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); + return localDateTime.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")); + } catch (Exception e) { + try { + LocalDateTime localDateTime = LocalDateTime.parse(dateString, DateTimeFormatter.ofPattern("yyyyMMdd")); + return localDateTime.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")); + } catch (Exception ex) { + log.error("日期转换异常{}", dateString, ex); + } + } + } + return " 无时间数据 "; + } }