From 7ca66dc16fa4caa8a9c9af082a4ddee60bc87df5 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Tue, 26 Nov 2024 10:00:25 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=AE=A1=E8=BE=96?= =?UTF-8?q?=E5=8D=95=E4=BD=8D=E7=B1=BB=E5=9E=8B=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/RiskPersonalServiceImpl.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java index cb2f091..0720996 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java @@ -72,16 +72,16 @@ public class RiskPersonalServiceImpl implements RiskPersonalService { for (Map.Entry> entry : map.entrySet()) { RiskPersonal tmp = entry.getValue().getFirst(); - for (RiskPersonal riskPersonal : entry.getValue()) { - RiskPersonalTag tag = new RiskPersonalTag(); - tag.setBigTag(bigTag); - tag.setTagTime(Optional.ofNullable(riskPersonal.getControlTime()).orElse(LocalDateTime.now())); - tag.setName(riskPersonal.getName()); - tag.setIdCode(riskPersonal.getIdCode()); - tag.setSmallTag(riskPersonal.getTags()); - tag.setCreateTime(LocalDateTime.now()); - tags.add(tag); - } +// for (RiskPersonal riskPersonal : entry.getValue()) { +// RiskPersonalTag tag = new RiskPersonalTag(); +// tag.setBigTag(bigTag); +// tag.setTagTime(Optional.ofNullable(riskPersonal.getControlTime()).orElse(LocalDateTime.now())); +// tag.setName(riskPersonal.getName()); +// tag.setIdCode(riskPersonal.getIdCode()); +// tag.setSmallTag(riskPersonal.getTags()); +// tag.setCreateTime(LocalDateTime.now()); +// tags.add(tag); +// } // 看看这个人老数据里面有没有 RiskPersonal oldPersonal = oldMap.get(tmp.getIdCode()); if(oldPersonal == null) { From 04bdbd31e74d229fec915b659164a2025b41375c Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Tue, 26 Nov 2024 12:45:30 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E7=94=B1=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E6=94=B9=E5=88=B0=E8=B5=8B=E5=88=86=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=E6=A0=87=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/ApplicationEvent.java | 63 +++++++++--------- .../pojo/constants/Default.java | 25 +++++-- .../service/RiskModelTaskClueService.java | 2 +- .../service/impl/GBaseBAServiceImpl.java | 2 +- .../service/impl/HabitServiceImpl.java | 5 +- .../service/impl/MarriageServiceImpl.java | 3 +- .../service/impl/NoControlServiceImpl.java | 20 +++--- .../service/impl/PetitionServiceImpl.java | 2 +- .../service/impl/PointServiceImpl.java | 20 +++--- .../service/impl/PoliceServiceImpl.java | 12 ++-- .../impl/RiskModelTaskClueServiceImpl.java | 65 +++++++++++++++++-- .../service/impl/RiskTaskServiceImpl.java | 20 +++--- 12 files changed, 157 insertions(+), 82 deletions(-) diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index 291ca0b..ed03da8 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -98,39 +98,38 @@ public class ApplicationEvent { public void serviceReady() { RedisDao.getInstance().init(redisTemplate); -// LocalDateTime start = LocalDateTime.of(2024, 1, 1, 0, 0, 0); -// LocalDateTime end = LocalDateTime.now(); + LocalDateTime start = LocalDateTime.of(2024, 1, 1, 0, 0, 0); + LocalDateTime end = LocalDateTime.now(); CompletableFutureUtil.runSync(() -> { -// gBaseJJDService.pullAndSave(start, end); -// gBaseSHRWFRService.pullAndSave(start, end); -// petitionService.personPullAndSave(start, end); -// pointService.personPullAndSave(start, end); -// riskPersonalService.fixed(); - -// List persons = riskPersonalRepository.list(); -// List clues = riskModelTaskClueRepository.list(new LambdaQueryWrapper() -// .eq(RiskModelTaskClue::getDel, 0)); -// Map> map = clues.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getModelId)); -// TaskParamDomain domain = new TaskParamDomain(persons, map); -// riskTaskService.eduModelTask(domain); -// riskTaskService.infoModelTask(domain); -// riskTaskService.caseModelTask(domain); -// gBaseBAService.baModelTask(domain); -// policeService.contradictModelTask(domain); -// habitService.habitModelTask(domain); -// marriageService.marriageModelTask(domain); -// petitionService.petitionModelTask(domain); -// riskTaskService.riskAreaModelTask(domain); -// riskTaskService.heightFight(domain); -// pointService.syncScore(domain); -// pointService.syncViolence(domain); -// noControlService.syncNoControlData(domain); -// pointService.syncKillSelf(domain); -// pointService.syncDrug(domain); -// pointService.syncControlNoPower(domain); -// riskScoreRuleService.runScore(); -// pointService.syncPointCall(domain); - personalService.syncOrg(); + gBaseJJDService.pullAndSave(start, end); + gBaseSHRWFRService.pullAndSave(start, end); + petitionService.personPullAndSave(start, end); + pointService.personPullAndSave(start, end); + riskPersonalService.fixed(); + + List persons = riskPersonalRepository.list(); + List clues = riskModelTaskClueRepository.list(new LambdaQueryWrapper() + .eq(RiskModelTaskClue::getDel, 0)); + Map> map = clues.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getModelId)); + TaskParamDomain domain = new TaskParamDomain(persons, map); + riskTaskService.eduModelTask(domain); + riskTaskService.infoModelTask(domain); + riskTaskService.caseModelTask(domain); + gBaseBAService.baModelTask(domain); + policeService.contradictModelTask(domain); + habitService.habitModelTask(domain); + marriageService.marriageModelTask(domain); + petitionService.petitionModelTask(domain); + riskTaskService.riskAreaModelTask(domain); + riskTaskService.heightFight(domain); + pointService.syncScore(domain); + pointService.syncViolence(domain); + noControlService.syncNoControlData(domain); + pointService.syncKillSelf(domain); + pointService.syncDrug(domain); + pointService.syncControlNoPower(domain); + pointService.syncPointCall(domain); +// personalService.syncOrg(); }); } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java index f980741..4dbc810 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java @@ -18,15 +18,17 @@ public class Default { public static final String BIG_TAG_SHWFR = "涉违法犯罪人员"; - public static final String PETITION_CASE_TAG = "案件核查"; + public static final String PETITION_CASE_TAG = "信访、投诉-案件核查"; - public static final String PETITION_12337_TAG = "12337"; + public static final String PETITION_12337_TAG = "信访、投诉-12337"; - public static final String PETITION_TAG = "信访投诉"; + public static final String PETITION_TAG = "信访、投诉-其他信访投诉"; public static final String BIG_TAG_PETITION = "涉投诉举报信访人员"; - public static final String BA_TAG = "从事特种职业-保安"; + public static final String BA_TAG = "保安"; + + public static final String DRUG_TAG = "涉药"; public static final String BIG_TAG_TRUBO = "涉矛盾纠纷"; @@ -40,4 +42,19 @@ public class Default { public static final String CALL_REDIS = "call:point"; + public static final String TAG_IMPORT = "特殊职业"; + + public static final String BAD_HABBIT = "不良嗜好"; + + public static final String MARRAY = "感情失意"; + + public static final String NO_CONTROLLER ="管控不到位"; + + public static final String VIOLENCE ="暴力人员"; + + public static final String KILL_SELF = "扬言滋事、自杀等行为"; + + public static final String BASIC = "基础信息"; + + } diff --git a/src/main/java/com/biutag/supervisiondata/service/RiskModelTaskClueService.java b/src/main/java/com/biutag/supervisiondata/service/RiskModelTaskClueService.java index 61c659d..a4075bf 100644 --- a/src/main/java/com/biutag/supervisiondata/service/RiskModelTaskClueService.java +++ b/src/main/java/com/biutag/supervisiondata/service/RiskModelTaskClueService.java @@ -12,5 +12,5 @@ import java.util.List; */ public interface RiskModelTaskClueService { - void saveClues(List list); + void saveClues(List list, String bigTag); } diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseBAServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseBAServiceImpl.java index f82bb72..65db8db 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseBAServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseBAServiceImpl.java @@ -129,7 +129,7 @@ public class GBaseBAServiceImpl implements GBaseBAService { log.info("数据库操作阶段"); // 新增 if (!toInsert.isEmpty()) { - riskModelTaskClueService.saveClues(toInsert); + riskModelTaskClueService.saveClues(toInsert, Default.TAG_IMPORT); } // 修改 if (!toUpdate.isEmpty()) { 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 f374409..b11cc7c 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java @@ -3,6 +3,7 @@ package com.biutag.supervisiondata.service.impl; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.biutag.supervisiondata.pojo.ClueData; +import com.biutag.supervisiondata.pojo.constants.Default; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX; @@ -134,7 +135,7 @@ public class HabitServiceImpl implements HabitService { .departName(aj.getBadwidmc()) .name(person.getName()) .idCode(person.getIdCode()) - .tag(aj.getAjlbmc()) + .tag("不良嗜好-"+aj.getAjlbmc()) .personId(person.getId()) .sourceData("结合案件信息和违法人信息相关数据,发现该人员有:"+aj.getAjlbmc()+"类型的案件,案件编号为:"+aj.getAjbh()+",属于存在不良嗜好,增加风险分1分(存在涉赌、涉酒、涉黄不良嗜好的,每项+1分,最高3分)") .build(); @@ -192,7 +193,7 @@ public class HabitServiceImpl implements HabitService { } log.info("开始进行数据库操作"); if(!toInsert.isEmpty()) { - riskModelTaskClueService.saveClues(toInsert); + riskModelTaskClueService.saveClues(toInsert, Default.TAG_IMPORT); } if(!toInsertRecord.isEmpty()) { controlRecordService.batchInsert(toInsertRecord); 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 c3a4b9d..8240ef3 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java @@ -3,6 +3,7 @@ package com.biutag.supervisiondata.service.impl; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.biutag.supervisiondata.pojo.ClueData; +import com.biutag.supervisiondata.pojo.constants.Default; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseHY; @@ -147,7 +148,7 @@ public class MarriageServiceImpl implements MarriageService { } if(!toInsertData.isEmpty()) { - riskModelTaskClueService.saveClues(toInsert); + riskModelTaskClueService.saveClues(toInsert, Default.MARRAY); } if(!toUpdateData.isEmpty()) { log.info("修改线索 | {}", toUpdateData.size()); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java index a8d6d9d..e3edbd5 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java @@ -52,7 +52,7 @@ public class NoControlServiceImpl implements NoControlService { // clue 应该要看结婚状态 RiskTask task = createTask(domain.getPersons().size(), 45); riskTaskRepository.save(task); - RiskTask task2 = createTask(domain.getPersons().size(), 47); + RiskTask task2 = createTask(domain.getPersons().size(), 49); riskTaskRepository.save(task2); List clueData = new ArrayList<>(); @@ -83,14 +83,14 @@ public class NoControlServiceImpl implements NoControlService { idCodes.put(clueDatum.getIdCode(), personal); toUpdate.add(newOne); } - RiskPersonalTag tag = new RiskPersonalTag(); - tag.setBigTag(Default.NO_CONTROL); - tag.setTagTime(Optional.ofNullable(clueDatum.getEventTime()).orElse(LocalDateTime.now())); - tag.setName(clueDatum.getName()); - tag.setIdCode(clueDatum.getIdCode()); - tag.setSmallTag(clueDatum.getTag()); - tag.setCreateTime(LocalDateTime.now()); - tags.add(tag); +// RiskPersonalTag tag = new RiskPersonalTag(); +// tag.setBigTag(Default.NO_CONTROL); +// tag.setTagTime(Optional.ofNullable(clueDatum.getEventTime()).orElse(LocalDateTime.now())); +// tag.setName(clueDatum.getName()); +// tag.setIdCode(clueDatum.getIdCode()); +// tag.setSmallTag(clueDatum.getTag()); +// tag.setCreateTime(LocalDateTime.now()); +// tags.add(tag); if(clueDatum.getTag().equals("神疾病三级以上人员管控不到位")) { clues.add(createClue(task2.getModelId(), 3, task.getId(), clueDatum)); } else { @@ -106,7 +106,7 @@ public class NoControlServiceImpl implements NoControlService { personalRepository.updateBatchById(toUpdate); } if(!clues.isEmpty()) { - clueService.saveClues(clues); + clueService.saveClues(clues, Default.NO_CONTROLLER); } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); 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 c4dcac8..7dd44fe 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java @@ -467,7 +467,7 @@ public class PetitionServiceImpl implements PetitionService { } } if(!toInsert.isEmpty()) { - riskModelTaskClueService.saveClues(toInsert); + riskModelTaskClueService.saveClues(toInsert, Default.BIG_TAG_PETITION); } if(!toUpdates.isEmpty()) { 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 a150a07..60cddf6 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -82,7 +82,7 @@ public class PointServiceImpl implements PointService { .eventTime(Optional.ofNullable(personal.getControlTime()).orElse(LocalDateTime.now())) .departId(personal.getControlDepartId()) .departName(personal.getControlDepartName()) - .sourceData("该人员存在标签:" + personal.getTags() + ",属于特定人员,增加风险分5分") + .sourceData("该人员存在标签:" + personal.getTags() + ",属于重点人员,增加风险分5分") .build())); } continue; @@ -97,13 +97,13 @@ public class PointServiceImpl implements PointService { .eventTime(Optional.ofNullable(personal.getControlTime()).orElse(LocalDateTime.now())) .departId(personal.getControlDepartId()) .departName(personal.getControlDepartName()) - .sourceData("该人员存在标签:" + personal.getTags() + ",属于特定人员,增加风险分5分") + .sourceData("该人员存在标签:" + personal.getTags() + ",属于重点人员,增加风险分5分") .build())); } } } if (!toInsert.isEmpty()) { - modelTaskClueService.saveClues(toInsert); + modelTaskClueService.saveClues(toInsert, Default.POINT_POEPLE); } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); @@ -165,7 +165,7 @@ public class PointServiceImpl implements PointService { } if (!toInsert.isEmpty()) { - modelTaskClueService.saveClues(toInsert); + modelTaskClueService.saveClues(toInsert, Default.VIOLENCE); } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); @@ -215,7 +215,7 @@ public class PointServiceImpl implements PointService { } if (!toInsert.isEmpty()) { - modelTaskClueService.saveClues(toInsert); + modelTaskClueService.saveClues(toInsert, Default.KILL_SELF); } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); @@ -228,7 +228,7 @@ public class PointServiceImpl implements PointService { @Override public void syncDrug(TaskParamDomain domain) { - RiskTask task = createTask(domain.getPersons().size(), 47); + RiskTask task = createTask(domain.getPersons().size(), 37); taskRepository.save(task); Map oldMap = domain.getOldMap(task.getModelId(), true); @@ -255,7 +255,7 @@ public class PointServiceImpl implements PointService { } if (!toInsert.isEmpty()) { log.info("增加涉药人员:{}", toInsert.size()); - modelTaskClueService.saveClues(toInsert); + modelTaskClueService.saveClues(toInsert, Default.DRUG_TAG); } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); @@ -298,7 +298,7 @@ public class PointServiceImpl implements PointService { } if (!toInsert.isEmpty()) { log.info("增加特定对象日常管控不到位人员:{}", toInsert.size()); - modelTaskClueService.saveClues(toInsert); + modelTaskClueService.saveClues(toInsert, Default.NO_CONTROLLER); } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); @@ -400,7 +400,7 @@ public class PointServiceImpl implements PointService { ClueData data = ClueData.builder() .name(personal.getName()) .idCode(personal.getIdCode()) - .tag("特定对象日常管控不到位") + .tag("重点对象报警次数异常") .departId(personal.getControlDepartId()) .departName(call.getControlName()) .personId(personal.getId()) @@ -416,7 +416,7 @@ public class PointServiceImpl implements PointService { if (!toInsert.isEmpty()) { log.info("增加特定对象日常管控不到位人员:{}", toInsert.size()); - modelTaskClueService.saveClues(toInsert); + modelTaskClueService.saveClues(toInsert, Default.BAD_HABBIT); } RiskTask updateTask = new RiskTask(); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java index bc1a75d..61f0d9a 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java @@ -121,7 +121,7 @@ public class PoliceServiceImpl implements PoliceService { } } if(insert) { - toInsert.add(createClue(task.getModelId(), 1, person, task.getId(), jjd, "通过对近12个月的警情筛查,发现该人员涉及:"+jjd.getJqxzmc()+"的警情,接警单编号为:"+jjd.getJjdbh()+",该警情属于矛盾纠纷,增加风险分1分(发生一起增加1分,最高10分)")); + toInsert.add(createClue(task, 1, person, "涉纠纷警情-"+jjd.getJqxzmc(), jjd, "通过对近12个月的警情筛查,发现该人员涉及:"+jjd.getJqxzmc()+"的警情,接警单编号为:"+jjd.getJjdbh()+",该警情属于矛盾纠纷,增加风险分1分(发生一起增加1分,最高10分)")); RiskPersonalControlRecord tmpRecord = createControlRecord(person, jjd, toInsert.getLast().getRiskReason()); controlRecords.add(tmpRecord); if(person.getControlTime() == null || tmpRecord.getControlTime().isAfter(person.getControlTime())) { @@ -133,7 +133,7 @@ public class PoliceServiceImpl implements PoliceService { } if(!toInsert.isEmpty()) { log.info("新增线索:{}",toInsert.size()); - riskModelTaskClueService.saveClues(toInsert); + riskModelTaskClueService.saveClues(toInsert, Default.BIG_TAG_TRUBO); } if(!controlRecords.isEmpty()) { log.info("新增管控记录:{}",controlRecords.size()); @@ -174,14 +174,14 @@ public class PoliceServiceImpl implements PoliceService { return personToUpdate; } - RiskModelTaskClue createClue(Integer modelId, Integer score, RiskPersonal person, Integer taskId,GBaseJJD jjd, String data) { + RiskModelTaskClue createClue(RiskTask task, Integer score, RiskPersonal person, String tag,GBaseJJD jjd, String data) { RiskModelTaskClue clue = new RiskModelTaskClue(); - clue.setModelId(modelId); + clue.setModelId(task.getModelId()); clue.setScore(score); clue.setName(person.getName()); clue.setIdCode(person.getIdCode()); - clue.setTaskId(taskId); - clue.setRiskReason(jjd.getJqxzmc()); + clue.setTaskId(task.getId()); + clue.setRiskReason(tag); clue.setData(data); clue.setEventTime(jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); clue.setCreateTime(LocalDateTime.now()); 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 507f4d2..49f2100 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java @@ -1,13 +1,17 @@ package com.biutag.supervisiondata.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.biutag.supervisiondata.common.exception.BusinessException; import com.biutag.supervisiondata.common.response.StatusCode; import com.biutag.supervisiondata.mapper.mine.RiskModelTaskClueMapper; +import com.biutag.supervisiondata.pojo.constants.Default; import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalControlRecord; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalTag; +import com.biutag.supervisiondata.repository.RiskPersonalTagRepository; import com.biutag.supervisiondata.service.RiskModelTaskClueService; +import com.biutag.supervisiondata.service.RiskPersonalTagService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; @@ -17,9 +21,9 @@ import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; +import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -36,13 +40,15 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { @Qualifier("chaosBean") private final DataSource dataSource; - public Connection getConnection() throws SQLException { + private final RiskPersonalTagRepository tagRepository; + + Connection getConnection() throws SQLException { return dataSource.getConnection(); } @Override - public void saveClues(List list) { + public void saveClues(List list, String bigTag) { List> control = IntStream.range(0, (list.size() + 9999) / 10000) .mapToObj(i -> list.subList(i * 10000, Math.min((i + 1) * 10000, list.size()))) .collect(Collectors.toList()); @@ -53,6 +59,46 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { log.error("", e); } } + + Map> map = list.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); + // 标签要插入的人员 + List idCodes = new ArrayList<>(); + for (Map.Entry> entry : map.entrySet()) { + idCodes.add(entry.getKey()); + } + List oldTags = tagRepository.list(new LambdaQueryWrapper().eq(RiskPersonalTag::getBigTag, bigTag) + .in(RiskPersonalTag::getIdCode, idCodes)); + Map> oldTagMap = oldTags.stream().collect(Collectors.groupingBy(RiskPersonalTag::getIdCode)); + Map oldMap; + + List tags = new ArrayList<>(); + for (Map.Entry> entry : map.entrySet()) { + List oldTagList = Optional.ofNullable(oldTagMap.get(entry.getKey())).orElse(new ArrayList<>()); + // 旧的tag + oldMap = new WeakHashMap<>(); + for (RiskPersonalTag tag : oldTagList) { + oldMap.put(tag.getSmallTag(), new Byte[0]); + } + for (RiskModelTaskClue clue : entry.getValue()) { + if(bigTag.equals(Default.BIG_TAG_SHWFR)) { + String [] strs = clue.getRiskReason().split(","); + for (int i =0,len = strs.length; i < len; i++) { + if(oldMap.get(strs[i]) == null) { + tags.add(creatTag(bigTag, strs[i], clue)); + oldMap.put(strs[i], new Byte[0]); + } + } + continue; + } + if(oldMap.get(clue.getRiskReason()) == null) { + tags.add(creatTag(bigTag, clue.getRiskReason(), clue)); + oldMap.put(clue.getRiskReason(), new Byte[0]); + } + } + } + if(!tags.isEmpty()) { + tagRepository.saveBatch(tags, 10000); + } } final String sql = "INSERT INTO risk_model_task_clue(model_id, name, id_code, task_id, source_id, risk_reason, data, score, event_time, create_time, update_time, case_ids) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)"; @@ -87,4 +133,15 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { throw new BusinessException(StatusCode.BUSINESS, "数据保存失败"); } } + + RiskPersonalTag creatTag(String bigTag, String tag, RiskModelTaskClue clue) { + RiskPersonalTag riskTag = new RiskPersonalTag(); + riskTag.setBigTag(bigTag); + riskTag.setTagTime(LocalDateTime.now()); + riskTag.setName(clue.getName()); + riskTag.setIdCode(clue.getIdCode()); + riskTag.setSmallTag(tag); + riskTag.setCreateTime(LocalDateTime.now()); + return riskTag; + } } 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 c35ccad..2d9a865 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java @@ -111,7 +111,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { List clues = new ArrayList<>(); clues.addAll(infos[0].getToInsert()); clues.addAll(infos[1].getToInsert()); - riskModelTaskClueService.saveClues(clues); + riskModelTaskClueService.saveClues(clues, Default.BASIC); if(!infos[0].getToHidden().isEmpty()) { clueRepository.updateBatchById(infos[0].getToHidden()); } @@ -189,7 +189,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { int size = 0; if (!toInsert.isEmpty()) { size = toInsert.size(); - riskModelTaskClueService.saveClues(toInsert); + riskModelTaskClueService.saveClues(toInsert, Default.BASIC); log.info("批量新增学历完成"); } eduUpdate.setInsertSize(size); @@ -371,7 +371,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { RiskTask caseUpdate = new RiskTask(); caseUpdate.setId(caseTask.getId()); if (!toInsertClue.isEmpty()) { - riskModelTaskClueService.saveClues(toInsertClue); + riskModelTaskClueService.saveClues(toInsertClue, Default.BIG_TAG_SHWFR); } if (!toUpdateClue.isEmpty()) { clueRepository.updateBatchById(toUpdateClue); @@ -559,12 +559,12 @@ public class RiskTaskServiceImpl implements RiskTaskService { .personId(person.getId()) .eventTime(LocalDateTime.now()) .sourceData("发现该人员在"+gBaseSYRKXX.getCsdxzqhmc()+"成长,该地区暴力警情情况较多,增加风险分2分") - .tag(Default.FIGHT_BORN) + .tag(gBaseSYRKXX.getCsdxzqhmc()) .build(), "area___"+person.getId().toString())); } if(!toInsert.isEmpty()) { log.info("开始操作新增项:{}", toInsert.size()); - riskModelTaskClueService.saveClues(toInsert); + riskModelTaskClueService.saveClues(toInsert, Default.FIGHT_BORN); } RiskTask endTask = endTask(task.getId()); endTask.setInsertSize(toInsert.size()); @@ -619,7 +619,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { manList.add(fightMan.getGmsfhm()); continue; } - RiskModelTaskClue clue = createClue(task.getModelId(),3, person,task.getId(), Default.FIGHT_MUCH, "该人员在近期发生"+fightMan.getFightCount()+"起矛盾纠纷,属于高频次矛盾纠纷发生人员,增加风险分3分"); + RiskModelTaskClue clue = createClue(task.getModelId(),3, person,task.getId(), fightMan.getFightCount()+"起纠纷", "该人员在近期发生"+fightMan.getFightCount()+"起矛盾纠纷,属于高频次矛盾纠纷发生人员,增加风险分3分"); toInsert.add(clue); person.setId(null); person.setTags(Default.FIGHT_MUCH); @@ -659,7 +659,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { } if(!toInsert.isEmpty()) { log.info("新增线索 | {}", toInsert.size()); - riskModelTaskClueService.saveClues(toInsert); + riskModelTaskClueService.saveClues(toInsert, Default.FIGHT_MUCH); } RiskTask endTask = endTask(task.getId()); @@ -692,7 +692,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { } // 符合条件但是又没有旧数据 | 新增 if (age >= 16 && age <= 34) { - RiskModelTaskClue clue = createClue(33, 1, person, task.getId(), "年龄处于16岁至34岁之间", "该人员年龄为"+age+",属于16岁至34岁之间,增加风险分1分"); + RiskModelTaskClue clue = createClue(task.getModelId(), 1, person, task.getId(), "年龄处于16岁至34岁之间", "该人员年龄为"+age+",属于16岁至34岁之间,增加风险分1分"); taskClue.add(clue); if (old != null) { RiskModelTaskClue hidden = new RiskModelTaskClue(); @@ -703,7 +703,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { continue; } if (age >= 35 && age <= 55) { - RiskModelTaskClue clue = createClue(33, 2, person, task.getId(), "年龄处于35岁至55岁之间", "该人员年龄为"+age+",属于35岁至55岁之间,增加风险分2分"); + RiskModelTaskClue clue = createClue(task.getModelId(), 2, person, task.getId(), "年龄处于35岁至55岁之间", "该人员年龄为"+age+",属于35岁至55岁之间,增加风险分2分"); taskClue.add(clue); if (old != null) { RiskModelTaskClue hidden = new RiskModelTaskClue(); @@ -750,7 +750,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { if (oldMap.get(person.getIdCode()) != null) { continue; } - RiskModelTaskClue clue = createClue(32, 1, person, task.getId(), "性别为男性", "该人员性别为男性,增加风险分1分"); + RiskModelTaskClue clue = createClue(32, 1, person, task.getId(), "男性", "该人员性别为男性,增加风险分1分"); taskClue.add(clue); } return ClueInfo.builder().toInsert(taskClue).build(); From 092cffca122e2bd25c4ef0e5f5da4cb4024f3fac Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Tue, 26 Nov 2024 15:35:12 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E7=94=B1=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E6=94=B9=E5=88=B0=E8=B5=8B=E5=88=86=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=E6=A0=87=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/ApplicationEvent.java | 6 +- .../mapper/dwd/GBaseJJDMapper.java | 10 +- .../pojo/constants/Default.java | 2 + .../pojo/database/MuchCall.java | 18 +++ .../service/RiskPersonalService.java | 1 + .../service/impl/PointServiceImpl.java | 153 ++++++++---------- .../impl/RiskModelTaskClueServiceImpl.java | 28 ++-- .../service/impl/RiskPersonalServiceImpl.java | 27 +++- .../service/impl/RiskTaskServiceImpl.java | 3 +- 9 files changed, 149 insertions(+), 99 deletions(-) create mode 100644 src/main/java/com/biutag/supervisiondata/pojo/database/MuchCall.java diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index ed03da8..b0e88cb 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -112,6 +112,8 @@ public class ApplicationEvent { .eq(RiskModelTaskClue::getDel, 0)); Map> map = clues.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getModelId)); TaskParamDomain domain = new TaskParamDomain(persons, map); + petitionService.petitionModelTask(domain); + riskTaskService.heightFight(domain); riskTaskService.eduModelTask(domain); riskTaskService.infoModelTask(domain); riskTaskService.caseModelTask(domain); @@ -119,14 +121,14 @@ public class ApplicationEvent { policeService.contradictModelTask(domain); habitService.habitModelTask(domain); marriageService.marriageModelTask(domain); - petitionService.petitionModelTask(domain); + riskTaskService.riskAreaModelTask(domain); - riskTaskService.heightFight(domain); pointService.syncScore(domain); pointService.syncViolence(domain); noControlService.syncNoControlData(domain); pointService.syncKillSelf(domain); pointService.syncDrug(domain); +// riskPersonalService.fixed2(); pointService.syncControlNoPower(domain); pointService.syncPointCall(domain); // personalService.syncOrg(); diff --git a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java index 0730a55..8141ad4 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java @@ -1,6 +1,7 @@ package com.biutag.supervisiondata.mapper.dwd; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervisiondata.pojo.database.MuchCall; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -21,7 +22,10 @@ public interface GBaseJJDMapper extends BaseMapper { List selectDataToRisk(@Param("startTime")String startTime, @Param("endTime")String endTime); - @Select(" select bjrlxdh, bjdh, jqxzdm, bjrzjhm from dwd_asj_zhtx_jjd " + - " where bjsj >= '2024-01-01 00:00:00'") - List selectPointCall(); + @Select(" select bjdh, " + + " sum(IF(SUBSTR(jqxzdm, 1, 1) != '9',1,0)) as normal, " + + " sum(IF(SUBSTR(jqxzdm, 1, 1) = '9',1,0)) as unNormal " + + " from dwd_asj_zhtx_jjd where bjsj >= '2024-01-01 00:00:00' and bjdh is not null " + + " group by bjdh HAVING sum(IF(SUBSTR(jqxzdm, 1, 1) != '9',1,0)) > 5 or sum(IF(SUBSTR(jqxzdm, 1, 1) = '9',1,0)) > 100") + List selectPointCall(); } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java index 4dbc810..d735278 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java @@ -56,5 +56,7 @@ public class Default { public static final String BASIC = "基础信息"; + public static final String MUCH_CALL = "重点人员报警异常"; + } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/database/MuchCall.java b/src/main/java/com/biutag/supervisiondata/pojo/database/MuchCall.java new file mode 100644 index 0000000..79288ca --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/database/MuchCall.java @@ -0,0 +1,18 @@ +package com.biutag.supervisiondata.pojo.database; + +import lombok.Data; + +/** + * @author kami on 2024-11-26 14:40:51 + * @version 0.0.1 + * @since 1.8 + */ +@Data +public class MuchCall { + + String mobile; + + Integer normal; + + Integer unNormal; +} diff --git a/src/main/java/com/biutag/supervisiondata/service/RiskPersonalService.java b/src/main/java/com/biutag/supervisiondata/service/RiskPersonalService.java index 188d678..ced618f 100644 --- a/src/main/java/com/biutag/supervisiondata/service/RiskPersonalService.java +++ b/src/main/java/com/biutag/supervisiondata/service/RiskPersonalService.java @@ -25,4 +25,5 @@ public interface RiskPersonalService { void saveDistinct(List riskPersonals); void fixed(); + void fixed2(); } 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 60cddf6..438303a 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -6,6 +6,7 @@ import com.biutag.supervisiondata.config.cache.RedisDao; import com.biutag.supervisiondata.mapper.mine.SupDepartMapper; import com.biutag.supervisiondata.pojo.ClueData; import com.biutag.supervisiondata.pojo.constants.Default; +import com.biutag.supervisiondata.pojo.database.MuchCall; import com.biutag.supervisiondata.pojo.domain.*; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseTbDZdrylb; @@ -253,10 +254,6 @@ public class PointServiceImpl implements PointService { .build(); toInsert.add(createClue(task.getModelId(), 2, task.getId(), data)); } - if (!toInsert.isEmpty()) { - log.info("增加涉药人员:{}", toInsert.size()); - modelTaskClueService.saveClues(toInsert, Default.DRUG_TAG); - } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); updateTask.setInsertSize(toInsert.size()); @@ -287,7 +284,7 @@ public class PointServiceImpl implements PointService { .name(personal.getName()) .id(personal.getId().toString()) .idCode(personal.getIdCode()) - .tag("特定对象日常管控不到位") + .tag("重点对象管控民警所控人员100人以上疑似日常管控不到位") .departId(gBaseZDRY.getXzdpcsdm()) .departName(gBaseZDRY.getXzdpcs()) .personId(personal.getId()) @@ -318,33 +315,10 @@ public class PointServiceImpl implements PointService { RiskTask task = createTask(domain.getPersons().size(), 50); taskRepository.save(task); // 获取接警数据 - List result = jjdRepository.getBaseMapper().selectPointCall(); + List result = jjdRepository.getBaseMapper().selectPointCall(); List person = getPersons(); - Map map = new HashMap<>(); - Map noUseMap = new HashMap<>(); + Map map = result.stream().collect(Collectors.toMap(MuchCall::getMobile, Function.identity(), (val, old) -> val)); - for (GBaseJJD gBaseJJD : result) { - String dh = gBaseJJD.getBjrlxdh(); - if (dh == null || dh.isEmpty()) { - dh = gBaseJJD.getBjdh(); - } - if (dh == null || dh.isEmpty()) { - continue; - } - if (gBaseJJD.getJqxzdm() == null) { - continue; - } - if (gBaseJJD.getJqxzdm().startsWith("9")) { - Integer count = Optional.ofNullable(noUseMap.get(dh)).orElse(0); - count++; - noUseMap.put(dh, count); - } else { - Integer count = Optional.ofNullable(map.get(dh)).orElse(0); - count++; - map.put(dh, count); - } - } - log.info("报警:{},{}", map.size(), noUseMap.size()); List toInsert = new ArrayList<>(); Map> aMAP = person.stream().collect(Collectors.groupingBy(RiskPersonal::getIdCode)); @@ -360,55 +334,59 @@ public class PointServiceImpl implements PointService { int noUsefulNum = 0; StringBuilder mobile = new StringBuilder(); for (String s : str) { - if (s.contains("无") || s.equals("00000000") || s.equals("1")) { + String number = s.chars() + .filter(Character::isDigit) + .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append) + .toString(); + if (number.length() < 8 || number.equals("00000000")) { continue; } mobile.append(s).append(","); - int count = Optional.ofNullable(map.get(s)).orElse(0); + int count = Optional.ofNullable(map.get(s)).map(MuchCall::getNormal).orElse(0); num += count; - - int count2 = Optional.ofNullable(noUseMap.get(s)).orElse(0); + int count2 = Optional.ofNullable(map.get(s)).map(MuchCall::getUnNormal).orElse(0); noUsefulNum += count2; } - if (num > 5 || noUsefulNum > 100) { - StringBuilder mark = new StringBuilder(); - for (RiskPersonal p : entry.getValue()) { - mark.append(p.getTags()).append(","); - } - PointCall call = new PointCall(); - call.setCallCount(num); - call.setNoUsefulCallCount(noUsefulNum); - call.setLabels(mark.substring(0, mark.length() - 1)); - call.setName(personal.getName()); - call.setMobiles(mobile.substring(0, mobile.length() - 1)); - call.setIdCode(personal.getIdCode()); - call.setControlId(personal.getControlDepartId()); - call.setControlName(personal.getControlDepartName()); - - StringBuilder txt = new StringBuilder("该人员今年"); - if (num > 5) { - txt.append("有效报警").append(num).append("次 "); - } - if (noUsefulNum > 100) { - txt.append("无效报警").append(noUsefulNum).append("次 "); - } - txt.append("疑似人员管控不到位。"); - call.setDesc(txt.toString()); - RiskTest test = new RiskTest(); - test.setName(JSON.toJSONString(call)); - tmp.add(test); - ClueData data = ClueData.builder() - .name(personal.getName()) - .idCode(personal.getIdCode()) - .tag("重点对象报警次数异常") - .departId(personal.getControlDepartId()) - .departName(call.getControlName()) - .personId(personal.getId()) - .eventTime(LocalDateTime.now()) - .sourceData(call.getDesc()) - .build(); - toInsert.add(createClue(task.getModelId(), 4, task.getId(), data)); + if(num == 0 && noUsefulNum==0) { + continue; + } + StringBuilder mark = new StringBuilder(); + for (RiskPersonal p : entry.getValue()) { + mark.append(p.getTags()).append(","); + } + PointCall call = new PointCall(); + call.setCallCount(num); + call.setNoUsefulCallCount(noUsefulNum); + call.setLabels(mark.substring(0, mark.length() - 1)); + call.setName(personal.getName()); + call.setMobiles(mobile.length()==0?"":mobile.substring(0, mobile.length() - 1)); + call.setIdCode(personal.getIdCode()); + call.setControlId(personal.getControlDepartId()); + call.setControlName(personal.getControlDepartName()); + + StringBuilder txt = new StringBuilder("该人员今年"); + if (num > 5) { + txt.append("有效报警").append(num).append("次 "); + } + if (noUsefulNum > 100) { + txt.append("无效报警").append(noUsefulNum).append("次 "); } + txt.append("疑似人员管控不到位。"); + call.setDesc(txt.toString()); + RiskTest test = new RiskTest(); + test.setName(JSON.toJSONString(call)); + tmp.add(test); + ClueData data = ClueData.builder() + .name(personal.getName()) + .idCode(personal.getIdCode()) + .tag("重点对象多次报警疑似管控不到位") + .departId(personal.getControlDepartId()) + .departName(call.getControlName()) + .personId(personal.getId()) + .eventTime(LocalDateTime.now()) + .sourceData(call.getDesc()) + .build(); + toInsert.add(createClue(task.getModelId(), 4, task.getId(), data)); } if (!tmp.isEmpty()) { riskTestRepository.saveBatch(tmp); @@ -416,7 +394,7 @@ public class PointServiceImpl implements PointService { if (!toInsert.isEmpty()) { log.info("增加特定对象日常管控不到位人员:{}", toInsert.size()); - modelTaskClueService.saveClues(toInsert, Default.BAD_HABBIT); + modelTaskClueService.saveClues(toInsert, Default.MUCH_CALL); } RiskTask updateTask = new RiskTask(); @@ -472,10 +450,10 @@ public class PointServiceImpl implements PointService { } SupDepart findLevelThreeDepart(SupDepart supDepart, Map departMap) { - if(supDepart == null){ + if (supDepart == null) { return null; } - if(supDepart.getLevel() == 3) { + if (supDepart.getLevel() == 3) { return supDepart; } supDepart = departMap.get(supDepart.getPid()); @@ -490,7 +468,7 @@ public class PointServiceImpl implements PointService { List lbList = zdrylbRepository.list(new LambdaQueryWrapper() .select(GBaseTbDZdrylb::getCode, GBaseTbDZdrylb::getDefine)); List supDeparts = supDepartMapper.selectList(new LambdaQueryWrapper() - .select(SupDepart::getId,SupDepart::getCode, SupDepart::getLevel, SupDepart::getShortName, SupDepart::getPid) + .select(SupDepart::getId, SupDepart::getCode, SupDepart::getLevel, SupDepart::getShortName, SupDepart::getPid) .ge(SupDepart::getLevel, 3)); Map supExternalDepartMap = new WeakHashMap<>(); @@ -543,15 +521,15 @@ public class PointServiceImpl implements PointService { SupDepart depart = supDepartCodeMap.get(ry.getGxdwjgdm()); depart = findLevelThreeDepart(depart, supDepartIdMap); Integer exist = supExternalDepartMap.get(ry.getGxdwjgdm()); - if(exist == null) { + if (exist == null) { SupExternalDepart externalDepart = new SupExternalDepart(); externalDepart.setExternalId(ry.getGxdwjgdm()); externalDepart.setExternalName(ry.getGxdw()); externalDepart.setSource("重点人员"); externalDeparts.add(externalDepart); - supExternalDepartMap.put(ry.getGxdwjgdm(),1); + supExternalDepartMap.put(ry.getGxdwjgdm(), 1); } - if(depart == null) { + if (depart == null) { noDepartCount++; } for (String s : sb) { @@ -580,14 +558,25 @@ public class PointServiceImpl implements PointService { } catch (Exception e) { } if (ry.getZdrylxfs() != null) { -// personal.setMobileNumber(ry.getZdrylxfs().length() > 20 ? "" : ry.getZdrylxfs()); - personal.setMobileNumber(ry.getZdrylxfs()); + String[] str = ry.getZdrylxfs().split(","); + StringBuilder mobiles = new StringBuilder(); + for (String m : str) { + String number = m.chars() + .filter(Character::isDigit) + .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append) + .toString(); + if (number.length() < 8 || number.equals("00000000")) { + continue; + } + mobiles.append(m).append(","); + } + personal.setMobileNumber(mobiles.length() == 0 ? "" : mobiles.substring(0, mobiles.length() - 1)); } personals.add(personal); } map.put(ry.getSfzh(), tmp); } - log.info("重点人员入库数:{} 未匹配到本地组织机构数:{}",zdCount, noDepartCount); + log.info("重点人员入库数:{} 未匹配到本地组织机构数:{}", zdCount, noDepartCount); externalDepartRepository.saveBatch(externalDeparts); return personals; } 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 49f2100..edfa072 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java @@ -35,7 +35,7 @@ import java.util.stream.IntStream; @Slf4j @Service @AllArgsConstructor -public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { +public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { @Qualifier("chaosBean") private final DataSource dataSource; @@ -66,8 +66,18 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { for (Map.Entry> entry : map.entrySet()) { idCodes.add(entry.getKey()); } - List oldTags = tagRepository.list(new LambdaQueryWrapper().eq(RiskPersonalTag::getBigTag, bigTag) - .in(RiskPersonalTag::getIdCode, idCodes)); + List oldTags = new ArrayList<>(); + List> idCode = IntStream.range(0, (idCodes.size() + 9999) / 10000) + .mapToObj(i -> idCodes.subList(i * 10000, Math.min((i + 1) * 10000, idCodes.size()))) + .collect(Collectors.toList()); + for (List strList : idCode) { + oldTags.addAll(tagRepository.list(new LambdaQueryWrapper() + .select(RiskPersonalTag::getSmallTag, RiskPersonalTag::getIdCode) + .eq(RiskPersonalTag::getBigTag, bigTag) + .in(RiskPersonalTag::getIdCode, strList))); + } + + Map> oldTagMap = oldTags.stream().collect(Collectors.groupingBy(RiskPersonalTag::getIdCode)); Map oldMap; @@ -80,23 +90,23 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { oldMap.put(tag.getSmallTag(), new Byte[0]); } for (RiskModelTaskClue clue : entry.getValue()) { - if(bigTag.equals(Default.BIG_TAG_SHWFR)) { - String [] strs = clue.getRiskReason().split(","); - for (int i =0,len = strs.length; i < len; i++) { - if(oldMap.get(strs[i]) == null) { + if (bigTag.equals(Default.BIG_TAG_SHWFR)) { + String[] strs = clue.getRiskReason().split(","); + for (int i = 0, len = strs.length; i < len; i++) { + if (oldMap.get(strs[i]) == null) { tags.add(creatTag(bigTag, strs[i], clue)); oldMap.put(strs[i], new Byte[0]); } } continue; } - if(oldMap.get(clue.getRiskReason()) == null) { + if (oldMap.get(clue.getRiskReason()) == null) { tags.add(creatTag(bigTag, clue.getRiskReason(), clue)); oldMap.put(clue.getRiskReason(), new Byte[0]); } } } - if(!tags.isEmpty()) { + if (!tags.isEmpty()) { tagRepository.saveBatch(tags, 10000); } } diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java index 0720996..94c333d 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java @@ -3,10 +3,14 @@ package com.biutag.supervisiondata.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.biutag.supervisiondata.common.exception.BusinessException; import com.biutag.supervisiondata.common.response.StatusCode; +import com.biutag.supervisiondata.mapper.mine.RiskModelTaskClueMapper; +import com.biutag.supervisiondata.pojo.constants.Default; +import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalControlRecord; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalTag; import com.biutag.supervisiondata.repository.RiskPersonalRepository; +import com.biutag.supervisiondata.repository.RiskPersonalTagRepository; import com.biutag.supervisiondata.service.RiskPersonalService; import com.biutag.supervisiondata.service.RiskPersonalTagService; import com.biutag.supervisiondata.util.IdCodeUtil; @@ -41,8 +45,7 @@ public class RiskPersonalServiceImpl implements RiskPersonalService { private final RiskPersonalTagService tagService; - @Qualifier("chaosBean") - private final DataSource dataSource; + private final RiskPersonalTagRepository tagRepository; @Override @@ -189,4 +192,24 @@ public class RiskPersonalServiceImpl implements RiskPersonalService { repository.removeById(i); } } + + private final RiskModelTaskClueMapper clueMapper; + + @Override + public void fixed2() { + List clues = clueMapper.selectList(new LambdaQueryWrapper().eq(RiskModelTaskClue::getModelId, 32)); + List tags = new ArrayList<>(); + for (RiskModelTaskClue clue : clues) { + RiskPersonalTag riskTag = new RiskPersonalTag(); + riskTag.setBigTag(Default.BASIC); + riskTag.setTagTime(LocalDateTime.now()); + riskTag.setName(clue.getName()); + riskTag.setIdCode(clue.getIdCode()); + riskTag.setSmallTag(clue.getRiskReason()); + riskTag.setCreateTime(LocalDateTime.now()); + tags.add(riskTag); + } + tagRepository.saveBatch(tags); + + } } 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 2d9a865..0bb8f01 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java @@ -108,6 +108,8 @@ public class RiskTaskServiceImpl implements RiskTaskService { genderUpdate.setInsertSize(size); genderUpdate.setState(1); genderUpdate.setEndTime(LocalDateTime.now()); + riskTaskRepository.updateById(ageUpdate); + List clues = new ArrayList<>(); clues.addAll(infos[0].getToInsert()); clues.addAll(infos[1].getToInsert()); @@ -115,7 +117,6 @@ public class RiskTaskServiceImpl implements RiskTaskService { if(!infos[0].getToHidden().isEmpty()) { clueRepository.updateBatchById(infos[0].getToHidden()); } - riskTaskRepository.updateById(ageUpdate); } @Override From 5ce956691f0e90d0628e28e8ac973bbad5d32c1c Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Tue, 26 Nov 2024 16:36:49 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E7=94=B1=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E6=94=B9=E5=88=B0=E8=B5=8B=E5=88=86=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=E6=A0=87=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/mine/RiskTestMapper.java | 4 ++ .../pojo/constants/Default.java | 40 ++++++++++++++----- .../supervisiondata/pojo/enums/Dispute.java | 2 +- .../service/impl/GBaseBAServiceImpl.java | 3 +- .../service/impl/HabitServiceImpl.java | 2 +- .../service/impl/NoControlServiceImpl.java | 2 +- .../service/impl/PetitionServiceImpl.java | 2 +- .../service/impl/PoliceServiceImpl.java | 12 +++--- .../impl/RiskModelTaskClueServiceImpl.java | 6 +-- .../service/impl/RiskTaskServiceImpl.java | 16 ++++---- 10 files changed, 55 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskTestMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskTestMapper.java index 5b87b18..b441f90 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskTestMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskTestMapper.java @@ -2,6 +2,7 @@ package com.biutag.supervisiondata.mapper.mine; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.biutag.supervisiondata.pojo.entity.mine.RiskTest; +import org.apache.ibatis.annotations.Update; /** * @author kami on 2024-11-13 16:17:36 @@ -9,4 +10,7 @@ import com.biutag.supervisiondata.pojo.entity.mine.RiskTest; * @since 1.8 */ public interface RiskTestMapper extends BaseMapper { + + @Update("truncate table risk_test") + int truncateTable(); } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java index d735278..108eac9 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java @@ -32,8 +32,6 @@ public class Default { public static final String BIG_TAG_TRUBO = "涉矛盾纠纷"; - public static final String FIGHT_BORN = "成长地区暴力警情高于平均水平"; - public static final String FIGHT_MUCH = "多次矛盾纠纷"; public static final String POINT_POEPLE = "重点人员"; @@ -42,21 +40,43 @@ public class Default { public static final String CALL_REDIS = "call:point"; - public static final String TAG_IMPORT = "特殊职业"; + public static final String BASIC = "基础信息"; - public static final String BAD_HABBIT = "不良嗜好"; + public static final String MUCH_CALL = "重点人员报警异常"; - public static final String MARRAY = "感情失意"; + // ***********因素************* + public static final String AGE_IG = "年龄因素"; - public static final String NO_CONTROLLER ="管控不到位"; + public static final String GENDER_IG = "性别因素"; - public static final String VIOLENCE ="暴力人员"; + public static final String EDU_IG = "学历因素"; - public static final String KILL_SELF = "扬言滋事、自杀等行为"; + public static final String WFR_IG = "犯罪前科因素"; - public static final String BASIC = "基础信息"; + public static final String IMPORT_IG = "特种职业因素"; - public static final String MUCH_CALL = "重点人员报警异常"; + public static final String TRUBO_IG = "涉矛盾纠纷因素"; + + public static final String HABBIT_IG = "不良嗜好因素"; + + public static final String FIGHT_IG = "民风习俗因素"; + + public static final String POINT_IG = "重点对象因素"; + + public static final String VIOLENCE_IG ="暴力伤害行为因素"; + + public static final String CONTROLLER_IG ="重点对象日常管控不到位因素"; + + public static final String CONTROLLER2_IG ="风险人员排查不到位因素"; + + public static final String KILL_IG = "个人极端因素"; + + public static final String MAIL_IG = "诉求不满或长期未化解因素"; + + public static final String FIGHT_MUCH_IG = "高频矛盾纠纷因素"; + + public static final String MARRAY_IG = "婚姻因素"; + public static final String NO_LOVE_IG = "感情失意因素"; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/enums/Dispute.java b/src/main/java/com/biutag/supervisiondata/pojo/enums/Dispute.java index 838e6f3..698cb44 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/enums/Dispute.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/enums/Dispute.java @@ -22,7 +22,7 @@ public enum Dispute { TUDI("土地", "涉土地纠纷"), MONEY2("劳资", "涉劳资纠纷"), HOME("家庭暴力", "涉家庭暴力纠纷"), - NEIBER("邻里纠纷", "涉邻里纠纷纠纷"); + NEIBER("邻里纠纷", "涉邻里纠纷"); private final String title; diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseBAServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseBAServiceImpl.java index 65db8db..5d83515 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseBAServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseBAServiceImpl.java @@ -66,7 +66,6 @@ public class GBaseBAServiceImpl implements GBaseBAService { Map> map = xxList.stream().collect(Collectors.groupingBy(GBaseBAXX::getSfzhm)); Map personMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (oldValue, newValue) -> newValue)); - log.info("开干"); for (Map.Entry> entry : map.entrySet()) { GBaseBAXX tmp = entry.getValue().getFirst(); if (tmp.getRyztdm() == null) { @@ -129,7 +128,7 @@ public class GBaseBAServiceImpl implements GBaseBAService { log.info("数据库操作阶段"); // 新增 if (!toInsert.isEmpty()) { - riskModelTaskClueService.saveClues(toInsert, Default.TAG_IMPORT); + riskModelTaskClueService.saveClues(toInsert, Default.IMPORT_IG); } // 修改 if (!toUpdate.isEmpty()) { 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 b11cc7c..6e63051 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java @@ -193,7 +193,7 @@ public class HabitServiceImpl implements HabitService { } log.info("开始进行数据库操作"); if(!toInsert.isEmpty()) { - riskModelTaskClueService.saveClues(toInsert, Default.TAG_IMPORT); + riskModelTaskClueService.saveClues(toInsert, Default.HABBIT_IG); } if(!toInsertRecord.isEmpty()) { controlRecordService.batchInsert(toInsertRecord); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java index e3edbd5..2af11ea 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java @@ -106,7 +106,7 @@ public class NoControlServiceImpl implements NoControlService { personalRepository.updateBatchById(toUpdate); } if(!clues.isEmpty()) { - clueService.saveClues(clues, Default.NO_CONTROLLER); + clueService.saveClues(clues, Default.CONTROLLER2_IG); } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); 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 7dd44fe..abc998d 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java @@ -467,7 +467,7 @@ public class PetitionServiceImpl implements PetitionService { } } if(!toInsert.isEmpty()) { - riskModelTaskClueService.saveClues(toInsert, Default.BIG_TAG_PETITION); + riskModelTaskClueService.saveClues(toInsert, Default.MAIL_IG); } if(!toUpdates.isEmpty()) { diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java index 61f0d9a..9d799a7 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java @@ -121,7 +121,7 @@ public class PoliceServiceImpl implements PoliceService { } } if(insert) { - toInsert.add(createClue(task, 1, person, "涉纠纷警情-"+jjd.getJqxzmc(), jjd, "通过对近12个月的警情筛查,发现该人员涉及:"+jjd.getJqxzmc()+"的警情,接警单编号为:"+jjd.getJjdbh()+",该警情属于矛盾纠纷,增加风险分1分(发生一起增加1分,最高10分)")); + toInsert.add(createClue(task, 1, person, Dispute.contains(jjd.getJqxzmc()), jjd, "通过对近12个月的警情筛查,发现该人员涉及:"+jjd.getJqxzmc()+"的警情,接警单编号为:"+jjd.getJjdbh()+",该警情属于矛盾纠纷,增加风险分1分(发生一起增加1分,最高10分)")); RiskPersonalControlRecord tmpRecord = createControlRecord(person, jjd, toInsert.getLast().getRiskReason()); controlRecords.add(tmpRecord); if(person.getControlTime() == null || tmpRecord.getControlTime().isAfter(person.getControlTime())) { @@ -133,7 +133,7 @@ public class PoliceServiceImpl implements PoliceService { } if(!toInsert.isEmpty()) { log.info("新增线索:{}",toInsert.size()); - riskModelTaskClueService.saveClues(toInsert, Default.BIG_TAG_TRUBO); + riskModelTaskClueService.saveClues(toInsert, Default.TRUBO_IG); } if(!controlRecords.isEmpty()) { log.info("新增管控记录:{}",controlRecords.size()); @@ -144,10 +144,10 @@ public class PoliceServiceImpl implements PoliceService { riskPersonalRepository.updateBatchById(toUpdatePerson, 5000); } - if(!toInsertTags.isEmpty()) { - log.info("操作新增标签数据:{}",toInsertTags.size()); - tagService.saveBatchTag(toInsertTags, Default.BIG_TAG_TRUBO); - } +// if(!toInsertTags.isEmpty()) { +// log.info("操作新增标签数据:{}",toInsertTags.size()); +// tagService.saveBatchTag(toInsertTags, Default.BIG_TAG_TRUBO); +// } if(!updateClueList.isEmpty()) { taskClueRepository.updateBatchById(updateClueList, 10000); 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 edfa072..b350df6 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java @@ -54,7 +54,7 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { .collect(Collectors.toList()); for (List record : control) { try { - batchInsert(record); + batchInsert(record, bigTag); } catch (Exception e) { log.error("", e); } @@ -113,7 +113,7 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { final String sql = "INSERT INTO risk_model_task_clue(model_id, name, id_code, task_id, source_id, risk_reason, data, score, event_time, create_time, update_time, case_ids) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)"; - public void batchInsert(List alliances) { + public void batchInsert(List alliances, String bigTag) { try (Connection connection = getConnection(); PreparedStatement prepareStatement = connection.prepareStatement(sql)) { connection.setAutoCommit(false); @@ -124,7 +124,7 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { prepareStatement.setObject(3, Optional.ofNullable(it.getIdCode()).orElse("")); prepareStatement.setObject(4, it.getTaskId()); prepareStatement.setObject(5, it.getSourceId()); - prepareStatement.setObject(6, Optional.ofNullable(it.getRiskReason()).orElse("")); + prepareStatement.setObject(6, bigTag); prepareStatement.setObject(7, Optional.ofNullable(it.getData()).orElse("")); prepareStatement.setObject(8, Optional.ofNullable(it.getScore()).orElse(0)); prepareStatement.setObject(9, Optional.ofNullable(it.getEventTime()).map(item -> item.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).orElse(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 0bb8f01..30ce798 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java @@ -73,8 +73,8 @@ public class RiskTaskServiceImpl implements RiskTaskService { @Override public void infoModelTask(TaskParamDomain domain) { - RiskTask ageTask = createTask(domain.getPersons().size(), 33); RiskTask genderTask = createTask(domain.getPersons().size(), 32); + RiskTask ageTask = createTask(domain.getPersons().size(), 33); riskTaskRepository.save(ageTask); riskTaskRepository.save(genderTask); @@ -110,10 +110,8 @@ public class RiskTaskServiceImpl implements RiskTaskService { genderUpdate.setEndTime(LocalDateTime.now()); riskTaskRepository.updateById(ageUpdate); - List clues = new ArrayList<>(); - clues.addAll(infos[0].getToInsert()); - clues.addAll(infos[1].getToInsert()); - riskModelTaskClueService.saveClues(clues, Default.BASIC); + 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()); } @@ -190,7 +188,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { int size = 0; if (!toInsert.isEmpty()) { size = toInsert.size(); - riskModelTaskClueService.saveClues(toInsert, Default.BASIC); + riskModelTaskClueService.saveClues(toInsert, Default.EDU_IG); log.info("批量新增学历完成"); } eduUpdate.setInsertSize(size); @@ -372,7 +370,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { RiskTask caseUpdate = new RiskTask(); caseUpdate.setId(caseTask.getId()); if (!toInsertClue.isEmpty()) { - riskModelTaskClueService.saveClues(toInsertClue, Default.BIG_TAG_SHWFR); + riskModelTaskClueService.saveClues(toInsertClue, Default.WFR_IG); } if (!toUpdateClue.isEmpty()) { clueRepository.updateBatchById(toUpdateClue); @@ -565,7 +563,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { } if(!toInsert.isEmpty()) { log.info("开始操作新增项:{}", toInsert.size()); - riskModelTaskClueService.saveClues(toInsert, Default.FIGHT_BORN); + riskModelTaskClueService.saveClues(toInsert, Default.FIGHT_IG); } RiskTask endTask = endTask(task.getId()); endTask.setInsertSize(toInsert.size()); @@ -660,7 +658,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { } if(!toInsert.isEmpty()) { log.info("新增线索 | {}", toInsert.size()); - riskModelTaskClueService.saveClues(toInsert, Default.FIGHT_MUCH); + riskModelTaskClueService.saveClues(toInsert, Default.FIGHT_MUCH_IG); } RiskTask endTask = endTask(task.getId()); From 4140a246b073e2c46ae6be82faf46a5468cf3fea Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Tue, 26 Nov 2024 16:37:28 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E9=87=8D=E7=82=B9=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E6=89=93=E7=94=B5=E8=AF=9D=E5=8F=AA=E5=81=9A=E5=A2=9E=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PointServiceImpl.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) 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 438303a..1e94cf8 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -104,7 +104,7 @@ public class PointServiceImpl implements PointService { } } if (!toInsert.isEmpty()) { - modelTaskClueService.saveClues(toInsert, Default.POINT_POEPLE); + modelTaskClueService.saveClues(toInsert, Default.POINT_IG); } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); @@ -166,7 +166,7 @@ public class PointServiceImpl implements PointService { } if (!toInsert.isEmpty()) { - modelTaskClueService.saveClues(toInsert, Default.VIOLENCE); + modelTaskClueService.saveClues(toInsert, Default.VIOLENCE_IG); } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); @@ -216,7 +216,7 @@ public class PointServiceImpl implements PointService { } if (!toInsert.isEmpty()) { - modelTaskClueService.saveClues(toInsert, Default.KILL_SELF); + modelTaskClueService.saveClues(toInsert, Default.KILL_IG); } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); @@ -254,6 +254,9 @@ public class PointServiceImpl implements PointService { .build(); toInsert.add(createClue(task.getModelId(), 2, task.getId(), data)); } + if(!toInsert.isEmpty()) { + modelTaskClueService.saveClues(toInsert, Default.IMPORT_IG); + } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); updateTask.setInsertSize(toInsert.size()); @@ -295,7 +298,7 @@ public class PointServiceImpl implements PointService { } if (!toInsert.isEmpty()) { log.info("增加特定对象日常管控不到位人员:{}", toInsert.size()); - modelTaskClueService.saveClues(toInsert, Default.NO_CONTROLLER); + modelTaskClueService.saveClues(toInsert, Default.CONTROLLER_IG); } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); @@ -321,6 +324,8 @@ public class PointServiceImpl implements PointService { List toInsert = new ArrayList<>(); + + Map oldMap = domain.getOldMap(task.getModelId(), true); Map> aMAP = person.stream().collect(Collectors.groupingBy(RiskPersonal::getIdCode)); RedisDao.getInstance().removeListAll(Default.CALL_REDIS); List tmp = new ArrayList<>(); @@ -329,6 +334,9 @@ public class PointServiceImpl implements PointService { continue; } RiskPersonal personal = entry.getValue().getFirst(); + if(oldMap.get(personal.getIdCode()) != null) { + continue; + } String[] str = personal.getMobileNumber().split(","); int num = 0; int noUsefulNum = 0; @@ -388,13 +396,14 @@ public class PointServiceImpl implements PointService { .build(); toInsert.add(createClue(task.getModelId(), 4, task.getId(), data)); } + riskTestRepository.getBaseMapper().truncateTable(); if (!tmp.isEmpty()) { riskTestRepository.saveBatch(tmp); } if (!toInsert.isEmpty()) { log.info("增加特定对象日常管控不到位人员:{}", toInsert.size()); - modelTaskClueService.saveClues(toInsert, Default.MUCH_CALL); + modelTaskClueService.saveClues(toInsert, Default.CONTROLLER_IG); } RiskTask updateTask = new RiskTask(); From d79cbc6871af0c6d2e00ab00e61bb724f5b0c8b4 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Tue, 26 Nov 2024 16:38:48 +0800 Subject: [PATCH 6/8] =?UTF-8?q?12=E6=9C=88=E5=86=85=E7=A6=BB=E5=A9=9A?= =?UTF-8?q?=E7=AE=97=E6=84=9F=E6=83=85=E5=A4=B1=E6=84=8F12=E6=9C=88?= =?UTF-8?q?=E5=A4=96=E7=A6=BB=E5=A9=9A=E7=AE=97=E5=9F=BA=E7=A1=80=E5=9B=A0?= =?UTF-8?q?=E7=B4=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MarriageServiceImpl.java | 75 ++++++++++++++++--- 1 file changed, 66 insertions(+), 9 deletions(-) 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 8240ef3..94a37f4 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java @@ -49,7 +49,9 @@ public class MarriageServiceImpl implements MarriageService { // 婚姻不用管管控 // clue 应该要看结婚状态 RiskTask task = createTask(domain.getPersons().size(), 39); - riskTaskRepository.save(task); + RiskTask task2 = createTask(domain.getPersons().size(), 51); + riskTaskRepository.saveBatch(List.of(task,task2)); + List hyList = new ArrayList<>(); log.info("开始查询结婚数据:{}", domain.getIdCards().size()); int count = 0; @@ -82,11 +84,19 @@ public class MarriageServiceImpl implements MarriageService { log.info("男性数据:{}", manMap.size()); log.info("女性数据:{}", femanMap.size()); // 旧线索 - List oldClues = Optional.ofNullable(domain.getMap().get(39)).orElse(new ArrayList<>()); + List oldClues = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); Map oldClueMap = oldClues.stream().collect(Collectors.toMap(RiskModelTaskClue::getIdCode, Function.identity(), (oldValue, newValue) -> newValue)); + // 旧线索 + List oldClues2 = Optional.ofNullable(domain.getMap().get(task2.getModelId())).orElse(new ArrayList<>()); + Map oldClueMap2 = oldClues2.stream().collect(Collectors.toMap(RiskModelTaskClue::getIdCode, Function.identity(), (oldValue, newValue) -> newValue)); + // 遍历了 List toInsertData = new ArrayList<>(); List toUpdateData = new ArrayList<>(); + List toInsertData2 = new ArrayList<>(); + List toUpdateData2 = new ArrayList<>(); + + long targetTime = System.currentTimeMillis() - 31536000000l; for (RiskPersonal person : domain.getPersons()) { List tmpList = manMap.get(person.getIdCode()); if(tmpList == null) { @@ -117,8 +127,12 @@ public class MarriageServiceImpl implements MarriageService { } if(last.getYwlxdmdm().toUpperCase().contains("IB") || last.getYwlxdmdm().toUpperCase().contains("ICB")) { // 离婚 如果旧数据不存在就要新增 - RiskModelTaskClue clue = oldClueMap.get(person.getIdCode()); - if(clue == null) { + if(last.getDjrq().getTime() > targetTime) { + // 近365天的离婚 + RiskModelTaskClue clue = oldClueMap.get(person.getIdCode()); + if(clue != null) { + continue; + } ClueData data = ClueData.builder() .personId(person.getId()) .tag(last.getYwlxdmmc()) @@ -129,32 +143,75 @@ public class MarriageServiceImpl implements MarriageService { .build(); data.setEventTime(last.getDjrq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); toInsertData.add(data); + } else { + // 365天之前的离婚,进基础因素 + RiskModelTaskClue clue = oldClueMap2.get(person.getIdCode()); + if(clue != null) { + continue; + } + ClueData data = ClueData.builder() + .personId(person.getId()) + .tag(last.getYwlxdmmc()) + .id(last.getXlzjdjzh()) + .idCode(person.getIdCode()) + .name(person.getName()) + .sourceData("根据该人员最新的婚姻登记信息,发现该人员登记为离婚,存在感情失意的可能,增加风险分3分") + .build(); + data.setEventTime(last.getDjrq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); + toInsertData2.add(data); } + } else if(last.getYwlxdmdm().toUpperCase().contains("IA") || last.getYwlxdmdm().toUpperCase().contains("ICA")) { // 结婚 如果旧数据存在就要修改为0 - RiskModelTaskClue clue = oldClueMap.get(person.getIdCode()); - if(clue != null) { + // 近365天的离婚 + if(last.getDjrq().getTime() > targetTime) { + RiskModelTaskClue clue = oldClueMap.get(person.getIdCode()); + if(clue == null) { + continue; + } RiskModelTaskClue update = new RiskModelTaskClue(); update.setId(clue.getId()); update.setDel(1); toUpdateData.add(update); + } else { + RiskModelTaskClue clue = oldClueMap2.get(person.getIdCode()); + if(clue == null) { + continue; + } + RiskModelTaskClue update = new RiskModelTaskClue(); + update.setId(clue.getId()); + update.setDel(1); + toUpdateData2.add(update); } + } } List toInsert = new ArrayList<>(); - log.info("插入数据条数: {}", toInsertData.size()); + List toInsert2 = new ArrayList<>(); + log.info("插入数据条数: {} | {}", toInsertData.size(), toInsertData2.size()); for (ClueData toInsertDatum : toInsertData) { toInsert.add(createClue(task.getModelId(), 3, task.getId(), toInsertDatum)); } + for (ClueData toInsertDatum : toInsertData2) { + toInsert2.add(createClue(task2.getModelId(), 1, task2.getId(), toInsertDatum)); + } - if(!toInsertData.isEmpty()) { - riskModelTaskClueService.saveClues(toInsert, Default.MARRAY); + if(!toInsert.isEmpty()) { + riskModelTaskClueService.saveClues(toInsert, Default.NO_LOVE_IG); + } + if(!toInsert2.isEmpty()) { + riskModelTaskClueService.saveClues(toInsert2, Default.MARRAY_IG); } if(!toUpdateData.isEmpty()) { log.info("修改线索 | {}", toUpdateData.size()); clueRepository.updateBatchById(toUpdateData); } + if(!toUpdateData2.isEmpty()) { + log.info("修改线索2 | {}", toUpdateData2.size()); + clueRepository.updateBatchById(toUpdateData2); + } + RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); updateTask.setInsertSize(toInsert.size()); From e76fb4c86bc5ee11a2f90da7f057824bfceb4604 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Tue, 26 Nov 2024 16:42:50 +0800 Subject: [PATCH 7/8] =?UTF-8?q?1=E7=82=B9=E5=8D=8A=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E6=89=93=E7=94=B5=E8=AF=9D=E6=AC=A1=E6=95=B0=E7=9A=84=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervisiondata/task/TaskService.java | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/biutag/supervisiondata/task/TaskService.java b/src/main/java/com/biutag/supervisiondata/task/TaskService.java index 189c20d..c97695d 100644 --- a/src/main/java/com/biutag/supervisiondata/task/TaskService.java +++ b/src/main/java/com/biutag/supervisiondata/task/TaskService.java @@ -1,9 +1,21 @@ package com.biutag.supervisiondata.task; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; +import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; +import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; +import com.biutag.supervisiondata.repository.RiskModelTaskClueRepository; +import com.biutag.supervisiondata.repository.RiskPersonalRepository; +import com.biutag.supervisiondata.service.PointService; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + /** * @author kami on 2024-07-25 10:52:39 @@ -14,9 +26,30 @@ import org.springframework.stereotype.Component; @Slf4j public class TaskService { + @Resource + private PointService pointService; + + @Resource + private RiskPersonalRepository riskPersonalRepository; + + @Resource + private RiskModelTaskClueRepository riskModelTaskClueRepository; - @Scheduled(cron = "0 0/10 * * * ?") + /** + * 1点半执行 + */ + @Scheduled(cron = "0 30 01 * * ?") public void ageModel() { + pointService.syncPointCall(initDomain()); + } + + TaskParamDomain initDomain() { + List persons = riskPersonalRepository.list(); + List clues = riskModelTaskClueRepository.list(new LambdaQueryWrapper() + .eq(RiskModelTaskClue::getDel, 0)); + Map> map = clues.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getModelId)); + TaskParamDomain domain = new TaskParamDomain(persons, map); + return domain; } } From d15f0a237fa5ac350805e324ad106cb8a81fe74b Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Tue, 26 Nov 2024 16:48:58 +0800 Subject: [PATCH 8/8] =?UTF-8?q?1=E7=82=B9=E5=8D=8A=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E6=89=93=E7=94=B5=E8=AF=9D=E6=AC=A1=E6=95=B0=E7=9A=84=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/biutag/supervisiondata/task/TaskService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/biutag/supervisiondata/task/TaskService.java b/src/main/java/com/biutag/supervisiondata/task/TaskService.java index c97695d..540707c 100644 --- a/src/main/java/com/biutag/supervisiondata/task/TaskService.java +++ b/src/main/java/com/biutag/supervisiondata/task/TaskService.java @@ -40,7 +40,7 @@ public class TaskService { */ @Scheduled(cron = "0 30 01 * * ?") public void ageModel() { - pointService.syncPointCall(initDomain()); +// pointService.syncPointCall(initDomain()); } TaskParamDomain initDomain() {