From 59246f7828c2edb5bfdffedd3af89f4df7ac3537 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Fri, 13 Dec 2024 10:45:58 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=98=AF=E5=90=A6=E9=87=8D=E7=82=B9?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=A4=9A=E5=90=88=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/ApplicationEvent.java | 2 - .../service/impl/GBaseJJDServiceImpl.java | 6 +- .../service/impl/GBaseSHRWFRServiceImpl.java | 2 +- .../service/impl/ModelClueServiceImpl.java | 2 +- .../service/impl/PersonalServiceImpl.java | 8 +-- .../service/impl/PetitionServiceImpl.java | 8 +-- .../service/impl/PointServiceImpl.java | 64 +++++++------------ .../service/impl/RiskTaskServiceImpl.java | 5 +- 8 files changed, 39 insertions(+), 58 deletions(-) diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index 1557f89..89d0744 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -115,13 +115,11 @@ public class ApplicationEvent { petitionService.petitionModelTask(initDomain(List.of(40))); riskTaskService.eduAndAreaModelTask(initDomain(List.of(34,41))); -// riskTaskService.eduModelTask(initDomain(List.of(34))); riskTaskService.infoModelTask(initDomain(List.of(32,33))); marriageService.marriageModelTask(initDomain(List.of(39,51))); pointService.syncSecurity(initDomain(List.of(37))); habitService.habitModelTask(start, initDomain(List.of(36,60,61,62))); pointService.syncCarUser(initDomain(List.of(53))); -// riskTaskService.riskAreaModelTask(initDomain(List.of(41))); pointService.syncScore(initDomain(List.of(43))); pointService.syncViolence(initDomain(List.of(44))); noControlService.syncNoControlData(initDomain(List.of(45))); 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 58b6492..f3b4d89 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java @@ -67,7 +67,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { log.info("总条数 | {}条", result.size()); List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource) + .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalShortName, SupExternalDepart::getSource) .in(SupExternalDepart::getSource, List.of("重点人员", "情指行"))); Map> amp = supDeparts.stream().collect(Collectors.groupingBy(SupExternalDepart::getSource)); Map pointExternalDepart = amp.get("重点人员").stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val)); @@ -186,7 +186,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { SupExternalDepart depart = pointExternalDepart.get(org.getDm()); if (depart != null) { personal.setControlDepartId(depart.getInternalId()); - personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartName(depart.getInternalShortName()); personal.setControlDepartType(DepartType.HUMAN.getType()); personal.setControlTime(LocalDateTime.now()); personal.setCreateTime(personal.getControlTime()); @@ -240,7 +240,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { } hope.put(tmp.getGxdwdm(), depart); personal.setControlDepartId(depart.getInternalId()); - personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartName(depart.getInternalShortName()); personal.setControlDepartType(DepartType.OTHER.getType()); // 如果有报警时间,暂时填报警时间 处理标签回正 try { diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java index d437042..f98c722 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java @@ -61,7 +61,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { public void pullAndSave(LocalDateTime start, LocalDateTime end) { List orgs = zdryRepository.getBaseMapper().selectOrg(); List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource) + .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalShortName, SupExternalDepart::getSource) .in(SupExternalDepart::getSource, List.of("情指行"))); Map externalDepart = supDeparts.stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val)); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/ModelClueServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/ModelClueServiceImpl.java index 1d42a80..29cc424 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/ModelClueServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/ModelClueServiceImpl.java @@ -872,7 +872,7 @@ public class ModelClueServiceImpl implements ModelClueService { newModelClue.setNegativeIdEx(""); newModelClue.setInvolvePoliceName((String) map.get("USERNAME")); newModelClue.setInvolveDepartName((String) map.get("orgname")); - SupExternalDepart supExternalDepart = supExternalDepartRepository.getOne(new LambdaQueryWrapper().eq(SupExternalDepart::getInternalName, map.get("orgname")).last("LIMIT 1")); + SupExternalDepart supExternalDepart = supExternalDepartRepository.getOne(new LambdaQueryWrapper().eq(SupExternalDepart::getInternalShortName, map.get("orgname")).last("LIMIT 1")); if (supExternalDepart != null) { if (supExternalDepart.getInternalId() != null) { newModelClue.setInvolveDepartId(supExternalDepart.getInternalId()); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java index a75d169..3edd759 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java @@ -327,7 +327,7 @@ public class PersonalServiceImpl implements PersonalService { .toList(); List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource) + .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalShortName, SupExternalDepart::getSource) .eq(SupExternalDepart::getSource, "重点人员")); List orgs = zdryRepository.getBaseMapper().selectOrg(); @@ -364,7 +364,7 @@ public class PersonalServiceImpl implements PersonalService { if (depart != null) { hope.put(xx.getSspcsdm(), depart); personal.setControlDepartId(depart.getInternalId()); - personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartName(depart.getInternalShortName()); personal.setControlDepartType(DepartType.HUMAN.getType()); } else { personal.setControlDepartId(null); @@ -423,7 +423,7 @@ public class PersonalServiceImpl implements PersonalService { Map xxMap = xxList.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (val, old) -> val)); List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource) + .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalShortName, SupExternalDepart::getSource) .eq(SupExternalDepart::getSource, "重点人员")); List orgs = zdryRepository.getBaseMapper().selectOrg(); @@ -466,7 +466,7 @@ public class PersonalServiceImpl implements PersonalService { if (depart != null) { hope.put(xx.getSspcsdm(), depart); person.setControlDepartId(depart.getInternalId()); - person.setControlDepartName(depart.getInternalName()); + person.setControlDepartName(depart.getInternalShortName()); person.setControlDepartType(DepartType.HUMAN.getType()); } } 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 a8f36e6..237538e 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java @@ -67,7 +67,7 @@ public class PetitionServiceImpl implements PetitionService { List mobiles = new ArrayList<>(); List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource) + .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)); @@ -209,7 +209,7 @@ public class PetitionServiceImpl implements PetitionService { SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(jqExternalDepart::get).orElse(null); if (depart != null) { personal.setControlDepartId(depart.getInternalId()); - personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartName(depart.getInternalShortName()); personal.setControlDepartType(DepartType.HUMAN.getType()); personal.setControlTime(LocalDateTime.now()); } @@ -240,7 +240,7 @@ public class PetitionServiceImpl implements PetitionService { SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(jqExternalDepart::get).orElse(null); if (depart != null) { personal.setControlDepartId(depart.getInternalId()); - personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartName(depart.getInternalShortName()); personal.setControlDepartType(DepartType.HUMAN.getType()); personal.setControlTime(LocalDateTime.now()); } @@ -277,7 +277,7 @@ public class PetitionServiceImpl implements PetitionService { SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(jqExternalDepart::get).orElse(null); if (depart != null) { personal.setControlDepartId(depart.getInternalId()); - personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartName(depart.getInternalShortName()); personal.setControlDepartType(DepartType.HUMAN.getType()); personal.setControlTime(LocalDateTime.now()); } 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 ad77d84..9fa8fa8 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -58,8 +58,6 @@ public class PointServiceImpl implements PointService { private final RiskTaskRepository taskRepository; - private final SupDepartMapper supDepartMapper; - private final WdpcGrjdXfsjRepository wdpcGrjdXfsjRepository; private final WdpcGrjdXfsjCsRepository wdpcGrjdXfsjCsRepository; @@ -103,8 +101,7 @@ public class PointServiceImpl implements PointService { @Override public void syncScore(TaskParamDomain domain) { List persons = getPersons(); - RiskTask task = createTask(persons.size(), 43); - taskRepository.save(task); + RiskTask task = taskRepository.create(persons.size(), 43); List clues = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); Map> oldClueMap = clues.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); @@ -114,48 +111,31 @@ public class PointServiceImpl implements PointService { for (Map.Entry> entry : map.entrySet()) { List olds = oldClueMap.get(entry.getKey()); - if (olds == null) { - List personals = entry.getValue().stream().filter(StreamUtil.distinctByKey(RiskPersonal::getTags)).toList(); - // 全部增加 - for (RiskPersonal personal : personals) { - toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() - .tag("重点人员") - .name(personal.getName()) - .idCode(personal.getIdCode()) - .eventTime(Optional.ofNullable(personal.getControlTime()).orElse(LocalDateTime.now())) - .departId(personal.getControlDepartId()) - .departName(personal.getControlDepartName()) - .sourceData("该人员存在标签:" + personal.getTags() + ",属于重点人员") - .build())); - } + // 是否类型只存在一条 + if (olds != null) { continue; } - Map clueMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getRiskReason, Function.identity(), (oldValue, newValue) -> newValue)); List personals = entry.getValue().stream().filter(StreamUtil.distinctByKey(RiskPersonal::getTags)).toList(); + StringBuilder sb = new StringBuilder(); + // 全部增加 for (RiskPersonal personal : personals) { - if (clueMap.get(personal.getTags()) == null) { - toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() - .tag("重点人员") - .name(personal.getName()) - .idCode(personal.getIdCode()) - .eventTime(Optional.ofNullable(personal.getControlTime()).orElse(LocalDateTime.now())) - .departId(personal.getControlDepartId()) - .departName(personal.getControlDepartName()) - .sourceData("该人员存在标签:" + personal.getTags() + ",属于重点人员") - .build())); - } + sb.append(personal.getTags()).append(","); } + if(sb.isEmpty()){ + continue; + } + toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() + .tag("重点人员") + .name(personals.getFirst().getName()) + .idCode(personals.getFirst().getIdCode()) + .eventTime(Optional.ofNullable(personals.getFirst().getControlTime()).orElse(LocalDateTime.now())) + .sourceData("该人员存在标签:" +sb.substring(0,sb.length()-1) + ",属于重点人员") + .build())); } if (!toInsert.isEmpty()) { modelTaskClueService.saveClues(toInsert, "是否是重点人员"); } - RiskTask updateTask = new RiskTask(); - updateTask.setId(task.getId()); - updateTask.setInsertSize(toInsert.size()); - updateTask.setUpdateSize(0); - updateTask.setState(1); - updateTask.setEndTime(LocalDateTime.now()); - taskRepository.updateById(updateTask); + taskRepository.updateTask(task.getId(), toInsert.size(), 0); } private final WdpcGrjdZblxRepository zblxRepository; @@ -176,6 +156,7 @@ public class PointServiceImpl implements PointService { List olds = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); Map> personMap = olds.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); List toInsert = new ArrayList<>(); + Map> mapPerson = new WeakHashMap<>(); for (GBaseZDRY ry : list) { RiskPersonal person = personalMap.get(ry.getSfzh()); if(person==null) { @@ -206,9 +187,12 @@ public class PointServiceImpl implements PointService { } catch (Exception e) { data.setEventTime(LocalDateTime.now()); } - toInsert.add(createClue(task.getModelId(), zblx.getScore().intValue(), task.getId(), data)); + mapPerson.computeIfAbsent(person.getIdCode(), k -> new ArrayList<>()).add(createClue(task.getModelId(), zblx.getScore().intValue(), task.getId(), data)); } } + for (Map.Entry> entry : mapPerson.entrySet()) { + toInsert.addAll(entry.getValue().stream().filter(StreamUtil.distinctByKey(RiskModelTaskClue::getRiskReason)).toList()); + } if (!toInsert.isEmpty()) { log.info("保存重点人员标签 {}", toInsert.size()); modelTaskClueService.saveClues(toInsert, "列管原因"); @@ -2160,7 +2144,7 @@ public class PointServiceImpl implements PointService { List lbList = zdrylbRepository.list(new LambdaQueryWrapper() .select(GBaseTbDZdrylb::getCode, GBaseTbDZdrylb::getDefine)); List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource) + .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalShortName, SupExternalDepart::getSource) .eq(SupExternalDepart::getSource, "重点人员")); List orgs = zdryRepository.getBaseMapper().selectOrg(); @@ -2232,7 +2216,7 @@ public class PointServiceImpl implements PointService { personal.setIdCode(ry.getSfzh()); personal.setName(ry.getXm()); - personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartName(depart.getInternalShortName()); personal.setControlDepartId(depart.getInternalId()); try { personal.setControlTime(LocalDateTime.parse(ry.getJlbgsj(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); 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 b28c5e1..320eb62 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java @@ -112,7 +112,6 @@ public class RiskTaskServiceImpl implements RiskTaskService { "大学"; case "硕士研究生毕业", "研究生教育", "研究生班肄业" -> "大学以上"; default -> null; - }; if (edu == null) { continue; @@ -403,7 +402,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { 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::getInternalName, SupExternalDepart::getSource) + .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)); @@ -628,7 +627,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(item -> jqExternalDepart.get(item)).orElse(null); if (depart != null) { person.setControlDepartId(depart.getInternalId()); - person.setControlDepartName(depart.getInternalName()); + person.setControlDepartName(depart.getInternalShortName()); person.setControlDepartType(DepartType.HUMAN.getType()); person.setControlTime(LocalDateTime.now()); } From f6e15b77aaac2deb92c02934ca99af60b48133c8 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Fri, 13 Dec 2024 10:59:34 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=98=AF=E5=90=A6=E6=89=93=E5=87=BB?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=A4=9A=E5=90=88=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GBaseSHRWFRServiceImpl.java | 57 +++++++++++++------ .../service/impl/PointServiceImpl.java | 22 ++----- 2 files changed, 44 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java index f98c722..1d2837f 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java @@ -150,7 +150,6 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { List oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); // 按人分 Map> personOldMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); - Map> wfrMap = xxList.stream().collect(Collectors.groupingBy(GBaseWFRXX::getZjhm)); List toInsert = new ArrayList<>(); @@ -160,29 +159,53 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { if (wfxxList == null) { continue; } - List olds = Optional.ofNullable(personOldMap.get(person.getIdCode())).orElse(new ArrayList<>()); - Map oldMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val)); + List olds = personOldMap.get(person.getIdCode()); + // 是否只有一个 + if(olds!=null) { + continue; + } + StringBuilder zm = new StringBuilder(); + StringBuilder aj = new StringBuilder(); + LocalDateTime eventTime = null; for (GBaseWFRXX xx : wfxxList) { - if (oldMap.get(BhUtil.ajBh(xx.getAjbh())) != null) { - continue; + if(zm.indexOf(xx.getSxzm()+",") == -1) { + zm.append(xx.getSxzm()).append(","); } - ClueData data = ClueData.builder() - .name(person.getName()) - .id(BhUtil.ajBh(xx.getAjbh())) - .idCode(person.getIdCode()) - .tag("已被打击处理") - .personId(person.getId()) - .sourceData("该人员因" + xx.getSxzm() + "被打击处理,案件编号:" + xx.getAjbh()) - .build(); + if(aj.indexOf(xx.getAjbh()+",") == -1) { + aj.append(xx.getAjbh()).append(","); + } + try { - data.setEventTime(xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); + LocalDateTime tmp = xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + if(eventTime == null) { + eventTime = tmp; + continue; + } + if(eventTime.isBefore(tmp)) { + eventTime = tmp; + } } catch (Exception ignored) { - data.setEventTime(LocalDateTime.now()); } - toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } + StringBuilder tmp = new StringBuilder("该人员"); + if(zm.length() > 0) { + tmp.append("因:").append(zm.substring(0, zm.length()-1)); + } + tmp.append(" 已被打击处理过"); + if(aj.length() > 0) { + tmp.append("具体案件编号:").append(aj.substring(0, aj.length()-1)); + } + ClueData data = ClueData.builder() + .name(person.getName()) + .id("isPoint") + .idCode(person.getIdCode()) + .tag("已被打击处理") + .personId(person.getId()) + .sourceData(tmp.toString()) + .eventTime(Optional.ofNullable(eventTime).orElse(LocalDateTime.now())) + .build(); + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } - if (!toInsert.isEmpty()) { clueService.saveClues(toInsert, "B24被打击处理"); } 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 9fa8fa8..78205e5 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -202,8 +202,7 @@ public class PointServiceImpl implements PointService { @Override public void syncViolence(TaskParamDomain domain) { - RiskTask task = createTask(domain.getPersons().size(), 44); - taskRepository.save(task); + RiskTask task = taskRepository.create(domain.getPersons().size(), 44); Map personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (oldValue, newValue) -> newValue)); List list = zdryRepository.getBaseMapper().syncViolencePerson(); @@ -253,19 +252,12 @@ public class PointServiceImpl implements PointService { if (!toInsert.isEmpty()) { modelTaskClueService.saveClues(toInsert, Default.VIOLENCE_IG); } - RiskTask updateTask = new RiskTask(); - updateTask.setId(task.getId()); - updateTask.setInsertSize(toInsert.size()); - updateTask.setUpdateSize(0); - updateTask.setState(1); - updateTask.setEndTime(LocalDateTime.now()); - taskRepository.updateById(updateTask); + taskRepository.updateTask(task.getId(), toInsert.size(), 0); } @Override public void syncKillSelf(TaskParamDomain domain) { - RiskTask task = createTask(domain.getPersons().size(), 46); - taskRepository.save(task); + RiskTask task = taskRepository.create(domain.getPersons().size(), 46); Map personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (oldValue, newValue) -> newValue)); List list = zdryRepository.getBaseMapper().syncKillSelf(); List olds = Optional.ofNullable(domain.getMap().get(task.getId())).orElse(new ArrayList<>()); @@ -303,13 +295,7 @@ public class PointServiceImpl implements PointService { if (!toInsert.isEmpty()) { modelTaskClueService.saveClues(toInsert, Default.KILL_IG); } - RiskTask updateTask = new RiskTask(); - updateTask.setId(task.getId()); - updateTask.setInsertSize(toInsert.size()); - updateTask.setUpdateSize(0); - updateTask.setState(1); - updateTask.setEndTime(LocalDateTime.now()); - taskRepository.updateById(updateTask); + taskRepository.updateTask(task.getId(), toInsert.size(), 0); } @Override From 7dd13c95f19c104580a3cf664f1261ec607a4612 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Fri, 13 Dec 2024 11:36:10 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E6=B6=89=E8=AD=A6?= =?UTF-8?q?=E5=A4=9A=E5=90=88=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GBaseJJDServiceImpl.java | 53 ++++++++++--------- .../impl/RiskScoreRuleServiceImpl.java | 27 +++++++--- 2 files changed, 47 insertions(+), 33 deletions(-) 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 f3b4d89..2aaa75a 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java @@ -416,39 +416,42 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { continue; } jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).toList(); - List olds = Optional.ofNullable(personOldMap.get(person.getIdCode())).orElse(new ArrayList<>()); - Map oldMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val)); - + List olds = personOldMap.get(person.getIdCode()); + if(olds != null) { + // 是否类型只有一个 + continue; + } + LocalDateTime eventTime = null; + StringBuilder sb = new StringBuilder("该人员存在平台涉警事件警情,相关警情接警单编号为:"); for (GBaseJJD gBaseJJD : jjdList) { - if (oldMap.get(BhUtil.jjdBh(gBaseJJD.getJjdbh())) != null) { - continue; - } - ClueData data = ClueData.builder() - .name(person.getName()) - .id(BhUtil.jjdBh(gBaseJJD.getJjdbh())) - .idCode(person.getIdCode()) - .tag("平台涉警事件") - .personId(person.getId()) - .build(); - StringBuilder sb = new StringBuilder("该人员存在平台涉警事件警情,接警单编号:" + gBaseJJD.getJjdbh()); - if (gBaseJJD.getBjnr() != null && !gBaseJJD.getBjnr().isEmpty()) { - sb.append(",报警内容;" + gBaseJJD.getBjnr()); - } - if (gBaseJJD.getCjqk() != null && !gBaseJJD.getCjqk().isEmpty()) { - sb.append(",处警情况;" + gBaseJJD.getCjqk()); - } - data.setSourceData(sb.toString()); + sb.append(gBaseJJD.getJjdbh()).append(","); try { - data.setEventTime(gBaseJJD.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); + LocalDateTime tmp = gBaseJJD.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + if(eventTime == null) { + eventTime = tmp; + continue; + } + if (eventTime.isBefore(tmp)) { + eventTime = tmp; + } } catch (Exception ignored) { - data.setEventTime(LocalDateTime.now()); } - toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); + } + ClueData data = ClueData.builder() + .name(person.getName()) + .id("ptsjsj") + .idCode(person.getIdCode()) + .tag("平台涉警事件") + .sourceData(sb.substring(0, sb.length()-1)) + .eventTime(Optional.ofNullable(eventTime).orElse(LocalDateTime.now())) + .personId(person.getId()) + .build(); + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } log.info("保存袭警数据:{}", toInsert.size()); if (!toInsert.isEmpty()) { - clueService.saveClues(toInsert, Default.WF_IG); + clueService.saveClues(toInsert, "B28平台涉警事件"); } taskRepository.updateTask(task.getId(), toInsert.size(), 0); } diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java index c4ebe66..6b670d4 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java @@ -49,11 +49,6 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService { if(idCodes != null && !idCodes.isEmpty()) { queryWrapper.in(RiskPersonal::getIdCode, idCodes); } - if(weight != null && !weight.equals("1")) { - Double we = Optional.ofNullable(weight).map(Double::valueOf).orElse(1.0); - int result = riskModelTaskClueRepository.getBaseMapper().updateScoreResult(we); - log.info("修改分数"); - } List riskPersonals = personalRepository.list(queryWrapper); List rules = riskScoreRuleRepository.list(new LambdaQueryWrapper<>()); @@ -68,6 +63,21 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService { List clues = riskModelTaskClueRepository.list(new LambdaQueryWrapper() .select(RiskModelTaskClue::getIdCode, RiskModelTaskClue::getModelId, RiskModelTaskClue::getScore, RiskModelTaskClue::getScoreResult) .eq(RiskModelTaskClue::getDel, 0)); + log.info("1、修改每项得分\n2、修改人员总分"); + log.info("1、计算分项倍分"); + List updates = new ArrayList<>(); + if(weight != null && !weight.equals("1")) { + for (RiskModelTaskClue clue : clues) { + RiskModelTaskClue update = new RiskModelTaskClue(); + update.setId(clue.getId()); + update.setScoreResult(new BigDecimal(clue.getScoreCalc().toString()).multiply(new BigDecimal(weight)).divide(new BigDecimal("1"), 2, RoundingMode.HALF_UP).doubleValue()); + updates.add(update); + clue.setScoreResult(update.getScoreResult()); + } + log.info("1、修改每项得分"); + riskModelTaskClueRepository.updateBatchById(updates); + } + Map>> clueMap = new HashMap<>(); for (RiskModelTaskClue clue : clues) { @@ -105,15 +115,15 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService { // BigDecimal n2 = new BigDecimal(Double.toString(Math.min(ruleScore.doubleValue(), riskScoreRule.getScore()))); // // BigDecimal weight = new BigDecimal(Double.toString(riskScoreRule.getWeight())); -// n2 = n2.multiply(weight).divide(new BigDecimal("100"), 2, RoundingMode.UP); +// n2 = n2.multiply(weight).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP); Double ruleScore = temp.stream().mapToDouble(RiskModelTaskClue::getScoreResult).sum(); - BigDecimal rScore = new BigDecimal(riskScoreRule.getScore().toString()).multiply(new BigDecimal(weight)); + BigDecimal rScore = new BigDecimal(riskScoreRule.getScore().toString()).multiply(new BigDecimal(weight)).divide(new BigDecimal("1"), 2, RoundingMode.HALF_UP); BigDecimal n2 = new BigDecimal(Double.toString(Math.min(ruleScore, rScore.doubleValue()))); score=score.add(n2); } // BigDecimal ruleScore = new BigDecimal(Double.toString(rule.getScore())); // BigDecimal weight = new BigDecimal(Double.toString(rule.getWeight())); -// score = score.multiply(weight).divide(ruleScore, 2, RoundingMode.UP); +// score = score.multiply(weight).divide(ruleScore, 2, RoundingMode.HALF_UP); total = total.add(score); } //二次改造 @@ -135,6 +145,7 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService { log.info("已完成打分: {},共计:{}", count,size); } } + personalRepository.updateBatchById(toUpdates, 10000); } } From 33a77cf81b2018e29529959d44cc163ac7900cbb Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Fri, 13 Dec 2024 14:08:08 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=B8=8D=E8=89=AF=E5=97=9C=E5=A5=BD?= =?UTF-8?q?=E5=A4=9A=E5=90=88=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GBaseJJDServiceImpl.java | 2 +- .../service/impl/HabitServiceImpl.java | 54 ++++++++++++------- 2 files changed, 35 insertions(+), 21 deletions(-) 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 2aaa75a..05e67b2 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java @@ -422,7 +422,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { continue; } LocalDateTime eventTime = null; - StringBuilder sb = new StringBuilder("该人员存在平台涉警事件警情,相关警情接警单编号为:"); + StringBuilder sb = new StringBuilder("该人员存在"+jjdList.size()+"起平台涉警事件警情,相关警情接警单编号为:"); for (GBaseJJD gBaseJJD : jjdList) { sb.append(gBaseJJD.getJjdbh()).append(","); try { 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 977cee3..f8d5bb7 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java @@ -3,10 +3,12 @@ package com.biutag.supervisiondata.service.impl; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; +import com.biutag.supervisiondata.common.utils.StreamUtil; 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.GBaseJJD; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX; import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; @@ -183,44 +185,56 @@ public class HabitServiceImpl implements HabitService { Map> wfrMap = wfrList.stream().filter(it -> it.getZjhm() != null).collect(Collectors.groupingBy(GBaseWFRXX::getZjhm)); // 案件信息 Map ajMap = targetAjList.stream().collect(Collectors.toMap(GBaseAJJBXX::getAjbh, Function.identity(), (oldValue, newValue) -> newValue)); - List oldList = Optional.ofNullable(domain.getMap().get(36)).orElse(new ArrayList<>()); + List oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); // 人员的旧线索 Map> clueMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); List clues; - Map clueTmpMap; // 创建新数据 List toInsert = new ArrayList<>(); log.info("开始遍历人员", wfrMap.size()); for (RiskPersonal person : domain.getPersons()) { List wfTmp = Optional.ofNullable(wfrMap.get(person.getIdCode())).orElse(new ArrayList<>()); + wfTmp = wfTmp.stream().filter(StreamUtil.distinctByKey(GBaseWFRXX::getAjbh)).toList(); + if(wfTmp.isEmpty()){ + continue; + } // 该人员旧的线索 - clues = Optional.ofNullable(clueMap.get(person.getIdCode())).orElse(new ArrayList<>()); - clueTmpMap = clues.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (oldValue, newValue) -> newValue)); + clues = clueMap.get(person.getIdCode()); + if(clues != null) { + continue; + } + + StringBuilder sb = new StringBuilder("结合案件信息和违法人信息相关数据,发现该人员有"+wfTmp.size()+"起"+tag+"相关案件,相关案件编号为:"); + LocalDateTime eventTime = null; for (GBaseWFRXX gBaseWFRXX : wfTmp) { GBaseAJJBXX aj = ajMap.get(gBaseWFRXX.getAjbh()); if (aj == null) { continue; } - // 通过案件编号获取查看是否有入库记录 - if (clueTmpMap.get(BhUtil.ajBh(aj.getAjbh())) != null) { - continue; - } - // 没有旧记录 - ClueData data = ClueData.builder() - .id(aj.getAjbh()) - .name(person.getName()) - .idCode(person.getIdCode()) - .tag(tag) - .personId(person.getId()) - .sourceData("结合案件信息和违法人信息相关数据,发现该人员有:"+aj.getAjlbmc()+"类型的案件,案件编号为:"+aj.getAjbh()+",存在"+tag) - .build(); + sb.append(gBaseWFRXX.getAjbh()).append(","); try { - data.setEventTime(aj.getBarq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); + LocalDateTime tmp = aj.getBarq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + if(eventTime == null) { + eventTime = tmp; + continue; + } + if(eventTime.isBefore(tmp)) { + eventTime = tmp; + } } catch (Exception e) { - log.error("报案日期转LocalDateTime异常"); } - toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); + } + ClueData data = ClueData.builder() + .id("habit") + .name(person.getName()) + .idCode(person.getIdCode()) + .tag(tag) + .personId(person.getId()) + .sourceData(sb.substring(0, sb.length()-1)) + .eventTime(Optional.ofNullable(eventTime).orElse(LocalDateTime.now())) + .build(); + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } return toInsert; }