From 46c66cdd9ffd8762ab0c78a03d273dfc2375216f Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Fri, 29 Nov 2024 15:55:11 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ads/GBaseSYRKXXMapper.java | 2 +- .../service/impl/GBaseJJDServiceImpl.java | 245 ++++++++++++------ .../service/impl/GBaseSHRWFRServiceImpl.java | 102 +++++++- .../service/impl/HabitServiceImpl.java | 40 +-- .../service/impl/PersonalServiceImpl.java | 40 ++- .../service/impl/PetitionServiceImpl.java | 118 +++++++-- .../service/impl/PointServiceImpl.java | 2 +- .../service/impl/PoliceServiceImpl.java | 6 +- .../service/impl/RiskTaskServiceImpl.java | 69 +++-- 9 files changed, 454 insertions(+), 170 deletions(-) diff --git a/src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java index 30264c3..97bc36e 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java @@ -64,7 +64,7 @@ public interface GBaseSYRKXXMapper extends BaseMapper { "") List selectListByIdCode(@Param("list")List list); - @Select("select distinct sspcsmc, sspcsdm from ads_ssxx_syrkxx where sspcsdm is not null and sspcsmc is not null") + @Select("select distinct sspcsdm from ads_ssxx_syrkxx where sspcsdm is not null") List selectOrg(); } 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 7bdc070..e946285 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java @@ -1,12 +1,18 @@ package com.biutag.supervisiondata.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; import com.biutag.supervisiondata.pojo.constants.Default; +import com.biutag.supervisiondata.pojo.database.PointOrg; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; +import com.biutag.supervisiondata.pojo.entity.mine.SupExternalDepart; +import com.biutag.supervisiondata.pojo.enums.DepartType; import com.biutag.supervisiondata.repository.GBaseJJDRepository; import com.biutag.supervisiondata.repository.GBaseSYRKXXRepository; +import com.biutag.supervisiondata.repository.GBaseZDRYRepository; +import com.biutag.supervisiondata.repository.SupExternalDepartRepository; import com.biutag.supervisiondata.service.GBaseJJDService; import com.biutag.supervisiondata.service.RiskPersonalService; import com.biutag.supervisiondata.util.IdCodeUtil; @@ -20,6 +26,7 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -40,6 +47,10 @@ 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) { // 获取接警数据 @@ -47,13 +58,22 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); log.info("总条数 | {}条", result.size()); - List personals = new ArrayList<>(); - // 身份证和手机号都为空数量 - int noneCount = 0; - // 未核实到信息数据 - int infoCount = 0; + List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() + .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, 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); + } - int ok = 0; + List personals = new ArrayList<>(); // 过滤数据 List idCodes1 = new ArrayList<>(); @@ -64,32 +84,25 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { for (GBaseJJD item : result) { RiskPersonal person = createPerson(item); - if(person.getIdCode() != null) { + if (person.getIdCode() != null) { personals.add(person); - List jjd = Optional.ofNullable(jjdMap.get(person.getIdCode())).orElse(new ArrayList<>()); - jjd.add(item); - jjdMap.put(person.getIdCode(), jjd); + jjdMap.computeIfAbsent(item.getBjrzjhm(), k -> new ArrayList<>()).add(item); idCodes1.add(person.getIdCode()); continue; } String idCards = PatternUtil.takeIdCard(item.getCjqk()); - if(!idCards.isEmpty()) { + if (!idCards.isEmpty()) { person.setIdCode(idCards); - String [] strs = idCards.split(","); + String[] strs = idCards.split(","); for (String s : strs) { idCodes1.add(s); - List jjd = Optional.ofNullable(jjdMap.get(s)).orElse(new ArrayList<>()); - jjd.add(item); - jjdMap.put(person.getIdCode(), jjd); + jjdMap.computeIfAbsent(item.getBjrzjhm(), k -> new ArrayList<>()).add(item); } - } else if(item.getBjrlxdh() == null) { - noneCount++; + } else if (item.getBjrlxdh() == null) { continue; } else { mobiles1.add(item.getBjrlxdh()); - List jjd = Optional.ofNullable(jjdMap.get(item.getBjrlxdh())).orElse(new ArrayList<>()); - jjd.add(item); - jjdMMap.put(item.getBjrlxdh(), jjd); + jjdMap.computeIfAbsent(item.getBjrzjhm(), k -> new ArrayList<>()).add(item); } personals.add(person); } @@ -111,142 +124,146 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { List sFms = new ArrayList<>(); // 手机号查到的人 List lXfs = new ArrayList<>(); - for (List idCode : idCodes) { - List list = gBaseSYRKXXRepository.list(new LambdaQueryWrapper() - .in(GBaseSYRKXX::getGmsfhm, idCode)); - sFms.addAll(list); - count++; - log.info("身份证进度 | {}", count); - } - log.info("开始根据手机号实用人口信息补全 =》 {}", mobiles.size()); - for (List mobile : mobiles) { - List list = gBaseSYRKXXRepository.list(new LambdaQueryWrapper() - .in(GBaseSYRKXX::getLxdh, mobile)); - lXfs.addAll(list); - count++; - log.info("手机号进度 | {}", count); - } - Map idCodeMap = sFms.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (oldValue, newValue) -> newValue)); + CompletableFuture.allOf( + CompletableFutureUtil.runSyncObject(() -> sFms.addAll(getByIdCode(idCodes))), + CompletableFutureUtil.runSyncObject(() -> lXfs.addAll(getByMobiles(mobiles))) + ).join(); + Map idCodeMap = sFms.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (oldValue, newValue) -> newValue)); Map> mobileMap = lXfs.stream().collect(Collectors.groupingBy(GBaseSYRKXX::getLxdh)); // 开始补全 LocalDate today = LocalDate.now(); GBaseSYRKXX info = null; List xxxInfo; + for (RiskPersonal personal : personals) { - if(personal.getIdCode() != null) { + if (personal.getIdCode() != null) { // 多张身份证存入异常信息 - String [] strs = personal.getIdCode().split(","); personal.setIdCode(null); - xxxInfo = new ArrayList<>(); - for (String str : strs) { - info = idCodeMap.get(str); - if(info != null) { - xxxInfo.add(info); - } - } - if(strs.length ==1 && !xxxInfo.isEmpty()) { + xxxInfo = Arrays.stream(personal.getIdCode().split(",")) + .map(idCodeMap::get) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + if (!xxxInfo.isEmpty()) { info = xxxInfo.getFirst(); } else { info = compare(xxxInfo, personal.getName()); } - if(info == null) { + if (info == null) { personal.setErrorMsg(personal.getIdCode()); } } - if(personal.getMobileNumber() != null && info == null) { + if (personal.getMobileNumber() != null && info == null) { xxxInfo = mobileMap.get(personal.getMobileNumber()); - if(xxxInfo == null || xxxInfo.isEmpty()) { - infoCount ++; + if (xxxInfo == null || xxxInfo.isEmpty()) { } else { info = compare(xxxInfo, personal.getName()); } - if(info == null && xxxInfo != null) { + if (info == null && xxxInfo != null) { StringBuilder tmp = new StringBuilder(); for (GBaseSYRKXX gBaseSYRKXX : xxxInfo) { - if(gBaseSYRKXX.getGmsfhm()!= null) { + if (gBaseSYRKXX.getGmsfhm() != null) { tmp.append(gBaseSYRKXX.getGmsfhm()).append("\n"); } } - personal.setErrorMsg(tmp.substring(0, tmp.length()-1)); + personal.setErrorMsg(tmp.substring(0, tmp.length() - 1)); } } - if(info != null) { - personal.setName(info.getXm()); - personal.setIdCode(info.getGmsfhm()); - personal.setMobileNumber(info.getLxdh()); - personal.setGender(info.getXbdm()); - personal.setAge(Optional.ofNullable(IdCodeUtil.idCard2Age(personal.getIdCode(), LocalDate.now())).orElse(-1)); - if(personal.getAge() == null ){ - try { - LocalDate localDate = info.getCsrq().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - int age = localDate.until(today).getYears(); - personal.setAge(age); - } catch (Exception e) { - log.error("发现一例没有出生日期"); - personal.setAge(-1); + if (info != null) { + personal = refreshPersonal(personal, info, today); + if (info.getSspcsdm() != null) { + PointOrg org = orgCodeMap.get(info.getSspcsdm()); + org = findOrg(org, orgIdMap); + if (org != null) { + SupExternalDepart depart = pointExternalDepart.get(org.getDm()); + if (depart != null) { + personal.setControlDepartId(depart.getInternalId()); + personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartType(DepartType.HUMAN.getType()); + personal.setControlTime(LocalDateTime.now()); + personal.setCreateTime(personal.getControlTime()); + } } } - ok++; } } for (RiskPersonal personal : personals) { - List jjds = jjdMap.get(personal.getIdCode()); - if(jjds == null) { - jjds = jjdMMap.get(Optional.ofNullable(personal.getMobileNumber()).orElse("")); + if (personal.getControlDepartType() != null && personal.getControlDepartType() >= DepartType.HUMAN.getType()) { + continue; } - if(jjds == null) { + List jjds = Optional.ofNullable(jjdMap.get(personal.getIdCode())).orElse(jjdMMap.get(Optional.ofNullable(personal.getMobileNumber()).orElse(""))); + if (jjds == null || jjds.isEmpty()) { continue; } - GBaseJJD tmp = null; + GBaseJJD tmp = jjds.getFirst(); + jjds.remove(0); for (GBaseJJD jjd : jjds) { - if(tmp == null) { - tmp = jjd; - continue; - } try { LocalDateTime time = jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); - if(time.isAfter(jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime())) { + if (time.isAfter(jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime())) { tmp = jjd; } } catch (Exception e) { log.info("报警时间处理异常"); } } - if(tmp == null) { + if (tmp == null || tmp.getGxdwdm() == null) { + personal.setControlDepartId(null); + personal.setControlDepartName(null); continue; } - personal.setControlDepartId(tmp.getGxdwdm()); - personal.setControlDepartName(tmp.getGxdwmc()); + 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); + if (depart == null) { + personal.setControlDepartId(null); + personal.setControlDepartName(null); + continue; + } + personal.setControlDepartId(depart.getInternalId()); + personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartType(DepartType.OTHER.getType()); // 如果有报警时间,暂时填报警时间 处理标签回正 try { LocalDateTime time = tmp.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); personal.setCreateTime(time); personal.setControlTime(time); } catch (Exception e) { + personal.setCreateTime(LocalDateTime.now()); log.info("报警时间处理异常"); } } riskPersonalService.formatAndSave(personals, Default.BIG_TAG_JJD); - log.info("未提取信息人数: {}\n异常信息人数: {}\nok人数: {}", noneCount, infoCount, ok); + log.info("人数: {}", personals.size()); } /** * 多身份证对比名称 + * * @param infos 信息 - * @param name 名称 + * @param name 名称 * @return 正确信息 */ 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; } } return info; } + 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; + } + RiskPersonal createPerson(GBaseJJD item) { RiskPersonal person = new RiskPersonal(); person.setName(item.getBjrxm()); @@ -255,16 +272,74 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { person.setControlDepartName(item.getGxdwmc()); person.setGender(item.getBjrxb()); person.setIdCode(item.getBjrzjhm()); + person.setControlDepartType(DepartType.OTHER.getType()); // 如果有报警时间,暂时填报警时间 处理标签回正 try { LocalDateTime time = item.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); person.setCreateTime(time); person.setControlTime(time); } catch (Exception e) { + person.setCreateTime(LocalDateTime.now()); log.info("报警时间处理异常"); } // 这里暂时将小标签放到预览属性 处理标签回正 person.setTags(item.getJqxzmc()); return person; } + + RiskPersonal refreshPersonal(RiskPersonal personal, GBaseSYRKXX info, LocalDate today) { + personal.setName(info.getXm()); + personal.setIdCode(info.getGmsfhm()); + personal.setMobileNumber(info.getLxdh()); + personal.setGender(IdCodeUtil.idCard2Gender(personal.getIdCode())); + personal.setAge(Optional.ofNullable(IdCodeUtil.idCard2Age(personal.getIdCode(), LocalDate.now())).orElse(-1)); + if (personal.getAge() == null) { + try { + LocalDate localDate = info.getCsrq().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + int age = localDate.until(today).getYears(); + personal.setAge(age); + } catch (Exception e) { + log.error("发现一例没有出生日期"); + personal.setAge(-1); + } + } + if (personal.getGender() == null) { + personal.setGender(info.getXbdm()); + } + return personal; + } + + /** + * 通过身份证号查询实有人口 + * + * @param idCodes 身份证 + * @return 实有人口信息 + */ + List getByIdCode(List> idCodes) { + List tmp = new ArrayList<>(); + for (int i = 0, len = idCodes.size(); i < len; i++) { + tmp.addAll(gBaseSYRKXXRepository.list(new LambdaQueryWrapper() + .select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXm, GBaseSYRKXX::getLxdh, GBaseSYRKXX::getSspcsdm, GBaseSYRKXX::getCsrq) + .in(GBaseSYRKXX::getGmsfhm, idCodes.get(i)))); + log.info("证件查询进度:{}", i); + } + return tmp; + } + + /** + * 通过手机号查询实有人口信息 + * + * @param mobiles 手机号 + * @return 查到的实有人口数据 + */ + List getByMobiles(List> mobiles) { + List tmp = new ArrayList<>(); + for (int i = 0, len = mobiles.size(); i < len; i++) { + tmp.addAll(gBaseSYRKXXRepository.list(new LambdaQueryWrapper() + .select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXm, GBaseSYRKXX::getLxdh, GBaseSYRKXX::getSspcsdm, GBaseSYRKXX::getCsrq) + .in(GBaseSYRKXX::getLxdh, mobiles.get(i)))); + log.info("手机号查询进度:{}", i); + } + return tmp; + } } 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 92ebaa7..13bef97 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java @@ -3,15 +3,15 @@ package com.biutag.supervisiondata.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; import com.biutag.supervisiondata.pojo.constants.Default; +import com.biutag.supervisiondata.pojo.database.PointOrg; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseSHRXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; -import com.biutag.supervisiondata.repository.GBaseAJJBXXRepository; -import com.biutag.supervisiondata.repository.GBaseSHRXXRepository; -import com.biutag.supervisiondata.repository.GBaseSYRKXXRepository; -import com.biutag.supervisiondata.repository.GBaseWFRXXRepository; +import com.biutag.supervisiondata.pojo.entity.mine.SupExternalDepart; +import com.biutag.supervisiondata.pojo.enums.DepartType; +import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.service.GBaseSHRWFRService; import com.biutag.supervisiondata.service.RiskPersonalService; import com.biutag.supervisiondata.util.IdCodeUtil; @@ -49,8 +49,28 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { private final RiskPersonalService riskPersonalService; + 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::getInternalName, 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)); + + Map orgIdMap = new WeakHashMap<>(); + Map orgCodeMap = new WeakHashMap<>(); + for (PointOrg org : orgs) { + orgIdMap.put(org.getId(), org); + orgCodeMap.put(org.getDm(), org); + } + + List shrList = new ArrayList<>(); List wxrList = new ArrayList<>(); @@ -126,6 +146,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { log.info("身份证开始: {}", idCode.size()); for (List arr : idCode) { List list = gBaseSYRKXXRepository.list(new LambdaQueryWrapper() + .select(GBaseSYRKXX::getLxdh, GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXm, GBaseSYRKXX::getXbdm, GBaseSYRKXX::getSspcsdm) .in(GBaseSYRKXX::getGmsfhm, arr)); sFms.addAll(list); count++; @@ -140,6 +161,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { log.info("手机号开始: {}", mobile.size()); for (List arr : mobile) { List list = gBaseSYRKXXRepository.list(new LambdaQueryWrapper() + .select(GBaseSYRKXX::getLxdh, GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXm, GBaseSYRKXX::getXbdm, GBaseSYRKXX::getSspcsdm) .in(GBaseSYRKXX::getLxdh, arr)); lXfs.addAll(list); count++; @@ -170,6 +192,21 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { } if(rkxx != null) { RiskPersonal person = createPerson(Default.SHR_TAG, ajjbxx, rkxx); + if (rkxx.getSspcsdm() != null) { + PointOrg org = orgCodeMap.get(rkxx.getSspcsdm()); + org = findOrg(org, orgIdMap); + if (org != null) { + SupExternalDepart depart = pointExternalDepart.get(org.getDm()); + if (depart != null) { + person.setControlDepartId(depart.getInternalId()); + person.setControlDepartName(depart.getInternalName()); + person.setControlDepartType(DepartType.HUMAN.getType()); + person.setControlTime(LocalDateTime.now()); + person.setCreateTime(person.getControlTime()); + } + } + } + if(person.getIdCode() != null) { List tmp = Optional.ofNullable(shrMap.get(person.getIdCode())).orElse(new ArrayList<>()); tmp.add(ajjbxx); @@ -195,6 +232,21 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { } if(rkxx != null) { RiskPersonal person = createPerson(Default.WFR_TAG, ajjbxx, rkxx); + if (rkxx.getSspcsdm() != null) { + PointOrg org = orgCodeMap.get(rkxx.getSspcsdm()); + org = findOrg(org, orgIdMap); + if (org != null) { + SupExternalDepart depart = pointExternalDepart.get(org.getDm()); + if (depart != null) { + person.setControlDepartId(depart.getInternalId()); + person.setControlDepartName(depart.getInternalName()); + person.setControlDepartType(DepartType.HUMAN.getType()); + person.setControlTime(LocalDateTime.now()); + person.setCreateTime(person.getControlTime()); + } + } + } + List tmp = Optional.ofNullable(shrMap.get(person.getIdCode())).orElse(new ArrayList<>()); tmp.add(ajjbxx); shrMap.put(person.getIdCode(), tmp); @@ -202,6 +254,9 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { } } for (RiskPersonal personal : personals) { + if (personal.getControlDepartType() != null && personal.getControlDepartType() >= DepartType.HUMAN.getType()) { + continue; + } List tmp = shrMap.get(personal.getIdCode()); if(tmp == null || tmp.isEmpty()) { continue; @@ -221,17 +276,33 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { log.info("报警时间处理异常"); } } - if(jjx == null) { + if(jjx == null || jjx.getBadwiddm() == null) { + personal.setControlDepartId(null); + personal.setControlDepartName(null); + personal.setControlTime(null); + personal.setControlDepartType(null); + continue; + } + PointOrg org = orgCodeMap.get(jjx.getBadwiddm()); + org = findOrg(org, orgIdMap); + SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(item -> jqExternalDepart.get(item)).orElse(null); + if (depart == null) { + personal.setControlDepartId(null); + personal.setControlDepartName(null); + personal.setControlTime(null); + personal.setControlDepartType(null); continue; } - personal.setControlDepartId(jjx.getBadwiddm()); - personal.setControlDepartName(jjx.getBadwidmc()); + personal.setControlDepartId(depart.getInternalId()); + personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartType(DepartType.OTHER.getType()); // 如果有报警时间,暂时填报警时间 处理标签回正 try { LocalDateTime time = jjx.getBarq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); personal.setCreateTime(time); personal.setControlTime(time); } catch (Exception e) { + personal.setCreateTime(LocalDateTime.now()); log.info("报警时间处理异常"); } } @@ -260,16 +331,21 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { RiskPersonal personal = new RiskPersonal(); personal.setIdCode(rkxx.getGmsfhm()); personal.setName(rkxx.getXm()); - personal.setGender(rkxx.getXbdm()); personal.setMobileNumber(rkxx.getLxdh()); personal.setControlDepartId(ajjbxx.getBadwiddm()); personal.setControlDepartName(ajjbxx.getBadwidmc()); + personal.setGender(IdCodeUtil.idCard2Gender(rkxx.getGmsfhm())); + if(personal.getGender() == null ){ + personal.setGender(rkxx.getXbdm()); + } + personal.setControlDepartType(DepartType.OTHER.getType()); // 如果有报警时间,暂时填报警时间 处理标签回正 try { LocalDateTime time = ajjbxx.getBarq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); personal.setCreateTime(time); personal.setControlTime(time); } catch (Exception e) { + personal.setCreateTime(LocalDateTime.now()); log.info("报警时间处理异常"); } personal.setAge(Optional.ofNullable(IdCodeUtil.idCard2Age(personal.getIdCode(), LocalDate.now())).orElse(-1)); @@ -278,4 +354,14 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { 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/HabitServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java index 6e63051..6b8e70f 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java @@ -170,26 +170,26 @@ public class HabitServiceImpl implements HabitService { toInsert.add(createClue(task.getModelId(), 1, task.getId(), clueData)); } // 修改人员当前管控单位 - if(!records.isEmpty()) { - RiskPersonalControlRecord last = null; - for (RiskPersonalControlRecord record : records) { - if(last == null) { - last = record; - continue; - } - if(last.getControlTime().isBefore(record.getControlTime())) { - last = record; - } - } - if(last != null && last.getId() == null) { - RiskPersonal person = new RiskPersonal(); - person.setId(clue.getPersonId()); - person.setControlDepartId(last.getControlDepartId()); - person.setControlDepartName(last.getControlDepartName()); - person.setControlTime(last.getControlTime()); - toUpdatePersonal.add(person); - } - } +// if(!records.isEmpty()) { +// RiskPersonalControlRecord last = null; +// for (RiskPersonalControlRecord record : records) { +// if(last == null) { +// last = record; +// continue; +// } +// if(last.getControlTime().isBefore(record.getControlTime())) { +// last = record; +// } +// } +// if(last != null && last.getId() == null) { +// RiskPersonal person = new RiskPersonal(); +// person.setId(clue.getPersonId()); +// person.setControlDepartId(last.getControlDepartId()); +// person.setControlDepartName(last.getControlDepartName()); +// person.setControlTime(last.getControlTime()); +// toUpdatePersonal.add(person); +// } +// } } log.info("开始进行数据库操作"); if(!toInsert.isEmpty()) { 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 df2f53b..cbbb84e 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; import com.biutag.supervisiondata.pojo.constants.Default; import com.biutag.supervisiondata.pojo.database.Contradiction; +import com.biutag.supervisiondata.pojo.database.PointOrg; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseTbDZdrylb; @@ -289,20 +290,27 @@ public class PersonalServiceImpl implements PersonalService { @Override public void syncOrg() { List xxInfo = gBaseSYRKXXRepository.getBaseMapper().selectOrg(); + List orgs = zdryRepository.getBaseMapper().selectOrg(); - List externalDeparts = new ArrayList<>(); - Map supExternalDepartMap = new WeakHashMap<>(); - for (GBaseSYRKXX syrkxx : xxInfo) { - SupExternalDepart externalDepart = new SupExternalDepart(); - externalDepart.setExternalId(syrkxx.getSspcsdm()); - externalDepart.setExternalName(syrkxx.getSspcsmc()); - externalDepart.setSource("实有人口信息"); - externalDeparts.add(externalDepart); - supExternalDepartMap.put(syrkxx.getSspcsdm(), 1); + Map orgIdMap = new WeakHashMap<>(); + Map orgCodeMap = new WeakHashMap<>(); + for (PointOrg org : orgs) { + orgIdMap.put(org.getId(), org); + orgCodeMap.put(org.getDm(), org); } - if (!externalDeparts.isEmpty()) { - supExternalDepartRepository.saveBatch(externalDeparts); + int a = 0; + int b = 0; + for (GBaseSYRKXX syrkxx : xxInfo) { + PointOrg org = orgCodeMap.get(syrkxx.getSspcsdm()); + org = findOrg(org, orgIdMap); + if(org== null) { + a++; + continue; + } + b++; } + log.info("ok{} | notOk{}", b, a); + } private final RiskTestRepository riskTestRepository; @@ -317,6 +325,16 @@ public class PersonalServiceImpl implements PersonalService { riskTestRepository.getBaseMapper().truncateTable(); } + 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/PetitionServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java index abc998d..cf335da 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java @@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.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.repository.*; import com.biutag.supervisiondata.service.PetitionService; import com.biutag.supervisiondata.service.RiskModelTaskClueService; @@ -51,6 +53,10 @@ public class PetitionServiceImpl implements PetitionService { private final RiskModelTaskClueRepository clueRepository; + private final SupExternalDepartRepository externalDepartRepository; + + private final GBaseZDRYRepository zdryRepository; + @Override public void personPullAndSave(LocalDateTime start, LocalDateTime end) { List personals1 = new ArrayList<>(); @@ -59,6 +65,20 @@ public class PetitionServiceImpl implements PetitionService { List idCards = new ArrayList<>(); List idCards_b = new ArrayList<>(); List mobiles = new ArrayList<>(); + + List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() + .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, 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() @@ -70,9 +90,9 @@ public class PetitionServiceImpl implements PetitionService { person.setName(data.getName()); person.setMobileNumber(data.getPhone()); person.setTags(Default.PETITION_12337_TAG); - person.setControlDepartId(data.getThirdDepartId()); - person.setControlDepartName(data.getThirdDepartName()); - person.setControlTime(data.getDiscoverTime()); +// person.setControlDepartId(data.getThirdDepartId()); +// person.setControlDepartName(data.getThirdDepartName()); +// person.setControlTime(data.getDiscoverTime()); personals1.add(person); idCards.add(data.getIdCode()); } @@ -87,9 +107,9 @@ public class PetitionServiceImpl implements PetitionService { person.setName(data.getResponderName()); person.setMobileNumber(data.getResponderPhone()); person.setTags(Default.PETITION_TAG); - person.setControlDepartId(data.getThirdDepartId()); - person.setControlDepartName(data.getThirdDepartName()); - person.setControlTime(data.getDiscoveryTime()); +// person.setControlDepartId(data.getThirdDepartId()); +// person.setControlDepartName(data.getThirdDepartName()); +// person.setControlTime(data.getDiscoveryTime()); personals2.add(person); idCards_b.add(data.getResponderIdCode()); } @@ -103,9 +123,9 @@ public class PetitionServiceImpl implements PetitionService { person.setName(data.getResponderName()); person.setMobileNumber(data.getResponderPhone()); person.setTags(Default.PETITION_CASE_TAG); - person.setControlDepartId(data.getThirdDepartId()); - person.setControlDepartName(data.getThirdDepartName()); - person.setControlTime(data.getDiscoveryTime()); +// person.setControlDepartId(data.getThirdDepartId()); +// person.setControlDepartName(data.getThirdDepartName()); +// person.setControlTime(data.getDiscoveryTime()); personals3.add(person); mobiles.add(data.getResponderPhone()); } @@ -130,7 +150,7 @@ public class PetitionServiceImpl implements PetitionService { for (List idCode : idCodes) { count--; xxList.addAll(syrkxxRepository.list(new LambdaQueryWrapper() - .select(GBaseSYRKXX::getLxdh, GBaseSYRKXX::getXlmc, GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXm, GBaseSYRKXX::getCsrq, GBaseSYRKXX::getXbdm) + .select(GBaseSYRKXX::getLxdh, GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXm, GBaseSYRKXX::getXbdm, GBaseSYRKXX::getSspcsdm) .in(GBaseSYRKXX::getGmsfhm, idCode))); log.info("身份证进度 | {}", count); } @@ -144,7 +164,7 @@ public class PetitionServiceImpl implements PetitionService { for (List phone : phones) { count--; xxMobileList.addAll(syrkxxRepository.list(new LambdaQueryWrapper() - .select(GBaseSYRKXX::getLxdh, GBaseSYRKXX::getXlmc, GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXm, GBaseSYRKXX::getCsrq, GBaseSYRKXX::getXbdm) + .select(GBaseSYRKXX::getLxdh, GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXm, GBaseSYRKXX::getXbdm, GBaseSYRKXX::getSspcsdm) .in(GBaseSYRKXX::getLxdh, phone))); log.info("手机进度 | {}", count); } @@ -162,7 +182,10 @@ public class PetitionServiceImpl implements PetitionService { } continue; } - personal.setGender(xx.getXbdm()); + personal.setGender(IdCodeUtil.idCard2Gender(personal.getIdCode())); + if(personal == null) { + personal.setGender(xx.getXbdm()); + } if(xx.getLxdh() != null) { personal.setMobileNumber(xx.getLxdh()); } @@ -171,6 +194,17 @@ 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(item -> jqExternalDepart.get(item)).orElse(null); + if (depart != null) { + personal.setControlDepartId(depart.getInternalId()); + personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartType(DepartType.HUMAN.getType()); + personal.setControlTime(LocalDateTime.now()); + } + } toInsert.add(personal); } for (RiskPersonal personal : personals2) { @@ -191,6 +225,17 @@ 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(item -> jqExternalDepart.get(item)).orElse(null); + if (depart != null) { + personal.setControlDepartId(depart.getInternalId()); + personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartType(DepartType.HUMAN.getType()); + personal.setControlTime(LocalDateTime.now()); + } + } toInsert.add(personal); } for (RiskPersonal personal : personals3) { @@ -217,6 +262,17 @@ 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(item -> jqExternalDepart.get(item)).orElse(null); + if (depart != null) { + personal.setControlDepartId(depart.getInternalId()); + personal.setControlDepartName(depart.getInternalName()); + personal.setControlDepartType(DepartType.HUMAN.getType()); + personal.setControlTime(LocalDateTime.now()); + } + } toInsert.add(personal); } @@ -356,23 +412,23 @@ public class PetitionServiceImpl implements PetitionService { // 找不到旧编号才继续 if(oldClueMap.get(BhUtil.petBh(clueData.getId())) == null) { winner.add(createClue(task.getModelId(), 2, task.getId(), clueData)); - if(person.getControlTime() != null && person.getControlTime().isBefore(clueData.getEventTime())) { - updatePeople = true; - person.setControlTime(clueData.getEventTime()); - person.setControlDepartId(clueData.getDepartId()); - person.setControlDepartName(clueData.getDepartName()); - } +// if(person.getControlTime() != null && person.getControlTime().isBefore(clueData.getEventTime())) { +// updatePeople = true; +// person.setControlTime(clueData.getEventTime()); +// person.setControlDepartId(clueData.getDepartId()); +// person.setControlDepartName(clueData.getDepartName()); +// } toInsertRecrod.add(createControlRecord(clueData)); } } - if(updatePeople) { - RiskPersonal updatePerson = new RiskPersonal(); - updatePerson.setId(person.getId()); - updatePerson.setControlTime(person.getControlTime()); - updatePerson.setControlDepartId(person.getControlDepartId()); - updatePerson.setControlDepartName(person.getControlDepartName()); - touUpdatePerson.add(updatePerson); - } +// if(updatePeople) { +// RiskPersonal updatePerson = new RiskPersonal(); +// updatePerson.setId(person.getId()); +// updatePerson.setControlTime(person.getControlTime()); +// updatePerson.setControlDepartId(person.getControlDepartId()); +// updatePerson.setControlDepartName(person.getControlDepartName()); +// touUpdatePerson.add(updatePerson); +// } // - 结合新旧数据,从新计算季度,季度最晚的算分 oldClues.addAll(winner); Map> winnerMap = new WeakHashMap<>(); @@ -569,4 +625,14 @@ 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 a353100..ec97084 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -719,7 +719,7 @@ public class PointServiceImpl implements PointService { List lbList = zdrylbRepository.list(new LambdaQueryWrapper() .select(GBaseTbDZdrylb::getCode, GBaseTbDZdrylb::getDefine)); List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() - .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName) + .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource) .eq(SupExternalDepart::getSource, "重点人员")); List orgs = zdryRepository.getBaseMapper().selectOrg(); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java index 9d799a7..0584bbe 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java @@ -165,9 +165,9 @@ public class PoliceServiceImpl implements PoliceService { private static RiskPersonal getRiskPersonal(RiskPersonal person, RiskPersonalControlRecord tmpRecord) { RiskPersonal personToUpdate = new RiskPersonal(); personToUpdate.setId(person.getId()); - personToUpdate.setControlTime(tmpRecord.getControlTime()); - personToUpdate.setControlDepartName(tmpRecord.getControlDepartName()); - personToUpdate.setControlDepartId(tmpRecord.getControlDepartId()); +// personToUpdate.setControlTime(tmpRecord.getControlTime()); +// personToUpdate.setControlDepartName(tmpRecord.getControlDepartName()); +// personToUpdate.setControlDepartId(tmpRecord.getControlDepartId()); if(person.getTags().indexOf(Default.BIG_TAG_TRUBO) == -1) { personToUpdate.setTags(person.getTags().concat(",".concat(Default.BIG_TAG_TRUBO))); } 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 82341d3..13aa56d 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java @@ -7,6 +7,7 @@ import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; import com.biutag.supervisiondata.pojo.ClueData; import com.biutag.supervisiondata.pojo.ClueInfo; import com.biutag.supervisiondata.pojo.constants.Default; +import com.biutag.supervisiondata.pojo.database.PointOrg; import com.biutag.supervisiondata.pojo.domain.FightMan; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; @@ -15,6 +16,7 @@ import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX; import com.biutag.supervisiondata.pojo.entity.mine.*; import com.biutag.supervisiondata.pojo.enums.Charge; +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; @@ -316,15 +318,15 @@ public class RiskTaskServiceImpl implements RiskTaskService { last = riskPersonalControlRecord; } } - if (last != null && last.getId() == null) { - // 说明不是老数据 修改风险人员管控 - RiskPersonal p = new RiskPersonal(); - p.setId(person.getId()); - p.setControlDepartName(last.getControlDepartName()); - p.setControlDepartId(last.getControlDepartId()); - p.setControlTime(last.getControlTime()); - toUpdatePerson.add(p); - } +// if (last != null && last.getId() == null) { +// // 说明不是老数据 修改风险人员管控 +// RiskPersonal p = new RiskPersonal(); +// p.setId(person.getId()); +// p.setControlDepartName(last.getControlDepartName()); +// p.setControlDepartId(last.getControlDepartId()); +// p.setControlTime(last.getControlTime()); +// toUpdatePerson.add(p); +// } // 记录中的案件编号 RiskModelTaskClue old = oldMap.get(person.getIdCode()); String caseIds = Optional.ofNullable(old).map(RiskModelTaskClue::getCaseIds).orElse(""); @@ -571,6 +573,10 @@ public class RiskTaskServiceImpl implements RiskTaskService { riskTaskRepository.updateById(endTask); } + private final SupExternalDepartRepository externalDepartRepository; + + private final GBaseZDRYRepository zdryRepository; + @Override public void heightFight(TaskParamDomain domain) { // 战斗过的用户 @@ -578,6 +584,19 @@ public class RiskTaskServiceImpl implements RiskTaskService { log.info("用户数 : {}", xxList.size()); Map syrkxxMap = xxList.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (oldValue, newValue) -> newValue)); + List supDeparts = externalDepartRepository.list(new LambdaQueryWrapper() + .select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource) + .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); + } + RiskTask task = createTask(xxList.size(), 42); riskTaskRepository.save(task); @@ -628,7 +647,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { List list = syrkxxRepository.list(new LambdaQueryWrapper() - .select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXm, GBaseSYRKXX::getLxdh, GBaseSYRKXX::getSspcsmc, GBaseSYRKXX::getSspcsdm) + .select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXm, GBaseSYRKXX::getLxdh, GBaseSYRKXX::getSspcsdm) .in(GBaseSYRKXX::getGmsfhm, manList)); Map map = list.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (oldValue, newValue) -> newValue)); @@ -640,7 +659,7 @@ public class RiskTaskServiceImpl implements RiskTaskService { if(xx == null) { continue; } - RiskPersonal personal = createPerson(xx, Default.FIGHT_MUCH); + 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()+"起矛盾纠纷,属于高频次矛盾纠纷发生人员,增加风险分3分"); @@ -843,13 +862,24 @@ public class RiskTaskServiceImpl implements RiskTaskService { return null; } - RiskPersonal createPerson(GBaseSYRKXX xx, String tag) { + 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()); - person.setControlDepartId(xx.getSspcsdm()); - person.setControlDepartName(xx.getSspcsmc()); + + 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); + if (depart != null) { + person.setControlDepartId(depart.getInternalId()); + person.setControlDepartName(depart.getInternalName()); + person.setControlDepartType(DepartType.HUMAN.getType()); + person.setControlTime(LocalDateTime.now()); + } + } + try{ int age = IdCodeUtil.idCard2Age(person.getIdCode(), LocalDate.now()); if(age <= 6) { @@ -869,8 +899,17 @@ public class RiskTaskServiceImpl implements RiskTaskService { } } person.setCreateTime(LocalDateTime.now()); - person.setControlTime(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; + } }