Browse Source

刑事处罚罪名

master
kami 1 year ago
parent
commit
006e3d6c32
  1. 18
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 16
      src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java
  3. 2
      src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java
  4. 257
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java
  5. 14
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java

18
src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java

@ -116,7 +116,6 @@ public class ApplicationEvent {
// pointService.personPullAndSave(start, end);
// riskPersonalService.fixed();
//
// gBaseJJDService.pullPoliceInstance(start, end);
//
//
// petitionService.petitionModelTask(initDomain(List.of(40)));
@ -136,6 +135,7 @@ public class ApplicationEvent {
// pointService.syncDrug(initDomain(List.of(37)));
// pointService.syncControlNoPower(initDomain(List.of(48)));
// pointService.syncOilBuy(initDomain(List.of(52)));
gBaseJJDService.pullPoliceInstance(start, end, initDomain(List.of(55,56,57,58)));
// jsbryService.syncPys(initDomain(List.of(59)));
// gBaseSHRWFRService.combatCrime(initDomain(List.of(63)));
// gBaseJJDService.syncPoliceAttack(initDomain(List.of(64)));
@ -154,14 +154,14 @@ public class ApplicationEvent {
// pointService.syncDomicileType(initDomain(List.of(114)));
// pointService.syncCriminalPunishment(initDomain(List.of(115)));
// pointService.syncAdministrativePunishment(initDomain(List.of(116)));
// pointService.syncParentsDivorce(initDomain(List.of(117)));
// pointService.syncFamilyDie(initDomain(List.of(118)));
// pointService.syncFatherDie(initDomain(List.of(119)));
// pointService.syncMotherDie(initDomain(List.of(120)));
// pointService.syncChildNo(initDomain(List.of(121)));
// pointService.syncXIDU(initDomain(List.of(122)));
// pointService.syncFiliation(initDomain(List.of(123)));
// pointService.syncPetitionContent(initDomain(List.of(124)));
pointService.syncParentsDivorce(initDomain(List.of(117)));
pointService.syncFamilyDie(initDomain(List.of(118)));
pointService.syncFatherDie(initDomain(List.of(119)));
pointService.syncMotherDie(initDomain(List.of(120)));
pointService.syncChildNo(initDomain(List.of(121)));
pointService.syncXIDU(initDomain(List.of(122)));
pointService.syncFiliation(initDomain(List.of(123)));
pointService.syncPetitionContent(initDomain(List.of(124)));
// *********暂时不要**********
// riskTaskService.caseModelTask(initDomain(List.of(35)));

16
src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java

@ -91,11 +91,15 @@ public interface GBaseJJDMapper extends BaseMapper<GBaseJJD> {
" bjnr like '%和父亲%' or cjqk like '%和父亲%' or " +
" bjnr like '%与爸爸%' or cjqk like '%与爸爸%' or " +
" bjnr like '%和爸爸%' or cjqk like '%和爸爸%' or " +
" ((bjnr like '%和儿子%' or cjqk like '%和儿子%' or bjnr like '%与儿子%' or cjqk like '%与儿子%' or " +
" bjnr like '%和女儿%' or cjqk like '%和女儿%' or bjnr like '%与女儿%' or cjqk like '%与女儿%' or" +
" bjnr like '%和子女%' or cjqk like '%和子女%' or bjnr like '%与子女%' or cjqk like '%与子女%') and ( " +
" bjnr like '%系父亲%' or cjqk like '%系父亲%' or bjnr like '%系爸爸%' or cjqk like '%系爸爸%' or " +
" bjnr like '%是父亲%' or cjqk like '%是父亲%' or bjnr like '%是爸爸%' or cjqk like '%是爸爸%')) ")
" (" +
" (bjnr like '%和儿子%' or cjqk like '%和儿子%' or bjnr like '%与儿子%' or cjqk like '%与儿子%' or " +
" bjnr like '%和女儿%' or cjqk like '%和女儿%' or bjnr like '%与女儿%' or cjqk like '%与女儿%' or" +
" bjnr like '%和子女%' or cjqk like '%和子女%' or bjnr like '%与子女%' or cjqk like '%与子女%'" +
" ) and ( " +
" bjnr like '%系父亲%' or cjqk like '%系父亲%' or bjnr like '%系爸爸%' or cjqk like '%系爸爸%' or " +
" bjnr like '%是父亲%' or cjqk like '%是父亲%' or bjnr like '%是爸爸%' or cjqk like '%是爸爸%'" +
" )" +
") )")
List<GBaseJJD> selectFatherRelation(@Param("start")String start);
@Select(" select jjdbh, bjdh,bjrxm ,bjrzjhm, bjnr, cjqk, bjsj from dwd_asj_zhtx_jjd " +
@ -108,7 +112,7 @@ public interface GBaseJJDMapper extends BaseMapper<GBaseJJD> {
" bjnr like '%和女儿%' or cjqk like '%和女儿%' or bjnr like '%与女儿%' or cjqk like '%与女儿%' or" +
" bjnr like '%和子女%' or cjqk like '%和子女%' or bjnr like '%与子女%' or cjqk like '%与子女%') and (" +
" bjnr like '%系母亲%' or cjqk like '%系母亲%' or bjnr like '%系妈妈%' or cjqk like '%系妈妈%' or " +
" bjnr like '%是母亲%' or cjqk like '%是母亲%' or bjnr like '%是妈妈%' or cjqk like '%是妈妈%')) ")
" bjnr like '%是母亲%' or cjqk like '%是母亲%' or bjnr like '%是妈妈%' or cjqk like '%是妈妈%'))) ")
List<GBaseJJD> selectMotherRelation(@Param("start")String start);
/**

2
src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java

@ -23,7 +23,7 @@ public interface GBaseJJDService {
*/
void pullDataAndSaveRedis(LocalDateTime start, LocalDateTime end);
void pullPoliceInstance(LocalDateTime start, LocalDateTime end);
void pullPoliceInstance(LocalDateTime start, LocalDateTime end,TaskParamDomain domain);
/**
* 攻击警察
* @param domain domain

257
src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java

@ -303,16 +303,64 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
}
@Override
public void pullPoliceInstance(LocalDateTime start, LocalDateTime end) {
public void pullPoliceInstance(LocalDateTime start, LocalDateTime end, TaskParamDomain domain) {
String startTime = start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
String endTime = end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
List<RiskModelTaskClue> list1 = new ArrayList<>();
List<RiskModelTaskClue> list2 = new ArrayList<>();
List<RiskModelTaskClue> list3 = new ArrayList<>();
List<RiskModelTaskClue> list4 = new ArrayList<>();
List<Integer> tasks = new ArrayList<>(4);
CompletableFuture.allOf(
CompletableFutureUtil.runSyncObject(() -> toRedisCache(gBaseJJDRepository.getBaseMapper().selectRevenge(startTime, endTime), RedisKey.REVENGE)),
CompletableFutureUtil.runSyncObject(() -> toRedisCache(gBaseJJDRepository.getBaseMapper().selectHater(startTime, endTime), RedisKey.HATER)),
CompletableFutureUtil.runSyncObject(() -> toRedisCache(gBaseJJDRepository.getBaseMapper().selectInjustice(startTime, endTime), RedisKey.INJUSTICE)),
CompletableFutureUtil.runSyncObject(() -> toRedisCache(gBaseJJDRepository.getBaseMapper().selectSuicide(startTime, endTime), RedisKey.SUICIDE))
CompletableFutureUtil.runSyncObject(() -> {
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectRevenge(startTime, endTime);
RiskTask task = taskRepository.create(jjdList.size(), 58);
list1.addAll(collectJJD(task, "表达报复社会", jjdList, domain));
tasks.set(0, task.getId());
}),
CompletableFutureUtil.runSyncObject(() -> {
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectHater(startTime, endTime);
RiskTask task = taskRepository.create(jjdList.size(), 55);
list2.addAll(collectJJD(task, "表达厌世情绪", gBaseJJDRepository.getBaseMapper().selectHater(startTime, endTime), domain));
tasks.set(1, task.getId());
}),
CompletableFutureUtil.runSyncObject(() -> {
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectInjustice(startTime, endTime);
RiskTask task = taskRepository.create(jjdList.size(), 57);
list3.addAll(collectJJD(task, "表达遭受不公", gBaseJJDRepository.getBaseMapper().selectInjustice(startTime, endTime), domain));
tasks.set(2, task.getId());
}),
CompletableFutureUtil.runSyncObject(() -> {
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectSuicide(startTime, endTime);
RiskTask task = taskRepository.create(jjdList.size(), 56);
list4.addAll(collectJJD(task, "尝试自杀", gBaseJJDRepository.getBaseMapper().selectSuicide(startTime, endTime), domain));
tasks.set(3, task.getId());
})
).join();
if (!list1.isEmpty()) {
log.info("保存复仇者联盟:{}", list1.size());
clueService.saveClues(list1, "表达报复社会");
}
if (!list2.isEmpty()) {
log.info("厌世强者:{}", list2.size());
clueService.saveClues(list2, "表达厌世情绪");
}
if (!list3.isEmpty()) {
log.info("我命由我不由天:{}", list3.size());
clueService.saveClues(list3, "表达遭受不公");
}
if (!list4.isEmpty()) {
log.info("毁灭吧:{}", list4.size());
clueService.saveClues(list4, "尝试自杀");
}
taskRepository.updateTask(tasks.get(0), list1.size(), 0);
taskRepository.updateTask(tasks.get(1), list2.size(), 0);
taskRepository.updateTask(tasks.get(2), list3.size(), 0);
taskRepository.updateTask(tasks.get(3), list4.size(), 0);
}
private final RiskTaskRepository taskRepository;
@ -500,15 +548,15 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<RiskModelTaskClue> toInsert2 = new ArrayList<>();
for (RiskPersonal person : domain.getPersons()) {
// 被家暴
toInsert.addAll(collectionClue(shIdCodeMap,shMobileMap, person, personOldMap, task, "被家暴"));
toInsert2.addAll(collectionClue(wfIdCodeMap,wfMobileMap, person, personOldMap2, task2, "家暴"));
toInsert.addAll(collectionClue(shIdCodeMap, shMobileMap, person, personOldMap, task, "被家暴"));
toInsert2.addAll(collectionClue(wfIdCodeMap, wfMobileMap, person, personOldMap2, task2, "家暴"));
}
List<RiskModelTaskClue> toUpdate = new ArrayList<>();
List<RiskModelTaskClue> toUpdate2 = new ArrayList<>();
List<String> deleteIdCards = new ArrayList<>();
List<String> deleteIdCards2 = new ArrayList<>();
for (RiskModelTaskClue clue : oldList) {
if(clue.getEventTime().isBefore(limit)) {
if (clue.getEventTime().isBefore(limit)) {
RiskModelTaskClue update = new RiskModelTaskClue();
update.setId(update.getId());
update.setDel(1);
@ -518,7 +566,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
}
for (RiskModelTaskClue clue : oldList2) {
if(clue.getEventTime().isBefore(limit)) {
if (clue.getEventTime().isBefore(limit)) {
RiskModelTaskClue update = new RiskModelTaskClue();
update.setId(update.getId());
update.setDel(1);
@ -566,11 +614,11 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<RiskModelTaskClue> toInsert2 = eachClue2Save(domain, task2, motherIdCodeMap, "母亲");
if(!toInsert.isEmpty()) {
if (!toInsert.isEmpty()) {
log.info("父亲矛盾增加 {}", toInsert.size());
clueService.saveClues(toInsert, "家庭、人际、两性关系");
}
if(!toInsert2.isEmpty()) {
if (!toInsert2.isEmpty()) {
log.info("母亲矛盾增加 {}", toInsert2.size());
clueService.saveClues(toInsert2, "家庭、人际、两性关系");
}
@ -611,7 +659,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
}
}
}
if(!mobileContinue) {
if (!mobileContinue) {
continue;
}
}
@ -624,7 +672,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
}
List<String> tmp = Arrays.stream(mobile.split(",")).toList();
switch (tmp.size()) {
case 0 -> {}
case 0 -> {
}
case 1 -> mobilesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD);
case 2 -> {
mobilesMap.computeIfAbsent(tmp.get(0), k -> new ArrayList<>()).add(gBaseJJD);
@ -648,7 +697,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<RiskModelTaskClue> toUpdate = new ArrayList<>();
List<String> deleteIdCards = new ArrayList<>();
for (RiskModelTaskClue clue : oldList) {
if(clue.getEventTime().isBefore(limit)) {
if (clue.getEventTime().isBefore(limit)) {
RiskModelTaskClue update = new RiskModelTaskClue();
update.setId(update.getId());
update.setDel(1);
@ -699,7 +748,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
}
}
}
if(!mobileContinue) {
if (!mobileContinue) {
continue;
}
}
@ -712,7 +761,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
}
List<String> tmp = Arrays.stream(mobile.split(",")).toList();
switch (tmp.size()) {
case 0 -> {}
case 0 -> {
}
case 1 -> mobilesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD);
case 2 -> {
mobilesMap.computeIfAbsent(tmp.get(0), k -> new ArrayList<>()).add(gBaseJJD);
@ -736,7 +786,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<RiskModelTaskClue> toUpdate = new ArrayList<>();
List<String> deleteIdCards = new ArrayList<>();
for (RiskModelTaskClue clue : oldList) {
if(clue.getEventTime().isBefore(limit)) {
if (clue.getEventTime().isBefore(limit)) {
RiskModelTaskClue update = new RiskModelTaskClue();
update.setId(update.getId());
update.setDel(1);
@ -787,7 +837,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
}
}
}
if(!mobileContinue) {
if (!mobileContinue) {
continue;
}
}
@ -800,7 +850,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
}
List<String> tmp = Arrays.stream(mobile.split(",")).toList();
switch (tmp.size()) {
case 0 -> {}
case 0 -> {
}
case 1 -> mobilesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD);
case 2 -> {
mobilesMap.computeIfAbsent(tmp.get(0), k -> new ArrayList<>()).add(gBaseJJD);
@ -824,7 +875,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<RiskModelTaskClue> toUpdate = new ArrayList<>();
List<String> deleteIdCards = new ArrayList<>();
for (RiskModelTaskClue clue : oldList) {
if(clue.getEventTime().isBefore(limit)) {
if (clue.getEventTime().isBefore(limit)) {
RiskModelTaskClue update = new RiskModelTaskClue();
update.setId(update.getId());
update.setDel(1);
@ -860,12 +911,12 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
if (idCard.isEmpty()) {
idCard = PatternUtil.takeIdCard(gBaseJJD.getBjnr());
}
if(!idCard.isEmpty()) {
if (!idCard.isEmpty()) {
List<String> tmp = Arrays.stream(idCard.split(",")).toList();
// 年龄22岁以下才算
for (String s : tmp) {
Integer age = IdCodeUtil.idCard2Age(s, today);
if(age != null && age <= 22) {
if (age != null && age <= 22) {
idCodesMap.computeIfAbsent(s, k -> new ArrayList<>()).add(gBaseJJD);
}
}
@ -875,51 +926,53 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
if (idCard.isEmpty()) {
mobile = PatternUtil.takeMobile(gBaseJJD.getBjnr());
}
if(idCard.isEmpty()) {
if (idCard.isEmpty()) {
continue;
}
mobiles.addAll(Arrays.stream(mobile.split(",")).toList());
others.add(gBaseJJD);
}
List<GBaseSYRKXX> xxList = gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getLxdh).in(GBaseSYRKXX::getLxdh, mobiles));
Map<String, List<GBaseSYRKXX>> mobileRkMap = xxList.stream().collect(Collectors.groupingBy(GBaseSYRKXX::getLxdh));
// 第二轮通过手机号找身份证
for (GBaseJJD other : others) {
String mobile = PatternUtil.takeMobile(other.getCjqk());
if (mobile.isEmpty()) {
mobile = PatternUtil.takeMobile(other.getBjnr());
}
List<String> tmp = Arrays.stream(mobile.split(",")).toList();
List<String> idCard = new ArrayList<>();
for (String s : tmp) {
List<GBaseSYRKXX> arr = Optional.ofNullable(mobileRkMap.get(s)).orElse(new ArrayList<>());
idCard.addAll(arr.stream().map(GBaseSYRKXX::getGmsfhm).filter(Objects::nonNull).filter(item -> {
Integer age = IdCodeUtil.idCard2Age(item, today);
return age != null && age <= 22;
}).toList());
}
if(idCard.isEmpty()) {
continue;
}
for (String s : idCard) {
idCodesMap.computeIfAbsent(s, k -> new ArrayList<>()).add(other);
if (!mobiles.isEmpty()) {
List<GBaseSYRKXX> xxList = gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getLxdh).in(GBaseSYRKXX::getLxdh, mobiles));
Map<String, List<GBaseSYRKXX>> mobileRkMap = xxList.stream().collect(Collectors.groupingBy(GBaseSYRKXX::getLxdh));
// 第二轮通过手机号找身份证
for (GBaseJJD other : others) {
String mobile = PatternUtil.takeMobile(other.getCjqk());
if (mobile.isEmpty()) {
mobile = PatternUtil.takeMobile(other.getBjnr());
}
List<String> tmp = Arrays.stream(mobile.split(",")).toList();
List<String> idCard = new ArrayList<>();
for (String s : tmp) {
List<GBaseSYRKXX> arr = Optional.ofNullable(mobileRkMap.get(s)).orElse(new ArrayList<>());
idCard.addAll(arr.stream().map(GBaseSYRKXX::getGmsfhm).filter(Objects::nonNull).filter(item -> {
Integer age = IdCodeUtil.idCard2Age(item, today);
return age != null && age <= 22;
}).toList());
}
if (idCard.isEmpty()) {
continue;
}
for (String s : idCard) {
idCodesMap.computeIfAbsent(s, k -> new ArrayList<>()).add(other);
}
}
}
List<RiskModelTaskClue> oldList = domain.getMap().get(task.getModelId());
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>());
Map<String, List<RiskModelTaskClue>> personMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode));
List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (RiskPersonal person : domain.getPersons()) {
List<GBaseJJD> jjdList = idCodesMap.get(person.getIdCode());
List<GBaseJJD> jjdList = Optional.ofNullable(idCodesMap.get(person.getIdCode())).orElse(new ArrayList<>());
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).toList();
if(jjdList == null) {
if (jjdList == null) {
continue;
}
List<RiskModelTaskClue> olds = Optional.ofNullable(personMap.get(person.getIdCode())).orElse(new ArrayList<>());
Map<String, RiskModelTaskClue> oldMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val));
for (GBaseJJD jjd : jjdList) {
if(oldMap.get(BhUtil.jjdBh(jjd.getJjdbh())) != null) {
if (oldMap.get(BhUtil.jjdBh(jjd.getJjdbh())) != null) {
continue;
}
ClueData data = ClueData.builder()
@ -982,6 +1035,70 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
// }
}
/**
* 遍历接警单
*
* @param modelId 模型id
* @param tag 标签
* @param result 接警单数据
* @param domain domain
* @return 要新增的结果
*/
List<RiskModelTaskClue> collectJJD(RiskTask task, String tag, List<GBaseJJD> result, TaskParamDomain domain) {
Map<String, List<GBaseJJD>> idCodesMap = new WeakHashMap<>();
Map<String, List<GBaseJJD>> mobilesMap = new WeakHashMap<>();
for (GBaseJJD gBaseJJD : result) {
String idCard = PatternUtil.takeIdCard(gBaseJJD.getCjqk());
if (idCard.isEmpty()) {
idCard = PatternUtil.takeIdCard(gBaseJJD.getBjnr());
}
boolean mobileContinue = false;
if (!idCard.isEmpty()) {
List<String> tmp = Arrays.stream(idCard.split(",")).toList();
switch (tmp.size()) {
case 0 -> mobileContinue = true;
case 1 -> idCodesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD);
default -> {
for (int i = 1; i < tmp.size(); i++) {
idCodesMap.computeIfAbsent(tmp.get(i), k -> new ArrayList<>()).add(gBaseJJD);
}
}
}
if (!mobileContinue) {
continue;
}
}
String mobile = PatternUtil.takeMobile(gBaseJJD.getCjqk());
if (mobile.isEmpty()) {
mobile = PatternUtil.takeMobile(gBaseJJD.getBjnr());
}
if (mobile.isEmpty()) {
continue;
}
List<String> tmp = Arrays.stream(mobile.split(",")).toList();
switch (tmp.size()) {
case 0 -> {
}
case 1 -> mobilesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD);
default -> {
for (int i = 1; i < tmp.size(); i++) {
mobilesMap.computeIfAbsent(tmp.get(i), k -> new ArrayList<>()).add(gBaseJJD);
}
}
}
}
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>());
// 按人分
Map<String, List<RiskModelTaskClue>> personOldMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode));
List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (RiskPersonal person : domain.getPersons()) {
toInsert.addAll(collectionClue(idCodesMap, mobilesMap, person, personOldMap, task, tag));
}
return toInsert;
}
Map<String, List<GBaseJJD>> findTargetJJD(List<GBaseJJD> jjdList) {
Map<String, List<GBaseJJD>> fatherIdCodeMap = new WeakHashMap<>();
@ -1003,7 +1120,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
case 1 -> fatherIdCodeMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD);
default -> fatherIdCodeMap.computeIfAbsent(findSmallOne(tmp), k -> new ArrayList<>()).add(gBaseJJD);
}
if(!continueMobile) {
if (!continueMobile) {
continue;
}
}
@ -1019,6 +1136,9 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
others.add(gBaseJJD);
}
}
if (mobiles.isEmpty()) {
return fatherIdCodeMap;
}
List<GBaseSYRKXX> xxList = gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getLxdh).in(GBaseSYRKXX::getLxdh, mobiles));
@ -1035,7 +1155,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<GBaseSYRKXX> arr = Optional.ofNullable(mobileRkMap.get(s)).orElse(new ArrayList<>());
idCard.addAll(arr.stream().map(GBaseSYRKXX::getGmsfhm).filter(Objects::nonNull).toList());
}
if(idCard.isEmpty()) {
if (idCard.isEmpty()) {
continue;
}
fatherIdCodeMap.computeIfAbsent(findSmallOne(idCard), k -> new ArrayList<>()).add(other);
@ -1043,30 +1163,30 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
return fatherIdCodeMap;
}
List<RiskModelTaskClue> eachClue2Save(TaskParamDomain domain, RiskTask task,Map<String, List<GBaseJJD>> fatherIdCodeMap, String tag) {
List<RiskModelTaskClue> oldList = domain.getMap().get(task.getModelId());
List<RiskModelTaskClue> eachClue2Save(TaskParamDomain domain, RiskTask task, Map<String, List<GBaseJJD>> fatherIdCodeMap, String tag) {
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>());
Map<String, List<RiskModelTaskClue>> personMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode));
List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (RiskPersonal person : domain.getPersons()) {
List<GBaseJJD> jjdList = fatherIdCodeMap.get(person.getIdCode());
List<GBaseJJD> jjdList = Optional.ofNullable(fatherIdCodeMap.get(person.getIdCode())).orElse(new ArrayList<>());
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).toList();
if(jjdList == null) {
if (jjdList == null) {
continue;
}
List<RiskModelTaskClue> olds = Optional.ofNullable(personMap.get(person.getIdCode())).orElse(new ArrayList<>());
Map<String, RiskModelTaskClue> oldMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val));
for (GBaseJJD jjd : jjdList) {
if(oldMap.get(BhUtil.jjdBh(jjd.getJjdbh())) != null) {
if (oldMap.get(BhUtil.jjdBh(jjd.getJjdbh())) != null) {
continue;
}
ClueData data = ClueData.builder()
.name(person.getName())
.id(BhUtil.jjdBh(jjd.getJjdbh()))
.idCode(person.getIdCode())
.tag("与"+tag+"存在矛盾")
.tag("与" + tag + "存在矛盾")
.personId(person.getId())
.build();
StringBuilder sb = new StringBuilder("该人员与"+tag+"存在矛盾,接警单编号:" + jjd.getJjdbh());
StringBuilder sb = new StringBuilder("该人员与" + tag + "存在矛盾,接警单编号:" + jjd.getJjdbh());
if (jjd.getBjnr() != null && !jjd.getBjnr().isEmpty()) {
sb.append(",报警内容;" + jjd.getBjnr());
}
@ -1091,13 +1211,13 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
String idCode = null;
int age = 0;
for (String s : list) {
if(idCode == null){
if (idCode == null) {
idCode = s;
age = Optional.ofNullable(IdCodeUtil.idCard2Age(s, today)).orElse(0);
continue;
}
int tmp = Optional.ofNullable(IdCodeUtil.idCard2Age(s, today)).orElse(0);
if(tmp < age) {
if (tmp < age) {
age = tmp;
idCode = s;
}
@ -1107,15 +1227,16 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
/**
* 手机要搜索的clue数据
* @param idCode 身份证Map
* @param mobile 手机号map
* @param personal 人员
*
* @param idCode 身份证Map
* @param mobile 手机号map
* @param personal 人员
* @param personOldMap 人员的旧clue
* @param task 任务
* @param tag 标签
* @param task 任务
* @param tag 标签
* @return 要新增的clue
*/
List<RiskModelTaskClue> collectionClue(Map<String, List<GBaseJJD>> idCode, Map<String, List<GBaseJJD>> mobile,RiskPersonal personal,Map<String, List<RiskModelTaskClue>> personOldMap, RiskTask task, String tag) {
List<RiskModelTaskClue> collectionClue(Map<String, List<GBaseJJD>> idCode, Map<String, List<GBaseJJD>> mobile, RiskPersonal personal, Map<String, List<RiskModelTaskClue>> personOldMap, RiskTask task, String tag) {
List<GBaseJJD> jjdList = Optional.ofNullable(idCode.get(personal.getIdCode())).orElse(new ArrayList<>());
jjdList.addAll(Optional.ofNullable(mobile.get(personal.getMobileNumber())).orElse(new ArrayList<>()));
if (jjdList.isEmpty()) {
@ -1136,7 +1257,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
.tag(tag)
.personId(personal.getId())
.build();
StringBuilder sb = new StringBuilder("该人员存在"+tag+"警情,接警单编号:" + gBaseJJD.getJjdbh());
StringBuilder sb = new StringBuilder("该人员存在" + tag + "警情,接警单编号:" + gBaseJJD.getJjdbh());
if (gBaseJJD.getBjnr() != null && !gBaseJJD.getBjnr().isEmpty()) {
sb.append(",报警内容;" + gBaseJJD.getBjnr());
}

14
src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java

@ -8,6 +8,7 @@ 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.dwd.GBaseAJJBXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseSHRXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX;
import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue;
@ -356,7 +357,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
}
if (!toInsert.isEmpty()) {
clueService.saveClues(toInsert, "B24是否被打击处理");
clueService.saveClues(toInsert, "B24被打击处理");
}
taskRepository.updateTask(task.getId(), toInsert.size(), 0);
}
@ -393,7 +394,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
continue;
}
WdpcGrjdZblx zblx = map.get(xx.getSxzmdm());
if(zblx == null) {
if (zblx == null) {
continue;
}
ClueData data = ClueData.builder()
@ -402,7 +403,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
.idCode(person.getIdCode())
.tag(zblx.getDmmc())
.personId(person.getId())
.sourceData("该人员有犯罪前科,刑事处罚罪名:" + zblx.getDmmc() + ",案件编号:" + xx.getAjbh() + ",增加风险"+zblx.getScore().intValue()+"5分")
.sourceData("该人员有犯罪前科,刑事处罚罪名:" + zblx.getDmmc() + ",案件编号:" + xx.getAjbh() + ",增加风险" + zblx.getScore().intValue() + "5分")
.build();
try {
data.setEventTime(xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
@ -517,6 +518,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
log.info("实有人口进度{}", count);
xxList.addAll(gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.select(GBaseSYRKXX::getZydm, GBaseSYRKXX::getGmsfhm)
.isNotNull(GBaseSYRKXX::getZydm)
.in(GBaseSYRKXX::getGmsfhm, srIdCode)));
}
@ -525,7 +527,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
String zydm = syMap.get(person.getIdCode());
if (zydm == null) continue;
WdpcGrjdZblx zblx = wfzyMap.get(zydm);
if(zblx == null) continue;
if (zblx == null) continue;
ClueData data = ClueData.builder()
.name(person.getName())
.id("zy")
@ -552,11 +554,11 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
toInsert.add(createClue(task.getModelId(), zblx.getScore().intValue(), task.getId(), data));
}
if(!toInsert.isEmpty()) {
if (!toInsert.isEmpty()) {
log.info("保存职业类型: {}", toInsert.size());
clueService.saveClues(toInsert, Default.IMPORT_IG);
}
if(!toInsert2.isEmpty()) {
if (!toInsert2.isEmpty()) {
log.info("保存无职业: {}", toInsert2.size());
clueService.saveClues(toInsert2, Default.IMPORT_IG);
}

Loading…
Cancel
Save