Browse Source

Merge remote-tracking branch 'origin/master'

master
sjh 1 year ago
parent
commit
de0374cef3
  1. 18
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 12
      src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java
  3. 2
      src/main/java/com/biutag/supervisiondata/service/GBaseJJDService.java
  4. 203
      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); // pointService.personPullAndSave(start, end);
// riskPersonalService.fixed(); // riskPersonalService.fixed();
// //
// gBaseJJDService.pullPoliceInstance(start, end);
// //
// //
// petitionService.petitionModelTask(initDomain(List.of(40))); // petitionService.petitionModelTask(initDomain(List.of(40)));
@ -136,6 +135,7 @@ public class ApplicationEvent {
// pointService.syncDrug(initDomain(List.of(37))); // pointService.syncDrug(initDomain(List.of(37)));
// pointService.syncControlNoPower(initDomain(List.of(48))); // pointService.syncControlNoPower(initDomain(List.of(48)));
// pointService.syncOilBuy(initDomain(List.of(52))); // pointService.syncOilBuy(initDomain(List.of(52)));
gBaseJJDService.pullPoliceInstance(start, end, initDomain(List.of(55,56,57,58)));
// jsbryService.syncPys(initDomain(List.of(59))); // jsbryService.syncPys(initDomain(List.of(59)));
// gBaseSHRWFRService.combatCrime(initDomain(List.of(63))); // gBaseSHRWFRService.combatCrime(initDomain(List.of(63)));
// gBaseJJDService.syncPoliceAttack(initDomain(List.of(64))); // gBaseJJDService.syncPoliceAttack(initDomain(List.of(64)));
@ -154,14 +154,14 @@ public class ApplicationEvent {
// pointService.syncDomicileType(initDomain(List.of(114))); // pointService.syncDomicileType(initDomain(List.of(114)));
// pointService.syncCriminalPunishment(initDomain(List.of(115))); // pointService.syncCriminalPunishment(initDomain(List.of(115)));
// pointService.syncAdministrativePunishment(initDomain(List.of(116))); // pointService.syncAdministrativePunishment(initDomain(List.of(116)));
// pointService.syncParentsDivorce(initDomain(List.of(117))); pointService.syncParentsDivorce(initDomain(List.of(117)));
// pointService.syncFamilyDie(initDomain(List.of(118))); pointService.syncFamilyDie(initDomain(List.of(118)));
// pointService.syncFatherDie(initDomain(List.of(119))); pointService.syncFatherDie(initDomain(List.of(119)));
// pointService.syncMotherDie(initDomain(List.of(120))); pointService.syncMotherDie(initDomain(List.of(120)));
// pointService.syncChildNo(initDomain(List.of(121))); pointService.syncChildNo(initDomain(List.of(121)));
// pointService.syncXIDU(initDomain(List.of(122))); pointService.syncXIDU(initDomain(List.of(122)));
// pointService.syncFiliation(initDomain(List.of(123))); pointService.syncFiliation(initDomain(List.of(123)));
// pointService.syncPetitionContent(initDomain(List.of(124))); pointService.syncPetitionContent(initDomain(List.of(124)));
// *********暂时不要********** // *********暂时不要**********
// riskTaskService.caseModelTask(initDomain(List.of(35))); // riskTaskService.caseModelTask(initDomain(List.of(35)));

12
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 '%和儿子%' 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 '%与子女%'" +
" ) and ( " +
" 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 '%是爸爸%')) ") " bjnr like '%是父亲%' or cjqk like '%是父亲%' or bjnr like '%是爸爸%' or cjqk like '%是爸爸%'" +
" )" +
") )")
List<GBaseJJD> selectFatherRelation(@Param("start")String start); List<GBaseJJD> selectFatherRelation(@Param("start")String start);
@Select(" select jjdbh, bjdh,bjrxm ,bjrzjhm, bjnr, cjqk, bjsj from dwd_asj_zhtx_jjd " + @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 '%与女儿%' or" +
" bjnr like '%和子女%' or cjqk like '%和子女%' or bjnr like '%与子女%' or cjqk like '%与子女%') and (" + " 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 '%系妈妈%' 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); 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 pullDataAndSaveRedis(LocalDateTime start, LocalDateTime end);
void pullPoliceInstance(LocalDateTime start, LocalDateTime end); void pullPoliceInstance(LocalDateTime start, LocalDateTime end,TaskParamDomain domain);
/** /**
* 攻击警察 * 攻击警察
* @param domain domain * @param domain domain

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

@ -303,16 +303,64 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
@Override @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 startTime = start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
String endTime = end.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( CompletableFuture.allOf(
CompletableFutureUtil.runSyncObject(() -> toRedisCache(gBaseJJDRepository.getBaseMapper().selectRevenge(startTime, endTime), RedisKey.REVENGE)), CompletableFutureUtil.runSyncObject(() -> {
CompletableFutureUtil.runSyncObject(() -> toRedisCache(gBaseJJDRepository.getBaseMapper().selectHater(startTime, endTime), RedisKey.HATER)), List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectRevenge(startTime, endTime);
CompletableFutureUtil.runSyncObject(() -> toRedisCache(gBaseJJDRepository.getBaseMapper().selectInjustice(startTime, endTime), RedisKey.INJUSTICE)), RiskTask task = taskRepository.create(jjdList.size(), 58);
CompletableFutureUtil.runSyncObject(() -> toRedisCache(gBaseJJDRepository.getBaseMapper().selectSuicide(startTime, endTime), RedisKey.SUICIDE)) 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(); ).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; private final RiskTaskRepository taskRepository;
@ -500,15 +548,15 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<RiskModelTaskClue> toInsert2 = new ArrayList<>(); List<RiskModelTaskClue> toInsert2 = new ArrayList<>();
for (RiskPersonal person : domain.getPersons()) { for (RiskPersonal person : domain.getPersons()) {
// 被家暴 // 被家暴
toInsert.addAll(collectionClue(shIdCodeMap,shMobileMap, person, personOldMap, task, "被家暴")); toInsert.addAll(collectionClue(shIdCodeMap, shMobileMap, person, personOldMap, task, "被家暴"));
toInsert2.addAll(collectionClue(wfIdCodeMap,wfMobileMap, person, personOldMap2, task2, "家暴")); toInsert2.addAll(collectionClue(wfIdCodeMap, wfMobileMap, person, personOldMap2, task2, "家暴"));
} }
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); List<RiskModelTaskClue> toUpdate = new ArrayList<>();
List<RiskModelTaskClue> toUpdate2 = new ArrayList<>(); List<RiskModelTaskClue> toUpdate2 = new ArrayList<>();
List<String> deleteIdCards = new ArrayList<>(); List<String> deleteIdCards = new ArrayList<>();
List<String> deleteIdCards2 = new ArrayList<>(); List<String> deleteIdCards2 = new ArrayList<>();
for (RiskModelTaskClue clue : oldList) { for (RiskModelTaskClue clue : oldList) {
if(clue.getEventTime().isBefore(limit)) { if (clue.getEventTime().isBefore(limit)) {
RiskModelTaskClue update = new RiskModelTaskClue(); RiskModelTaskClue update = new RiskModelTaskClue();
update.setId(update.getId()); update.setId(update.getId());
update.setDel(1); update.setDel(1);
@ -518,7 +566,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
for (RiskModelTaskClue clue : oldList2) { for (RiskModelTaskClue clue : oldList2) {
if(clue.getEventTime().isBefore(limit)) { if (clue.getEventTime().isBefore(limit)) {
RiskModelTaskClue update = new RiskModelTaskClue(); RiskModelTaskClue update = new RiskModelTaskClue();
update.setId(update.getId()); update.setId(update.getId());
update.setDel(1); update.setDel(1);
@ -566,11 +614,11 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<RiskModelTaskClue> toInsert2 = eachClue2Save(domain, task2, motherIdCodeMap, "母亲"); List<RiskModelTaskClue> toInsert2 = eachClue2Save(domain, task2, motherIdCodeMap, "母亲");
if(!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
log.info("父亲矛盾增加 {}", toInsert.size()); log.info("父亲矛盾增加 {}", toInsert.size());
clueService.saveClues(toInsert, "家庭、人际、两性关系"); clueService.saveClues(toInsert, "家庭、人际、两性关系");
} }
if(!toInsert2.isEmpty()) { if (!toInsert2.isEmpty()) {
log.info("母亲矛盾增加 {}", toInsert2.size()); log.info("母亲矛盾增加 {}", toInsert2.size());
clueService.saveClues(toInsert2, "家庭、人际、两性关系"); clueService.saveClues(toInsert2, "家庭、人际、两性关系");
} }
@ -611,7 +659,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
} }
} }
if(!mobileContinue) { if (!mobileContinue) {
continue; continue;
} }
} }
@ -624,7 +672,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
List<String> tmp = Arrays.stream(mobile.split(",")).toList(); List<String> tmp = Arrays.stream(mobile.split(",")).toList();
switch (tmp.size()) { switch (tmp.size()) {
case 0 -> {} case 0 -> {
}
case 1 -> mobilesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD); case 1 -> mobilesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD);
case 2 -> { case 2 -> {
mobilesMap.computeIfAbsent(tmp.get(0), k -> new ArrayList<>()).add(gBaseJJD); 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<RiskModelTaskClue> toUpdate = new ArrayList<>();
List<String> deleteIdCards = new ArrayList<>(); List<String> deleteIdCards = new ArrayList<>();
for (RiskModelTaskClue clue : oldList) { for (RiskModelTaskClue clue : oldList) {
if(clue.getEventTime().isBefore(limit)) { if (clue.getEventTime().isBefore(limit)) {
RiskModelTaskClue update = new RiskModelTaskClue(); RiskModelTaskClue update = new RiskModelTaskClue();
update.setId(update.getId()); update.setId(update.getId());
update.setDel(1); update.setDel(1);
@ -699,7 +748,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
} }
} }
if(!mobileContinue) { if (!mobileContinue) {
continue; continue;
} }
} }
@ -712,7 +761,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
List<String> tmp = Arrays.stream(mobile.split(",")).toList(); List<String> tmp = Arrays.stream(mobile.split(",")).toList();
switch (tmp.size()) { switch (tmp.size()) {
case 0 -> {} case 0 -> {
}
case 1 -> mobilesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD); case 1 -> mobilesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD);
case 2 -> { case 2 -> {
mobilesMap.computeIfAbsent(tmp.get(0), k -> new ArrayList<>()).add(gBaseJJD); 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<RiskModelTaskClue> toUpdate = new ArrayList<>();
List<String> deleteIdCards = new ArrayList<>(); List<String> deleteIdCards = new ArrayList<>();
for (RiskModelTaskClue clue : oldList) { for (RiskModelTaskClue clue : oldList) {
if(clue.getEventTime().isBefore(limit)) { if (clue.getEventTime().isBefore(limit)) {
RiskModelTaskClue update = new RiskModelTaskClue(); RiskModelTaskClue update = new RiskModelTaskClue();
update.setId(update.getId()); update.setId(update.getId());
update.setDel(1); update.setDel(1);
@ -787,7 +837,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
} }
} }
if(!mobileContinue) { if (!mobileContinue) {
continue; continue;
} }
} }
@ -800,7 +850,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
List<String> tmp = Arrays.stream(mobile.split(",")).toList(); List<String> tmp = Arrays.stream(mobile.split(",")).toList();
switch (tmp.size()) { switch (tmp.size()) {
case 0 -> {} case 0 -> {
}
case 1 -> mobilesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD); case 1 -> mobilesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD);
case 2 -> { case 2 -> {
mobilesMap.computeIfAbsent(tmp.get(0), k -> new ArrayList<>()).add(gBaseJJD); 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<RiskModelTaskClue> toUpdate = new ArrayList<>();
List<String> deleteIdCards = new ArrayList<>(); List<String> deleteIdCards = new ArrayList<>();
for (RiskModelTaskClue clue : oldList) { for (RiskModelTaskClue clue : oldList) {
if(clue.getEventTime().isBefore(limit)) { if (clue.getEventTime().isBefore(limit)) {
RiskModelTaskClue update = new RiskModelTaskClue(); RiskModelTaskClue update = new RiskModelTaskClue();
update.setId(update.getId()); update.setId(update.getId());
update.setDel(1); update.setDel(1);
@ -860,12 +911,12 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
if (idCard.isEmpty()) { if (idCard.isEmpty()) {
idCard = PatternUtil.takeIdCard(gBaseJJD.getBjnr()); idCard = PatternUtil.takeIdCard(gBaseJJD.getBjnr());
} }
if(!idCard.isEmpty()) { if (!idCard.isEmpty()) {
List<String> tmp = Arrays.stream(idCard.split(",")).toList(); List<String> tmp = Arrays.stream(idCard.split(",")).toList();
// 年龄22岁以下才算 // 年龄22岁以下才算
for (String s : tmp) { for (String s : tmp) {
Integer age = IdCodeUtil.idCard2Age(s, today); Integer age = IdCodeUtil.idCard2Age(s, today);
if(age != null && age <= 22) { if (age != null && age <= 22) {
idCodesMap.computeIfAbsent(s, k -> new ArrayList<>()).add(gBaseJJD); idCodesMap.computeIfAbsent(s, k -> new ArrayList<>()).add(gBaseJJD);
} }
} }
@ -875,13 +926,14 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
if (idCard.isEmpty()) { if (idCard.isEmpty()) {
mobile = PatternUtil.takeMobile(gBaseJJD.getBjnr()); mobile = PatternUtil.takeMobile(gBaseJJD.getBjnr());
} }
if(idCard.isEmpty()) { if (idCard.isEmpty()) {
continue; continue;
} }
mobiles.addAll(Arrays.stream(mobile.split(",")).toList()); mobiles.addAll(Arrays.stream(mobile.split(",")).toList());
others.add(gBaseJJD); others.add(gBaseJJD);
} }
if (!mobiles.isEmpty()) {
List<GBaseSYRKXX> xxList = gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>() List<GBaseSYRKXX> xxList = gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getLxdh).in(GBaseSYRKXX::getLxdh, mobiles)); .select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getLxdh).in(GBaseSYRKXX::getLxdh, mobiles));
Map<String, List<GBaseSYRKXX>> mobileRkMap = xxList.stream().collect(Collectors.groupingBy(GBaseSYRKXX::getLxdh)); Map<String, List<GBaseSYRKXX>> mobileRkMap = xxList.stream().collect(Collectors.groupingBy(GBaseSYRKXX::getLxdh));
@ -900,26 +952,27 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
return age != null && age <= 22; return age != null && age <= 22;
}).toList()); }).toList());
} }
if(idCard.isEmpty()) { if (idCard.isEmpty()) {
continue; continue;
} }
for (String s : idCard) { for (String s : idCard) {
idCodesMap.computeIfAbsent(s, k -> new ArrayList<>()).add(other); 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)); Map<String, List<RiskModelTaskClue>> personMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode));
List<RiskModelTaskClue> toInsert = new ArrayList<>(); List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (RiskPersonal person : domain.getPersons()) { 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(); jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).toList();
if(jjdList == null) { if (jjdList == null) {
continue; continue;
} }
List<RiskModelTaskClue> olds = Optional.ofNullable(personMap.get(person.getIdCode())).orElse(new ArrayList<>()); 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)); Map<String, RiskModelTaskClue> oldMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val));
for (GBaseJJD jjd : jjdList) { for (GBaseJJD jjd : jjdList) {
if(oldMap.get(BhUtil.jjdBh(jjd.getJjdbh())) != null) { if (oldMap.get(BhUtil.jjdBh(jjd.getJjdbh())) != null) {
continue; continue;
} }
ClueData data = ClueData.builder() 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>> findTargetJJD(List<GBaseJJD> jjdList) {
Map<String, List<GBaseJJD>> fatherIdCodeMap = new WeakHashMap<>(); 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); case 1 -> fatherIdCodeMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD);
default -> fatherIdCodeMap.computeIfAbsent(findSmallOne(tmp), k -> new ArrayList<>()).add(gBaseJJD); default -> fatherIdCodeMap.computeIfAbsent(findSmallOne(tmp), k -> new ArrayList<>()).add(gBaseJJD);
} }
if(!continueMobile) { if (!continueMobile) {
continue; continue;
} }
} }
@ -1019,6 +1136,9 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
others.add(gBaseJJD); others.add(gBaseJJD);
} }
} }
if (mobiles.isEmpty()) {
return fatherIdCodeMap;
}
List<GBaseSYRKXX> xxList = gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>() List<GBaseSYRKXX> xxList = gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.select(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getLxdh).in(GBaseSYRKXX::getLxdh, mobiles)); .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<>()); List<GBaseSYRKXX> arr = Optional.ofNullable(mobileRkMap.get(s)).orElse(new ArrayList<>());
idCard.addAll(arr.stream().map(GBaseSYRKXX::getGmsfhm).filter(Objects::nonNull).toList()); idCard.addAll(arr.stream().map(GBaseSYRKXX::getGmsfhm).filter(Objects::nonNull).toList());
} }
if(idCard.isEmpty()) { if (idCard.isEmpty()) {
continue; continue;
} }
fatherIdCodeMap.computeIfAbsent(findSmallOne(idCard), k -> new ArrayList<>()).add(other); fatherIdCodeMap.computeIfAbsent(findSmallOne(idCard), k -> new ArrayList<>()).add(other);
@ -1043,30 +1163,30 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
return fatherIdCodeMap; return fatherIdCodeMap;
} }
List<RiskModelTaskClue> eachClue2Save(TaskParamDomain domain, RiskTask task,Map<String, List<GBaseJJD>> fatherIdCodeMap, String tag) { List<RiskModelTaskClue> eachClue2Save(TaskParamDomain domain, RiskTask task, Map<String, List<GBaseJJD>> fatherIdCodeMap, String tag) {
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)); Map<String, List<RiskModelTaskClue>> personMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode));
List<RiskModelTaskClue> toInsert = new ArrayList<>(); List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (RiskPersonal person : domain.getPersons()) { 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(); jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).toList();
if(jjdList == null) { if (jjdList == null) {
continue; continue;
} }
List<RiskModelTaskClue> olds = Optional.ofNullable(personMap.get(person.getIdCode())).orElse(new ArrayList<>()); 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)); Map<String, RiskModelTaskClue> oldMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val));
for (GBaseJJD jjd : jjdList) { for (GBaseJJD jjd : jjdList) {
if(oldMap.get(BhUtil.jjdBh(jjd.getJjdbh())) != null) { if (oldMap.get(BhUtil.jjdBh(jjd.getJjdbh())) != null) {
continue; continue;
} }
ClueData data = ClueData.builder() ClueData data = ClueData.builder()
.name(person.getName()) .name(person.getName())
.id(BhUtil.jjdBh(jjd.getJjdbh())) .id(BhUtil.jjdBh(jjd.getJjdbh()))
.idCode(person.getIdCode()) .idCode(person.getIdCode())
.tag("与"+tag+"存在矛盾") .tag("与" + tag + "存在矛盾")
.personId(person.getId()) .personId(person.getId())
.build(); .build();
StringBuilder sb = new StringBuilder("该人员与"+tag+"存在矛盾,接警单编号:" + jjd.getJjdbh()); StringBuilder sb = new StringBuilder("该人员与" + tag + "存在矛盾,接警单编号:" + jjd.getJjdbh());
if (jjd.getBjnr() != null && !jjd.getBjnr().isEmpty()) { if (jjd.getBjnr() != null && !jjd.getBjnr().isEmpty()) {
sb.append(",报警内容;" + jjd.getBjnr()); sb.append(",报警内容;" + jjd.getBjnr());
} }
@ -1091,13 +1211,13 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
String idCode = null; String idCode = null;
int age = 0; int age = 0;
for (String s : list) { for (String s : list) {
if(idCode == null){ if (idCode == null) {
idCode = s; idCode = s;
age = Optional.ofNullable(IdCodeUtil.idCard2Age(s, today)).orElse(0); age = Optional.ofNullable(IdCodeUtil.idCard2Age(s, today)).orElse(0);
continue; continue;
} }
int tmp = Optional.ofNullable(IdCodeUtil.idCard2Age(s, today)).orElse(0); int tmp = Optional.ofNullable(IdCodeUtil.idCard2Age(s, today)).orElse(0);
if(tmp < age) { if (tmp < age) {
age = tmp; age = tmp;
idCode = s; idCode = s;
} }
@ -1107,6 +1227,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
/** /**
* 手机要搜索的clue数据 * 手机要搜索的clue数据
*
* @param idCode 身份证Map * @param idCode 身份证Map
* @param mobile 手机号map * @param mobile 手机号map
* @param personal 人员 * @param personal 人员
@ -1115,7 +1236,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
* @param tag 标签 * @param tag 标签
* @return 要新增的clue * @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<>()); List<GBaseJJD> jjdList = Optional.ofNullable(idCode.get(personal.getIdCode())).orElse(new ArrayList<>());
jjdList.addAll(Optional.ofNullable(mobile.get(personal.getMobileNumber())).orElse(new ArrayList<>())); jjdList.addAll(Optional.ofNullable(mobile.get(personal.getMobileNumber())).orElse(new ArrayList<>()));
if (jjdList.isEmpty()) { if (jjdList.isEmpty()) {
@ -1136,7 +1257,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
.tag(tag) .tag(tag)
.personId(personal.getId()) .personId(personal.getId())
.build(); .build();
StringBuilder sb = new StringBuilder("该人员存在"+tag+"警情,接警单编号:" + gBaseJJD.getJjdbh()); StringBuilder sb = new StringBuilder("该人员存在" + tag + "警情,接警单编号:" + gBaseJJD.getJjdbh());
if (gBaseJJD.getBjnr() != null && !gBaseJJD.getBjnr().isEmpty()) { if (gBaseJJD.getBjnr() != null && !gBaseJJD.getBjnr().isEmpty()) {
sb.append(",报警内容;" + gBaseJJD.getBjnr()); 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.domain.TaskParamDomain;
import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX; 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.GBaseSHRXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX;
import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue;
@ -356,7 +357,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
} }
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
clueService.saveClues(toInsert, "B24是否被打击处理"); clueService.saveClues(toInsert, "B24被打击处理");
} }
taskRepository.updateTask(task.getId(), toInsert.size(), 0); taskRepository.updateTask(task.getId(), toInsert.size(), 0);
} }
@ -393,7 +394,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
continue; continue;
} }
WdpcGrjdZblx zblx = map.get(xx.getSxzmdm()); WdpcGrjdZblx zblx = map.get(xx.getSxzmdm());
if(zblx == null) { if (zblx == null) {
continue; continue;
} }
ClueData data = ClueData.builder() ClueData data = ClueData.builder()
@ -402,7 +403,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
.idCode(person.getIdCode()) .idCode(person.getIdCode())
.tag(zblx.getDmmc()) .tag(zblx.getDmmc())
.personId(person.getId()) .personId(person.getId())
.sourceData("该人员有犯罪前科,刑事处罚罪名:" + zblx.getDmmc() + ",案件编号:" + xx.getAjbh() + ",增加风险"+zblx.getScore().intValue()+"5分") .sourceData("该人员有犯罪前科,刑事处罚罪名:" + zblx.getDmmc() + ",案件编号:" + xx.getAjbh() + ",增加风险" + zblx.getScore().intValue() + "5分")
.build(); .build();
try { try {
data.setEventTime(xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); data.setEventTime(xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
@ -517,6 +518,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
log.info("实有人口进度{}", count); log.info("实有人口进度{}", count);
xxList.addAll(gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>() xxList.addAll(gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.select(GBaseSYRKXX::getZydm, GBaseSYRKXX::getGmsfhm) .select(GBaseSYRKXX::getZydm, GBaseSYRKXX::getGmsfhm)
.isNotNull(GBaseSYRKXX::getZydm)
.in(GBaseSYRKXX::getGmsfhm, srIdCode))); .in(GBaseSYRKXX::getGmsfhm, srIdCode)));
} }
@ -525,7 +527,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
String zydm = syMap.get(person.getIdCode()); String zydm = syMap.get(person.getIdCode());
if (zydm == null) continue; if (zydm == null) continue;
WdpcGrjdZblx zblx = wfzyMap.get(zydm); WdpcGrjdZblx zblx = wfzyMap.get(zydm);
if(zblx == null) continue; if (zblx == null) continue;
ClueData data = ClueData.builder() ClueData data = ClueData.builder()
.name(person.getName()) .name(person.getName())
.id("zy") .id("zy")
@ -552,11 +554,11 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
toInsert.add(createClue(task.getModelId(), zblx.getScore().intValue(), task.getId(), data)); toInsert.add(createClue(task.getModelId(), zblx.getScore().intValue(), task.getId(), data));
} }
if(!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
log.info("保存职业类型: {}", toInsert.size()); log.info("保存职业类型: {}", toInsert.size());
clueService.saveClues(toInsert, Default.IMPORT_IG); clueService.saveClues(toInsert, Default.IMPORT_IG);
} }
if(!toInsert2.isEmpty()) { if (!toInsert2.isEmpty()) {
log.info("保存无职业: {}", toInsert2.size()); log.info("保存无职业: {}", toInsert2.size());
clueService.saveClues(toInsert2, Default.IMPORT_IG); clueService.saveClues(toInsert2, Default.IMPORT_IG);
} }

Loading…
Cancel
Save