Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
master
kami 1 year ago
parent
commit
81570211e5
  1. 3
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 11
      src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcGrjdJsbryMapper.java
  3. 4
      src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcJZJLBMapper.java
  4. 22
      src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcSqjzryMapper.java
  5. 22
      src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcXmsfryMapper.java
  6. 4
      src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java
  7. 35
      src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcSqjzry.java
  8. 35
      src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcXmsfry.java
  9. 15
      src/main/java/com/biutag/supervisiondata/repository/WdpcSqjzryRepository.java
  10. 15
      src/main/java/com/biutag/supervisiondata/repository/WdpcXmsfryRepository.java
  11. 6
      src/main/java/com/biutag/supervisiondata/service/PointService.java
  12. 302
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

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

@ -161,7 +161,8 @@ public class ApplicationEvent {
// pointService.syncSeriousIllness(initDomain(List.of(126)));
// pointService.syncFamilySeriousIllness(initDomain(List.of(127)));
// pointService.syncPetitionDissatisfied(initDomain(List.of(128)));
pointService.syncIsSpecialPeople(initDomain(List.of(129)));
pointService.syncSpecialPeopleType(initDomain(List.of(130)));
// *********暂时不要**********
// riskTaskService.caseModelTask(initDomain(List.of(35)));
// riskTaskService.heightFight(initDomain(List.of(42)));

11
src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcGrjdJsbryMapper.java

@ -2,6 +2,9 @@ package com.biutag.supervisiondata.mapper.wdpc2;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcGrjdJsbry;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @author kami on 2024-12-06 10:23:13
@ -9,4 +12,12 @@ import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcGrjdJsbry;
* @since 1.8
*/
public interface WdpcGrjdJsbryMapper extends BaseMapper<WdpcGrjdJsbry> {
@Select("<script>"
+ "select id_code, actual_time, actual_id from wdpc_grjd_jsbry where id_code in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ "</script>")
List<WdpcGrjdJsbry> selectByIdNos(List<String> idNos);
}

4
src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcJZJLBMapper.java

@ -17,4 +17,8 @@ public interface WdpcJZJLBMapper extends BaseMapper<WdpcJZJLB> {
+ "or disease_name like '%精神病%' or disease_name like '%严重%' or disease_name like '%脑中风%' "
+ "or disease_name like '%急性心肌梗塞%' or (disease_name like '%脑损伤%' and '%重%'))")
List<WdpcJZJLB> selectSeriousIllness();
@Select("select id_code from wdpc_grjd_jzjlb "
+ "where (disease_name like '%艾滋%'")
List<WdpcJZJLB> selectForModel129();
}

22
src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcSqjzryMapper.java

@ -0,0 +1,22 @@
package com.biutag.supervisiondata.mapper.wdpc2;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcSqjzry;
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 WdpcSqjzryMapper extends BaseMapper<WdpcSqjzry> {
@Select("<script>"
+ "select id_code, sentence_organization_name, correct_end_time, correct_begin_time, action_place, crime_describe from wdpc_grjd_sqjzry where id_code in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ "</script>")
List<WdpcSqjzry> selectByIdNos(List<String> idNos);
}

22
src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcXmsfryMapper.java

@ -0,0 +1,22 @@
package com.biutag.supervisiondata.mapper.wdpc2;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcXmsfry;
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 WdpcXmsfryMapper extends BaseMapper<WdpcXmsfry> {
@Select("<script>"
+ "select id_code, crime_name, sentence_time, prison_begin, prison_end, prison_organization from wdpc_grjd_xmsfry where id_code in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ "</script>")
List<WdpcXmsfry> selectByIdNos(List<String> idNos);
}

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

@ -139,4 +139,8 @@ public class Default {
public static final String FAMILYSERIOUSILLNESS = "家人患严重疾病";
public static final String PETITIONDISSATISFIED = "上访是否满意解决";
public static final String ISSPECIALPEOPLE = "是否特殊人群";
public static final String SPECIALPEOPLETYPE = "特殊人群类型";
}

35
src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcSqjzry.java

@ -0,0 +1,35 @@
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_sqjzry`")
public class WdpcSqjzry implements Serializable {
// 身份证
@TableField("id_code")
String idCode;
// 社区矫正决定单位
@TableField("sentence_organization_name")
String sentenceOrganizationName;
// 社区矫正结束日期
@TableField("correct_end_time")
String correctEndTime;
// 社区矫正开始日期
@TableField("correct_begin_time")
String correctBeginTime;
// 执行地
@TableField("action_place")
String actionPlace;
// 主要犯罪事实
@TableField("crime_describe")
String crimeDescribe;
}

35
src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcXmsfry.java

@ -0,0 +1,35 @@
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_xmsfry`")
public class WdpcXmsfry implements Serializable {
// 身份证
@TableField("id_code")
String idCode;
// 罪名
@TableField("crime_name")
String crimeName;
// 判决日期
@TableField("sentence_time")
String sentenceTime;
// 服刑开始日期
@TableField("prison_begin")
String prisonBegin;
// 服刑结束日期
@TableField("prison_end")
String prisonEnd;
// 服刑单位
@TableField("prison_organization")
String prisonOrganization;
}

15
src/main/java/com/biutag/supervisiondata/repository/WdpcSqjzryRepository.java

@ -0,0 +1,15 @@
package com.biutag.supervisiondata.repository;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervisiondata.mapper.wdpc2.WdpcSqjzryMapper;
import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcSqjzry;
import org.springframework.stereotype.Service;
/**
* @author kami on 2024-12-03 16:48:30
* @version 0.0.1
* @since 1.8
*/
@Service
public class WdpcSqjzryRepository extends ServiceImpl<WdpcSqjzryMapper, WdpcSqjzry> {
}

15
src/main/java/com/biutag/supervisiondata/repository/WdpcXmsfryRepository.java

@ -0,0 +1,15 @@
package com.biutag.supervisiondata.repository;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervisiondata.mapper.wdpc2.WdpcXmsfryMapper;
import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcXmsfry;
import org.springframework.stereotype.Service;
/**
* @author kami on 2024-12-03 16:48:30
* @version 0.0.1
* @since 1.8
*/
@Service
public class WdpcXmsfryRepository extends ServiceImpl<WdpcXmsfryMapper, WdpcXmsfry> {
}

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

@ -119,4 +119,10 @@ public interface PointService {
// 上访是否满意解决
void syncPetitionDissatisfied(TaskParamDomain domain);
// 是否特殊人群
void syncIsSpecialPeople(TaskParamDomain domain);
// 特殊人群类型
void syncSpecialPeopleType(TaskParamDomain domain);
}

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

@ -16,10 +16,7 @@ import com.biutag.supervisiondata.pojo.entity.dwd.*;
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.pojo.entity.wdpc2.*;
import com.biutag.supervisiondata.repository.*;
import com.biutag.supervisiondata.service.PointService;
import com.biutag.supervisiondata.service.RiskModelTaskClueService;
@ -83,6 +80,12 @@ public class PointServiceImpl implements PointService {
private final WdpcJZJLBRepository jZJLBRepository;
private final WdpcGrjdJsbryRepository jsbryRepository;
private final WdpcSqjzryRepository sqjzryRepository;
private final WdpcXmsfryRepository xmsfryRepository;
@Override
public void personPullAndSave(LocalDateTime start, LocalDateTime end) {
riskPersonalService.formatAndSave(getPersons(), Default.POINT_POEPLE);
@ -670,6 +673,297 @@ public class PointServiceImpl implements PointService {
taskRepository.updateById(updateTask);
}
@Override
public void syncIsSpecialPeople(TaskParamDomain domain) {
RiskTask task = createTask(domain.getPersons().size(), 129);
taskRepository.save(task);
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, Integer> idCode = new HashMap<>();
log.info("模型129开始查询");
List<WdpcGrjdJsbry> list1 = new ArrayList<>();
List<WdpcJZJLB> list2 = jZJLBRepository.getBaseMapper().selectForModel129();;
List<WdpcXdry> list3 = new ArrayList<>();
List<WdpcSqjzry> list4 = new ArrayList<>();
List<WdpcXmsfry> list5 = new ArrayList<>();
for (List<String> idCard : domain.getIdCards()) {
list1.addAll(jsbryRepository.getBaseMapper().selectByIdNos(idCard));
list3.addAll(xdryRepository.getBaseMapper().selectXIDU(idCard));
list4.addAll(sqjzryRepository.getBaseMapper().selectByIdNos(idCard));
list5.addAll(xmsfryRepository.getBaseMapper().selectByIdNos(idCard));
}
log.info("模型129查询结果数:{},{},{},{},{}", list1.size(), list2.size(), list3.size(), list4.size(), list5.size());
Map<String, RiskPersonal> personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal));
List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (WdpcGrjdJsbry domicileType : list1) {
RiskPersonal personal = personalMap.get(domicileType.getIdCode());
if (personal == null) continue;
if (idCode.get(domicileType.getIdCode()) != null) continue;
if (oldMap.get(domicileType.getIdCode()) != null) continue;
idCode.put(domicileType.getIdCode(), 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));
}
for (WdpcJZJLB domicileType : list2) {
RiskPersonal personal = personalMap.get(domicileType.getIdCode());
if (personal == null) continue;
if (idCode.get(domicileType.getIdCode()) != null) continue;
if (oldMap.get(domicileType.getIdCode()) != null) continue;
idCode.put(domicileType.getIdCode(), 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));
}
for (WdpcXdry domicileType : list3) {
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);
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));
}
for (WdpcSqjzry domicileType : list4) {
RiskPersonal personal = personalMap.get(domicileType.getIdCode());
if (personal == null) continue;
if (idCode.get(domicileType.getIdCode()) != null) continue;
if (oldMap.get(domicileType.getIdCode()) != null) continue;
idCode.put(domicileType.getIdCode(), 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));
}
for (WdpcXmsfry domicileType : list5) {
RiskPersonal personal = personalMap.get(domicileType.getIdCode());
if (personal == null) continue;
if (idCode.get(domicileType.getIdCode()) != null) continue;
if (oldMap.get(domicileType.getIdCode()) != null) continue;
idCode.put(domicileType.getIdCode(), 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.ISSPECIALPEOPLE);
}
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 syncSpecialPeopleType(TaskParamDomain domain) {
RiskTask task = createTask(domain.getPersons().size(), 130);
taskRepository.save(task);
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, Integer> idCode = new HashMap<>();
log.info("模型130开始查询");
List<WdpcGrjdJsbry> list1 = new ArrayList<>();
List<WdpcJZJLB> list2 = jZJLBRepository.getBaseMapper().selectForModel129();;
List<WdpcXdry> list3 = new ArrayList<>();
List<WdpcSqjzry> list4 = new ArrayList<>();
List<WdpcXmsfry> list5 = new ArrayList<>();
for (List<String> idCard : domain.getIdCards()) {
list1.addAll(jsbryRepository.getBaseMapper().selectByIdNos(idCard));
list3.addAll(xdryRepository.getBaseMapper().selectXIDU(idCard));
list4.addAll(sqjzryRepository.getBaseMapper().selectByIdNos(idCard));
list5.addAll(xmsfryRepository.getBaseMapper().selectByIdNos(idCard));
}
log.info("模型130查询结果数:{},{},{},{},{}", list1.size(), list2.size(), list3.size(), list4.size(), list5.size());
Map<String, RiskPersonal> personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal));
List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (WdpcGrjdJsbry domicileType : list1) {
RiskPersonal personal = personalMap.get(domicileType.getIdCode());
if (personal == null) continue;
if (idCode.get(domicileType.getIdCode()) != null) continue;
if (oldMap.get(domicileType.getIdCode()) != null) continue;
idCode.put(domicileType.getIdCode(), 1);
ClueData data = ClueData.builder()
.name(personal.getName())
.id(personal.getId().toString())
.idCode(personal.getIdCode())
.tag("特殊人群类型")
.eventTime(LocalDateTime.now())
.personId(personal.getId())
.sourceData("发现该人员于" + getDateString(domicileType.getActualTime())
+ "确诊为为“" + domicileType.getActualId() + "”精神障碍患者,增加风险分1分")
.build();
toInsert.add(createClue(task.getModelId(), 1, task.getId(), data));
}
for (WdpcJZJLB domicileType : list2) {
RiskPersonal personal = personalMap.get(domicileType.getIdCode());
if (personal == null) continue;
if (idCode.get(domicileType.getIdCode()) != null) continue;
if (oldMap.get(domicileType.getIdCode()) != null) continue;
idCode.put(domicileType.getIdCode(), 1);
ClueData data = ClueData.builder()
.name(personal.getName())
.id(personal.getId().toString())
.idCode(personal.getIdCode())
.tag("特殊人群类型")
.eventTime(LocalDateTime.now())
.personId(personal.getId())
.sourceData("发现该人员为艾滋人员,增加风险分2分")
.build();
toInsert.add(createClue(task.getModelId(), 2, task.getId(), data));
}
for (WdpcXdry domicileType : list3) {
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);
ClueData data = ClueData.builder()
.name(personal.getName())
.id(personal.getId().toString())
.idCode(personal.getIdCode())
.tag("特殊人群类型")
.eventTime(LocalDateTime.now())
.personId(personal.getId())
.sourceData("发现该人员为吸毒人员,增加风险分3分")
.build();
toInsert.add(createClue(task.getModelId(), 3, task.getId(), data));
}
for (WdpcSqjzry domicileType : list4) {
RiskPersonal personal = personalMap.get(domicileType.getIdCode());
if (personal == null) continue;
if (idCode.get(domicileType.getIdCode()) != null) continue;
if (oldMap.get(domicileType.getIdCode()) != null) continue;
idCode.put(domicileType.getIdCode(), 1);
String context = "";
if (domicileType.getSentenceOrganizationName() != null) {
context = context + ",社区矫正决定单位为" + domicileType.getSentenceOrganizationName();
}
if (domicileType.getCorrectBeginTime() != null) {
context = context + ",社区矫正开始日期为" + getDateString(domicileType.getCorrectBeginTime());
}
if (domicileType.getCorrectEndTime() != null) {
context = context + ",社区矫正结束日期为" + getDateString(domicileType.getCorrectEndTime());
}
if (domicileType.getActionPlace() != null) {
context = context + ",执行地为" + domicileType.getActionPlace();
}
if (domicileType.getCrimeDescribe() != null) {
context = context + ",主要犯罪事实为“" + domicileType.getCrimeDescribe() + "”";
}
ClueData data = ClueData.builder()
.name(personal.getName())
.id(personal.getId().toString())
.idCode(personal.getIdCode())
.tag("特殊人群类型")
.eventTime(LocalDateTime.now())
.personId(personal.getId())
.sourceData("发现该人员为社区矫正人员" + context + ",增加风险分4分")
.build();
toInsert.add(createClue(task.getModelId(), 4, task.getId(), data));
}
for (WdpcXmsfry domicileType : list5) {
RiskPersonal personal = personalMap.get(domicileType.getIdCode());
if (personal == null) continue;
if (idCode.get(domicileType.getIdCode()) != null) continue;
if (oldMap.get(domicileType.getIdCode()) != null) continue;
idCode.put(domicileType.getIdCode(), 1);
String context = "";
if (domicileType.getCrimeName() != null) {
context = context + ",罪名为" + domicileType.getCrimeName();
}
if (domicileType.getSentenceTime() != null) {
context = context + ",判决日期为" + getDateString(domicileType.getSentenceTime());
}
if (domicileType.getPrisonBegin() != null) {
context = context + ",服刑开始日期为" + getDateString(domicileType.getPrisonBegin());
}
if (domicileType.getPrisonEnd() != null) {
context = context + ",服刑结束日期为" + getDateString(domicileType.getPrisonEnd());
}
if (domicileType.getPrisonOrganization() != null) {
context = context + ",服刑单位为" + domicileType.getPrisonOrganization();
}
ClueData data = ClueData.builder()
.name(personal.getName())
.id(personal.getId().toString())
.idCode(personal.getIdCode())
.tag("特殊人群类型")
.eventTime(LocalDateTime.now())
.personId(personal.getId())
.sourceData("发现该人员为刑释解教人员" + context + ",增加风险分5分")
.build();
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data));
}
if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert, Default.SPECIALPEOPLETYPE);
}
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);

Loading…
Cancel
Save