Browse Source

Merge remote-tracking branch 'origin/master'

master
kami 1 year ago
parent
commit
2745670779
  1. 1
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 50
      src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcXfsjCsDetailMapper.java
  3. 2
      src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java
  4. 31
      src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcXfsjCsDetail.java
  5. 15
      src/main/java/com/biutag/supervisiondata/repository/WdpcXfsjCsDetailRepository.java
  6. 3
      src/main/java/com/biutag/supervisiondata/service/PointService.java
  7. 94
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

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

@ -153,6 +153,7 @@ public class ApplicationEvent {
pointService.syncChildNo(initDomain(List.of(121)));
pointService.syncXIDU(initDomain(List.of(122)));
pointService.syncFiliation(initDomain(List.of(123)));
pointService.syncPetitionContent(initDomain(List.of(124)));
// *********暂时不要**********
// riskTaskService.caseModelTask(initDomain(List.of(35)));

50
src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcXfsjCsDetailMapper.java

@ -0,0 +1,50 @@
package com.biutag.supervisiondata.mapper.wdpc2;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcXfsjCsDetail;
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 WdpcXfsjCsDetailMapper extends BaseMapper<WdpcXfsjCsDetail> {
@Select("<script>"
+ "select id_code, count(id_code) count_num, detail from wdpc_grjd_xfsj_cs_detail "
+ "where (detail like '%退%' or detail like '%迁%' or detail like '%军%') "
+ "and (detail not like '%投诉%' and detail not like '%举报%' and detail not like '%不公%' and detail not like '%交房%') "
+ "and id_code in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ " group by id_code"
+ "</script>")
List<WdpcXfsjCsDetail> selectPetitionContent5(List<String> idNos);
@Select("<script>"
+ "select id_code, count(id_code) count_num, detail from wdpc_grjd_xfsj_cs_detail "
+ "where (detail like '%投诉%' or detail like '%举报%') "
+ "and (detail not like '%退%' and detail not like '%迁%' and detail not like '%军%' and detail not like '%不公%' and detail not like '%交房%') "
+ "and id_code in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ " group by id_code"
+ "</script>")
List<WdpcXfsjCsDetail> selectPetitionContent3(List<String> idNos);
@Select("<script>"
+ "select id_code, count(id_code) count_num, detail from wdpc_grjd_xfsj_cs_detail "
+ "where (detail like '%不公%' or detail like '%交房%') "
+ "and (detail not like '%退%' and detail not like '%迁%' and detail not like '%军%' and detail not like '%投诉%' and detail not like '%举报%') "
+ "and id_code in "
+ "<foreach item='item' index='index' collection='list' open='(' separator=',' close=')'>"
+ "#{item}"
+ "</foreach>"
+ " group by id_code"
+ "</script>")
List<WdpcXfsjCsDetail> selectPetitionContent2(List<String> idNos);
}

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

@ -130,4 +130,6 @@ public class Default {
public static final String FILIATION = "与子女关系";
public static final String PETITIONCONTENT = "上访诉求内容";
}

31
src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcXfsjCsDetail.java

@ -0,0 +1,31 @@
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_xfsj_cs_detail`")
public class WdpcXfsjCsDetail implements Serializable {
/**
* 身份证号码
*/
@TableField("`id_code`")
String idCode;
@TableField("`count_num`")
Integer countNum;
@TableField("`detail`")
String detail;
}

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

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

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

@ -104,4 +104,7 @@ public interface PointService {
// 与子女关系
void syncFiliation(TaskParamDomain domain);
// 上访诉求内容
void syncPetitionContent(TaskParamDomain domain);
}

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

@ -17,6 +17,7 @@ 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.pojo.entity.wdpc2.WdpcXfsjCsDetail;
import com.biutag.supervisiondata.repository.*;
import com.biutag.supervisiondata.service.PointService;
import com.biutag.supervisiondata.service.RiskModelTaskClueService;
@ -74,6 +75,8 @@ public class PointServiceImpl implements PointService {
private final GBaseJJDRepository jjdRepository;
private final WdpcXfsjCsDetailRepository xfsjCsDetailRepository;
@Override
public void personPullAndSave(LocalDateTime start, LocalDateTime end) {
riskPersonalService.formatAndSave(getPersons(), Default.POINT_POEPLE);
@ -605,6 +608,97 @@ public class PointServiceImpl implements PointService {
taskRepository.updateById(updateTask);
}
@Override
public void syncPetitionContent(TaskParamDomain domain) {
RiskTask task = createTask(domain.getPersons().size(), 124);
taskRepository.save(task);
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
Map<String, Integer> idCode = new HashMap<>();
List<WdpcXfsjCsDetail> list5 = new ArrayList<>();
List<WdpcXfsjCsDetail> list3 = new ArrayList<>();
List<WdpcXfsjCsDetail> list2 = new ArrayList<>();
log.info("模型124开始查询");
for (List<String> idCard : domain.getIdCards()) {
list5.addAll(xfsjCsDetailRepository.getBaseMapper().selectPetitionContent5(idCard));
list3.addAll(xfsjCsDetailRepository.getBaseMapper().selectPetitionContent3(idCard));
list2.addAll(xfsjCsDetailRepository.getBaseMapper().selectPetitionContent2(idCard));
}
log.info("模型124查询结果数:{}、{}、{}", list5.size(), list3.size(), list2.size());
Map<String, RiskPersonal> personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal));
List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (WdpcXfsjCsDetail 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("发现该人员上访过" + domicileType.getCountNum()
+ "次,上访内容为" + domicileType.getDetail()
+ ",为涉退、涉迁、涉军等重点管控群体,增加风险分5分")
.build();
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data));
}
for (WdpcXfsjCsDetail domicileType : list3) {
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("发现该人员上访过" + domicileType.getCountNum()
+ "次,上访内容为" + domicileType.getDetail()
+ ",为投诉、举报等诉求,增加风险分3分")
.build();
toInsert.add(createClue(task.getModelId(), 3, task.getId(), data));
}
for (WdpcXfsjCsDetail 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("发现该人员上访过" + domicileType.getCountNum()
+ "次,上访内容为" + domicileType.getDetail()
+ ",为待遇不公、房屋交房等诉求,增加风险分2分")
.build();
toInsert.add(createClue(task.getModelId(), 2, task.getId(), data));
}
if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert, Default.PETITIONCONTENT);
}
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 syncFiliation(TaskParamDomain domain) {
RiskTask task = createTask(domain.getPersons().size(), 123);

Loading…
Cancel
Save