Browse Source

标签由入库改到赋分的时候标记

master
kami 1 year ago
parent
commit
04bdbd31e7
  1. 63
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 25
      src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java
  3. 2
      src/main/java/com/biutag/supervisiondata/service/RiskModelTaskClueService.java
  4. 2
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseBAServiceImpl.java
  5. 5
      src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java
  6. 3
      src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java
  7. 20
      src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java
  8. 2
      src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java
  9. 20
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java
  10. 12
      src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java
  11. 65
      src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java
  12. 20
      src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java

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

@ -98,39 +98,38 @@ public class ApplicationEvent {
public void serviceReady() { public void serviceReady() {
RedisDao.getInstance().init(redisTemplate); RedisDao.getInstance().init(redisTemplate);
// LocalDateTime start = LocalDateTime.of(2024, 1, 1, 0, 0, 0); LocalDateTime start = LocalDateTime.of(2024, 1, 1, 0, 0, 0);
// LocalDateTime end = LocalDateTime.now(); LocalDateTime end = LocalDateTime.now();
CompletableFutureUtil.runSync(() -> { CompletableFutureUtil.runSync(() -> {
// gBaseJJDService.pullAndSave(start, end); gBaseJJDService.pullAndSave(start, end);
// gBaseSHRWFRService.pullAndSave(start, end); gBaseSHRWFRService.pullAndSave(start, end);
// petitionService.personPullAndSave(start, end); petitionService.personPullAndSave(start, end);
// pointService.personPullAndSave(start, end); pointService.personPullAndSave(start, end);
// riskPersonalService.fixed(); riskPersonalService.fixed();
// List<RiskPersonal> persons = riskPersonalRepository.list(); List<RiskPersonal> persons = riskPersonalRepository.list();
// List<RiskModelTaskClue> clues = riskModelTaskClueRepository.list(new LambdaQueryWrapper<RiskModelTaskClue>() List<RiskModelTaskClue> clues = riskModelTaskClueRepository.list(new LambdaQueryWrapper<RiskModelTaskClue>()
// .eq(RiskModelTaskClue::getDel, 0)); .eq(RiskModelTaskClue::getDel, 0));
// Map<Integer, List<RiskModelTaskClue>> map = clues.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getModelId)); Map<Integer, List<RiskModelTaskClue>> map = clues.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getModelId));
// TaskParamDomain domain = new TaskParamDomain(persons, map); TaskParamDomain domain = new TaskParamDomain(persons, map);
// riskTaskService.eduModelTask(domain); riskTaskService.eduModelTask(domain);
// riskTaskService.infoModelTask(domain); riskTaskService.infoModelTask(domain);
// riskTaskService.caseModelTask(domain); riskTaskService.caseModelTask(domain);
// gBaseBAService.baModelTask(domain); gBaseBAService.baModelTask(domain);
// policeService.contradictModelTask(domain); policeService.contradictModelTask(domain);
// habitService.habitModelTask(domain); habitService.habitModelTask(domain);
// marriageService.marriageModelTask(domain); marriageService.marriageModelTask(domain);
// petitionService.petitionModelTask(domain); petitionService.petitionModelTask(domain);
// riskTaskService.riskAreaModelTask(domain); riskTaskService.riskAreaModelTask(domain);
// riskTaskService.heightFight(domain); riskTaskService.heightFight(domain);
// pointService.syncScore(domain); pointService.syncScore(domain);
// pointService.syncViolence(domain); pointService.syncViolence(domain);
// noControlService.syncNoControlData(domain); noControlService.syncNoControlData(domain);
// pointService.syncKillSelf(domain); pointService.syncKillSelf(domain);
// pointService.syncDrug(domain); pointService.syncDrug(domain);
// pointService.syncControlNoPower(domain); pointService.syncControlNoPower(domain);
// riskScoreRuleService.runScore(); pointService.syncPointCall(domain);
// pointService.syncPointCall(domain); // personalService.syncOrg();
personalService.syncOrg();
}); });
} }

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

@ -18,15 +18,17 @@ public class Default {
public static final String BIG_TAG_SHWFR = "涉违法犯罪人员"; public static final String BIG_TAG_SHWFR = "涉违法犯罪人员";
public static final String PETITION_CASE_TAG = "案件核查"; public static final String PETITION_CASE_TAG = "信访、投诉-案件核查";
public static final String PETITION_12337_TAG = "12337"; public static final String PETITION_12337_TAG = "信访、投诉-12337";
public static final String PETITION_TAG = "信访投诉"; public static final String PETITION_TAG = "信访、投诉-其他信访投诉";
public static final String BIG_TAG_PETITION = "涉投诉举报信访人员"; public static final String BIG_TAG_PETITION = "涉投诉举报信访人员";
public static final String BA_TAG = "从事特种职业-保安"; public static final String BA_TAG = "保安";
public static final String DRUG_TAG = "涉药";
public static final String BIG_TAG_TRUBO = "涉矛盾纠纷"; public static final String BIG_TAG_TRUBO = "涉矛盾纠纷";
@ -40,4 +42,19 @@ public class Default {
public static final String CALL_REDIS = "call:point"; public static final String CALL_REDIS = "call:point";
public static final String TAG_IMPORT = "特殊职业";
public static final String BAD_HABBIT = "不良嗜好";
public static final String MARRAY = "感情失意";
public static final String NO_CONTROLLER ="管控不到位";
public static final String VIOLENCE ="暴力人员";
public static final String KILL_SELF = "扬言滋事、自杀等行为";
public static final String BASIC = "基础信息";
} }

2
src/main/java/com/biutag/supervisiondata/service/RiskModelTaskClueService.java

@ -12,5 +12,5 @@ import java.util.List;
*/ */
public interface RiskModelTaskClueService { public interface RiskModelTaskClueService {
void saveClues(List<RiskModelTaskClue> list); void saveClues(List<RiskModelTaskClue> list, String bigTag);
} }

2
src/main/java/com/biutag/supervisiondata/service/impl/GBaseBAServiceImpl.java

@ -129,7 +129,7 @@ public class GBaseBAServiceImpl implements GBaseBAService {
log.info("数据库操作阶段"); log.info("数据库操作阶段");
// 新增 // 新增
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
riskModelTaskClueService.saveClues(toInsert); riskModelTaskClueService.saveClues(toInsert, Default.TAG_IMPORT);
} }
// 修改 // 修改
if (!toUpdate.isEmpty()) { if (!toUpdate.isEmpty()) {

5
src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java

@ -3,6 +3,7 @@ package com.biutag.supervisiondata.service.impl;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervisiondata.pojo.ClueData; import com.biutag.supervisiondata.pojo.ClueData;
import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX;
@ -134,7 +135,7 @@ public class HabitServiceImpl implements HabitService {
.departName(aj.getBadwidmc()) .departName(aj.getBadwidmc())
.name(person.getName()) .name(person.getName())
.idCode(person.getIdCode()) .idCode(person.getIdCode())
.tag(aj.getAjlbmc()) .tag("不良嗜好-"+aj.getAjlbmc())
.personId(person.getId()) .personId(person.getId())
.sourceData("结合案件信息和违法人信息相关数据,发现该人员有:"+aj.getAjlbmc()+"类型的案件,案件编号为:"+aj.getAjbh()+",属于存在不良嗜好,增加风险分1分(存在涉赌、涉酒、涉黄不良嗜好的,每项+1分,最高3分)") .sourceData("结合案件信息和违法人信息相关数据,发现该人员有:"+aj.getAjlbmc()+"类型的案件,案件编号为:"+aj.getAjbh()+",属于存在不良嗜好,增加风险分1分(存在涉赌、涉酒、涉黄不良嗜好的,每项+1分,最高3分)")
.build(); .build();
@ -192,7 +193,7 @@ public class HabitServiceImpl implements HabitService {
} }
log.info("开始进行数据库操作"); log.info("开始进行数据库操作");
if(!toInsert.isEmpty()) { if(!toInsert.isEmpty()) {
riskModelTaskClueService.saveClues(toInsert); riskModelTaskClueService.saveClues(toInsert, Default.TAG_IMPORT);
} }
if(!toInsertRecord.isEmpty()) { if(!toInsertRecord.isEmpty()) {
controlRecordService.batchInsert(toInsertRecord); controlRecordService.batchInsert(toInsertRecord);

3
src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java

@ -3,6 +3,7 @@ package com.biutag.supervisiondata.service.impl;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervisiondata.pojo.ClueData; import com.biutag.supervisiondata.pojo.ClueData;
import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseHY; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseHY;
@ -147,7 +148,7 @@ public class MarriageServiceImpl implements MarriageService {
} }
if(!toInsertData.isEmpty()) { if(!toInsertData.isEmpty()) {
riskModelTaskClueService.saveClues(toInsert); riskModelTaskClueService.saveClues(toInsert, Default.MARRAY);
} }
if(!toUpdateData.isEmpty()) { if(!toUpdateData.isEmpty()) {
log.info("修改线索 | {}", toUpdateData.size()); log.info("修改线索 | {}", toUpdateData.size());

20
src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java

@ -52,7 +52,7 @@ public class NoControlServiceImpl implements NoControlService {
// clue 应该要看结婚状态 // clue 应该要看结婚状态
RiskTask task = createTask(domain.getPersons().size(), 45); RiskTask task = createTask(domain.getPersons().size(), 45);
riskTaskRepository.save(task); riskTaskRepository.save(task);
RiskTask task2 = createTask(domain.getPersons().size(), 47); RiskTask task2 = createTask(domain.getPersons().size(), 49);
riskTaskRepository.save(task2); riskTaskRepository.save(task2);
List<ClueData> clueData = new ArrayList<>(); List<ClueData> clueData = new ArrayList<>();
@ -83,14 +83,14 @@ public class NoControlServiceImpl implements NoControlService {
idCodes.put(clueDatum.getIdCode(), personal); idCodes.put(clueDatum.getIdCode(), personal);
toUpdate.add(newOne); toUpdate.add(newOne);
} }
RiskPersonalTag tag = new RiskPersonalTag(); // RiskPersonalTag tag = new RiskPersonalTag();
tag.setBigTag(Default.NO_CONTROL); // tag.setBigTag(Default.NO_CONTROL);
tag.setTagTime(Optional.ofNullable(clueDatum.getEventTime()).orElse(LocalDateTime.now())); // tag.setTagTime(Optional.ofNullable(clueDatum.getEventTime()).orElse(LocalDateTime.now()));
tag.setName(clueDatum.getName()); // tag.setName(clueDatum.getName());
tag.setIdCode(clueDatum.getIdCode()); // tag.setIdCode(clueDatum.getIdCode());
tag.setSmallTag(clueDatum.getTag()); // tag.setSmallTag(clueDatum.getTag());
tag.setCreateTime(LocalDateTime.now()); // tag.setCreateTime(LocalDateTime.now());
tags.add(tag); // tags.add(tag);
if(clueDatum.getTag().equals("神疾病三级以上人员管控不到位")) { if(clueDatum.getTag().equals("神疾病三级以上人员管控不到位")) {
clues.add(createClue(task2.getModelId(), 3, task.getId(), clueDatum)); clues.add(createClue(task2.getModelId(), 3, task.getId(), clueDatum));
} else { } else {
@ -106,7 +106,7 @@ public class NoControlServiceImpl implements NoControlService {
personalRepository.updateBatchById(toUpdate); personalRepository.updateBatchById(toUpdate);
} }
if(!clues.isEmpty()) { if(!clues.isEmpty()) {
clueService.saveClues(clues); clueService.saveClues(clues, Default.NO_CONTROLLER);
} }
RiskTask updateTask = new RiskTask(); RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId()); updateTask.setId(task.getId());

2
src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java

@ -467,7 +467,7 @@ public class PetitionServiceImpl implements PetitionService {
} }
} }
if(!toInsert.isEmpty()) { if(!toInsert.isEmpty()) {
riskModelTaskClueService.saveClues(toInsert); riskModelTaskClueService.saveClues(toInsert, Default.BIG_TAG_PETITION);
} }
if(!toUpdates.isEmpty()) { if(!toUpdates.isEmpty()) {

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

@ -82,7 +82,7 @@ public class PointServiceImpl implements PointService {
.eventTime(Optional.ofNullable(personal.getControlTime()).orElse(LocalDateTime.now())) .eventTime(Optional.ofNullable(personal.getControlTime()).orElse(LocalDateTime.now()))
.departId(personal.getControlDepartId()) .departId(personal.getControlDepartId())
.departName(personal.getControlDepartName()) .departName(personal.getControlDepartName())
.sourceData("该人员存在标签:" + personal.getTags() + ",属于特定人员,增加风险分5分") .sourceData("该人员存在标签:" + personal.getTags() + ",属于重点人员,增加风险分5分")
.build())); .build()));
} }
continue; continue;
@ -97,13 +97,13 @@ public class PointServiceImpl implements PointService {
.eventTime(Optional.ofNullable(personal.getControlTime()).orElse(LocalDateTime.now())) .eventTime(Optional.ofNullable(personal.getControlTime()).orElse(LocalDateTime.now()))
.departId(personal.getControlDepartId()) .departId(personal.getControlDepartId())
.departName(personal.getControlDepartName()) .departName(personal.getControlDepartName())
.sourceData("该人员存在标签:" + personal.getTags() + ",属于特定人员,增加风险分5分") .sourceData("该人员存在标签:" + personal.getTags() + ",属于重点人员,增加风险分5分")
.build())); .build()));
} }
} }
} }
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert); modelTaskClueService.saveClues(toInsert, Default.POINT_POEPLE);
} }
RiskTask updateTask = new RiskTask(); RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId()); updateTask.setId(task.getId());
@ -165,7 +165,7 @@ public class PointServiceImpl implements PointService {
} }
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert); modelTaskClueService.saveClues(toInsert, Default.VIOLENCE);
} }
RiskTask updateTask = new RiskTask(); RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId()); updateTask.setId(task.getId());
@ -215,7 +215,7 @@ public class PointServiceImpl implements PointService {
} }
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert); modelTaskClueService.saveClues(toInsert, Default.KILL_SELF);
} }
RiskTask updateTask = new RiskTask(); RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId()); updateTask.setId(task.getId());
@ -228,7 +228,7 @@ public class PointServiceImpl implements PointService {
@Override @Override
public void syncDrug(TaskParamDomain domain) { public void syncDrug(TaskParamDomain domain) {
RiskTask task = createTask(domain.getPersons().size(), 47); RiskTask task = createTask(domain.getPersons().size(), 37);
taskRepository.save(task); taskRepository.save(task);
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
@ -255,7 +255,7 @@ public class PointServiceImpl implements PointService {
} }
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
log.info("增加涉药人员:{}", toInsert.size()); log.info("增加涉药人员:{}", toInsert.size());
modelTaskClueService.saveClues(toInsert); modelTaskClueService.saveClues(toInsert, Default.DRUG_TAG);
} }
RiskTask updateTask = new RiskTask(); RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId()); updateTask.setId(task.getId());
@ -298,7 +298,7 @@ public class PointServiceImpl implements PointService {
} }
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
log.info("增加特定对象日常管控不到位人员:{}", toInsert.size()); log.info("增加特定对象日常管控不到位人员:{}", toInsert.size());
modelTaskClueService.saveClues(toInsert); modelTaskClueService.saveClues(toInsert, Default.NO_CONTROLLER);
} }
RiskTask updateTask = new RiskTask(); RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId()); updateTask.setId(task.getId());
@ -400,7 +400,7 @@ public class PointServiceImpl implements PointService {
ClueData data = ClueData.builder() ClueData data = ClueData.builder()
.name(personal.getName()) .name(personal.getName())
.idCode(personal.getIdCode()) .idCode(personal.getIdCode())
.tag("特定对象日常管控不到位") .tag("重点对象报警次数异常")
.departId(personal.getControlDepartId()) .departId(personal.getControlDepartId())
.departName(call.getControlName()) .departName(call.getControlName())
.personId(personal.getId()) .personId(personal.getId())
@ -416,7 +416,7 @@ public class PointServiceImpl implements PointService {
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
log.info("增加特定对象日常管控不到位人员:{}", toInsert.size()); log.info("增加特定对象日常管控不到位人员:{}", toInsert.size());
modelTaskClueService.saveClues(toInsert); modelTaskClueService.saveClues(toInsert, Default.BAD_HABBIT);
} }
RiskTask updateTask = new RiskTask(); RiskTask updateTask = new RiskTask();

