diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index 0ef71e3..ae66fb6 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -6,11 +6,9 @@ import com.biutag.supervisiondata.config.cache.RedisDao; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; -import com.biutag.supervisiondata.repository.RiskModelTaskClueRepository; -import com.biutag.supervisiondata.repository.RiskPersonalRepository; -import com.biutag.supervisiondata.repository.RiskPersonalTagRepository; -import com.biutag.supervisiondata.repository.RiskTestRepository; +import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.service.*; +import com.biutag.supervisiondata.util.DepartUtil; import jakarta.annotation.PreDestroy; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -31,8 +29,8 @@ import java.util.stream.Collectors; * @version 0.0.1 * @since 1.8 */ -@Component @Slf4j +@Component public class ApplicationEvent { @Resource @@ -95,10 +93,16 @@ public class ApplicationEvent { @Resource private WdpcGrjdJsbryService jsbryService; + @Resource + private GBaseZDRYRepository ryRepository; + @Resource + SupExternalDepartRepository departRepository; + @EventListener(ApplicationReadyEvent.class) public void serviceReady() { RedisDao.getInstance().init(redisTemplate); + DepartUtil.init(ryRepository, departRepository); LocalDateTime end = LocalDate.now().minusDays(1).atTime(23,59,59); CompletableFutureUtil.runSync(() -> { // personalService.init(List.of()); @@ -129,7 +133,7 @@ public class ApplicationEvent { // jsbryService.syncPys(initDomain(List.of(59))); // gBaseSHRWFRService.combatCrime(initDomain(List.of(63))); // gBaseJJDService.warningInstance(initDomain(List.of(64))); - gBaseJJDService.syncHomeViolence(initDomain(List.of(65,66))); +// gBaseJJDService.syncHomeViolence(initDomain(List.of(65,66))); // pointService.syncPointType(initDomain(List.of(67))); // gBaseSHRWFRService.hadWork(initDomain(List.of(68))); // gBaseJJDService.syncParentRelation(initDomain(List.of(69,70))); diff --git a/src/main/java/com/biutag/supervisiondata/pojo/enums/OrgType.java b/src/main/java/com/biutag/supervisiondata/pojo/enums/OrgType.java new file mode 100644 index 0000000..161829b --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/enums/OrgType.java @@ -0,0 +1,21 @@ +package com.biutag.supervisiondata.pojo.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +/** + * @author kami on 2024-11-25 16:54:01 + * @version 0.0.1 + * @since 1.8 + */ +@AllArgsConstructor +@Getter +@Slf4j +public enum OrgType { + + POINT( "重点人员"), + INSTANCE( "情指行"); + + private final String type; +} 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 0652719..2fb7b84 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java @@ -8,7 +8,6 @@ import com.biutag.supervisiondata.common.utils.StreamUtil; import com.biutag.supervisiondata.config.cache.RedisDao; 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.Contradict; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; @@ -18,6 +17,7 @@ import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; import com.biutag.supervisiondata.pojo.entity.mine.RiskTask; import com.biutag.supervisiondata.pojo.entity.mine.SupExternalDepart; import com.biutag.supervisiondata.pojo.enums.DepartType; +import com.biutag.supervisiondata.pojo.enums.OrgType; import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.service.GBaseJJDService; import com.biutag.supervisiondata.service.RiskModelTaskClueService; @@ -53,10 +53,6 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { private final RiskPersonalService riskPersonalService; - private final GBaseZDRYRepository zdryRepository; - - private final SupExternalDepartRepository externalDepartRepository; - @Override public void pullAndSave(LocalDateTime start, LocalDateTime end) { // 获取接警数据 @@ -64,21 +60,6 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); log.info("总条数 | {}条", result.size()); - List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .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)); - Map jqExternalDepart = amp.get("情指行").stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val)); - - List orgs = zdryRepository.getBaseMapper().selectOrg(); - Map orgIdMap = new WeakHashMap<>(); - Map orgCodeMap = new WeakHashMap<>(); - for (PointOrg org : orgs) { - orgIdMap.put(org.getId(), org); - orgCodeMap.put(org.getDm(), org); - } - List personals = new ArrayList<>(); // 过滤数据 List idCodes1 = new ArrayList<>(); @@ -177,19 +158,13 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { } if (info != null) { personal = refreshPersonal(personal, info, today); - if (info.getSspcsdm() != null) { - PointOrg org = orgCodeMap.get(info.getSspcsdm()); - org = OrgUtil.findOrg(org, orgIdMap); - if (org != null) { - SupExternalDepart depart = pointExternalDepart.get(org.getDm()); - if (depart != null) { - personal.setControlDepartId(depart.getInternalId()); - personal.setControlDepartName(depart.getInternalShortName()); - personal.setControlDepartType(DepartType.HUMAN.getType()); - personal.setControlTime(LocalDateTime.now()); - personal.setCreateTime(personal.getControlTime()); - } - } + SupExternalDepart depart = DepartUtil.findLevelThereOrg(info.getSspcsdm(), OrgType.POINT); + if (depart != null) { + personal.setControlDepartId(depart.getInternalId()); + personal.setControlDepartName(depart.getInternalShortName()); + personal.setControlDepartType(DepartType.HUMAN.getType()); + personal.setControlTime(LocalDateTime.now()); + personal.setCreateTime(personal.getControlTime()); } toInsert.add(personal); } @@ -225,12 +200,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { personal.setControlDepartName(null); continue; } - SupExternalDepart depart = hope.get(tmp.getGxdwdm()); - if (depart == null) { - PointOrg org = orgCodeMap.get(tmp.getGxdwdm()); - org = OrgUtil.findOrg(org, orgIdMap); - depart = Optional.ofNullable(org).map(PointOrg::getDm).map(jqExternalDepart::get).orElse(null); - } + SupExternalDepart depart = DepartUtil.findLevelThereOrg(tmp.getGxdwdm(), OrgType.INSTANCE); if (depart == null) { personal.setControlDepartId(null); personal.setControlDepartName(null); 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 31e1688..91765a8 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java @@ -18,11 +18,13 @@ import com.biutag.supervisiondata.pojo.entity.mine.RiskTask; import com.biutag.supervisiondata.pojo.entity.mine.SupExternalDepart; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdZblx; import com.biutag.supervisiondata.pojo.enums.DepartType; +import com.biutag.supervisiondata.pojo.enums.OrgType; import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.service.GBaseSHRWFRService; import com.biutag.supervisiondata.service.RiskModelTaskClueService; import com.biutag.supervisiondata.service.RiskPersonalService; import com.biutag.supervisiondata.util.DataUtil; +import com.biutag.supervisiondata.util.DepartUtil; import com.biutag.supervisiondata.util.IdCodeUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -58,23 +60,8 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { private final GBaseZDRYRepository zdryRepository; - private final SupExternalDepartRepository externalDepartRepository; - @Override public void pullAndSave(LocalDateTime start, LocalDateTime end) { - List orgs = zdryRepository.getBaseMapper().selectOrg(); - List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .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)); - - Map orgIdMap = new WeakHashMap<>(); - Map orgCodeMap = new WeakHashMap<>(); - for (PointOrg org : orgs) { - orgIdMap.put(org.getId(), org); - orgCodeMap.put(org.getDm(), org); - } - List shrTmp = new ArrayList<>(); List wfrTmp = new ArrayList<>(); // 分别拉取受害人和违法人信息 @@ -128,8 +115,8 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { Map idCodeMap = xxList.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (oldValue, newValue) -> newValue)); - List toInsert1 = createInsertData(Default.WFR_TAG, wfrTmp, tmpMap, idCodeMap, orgCodeMap, orgIdMap, externalDepart); - List toInsert2 = createInsertData(Default.SHR_TAG, shrTmp, tmpMap, idCodeMap, orgCodeMap, orgIdMap, externalDepart); + List toInsert1 = createInsertData(Default.WFR_TAG, wfrTmp, tmpMap, idCodeMap); + List toInsert2 = createInsertData(Default.SHR_TAG, shrTmp, tmpMap, idCodeMap); log.info("违法人数: {}", toInsert1.size()); riskPersonalService.formatAndSave(toInsert1, Default.BIG_TAG_SHWFR); @@ -482,11 +469,11 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { return personal; } - List createInsertData(String tag, List list, Map tmpMap, Map idCodeMap, - Map orgCodeMap, Map orgIdMap, Map externalDepart) { - Map departMap = new WeakHashMap<>(); + List createInsertData(String tag, List list, Map tmpMap, Map idCodeMap) { Map exist = new WeakHashMap<>(); List toInsert = new ArrayList<>(); + + Map hope = new WeakHashMap<>(); for (WFSHPerson person : list) { if (exist.get(person.getIdCode()) != null) { continue; @@ -511,32 +498,15 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { toInsert.add(personal); continue; } - SupExternalDepart depart = departMap.get(departId); - if (depart == null) { - PointOrg org = orgCodeMap.get(departId); - org = findOrg(org, orgIdMap); - if (org != null) { - depart = externalDepart.get(org.getDm()); - departMap.put(departId, depart); - } - } + SupExternalDepart depart = Optional.ofNullable(hope.get(departId)).orElse(DepartUtil.findLevelThereOrg(departId, OrgType.INSTANCE)); if (depart != null) { personal.setControlDepartId(depart.getInternalId()); personal.setControlDepartName(depart.getInternalShortName()); + hope.put(departId, depart); } toInsert.add(personal); exist.put(person.getIdCode(), new Byte[0]); } return toInsert; } - - PointOrg findOrg(PointOrg org, Map orgIdMap) { - if (org == null) { - return null; - } - if (org.getPcs() == null || !org.getPcs().equals("1")) { - return findOrg(orgIdMap.get(org.getPid()), orgIdMap); - } - return org; - } } 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 eb7b295..a1edb43 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java @@ -5,7 +5,6 @@ import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; import com.biutag.supervisiondata.pojo.constants.Default; import com.biutag.supervisiondata.pojo.constants.Media; import com.biutag.supervisiondata.pojo.database.Contradiction; -import com.biutag.supervisiondata.pojo.database.PointOrg; import com.biutag.supervisiondata.pojo.domain.PersonImageInfo; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; @@ -17,12 +16,13 @@ import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdXfsj; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdXfsjCs; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcRyLgXX; import com.biutag.supervisiondata.pojo.enums.DepartType; +import com.biutag.supervisiondata.pojo.enums.OrgType; import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.service.PersonalService; import com.biutag.supervisiondata.service.RiskPersonalService; +import com.biutag.supervisiondata.util.DepartUtil; import com.biutag.supervisiondata.util.IdCodeUtil; import com.biutag.supervisiondata.util.ImageUtil; -import com.biutag.supervisiondata.util.OrgUtil; import com.biutag.supervisiondata.util.PatternUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -330,20 +330,6 @@ public class PersonalServiceImpl implements PersonalService { .mapToObj(i -> idCards.subList(i * 10000, Math.min((i + 1) * 10000, idCards.size()))) .toList(); - List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalShortName, SupExternalDepart::getSource) - .eq(SupExternalDepart::getSource, "重点人员")); - - List orgs = zdryRepository.getBaseMapper().selectOrg(); - Map orgIdMap = new WeakHashMap<>(); - Map orgCodeMap = new WeakHashMap<>(); - for (PointOrg org : orgs) { - orgIdMap.put(org.getId(), org); - orgCodeMap.put(org.getDm(), org); - } - - Map supExternalDepartMap = supDeparts.stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val)); - List xxList = new ArrayList<>(getByIdCode(idCards2)); // 去重 List personals = new ArrayList<>(); @@ -358,13 +344,7 @@ public class PersonalServiceImpl implements PersonalService { if (personal == null) { continue; } - SupExternalDepart depart = hope.get(xx.getSspcsdm()); - if (depart == null) { - personal.setMobileNumber(xx.getLxdh()); - PointOrg org = orgCodeMap.get(xx.getSspcsdm()); - org = OrgUtil.findOrg(org, orgIdMap); - depart = Optional.ofNullable(org).map(PointOrg::getDm).map(supExternalDepartMap::get).orElse(null); - } + SupExternalDepart depart = Optional.ofNullable(hope.get(xx.getSspcsdm())).orElse(DepartUtil.findLevelThereOrg(xx.getSspcsdm(), OrgType.POINT)); if (depart != null) { hope.put(xx.getSspcsdm(), depart); personal.setControlDepartId(depart.getInternalId()); @@ -410,8 +390,6 @@ public class PersonalServiceImpl implements PersonalService { private final WdpcGrjdJsbryRepository jsbryRepository; - private final SupExternalDepartRepository externalDepartRepository; - @Override public void pullPsychosis() { List jsbryList = jsbryRepository.list(new LambdaQueryWrapper() @@ -426,19 +404,6 @@ public class PersonalServiceImpl implements PersonalService { List xxList = new ArrayList<>(getByIdCode(idCards2)); 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::getInternalShortName, SupExternalDepart::getSource) - .eq(SupExternalDepart::getSource, "重点人员")); - - List orgs = zdryRepository.getBaseMapper().selectOrg(); - Map orgIdMap = new WeakHashMap<>(); - Map orgCodeMap = new WeakHashMap<>(); - for (PointOrg org : orgs) { - orgIdMap.put(org.getId(), org); - orgCodeMap.put(org.getDm(), org); - } - - Map supExternalDepartMap = supDeparts.stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val)); Map map = new WeakHashMap<>(); List personals = new ArrayList<>(); @@ -459,14 +424,9 @@ public class PersonalServiceImpl implements PersonalService { person.setCreateTime(LocalDateTime.now()); person.setControlTime(LocalDateTime.now()); person.setControlDepartType(DepartType.OTHER.getType()); + person.setTags(Default.PSYCHOSIS_TAG); if (xx != null) { - SupExternalDepart depart = hope.get(xx.getSspcsdm()); - if (depart == null) { - person.setMobileNumber(xx.getLxdh()); - PointOrg org = orgCodeMap.get(xx.getSspcsdm()); - org = OrgUtil.findOrg(org, orgIdMap); - depart = Optional.ofNullable(org).map(PointOrg::getDm).map(supExternalDepartMap::get).orElse(null); - } + SupExternalDepart depart = Optional.ofNullable(hope.get(xx.getSspcsdm())).orElse(DepartUtil.findLevelThereOrg(xx.getSspcsdm(), OrgType.POINT)); if (depart != null) { hope.put(xx.getSspcsdm(), depart); person.setControlDepartId(depart.getInternalId()); @@ -474,7 +434,6 @@ public class PersonalServiceImpl implements PersonalService { person.setControlDepartType(DepartType.HUMAN.getType()); } } - person.setTags(Default.PSYCHOSIS_TAG); personals.add(person); } if (!personals.isEmpty()) { 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 ceb80fb..5e29cae 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java @@ -10,11 +10,13 @@ import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.mine.*; import com.biutag.supervisiondata.pojo.enums.DepartType; +import com.biutag.supervisiondata.pojo.enums.OrgType; import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.service.PetitionService; import com.biutag.supervisiondata.service.RiskModelTaskClueService; import com.biutag.supervisiondata.service.RiskPersonalService; import com.biutag.supervisiondata.util.DataUtil; +import com.biutag.supervisiondata.util.DepartUtil; import com.biutag.supervisiondata.util.IdCodeUtil; import com.biutag.supervisiondata.util.BhUtil; import lombok.AllArgsConstructor; @@ -54,10 +56,6 @@ public class PetitionServiceImpl implements PetitionService { private final RiskModelTaskClueService riskModelTaskClueService; - private final SupExternalDepartRepository externalDepartRepository; - - private final GBaseZDRYRepository zdryRepository; - @Override public void personPullAndSave(LocalDateTime start, LocalDateTime end) { List personals1 = new ArrayList<>(); @@ -67,19 +65,6 @@ public class PetitionServiceImpl implements PetitionService { List idCards_b = new ArrayList<>(); List mobiles = new ArrayList<>(); - List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalShortName, SupExternalDepart::getSource) - .eq(SupExternalDepart::getSource, "重点人员")); - Map jqExternalDepart = supDeparts.stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val)); - - List orgs = zdryRepository.getBaseMapper().selectOrg(); - Map orgIdMap = new WeakHashMap<>(); - Map orgCodeMap = new WeakHashMap<>(); - for (PointOrg org : orgs) { - orgIdMap.put(org.getId(), org); - orgCodeMap.put(org.getDm(), org); - } - CompletableFuture.allOf( CompletableFutureUtil.runSyncObject(() -> { List list = petition12337Repository.list(new LambdaQueryWrapper() @@ -183,6 +168,8 @@ public class PetitionServiceImpl implements PetitionService { Map map = xxList.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (oldValue, newValue) -> newValue)); Map> mobileMap = xxMobileList.stream().collect(Collectors.groupingBy(GBaseSYRKXX::getLxdh)); List toInsert = new ArrayList<>(); + + Map hope = new WeakHashMap<>(); for (RiskPersonal personal : personals1) { GBaseSYRKXX xx = map.get(personal.getIdCode()); if (xx == null) { @@ -204,16 +191,13 @@ public class PetitionServiceImpl implements PetitionService { if (personal.getAge() <= 6) { continue; } - if (xx.getSspcsdm() != null) { - PointOrg org = orgCodeMap.get(xx.getSspcsdm()); - org = findOrg(org, orgIdMap); - SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(jqExternalDepart::get).orElse(null); - if (depart != null) { - personal.setControlDepartId(depart.getInternalId()); - personal.setControlDepartName(depart.getInternalShortName()); - personal.setControlDepartType(DepartType.HUMAN.getType()); - personal.setControlTime(LocalDateTime.now()); - } + SupExternalDepart depart = Optional.ofNullable(hope.get(xx.getSspcsdm())).orElse(DepartUtil.findLevelThereOrg(xx.getSspcsdm(), OrgType.POINT)); + if (depart != null) { + personal.setControlDepartId(depart.getInternalId()); + personal.setControlDepartName(depart.getInternalShortName()); + personal.setControlDepartType(DepartType.HUMAN.getType()); + personal.setControlTime(LocalDateTime.now()); + hope.put(xx.getSspcsdm(), depart); } toInsert.add(personal); } @@ -235,16 +219,13 @@ public class PetitionServiceImpl implements PetitionService { if (personal.getAge() <= 6) { continue; } - if (xx.getSspcsdm() != null) { - PointOrg org = orgCodeMap.get(xx.getSspcsdm()); - org = findOrg(org, orgIdMap); - SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(jqExternalDepart::get).orElse(null); - if (depart != null) { - personal.setControlDepartId(depart.getInternalId()); - personal.setControlDepartName(depart.getInternalShortName()); - personal.setControlDepartType(DepartType.HUMAN.getType()); - personal.setControlTime(LocalDateTime.now()); - } + SupExternalDepart depart = Optional.ofNullable(hope.get(xx.getSspcsdm())).orElse(DepartUtil.findLevelThereOrg(xx.getSspcsdm(), OrgType.POINT)); + if (depart != null) { + personal.setControlDepartId(depart.getInternalId()); + personal.setControlDepartName(depart.getInternalShortName()); + personal.setControlDepartType(DepartType.HUMAN.getType()); + personal.setControlTime(LocalDateTime.now()); + hope.put(xx.getSspcsdm(), depart); } toInsert.add(personal); } @@ -272,16 +253,13 @@ public class PetitionServiceImpl implements PetitionService { if (personal.getAge() <= 6) { continue; } - if (info.getSspcsdm() != null) { - PointOrg org = orgCodeMap.get(info.getSspcsdm()); - org = findOrg(org, orgIdMap); - SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(jqExternalDepart::get).orElse(null); - if (depart != null) { - personal.setControlDepartId(depart.getInternalId()); - personal.setControlDepartName(depart.getInternalShortName()); - personal.setControlDepartType(DepartType.HUMAN.getType()); - personal.setControlTime(LocalDateTime.now()); - } + SupExternalDepart depart = Optional.ofNullable(hope.get(info.getSspcsdm())).orElse(DepartUtil.findLevelThereOrg(info.getSspcsdm(), OrgType.POINT)); + if (depart != null) { + personal.setControlDepartId(depart.getInternalId()); + personal.setControlDepartName(depart.getInternalShortName()); + personal.setControlDepartType(DepartType.HUMAN.getType()); + personal.setControlTime(LocalDateTime.now()); + hope.put(info.getSspcsdm(), depart); } toInsert.add(personal); } @@ -312,8 +290,8 @@ public class PetitionServiceImpl implements PetitionService { Map oldMap = oldList.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val)); // 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)); + List toInsert2 = new ArrayList<>(createClues(dataList2, oldMap, idCodeMan, task, "存在上访")); + List toInsert3 = new ArrayList<>(createClues(dataList3, oldMap, idCodeMan, task, "存在上访")); toInsert2.addAll(toInsert3); Map> map = toInsert2.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); @@ -321,7 +299,7 @@ public class PetitionServiceImpl implements PetitionService { for (Map.Entry> entry : map.entrySet()) { toInsert.add(entry.getValue().getFirst()); } - if(!toInsert.isEmpty()) { + if (!toInsert.isEmpty()) { riskModelTaskClueService.saveClues(toInsert, "B20是否上访"); } riskTaskRepository.updateTask(task.getId(), toInsert.size(), 0); @@ -341,7 +319,7 @@ public class PetitionServiceImpl implements PetitionService { .id("") .score(5) .personId(person.getId()) - .tags(List.of("存在上访")) + .tags(List.of(tag)) .sourceData("该人员存在上访行为") .name(person.getName()) .idCode(person.getIdCode()) @@ -382,14 +360,4 @@ public class PetitionServiceImpl implements PetitionService { } return personal; } - - PointOrg findOrg(PointOrg org, Map orgIdMap) { - if (org == null) { - return null; - } - if (org.getPcs() == null || !org.getPcs().equals("1")) { - return findOrg(orgIdMap.get(org.getPid()), orgIdMap); - } - return org; - } } 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 163e02f..13fde1a 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -9,7 +9,6 @@ import com.biutag.supervisiondata.mapper.dwd.ModelClueDataMapper; import com.biutag.supervisiondata.pojo.ClueData; import com.biutag.supervisiondata.pojo.constants.Default; import com.biutag.supervisiondata.pojo.database.MuchCall; -import com.biutag.supervisiondata.pojo.database.PointOrg; import com.biutag.supervisiondata.pojo.database.SecurityMan; import com.biutag.supervisiondata.pojo.domain.*; import com.biutag.supervisiondata.pojo.entity.dwd.*; @@ -17,14 +16,12 @@ import com.biutag.supervisiondata.pojo.entity.mine.*; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdXfsj; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdZblx; import com.biutag.supervisiondata.pojo.entity.wdpc2.*; +import com.biutag.supervisiondata.pojo.enums.OrgType; import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.service.PointService; import com.biutag.supervisiondata.service.RiskModelTaskClueService; import com.biutag.supervisiondata.service.RiskPersonalService; -import com.biutag.supervisiondata.util.BhUtil; -import com.biutag.supervisiondata.util.DataUtil; -import com.biutag.supervisiondata.util.IdCodeUtil; -import com.biutag.supervisiondata.util.PatternUtil; +import com.biutag.supervisiondata.util.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -242,8 +239,6 @@ public class PointServiceImpl implements PointService { List list = zdryRepository.getBaseMapper().syncViolencePerson(); Map> violenceMap = list.stream().collect(Collectors.groupingBy(Violence::getZjhm)); - Map> map = new HashMap<>(); - List olds = Optional.ofNullable(domain.getMap().get(task.getId())).orElse(new ArrayList<>()); Map> maps = olds.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); List toInsert = new ArrayList<>(); @@ -2144,21 +2139,8 @@ public class PointServiceImpl implements PointService { List getPersons() { List lbList = zdrylbRepository.list(new LambdaQueryWrapper() .select(GBaseTbDZdrylb::getCode, GBaseTbDZdrylb::getDefine)); - List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalShortName, SupExternalDepart::getSource) - .eq(SupExternalDepart::getSource, "重点人员")); - - List orgs = zdryRepository.getBaseMapper().selectOrg(); - Map orgIdMap = new WeakHashMap<>(); - Map orgCodeMap = new WeakHashMap<>(); - for (PointOrg org : orgs) { - orgIdMap.put(org.getId(), org); - orgCodeMap.put(org.getDm(), org); - } Map lbMap = new WeakHashMap<>(); - Map supExternalDepartMap = supDeparts.stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val)); - for (GBaseTbDZdrylb lb : lbList) { if (lb.getCode().startsWith("0")) { @@ -2176,6 +2158,7 @@ public class PointServiceImpl implements PointService { int zdCount = 0; int noDepartCount = 0; int noOrgCount = 0; + Map hope = new WeakHashMap<>(); for (GBaseZDRY ry : list) { List codes = PatternUtil.takeMarkPosition(ry.getZdrylbbj()); if (codes.isEmpty()) { @@ -2195,17 +2178,12 @@ public class PointServiceImpl implements PointService { zdCount++; sb = sb.stream().distinct().toList(); Map tmp = Optional.ofNullable(map.get(ry.getSfzh())).orElse(new HashMap<>()); - PointOrg org = orgCodeMap.get(ry.getGxdwjgdm()); - org = findOrg(org, orgIdMap); - if (org == null) { - noOrgCount++; - continue; - } - SupExternalDepart depart = supExternalDepartMap.get(org.getDm()); + + SupExternalDepart depart = Optional.ofNullable(hope.get(ry.getGxdwjgdm())).orElse(DepartUtil.findLevelThereOrg(ry.getGxdwjgdm(), OrgType.POINT)); if (depart == null) { - noDepartCount++; continue; } + hope.put(ry.getGxdwjgdm(), depart); for (String s : sb) { if (tmp.get(s) != null) { continue; @@ -2254,16 +2232,6 @@ public class PointServiceImpl implements PointService { return personals; } - PointOrg findOrg(PointOrg org, Map orgIdMap) { - if (org == null) { - return null; - } - if (org.getPcs() == null || !org.getPcs().equals("1")) { - return findOrg(orgIdMap.get(org.getPid()), orgIdMap); - } - return org; - } - private static String getDateString(String dateString) { if (dateString != null) { try { 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 a673e17..43f524d 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java @@ -12,7 +12,6 @@ import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; import com.biutag.supervisiondata.pojo.entity.mine.*; -import com.biutag.supervisiondata.pojo.enums.DepartType; import com.biutag.supervisiondata.pojo.enums.Edu; import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.service.RiskModelTaskClueService; @@ -460,26 +459,15 @@ public class RiskTaskServiceImpl implements RiskTaskService { .in(GBaseSYRKXX::getGmsfhm, manList)); Map map = list.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (oldValue, newValue) -> newValue)); - for (Map.Entry s : fightManMap.entrySet()) { - GBaseSYRKXX xx = map.get(s.getKey()); - if (xx == null) { - xx = syrkxxMap.get(s.getKey()); - } - if (xx == null) { + for (RiskPersonal person : domain.getPersons()) { + FightMan fightMan = fightManMap.get(person.getIdCode()); + if(fightMan == null) { continue; } - RiskPersonal personal = createPerson(xx, Default.FIGHT_MUCH, orgCodeMap, orgIdMap, jqExternalDepart); - toInsertPeople.add(personal); - - RiskModelTaskClue clue = createClue(task.getModelId(), 3, personal, task.getId(), s.getValue().getFightCount() + "起纠纷", "该人员在近期发生" + s.getValue().getFightCount() + "起矛盾纠纷,属于高频次矛盾纠纷发生人员"); + RiskModelTaskClue clue = createClue(task.getModelId(), 3, person, task.getId(), fightMan.getFightCount() + "起纠纷", "该人员在近期发生" + fightMan.getFightCount() + "起矛盾纠纷,属于高频次矛盾纠纷发生人员"); toInsert.add(clue); } - if (!toInsertPeople.isEmpty()) { - log.info("新增人员 | {}", toInsertPeople.size()); - riskPersonalService.formatAndSave(toInsertPeople, Default.FIGHT_MUCH); - } - if (!toUpdates.isEmpty()) { log.info("修改线索 | {}", toUpdates.size()); clueRepository.updateBatchById(toUpdates); @@ -649,55 +637,4 @@ public class RiskTaskServiceImpl implements RiskTaskService { clue.setRiskReason(data.getTag()); return clue; } - - RiskPersonal createPerson(GBaseSYRKXX xx, String tag, Map orgCodeMap, Map orgIdMap, Map jqExternalDepart) { - RiskPersonal person = new RiskPersonal(); - person.setName(xx.getXm()); - person.setMobileNumber(xx.getLxdh()); - person.setIdCode(xx.getGmsfhm()); - - if (xx.getSspcsdm() != null) { - PointOrg org = orgCodeMap.get(xx.getSspcsdm()); - org = findOrg(org, orgIdMap); - SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(jqExternalDepart::get).orElse(null); - if (depart != null) { - person.setControlDepartId(depart.getInternalId()); - person.setControlDepartName(depart.getInternalShortName()); - person.setControlDepartType(DepartType.HUMAN.getType()); - person.setControlTime(LocalDateTime.now()); - } - } - - try { - int age = IdCodeUtil.idCard2Age(person.getIdCode(), LocalDate.now()); - if (age <= 6) { - return null; - } - person.setAge(age); - } catch (Exception e) { - return null; - } - if (person.getGender() == null) { - try { - int gender = person.getIdCode().length() == 18 ? Integer.valueOf(person.getIdCode().substring(16, 17)) : Integer.valueOf(person.getIdCode().substring(14, 15)); - // 结果0男1女 余数偶女奇男 - person.setGender(gender % 2 == 0 ? "2" : "1"); - } catch (Exception e) { - return null; - } - } - person.setCreateTime(LocalDateTime.now()); - person.setTags(tag); - return person; - } - - PointOrg findOrg(PointOrg org, Map orgIdMap) { - if (org == null) { - return null; - } - if (org.getPcs() == null || !org.getPcs().equals("1")) { - return findOrg(orgIdMap.get(org.getPid()), orgIdMap); - } - return org; - } } diff --git a/src/main/java/com/biutag/supervisiondata/util/DepartUtil.java b/src/main/java/com/biutag/supervisiondata/util/DepartUtil.java new file mode 100644 index 0000000..d927dcc --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/util/DepartUtil.java @@ -0,0 +1,72 @@ +package com.biutag.supervisiondata.util; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.biutag.supervisiondata.pojo.database.PointOrg; +import com.biutag.supervisiondata.pojo.entity.mine.SupExternalDepart; +import com.biutag.supervisiondata.pojo.enums.OrgType; +import com.biutag.supervisiondata.repository.GBaseZDRYRepository; +import com.biutag.supervisiondata.repository.SupExternalDepartRepository; +import lombok.experimental.UtilityClass; + +import java.util.List; +import java.util.Map; +import java.util.WeakHashMap; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @author kami on 2024-12-18 15:42 + * @version 1.0 + * @since 1.8 + */ +@UtilityClass +public class DepartUtil { + + static Map orgIdMap = new WeakHashMap<>(); + static Map orgCodeMap = new WeakHashMap<>(); + static Map pointExternalDepart = new WeakHashMap<>(); + static Map jqExternalDepart = new WeakHashMap<>(); + + + public static void init(GBaseZDRYRepository ryRepository, SupExternalDepartRepository externalDepartRepository) { + List orgList = ryRepository.getBaseMapper().selectOrg(); + for (PointOrg org : orgList) { + orgIdMap.put(org.getId(), org); + orgCodeMap.put(org.getDm(), org); + } + List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() + .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalShortName, SupExternalDepart::getSource) + .in(SupExternalDepart::getSource, List.of(OrgType.POINT.getType(), OrgType.INSTANCE.getType()))); + Map> amp = supDeparts.stream().collect(Collectors.groupingBy(SupExternalDepart::getSource)); + + pointExternalDepart.putAll(amp.get(OrgType.POINT.getType()).stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val))); + jqExternalDepart.putAll(amp.get(OrgType.INSTANCE.getType()).stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val))); + } + + public static SupExternalDepart findLevelThereOrg(String dm, OrgType type) { + if(dm == null) { + return null; + } + PointOrg org = orgCodeMap.get(dm); + org = findOrg(org); + if (org == null) { + return null; + } + SupExternalDepart depart = null; + switch (type) { + case OrgType.POINT -> depart = pointExternalDepart.get(org.getDm()); + case OrgType.INSTANCE -> depart = jqExternalDepart.get(org.getDm()); + } + return depart; + } + + private static PointOrg findOrg(PointOrg org) { + if (org == null) { + return null; + } + if (org.getPcs() == null || !org.getPcs().equals("1")) { + return findOrg(orgIdMap.get(org.getPid())); + } + return org; + } +} diff --git a/src/main/java/com/biutag/supervisiondata/util/OrgUtil.java b/src/main/java/com/biutag/supervisiondata/util/OrgUtil.java deleted file mode 100644 index 397538f..0000000 --- a/src/main/java/com/biutag/supervisiondata/util/OrgUtil.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.biutag.supervisiondata.util; - -import com.biutag.supervisiondata.pojo.database.PointOrg; -import lombok.experimental.UtilityClass; - -import java.util.Map; - -/** - * @author kami on 2024-12-06 10:43:55 - * @version 0.0.1 - * @since 1.8 - */ -@UtilityClass -public class OrgUtil { - - public static PointOrg findOrg(PointOrg org, Map orgIdMap) { - if (org == null) { - return null; - } - if (org.getPcs() == null || !org.getPcs().equals("1")) { - return findOrg(orgIdMap.get(org.getPid()), orgIdMap); - } - return org; - } -}