kami 1 year ago
parent
commit
46c66cdd9f
  1. 2
      src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java
  2. 241
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java
  3. 102
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java
  4. 40
      src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java
  5. 38
      src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java
  6. 116
      src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java
  7. 2
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java
  8. 6
      src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java
  9. 69
      src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java

2
src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java

@ -64,7 +64,7 @@ public interface GBaseSYRKXXMapper extends BaseMapper<GBaseSYRKXX> {
"</script>")
List<FightMan> selectListByIdCode(@Param("list")List<String> 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<GBaseSYRKXX> selectOrg();
}

241
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<RiskPersonal> personals = new ArrayList<>();
// 身份证和手机号都为空数量
int noneCount = 0;
// 未核实到信息数据
int infoCount = 0;
List<SupExternalDepart> supDeparts = externalDepartRepository.list(new LambdaQueryWrapper<SupExternalDepart>()
.select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource)
.in(SupExternalDepart::getSource, List.of("重点人员", "情指行")));
Map<String, List<SupExternalDepart>> amp = supDeparts.stream().collect(Collectors.groupingBy(SupExternalDepart::getSource));
Map<String, SupExternalDepart> pointExternalDepart = amp.get("重点人员").stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val));
Map<String, SupExternalDepart> jqExternalDepart = amp.get("情指行").stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val));
List<PointOrg> orgs = zdryRepository.getBaseMapper().selectOrg();
Map<String, PointOrg> orgIdMap = new WeakHashMap<>();
Map<String, PointOrg> orgCodeMap = new WeakHashMap<>();
for (PointOrg org : orgs) {
orgIdMap.put(org.getId(), org);
orgCodeMap.put(org.getDm(), org);
}
int ok = 0;
List<RiskPersonal> personals = new ArrayList<>();
// 过滤数据
List<String> 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<GBaseJJD> 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<GBaseJJD> 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<GBaseJJD> 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,127 +124,121 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<GBaseSYRKXX> sFms = new ArrayList<>();
// 手机号查到的人
List<GBaseSYRKXX> lXfs = new ArrayList<>();
for (List<String> idCode : idCodes) {
List<GBaseSYRKXX> list = gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.in(GBaseSYRKXX::getGmsfhm, idCode));
sFms.addAll(list);
count++;
log.info("身份证进度 | {}", count);
}
log.info("开始根据手机号实用人口信息补全 =》 {}", mobiles.size());
for (List<String> mobile : mobiles) {
List<GBaseSYRKXX> list = gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.in(GBaseSYRKXX::getLxdh, mobile));
lXfs.addAll(list);
count++;
log.info("手机号进度 | {}", count);
}
CompletableFuture.allOf(
CompletableFutureUtil.runSyncObject(() -> sFms.addAll(getByIdCode(idCodes))),
CompletableFutureUtil.runSyncObject(() -> lXfs.addAll(getByMobiles(mobiles)))
).join();
Map<String, GBaseSYRKXX> idCodeMap = sFms.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (oldValue, newValue) -> newValue));
Map<String, List<GBaseSYRKXX>> mobileMap = lXfs.stream().collect(Collectors.groupingBy(GBaseSYRKXX::getLxdh));
// 开始补全
LocalDate today = LocalDate.now();
GBaseSYRKXX info = null;
List<GBaseSYRKXX> 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<GBaseJJD> jjds = jjdMap.get(personal.getIdCode());
if(jjds == null) {
jjds = jjdMMap.get(Optional.ofNullable(personal.getMobileNumber()).orElse(""));
}
if(jjds == null) {
for (RiskPersonal personal : personals) {
if (personal.getControlDepartType() != null && personal.getControlDepartType() >= DepartType.HUMAN.getType()) {
continue;
}
GBaseJJD tmp = null;
for (GBaseJJD jjd : jjds) {
if(tmp == null) {
tmp = jjd;
List<GBaseJJD> jjds = Optional.ofNullable(jjdMap.get(personal.getIdCode())).orElse(jjdMMap.get(Optional.ofNullable(personal.getMobileNumber()).orElse("")));
if (jjds == null || jjds.isEmpty()) {
continue;
}
GBaseJJD tmp = jjds.getFirst();
jjds.remove(0);
for (GBaseJJD jjd : jjds) {
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;
}
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(tmp.getGxdwdm());
personal.setControlDepartName(tmp.getGxdwmc());
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 名称
* @return 正确信息
@ -239,14 +246,24 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
GBaseSYRKXX compare(List<GBaseSYRKXX> 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<String, PointOrg> 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<GBaseSYRKXX> getByIdCode(List<List<String>> idCodes) {
List<GBaseSYRKXX> tmp = new ArrayList<>();
for (int i = 0, len = idCodes.size(); i < len; i++) {
tmp.addAll(gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.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<GBaseSYRKXX> getByMobiles(List<List<String>> mobiles) {
List<GBaseSYRKXX> tmp = new ArrayList<>();
for (int i = 0, len = mobiles.size(); i < len; i++) {
tmp.addAll(gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getXm, GBaseSYRKXX::getLxdh, GBaseSYRKXX::getSspcsdm, GBaseSYRKXX::getCsrq)
.in(GBaseSYRKXX::getLxdh, mobiles.get(i))));
log.info("手机号查询进度:{}", i);
}
return tmp;
}
}

102
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<PointOrg> orgs = zdryRepository.getBaseMapper().selectOrg();
List<SupExternalDepart> supDeparts = externalDepartRepository.list(new LambdaQueryWrapper<SupExternalDepart>()
.select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource)
.in(SupExternalDepart::getSource, List.of("重点人员", "情指行")));
Map<String, List<SupExternalDepart>> amp = supDeparts.stream().collect(Collectors.groupingBy(SupExternalDepart::getSource));
Map<String, SupExternalDepart> pointExternalDepart = amp.get("重点人员").stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val));
Map<String, SupExternalDepart> jqExternalDepart = amp.get("情指行").stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val));
Map<String, PointOrg> orgIdMap = new WeakHashMap<>();
Map<String, PointOrg> orgCodeMap = new WeakHashMap<>();
for (PointOrg org : orgs) {
orgIdMap.put(org.getId(), org);
orgCodeMap.put(org.getDm(), org);
}
List<GBaseSHRXX> shrList = new ArrayList<>();
List<GBaseWFRXX> wxrList = new ArrayList<>();
@ -126,6 +146,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
log.info("身份证开始: {}", idCode.size());
for (List<String> arr : idCode) {
List<GBaseSYRKXX> list = gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.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<String> arr : mobile) {
List<GBaseSYRKXX> list = gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.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<GBaseAJJBXX> 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<GBaseAJJBXX> 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<GBaseAJJBXX> 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;
}
personal.setControlDepartId(jjx.getBadwiddm());
personal.setControlDepartName(jjx.getBadwidmc());
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(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<String, PointOrg> orgIdMap) {
if (org == null) {
return null;
}
if (org.getPcs() == null || !org.getPcs().equals("1")) {
return findOrg(orgIdMap.get(org.getPid()), orgIdMap);
}
return org;
}
}

