Browse Source

新标准

master
kami 1 year ago
parent
commit
8fdc751e64
  1. 7
      src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseAJJBXXMapper.java
  2. 5
      src/main/java/com/biutag/supervisiondata/service/HabitService.java
  3. 2
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java
  4. 207
      src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java
  5. 4
      src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java
  6. 26
      src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java
  7. 4
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java
  8. 87
      src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java

7
src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseAJJBXXMapper.java

@ -2,6 +2,10 @@ package com.biutag.supervisiondata.mapper.dwd;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @author kami on 2024-11-10 15:14:34
@ -9,4 +13,7 @@ import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX;
* @since 1.8
*/
public interface GBaseAJJBXXMapper extends BaseMapper<GBaseAJJBXX> {
@Select(" select ajbh, barq, ajlbmc from dwd_asj_zfba_ajjbxx where barq > #{time}")
List<GBaseAJJBXX> selectHabit(@Param("time")String time);
}

5
src/main/java/com/biutag/supervisiondata/service/HabitService.java

@ -2,6 +2,9 @@ package com.biutag.supervisiondata.service;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* @author kami on 2024-11-13 11:11:49
* @version 0.0.1
@ -9,5 +12,5 @@ import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
*/
public interface HabitService {
void habitModelTask(TaskParamDomain domain);
void habitModelTask(LocalDateTime targetTime, TaskParamDomain domain);
}

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

