From 0448cbe1e28d88fa053431daf61f76136b98240a Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Mon, 23 Dec 2024 14:28:23 +0800 Subject: [PATCH] . --- .../event/ApplicationEvent.java | 4 +- .../mapper/ads/GBaseSYRKXXMapper.java | 12 +- .../mapper/mine/RiskPersonalTagMapper.java | 4 +- .../supervisiondata/pojo/constants/Area.java | 14 + .../supervisiondata/pojo/enums/Age.java | 39 ++ .../supervisiondata/pojo/enums/Edu.java | 38 -- .../supervisiondata/pojo/enums/EduType.java | 60 ++ .../service/RiskModelTaskClueService.java | 5 +- .../service/RiskTaskService.java | 11 - .../service/impl/GBaseJJDServiceImpl.java | 12 +- .../service/impl/HabitServiceImpl.java | 2 +- .../service/impl/MarriageServiceImpl.java | 24 +- .../service/impl/PointServiceImpl.java | 2 +- .../impl/RiskModelTaskClueServiceImpl.java | 4 +- .../service/impl/RiskTaskServiceImpl.java | 545 ++++-------------- .../supervisiondata/task/TaskService.java | 18 +- 16 files changed, 289 insertions(+), 505 deletions(-) create mode 100644 src/main/java/com/biutag/supervisiondata/pojo/constants/Area.java create mode 100644 src/main/java/com/biutag/supervisiondata/pojo/enums/Age.java delete mode 100644 src/main/java/com/biutag/supervisiondata/pojo/enums/Edu.java create mode 100644 src/main/java/com/biutag/supervisiondata/pojo/enums/EduType.java diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index cf3f4ba..32ec349 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -119,7 +119,6 @@ public class ApplicationEvent { // riskTaskService.eduAndAreaModelTask(initDomain(List.of(34,41))); // riskTaskService.infoModelTask(initDomain(List.of(32,33))); // marriageService.marriageModelTask(initDomain(List.of(39,51))); -// // habitService.habitModelTask(LocalDateTime.of(2023, 12, 6, 0, 0, 0), initDomain(List.of(36,60,61,62))); // pointService.syncCarUser(initDomain(List.of(53))); // pointService.syncScore(initDomain(List.of(43))); @@ -140,6 +139,7 @@ public class ApplicationEvent { // gBaseJJDService.syncMarryDispute(initDomain(List.of(72))); // gBaseJJDService.syncNeighborAndColleagueDispute(initDomain(List.of(73))); // gBaseJJDService.syncBullying(initDomain(List.of(74))); +// gBaseJJDService.syncOtherContradict(initDomain(List.of(75))); // gBaseSHRWFRService.crimeName(initDomain(List.of(76))); // pointService.syncIsPetition(initDomain(List.of(40))); // pointService.syncFatherEducation(initDomain(List.of(112))); @@ -148,7 +148,7 @@ public class ApplicationEvent { // pointService.syncCriminalPunishment(initDomain(List.of(115))); // pointService.syncAdministrativePunishment(initDomain(List.of(116))); // pointService.syncParentsDivorce(initDomain(List.of(117))); -// gBaseJJDService.syncOtherContradict(initDomain(List.of(75))); + // pointService.syncFamilyDie(initDomain(List.of(118))); // pointService.syncFatherDie(initDomain(List.of(119))); // pointService.syncMotherDie(initDomain(List.of(120))); diff --git a/src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java index d60b2f7..0a76c82 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java @@ -62,14 +62,10 @@ public interface GBaseSYRKXXMapper extends BaseMapper { * 查人纠纷的次数 * @return 列表 */ - @Select("") - List selectListByIdCode(@Param("list")List list); + @Select(" SELECT a.gmsfhm,count(1) as fightCount FROM csga_dwd.dwd_qt_jzpt_mdjfdsrxx as a " + + " inner join csga_wdpcdb.wdpc_person as c on a.gmsfhm = c.id_code" + + " WHERE a.djsj >= #{time} group by a.gmsfhm") + List selectFightMan(@Param("time")String time); /** * 风险人员的学历和职业 diff --git a/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskPersonalTagMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskPersonalTagMapper.java index 81b325f..40b47b5 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskPersonalTagMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskPersonalTagMapper.java @@ -18,12 +18,12 @@ public interface RiskPersonalTagMapper extends BaseMapper { * @return */ @Update("") - int updateToDelete(@Param("list") List list,@Param("smallTag")String smallTag); + int updateToDelete(@Param("list") List list,@Param("modelId")Integer modelId); } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/constants/Area.java b/src/main/java/com/biutag/supervisiondata/pojo/constants/Area.java new file mode 100644 index 0000000..cd5cec1 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Area.java @@ -0,0 +1,14 @@ +package com.biutag.supervisiondata.pojo.constants; + +import lombok.experimental.UtilityClass; + +/** + * @author kami on 2024-12-23 11:09 + * @version 1.0 + * @since 1.8 + */ +@UtilityClass +public class Area { + + public static final String HEIGHT_RISK_AREA_CODE = "431122,431322,433127,431382,430525,430722"; +} diff --git a/src/main/java/com/biutag/supervisiondata/pojo/enums/Age.java b/src/main/java/com/biutag/supervisiondata/pojo/enums/Age.java new file mode 100644 index 0000000..fd6c6f7 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/enums/Age.java @@ -0,0 +1,39 @@ +package com.biutag.supervisiondata.pojo.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +/** + * @author kami on 2024-12-23 11:28 + * @version 1.0 + * @since 1.8 + */ +@AllArgsConstructor +@Getter +@Slf4j +public enum Age { + + AGE24(16, 24, 1, "年龄处于16岁至24岁之间"), + AGE34(25, 34, 3, "年龄处于25岁至34岁之间"), + AGE55(35, 55, 5, "年龄处于35岁至55岁之间"), + AGE65(56, 65, 3, "年龄处于55岁至65岁之间"), + AGE75(66, 75, 1, "年龄处于16岁至24岁之间"); + private final Integer lowAge; + + private final Integer heightAge; + + private final Integer score; + + private final String name; + + public static Age contains(Integer age) { + if(age == null) return null; + for (Age enums : values()) { + if (age >= enums.getLowAge() && age <= enums.getHeightAge()) { + return enums; + } + } + return null; + } +} diff --git a/src/main/java/com/biutag/supervisiondata/pojo/enums/Edu.java b/src/main/java/com/biutag/supervisiondata/pojo/enums/Edu.java deleted file mode 100644 index c82f3f8..0000000 --- a/src/main/java/com/biutag/supervisiondata/pojo/enums/Edu.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.biutag.supervisiondata.pojo.enums; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.extern.slf4j.Slf4j; - -/** - * @author kami on 2024-06-19 13:52:23 - * @version 0.0.1 - * @since 1.8 - */ -@AllArgsConstructor -@Getter -@Slf4j -public enum Edu { - - LOW("小学及以下", 5), - MIDDLE("初中", 4), - MIDDLE_HEIGHT("高中/中专", 3), - HEIGHT("大学", 2), - OTHER("大学以上", 1); - - private final String desc; - - private final Integer score; - - - - public static Integer contains(String desc) { - for (Edu enums : values()) { - if (enums.getDesc().equals(desc)) { - return enums.getScore(); - } - } - log.info("未找到该类型:{}", desc); - return 0; - } -} diff --git a/src/main/java/com/biutag/supervisiondata/pojo/enums/EduType.java b/src/main/java/com/biutag/supervisiondata/pojo/enums/EduType.java new file mode 100644 index 0000000..91c7bcc --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/enums/EduType.java @@ -0,0 +1,60 @@ +package com.biutag.supervisiondata.pojo.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +/** + * @author kami on 2024-06-19 13:52:23 + * @version 0.0.1 + * @since 1.8 + */ +@AllArgsConstructor +@Getter +@Slf4j +public enum EduType { + + LOW_1("小学教育", "小学及以下", 5), + LOW_2("文盲", "小学及以下", 5), + LOW_3("小学毕业", "小学及以下", 5), + LOW_4("小学肄业", "小学及以下", 5), + LOW_5("其他", "小学及以下", 5), + MIDDLE_1("初中毕业", "初中", 4), + MIDDLE_2("初级中等教育", "初中", 4), + MIDDLE_3("初中肄业", "初中", 4), + MIDDLE_HEIGHT_1("普通高中结业", "高中/中专", 3), + MIDDLE_HEIGHT_2("普通高级中学教育", "高中/中专", 3), + MIDDLE_HEIGHT_3("普通高中毕业", "高中/中专", 3), + MIDDLE_HEIGHT_4("普通高中肄业", "高中/中专", 3), + MIDDLE_HEIGHT_5("中等专科结业", "高中/中专", 3), + MIDDLE_HEIGHT_6("中等专科教育", "高中/中专", 3), + MIDDLE_HEIGHT_7("中等专业毕业", "高中/中专", 3), + MIDDLE_HEIGHT_8("技工学校肄业", "高中/中专", 3), + HEIGHT_1("大学专科毕业", "大学", 2), + HEIGHT_2("大学专科结业", "大学", 2), + HEIGHT_3("大学本科/专科教育", "大学", 2), + HEIGHT_4("大学生本科结业", "大学", 2), + HEIGHT_5("大学生普通班毕业", "大学", 2), + HEIGHT_6("大学生本科肄业", "大学", 2), + HEIGHT_7("大学生本科毕业", "大学", 2), + OTHER_1("硕士研究生毕业", "大学以上", 1), + OTHER_2("研究生教育", "大学以上", 1), + OTHER_3("研究生班肄业", "大学以上", 1); + + private final String name; + + private final String desc; + + private final Integer score; + + + public static EduType contains(String name) { + for (EduType enums : values()) { + if (enums.getName().equals(name)) { + return enums; + } + } + log.info("未找到该类型:{}", name); + return null; + } +} diff --git a/src/main/java/com/biutag/supervisiondata/service/RiskModelTaskClueService.java b/src/main/java/com/biutag/supervisiondata/service/RiskModelTaskClueService.java index 798282f..35a76f4 100644 --- a/src/main/java/com/biutag/supervisiondata/service/RiskModelTaskClueService.java +++ b/src/main/java/com/biutag/supervisiondata/service/RiskModelTaskClueService.java @@ -1,6 +1,5 @@ package com.biutag.supervisiondata.service; -import com.baomidou.mybatisplus.extension.service.IService; import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; import java.util.List; @@ -18,7 +17,7 @@ public interface RiskModelTaskClueService { * 删除线索并删除标签(只是删除或修改直接调用repository) * @param list 线索 * @param idCodes 要删除标签的身份证号 - * @param smallTag 要删除的标签 + * @param modelId 要删除的模型id */ - void deleteCluesAndDeleteTag(List list, List idCodes, String smallTag); + void deleteCluesAndDeleteTag(List list, List idCodes, Integer modelId); } diff --git a/src/main/java/com/biutag/supervisiondata/service/RiskTaskService.java b/src/main/java/com/biutag/supervisiondata/service/RiskTaskService.java index bc8b04b..a7eafda 100644 --- a/src/main/java/com/biutag/supervisiondata/service/RiskTaskService.java +++ b/src/main/java/com/biutag/supervisiondata/service/RiskTaskService.java @@ -14,11 +14,6 @@ public interface RiskTaskService { * @param domain 参数 */ void infoModelTask(TaskParamDomain domain); - /** - * 学历模型任务 - * @param domain 参数 - */ - void eduModelTask(TaskParamDomain domain); void eduAndAreaModelTask(TaskParamDomain domain); @@ -28,12 +23,6 @@ public interface RiskTaskService { */ void behavior(TaskParamDomain domain); - /** - * 风险地区 - * @param domain 参数 - */ - void riskAreaModelTask(TaskParamDomain domain); - /** * 高战斗人群 * @param domain 参数 diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java index 8aee091..302cab3 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java @@ -612,14 +612,14 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { clueService.saveClues(toInsert, "B53被他人家暴"); } if (!toUpdate.isEmpty()) { - clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, "被家暴"); + clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, task.getModelId()); } log.info("家暴:{} | {}", toInsert2.size(), toUpdate2.size()); if (!toInsert.isEmpty()) { clueService.saveClues(toInsert2, "B52对他人家暴"); } if (!toUpdate2.isEmpty()) { - clueService.deleteCluesAndDeleteTag(toUpdate2, deleteIdCards2, "家暴"); + clueService.deleteCluesAndDeleteTag(toUpdate2, deleteIdCards2, task2.getModelId()); } taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size()); taskRepository.updateTask(task2.getId(), toInsert.size(), toUpdate2.size()); @@ -744,7 +744,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { clueService.saveClues(toInsert, "B68个人恋爱创伤"); } if (!toUpdate.isEmpty()) { - clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, "个人恋爱创伤"); + clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, task.getModelId()); } taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size()); } @@ -833,7 +833,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { clueService.saveClues(toInsert, "B55与配偶关系"); } if (!toUpdate.isEmpty()) { - clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, "与配偶关系不和"); + clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, task.getModelId()); } taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size()); } @@ -922,7 +922,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { clueService.saveClues(toInsert, "B55同事与邻居关系"); } if (!toUpdate.isEmpty()) { - clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, "与邻居或同事纠纷"); + clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, task.getModelId()); } taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size()); } @@ -1042,8 +1042,6 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { taskRepository.updateTask(task.getId(), toInsert.size(), 0); } - private final RiskModelTaskClueRepository taskClueRepository; - @Override public void syncOtherContradict(TaskParamDomain domain) { String startTime = LocalDateTime.of(2023, 12, 6, 0, 0, 0).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); 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 9cb0d49..dccf3b0 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java @@ -139,7 +139,7 @@ public class HabitServiceImpl implements HabitService { } } if(!toUpdate.isEmpty()) { - riskModelTaskClueService.deleteCluesAndDeleteTag(toUpdate, idCodes, Default.YEAR_DRINK); + riskModelTaskClueService.deleteCluesAndDeleteTag(toUpdate, idCodes, task4.getModelId()); } riskTaskRepository.updateTask(task4.getId(), toInsertYears.size(), toUpdate.size()); } 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 715872f..6697c69 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java @@ -56,11 +56,11 @@ public class MarriageServiceImpl implements MarriageService { List toInsert2 = new ArrayList<>(); for (RiskPersonal person : domain.getPersons()) { - if(old1.get(person.getIdCode()) != null) { - continue; - } WdpcGrjdHyqkb result = dataMap.get(person.getIdCode()); - if(result == null) { + if(result == null) continue; + + if(old1.get(person.getIdCode()) != null) { + old1.remove(person.getIdCode()); continue; } ClueData clueData = ClueData.builder() @@ -98,6 +98,16 @@ public class MarriageServiceImpl implements MarriageService { toInsert2.add(DataUtil.createClueData(task, clueData2)); } + List toUpdate2 = new ArrayList<>(); + List idCodes2 = new ArrayList<>(); + for (Map.Entry entry : old1.entrySet()) { + RiskModelTaskClue clue = new RiskModelTaskClue(); + clue.setId(entry.getValue().getId()); + clue.setDel(1); + toUpdate2.add(clue); + idCodes2.add(entry.getValue().getIdCode()); + } + List toUpdate = new ArrayList<>(); List idCodes = new ArrayList<>(); for (Map.Entry entry : old2.entrySet()) { @@ -114,6 +124,10 @@ public class MarriageServiceImpl implements MarriageService { log.info("新增离婚数据:{}", toInsert1.size()); riskModelTaskClueService.saveClues(toInsert1, "婚姻状态"); } + if(!toUpdate2.isEmpty()) { + log.info("修改个离婚:{}", toUpdate2.size()); + riskModelTaskClueService.deleteCluesAndDeleteTag(toUpdate2, idCodes2, task2.getModelId()); + } riskTaskRepository.updateTask(task2.getId(), toInsert1.size(), 0); if(!toInsert2.isEmpty()) { @@ -122,7 +136,7 @@ public class MarriageServiceImpl implements MarriageService { } if(!toUpdate.isEmpty()) { log.info("修改个人婚姻创伤:{}", toUpdate.size()); - riskModelTaskClueService.deleteCluesAndDeleteTag(toUpdate, idCodes, "个人婚姻创伤"); + riskModelTaskClueService.deleteCluesAndDeleteTag(toUpdate, idCodes, task.getModelId()); } riskTaskRepository.updateTask(task.getId(), toInsert2.size(), toUpdate.size()); } 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 8b0e9a8..2e8e485 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -2071,7 +2071,7 @@ public class PointServiceImpl implements PointService { modelTaskClueService.saveClues(toInsert, Default.CAR_IG); } if (!toDelete.isEmpty()) { - modelTaskClueService.deleteCluesAndDeleteTag(toDelete, idCodes, Default.CAR_TAG); + modelTaskClueService.deleteCluesAndDeleteTag(toDelete, idCodes, task.getModelId()); } taskRepository.updateTask(task.getId(), toInsert.size(), toDelete.size()); } diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java index aa5b4d2..61b889e 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java @@ -114,10 +114,10 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { } @Override - public void deleteCluesAndDeleteTag(List list, List idCodes, String smallTag) { + public void deleteCluesAndDeleteTag(List list, List idCodes, Integer modelId) { clueRepository.updateBatchById(list); if (!idCodes.isEmpty()) { - tagRepository.getBaseMapper().updateToDelete(idCodes, smallTag); + tagRepository.getBaseMapper().updateToDelete(idCodes, modelId); } } 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 43f524d..4fabd18 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java @@ -1,21 +1,18 @@ package com.biutag.supervisiondata.service.impl; import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; -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.Area; import com.biutag.supervisiondata.pojo.constants.Default; -import com.biutag.supervisiondata.pojo.database.PointOrg; import com.biutag.supervisiondata.pojo.domain.FightMan; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; import com.biutag.supervisiondata.pojo.entity.mine.*; -import com.biutag.supervisiondata.pojo.enums.Edu; +import com.biutag.supervisiondata.pojo.enums.Age; +import com.biutag.supervisiondata.pojo.enums.EduType; import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.service.RiskModelTaskClueService; -import com.biutag.supervisiondata.service.RiskPersonalService; import com.biutag.supervisiondata.service.RiskTaskService; import com.biutag.supervisiondata.util.*; import lombok.AllArgsConstructor; @@ -27,7 +24,6 @@ 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; @@ -51,95 +47,69 @@ public class RiskTaskServiceImpl implements RiskTaskService { private final RiskModelTaskClueService riskModelTaskClueService; - private final RiskPersonalService riskPersonalService; - @Override public void infoModelTask(TaskParamDomain domain) { RiskTask genderTask = riskTaskRepository.create(domain.getPersons().size(), 32); RiskTask ageTask = riskTaskRepository.create(domain.getPersons().size(), 33); - CompletableFuture.allOf( - CompletableFutureUtil.runSyncObject(() -> ageModel(domain, ageTask)), - CompletableFutureUtil.runSyncObject(() -> genderModel(domain, genderTask)) - ).join(); - } - - @Override - public void eduModelTask(TaskParamDomain domain) { - RiskTask eduTask = riskTaskRepository.create(domain.getPersons().size(), 34); + Map oldAgeMap = domain.getOldMap(ageTask.getModelId(), true); + Map oldGenderMap = domain.getOldMap(genderTask.getModelId(), true); - List xxList = new ArrayList<>(); - int count = 0; - log.info("开始查学历 | {}", domain.getIdCards().size()); - for (List idCard : domain.getIdCards()) { - count++; - xxList.addAll(syrkxxRepository.list(new LambdaQueryWrapper() - .select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXlmc) - .in(GBaseSYRKXX::getGmsfhm, idCard))); - log.info("学历进度 | {}", count); - } - // 日常转map - Map xxMap = xxList.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (oldValue, newValue) -> newValue)); - // 旧数据 - Map oldMap = domain.getOldMap(34, true); - - List toUpdate = new ArrayList<>(); - List toInsert = new ArrayList<>(); - log.info("开始遍历学历"); + LocalDate now = LocalDate.now(); + List toInsertAge = new ArrayList<>(); + List toInsertGender = new ArrayList<>(); + List toDeletes = new ArrayList<>(); for (RiskPersonal person : domain.getPersons()) { - if (xxMap.get(person.getIdCode()) == null) { - continue; - } - GBaseSYRKXX xx = xxMap.get(person.getIdCode()); - if (xx.getXlmc() == null) { - continue; - } - String edu = switch (xx.getXlmc()) { - case "小学教育", "文盲", "小学毕业", "小学肄业", "其他" -> "小学及以下"; - case "初中毕业", "初级中等教育", "初中肄业" -> "初中"; - case "普通高中结业", "普通高级中学教育", "普通高中毕业", "普通高中肄业", "中等专科结业", "中等专科教育", "中等专业毕业", "技工学校肄业" -> - "高中/中专"; - case "大学专科毕业", "大学专科结业", "大学本科/专科教育", "大学生本科结业", "大学生普通班毕业", "大学生本科肄业", "大学生本科毕业" -> - "大学"; - case "硕士研究生毕业", "研究生教育", "研究生班肄业" -> "大学以上"; - default -> null; - }; - if (edu == null) { - continue; - } - RiskModelTaskClue old = oldMap.get(person.getIdCode()); - if (old != null && old.getRiskReason().equals(edu)) { - continue; - } - Integer score = Edu.contains(edu); - if (old == null) { - //创建新的 - toInsert.add(createClue(eduTask.getModelId(), score, eduTask.getId(), ClueData.builder() + RiskModelTaskClue oldAge = oldAgeMap.get(person.getIdCode()); + Integer age = IdCodeUtil.idCard2Age(person.getIdCode(), now); + Age ageType = Age.contains(age); + // 年龄过了阶段 删除 + if (ageType == null && oldAge != null) { + RiskModelTaskClue clue = new RiskModelTaskClue(); + clue.setId(oldAge.getId()); + clue.setDel(1); + toDeletes.add(clue); + } + // 年龄属于阶段 增加 + if (ageType != null && oldAge == null) { + toInsertAge.add(DataUtil.createClueData(ageTask, ClueData.builder() + .id("") + .score(ageType.getScore()) + .personId(person.getId()) + .tags(List.of(ageType.getName())) + .sourceData("该人员年龄为" + age + "," + ageType.getName()) .name(person.getName()) .idCode(person.getIdCode()) - .tag(edu) - .sourceData("该人员的学历为" + xx.getXlmc() + ",属于" + edu) - .eventTime(LocalDateTime.now()) - .personId(person.getId()) - .build(), "edu" + person.getId().toString())); - continue; + .eventTime(null) + .build())); } - RiskModelTaskClue tmp = new RiskModelTaskClue(); - tmp.setId(old.getId()); - tmp.setRiskReason(edu); - tmp.setData("该人员的学历为" + xx.getXlmc() + ",属于" + edu); - tmp.setScore(Edu.contains(edu)); - toUpdate.add(tmp); + if (person.getGender() == null || !person.getGender().equals("1") || oldGenderMap.get(person.getIdCode()) != null) + continue; + toInsertGender.add(DataUtil.createClueData(genderTask, ClueData.builder() + .id("") + .score(5) + .personId(person.getId()) + .tags(List.of("男性")) + .sourceData("该人员性别为男性") + .name(person.getName()) + .idCode(person.getIdCode()) + .eventTime(null) + .build())); } - if (!toInsert.isEmpty()) { - riskModelTaskClueService.saveClues(toInsert, Default.EDU_IG); - log.info("批量新增学历完成"); + if (!toInsertAge.isEmpty()) { + log.info("增加年龄数据{}条", toInsertAge.size()); + riskModelTaskClueService.saveClues(toInsertAge, "B2年龄"); + } + if (!toDeletes.isEmpty()) { + log.info("删除年龄数据{}条", toDeletes.size()); + clueRepository.removeBatchByIds(toDeletes); } - if (!toUpdate.isEmpty()) { - clueRepository.updateBatchById(toUpdate, 10000); - log.info("批量修改学历完成"); + riskTaskRepository.updateTask(ageTask.getId(), toInsertAge.size(), toDeletes.size()); + if (!toInsertGender.isEmpty()) { + log.info("增加性别数据{}条", toInsertGender.size()); + riskModelTaskClueService.saveClues(toInsertGender, "B1性别"); } - riskTaskRepository.updateTask(eduTask.getId(), toInsert.size(), toUpdate.size()); + riskTaskRepository.updateTask(genderTask.getId(), toInsertGender.size(), 0); } @Override @@ -157,66 +127,59 @@ public class RiskTaskServiceImpl implements RiskTaskService { List toInsert1 = new ArrayList<>(); List toInsert2 = new ArrayList<>(); - String areCode = "431122,431322,433127,431382,430525,430722"; for (RiskPersonal person : domain.getPersons()) { GBaseSYRKXX xx = xxMap.get(person.getIdCode()); if (xx == null) { continue; } - if (xx.getXlmc() != null && oldEduMap.get(person.getIdCode()) == null) { - String edu = switch (xx.getXlmc()) { - case "小学教育", "文盲", "小学毕业", "小学肄业", "其他" -> "小学及以下"; - case "初中毕业", "初级中等教育", "初中肄业" -> "初中"; - case "普通高中结业", "普通高级中学教育", "普通高中毕业", "普通高中肄业", "中等专科结业", "中等专科教育", "中等专业毕业", "技工学校肄业" -> - "高中/中专"; - case "大学专科毕业", "大学专科结业", "大学本科/专科教育", "大学生本科结业", "大学生普通班毕业", "大学生本科肄业", "大学生本科毕业" -> - "大学"; - case "硕士研究生毕业", "研究生教育", "研究生班肄业" -> "大学以上"; - default -> null; - }; - if (edu != null) { - Integer score = Edu.contains(edu); - //创建新的 - toInsert1.add(DataUtil.createClueData(eduTask, ClueData.builder() - .id("") - .score(score) - .personId(person.getId()) - .tags(List.of(edu)) - .sourceData("该人员的学历为" + xx.getXlmc() + ",属于" + edu) - .name(person.getName()) - .idCode(person.getIdCode()) - .eventTime(null) - .build())); - } - } - if(xx.getCsdxzqhdm() != null && oldAreaMap.get(person.getIdCode()) == null) { - if(!areCode.contains(xx.getCsdxzqhdm())) { - continue; - } - toInsert2.add(DataUtil.createClueData(areaTask, ClueData.builder() - .id(BhUtil.sfBh(person.getId().toString())) - .score(5) - .personId(person.getId()) - .tags(List.of(xx.getCsdxzqhmc())) - .sourceData("发现该人员在" + xx.getCsdxzqhmc() + "成长,该地区暴力警情情况较多") - .name(person.getName()) - .idCode(person.getIdCode()) - .eventTime(null) - .build())); - } + RiskModelTaskClue areaClue = area(xx, person, areaTask, oldAreaMap.get(person.getIdCode())); + if (areaClue != null) toInsert2.add(areaClue); + RiskModelTaskClue eudClue = edu(xx, person, eduTask, oldEduMap.get(person.getIdCode())); + if (eudClue != null) toInsert1.add(eudClue); } - if(!toInsert1.isEmpty()) { + if (!toInsert1.isEmpty()) { log.info("保存学历:{}", toInsert1.size()); riskModelTaskClueService.saveClues(toInsert1, "B4文化程度"); } riskTaskRepository.updateTask(eduTask.getId(), toInsert1.size(), 0); - if(!toInsert2.isEmpty()) { + if (!toInsert2.isEmpty()) { log.info("保存风险区域:{}", toInsert2.size()); riskModelTaskClueService.saveClues(toInsert2, "B10民风习俗"); } riskTaskRepository.updateTask(areaTask.getId(), toInsert2.size(), 0); } + RiskModelTaskClue edu(GBaseSYRKXX xx, RiskPersonal person, RiskTask task, RiskModelTaskClue oldClue) { + if (xx.getXlmc() == null || oldClue != null) return null; + EduType type = EduType.contains(xx.getXlmc()); + if (type == null) return null; + return DataUtil.createClueData(task, ClueData.builder() + .id("") + .score(type.getScore()) + .personId(person.getId()) + .tags(List.of(type.getDesc())) + .sourceData("该人员的学历为" + xx.getXlmc() + ",属于" + type.getDesc()) + .name(person.getName()) + .idCode(person.getIdCode()) + .eventTime(null) + .build()); + } + + RiskModelTaskClue area(GBaseSYRKXX xx, RiskPersonal person, RiskTask task, RiskModelTaskClue oldClue) { + if (xx.getCsdxzqhdm() == null || oldClue != null) return null; + if (!Area.HEIGHT_RISK_AREA_CODE.contains(xx.getCsdxzqhdm())) return null; + return DataUtil.createClueData(task, ClueData.builder() + .id(BhUtil.sfBh(person.getId().toString())) + .score(5) + .personId(person.getId()) + .tags(List.of(xx.getCsdxzqhmc())) + .sourceData("发现该人员在" + xx.getCsdxzqhmc() + "成长,该地区暴力警情情况较多") + .name(person.getName()) + .idCode(person.getIdCode()) + .eventTime(null) + .build()); + } + @Override public void behavior(TaskParamDomain domain) { RiskTask task = riskTaskRepository.create(domain.getPersons().size(), 20); @@ -265,12 +228,12 @@ public class RiskTaskServiceImpl implements RiskTaskService { person = idNumberMap.get(s); if (person != null) { clueData.add(ClueData.builder() - .id(gBaseJJD.getJjdbh()) + .id(BhUtil.jjdBh(gBaseJJD.getJjdbh())) .name(person.getName()) .idCode(person.getIdCode()) - .tag(JSONObject.of("jqxzmc", gBaseJJD.getJqxzmc(), "cjqk", gBaseJJD.getCjqk()).toJSONString()) - .departName(gBaseJJD.getGxdwmc()) - .departId(gBaseJJD.getGxdwdm()) + .tags(List.of(gBaseJJD.getJqxzmc())) + .sourceData("该人员存在个人极端警情,案件性质为:" + gBaseJJD.getJqxzmc() + ",接警单编号为" + gBaseJJD.getJjdbh()) + .score(10) .personId(person.getId()) .eventTime(gBaseJJD.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()) .build()); @@ -279,18 +242,17 @@ public class RiskTaskServiceImpl implements RiskTaskService { continue; } ClueData data = ClueData.builder() - .id(gBaseJJD.getJjdbh()) + .id(BhUtil.jjdBh(gBaseJJD.getJjdbh())) .name(person.getName()) .idCode(person.getIdCode()) - .tag(JSONObject.of("jqxzmc", gBaseJJD.getJqxzmc(), "cjqk", gBaseJJD.getCjqk()).toJSONString()) - .departName(gBaseJJD.getGxdwmc()) - .departId(gBaseJJD.getGxdwdm()) + .tags(List.of(gBaseJJD.getJqxzmc())) + .sourceData("该人员存在个人极端警情,案件性质为:" + gBaseJJD.getJqxzmc() + ",接警单编号为" + gBaseJJD.getJjdbh()) + .score(10) .personId(person.getId()) .build(); try { data.setEventTime(gBaseJJD.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); - } catch (Exception e) { - log.error("报案日期转LocalDateTime异常"); + } catch (Exception ignored) { } clueData.add(data); } @@ -301,7 +263,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { for (ClueData clueDatum : clueData) { List tmpList = oldMap.get(clueDatum.getIdCode()); if (tmpList == null || tmpList.isEmpty()) { - toInsert.add(createClue(task.getId(), 10, task.getId(), clueDatum, BhUtil.jjdBh(clueDatum.getId()))); + toInsert.add(DataUtil.createClueData(task, clueDatum)); continue; } boolean exist = false; @@ -312,7 +274,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { } } if (!exist) { - toInsert.add(createClue(task.getId(), 10, task.getId(), clueDatum, BhUtil.jjdBh(clueDatum.getId()))); + toInsert.add(DataUtil.createClueData(task, clueDatum)); } } StringBuilder sb = new StringBuilder(); @@ -322,150 +284,44 @@ public class RiskTaskServiceImpl implements RiskTaskService { TxtUtil.write(sb.toString(), "/work/test.txt"); } - @Override - public void riskAreaModelTask(TaskParamDomain domain) { - RiskTask task = riskTaskRepository.create(domain.getPersons().size(), 41); - List> idCards = new ArrayList<>(); - // 旧的clue - List oldClueList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); - Map map = oldClueList.stream().collect(Collectors.toMap(RiskModelTaskClue::getIdCode, RiskModelTaskClue::getIdCode, (oldValue, newValue) -> newValue)); - Map personMap = new HashMap<>(); - // 将旧clue的人剔除出去,一个人的出生地一般不会变 - for (RiskPersonal person : domain.getPersons()) { - if (map.get(person.getIdCode()) != null) { - continue; - } - if (idCards.isEmpty() || idCards.getLast().size() >= 10000) { - idCards.add(new ArrayList<>()); - } - idCards.getLast().add(person.getIdCode()); - personMap.put(person.getIdCode(), person); - } - if (idCards.isEmpty()) { - riskTaskRepository.updateTask(task.getId(), 0, 0); - return; - } - - List xxList = new ArrayList<>(); - List area = List.of("431122", "431322", "433127", "431382", "430525", "430722"); - int count = idCards.size(); - for (List idCard : idCards) { - count--; - xxList.addAll(syrkxxRepository.list(new LambdaQueryWrapper() - .select(GBaseSYRKXX::getXm, GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getCsdxzqhdm, GBaseSYRKXX::getCsdxzqhmc) - .in(GBaseSYRKXX::getCsdxzqhdm, area) - .in(GBaseSYRKXX::getGmsfhm, idCard))); - log.info("地区进度 | {}", count); - } - - if (xxList.isEmpty()) { - riskTaskRepository.updateTask(task.getId(), 0, 0); - return; - } - - List toInsert = new ArrayList<>(); - // 新增 - for (GBaseSYRKXX gBaseSYRKXX : xxList) { - RiskPersonal person = personMap.get(gBaseSYRKXX.getGmsfhm()); - 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() + "成长,该地区暴力警情情况较多") - .tag(gBaseSYRKXX.getCsdxzqhmc()) - .build(), "area___" + person.getId().toString())); - } - log.info("开始操作新增项:{}", toInsert.size()); - riskModelTaskClueService.saveClues(toInsert, Default.FIGHT_IG); - riskTaskRepository.updateTask(task.getId(), toInsert.size(), 0); - } - - private final SupExternalDepartRepository externalDepartRepository; - - private final GBaseZDRYRepository zdryRepository; - @Override public void heightFight(TaskParamDomain domain) { - // 战斗过的用户 - List xxList = syrkxxRepository.getBaseMapper().selectHeightFight("2024-01-01 00:00:00"); - log.info("用户数 : {}", xxList.size()); - Map syrkxxMap = xxList.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (oldValue, newValue) -> newValue)); - - List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalShortName, SupExternalDepart::getSource) - .eq(SupExternalDepart::getSource, "重点人员")); - Map jqExternalDepart = supDeparts.stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val)); - - List orgs = zdryRepository.getBaseMapper().selectOrg(); - Map orgIdMap = new WeakHashMap<>(); - Map orgCodeMap = new WeakHashMap<>(); - for (PointOrg org : orgs) { - orgIdMap.put(org.getId(), org); - orgCodeMap.put(org.getDm(), org); - } + LocalDateTime time = LocalDateTime.now().minusYears(1); - RiskTask task = riskTaskRepository.create(xxList.size(), 42); + List fightMans = syrkxxRepository.getBaseMapper().selectFightMan(time.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - List idCodes = xxList.stream().map(GBaseSYRKXX::getGmsfhm).distinct().toList(); - log.info("查询用户数 : {}", idCodes.size()); - - List fightMans = syrkxxRepository.getBaseMapper().selectListByIdCode(idCodes); - log.info("fightman : {}", fightMans.size()); - - Map personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (oldValue, newValue) -> newValue)); + RiskTask task = riskTaskRepository.create(fightMans.size(), 42); Map oldMap = domain.getOldMap(task.getModelId(), true); List toUpdates = new ArrayList<>(); List toInsert = new ArrayList<>(); - List toInsertPeople = new ArrayList<>(); - Map fightManMap = new HashMap<>(); - List manList = new ArrayList<>(); - int count = 0; - for (FightMan fightMan : fightMans) { - if (fightMan.getFightCount() < 5) { - continue; - } - count++; + Map fightManMap = fightMans.stream().collect(Collectors.toMap(FightMan::getGmsfhm, Function.identity(), (val, old) -> val)); + + for (RiskPersonal person : domain.getPersons()) { + FightMan fightMan = fightManMap.get(person.getIdCode()); + if (fightMan == null) continue; + RiskModelTaskClue old = oldMap.get(fightMan.getGmsfhm()); if (old != null) { RiskModelTaskClue update = new RiskModelTaskClue(); update.setId(old.getId()); update.setData("该人员在近期发生" + fightMan.getFightCount() + "起矛盾纠纷,属于高频次矛盾纠纷发生人员"); + update.setEventTime(LocalDateTime.now()); toUpdates.add(update); + // 剩下的是没有矛盾的人 + oldMap.remove(fightMan.getGmsfhm()); continue; } - // 看看人员信息是否存在,决定需要增加人员不 - RiskPersonal person = personalMap.get(fightMan.getGmsfhm()); - if (person == null) { - fightManMap.put(fightMan.getGmsfhm(), fightMan); - manList.add(fightMan.getGmsfhm()); - continue; - } - RiskModelTaskClue clue = createClue(task.getModelId(), 3, person, task.getId(), fightMan.getFightCount() + "起纠纷", "该人员在近期发生" + fightMan.getFightCount() + "起矛盾纠纷,属于高频次矛盾纠纷发生人员"); - toInsert.add(clue); - person.setId(null); - person.setTags(Default.FIGHT_MUCH); - toInsertPeople.add(person); - } - log.info("大于等于5的个数 : {}", count); - - - List list = syrkxxRepository.list(new LambdaQueryWrapper() - .select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXm, GBaseSYRKXX::getLxdh, GBaseSYRKXX::getSspcsdm) - .in(GBaseSYRKXX::getGmsfhm, manList)); - - Map map = list.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (oldValue, newValue) -> newValue)); - for (RiskPersonal person : domain.getPersons()) { - FightMan fightMan = fightManMap.get(person.getIdCode()); - if(fightMan == null) { - continue; - } - RiskModelTaskClue clue = createClue(task.getModelId(), 3, person, task.getId(), fightMan.getFightCount() + "起纠纷", "该人员在近期发生" + fightMan.getFightCount() + "起矛盾纠纷,属于高频次矛盾纠纷发生人员"); - toInsert.add(clue); + toInsert.add(DataUtil.createClueData(task, ClueData.builder() + .score(3) + .idCode(person.getIdCode()) + .personId(person.getId()) + .name(person.getName()) + .tags(List.of(fightMan.getFightCount() + "起纠纷")) + .sourceData("该人员在近期发生" + fightMan.getFightCount() + "起矛盾纠纷,属于高频次矛盾纠纷发生人员") + .build())); } if (!toUpdates.isEmpty()) { @@ -478,163 +334,4 @@ public class RiskTaskServiceImpl implements RiskTaskService { } riskTaskRepository.updateTask(task.getId(), toInsert.size(), toUpdates.size()); } - - /** - * 年龄模型 - * - * @param domain 参数 - * @param task 任务 - */ - void ageModel(TaskParamDomain domain, RiskTask task) { - List taskClue = new ArrayList<>(); - List toHidden = new ArrayList<>(); - Map oldMap = domain.getOldMap(task.getModelId(), true); - LocalDate now = LocalDate.now(); - for (RiskPersonal person : domain.getPersons()) { - if (person.getIdCode() == null) { - continue; - } - RiskModelTaskClue old = oldMap.get(person.getIdCode()); - Integer age = IdCodeUtil.idCard2Age(person.getIdCode(), now); - 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 <= 24) { - taskClue.add(DataUtil.createClueData(task, ClueData.builder() - .id("") - .score(1) - .personId(person.getId()) - .tags(List.of("年龄处于16岁至24岁之间")) - .sourceData("该人员年龄为" + age + ",属于16岁至24岁之间") - .name(person.getName()) - .idCode(person.getIdCode()) - .eventTime(null) - .build())); - } - if (age >= 25 && age <= 34) { - taskClue.add(DataUtil.createClueData(task, ClueData.builder() - .id("") - .score(3) - .personId(person.getId()) - .tags(List.of("年龄处于25岁至34岁之间")) - .sourceData("该人员年龄为" + age + ",属于25岁至34岁之间") - .name(person.getName()) - .idCode(person.getIdCode()) - .eventTime(null) - .build())); - } - if (age >= 35 && age <= 55) { - taskClue.add(DataUtil.createClueData(task, ClueData.builder() - .id("") - .score(5) - .personId(person.getId()) - .tags(List.of("年龄处于35岁至55岁之间")) - .sourceData("该人员年龄为" + age + ",属于35岁至55岁之间") - .name(person.getName()) - .idCode(person.getIdCode()) - .eventTime(null) - .build())); - } - if (age >= 56 && age <= 65) { - taskClue.add(DataUtil.createClueData(task, ClueData.builder() - .id("") - .score(3) - .personId(person.getId()) - .tags(List.of("年龄处于56岁至66岁之间")) - .sourceData("该人员年龄为" + age + ",属于56岁至66岁之间") - .name(person.getName()) - .idCode(person.getIdCode()) - .eventTime(null) - .build())); - } - if (age >= 66 && age <= 75) { - taskClue.add(DataUtil.createClueData(task, ClueData.builder() - .id("") - .score(1) - .personId(person.getId()) - .tags(List.of("年龄处于66岁至75岁之间")) - .sourceData("该人员年龄为" + age + ",属于66岁至75岁之间") - .name(person.getName()) - .idCode(person.getIdCode()) - .eventTime(null) - .build())); - } - } - riskModelTaskClueService.saveClues(taskClue, "B2年龄"); - if (!toHidden.isEmpty()) { - clueRepository.updateBatchById(toHidden); - } - riskTaskRepository.updateTask(task.getId(), taskClue.size(), toHidden.size()); - } - - /** - * 性别模型 - * - * @param domain 参数 - * @param 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 || !person.getGender().equals("1")) { - continue; - } - if (oldMap.get(person.getIdCode()) != null) { - continue; - } - taskClue.add(DataUtil.createClueData(task, ClueData.builder() - .id("") - .score(5) - .personId(person.getId()) - .tags(List.of("男性")) - .sourceData("该人员性别为男性") - .name(person.getName()) - .idCode(person.getIdCode()) - .eventTime(null) - .build())); - } - riskModelTaskClueService.saveClues(taskClue, "B1性别"); - riskTaskRepository.updateTask(task.getId(), taskClue.size(), 0); - } - - RiskModelTaskClue createClue(Integer modelId, Integer score, RiskPersonal person, Integer taskId, String reason, String data) { - RiskModelTaskClue clue = new RiskModelTaskClue(); - clue.setModelId(modelId); - clue.setScore(score); - clue.setName(person.getName()); - clue.setIdCode(person.getIdCode()); - clue.setTaskId(taskId); - clue.setRiskReason(reason); - clue.setData(data); - clue.setCreateTime(LocalDateTime.now()); - clue.setUpdateTime(LocalDateTime.now()); - clue.setEventTime(LocalDateTime.now()); - return clue; - } - - RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data, String caseId) { - RiskModelTaskClue clue = new RiskModelTaskClue(); - clue.setModelId(modelId); - clue.setScore(score); - clue.setName(data.getName()); - clue.setIdCode(data.getIdCode()); - clue.setTaskId(taskId); - clue.setData(data.getSourceData()); - clue.setEventTime(data.getEventTime()); - clue.setCreateTime(LocalDateTime.now()); - clue.setUpdateTime(LocalDateTime.now()); - clue.setCaseIds(caseId); - data.setPersonId(null); - clue.setRiskReason(data.getTag()); - return clue; - } } diff --git a/src/main/java/com/biutag/supervisiondata/task/TaskService.java b/src/main/java/com/biutag/supervisiondata/task/TaskService.java index d62ed59..ba4fd55 100644 --- a/src/main/java/com/biutag/supervisiondata/task/TaskService.java +++ b/src/main/java/com/biutag/supervisiondata/task/TaskService.java @@ -1,5 +1,6 @@ package com.biutag.supervisiondata.task; +import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; import com.biutag.supervisiondata.service.*; import lombok.AllArgsConstructor; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -82,9 +83,24 @@ public class TaskService { } - TaskParamDomain initDomain() { + @Resource + private RiskTaskService riskTaskService; + + /** + * 2点更新模型 + */ + @Scheduled(cron = "0 0 02 * * ?") + public void modelRefresh() { + CompletableFutureUtil.runSync(() -> { + riskTaskService.eduAndAreaModelTask(initDomain(List.of(34,41))); + riskTaskService.infoModelTask(initDomain(List.of(32,33))); + }); + } + + TaskParamDomain initDomain(List modelIds) { List persons = riskPersonalRepository.list(); List clues = riskModelTaskClueRepository.list(new LambdaQueryWrapper() + .in(RiskModelTaskClue::getModelId, modelIds) .eq(RiskModelTaskClue::getDel, 0)); Map> map = clues.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getModelId)); return new TaskParamDomain(persons, map);