40
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()) {

38
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<GBaseSYRKXX> xxInfo = gBaseSYRKXXRepository.getBaseMapper().selectOrg();
List<PointOrg> orgs = zdryRepository.getBaseMapper().selectOrg();
List<SupExternalDepart> externalDeparts = new ArrayList<>();
Map<String, Integer> supExternalDepartMap = new WeakHashMap<>();
Map<String, PointOrg> orgIdMap = new WeakHashMap<>();
Map<String, PointOrg> orgCodeMap = new WeakHashMap<>();
for (PointOrg org : orgs) {
orgIdMap.put(org.getId(), org);
orgCodeMap.put(org.getDm(), org);
}
int a = 0;
int b = 0;
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);
PointOrg org = orgCodeMap.get(syrkxx.getSspcsdm());
org = findOrg(org, orgIdMap);
if(org== null) {
a++;
continue;
}
if (!externalDeparts.isEmpty()) {
supExternalDepartRepository.saveBatch(externalDeparts);
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<String, PointOrg> orgIdMap) {
if(org == null) {
return null;
}
if(org.getPcs() == null || !org.getPcs().equals("1")) {
return findOrg(orgIdMap.get(org.getPid()), orgIdMap);
}
return org;
}
/**
* 通过身份证号查询实有人口
*

116
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<RiskPersonal> personals1 = new ArrayList<>();
@ -59,6 +65,20 @@ public class PetitionServiceImpl implements PetitionService {
List<String> idCards = new ArrayList<>();
List<String> idCards_b = new ArrayList<>();
List<String> mobiles = new ArrayList<>();
List<SupExternalDepart> supDeparts = externalDepartRepository.list(new LambdaQueryWrapper<SupExternalDepart>()
.select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource)
.eq(SupExternalDepart::getSource, "重点人员"));
Map<String, SupExternalDepart> jqExternalDepart = supDeparts.stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val));
List<PointOrg> orgs = zdryRepository.getBaseMapper().selectOrg();
Map<String, PointOrg> orgIdMap = new WeakHashMap<>();
Map<String, PointOrg> orgCodeMap = new WeakHashMap<>();
for (PointOrg org : orgs) {
orgIdMap.put(org.getId(), org);
orgCodeMap.put(org.getDm(), org);
}
CompletableFuture.allOf(
CompletableFutureUtil.runSyncObject(() -> {
List<DataPetition12337> list = petition12337Repository.list(new LambdaQueryWrapper<DataPetition12337>()
@ -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<String> idCode : idCodes) {
count--;
xxList.addAll(syrkxxRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.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<String> phone : phones) {
count--;
xxMobileList.addAll(syrkxxRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.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(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<Integer, List<RiskModelTaskClue>> winnerMap = new WeakHashMap<>();
@ -569,4 +625,14 @@ public class PetitionServiceImpl implements PetitionService {
}
return personal;
}
PointOrg findOrg(PointOrg org, Map<String, PointOrg> orgIdMap) {
if (org == null) {
return null;
}
if (org.getPcs() == null || !org.getPcs().equals("1")) {
return findOrg(orgIdMap.get(org.getPid()), orgIdMap);
}
return org;
}
}

2
src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

@ -719,7 +719,7 @@ public class PointServiceImpl implements PointService {
List<GBaseTbDZdrylb> lbList = zdrylbRepository.list(new LambdaQueryWrapper<GBaseTbDZdrylb>()
.select(GBaseTbDZdrylb::getCode, GBaseTbDZdrylb::getDefine));
List<SupExternalDepart> supDeparts = externalDepartRepository.list(new LambdaQueryWrapper<SupExternalDepart>()
.select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName)
.select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource)
.eq(SupExternalDepart::getSource, "重点人员"));
List<PointOrg> orgs = zdryRepository.getBaseMapper().selectOrg();

6
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)));
}

69
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<String, GBaseSYRKXX> syrkxxMap = xxList.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, Function.identity(), (oldValue, newValue) -> newValue));
List<SupExternalDepart> supDeparts = externalDepartRepository.list(new LambdaQueryWrapper<SupExternalDepart>()
.select(SupExternalDepart::getExternalId, SupExternalDepart::getInternalId, SupExternalDepart::getInternalName, SupExternalDepart::getSource)
.eq(SupExternalDepart::getSource, "重点人员"));
Map<String, SupExternalDepart> jqExternalDepart = supDeparts.stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val));
List<PointOrg> orgs = zdryRepository.getBaseMapper().selectOrg();
Map<String, PointOrg> orgIdMap = new WeakHashMap<>();
Map<String, PointOrg> 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<GBaseSYRKXX> list = syrkxxRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.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<String, GBaseSYRKXX> 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<String, PointOrg> orgCodeMap, Map<String, PointOrg> orgIdMap,Map<String, SupExternalDepart> 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<String, PointOrg> orgIdMap) {
if (org == null) {
return null;
}
if (org.getPcs() == null || !org.getPcs().equals("1")) {
return findOrg(orgIdMap.get(org.getPid()), orgIdMap);
}
return org;
}
}

Loading…
Cancel
Save