From 9b86588181b00c85cb8ab031299b1d584227cad0 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Tue, 10 Dec 2024 17:03:15 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E5=A5=BD=E7=9A=84=E5=88=86=E6=95=B0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/ApplicationEvent.java | 21 +- .../mapper/mine/RiskScoreRuleMapper.java | 19 +- .../pojo/domain/ScoreRule.java | 24 ++ .../pojo/entity/mine/RiskModelTaskClue.java | 5 + .../service/impl/GBaseSHRWFRServiceImpl.java | 4 +- .../service/impl/HabitServiceImpl.java | 6 +- .../service/impl/PetitionServiceImpl.java | 304 +++++------------- .../service/impl/PointServiceImpl.java | 18 +- .../impl/RiskModelTaskClueServiceImpl.java | 41 ++- 9 files changed, 187 insertions(+), 255 deletions(-) create mode 100644 src/main/java/com/biutag/supervisiondata/pojo/domain/ScoreRule.java diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index a5a2ba7..e13c885 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -123,7 +123,6 @@ public class ApplicationEvent { // riskTaskService.infoModelTask(initDomain(List.of(32,33))); // marriageService.marriageModelTask(initDomain(List.of(39,51))); // pointService.syncSecurity(initDomain(List.of(37))); -// policeService.contradictModelTask(initDomain(List.of(38))); // habitService.habitModelTask(start, initDomain(List.of(36,60,61,62))); // // pointService.syncCarUser(initDomain(List.of(53))); @@ -131,7 +130,6 @@ public class ApplicationEvent { // pointService.syncScore(initDomain(List.of(43))); // pointService.syncViolence(initDomain(List.of(44))); // noControlService.syncNoControlData(initDomain(List.of(45))); -// pointService.syncKillSelf(initDomain(List.of(46))); // pointService.syncDrug(initDomain(List.of(37))); // pointService.syncControlNoPower(initDomain(List.of(48))); // pointService.syncOilBuy(initDomain(List.of(52))); @@ -147,7 +145,7 @@ public class ApplicationEvent { // gBaseJJDService.syncMarryDispute(initDomain(List.of(72))); // gBaseJJDService.syncNeighborAndColleagueDispute(initDomain(List.of(73))); // gBaseJJDService.syncBullying(initDomain(List.of(74))); -// gBaseSHRWFRService.crimeName(initDomain(List.of(75))); +// gBaseSHRWFRService.crimeName(initDomain(List.of(76))); // pointService.syncIsPetition(initDomain(List.of(111))); // pointService.syncFatherEducation(initDomain(List.of(112))); // pointService.syncMotherEducation(initDomain(List.of(113))); @@ -158,19 +156,20 @@ public class ApplicationEvent { // pointService.syncFamilyDie(initDomain(List.of(118))); // pointService.syncFatherDie(initDomain(List.of(119))); // pointService.syncMotherDie(initDomain(List.of(120))); - pointService.syncChildNo(initDomain(List.of(121))); - pointService.syncXIDU(initDomain(List.of(122))); - pointService.syncFiliation(initDomain(List.of(123))); +// pointService.syncChildNo(initDomain(List.of(121))); +// pointService.syncXIDU(initDomain(List.of(122))); +// pointService.syncFiliation(initDomain(List.of(123))); // 必须在123后面 - gBaseJJDService.syncOtherContradict(initDomain(List.of(75))); - - pointService.syncPetitionContent(initDomain(List.of(124))); +// gBaseJJDService.syncOtherContradict(initDomain(List.of(75))); +// +// pointService.syncPetitionContent(initDomain(List.of(124))); // *********暂时不要********** // riskTaskService.caseModelTask(initDomain(List.of(35))); - // riskTaskService.heightFight(initDomain(List.of(42))); - //pointService.syncKillSelf(initDomain(List.of(46))); +// pointService.syncKillSelf(initDomain(List.of(46))); +// policeService.contradictModelTask(initDomain(List.of(38))); + }); } diff --git a/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskScoreRuleMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskScoreRuleMapper.java index 5f28b15..4897c2c 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskScoreRuleMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/mine/RiskScoreRuleMapper.java @@ -1,8 +1,25 @@ package com.biutag.supervisiondata.mapper.mine; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervisiondata.pojo.domain.ScoreRule; import com.biutag.supervisiondata.pojo.entity.mine.RiskScoreRule; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; -public interface RiskScoreRuleMapper extends BaseMapper { +import java.util.List; +public interface RiskScoreRuleMapper extends BaseMapper { + /** + * 根据模型id查规则 + * @param list + * @return + */ + @Select("") + List selectRuleByModelId(@Param("list")List list); } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/domain/ScoreRule.java b/src/main/java/com/biutag/supervisiondata/pojo/domain/ScoreRule.java new file mode 100644 index 0000000..fe26f10 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/domain/ScoreRule.java @@ -0,0 +1,24 @@ +package com.biutag.supervisiondata.pojo.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author kami on 2024-12-10 16:36:59 + * @version 0.0.1 + * @since 1.8 + */ +@Data +public class ScoreRule implements Serializable { + + // 分值 + private Double score; + + // 权重 + private Double weight; + + private Integer modelId; + +} diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskModelTaskClue.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskModelTaskClue.java index 1f4d248..b6f23b9 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskModelTaskClue.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskModelTaskClue.java @@ -85,6 +85,11 @@ public class RiskModelTaskClue implements Serializable { */ @TableField("score") Integer score; + /** + * 计算后的分数 + */ + @TableField("score_calc") + Double scoreCalc; /** * 发生时间 */ 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 61e535a..6cd94ad 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java @@ -372,7 +372,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { List xxList = wfrxxRepository.getBaseMapper().selectFiveYearsCombatCrime(start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")), end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - RiskTask task = taskRepository.create(xxList.size(), 75); + RiskTask task = taskRepository.create(xxList.size(), 76); List oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); // 按人分 @@ -403,7 +403,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { .idCode(person.getIdCode()) .tag(zblx.getDmmc()) .personId(person.getId()) - .sourceData("该人员有犯罪前科,刑事处罚罪名:" + zblx.getDmmc() + ",案件编号:" + xx.getAjbh() + ",增加风险" + zblx.getScore().intValue() + "5分") + .sourceData("该人员有犯罪前科,刑事处罚罪名:" + zblx.getDmmc() + ",案件编号:" + xx.getAjbh() + ",增加风险" + zblx.getScore().intValue() + "分") .build(); try { data.setEventTime(xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); 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 867175a..9c32f1e 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java @@ -94,7 +94,7 @@ public class HabitServiceImpl implements HabitService { riskTaskRepository.save(task); RiskTask task2 = createTask(ajNos2.size(), 60); riskTaskRepository.save(task2); - RiskTask task3 = createTask(ajNos2.size(), 61); + RiskTask task3 = createTask(ajNos3.size(), 61); riskTaskRepository.save(task3); log.info("共计案件:{} | {} | {}", ajNos.size(), ajNos2.size(), ajNos3.size()); @@ -115,10 +115,10 @@ public class HabitServiceImpl implements HabitService { riskModelTaskClueService.saveClues(toInsert1, Default.HABBIT_IG); } if(!toInsert2.isEmpty()) { - riskModelTaskClueService.saveClues(toInsert1, Default.HABBIT_IG); + riskModelTaskClueService.saveClues(toInsert2, Default.HABBIT_IG); } if(!toInsert3.isEmpty()) { - riskModelTaskClueService.saveClues(toInsert1, Default.HABBIT_IG); + riskModelTaskClueService.saveClues(toInsert3, Default.HABBIT_IG); } updateTask(task.getId(), toInsert1.size(), 0); 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 08b2bd5..9a75828 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java @@ -51,8 +51,6 @@ public class PetitionServiceImpl implements PetitionService { private final RiskModelTaskClueService riskModelTaskClueService; - private final RiskModelTaskClueRepository clueRepository; - private final SupExternalDepartRepository externalDepartRepository; private final GBaseZDRYRepository zdryRepository; @@ -60,8 +58,8 @@ public class PetitionServiceImpl implements PetitionService { @Override public void personPullAndSave(LocalDateTime start, LocalDateTime end) { List personals1 = new ArrayList<>(); - List personals2= new ArrayList<>(); - List personals3= new ArrayList<>(); + List personals2 = new ArrayList<>(); + List personals3 = new ArrayList<>(); List idCards = new ArrayList<>(); List idCards_b = new ArrayList<>(); List mobiles = new ArrayList<>(); @@ -82,7 +80,7 @@ public class PetitionServiceImpl implements PetitionService { CompletableFuture.allOf( CompletableFutureUtil.runSyncObject(() -> { List list = petition12337Repository.list(new LambdaQueryWrapper() - .select(DataPetition12337::getName, DataPetition12337::getIdCode, DataPetition12337::getPhone,DataPetition12337::getThirdDepartId, DataPetition12337::getThirdDepartName, DataPetition12337::getDiscoverTime).between(DataPetition12337::getDiscoverTime, start, end) + .select(DataPetition12337::getName, DataPetition12337::getIdCode, DataPetition12337::getPhone, DataPetition12337::getThirdDepartId, DataPetition12337::getThirdDepartName, DataPetition12337::getDiscoverTime).between(DataPetition12337::getDiscoverTime, start, end) .isNotNull(DataPetition12337::getIdCode)); for (DataPetition12337 data : list) { RiskPersonal person = new RiskPersonal(); @@ -90,7 +88,7 @@ public class PetitionServiceImpl implements PetitionService { person.setName(data.getName()); person.setMobileNumber(data.getPhone()); person.setTags(Default.PETITION_12337_TAG); - if(data.getThirdDepartId() != null) { + if (data.getThirdDepartId() != null) { person.setControlDepartId(data.getThirdDepartId()); person.setControlDepartName(data.getThirdDepartName()); person.setControlTime(data.getDiscoverTime()); @@ -102,7 +100,7 @@ public class PetitionServiceImpl implements PetitionService { }), CompletableFutureUtil.runSyncObject(() -> { List list = complaintRepository.list(new LambdaQueryWrapper() - .select(DataPetitionComplaint::getResponderName, DataPetitionComplaint::getResponderPhone, DataPetitionComplaint::getResponderName,DataPetitionComplaint::getThirdDepartId, DataPetitionComplaint::getThirdDepartName, DataPetitionComplaint::getDiscoveryTime).between(DataPetitionComplaint::getResponderIdCode, start, end) + .select(DataPetitionComplaint::getResponderName, DataPetitionComplaint::getResponderPhone, DataPetitionComplaint::getResponderName, DataPetitionComplaint::getThirdDepartId, DataPetitionComplaint::getThirdDepartName, DataPetitionComplaint::getDiscoveryTime).between(DataPetitionComplaint::getResponderIdCode, start, end) .isNotNull(DataPetitionComplaint::getResponderIdCode)); for (DataPetitionComplaint data : list) { RiskPersonal person = new RiskPersonal(); @@ -110,7 +108,7 @@ public class PetitionServiceImpl implements PetitionService { person.setName(data.getResponderName()); person.setMobileNumber(data.getResponderPhone()); person.setTags(Default.PETITION_TAG); - if(data.getThirdDepartId() != null) { + if (data.getThirdDepartId() != null) { person.setControlDepartId(data.getThirdDepartId()); person.setControlDepartName(data.getThirdDepartName()); person.setControlTime(data.getDiscoveryTime()); @@ -122,14 +120,14 @@ public class PetitionServiceImpl implements PetitionService { }), CompletableFutureUtil.runSyncObject(() -> { List list = dataCaseVerifRepository.list(new LambdaQueryWrapper() - .select(DataCaseVerif::getResponderName, DataCaseVerif::getResponderPhone,DataCaseVerif::getThirdDepartId, DataCaseVerif::getThirdDepartName, DataCaseVerif::getDiscoveryTime).between(DataCaseVerif::getDiscoveryTime, start, end) + .select(DataCaseVerif::getResponderName, DataCaseVerif::getResponderPhone, DataCaseVerif::getThirdDepartId, DataCaseVerif::getThirdDepartName, DataCaseVerif::getDiscoveryTime).between(DataCaseVerif::getDiscoveryTime, start, end) .isNotNull(DataCaseVerif::getResponderPhone)); for (DataCaseVerif data : list) { RiskPersonal person = new RiskPersonal(); person.setName(data.getResponderName()); person.setMobileNumber(data.getResponderPhone()); person.setTags(Default.PETITION_CASE_TAG); - if(data.getThirdDepartId() != null) { + if (data.getThirdDepartId() != null) { person.setControlDepartId(data.getThirdDepartId()); person.setControlDepartName(data.getThirdDepartName()); person.setControlTime(data.getDiscoveryTime()); @@ -140,7 +138,7 @@ public class PetitionServiceImpl implements PetitionService { } }) ).join(); - log.info("{} | {} | {}",idCards.size(), idCards_b.size(), mobiles.size()); + log.info("{} | {} | {}", idCards.size(), idCards_b.size(), mobiles.size()); idCards.addAll(idCards_b); List idCards2 = idCards.stream().distinct().toList(); List mobiles2 = mobiles.stream().distinct().toList(); @@ -184,29 +182,29 @@ public class PetitionServiceImpl implements PetitionService { List toInsert = new ArrayList<>(); for (RiskPersonal personal : personals1) { GBaseSYRKXX xx = map.get(personal.getIdCode()); - if(xx == null) { + if (xx == null) { personal = checkPerson(personal); - if(personal != null) { + if (personal != null) { toInsert.add(personal); } continue; } personal.setGender(IdCodeUtil.idCard2Gender(personal.getIdCode())); - if(personal == null) { + if (personal.getGender() == null) { personal.setGender(xx.getXbdm()); } - if(xx.getLxdh() != null) { + if (xx.getLxdh() != null) { personal.setMobileNumber(xx.getLxdh()); } personal.setName(xx.getXm()); personal.setAge(Optional.ofNullable(IdCodeUtil.idCard2Age(personal.getIdCode(), LocalDate.now())).orElse(-1)); - if(personal.getAge() <= 6) { + if (personal.getAge() <= 6) { continue; } - if(xx.getSspcsdm()!= null) { + if (xx.getSspcsdm() != null) { PointOrg org = orgCodeMap.get(xx.getSspcsdm()); org = findOrg(org, orgIdMap); - SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(item -> jqExternalDepart.get(item)).orElse(null); + SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(jqExternalDepart::get).orElse(null); if (depart != null) { personal.setControlDepartId(depart.getInternalId()); personal.setControlDepartName(depart.getInternalName()); @@ -218,26 +216,26 @@ public class PetitionServiceImpl implements PetitionService { } for (RiskPersonal personal : personals2) { GBaseSYRKXX xx = map.get(personal.getIdCode()); - if(xx == null) { + if (xx == null) { personal = checkPerson(personal); - if(personal != null) { + if (personal != null) { toInsert.add(personal); } continue; } personal.setGender(xx.getXbdm()); - if(xx.getLxdh() != null) { + if (xx.getLxdh() != null) { personal.setMobileNumber(xx.getLxdh()); } personal.setName(xx.getXm()); personal.setAge(Optional.ofNullable(IdCodeUtil.idCard2Age(personal.getIdCode(), LocalDate.now())).orElse(-1)); - if(personal.getAge() <= 6) { + if (personal.getAge() <= 6) { continue; } - if(xx.getSspcsdm()!= null) { + if (xx.getSspcsdm() != null) { PointOrg org = orgCodeMap.get(xx.getSspcsdm()); org = findOrg(org, orgIdMap); - SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(item -> jqExternalDepart.get(item)).orElse(null); + SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(jqExternalDepart::get).orElse(null); if (depart != null) { personal.setControlDepartId(depart.getInternalId()); personal.setControlDepartName(depart.getInternalName()); @@ -249,32 +247,32 @@ public class PetitionServiceImpl implements PetitionService { } for (RiskPersonal personal : personals3) { List xx = mobileMap.get(personal.getMobileNumber()); - if(xx == null) { + if (xx == null) { continue; } - GBaseSYRKXX info = null; - if(xx.size() ==1) { + GBaseSYRKXX info; + if (xx.size() == 1) { info = xx.getFirst(); } else { info = compare(xx, personal.getName()); } - if(info == null) { + if (info == null) { continue; } personal.setIdCode(info.getGmsfhm()); personal.setGender(info.getXbdm()); - if(info.getLxdh() != null) { + if (info.getLxdh() != null) { personal.setMobileNumber(info.getLxdh()); } personal.setName(info.getXm()); personal.setAge(Optional.ofNullable(IdCodeUtil.idCard2Age(personal.getIdCode(), LocalDate.now())).orElse(-1)); - if(personal.getAge() <= 6) { + if (personal.getAge() <= 6) { continue; } - if(info.getSspcsdm()!= null) { + if (info.getSspcsdm() != null) { PointOrg org = orgCodeMap.get(info.getSspcsdm()); org = findOrg(org, orgIdMap); - SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(item -> jqExternalDepart.get(item)).orElse(null); + SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(jqExternalDepart::get).orElse(null); if (depart != null) { personal.setControlDepartId(depart.getInternalId()); personal.setControlDepartName(depart.getInternalName()); @@ -298,57 +296,66 @@ public class PetitionServiceImpl implements PetitionService { 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) + .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) + .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 pList3 = new ArrayList<>(); List mobiles = domain.getPersons().stream().map(RiskPersonal::getMobileNumber).distinct().toList(); - List> doubleMobile = IntStream.range(0, (mobiles.size() + 9999) / 10000) + 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) + .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 data = new ArrayList<>(); + 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) { + if (person == null) { continue; } - data.add(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()); + 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())); } for (DataPetition12337 item : pList1) { + if (oldMap.get(BhUtil.petBh(item.getOnlyId())) != null) { + continue; + } RiskPersonal person = idCodeMan.get(item.getIdCode()); - if(person == null) { + if (person == null) { continue; } - data.add(ClueData.builder() + toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() .id(item.getOnlyId()) .tag(Default.PETITION_12337_TAG) .personId(person.getId()) @@ -357,16 +364,19 @@ public class PetitionServiceImpl implements PetitionService { .eventTime(item.getDiscoverTime()) .idCode(person.getIdCode()) .name(person.getName()) - .sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:"+item.getReviewDes()) - .build()); + .sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:" + item.getReviewDes()) + .build())); } for (DataPetitionComplaint item : pList2) { + if (oldMap.get(BhUtil.petBh(item.getOriginId())) != null) { + continue; + } RiskPersonal person = idCodeMan.get(item.getResponderIdCode()); - if(person == null) { + if (person == null) { continue; } - data.add(ClueData.builder() + toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() .id(item.getOriginId()) .tag(Default.PETITION_TAG) .personId(person.getId()) @@ -375,153 +385,18 @@ public class PetitionServiceImpl implements PetitionService { .eventTime(item.getDiscoveryTime()) .idCode(person.getIdCode()) .name(person.getName()) - .sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:"+item.getThingDesc()) - .build()); + .sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:" + item.getThingDesc()) + .build())); } - - // 数据部分 - List toUpdates = new ArrayList<>(); - List toInsert = new ArrayList<>(); - - // 操作前查询之前的数据,可能要合并 - List oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); - List oldResults = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); - for (RiskModelTaskClue clue : oldList) { - if(clue.getEventTime().isBefore(time)) { - // 再见了兄弟 - RiskModelTaskClue clue1 = new RiskModelTaskClue(); - clue1.setId(clue.getId()); - clue1.setDel(1); - toUpdates.add(clue1); - } else { - oldResults.add(clue); - } - } - - - Map> oldMap = oldResults.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); - - Map> clueMap = data.stream().collect(Collectors.groupingBy(ClueData::getIdCode)); - // 按季度计分 - for (Map.Entry> entry : clueMap.entrySet()) { - List oldClues = Optional.ofNullable(oldMap.get(entry.getKey())).orElse(new ArrayList<>()); - // - 先筛选出老记录,如果已经入库过了,新增的就删除 - Map oldClueMap = oldClues.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (oldValue, newValue) -> newValue)); - // 胜利者将继续进行筛选 - List winner = new ArrayList<>(); - - for (ClueData clueData : entry.getValue()) { - // 找不到旧编号才继续 - if(oldClueMap.get(BhUtil.petBh(clueData.getId())) == null) { - winner.add(createClue(task.getModelId(), 5, task.getId(), clueData)); - } - } - // - 结合新旧数据,从新计算季度,季度最晚的算分 - oldClues.addAll(winner); - Map> winnerMap = new WeakHashMap<>(); - // 去年季度 - Map> lastWinnerMap = new WeakHashMap<>(); - int year = time.getYear(); - for (RiskModelTaskClue oldClue : oldClues) { - int month = oldClue.getEventTime().getMonthValue(); - int theYear = oldClue.getEventTime().getYear(); - int session = month / 3; - if(theYear != year) { - List list = Optional.ofNullable(lastWinnerMap.get(session)).orElse(new ArrayList<>()); - list.add(oldClue); - lastWinnerMap.put(session, list); - } else { - List list = Optional.ofNullable(winnerMap.get(session)).orElse(new ArrayList<>()); - list.add(oldClue); - winnerMap.put(session, list); - } - } - - // - 上季度排序 - for (Map.Entry> entities : lastWinnerMap.entrySet()) { - List list = entities.getValue(); - list.sort(Comparator.comparing(RiskModelTaskClue::getEventTime, Comparator.reverseOrder())); - RiskModelTaskClue clue = list.getFirst(); - int years = clue.getEventTime().getYear(); - String [] str = clue.getRiskReason().split("-"); - if(clue.getId() != null) { - RiskModelTaskClue update = new RiskModelTaskClue(); - update.setId(clue.getId()); - update.setScore(2); - update.setRiskReason(str[0] + "-" + years+"年"+(entities.getKey()+1)+"季度"); - toUpdates.add(update); - } else { - clue.setScore(2); - clue.setRiskReason(str[0] + "-" + years+"年"+(entities.getKey()+1)+"季度"); - toInsert.add(clue); - } - list.remove(0); - for (RiskModelTaskClue riskModelTaskClue : list) { - years = riskModelTaskClue.getEventTime().getYear(); - str = riskModelTaskClue.getRiskReason().split("-"); - if(riskModelTaskClue.getId() != null) { - RiskModelTaskClue update = new RiskModelTaskClue(); - update.setId(riskModelTaskClue.getId()); - update.setScore(0); - update.setRiskReason(str[0] + "-" + years+"年"+(entities.getKey()+1)+"季度季度(已合并到本季度最后)"); - toUpdates.add(update); - } else { - riskModelTaskClue.setScore(0); - riskModelTaskClue.setRiskReason(str[0] + "-" + years+"年"+(entities.getKey()+1)+"季度季度(已合并到本季度最后)"); - toInsert.add(riskModelTaskClue); - } - } - } - - // - 本季度排序 - for (Map.Entry> entities : winnerMap.entrySet()) { - List list = entities.getValue(); - list.sort(Comparator.comparing(RiskModelTaskClue::getEventTime, Comparator.reverseOrder())); - RiskModelTaskClue clue = list.getFirst(); - int years = clue.getEventTime().getYear(); - String [] str = clue.getRiskReason().split("-"); - if(clue.getId() != null) { - RiskModelTaskClue update = new RiskModelTaskClue(); - update.setId(clue.getId()); - update.setScore(2); - update.setRiskReason(str[0] + "-" + years+"年"+(entities.getKey()+1)+"季度"); - toUpdates.add(update); - } else { - clue.setScore(2); - clue.setRiskReason(str[0] + "-" + years+"年"+(entities.getKey()+1)+"季度"); - toInsert.add(clue); - } - list.remove(0); - for (RiskModelTaskClue riskModelTaskClue : list) { - years = riskModelTaskClue.getEventTime().getYear(); - str = riskModelTaskClue.getRiskReason().split("-"); - if(riskModelTaskClue.getId() != null) { - RiskModelTaskClue update = new RiskModelTaskClue(); - update.setId(riskModelTaskClue.getId()); - update.setScore(0); - update.setRiskReason(str[0] + "-" + years+"年"+(entities.getKey()+1)+"季度季度(已合并到本季度最后)"); - toUpdates.add(update); - } else { - riskModelTaskClue.setScore(0); - riskModelTaskClue.setRiskReason(str[0] + "-" + years+"年"+(entities.getKey()+1)+"季度季度(已合并到本季度最后)"); - toInsert.add(riskModelTaskClue); - } - } - } - } - if(!toInsert.isEmpty()) { + if (!toInsert.isEmpty()) { + log.info("公安信访数据: {}", toInsert.size()); riskModelTaskClueService.saveClues(toInsert, Default.MAIL_IG); } - if(!toUpdates.isEmpty()) { - log.info("修改线索数 | {}", toUpdates.size()); - clueRepository.updateBatchById(toUpdates); - } - RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); updateTask.setInsertSize(toInsert.size()); - updateTask.setUpdateSize(toUpdates.size()); + updateTask.setUpdateSize(0); updateTask.setState(1); updateTask.setEndTime(LocalDateTime.now()); riskTaskRepository.updateById(updateTask); @@ -530,8 +405,8 @@ public class PetitionServiceImpl implements PetitionService { GBaseSYRKXX compare(List infos, String name) { GBaseSYRKXX info = null; for (GBaseSYRKXX gBaseSYRKXX : infos) { - if(gBaseSYRKXX.getXm().equals(name)) { - info=gBaseSYRKXX; + if (gBaseSYRKXX.getXm().equals(name)) { + info = gBaseSYRKXX; break; } } @@ -541,8 +416,8 @@ public class PetitionServiceImpl implements PetitionService { RiskPersonal comparePerson(List infos, String name) { RiskPersonal info = null; for (RiskPersonal gBaseSYRKXX : infos) { - if(gBaseSYRKXX.getName().equals(name)) { - info=gBaseSYRKXX; + if (gBaseSYRKXX.getName().equals(name)) { + info = gBaseSYRKXX; break; } } @@ -575,37 +450,20 @@ public class PetitionServiceImpl implements PetitionService { return clue; } - RiskPersonalControlRecord createControlRecord(ClueData data) { - RiskPersonalControlRecord controlRecord = new RiskPersonalControlRecord(); - controlRecord.setName(data.getName()); - controlRecord.setIdCode(data.getIdCode()); - controlRecord.setCreateTime(LocalDateTime.now()); - controlRecord.setControlTime(data.getEventTime()); - controlRecord.setControlDepartId(data.getDepartId()); - controlRecord.setControlDepartName(data.getDepartName()); - controlRecord.setControlTag(data.getTag()); - controlRecord.setCaseId(BhUtil.ajBh(data.getId())); - return controlRecord; - } - RiskPersonal checkPerson(RiskPersonal personal) { - if(personal.getName()== null ||personal.getIdCode() == null || personal.getName().isEmpty() || personal.getIdCode().isEmpty()) { + if (personal.getName() == null || personal.getIdCode() == null || personal.getName().isEmpty() || personal.getIdCode().isEmpty()) { return null; } - try{ - int age = IdCodeUtil.idCard2Age(personal.getIdCode(), LocalDate.now()); - if(age <= 6) { - return null; - } - personal.setAge(age); - } catch (Exception e) { + Integer age = IdCodeUtil.idCard2Age(personal.getIdCode(), LocalDate.now()); + if (age == null || age <= 6) { return null; } - if(personal.getGender() == null) { - try{ + personal.setAge(age); + if (personal.getGender() == null) { + try { int gender = personal.getIdCode().length() == 18 ? Integer.valueOf(personal.getIdCode().substring(16, 17)) : Integer.valueOf(personal.getIdCode().substring(14, 15)); // 结果0男1女 余数偶女奇男 - personal.setGender(gender % 2 == 0 ?"2":"1"); + personal.setGender(gender % 2 == 0 ? "2" : "1"); } catch (Exception e) { return null; } 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 3fc8197..b088a0f 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.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.common.interfaces.CompletableFutureUtil; +import com.biutag.supervisiondata.common.utils.StreamUtil; import com.biutag.supervisiondata.config.cache.RedisDao; import com.biutag.supervisiondata.mapper.mine.SupDepartMapper; import com.biutag.supervisiondata.pojo.ClueData; @@ -97,8 +98,9 @@ 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 : entry.getValue()) { + for (RiskPersonal personal : personals) { toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() .tag("重点人员") .name(personal.getName()) @@ -112,7 +114,8 @@ public class PointServiceImpl implements PointService { continue; } Map clueMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getRiskReason, Function.identity(), (oldValue, newValue) -> newValue)); - for (RiskPersonal personal : entry.getValue()) { + List personals = entry.getValue().stream().filter(StreamUtil.distinctByKey(RiskPersonal::getTags)).toList(); + for (RiskPersonal personal : personals) { if (clueMap.get(personal.getTags()) == null) { toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() .tag("重点人员") @@ -127,7 +130,7 @@ public class PointServiceImpl implements PointService { } } if (!toInsert.isEmpty()) { - modelTaskClueService.saveClues(toInsert, Default.POINT_IG); + modelTaskClueService.saveClues(toInsert, "是否是重点人员"); } RiskTask updateTask = new RiskTask(); updateTask.setId(task.getId()); @@ -167,6 +170,7 @@ public class PointServiceImpl implements PointService { } List oldList = Optional.ofNullable(personMap.get(ry.getSfzh())).orElse(new ArrayList<>()); Map oldClue = oldList.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val)); + codes = codes.stream().distinct().toList(); for (String index : codes) { WdpcGrjdZblx zblx = map.get(index); if(oldClue.get(index) != null || zblx == null) { @@ -190,7 +194,7 @@ public class PointServiceImpl implements PointService { } if (!toInsert.isEmpty()) { log.info("保存重点人员标签 {}", toInsert.size()); - modelTaskClueService.saveClues(toInsert, Default.POINT_IG); + modelTaskClueService.saveClues(toInsert, "列管原因"); } taskRepository.updateTask(task.getId(), toInsert.size(), 0); } @@ -1126,9 +1130,9 @@ public class PointServiceImpl implements PointService { .departName(gBaseZDRY.getXzdpcs()) .personId(personal.getId()) .eventTime(LocalDateTime.of(2024, 10, 7, 12, 11, 23)) - .sourceData("发现该人员属于重点人员,该人员的管控民警所管控的重点人员达到100人以上\n属于未落实日常管控要求,增加风险分4分") + .sourceData("发现该人员属于重点人员,该人员的管控民警所管控的重点人员达到100人以上\n属于未落实日常管控要求,增加风险分5分") .build(); - toInsert.add(createClue(task.getModelId(), 4, task.getId(), data)); + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } if (!toInsert.isEmpty()) { log.info("增加特定对象日常管控不到位人员:{}", toInsert.size()); @@ -1308,7 +1312,7 @@ public class PointServiceImpl implements PointService { } data.setTag(Default.NO_CAR_OIL_BUY); - data.setSourceData("发现该人员属于无车人员,于" + item.getTime() + "在" + item.getCompanyName() + "购买容量为" + item.getNumber() + "L的" + item.getType() + ",用作" + item.getUseTo() + ",风险分增加3分"); + data.setSourceData("发现该人员属于无车人员,于" + item.getTime() + "在" + item.getCompanyName() + "购买容量为" + item.getNumber() + "L的" + item.getType() + ",用作" + item.getUseTo() + ",风险分增加5分"); toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } } 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 62fe48c..906e4c1 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java @@ -4,8 +4,12 @@ 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.ModelMapper; import com.biutag.supervisiondata.mapper.mine.RiskModelTaskClueMapper; +import com.biutag.supervisiondata.mapper.mine.RiskScoreRuleMapper; import com.biutag.supervisiondata.pojo.constants.Default; +import com.biutag.supervisiondata.pojo.domain.ScoreRule; +import com.biutag.supervisiondata.pojo.entity.mine.Model; import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalControlRecord; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalTag; @@ -19,12 +23,15 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import javax.sql.DataSource; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -45,6 +52,8 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { private final RiskModelTaskClueRepository clueRepository; + private final RiskScoreRuleMapper riskScoreRuleMapper; + Connection getConnection() throws SQLException { return dataSource.getConnection(); } @@ -52,12 +61,16 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { @Override public void saveClues(List list, String bigTag) { + List modelIds = list.stream().map(RiskModelTaskClue::getModelId).distinct().toList(); + List rules = riskScoreRuleMapper.selectRuleByModelId(modelIds); + // 赋分规则 + Map ruleMap = rules.stream().collect(Collectors.toMap(ScoreRule::getModelId, Function.identity(), (val, old) -> val)); 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()); for (List record : control) { try { - batchInsert(record, bigTag); + batchInsert(record, bigTag, ruleMap); } catch (Exception e) { log.error("", e); } @@ -117,18 +130,29 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { @Override public void deleteCluesAndDeleteTag(List list, List idCodes, String smallTag) { clueRepository.updateBatchById(list); - if(!idCodes.isEmpty()) { + if (!idCodes.isEmpty()) { tagRepository.getBaseMapper().updateToDelete(idCodes, smallTag); } } - 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(?,?,?,?,?,?,?,?,?,?,?,?)"; + final String sql = "INSERT INTO risk_model_task_clue(model_id, name, id_code, task_id, source_id, risk_reason, data, score, score_calc, event_time, create_time, update_time, case_ids) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)"; - public void batchInsert(List alliances, String bigTag) { + public void batchInsert(List alliances, String bigTag, Map ruleMap) { try (Connection connection = getConnection(); PreparedStatement prepareStatement = connection.prepareStatement(sql)) { connection.setAutoCommit(false); alliances.stream().forEachOrdered(it -> { + ScoreRule rule = ruleMap.get(it.getModelId()); + BigDecimal score = new BigDecimal("0.00"); + if (rule == null) { + log.error("没有找到规则"); + } else { + score = new BigDecimal(it.getScore().toString()); + BigDecimal weight = new BigDecimal(rule.getWeight().toString()); + score = score.multiply(new BigDecimal("20")) + .multiply(weight) + .divide(new BigDecimal("100"), 2, RoundingMode.UP); + } try { prepareStatement.setObject(1, it.getModelId()); prepareStatement.setObject(2, Optional.ofNullable(it.getName()).orElse("")); @@ -138,10 +162,11 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { 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)); - prepareStatement.setObject(10, Optional.ofNullable(it.getCreateTime()).map(item -> item.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).orElse(null)); - prepareStatement.setObject(11, Optional.ofNullable(it.getUpdateTime()).map(item -> item.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).orElse(null)); - prepareStatement.setObject(12, Optional.ofNullable(it.getCaseIds()).orElse("")); + prepareStatement.setObject(9, Optional.ofNullable(score.doubleValue()).orElse(0.00)); + prepareStatement.setObject(10, Optional.ofNullable(it.getEventTime()).map(item -> item.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).orElse(null)); + prepareStatement.setObject(11, Optional.ofNullable(it.getCreateTime()).map(item -> item.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).orElse(null)); + prepareStatement.setObject(12, Optional.ofNullable(it.getUpdateTime()).map(item -> item.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).orElse(null)); + prepareStatement.setObject(13, Optional.ofNullable(it.getCaseIds()).orElse("")); prepareStatement.addBatch(); } catch (SQLException e) { log.error("", e); From b63a6f6847c88d32c8f380ab5d456bca39185197 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Tue, 10 Dec 2024 17:13:49 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=80=BB=E5=88=86?= =?UTF-8?q?=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/RiskScoreRuleServiceImpl.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) 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 ed0bbb7..02dffb3 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java @@ -94,10 +94,15 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService { if(temp == null) { continue; } - Integer ruleScore = temp.stream().mapToInt(RiskModelTaskClue::getScore).sum(); - 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); + + //二次改造 +// Integer ruleScore = temp.stream().mapToInt(RiskModelTaskClue::getScore).sum(); +// 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); + Double ruleScore = temp.stream().mapToDouble(RiskModelTaskClue::getScoreCalc).sum(); + BigDecimal n2 = new BigDecimal(Double.toString(Math.min(ruleScore, riskScoreRule.getScore()))); score=score.add(n2); } // BigDecimal ruleScore = new BigDecimal(Double.toString(rule.getScore())); @@ -105,7 +110,8 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService { // score = score.multiply(weight).divide(ruleScore, 2, RoundingMode.UP); total = total.add(score); } - total = total.multiply(new BigDecimal("20")); + //二次改造 +// total = total.multiply(new BigDecimal("20")); if(person.getRickScore().compareTo(total.doubleValue()) != 0) { update = new RiskPersonal(); update.setId(person.getId()); From cb6642dfc454b8f460b105340adc61b7eca0cf68 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Tue, 10 Dec 2024 17:21:19 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=A3=8E=E9=99=A9=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E5=85=88=E5=88=A4=E6=96=AD=E6=AD=BB=E4=BA=86=E6=B2=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervisiondata/event/ApplicationEvent.java | 2 +- .../mapper/wdpc2/WdpcHZCRYXXMapper.java | 10 ++++++++++ .../service/impl/RiskPersonalServiceImpl.java | 16 ++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index 8d38b12..c2bff76 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -114,7 +114,7 @@ public class ApplicationEvent { // petitionService.personPullAndSave(start, end); // personalService.pullPetitionAgain(); // pointService.personPullAndSave(start, end); -// riskPersonalService.fixed(); + riskPersonalService.fixed(); // // // diff --git a/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcHZCRYXXMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcHZCRYXXMapper.java index df9ab31..8099921 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcHZCRYXXMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcHZCRYXXMapper.java @@ -2,6 +2,9 @@ package com.biutag.supervisiondata.mapper.wdpc2; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcHZCRYXX; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * @author kami on 2024-12-06 10:23:13 @@ -9,4 +12,11 @@ import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcHZCRYXX; * @since 1.8 */ public interface WdpcHZCRYXXMapper extends BaseMapper { + + /** + * 查询火葬场剔重身份证 + * @return + */ + @Select(" select distinct id_code from wdpc_grjd_hzcryxx") + List selectDistinctIdCodes(); } 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 a6ffb19..ca58ae4 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskPersonalServiceImpl.java @@ -11,6 +11,7 @@ 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.repository.WdpcHZCRYXXRepository; import com.biutag.supervisiondata.service.RiskPersonalService; import com.biutag.supervisiondata.service.RiskPersonalTagService; import com.biutag.supervisiondata.util.IdCodeUtil; @@ -144,11 +145,26 @@ public class RiskPersonalServiceImpl implements RiskPersonalService { } } + private final WdpcHZCRYXXRepository hzcryxxRepository; + @Override public void fixed() { + List diePerson = hzcryxxRepository.getBaseMapper().selectDistinctIdCodes(); + Map map = new WeakHashMap<>(); + for (String person : diePerson) { + map.put(person, new Byte[0]); + } + List personals = repository.list(); List del = new ArrayList<>(); for (RiskPersonal personal : personals) { + if(map.get(personal.getIdCode()) != null) { + RiskPersonal delete = new RiskPersonal(); + delete.setId(personal.getId()); + delete.setDel(1); + del.add(delete); + continue; + } boolean up = false; if(personal.getAge() == -1) { try{ From eaac7f78aba1370820f75f784f12ea470ea29198 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Tue, 10 Dec 2024 17:43:37 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E9=A3=8E=E9=99=A9=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E5=85=88=E5=88=A4=E6=96=AD=E6=AD=BB=E4=BA=86=E6=B2=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biutag/supervisiondata/mapper/wdpc2/WdpcHZCRYXXMapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcHZCRYXXMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcHZCRYXXMapper.java index 8099921..4f623bf 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcHZCRYXXMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcHZCRYXXMapper.java @@ -15,7 +15,7 @@ public interface WdpcHZCRYXXMapper extends BaseMapper { /** * 查询火葬场剔重身份证 - * @return + * @return 死亡的身份证 */ @Select(" select distinct id_code from wdpc_grjd_hzcryxx") List selectDistinctIdCodes();