Browse Source

Merge remote-tracking branch 'origin/master'

master
kami 1 year ago
parent
commit
20b1f10714
  1. 6
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 19
      src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseCSCZRKMapper.java
  3. 2
      src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseWFRWFXXMapper.java
  4. 23
      src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcXdryMapper.java
  5. 3
      src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java
  6. 4
      src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseCSCZRK.java
  7. 51
      src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcXdry.java
  8. 15
      src/main/java/com/biutag/supervisiondata/repository/WdpcXdryRepository.java
  9. 6
      src/main/java/com/biutag/supervisiondata/service/PointService.java
  10. 157
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

6
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)));

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

@ -79,4 +79,23 @@ public interface GBaseCSCZRKMapper extends BaseMapper<GBaseCSCZRK> {
+ "</foreach>"
+ "</script>")
List<GBaseCSCZRK> selectMotherDiePeople(List<WdpcHZCRYXX> part);
// 行为人子女数
@Select("<script>"
+ "SELECT c.gmsfhm, SUM(CASE WHEN c.mc1 = '子' AND c.m2 IN ('孙子','孙女') THEN 1 "
+ "WHEN c.mc1 = '女' AND c.m2 IN ('外孙子','外孙女') THEN 1 "
+ "WHEN c.mc1 IN ('户主','本人','妻','夫','配偶') AND c.m2 IN ('子','女','独生子','独生女','长子','次子','三子','四子','五子','二女','三女','四女','五女') THEN 1 "
+ "WHEN c.mc1 IN ('父亲','母亲') AND c.m2 IN ('户主','本人','兄','弟','姐姐','妹妹') THEN 1 "
+ "WHEN c.mc1 IN ('兄','弟') AND c.m2 IN ('侄女','侄子') THEN 1 "
+ "WHEN c.mc1 IN ('姐姐','妹妹') AND c.m2 IN ('外甥女','外甥') THEN 1 "
+ "WHEN c.mc1 IN ('独生女','长女','二女','儿媳') AND c.m2 IN ('外孙子','外孙女') THEN 1 "
+ "WHEN c.mc1 IN ('独生子','长子','次子','女婿') AND c.m2 IN ('孙子','孙女') THEN 1 "
+ "ELSE 0 END) AS score from "
+ "(SELECT a.gmsfhm, a.yhzgxmc mc1, b.yhzgxmc mc2 FROM dwd_ry_kxgxzyk_csczrk a JOIN dwd_ry_kxgxzyk_csczrk b ON a.hh = b.hh "
+ "WHERE a.gmsfhm != b.gmsfhm and a.gmsfhm IN "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach> ) c GROUP BY c.gmsfhm"
+ "</script>")
List<GBaseCSCZRK> selectChildNo(List<String> idNos);
}

2
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<GBaseWFRWFXX> {
@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<GBaseWFRWFXX> selectCriminalPunishment();
}

23
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<WdpcXdry> {
@Select("<script>"
+ "select sfzh, xm, fxdw_dwmc, fxjsrq, fxqsrq, chdw_dwmc, gkxz_mc, jlsmc, rsrq, csrq from wdpc_grjd_xdry "
+ "where (swrq is not null or swyy is not null) and sfzh in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ "</script>")
List<WdpcXdry> selectXIDU(List<String> idCard);
}

3
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 = "吸食毒品";
}

4
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;
}

51
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;
}

15
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<WdpcXdryMapper, WdpcXdry> {
}

6
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);
}

157
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<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, Integer> idCode = new HashMap<>();
log.info("模型116开始查询");
List<GBaseGAXZCFJDS> list = gAXZCFJDSRepository.getBaseMapper().selectAdministrativePunishment();
log.info("模型116查询结果数:{}", list.size());
Map<String, RiskPersonal> 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<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, Integer> idCode = new HashMap<>();
log.info("模型115开始查询");
List<GBaseWFRWFXX> list = wFRWFXXRepository.getBaseMapper().selectCriminalPunishment();
log.info("模型115查询结果数:{}", list.size());
Map<String, RiskPersonal> 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<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, Integer> idCode = new HashMap<>();
List<WdpcXdry> list = new ArrayList<>();
log.info("模型122开始查询");
for (List<String> idCard : domain.getIdCards()) {
list.addAll(xdryRepository.getBaseMapper().selectXIDU(idCard));
}
log.info("模型122查询结果数:{}", 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 (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<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, Integer> idCode = new HashMap<>();
List<GBaseCSCZRK> list = new ArrayList<>();
log.info("模型121开始查询");
for (List<String> idCard : domain.getIdCards()) {
list.addAll(cSCZRKRepository.getBaseMapper().selectChildNo(idCard));
}
log.info("模型121查询结果数:{}", 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);
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 " 无时间数据 ";
}
}

Loading…
Cancel
Save