From e18221934996701cbf5f47ad9709ad47f80cb779 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Thu, 12 Dec 2024 15:22:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BF=A1=E8=AE=BF=E9=A3=8E?= =?UTF-8?q?=E9=99=A9=E7=9A=84=E6=9F=A5=E8=AF=A2=E9=80=9F=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/mine/DataCaseVerifMapper.java | 11 +- .../mapper/mine/DataPetition12337Mapper.java | 11 +- .../mine/DataPetitionComplaintMapper.java | 13 +- .../pojo/domain/PetitionData.java | 31 +++++ .../service/impl/PersonalServiceImpl.java | 2 +- .../service/impl/PetitionServiceImpl.java | 129 ++++++------------ 6 files changed, 101 insertions(+), 96 deletions(-) create mode 100644 src/main/java/com/biutag/supervisiondata/pojo/domain/PetitionData.java diff --git a/src/main/java/com/biutag/supervisiondata/mapper/mine/DataCaseVerifMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/mine/DataCaseVerifMapper.java index edd9a05..35f7852 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/mine/DataCaseVerifMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/mine/DataCaseVerifMapper.java @@ -2,8 +2,17 @@ package com.biutag.supervisiondata.mapper.mine; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervisiondata.pojo.domain.PetitionData; import com.biutag.supervisiondata.pojo.entity.mine.DataCaseVerif; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; -public interface DataCaseVerifMapper extends BaseMapper { +import java.util.List; +public interface DataCaseVerifMapper extends BaseMapper { + @Select(" select a.origin_id as id, b.name as name,b.id_code as idCode,b.mobile_number as mobile, a.third_depart_id as departId, a.third_depart_name as departName, a.discovery_time as eventTime, a.thing_desc as content " + + " from data_case_verif as a " + + " INNER join risk_personal as b on a.responder_phone = b.mobile_number and a.responder_name = b.name" + + " where a.discovery_time >= #{time}") + List selectRiskPerson(@Param("time")String time); } diff --git a/src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetition12337Mapper.java b/src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetition12337Mapper.java index f5dac0f..caa0478 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetition12337Mapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetition12337Mapper.java @@ -2,10 +2,19 @@ package com.biutag.supervisiondata.mapper.mine; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervisiondata.pojo.domain.PetitionData; import com.biutag.supervisiondata.pojo.entity.mine.DataPetition12337; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; -public interface DataPetition12337Mapper extends BaseMapper { +import java.util.List; +public interface DataPetition12337Mapper extends BaseMapper { + @Select(" select a.only_id as id, b.name as name,b.id_code as idCode,b.mobile_number as mobile, a.third_depart_id as departId, a.third_depart_name as departName, a.discover_time as eventTime, a.review_des as content " + + " from data_petition_12337 as a " + + " INNER join risk_personal as b on a.id_code = b.id_code " + + " where a.discover_time >= #{time}") + List selectRiskPerson(@Param("time")String time); } diff --git a/src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetitionComplaintMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetitionComplaintMapper.java index 9d60139..16d4676 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetitionComplaintMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetitionComplaintMapper.java @@ -1,10 +1,17 @@ package com.biutag.supervisiondata.mapper.mine; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervisiondata.pojo.domain.PetitionData; import com.biutag.supervisiondata.pojo.entity.mine.DataPetitionComplaint; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; -public interface DataPetitionComplaintMapper extends BaseMapper { - - +import java.util.List; +public interface DataPetitionComplaintMapper extends BaseMapper { + @Select(" select a.origin_id as id,b.name as name,b.id_code as idCode,b.mobile_number as mobile, a.third_depart_id as departId, a.third_depart_name as departName, a.discovery_time as eventTime, a.thing_desc as content " + + " from data_petition_complaint as a " + + " INNER join risk_personal as b on a.responder_id_code = b.id_code " + + " where a.discovery_time >= #{time}") + List selectRiskPerson(@Param("time")String time); } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/domain/PetitionData.java b/src/main/java/com/biutag/supervisiondata/pojo/domain/PetitionData.java new file mode 100644 index 0000000..62c3734 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/domain/PetitionData.java @@ -0,0 +1,31 @@ +package com.biutag.supervisiondata.pojo.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * @author kami on 2024-12-12 14:54:20 + * @version 0.0.1 + * @since 1.8 + */ +@Data +public class PetitionData implements Serializable { + + String id; + + String name; + + String idCode; + + String mobile; + + String departId; + + String departName; + + String content; + + LocalDateTime eventTime; +} 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 a372344..5fb11d2 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java @@ -519,7 +519,7 @@ public class PersonalServiceImpl implements PersonalService { log.info("有效头像共:{}", total); List infoList; List infos; - for (int page = 1; ; page++) { + for (int page = 1;; page++) { log.info("{}", page); int pageNo = (page- 1) * 10000; int pageSize = 10000; 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 a179fde..a8f36e6 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java @@ -5,6 +5,7 @@ import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; import com.biutag.supervisiondata.pojo.ClueData; import com.biutag.supervisiondata.pojo.constants.Default; import com.biutag.supervisiondata.pojo.database.PointOrg; +import com.biutag.supervisiondata.pojo.domain.PetitionData; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.mine.*; @@ -21,6 +22,7 @@ import org.springframework.stereotype.Service; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.function.Function; @@ -292,106 +294,64 @@ public class PetitionServiceImpl implements PetitionService { RiskTask task = riskTaskRepository.create(domain.getPersons().size(), 40); LocalDateTime time = LocalDateTime.now().minusMonths(12); - List pList1 = new ArrayList<>(); - for (List idCard : domain.getIdCards()) { - pList1.addAll(petition12337Repository.list(new LambdaQueryWrapper() - .select(DataPetition12337::getOnlyId, DataPetition12337::getName, DataPetition12337::getIdCode, DataPetition12337::getPhone, DataPetition12337::getThirdDepartId, DataPetition12337::getThirdDepartName, DataPetition12337::getDiscoverTime, DataPetition12337::getReviewDes).ge(DataPetition12337::getDiscoverTime, time) - .in(DataPetition12337::getIdCode, idCard))); - } - List pList2 = new ArrayList<>(); - for (List idCard : domain.getIdCards()) { - pList2.addAll(complaintRepository.list(new LambdaQueryWrapper() - .select(DataPetitionComplaint::getOriginId, DataPetitionComplaint::getResponderName, DataPetitionComplaint::getResponderPhone, DataPetitionComplaint::getResponderName, DataPetitionComplaint::getThirdDepartId, DataPetitionComplaint::getThirdDepartName, DataPetitionComplaint::getDiscoveryTime, DataPetitionComplaint::getThingDesc).ge(DataPetitionComplaint::getDiscoveryTime, time) - .in(DataPetitionComplaint::getResponderPhone, idCard))); - } + List dataList1 = new ArrayList<>(); + List dataList2 = new ArrayList<>(); + List dataList3 = new ArrayList<>(); + + CompletableFuture.allOf( + CompletableFutureUtil.runSyncObject(() -> dataList1.addAll(dataCaseVerifRepository.getBaseMapper().selectRiskPerson(time.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))))), + CompletableFutureUtil.runSyncObject(() -> dataList2.addAll(complaintRepository.getBaseMapper().selectRiskPerson(time.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))))), + CompletableFutureUtil.runSyncObject(() -> dataList3.addAll(petition12337Repository.getBaseMapper().selectRiskPerson(time.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))))) + ).join(); - List pList3 = new ArrayList<>(); - List mobiles = domain.getPersons().stream().map(RiskPersonal::getMobileNumber).distinct().toList(); - List> doubleMobile = IntStream.range(0, (mobiles.size() + 9999) / 10000) - .mapToObj(i -> mobiles.subList(i * 10000, Math.min((i + 1) * 10000, mobiles.size()))) - .toList(); - for (List mobile : doubleMobile) { - pList3.addAll(dataCaseVerifRepository.list(new LambdaQueryWrapper() - .select(DataCaseVerif::getOriginId, DataCaseVerif::getResponderName, DataCaseVerif::getResponderPhone, DataCaseVerif::getThirdDepartId, DataCaseVerif::getThirdDepartName, DataCaseVerif::getDiscoveryTime, DataCaseVerif::getThingDesc).ge(DataCaseVerif::getDiscoveryTime, time) - .in(DataCaseVerif::getResponderPhone, mobile))); - } - // 先搞定这个电话号码的 - Map> man = domain.getPersons().stream().filter(item -> item.getMobileNumber() != null).collect(Collectors.groupingBy(RiskPersonal::getMobileNumber)); Map idCodeMan = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (oldValue, newValue) -> newValue)); List oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); Map oldMap = oldList.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val)); - List toInsert = new ArrayList<>(); - for (DataCaseVerif dataCaseVerif : pList3) { - if (oldMap.get(BhUtil.petBh(dataCaseVerif.getOriginId())) != null) { - continue; - } - List list = man.get(dataCaseVerif.getResponderPhone()); - RiskPersonal person = comparePerson(list, dataCaseVerif.getResponderName()); - if (person == null) { - continue; - } - toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() - .id(dataCaseVerif.getOriginId()) - .tag(Default.PETITION_CASE_TAG) - .personId(person.getId()) - .departId(dataCaseVerif.getThirdDepartId()) - .departName(dataCaseVerif.getThirdDepartName()) - .eventTime(dataCaseVerif.getDiscoveryTime()) - .idCode(person.getIdCode()) - .name(person.getName()) - .sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:" + dataCaseVerif.getThingDesc()) - .build())); - } + List toInsert1 = new ArrayList<>(createClues(dataList1, oldMap, idCodeMan, task, Default.PETITION_CASE_TAG)); + List toInsert2 = new ArrayList<>(createClues(dataList2, oldMap, idCodeMan, task, Default.PETITION_TAG)); + List toInsert3 = new ArrayList<>(createClues(dataList3, oldMap, idCodeMan, task, Default.PETITION_12337_TAG)); - for (DataPetition12337 item : pList1) { - if (oldMap.get(BhUtil.petBh(item.getOnlyId())) != null) { - continue; - } - RiskPersonal person = idCodeMan.get(item.getIdCode()); - if (person == null) { - continue; - } - toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() - .id(item.getOnlyId()) - .tag(Default.PETITION_12337_TAG) - .personId(person.getId()) - .departId(item.getThirdDepartId()) - .departName(item.getThirdDepartName()) - .eventTime(item.getDiscoverTime()) - .idCode(person.getIdCode()) - .name(person.getName()) - .sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:" + item.getReviewDes()) - .build())); + if (!toInsert1.isEmpty()) { + log.info("信访数据1: {}", toInsert1.size()); + riskModelTaskClueService.saveClues(toInsert1, Default.PETITION_CASE_TAG); + } + if (!toInsert2.isEmpty()) { + log.info("信访数据2: {}", toInsert2.size()); + riskModelTaskClueService.saveClues(toInsert2, Default.PETITION_TAG); + } + if (!toInsert3.isEmpty()) { + log.info("信访数据3: {}", toInsert3.size()); + riskModelTaskClueService.saveClues(toInsert3, Default.PETITION_12337_TAG); } + riskTaskRepository.updateTask(task.getId(), toInsert1.size()+toInsert2.size()+toInsert3.size(), 0); + } - for (DataPetitionComplaint item : pList2) { - if (oldMap.get(BhUtil.petBh(item.getOriginId())) != null) { + List createClues(List dataList, Map oldMap, Map idCodeMan, RiskTask task, String tag) { + List toInsert = new ArrayList<>(); + for (PetitionData data : dataList) { + if (oldMap.get(BhUtil.petBh(data.getId())) != null) { continue; } - RiskPersonal person = idCodeMan.get(item.getResponderIdCode()); + RiskPersonal person = idCodeMan.get(data.getIdCode()); if (person == null) { continue; } toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() - .id(item.getOriginId()) - .tag(Default.PETITION_TAG) + .id(data.getId()) + .tag(tag) .personId(person.getId()) - .departId(item.getThirdDepartId()) - .departName(item.getThirdDepartName()) - .eventTime(item.getDiscoveryTime()) + .departId(data.getDepartId()) + .departName(data.getDepartName()) + .eventTime(data.getEventTime()) .idCode(person.getIdCode()) .name(person.getName()) - .sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:" + item.getThingDesc()) + .sourceData("该人员在近12个月内有"+tag+"的情况,具体情况为:" + data.getContent()) .build())); } - if (!toInsert.isEmpty()) { - log.info("公安信访数据: {}", toInsert.size()); - riskModelTaskClueService.saveClues(toInsert, Default.MAIL_IG); - } - riskTaskRepository.updateTask(task.getId(), toInsert.size(), 0); + return toInsert; } GBaseSYRKXX compare(List infos, String name) { @@ -405,17 +365,6 @@ public class PetitionServiceImpl implements PetitionService { return info; } - RiskPersonal comparePerson(List infos, String name) { - RiskPersonal info = null; - for (RiskPersonal gBaseSYRKXX : infos) { - if (gBaseSYRKXX.getName().equals(name)) { - info = gBaseSYRKXX; - break; - } - } - return info; - } - RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data) { RiskModelTaskClue clue = new RiskModelTaskClue(); clue.setModelId(modelId);