12
src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java

@ -121,7 +121,7 @@ public class PoliceServiceImpl implements PoliceService {
} }
} }
if(insert) { if(insert) {
toInsert.add(createClue(task.getModelId(), 1, person, task.getId(), jjd, "通过对近12个月的警情筛查,发现该人员涉及:"+jjd.getJqxzmc()+"的警情,接警单编号为:"+jjd.getJjdbh()+",该警情属于矛盾纠纷,增加风险分1分(发生一起增加1分,最高10分)")); toInsert.add(createClue(task, 1, person, "涉纠纷警情-"+jjd.getJqxzmc(), jjd, "通过对近12个月的警情筛查,发现该人员涉及:"+jjd.getJqxzmc()+"的警情,接警单编号为:"+jjd.getJjdbh()+",该警情属于矛盾纠纷,增加风险分1分(发生一起增加1分,最高10分)"));
RiskPersonalControlRecord tmpRecord = createControlRecord(person, jjd, toInsert.getLast().getRiskReason()); RiskPersonalControlRecord tmpRecord = createControlRecord(person, jjd, toInsert.getLast().getRiskReason());
controlRecords.add(tmpRecord); controlRecords.add(tmpRecord);
if(person.getControlTime() == null || tmpRecord.getControlTime().isAfter(person.getControlTime())) { if(person.getControlTime() == null || tmpRecord.getControlTime().isAfter(person.getControlTime())) {
@ -133,7 +133,7 @@ public class PoliceServiceImpl implements PoliceService {
} }
if(!toInsert.isEmpty()) { if(!toInsert.isEmpty()) {
log.info("新增线索:{}",toInsert.size()); log.info("新增线索:{}",toInsert.size());
riskModelTaskClueService.saveClues(toInsert); riskModelTaskClueService.saveClues(toInsert, Default.BIG_TAG_TRUBO);
} }
if(!controlRecords.isEmpty()) { if(!controlRecords.isEmpty()) {
log.info("新增管控记录:{}",controlRecords.size()); log.info("新增管控记录:{}",controlRecords.size());
@ -174,14 +174,14 @@ public class PoliceServiceImpl implements PoliceService {
return personToUpdate; return personToUpdate;
} }
RiskModelTaskClue createClue(Integer modelId, Integer score, RiskPersonal person, Integer taskId,GBaseJJD jjd, String data) { RiskModelTaskClue createClue(RiskTask task, Integer score, RiskPersonal person, String tag,GBaseJJD jjd, String data) {
RiskModelTaskClue clue = new RiskModelTaskClue(); RiskModelTaskClue clue = new RiskModelTaskClue();
clue.setModelId(modelId); clue.setModelId(task.getModelId());
clue.setScore(score); clue.setScore(score);
clue.setName(person.getName()); clue.setName(person.getName());
clue.setIdCode(person.getIdCode()); clue.setIdCode(person.getIdCode());
clue.setTaskId(taskId); clue.setTaskId(task.getId());
clue.setRiskReason(jjd.getJqxzmc()); clue.setRiskReason(tag);
clue.setData(data); clue.setData(data);
clue.setEventTime(jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); clue.setEventTime(jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
clue.setCreateTime(LocalDateTime.now()); clue.setCreateTime(LocalDateTime.now());

65
src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java

@ -1,13 +1,17 @@
package com.biutag.supervisiondata.service.impl; package com.biutag.supervisiondata.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.biutag.supervisiondata.common.exception.BusinessException; import com.biutag.supervisiondata.common.exception.BusinessException;
import com.biutag.supervisiondata.common.response.StatusCode; import com.biutag.supervisiondata.common.response.StatusCode;
import com.biutag.supervisiondata.mapper.mine.RiskModelTaskClueMapper; import com.biutag.supervisiondata.mapper.mine.RiskModelTaskClueMapper;
import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalControlRecord; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalControlRecord;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalTag; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalTag;
import com.biutag.supervisiondata.repository.RiskPersonalTagRepository;
import com.biutag.supervisiondata.service.RiskModelTaskClueService; import com.biutag.supervisiondata.service.RiskModelTaskClueService;
import com.biutag.supervisiondata.service.RiskPersonalTagService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
@ -17,9 +21,9 @@ import javax.sql.DataSource;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.SQLException; import java.sql.SQLException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.*;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.IntStream; import java.util.stream.IntStream;
@ -36,13 +40,15 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService {
@Qualifier("chaosBean") @Qualifier("chaosBean")
private final DataSource dataSource; private final DataSource dataSource;
public Connection getConnection() throws SQLException { private final RiskPersonalTagRepository tagRepository;
Connection getConnection() throws SQLException {
return dataSource.getConnection(); return dataSource.getConnection();
} }
@Override @Override
public void saveClues(List<RiskModelTaskClue> list) { public void saveClues(List<RiskModelTaskClue> list, String bigTag) {
List<List<RiskModelTaskClue>> control = IntStream.range(0, (list.size() + 9999) / 10000) List<List<RiskModelTaskClue>> control = IntStream.range(0, (list.size() + 9999) / 10000)
.mapToObj(i -> list.subList(i * 10000, Math.min((i + 1) * 10000, list.size()))) .mapToObj(i -> list.subList(i * 10000, Math.min((i + 1) * 10000, list.size())))
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -53,6 +59,46 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService {
log.error("", e); log.error("", e);
} }
} }
Map<String, List<RiskModelTaskClue>> map = list.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode));
// 标签要插入的人员
List<String> idCodes = new ArrayList<>();
for (Map.Entry<String, List<RiskModelTaskClue>> entry : map.entrySet()) {
idCodes.add(entry.getKey());
}
List<RiskPersonalTag> oldTags = tagRepository.list(new LambdaQueryWrapper<RiskPersonalTag>().eq(RiskPersonalTag::getBigTag, bigTag)
.in(RiskPersonalTag::getIdCode, idCodes));
Map<String, List<RiskPersonalTag>> oldTagMap = oldTags.stream().collect(Collectors.groupingBy(RiskPersonalTag::getIdCode));
Map<String, Byte[]> oldMap;
List<RiskPersonalTag> tags = new ArrayList<>();
for (Map.Entry<String, List<RiskModelTaskClue>> entry : map.entrySet()) {
List<RiskPersonalTag> oldTagList = Optional.ofNullable(oldTagMap.get(entry.getKey())).orElse(new ArrayList<>());
// 旧的tag
oldMap = new WeakHashMap<>();
for (RiskPersonalTag tag : oldTagList) {
oldMap.put(tag.getSmallTag(), new Byte[0]);
}
for (RiskModelTaskClue clue : entry.getValue()) {
if(bigTag.equals(Default.BIG_TAG_SHWFR)) {
String [] strs = clue.getRiskReason().split(",");
for (int i =0,len = strs.length; i < len; i++) {
if(oldMap.get(strs[i]) == null) {
tags.add(creatTag(bigTag, strs[i], clue));
oldMap.put(strs[i], new Byte[0]);
}
}
continue;
}
if(oldMap.get(clue.getRiskReason()) == null) {
tags.add(creatTag(bigTag, clue.getRiskReason(), clue));
oldMap.put(clue.getRiskReason(), new Byte[0]);
}
}
}
if(!tags.isEmpty()) {
tagRepository.saveBatch(tags, 10000);
}
} }
final String sql = "INSERT INTO risk_model_task_clue(model_id, name, id_code, task_id, source_id, risk_reason, data, score, event_time, create_time, update_time, case_ids) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)"; final String sql = "INSERT INTO risk_model_task_clue(model_id, name, id_code, task_id, source_id, risk_reason, data, score, event_time, create_time, update_time, case_ids) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)";
@ -87,4 +133,15 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService {
throw new BusinessException(StatusCode.BUSINESS, "数据保存失败"); throw new BusinessException(StatusCode.BUSINESS, "数据保存失败");
} }
} }
RiskPersonalTag creatTag(String bigTag, String tag, RiskModelTaskClue clue) {
RiskPersonalTag riskTag = new RiskPersonalTag();
riskTag.setBigTag(bigTag);
riskTag.setTagTime(LocalDateTime.now());
riskTag.setName(clue.getName());
riskTag.setIdCode(clue.getIdCode());
riskTag.setSmallTag(tag);
riskTag.setCreateTime(LocalDateTime.now());
return riskTag;
}
} }