@ -98,7 +98,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
}
}),
CompletableFutureUtil.runSyncObject(() -> {
List<GBaseWFRXX> wfrTmp = wfrxxRepository.getBaseMapper().selectDataToRisk(start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")),
List<GBaseWFRXX> wfrTmp = wfrxxRepository.getBaseMapper().selectDataToRisk("2019-12-06 00:00:00",
end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
for (GBaseWFRXX gBaseWFRXX : wfrTmp) {
if(gBaseWFRXX.getZjhm() != null) {

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

@ -2,6 +2,7 @@ package com.biutag.supervisiondata.service.impl;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil;
import com.biutag.supervisiondata.pojo.ClueData;
import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
@ -21,9 +22,12 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@ -44,172 +48,137 @@ public class HabitServiceImpl implements HabitService {
private final RiskTaskRepository riskTaskRepository;
private final RiskPersonalControlRecordService recordRepository;
private final RiskModelTaskClueService riskModelTaskClueService;
private final RiskPersonalService riskPersonalService;
private final RiskPersonalControlRecordService controlRecordService;
private final RiskPersonalRepository personalRepository;
@Override
public void habitModelTask(TaskParamDomain domain) {
RiskTask task = createTask(domain.getPersons().size(), 36);
riskTaskRepository.save(task);
Date d = Date.from(LocalDateTime.of(2024, 1, 1, 0, 0, 0).atZone(ZoneId.systemDefault()).toInstant());
List<GBaseAJJBXX> ajjbxxList = gBaseAJJBXXRepository.list(new LambdaQueryWrapper<GBaseAJJBXX>()
.select(GBaseAJJBXX::getAjbh, GBaseAJJBXX::getBadwidmc, GBaseAJJBXX::getBadwiddm, GBaseAJJBXX::getBarq, GBaseAJJBXX::getAjlbmc)
.ge(GBaseAJJBXX::getBarq, d));
public void habitModelTask(LocalDateTime targetTime, TaskParamDomain domain) {
List<GBaseAJJBXX> ajjbxxList = gBaseAJJBXXRepository.getBaseMapper().selectHabit(targetTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
LocalDateTime limit = LocalDateTime.now().minusYears(1);
log.info("总案件数:{}", ajjbxxList.size());
// 过滤案件类别
// 酒
List<GBaseAJJBXX> targetAjList = new ArrayList<>();
List<String> ajNos = new ArrayList<>();
// 赌博
List<GBaseAJJBXX> targetAjList2 = new ArrayList<>();
List<String> ajNos2 = new ArrayList<>();
// 其他行为
List<GBaseAJJBXX> targetAjList3 = new ArrayList<>();
List<String> ajNos3 = new ArrayList<>();
for (GBaseAJJBXX gBaseAJJBXX : ajjbxxList) {
if (gBaseAJJBXX.getAjlbmc() == null) {
continue;
}
if (gBaseAJJBXX.getAjlbmc().contains("酒后驾驶") || gBaseAJJBXX.getAjlbmc().contains("赌博")
|| gBaseAJJBXX.getAjlbmc().contains("嫖娼") || gBaseAJJBXX.getAjlbmc().contains("招嫖")
if (gBaseAJJBXX.getAjlbmc().contains("酒")){
targetAjList.add(gBaseAJJBXX);
ajNos.add(gBaseAJJBXX.getAjbh());
}
if (gBaseAJJBXX.getAjlbmc().contains("赌博")) {
targetAjList2.add(gBaseAJJBXX);
ajNos2.add(gBaseAJJBXX.getAjbh());
}
if (gBaseAJJBXX.getAjlbmc().contains("嫖娼") || gBaseAJJBXX.getAjlbmc().contains("招嫖")
|| gBaseAJJBXX.getAjlbmc().contains("嫖宿")) {
if (gBaseAJJBXX.getAjlbmc().contains("幼女")) {
continue;
}
targetAjList.add(gBaseAJJBXX);
ajNos.add(gBaseAJJBXX.getAjbh());
targetAjList3.add(gBaseAJJBXX);
ajNos3.add(gBaseAJJBXX.getAjbh());
}
}
log.info("共计案件:{}条", ajNos.size());
RiskTask task = createTask(ajNos.size(), 36);
riskTaskRepository.save(task);
RiskTask task2 = createTask(ajNos2.size(), 60);
riskTaskRepository.save(task2);
RiskTask task3 = createTask(ajNos2.size(), 61);
riskTaskRepository.save(task3);
log.info("共计案件:{} | {} | {}", ajNos.size(), ajNos2.size(), ajNos3.size());
List<RiskModelTaskClue> toInsert = new ArrayList<>();
List<RiskModelTaskClue> toInsert1 = new ArrayList<>();
List<RiskModelTaskClue> toInsert2 = new ArrayList<>();
List<RiskModelTaskClue> toInsert3 = new ArrayList<>();
CompletableFuture.allOf(
CompletableFutureUtil.runSyncObject(() -> toInsert1.addAll(findBadHabit(ajNos, targetAjList, task, domain, "酗酒行为"))),
CompletableFutureUtil.runSyncObject(() -> toInsert2.addAll(findBadHabit(ajNos2, targetAjList2, task2, domain, "赌博行为"))),
CompletableFutureUtil.runSyncObject(() -> toInsert3.addAll(findBadHabit(ajNos3, targetAjList3, task3, domain, "其它成瘾行为")))
).join();
log.info("开始进行数据库操作");
toInsert.addAll(toInsert1);
toInsert.addAll(toInsert2);
toInsert.addAll(toInsert3);
if(!toInsert.isEmpty()) {
riskModelTaskClueService.saveClues(toInsert, Default.HABBIT_IG);
}
updateTask(task.getId(), toInsert1.size());
updateTask(task2.getId(), toInsert2.size());
updateTask(task3.getId(), toInsert3.size());
}
List<RiskModelTaskClue> findBadHabit(List<String> ajNos, List<GBaseAJJBXX> targetAjList, RiskTask task, TaskParamDomain domain, String tag) {
List<List<String>> ajNo = IntStream.range(0, (ajNos.size() + 9999) / 10000)
.mapToObj(i -> ajNos.subList(i * 10000, Math.min((i + 1) * 10000, ajNos.size())))
.toList();
List<GBaseWFRXX> wfrList = new ArrayList<>();
for (List<String> aj : ajNo) {
wfrList.addAll(gBaseWFRXXRepository.list(new LambdaQueryWrapper<GBaseWFRXX>()
ajNo.forEach(aj -> wfrList.addAll(gBaseWFRXXRepository.list(new LambdaQueryWrapper<GBaseWFRXX>()
.select(GBaseWFRXX::getAjbh, GBaseWFRXX::getZjhm)
.in(GBaseWFRXX::getAjbh, aj)));
}
.in(GBaseWFRXX::getAjbh, aj))));
// 违法信息
Map<String, List<GBaseWFRXX>> wfrMap = wfrList.stream().filter(it -> it.getZjhm() != null).collect(Collectors.groupingBy(GBaseWFRXX::getZjhm));
// 案件信息
Map<String, GBaseAJJBXX> ajMap = targetAjList.stream().collect(Collectors.toMap(GBaseAJJBXX::getAjbh, Function.identity(), (oldValue, newValue) -> newValue));
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(36)).orElse(new ArrayList<>());
// 人员的旧线索
Map<String, List<RiskModelTaskClue>> clueMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode));
log.info("开始遍历人员");
List<RiskModelTaskClue> clues;
Map<String, RiskModelTaskClue> clueTmpMap;
List<ClueData> dataList;
// 新增数据源
Map<String, List<ClueData>> insertDataMap = new HashMap<>();
// 管控记录需要的id
List<String> controlIdCodes = new ArrayList<>();
log.info("map大小:{}", wfrMap.size());
// 创建新数据
List<RiskModelTaskClue> toInsert = new ArrayList<>();
log.info("开始遍历人员", wfrMap.size());
for (RiskPersonal person : domain.getPersons()) {
List<GBaseWFRXX> wfTmp = wfrMap.get(person.getIdCode());
if (wfTmp == null) {
continue;
}
List<GBaseWFRXX> wfTmp = Optional.ofNullable(wfrMap.get(person.getIdCode())).orElse(new ArrayList<>());
// 该人员旧的线索
clues = Optional.ofNullable(clueMap.get(person.getIdCode())).orElse(new ArrayList<>());
clueTmpMap = clues.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (oldValue, newValue) -> newValue));
dataList = new ArrayList<>();
for (GBaseWFRXX gBaseWFRXX : wfTmp) {
GBaseAJJBXX aj = ajMap.get(gBaseWFRXX.getAjbh());
if (aj == null) {
continue;
}
// 通过案件编号获取查看是否有入库记录
RiskModelTaskClue clue = clueTmpMap.get(BhUtil.ajBh(aj.getAjbh()));
if (clue != null) {
if (clueTmpMap.get(BhUtil.ajBh(aj.getAjbh())) != null) {
continue;
}
// 没有旧记录
ClueData data = ClueData.builder()
.id(aj.getAjbh())
.departId(aj.getBadwiddm())
.departName(aj.getBadwidmc())
.name(person.getName())
.idCode(person.getIdCode())
.tag("不良嗜好-"+aj.getAjlbmc())
.tag(tag)
.personId(person.getId())
.sourceData("结合案件信息和违法人信息相关数据,发现该人员有:"+aj.getAjlbmc()+"类型的案件,案件编号为:"+aj.getAjbh()+",属于存在不良嗜好,增加风险分1分(存在涉赌、涉酒、涉黄不良嗜好的,每项+1分,最高3分)")
.sourceData("结合案件信息和违法人信息相关数据,发现该人员有:"+aj.getAjlbmc()+"类型的案件,案件编号为:"+aj.getAjbh()+",存在"+tag+",增加风险分5分")
.build();
try {
data.setEventTime(aj.getBarq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
} catch (Exception e) {
log.error("报案日期转LocalDateTime异常");
}
dataList.add(data);
}
if (!dataList.isEmpty()) {
insertDataMap.put(person.getIdCode(), dataList);
controlIdCodes.add(person.getIdCode());
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data));
}
}
// 创建新数据
List<RiskModelTaskClue> toInsert = new ArrayList<>();
List<RiskPersonal> toUpdatePersonal = new ArrayList<>();
List<RiskPersonalControlRecord> toInsertRecord = new ArrayList<>();
List<RiskPersonalControlRecord> oldRecords = recordRepository.list(new LambdaQueryWrapper<RiskPersonalControlRecord>()
.select(RiskPersonalControlRecord::getIdCode, RiskPersonalControlRecord::getControlTime)
.in(RiskPersonalControlRecord::getIdCode, controlIdCodes));
Map<String, List<RiskPersonalControlRecord>> oldRecordMap = oldRecords.stream().collect(Collectors.groupingBy(RiskPersonalControlRecord::getIdCode));
// 遍历生成实体
for (Map.Entry<String, List<ClueData>> entry : insertDataMap.entrySet()) {
List<RiskPersonalControlRecord> records = Optional.ofNullable(oldRecordMap.get(entry.getKey())).orElse(new ArrayList<>());
ClueData clue = entry.getValue().getFirst();
for (ClueData clueData : entry.getValue()) {
// 理论上说之前过滤过clue,不需要再判断control是否存在了
toInsertRecord.add(createControlRecord(clueData));
toInsert.add(createClue(task.getModelId(), 1, task.getId(), clueData));
}
// 修改人员当前管控单位
// if(!records.isEmpty()) {
// RiskPersonalControlRecord last = null;
// for (RiskPersonalControlRecord record : records) {
// if(last == null) {
// last = record;
// continue;
// }
// if(last.getControlTime().isBefore(record.getControlTime())) {
// last = record;
// }
// }
// if(last != null && last.getId() == null) {
// RiskPersonal person = new RiskPersonal();
// person.setId(clue.getPersonId());
// person.setControlDepartId(last.getControlDepartId());
// person.setControlDepartName(last.getControlDepartName());
// person.setControlTime(last.getControlTime());
// toUpdatePersonal.add(person);
// }
// }
}
log.info("开始进行数据库操作");
if(!toInsert.isEmpty()) {
riskModelTaskClueService.saveClues(toInsert, Default.HABBIT_IG);
}
if(!toInsertRecord.isEmpty()) {
controlRecordService.batchInsert(toInsertRecord);
}
if(!toUpdatePersonal.isEmpty()) {
log.info("修改人数: {}", toUpdatePersonal.size());
personalRepository.updateBatchById(toUpdatePersonal);
}
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
updateTask.setInsertSize(toInsert.size());
updateTask.setUpdateSize(toUpdatePersonal.size());
updateTask.setState(1);
updateTask.setEndTime(LocalDateTime.now());
riskTaskRepository.updateById(updateTask);
return toInsert;
}
RiskTask createTask(Integer size, Integer modelId) {
@ -221,19 +190,17 @@ public class HabitServiceImpl implements HabitService {
return task;
}
RiskPersonalControlRecord createControlRecord(ClueData data) {
RiskPersonalControlRecord controlRecord = new RiskPersonalControlRecord();
controlRecord.setName(data.getName());
controlRecord.setIdCode(data.getIdCode());
controlRecord.setCreateTime(LocalDateTime.now());
controlRecord.setControlTime(data.getEventTime());
controlRecord.setControlDepartId(data.getDepartId());
controlRecord.setControlDepartName(data.getDepartName());
controlRecord.setControlTag(data.getTag());
controlRecord.setCaseId(BhUtil.ajBh(data.getId()));
return controlRecord;
void updateTask(Integer taskId, Integer size) {
RiskTask updateTask = new RiskTask();
updateTask.setId(taskId);
updateTask.setInsertSize(size);
updateTask.setUpdateSize(0);
updateTask.setState(1);
updateTask.setEndTime(LocalDateTime.now());
riskTaskRepository.updateById(updateTask);
}
RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data) {
RiskModelTaskClue clue = new RiskModelTaskClue();
clue.setModelId(modelId);

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

@ -187,7 +187,7 @@ public class MarriageServiceImpl implements MarriageService {
.id(last.getXlzjdjzh())
.idCode(person.getIdCode())
.name(person.getName())
.sourceData("根据该人员最新的婚姻登记信息,发现该人员登记为离婚,存在感情失意的可能,增加风险分3分")
.sourceData("根据该人员最新的婚姻登记信息,发现该人员登记为离婚,增加风险分5分")
.build();
data.setEventTime(last.getDjrq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
toInsertData2.add(data);
@ -225,7 +225,7 @@ public class MarriageServiceImpl implements MarriageService {
toInsert.add(createClue(task.getModelId(), 3, task.getId(), toInsertDatum));
}
for (ClueData toInsertDatum : toInsertData2) {
toInsert2.add(createClue(task2.getModelId(), 1, task2.getId(), toInsertDatum));
toInsert2.add(createClue(task2.getModelId(), 5, task2.getId(), toInsertDatum));
}
if(!toInsert.isEmpty()) {

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

@ -330,7 +330,7 @@ public class PetitionServiceImpl implements PetitionService {
.eventTime(dataCaseVerif.getDiscoveryTime())
.idCode(person.getIdCode())
.name(person.getName())
.sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分2分,具体情况为:"+dataCaseVerif.getThingDesc())
.sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:"+dataCaseVerif.getThingDesc())
.build());
}
@ -348,7 +348,7 @@ public class PetitionServiceImpl implements PetitionService {
.eventTime(item.getDiscoverTime())
.idCode(person.getIdCode())
.name(person.getName())
.sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分2分,具体情况为:"+item.getReviewDes())
.sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:"+item.getReviewDes())
.build());
}
@ -366,7 +366,7 @@ public class PetitionServiceImpl implements PetitionService {
.eventTime(item.getDiscoveryTime())
.idCode(person.getIdCode())
.name(person.getName())
.sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分2分,具体情况为:"+item.getThingDesc())
.sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:"+item.getThingDesc())
.build());
}
@ -404,31 +404,13 @@ public class PetitionServiceImpl implements PetitionService {
// 胜利者将继续进行筛选
List<RiskModelTaskClue> winner = new ArrayList<>();
// 人员的管控信息
boolean updatePeople = false;
RiskPersonal person = idCodeMan.get(entry.getKey());
for (ClueData clueData : entry.getValue()) {
// 找不到旧编号才继续
if(oldClueMap.get(BhUtil.petBh(clueData.getId())) == null) {
winner.add(createClue(task.getModelId(), 2, task.getId(), clueData));
// if(person.getControlTime() != null && person.getControlTime().isBefore(clueData.getEventTime())) {
// updatePeople = true;
// person.setControlTime(clueData.getEventTime());
// person.setControlDepartId(clueData.getDepartId());
// person.setControlDepartName(clueData.getDepartName());
// }
winner.add(createClue(task.getModelId(), 5, task.getId(), clueData));
toInsertRecrod.add(createControlRecord(clueData));
}
}
// if(updatePeople) {
// RiskPersonal updatePerson = new RiskPersonal();
// updatePerson.setId(person.getId());
// updatePerson.setControlTime(person.getControlTime());
// updatePerson.setControlDepartId(person.getControlDepartId());
// updatePerson.setControlDepartName(person.getControlDepartName());
// touUpdatePerson.add(updatePerson);
// }
// - 结合新旧数据,从新计算季度,季度最晚的算分
oldClues.addAll(winner);
Map<Integer, List<RiskModelTaskClue>> winnerMap = new WeakHashMap<>();

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

@ -911,9 +911,9 @@ public class PointServiceImpl implements PointService {
.departName(person.getControlDepartName())
.personId(person.getId())
.eventTime(LocalDateTime.now())
.sourceData("发现该人员有车,增加风险分1分。")
.sourceData("发现该人员有车,增加风险分5分。")
.build();
toInsert.add(createClue(task.getModelId(), 1, task.getId(), data));
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data));
}
// 减少
if(exist.get(person.getIdCode())==null && clueMap.get(person.getIdCode())!=null) {

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

@ -80,43 +80,10 @@ public class RiskTaskServiceImpl implements RiskTaskService {
riskTaskRepository.save(ageTask);
riskTaskRepository.save(genderTask);
ClueInfo[] infos = new ClueInfo[2];
CompletableFuture.allOf(
CompletableFutureUtil.runSyncObject(() -> infos[0] = ageModel(domain, ageTask)),
CompletableFutureUtil.runSyncObject(() -> infos[1] = genderModel(domain, genderTask))
CompletableFutureUtil.runSyncObject(() -> ageModel(domain, ageTask)),
CompletableFutureUtil.runSyncObject(() -> genderModel(domain, genderTask))
).join();
RiskTask ageUpdate = new RiskTask();
ageUpdate.setId(ageTask.getId());
int size = 0;
if (!infos[0].getToHidden().isEmpty()) {
size = infos[0].getToHidden().size();
}
ageUpdate.setUpdateSize(size);
if (!infos[0].getToInsert().isEmpty()) {
size = infos[0].getToInsert().size();
}
ageUpdate.setInsertSize(size);
ageUpdate.setState(1);
ageUpdate.setEndTime(LocalDateTime.now());
riskTaskRepository.updateById(ageUpdate);
RiskTask genderUpdate = new RiskTask();
genderUpdate.setId(genderTask.getId());
genderUpdate.setUpdateSize(0);
if (!infos[1].getToInsert().isEmpty()) {
size = infos[1].getToInsert().size();
}
genderUpdate.setInsertSize(size);
genderUpdate.setState(1);
genderUpdate.setEndTime(LocalDateTime.now());
riskTaskRepository.updateById(ageUpdate);
riskModelTaskClueService.saveClues(infos[0].getToInsert(), Default.AGE_IG);
riskModelTaskClueService.saveClues(infos[1].getToInsert(), Default.GENDER_IG);
if(!infos[0].getToHidden().isEmpty()) {
clueRepository.updateBatchById(infos[0].getToHidden());
}
}
@Override
@ -553,13 +520,13 @@ public class RiskTaskServiceImpl implements RiskTaskService {
// 新增
for (GBaseSYRKXX gBaseSYRKXX : xxList) {
RiskPersonal person = personMap.get(gBaseSYRKXX.getGmsfhm());
toInsert.add(createClue(task.getModelId(), 2, task.getId(), ClueData.builder()
toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder()
.id(BhUtil.sfBh(person.getId().toString()))
.name(person.getName())
.idCode(person.getIdCode())
.personId(person.getId())
.eventTime(LocalDateTime.now())
.sourceData("发现该人员在"+gBaseSYRKXX.getCsdxzqhmc()+"成长,该地区暴力警情情况较多,增加风险分2分")
.sourceData("发现该人员在"+gBaseSYRKXX.getCsdxzqhmc()+"成长,该地区暴力警情情况较多,增加风险分5分")
.tag(gBaseSYRKXX.getCsdxzqhmc())
.build(), "area___"+person.getId().toString()));
}
@ -694,7 +661,7 @@ public class RiskTaskServiceImpl implements RiskTaskService {
* @param task 任务
* @return 筛选出来的用户
*/
ClueInfo ageModel(TaskParamDomain domain, RiskTask task) {
void ageModel(TaskParamDomain domain, RiskTask task) {
List<RiskModelTaskClue> taskClue = new ArrayList<>();
List<RiskModelTaskClue> toHidden = new ArrayList<>();
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
@ -708,33 +675,34 @@ public class RiskTaskServiceImpl implements RiskTaskService {
if (age == null) {
continue;
}
// 符合条件但是又没有旧数据 | 新增
if (age >= 16 && age <= 34) {
RiskModelTaskClue clue = createClue(task.getModelId(), 1, person, task.getId(), "年龄处于16岁至34岁之间", "该人员年龄为"+age+",属于16岁至34岁之间,增加风险分1分");
taskClue.add(clue);
if (old != null) {
RiskModelTaskClue hidden = new RiskModelTaskClue();
hidden.setId(old.getId());
hidden.setDel(0);
toHidden.add(hidden);
}
// 符合条件但是又没有旧数据 | 新增
if (age >= 16 && age <= 34) {
RiskModelTaskClue clue = createClue(task.getModelId(), 1, person, task.getId(), "年龄处于16岁至34岁之间", "该人员年龄为"+age+",属于16岁至34岁之间,增加风险分1分");
taskClue.add(clue);
continue;
}
if (age >= 35 && age <= 55) {
RiskModelTaskClue clue = createClue(task.getModelId(), 2, person, task.getId(), "年龄处于35岁至55岁之间", "该人员年龄为"+age+",属于35岁至55岁之间,增加风险分2分");
taskClue.add(clue);
if (old != null) {
RiskModelTaskClue hidden = new RiskModelTaskClue();
hidden.setId(old.getId());
hidden.setDel(0);
toHidden.add(hidden);
}
}
riskModelTaskClueService.saveClues(taskClue, Default.AGE_IG);
if(!toHidden.isEmpty()) {
clueRepository.updateBatchById(toHidden);
}
return ClueInfo.builder()
.toHidden(toHidden)
.toInsert(taskClue)
.build();
RiskTask ageUpdate = new RiskTask();
ageUpdate.setId(task.getId());
ageUpdate.setUpdateSize(toHidden.size());
ageUpdate.setInsertSize(taskClue.size());
ageUpdate.setState(1);
ageUpdate.setEndTime(LocalDateTime.now());
riskTaskRepository.updateById(ageUpdate);
}
/**
@ -744,24 +712,27 @@ public class RiskTaskServiceImpl implements RiskTaskService {
* @param task 任务
* @return 筛选出来的用户
*/
ClueInfo genderModel(TaskParamDomain domain, RiskTask task) {
void genderModel(TaskParamDomain domain, RiskTask task) {
List<RiskModelTaskClue> taskClue = new ArrayList<>();
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
for (RiskPersonal person : domain.getPersons()) {
if (person.getGender() == null) {
continue;
}
if (!person.getGender().equals("1")) {
if (person.getGender() == null || !person.getGender().equals("1")) {
continue;
}
if (oldMap.get(person.getIdCode()) != null) {
continue;
}
RiskModelTaskClue clue = createClue(32, 1, person, task.getId(), "男性", "该人员性别为男性,增加风险分1分");
RiskModelTaskClue clue = createClue(32, 5, person, task.getId(), "男性", "该人员性别为男性,增加风险分5分");
taskClue.add(clue);
}
return ClueInfo.builder().toInsert(taskClue).build();
RiskTask genderUpdate = new RiskTask();
genderUpdate.setId(task.getId());
genderUpdate.setUpdateSize(0);
genderUpdate.setInsertSize(taskClue.size());
genderUpdate.setState(1);
genderUpdate.setEndTime(LocalDateTime.now());
riskModelTaskClueService.saveClues(taskClue, Default.GENDER_IG);
}
RiskModelTaskClue createClue(Integer modelId, Integer score, RiskPersonal person, Integer taskId, String reason, String data) {

Loading…
Cancel
Save