From 8fdc751e640377a524e403c57b6c1716baf01ea1 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Fri, 6 Dec 2024 18:47:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E6=A0=87=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/dwd/GBaseAJJBXXMapper.java | 7 + .../supervisiondata/service/HabitService.java | 5 +- .../service/impl/GBaseSHRWFRServiceImpl.java | 2 +- .../service/impl/HabitServiceImpl.java | 209 ++++++++---------- .../service/impl/MarriageServiceImpl.java | 4 +- .../service/impl/PetitionServiceImpl.java | 26 +-- .../service/impl/PointServiceImpl.java | 4 +- .../service/impl/RiskTaskServiceImpl.java | 93 +++----- 8 files changed, 140 insertions(+), 210 deletions(-) diff --git a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseAJJBXXMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseAJJBXXMapper.java index 982852b..ef57e75 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseAJJBXXMapper.java +++ b/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 { + + @Select(" select ajbh, barq, ajlbmc from dwd_asj_zfba_ajjbxx where barq > #{time}") + List selectHabit(@Param("time")String time); } diff --git a/src/main/java/com/biutag/supervisiondata/service/HabitService.java b/src/main/java/com/biutag/supervisiondata/service/HabitService.java index f679f3e..9f93eaf 100644 --- a/src/main/java/com/biutag/supervisiondata/service/HabitService.java +++ b/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); } diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java index 5b6805e..4fffa7f 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java @@ -98,7 +98,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { } }), CompletableFutureUtil.runSyncObject(() -> { - List wfrTmp = wfrxxRepository.getBaseMapper().selectDataToRisk(start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")), + List 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) { diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java index 6b8e70f..bc6e765 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java +++ b/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 ajjbxxList = gBaseAJJBXXRepository.list(new LambdaQueryWrapper() - .select(GBaseAJJBXX::getAjbh, GBaseAJJBXX::getBadwidmc, GBaseAJJBXX::getBadwiddm, GBaseAJJBXX::getBarq, GBaseAJJBXX::getAjlbmc) - .ge(GBaseAJJBXX::getBarq, d)); + public void habitModelTask(LocalDateTime targetTime, TaskParamDomain domain) { + List 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 targetAjList = new ArrayList<>(); List ajNos = new ArrayList<>(); + + // 赌博 + List targetAjList2 = new ArrayList<>(); + List ajNos2 = new ArrayList<>(); + + // 其他行为 + List targetAjList3 = new ArrayList<>(); + List 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 toInsert = new ArrayList<>(); + + List toInsert1 = new ArrayList<>(); + List toInsert2 = new ArrayList<>(); + List 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 findBadHabit(List ajNos, List targetAjList, RiskTask task, TaskParamDomain domain, String tag) { List> ajNo = IntStream.range(0, (ajNos.size() + 9999) / 10000) .mapToObj(i -> ajNos.subList(i * 10000, Math.min((i + 1) * 10000, ajNos.size()))) .toList(); - List wfrList = new ArrayList<>(); - for (List aj : ajNo) { - wfrList.addAll(gBaseWFRXXRepository.list(new LambdaQueryWrapper() - .select(GBaseWFRXX::getAjbh, GBaseWFRXX::getZjhm) - .in(GBaseWFRXX::getAjbh, aj))); - } + ajNo.forEach(aj -> wfrList.addAll(gBaseWFRXXRepository.list(new LambdaQueryWrapper() + .select(GBaseWFRXX::getAjbh, GBaseWFRXX::getZjhm) + .in(GBaseWFRXX::getAjbh, aj)))); // 违法信息 Map> wfrMap = wfrList.stream().filter(it -> it.getZjhm() != null).collect(Collectors.groupingBy(GBaseWFRXX::getZjhm)); // 案件信息 Map ajMap = targetAjList.stream().collect(Collectors.toMap(GBaseAJJBXX::getAjbh, Function.identity(), (oldValue, newValue) -> newValue)); - List oldList = Optional.ofNullable(domain.getMap().get(36)).orElse(new ArrayList<>()); // 人员的旧线索 Map> clueMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); - - log.info("开始遍历人员"); List clues; Map clueTmpMap; - List dataList; - // 新增数据源 - Map> insertDataMap = new HashMap<>(); - // 管控记录需要的id - List controlIdCodes = new ArrayList<>(); - log.info("map大小:{}", wfrMap.size()); + // 创建新数据 + List toInsert = new ArrayList<>(); + log.info("开始遍历人员", wfrMap.size()); for (RiskPersonal person : domain.getPersons()) { - List wfTmp = wfrMap.get(person.getIdCode()); - if (wfTmp == null) { - continue; - } + List 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 toInsert = new ArrayList<>(); - List toUpdatePersonal = new ArrayList<>(); - List toInsertRecord = new ArrayList<>(); - List oldRecords = recordRepository.list(new LambdaQueryWrapper() - .select(RiskPersonalControlRecord::getIdCode, RiskPersonalControlRecord::getControlTime) - .in(RiskPersonalControlRecord::getIdCode, controlIdCodes)); - - Map> oldRecordMap = oldRecords.stream().collect(Collectors.groupingBy(RiskPersonalControlRecord::getIdCode)); - // 遍历生成实体 - for (Map.Entry> entry : insertDataMap.entrySet()) { - List 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); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java index 7245974..99a70aa 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java +++ b/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()) { diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java index cf335da..320ffc0 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java +++ b/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 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> winnerMap = new WeakHashMap<>(); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java index a990e39..760614a 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/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) { diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java index 13aa56d..5010b42 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java +++ b/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 taskClue = new ArrayList<>(); List toHidden = new ArrayList<>(); Map oldMap = domain.getOldMap(task.getModelId(), true); @@ -708,33 +675,34 @@ public class RiskTaskServiceImpl implements RiskTaskService { if (age == null) { continue; } + 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); - if (old != null) { - RiskModelTaskClue hidden = new RiskModelTaskClue(); - hidden.setId(old.getId()); - hidden.setDel(0); - toHidden.add(hidden); - } 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); - } } } - return ClueInfo.builder() - .toHidden(toHidden) - .toInsert(taskClue) - .build(); + riskModelTaskClueService.saveClues(taskClue, Default.AGE_IG); + if(!toHidden.isEmpty()) { + clueRepository.updateBatchById(toHidden); + } + 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 taskClue = new ArrayList<>(); Map 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) {