20
src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java

@ -111,7 +111,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
List<RiskModelTaskClue> clues = new ArrayList<>(); List<RiskModelTaskClue> clues = new ArrayList<>();
clues.addAll(infos[0].getToInsert()); clues.addAll(infos[0].getToInsert());
clues.addAll(infos[1].getToInsert()); clues.addAll(infos[1].getToInsert());
riskModelTaskClueService.saveClues(clues); riskModelTaskClueService.saveClues(clues, Default.BASIC);
if(!infos[0].getToHidden().isEmpty()) { if(!infos[0].getToHidden().isEmpty()) {
clueRepository.updateBatchById(infos[0].getToHidden()); clueRepository.updateBatchById(infos[0].getToHidden());
} }
@ -189,7 +189,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
int size = 0; int size = 0;
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
size = toInsert.size(); size = toInsert.size();
riskModelTaskClueService.saveClues(toInsert); riskModelTaskClueService.saveClues(toInsert, Default.BASIC);
log.info("批量新增学历完成"); log.info("批量新增学历完成");
} }
eduUpdate.setInsertSize(size); eduUpdate.setInsertSize(size);
@ -371,7 +371,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
RiskTask caseUpdate = new RiskTask(); RiskTask caseUpdate = new RiskTask();
caseUpdate.setId(caseTask.getId()); caseUpdate.setId(caseTask.getId());
if (!toInsertClue.isEmpty()) { if (!toInsertClue.isEmpty()) {
riskModelTaskClueService.saveClues(toInsertClue); riskModelTaskClueService.saveClues(toInsertClue, Default.BIG_TAG_SHWFR);
} }
if (!toUpdateClue.isEmpty()) { if (!toUpdateClue.isEmpty()) {
clueRepository.updateBatchById(toUpdateClue); clueRepository.updateBatchById(toUpdateClue);
@ -559,12 +559,12 @@ public class RiskTaskServiceImpl implements RiskTaskService {
.personId(person.getId()) .personId(person.getId())
.eventTime(LocalDateTime.now()) .eventTime(LocalDateTime.now())
.sourceData("发现该人员在"+gBaseSYRKXX.getCsdxzqhmc()+"成长,该地区暴力警情情况较多,增加风险分2分") .sourceData("发现该人员在"+gBaseSYRKXX.getCsdxzqhmc()+"成长,该地区暴力警情情况较多,增加风险分2分")
.tag(Default.FIGHT_BORN) .tag(gBaseSYRKXX.getCsdxzqhmc())
.build(), "area___"+person.getId().toString())); .build(), "area___"+person.getId().toString()));
} }
if(!toInsert.isEmpty()) { if(!toInsert.isEmpty()) {
log.info("开始操作新增项:{}", toInsert.size()); log.info("开始操作新增项:{}", toInsert.size());
riskModelTaskClueService.saveClues(toInsert); riskModelTaskClueService.saveClues(toInsert, Default.FIGHT_BORN);
} }
RiskTask endTask = endTask(task.getId()); RiskTask endTask = endTask(task.getId());
endTask.setInsertSize(toInsert.size()); endTask.setInsertSize(toInsert.size());
@ -619,7 +619,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
manList.add(fightMan.getGmsfhm()); manList.add(fightMan.getGmsfhm());
continue; continue;
} }
RiskModelTaskClue clue = createClue(task.getModelId(),3, person,task.getId(), Default.FIGHT_MUCH, "该人员在近期发生"+fightMan.getFightCount()+"起矛盾纠纷,属于高频次矛盾纠纷发生人员,增加风险分3分"); RiskModelTaskClue clue = createClue(task.getModelId(),3, person,task.getId(), fightMan.getFightCount()+"起纠纷", "该人员在近期发生"+fightMan.getFightCount()+"起矛盾纠纷,属于高频次矛盾纠纷发生人员,增加风险分3分");
toInsert.add(clue); toInsert.add(clue);
person.setId(null); person.setId(null);
person.setTags(Default.FIGHT_MUCH); person.setTags(Default.FIGHT_MUCH);
@ -659,7 +659,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
} }
if(!toInsert.isEmpty()) { if(!toInsert.isEmpty()) {
log.info("新增线索 | {}", toInsert.size()); log.info("新增线索 | {}", toInsert.size());
riskModelTaskClueService.saveClues(toInsert); riskModelTaskClueService.saveClues(toInsert, Default.FIGHT_MUCH);
} }
RiskTask endTask = endTask(task.getId()); RiskTask endTask = endTask(task.getId());
@ -692,7 +692,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
} }
// 符合条件但是又没有旧数据 | 新增 // 符合条件但是又没有旧数据 | 新增
if (age >= 16 && age <= 34) { if (age >= 16 && age <= 34) {
RiskModelTaskClue clue = createClue(33, 1, person, task.getId(), "年龄处于16岁至34岁之间", "该人员年龄为"+age+",属于16岁至34岁之间,增加风险分1分"); RiskModelTaskClue clue = createClue(task.getModelId(), 1, person, task.getId(), "年龄处于16岁至34岁之间", "该人员年龄为"+age+",属于16岁至34岁之间,增加风险分1分");
taskClue.add(clue); taskClue.add(clue);
if (old != null) { if (old != null) {
RiskModelTaskClue hidden = new RiskModelTaskClue(); RiskModelTaskClue hidden = new RiskModelTaskClue();
@ -703,7 +703,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
continue; continue;
} }
if (age >= 35 && age <= 55) { if (age >= 35 && age <= 55) {
RiskModelTaskClue clue = createClue(33, 2, person, task.getId(), "年龄处于35岁至55岁之间", "该人员年龄为"+age+",属于35岁至55岁之间,增加风险分2分"); RiskModelTaskClue clue = createClue(task.getModelId(), 2, person, task.getId(), "年龄处于35岁至55岁之间", "该人员年龄为"+age+",属于35岁至55岁之间,增加风险分2分");
taskClue.add(clue); taskClue.add(clue);
if (old != null) { if (old != null) {
RiskModelTaskClue hidden = new RiskModelTaskClue(); RiskModelTaskClue hidden = new RiskModelTaskClue();
@ -750,7 +750,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
if (oldMap.get(person.getIdCode()) != null) { if (oldMap.get(person.getIdCode()) != null) {
continue; continue;
} }
RiskModelTaskClue clue = createClue(32, 1, person, task.getId(), "性别为男性", "该人员性别为男性,增加风险分1分"); RiskModelTaskClue clue = createClue(32, 1, person, task.getId(), "男性", "该人员性别为男性,增加风险分1分");
taskClue.add(clue); taskClue.add(clue);
} }
return ClueInfo.builder().toInsert(taskClue).build(); return ClueInfo.builder().toInsert(taskClue).build();

Loading…
Cancel
Save