Browse Source

修改人员标签和风险项的入库逻辑

master
kami 1 year ago
parent
commit
89bf4a3d03
  1. 15
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 7
      src/main/java/com/biutag/supervisiondata/mapper/mine/DataCaseVerifMapper.java
  3. 7
      src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetition12337Mapper.java
  4. 7
      src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetitionComplaintMapper.java
  5. 213
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java
  6. 102
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java
  7. 16
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

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

@ -113,23 +113,24 @@ public class ApplicationEvent {
// personalService.syncPerson(LocalDate.now()); // personalService.syncPerson(LocalDate.now());
// 32,33,34,39,41,51,53,43,63 // 32,33,34,39,41,51,53,43,63
// 36 60 61 62 44 45 48 52 59 64 // 36 60 61 62 44 45 48 52 59 64
// 76 74 73 72 71 70 69 67 66 65 55 56 57 58
// petitionService.petitionModelTask(initDomain(List.of(40))); // petitionService.petitionModelTask(initDomain(List.of(40)));
// riskTaskService.eduAndAreaModelTask(initDomain(List.of(34,41))); // riskTaskService.eduAndAreaModelTask(initDomain(List.of(34,41)));
// riskTaskService.infoModelTask(initDomain(List.of(32,33))); // riskTaskService.infoModelTask(initDomain(List.of(32,33)));
// marriageService.marriageModelTask(initDomain(List.of(39,51))); // marriageService.marriageModelTask(initDomain(List.of(39,51)));
// pointService.syncSecurity(initDomain(List.of(37))); // pointService.syncSecurity(initDomain(List.of(37)));
habitService.habitModelTask(LocalDateTime.of(2023, 12, 6, 0, 0, 0), initDomain(List.of(36,60,61,62))); // habitService.habitModelTask(LocalDateTime.of(2023, 12, 6, 0, 0, 0), initDomain(List.of(36,60,61,62)));
// pointService.syncCarUser(initDomain(List.of(53))); // pointService.syncCarUser(initDomain(List.of(53)));
// pointService.syncScore(initDomain(List.of(43))); // pointService.syncScore(initDomain(List.of(43)));
pointService.syncViolence(initDomain(List.of(44))); // pointService.syncViolence(initDomain(List.of(44)));
noControlService.syncNoControlData(initDomain(List.of(45))); // noControlService.syncNoControlData(initDomain(List.of(45)));
// 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(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end, initDomain(List.of(55,56,57,58))); // gBaseJJDService.pullPoliceInstance(LocalDateTime.of(2023, 12, 6, 0, 0, 0), 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)));
// gBaseJJDService.syncHomeViolence(initDomain(List.of(65,66))); // gBaseJJDService.syncHomeViolence(initDomain(List.of(65,66)));
// pointService.syncPointType(initDomain(List.of(67))); // pointService.syncPointType(initDomain(List.of(67)));
// gBaseSHRWFRService.hadWork(initDomain(List.of(68))); // gBaseSHRWFRService.hadWork(initDomain(List.of(68)));

7
src/main/java/com/biutag/supervisiondata/mapper/mine/DataCaseVerifMapper.java

@ -10,9 +10,8 @@ import org.apache.ibatis.annotations.Select;
import java.util.List; import java.util.List;
public interface DataCaseVerifMapper extends BaseMapper<DataCaseVerif> { public interface DataCaseVerifMapper extends BaseMapper<DataCaseVerif> {
@Select(" select a.origin_id as id, b.name as name,b.id_code as idCode,b.mobile_number as mobile, a.third_depart_id as departId, a.third_depart_name as departName, a.discovery_time as eventTime, a.thing_desc as content " + @Select(" select originId as id, responder_phone as mobile, third_depart_id as departId, third_depart_name as departName, discovery_time as eventTime, thing_desc as content " +
" from data_case_verif as a " + " from data_case_verif where responder_phone in (select mobile_number from risk_personal where del = 0) " +
" INNER join risk_personal as b on a.responder_phone = b.mobile_number and a.responder_name = b.name" + " and discovery_time >= #{time}")
" where a.discovery_time >= #{time}")
List<PetitionData> selectRiskPerson(@Param("time")String time); List<PetitionData> selectRiskPerson(@Param("time")String time);
} }

7
src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetition12337Mapper.java

@ -10,10 +10,9 @@ import org.apache.ibatis.annotations.Select;
import java.util.List; import java.util.List;
public interface DataPetition12337Mapper extends BaseMapper<DataPetition12337> { public interface DataPetition12337Mapper extends BaseMapper<DataPetition12337> {
@Select(" select a.only_id as id, b.name as name,b.id_code as idCode,b.mobile_number as mobile, a.third_depart_id as departId, a.third_depart_name as departName, a.discover_time as eventTime, a.review_des as content " + @Select(" select only_id as id, id_code as idCode, third_depart_id as departId, third_depart_name as departName, discover_time as eventTime, review_des as content " +
" from data_petition_12337 as a " + " from data_petition_12337 where id_code in (select id_code from risk_personal where del = 0 ) " +
" INNER join risk_personal as b on a.id_code = b.id_code " + " and discover_time >= #{time}")
" where a.discover_time >= #{time}")
List<PetitionData> selectRiskPerson(@Param("time")String time); List<PetitionData> selectRiskPerson(@Param("time")String time);
} }

7
src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetitionComplaintMapper.java

@ -9,9 +9,8 @@ import org.apache.ibatis.annotations.Select;
import java.util.List; import java.util.List;
public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComplaint> { public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComplaint> {
@Select(" select a.origin_id as id,b.name as name,b.id_code as idCode,b.mobile_number as mobile, a.third_depart_id as departId, a.third_depart_name as departName, a.discovery_time as eventTime, a.thing_desc as content " + @Select(" select origin_id as id, responder_id_code as idCode, third_depart_id as departId, third_depart_name as departName, discovery_time as eventTime, thing_desc as content " +
" from data_petition_complaint as a " + " from data_petition_complaint where responder_id_code in (select id_code from risk_personal where del = 0) " +
" INNER join risk_personal as b on a.responder_id_code = b.id_code " + " and discovery_time >= #{time}")
" where a.discovery_time >= #{time}")
List<PetitionData> selectRiskPerson(@Param("time")String time); List<PetitionData> selectRiskPerson(@Param("time")String time);
} }

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

@ -306,10 +306,10 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
CompletableFutureUtil.runSyncObject(() -> { CompletableFutureUtil.runSyncObject(() -> {
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectRevenge(startTime, endTime); List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectRevenge(startTime, endTime);
RiskTask task = taskRepository.create(jjdList.size(), 58); RiskTask task = taskRepository.create(jjdList.size(), 58);
List<RiskModelTaskClue> list =collectJJD(task, "表达报复社会", jjdList, domain); List<RiskModelTaskClue> list = collectJJD(task, "表达报复社会", jjdList, domain);
if (!list.isEmpty()) { if (!list.isEmpty()) {
log.info("保存复仇者联盟:{}", list.size()); log.info("保存复仇者联盟:{}", list.size());
clueService.saveClues(list, "表达报复社会"); clueService.saveClues(list, "B83表达报复社会");
} }
taskRepository.updateTask(task.getId(), list.size(), 0); taskRepository.updateTask(task.getId(), list.size(), 0);
}), }),
@ -319,7 +319,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<RiskModelTaskClue> list = collectJJD(task, "表达厌世情绪", jjdList, domain); List<RiskModelTaskClue> list = collectJJD(task, "表达厌世情绪", jjdList, domain);
if (!list.isEmpty()) { if (!list.isEmpty()) {
log.info("厌世强者:{}", list.size()); log.info("厌世强者:{}", list.size());
clueService.saveClues(list, "表达厌世情绪"); clueService.saveClues(list, "B80表达厌世情绪");
} }
taskRepository.updateTask(task.getId(), list.size(), 0); taskRepository.updateTask(task.getId(), list.size(), 0);
}), }),
@ -329,7 +329,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<RiskModelTaskClue> list = collectJJD(task, "表达遭受不公", jjdList, domain); List<RiskModelTaskClue> list = collectJJD(task, "表达遭受不公", jjdList, domain);
if (!list.isEmpty()) { if (!list.isEmpty()) {
log.info("我命由我不由天:{}", list.size()); log.info("我命由我不由天:{}", list.size());
clueService.saveClues(list, "表达遭受不公"); clueService.saveClues(list, "B82表达遭受不公");
} }
taskRepository.updateTask(task.getId(), list.size(), 0); taskRepository.updateTask(task.getId(), list.size(), 0);
}), }),
@ -339,7 +339,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<RiskModelTaskClue> list = collectJJD(task, "尝试自杀", jjdList, domain); List<RiskModelTaskClue> list = collectJJD(task, "尝试自杀", jjdList, domain);
if (!list.isEmpty()) { if (!list.isEmpty()) {
log.info("毁灭吧:{}", list.size()); log.info("毁灭吧:{}", list.size());
clueService.saveClues(list, "尝试自杀"); clueService.saveClues(list, "B81尝试自杀");
} }
taskRepository.updateTask(task.getId(), list.size(), 0); taskRepository.updateTask(task.getId(), list.size(), 0);
}) })
@ -414,17 +414,17 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).toList(); jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).toList();
List<RiskModelTaskClue> olds = personOldMap.get(person.getIdCode()); List<RiskModelTaskClue> olds = personOldMap.get(person.getIdCode());
if(olds != null) { if (olds != null) {
// 是否类型只有一个 // 是否类型只有一个
continue; continue;
} }
LocalDateTime eventTime = null; LocalDateTime eventTime = null;
StringBuilder sb = new StringBuilder("该人员存在"+jjdList.size()+"起平台涉警事件警情,相关警情接警单编号为:"); StringBuilder sb = new StringBuilder("该人员存在" + jjdList.size() + "起平台涉警事件警情,相关警情接警单编号为:");
for (GBaseJJD gBaseJJD : jjdList) { for (GBaseJJD gBaseJJD : jjdList) {
sb.append(gBaseJJD.getJjdbh()).append(","); sb.append(gBaseJJD.getJjdbh()).append(",");
try { try {
LocalDateTime tmp = gBaseJJD.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); LocalDateTime tmp = gBaseJJD.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
if(eventTime == null) { if (eventTime == null) {
eventTime = tmp; eventTime = tmp;
continue; continue;
} }
@ -440,10 +440,10 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
.id("ptsjsj") .id("ptsjsj")
.idCode(person.getIdCode()) .idCode(person.getIdCode())
.tags(List.of("平台涉警事件")) .tags(List.of("平台涉警事件"))
.sourceData(sb.substring(0, sb.length()-1)) .sourceData(sb.substring(0, sb.length() - 1))
.eventTime(Optional.ofNullable(eventTime).orElse(LocalDateTime.now())) .eventTime(Optional.ofNullable(eventTime).orElse(LocalDateTime.now()))
.personId(person.getId()) .personId(person.getId())
.score(Math.min(5,jjdList.size())) .score(Math.min(5, jjdList.size()))
.build(); .build();
toInsert.add(DataUtil.createClueData(task, data)); toInsert.add(DataUtil.createClueData(task, data));
} }
@ -563,14 +563,14 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
log.info("被家暴:{} | {}", toInsert.size(), toUpdate.size()); log.info("被家暴:{} | {}", toInsert.size(), toUpdate.size());
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
clueService.saveClues(toInsert, Default.HOME_VIOLENCE); clueService.saveClues(toInsert, "B53被他人家暴");
} }
if (!toUpdate.isEmpty()) { if (!toUpdate.isEmpty()) {
clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, "被家暴"); clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, "被家暴");
} }
log.info("家暴:{} | {}", toInsert2.size(), toUpdate2.size()); log.info("家暴:{} | {}", toInsert2.size(), toUpdate2.size());
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
clueService.saveClues(toInsert2, Default.HOME_VIOLENCE); clueService.saveClues(toInsert2, "B52对他人家暴");
} }
if (!toUpdate2.isEmpty()) { if (!toUpdate2.isEmpty()) {
clueService.deleteCluesAndDeleteTag(toUpdate2, deleteIdCards, "家暴"); clueService.deleteCluesAndDeleteTag(toUpdate2, deleteIdCards, "家暴");
@ -602,11 +602,11 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
log.info("父亲矛盾增加 {}", toInsert.size()); log.info("父亲矛盾增加 {}", toInsert.size());
clueService.saveClues(toInsert, "家庭、人际、两性关系"); clueService.saveClues(toInsert, "B48与父亲关系");
} }
if (!toInsert2.isEmpty()) { if (!toInsert2.isEmpty()) {
log.info("母亲矛盾增加 {}", toInsert2.size()); log.info("母亲矛盾增加 {}", toInsert2.size());
clueService.saveClues(toInsert2, "家庭、人际、两性关系"); clueService.saveClues(toInsert2, "B49与母亲关系");
} }
taskRepository.updateTask(task.getId(), toInsert.size(), 0); taskRepository.updateTask(task.getId(), toInsert.size(), 0);
taskRepository.updateTask(task2.getId(), toInsert2.size(), 0); taskRepository.updateTask(task2.getId(), toInsert2.size(), 0);
@ -693,7 +693,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
log.info("恋爱创伤:{} | {}", toInsert.size(), toUpdate.size()); log.info("恋爱创伤:{} | {}", toInsert.size(), toUpdate.size());
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
clueService.saveClues(toInsert, "较大影响负性事件"); clueService.saveClues(toInsert, "B68个人恋爱创伤");
} }
if (!toUpdate.isEmpty()) { if (!toUpdate.isEmpty()) {
clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, "个人恋爱创伤"); clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, "个人恋爱创伤");
@ -782,7 +782,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
log.info("与配偶关系不和:{} | {}", toInsert.size(), toUpdate.size()); log.info("与配偶关系不和:{} | {}", toInsert.size(), toUpdate.size());
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
clueService.saveClues(toInsert, Default.HOME_VIOLENCE); clueService.saveClues(toInsert, "B55与配偶关系");
} }
if (!toUpdate.isEmpty()) { if (!toUpdate.isEmpty()) {
clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, "与配偶关系不和"); clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, "与配偶关系不和");
@ -871,7 +871,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
log.info("邻里和同事:{} | {}", toInsert.size(), toUpdate.size()); log.info("邻里和同事:{} | {}", toInsert.size(), toUpdate.size());
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
clueService.saveClues(toInsert, Default.HOME_VIOLENCE); clueService.saveClues(toInsert, "B55同事与邻居关系");
} }
if (!toUpdate.isEmpty()) { if (!toUpdate.isEmpty()) {
clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, "与邻居或同事纠纷"); clueService.deleteCluesAndDeleteTag(toUpdate, deleteIdCards, "与邻居或同事纠纷");
@ -955,38 +955,41 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
if (jjdList == null) { if (jjdList == null) {
continue; continue;
} }
List<RiskModelTaskClue> olds = Optional.ofNullable(personMap.get(person.getIdCode())).orElse(new ArrayList<>()); List<RiskModelTaskClue> olds = personMap.get(person.getIdCode());
Map<String, RiskModelTaskClue> oldMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val)); if (olds != null) {
continue;
}
StringBuilder sb = new StringBuilder("该人员存在" + jjdList.size() + "起被欺凌警情,接警单编号:");
LocalDateTime time = null;
for (GBaseJJD jjd : jjdList) { for (GBaseJJD jjd : jjdList) {
if (oldMap.get(BhUtil.jjdBh(jjd.getJjdbh())) != null) { sb.append(jjd.getJjdbh()).append(",");
continue;
}
ClueData data = ClueData.builder()
.name(person.getName())
.id(BhUtil.jjdBh(jjd.getJjdbh()))
.idCode(person.getIdCode())
.tag("存在被欺凌警情")
.personId(person.getId())
.build();
StringBuilder sb = new StringBuilder("存在被欺凌警情,接警单编号:" + jjd.getJjdbh());
if (jjd.getBjnr() != null && !jjd.getBjnr().isEmpty()) {
sb.append(",报警内容;" + jjd.getBjnr());
}
if (jjd.getCjqk() != null && !jjd.getCjqk().isEmpty()) {
sb.append(",处警情况;" + jjd.getCjqk());
}
data.setSourceData(sb.toString());
try { try {
data.setEventTime(jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); LocalDateTime tmp = jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
if (time == null) {
time = tmp;
continue;
}
if (time.isBefore(tmp)) {
time = tmp;
}
} catch (Exception ignored) { } catch (Exception ignored) {
data.setEventTime(LocalDateTime.now());
} }
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data));
} }
ClueData data = ClueData.builder()
.name(person.getName())
.id("")
.idCode(person.getIdCode())
.tags(List.of("被欺凌"))
.score(Math.min(jjdList.size(), 5))
.sourceData(sb.substring(0, sb.length() - 1))
.personId(person.getId())
.eventTime(time)
.build();
toInsert.add(DataUtil.createClueData(task, data));
} }
log.info("欺凌:{}", toInsert.size()); log.info("欺凌:{}", toInsert.size());
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
clueService.saveClues(toInsert, Default.HOME_VIOLENCE); clueService.saveClues(toInsert, "B73遭遇暴力欺凌");
} }
taskRepository.updateTask(task.getId(), toInsert.size(), 0); taskRepository.updateTask(task.getId(), toInsert.size(), 0);
} }
@ -1052,7 +1055,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
List<RiskModelTaskClue> toInsert = new ArrayList<>(); List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (RiskPersonal person : domain.getPersons()) { for (RiskPersonal person : domain.getPersons()) {
if(manMap.get(person.getIdCode()) != null) { if (manMap.get(person.getIdCode()) != null) {
// 非其他纠纷 // 非其他纠纷
continue; continue;
} }
@ -1069,10 +1072,10 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
/** /**
* 遍历接警单 * 遍历接警单
* *
* @param task 任务 * @param task 任务
* @param tag 标签 * @param tag 标签
* @param result 接警单数据 * @param result 接警单数据
* @param domain domain * @param domain domain
* @return 要新增的结果 * @return 要新增的结果
*/ */
List<RiskModelTaskClue> collectJJD(RiskTask task, String tag, List<GBaseJJD> result, TaskParamDomain domain) { List<RiskModelTaskClue> collectJJD(RiskTask task, String tag, List<GBaseJJD> result, TaskParamDomain domain) {
@ -1109,8 +1112,7 @@ 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);
default -> { default -> {
for (int i = 1; i < tmp.size(); i++) { for (int i = 1; i < tmp.size(); i++) {
@ -1201,37 +1203,39 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
for (RiskPersonal person : domain.getPersons()) { for (RiskPersonal person : domain.getPersons()) {
List<GBaseJJD> jjdList = Optional.ofNullable(fatherIdCodeMap.get(person.getIdCode())).orElse(new ArrayList<>()); 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 || jjdList.isEmpty()) {
continue;
}
List<RiskModelTaskClue> olds = personMap.get(person.getIdCode());
if (olds != null) {
continue; continue;
} }
List<RiskModelTaskClue> olds = Optional.ofNullable(personMap.get(person.getIdCode())).orElse(new ArrayList<>()); LocalDateTime time = null;
Map<String, RiskModelTaskClue> oldMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val)); StringBuilder sb = new StringBuilder("该人员与" + tag + "存在" + jjdList.size() + "起矛盾,接警单编号:");
for (GBaseJJD jjd : jjdList) { for (GBaseJJD jjd : jjdList) {
if (oldMap.get(BhUtil.jjdBh(jjd.getJjdbh())) != null) { sb.append(jjd.getJjdbh()).append(",");
continue;
}
ClueData data = ClueData.builder()
.name(person.getName())
.id(BhUtil.jjdBh(jjd.getJjdbh()))
.idCode(person.getIdCode())
.tag("与" + tag + "存在矛盾")
.personId(person.getId())
.build();
StringBuilder sb = new StringBuilder("该人员与" + tag + "存在矛盾,接警单编号:" + jjd.getJjdbh());
if (jjd.getBjnr() != null && !jjd.getBjnr().isEmpty()) {
sb.append(",报警内容;" + jjd.getBjnr());
}
if (jjd.getCjqk() != null && !jjd.getCjqk().isEmpty()) {
sb.append(",处警情况;" + jjd.getCjqk());
}
data.setSourceData(sb.toString());
try { try {
data.setEventTime(jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); LocalDateTime tmp = jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
if (time == null) {
time = tmp;
continue;
}
if (time.isBefore(tmp)) {
time = tmp;
}
} catch (Exception ignored) { } catch (Exception ignored) {
data.setEventTime(LocalDateTime.now());
} }
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data));
} }
toInsert.add(DataUtil.createClueData(task, ClueData.builder()
.name(person.getName())
.id("")
.idCode(person.getIdCode())
.tags(List.of("与" + tag + "存在矛盾"))
.eventTime(time)
.score(Math.min(5, jjdList.size()))
.sourceData(sb.substring(0, sb.length() - 1))
.personId(person.getId())
.build()));
} }
return toInsert; return toInsert;
} }
@ -1273,35 +1277,38 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
return new ArrayList<>(); return new ArrayList<>();
} }
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).toList(); jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).toList();
List<RiskModelTaskClue> olds = Optional.ofNullable(personOldMap.get(personal.getIdCode())).orElse(new ArrayList<>()); List<RiskModelTaskClue> olds = personOldMap.get(personal.getIdCode());
Map<String, RiskModelTaskClue> oldMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val)); if (olds != null) {
return new ArrayList<>();
}
List<RiskModelTaskClue> toInsert = new ArrayList<>(); List<RiskModelTaskClue> toInsert = new ArrayList<>();
StringBuilder sb = new StringBuilder("该人员存在" + jjdList.size() + "起" + tag + "警情,接警单编号:");
LocalDateTime time = null;
for (GBaseJJD gBaseJJD : jjdList) { for (GBaseJJD gBaseJJD : jjdList) {
if (oldMap.get(BhUtil.jjdBh(gBaseJJD.getJjdbh())) != null) { sb.append(gBaseJJD.getJjdbh()).append(",");
continue;
}
ClueData data = ClueData.builder()
.name(personal.getName())
.id(BhUtil.jjdBh(gBaseJJD.getJjdbh()))
.idCode(personal.getIdCode())
.tag(tag)
.personId(personal.getId())
.build();
StringBuilder sb = new StringBuilder("该人员存在" + tag + "警情,接警单编号:" + gBaseJJD.getJjdbh());
if (gBaseJJD.getBjnr() != null && !gBaseJJD.getBjnr().isEmpty()) {
sb.append(",报警内容;" + gBaseJJD.getBjnr());
}
if (gBaseJJD.getCjqk() != null && !gBaseJJD.getCjqk().isEmpty()) {
sb.append(",处警情况;" + gBaseJJD.getCjqk());
}
data.setSourceData(sb.toString());
try { try {
data.setEventTime(gBaseJJD.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); LocalDateTime tmp = gBaseJJD.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
if (time == null) {
time = tmp;
continue;
}
if (time.isBefore(tmp)) {
time = tmp;
}
} catch (Exception ignored) { } catch (Exception ignored) {
data.setEventTime(LocalDateTime.now());
} }
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data));
} }
toInsert.add(DataUtil.createClueData(task, ClueData.builder()
.name(personal.getName())
.id("")
.idCode(personal.getIdCode())
.tags(List.of(tag))
.personId(personal.getId())
.eventTime(time)
.sourceData(sb.substring(0, sb.length() - 1))
.score(Math.min(jjdList.size(), 5))
.build()));
return toInsert; return toInsert;
} }
@ -1408,20 +1415,4 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
} }
return tmp; return tmp;
} }
RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data) {
RiskModelTaskClue clue = new RiskModelTaskClue();
clue.setModelId(modelId);
clue.setScore(score);
clue.setName(data.getName());
clue.setIdCode(data.getIdCode());
clue.setTaskId(taskId);
clue.setData(data.getSourceData());
clue.setEventTime(data.getEventTime());
clue.setCreateTime(LocalDateTime.now());
clue.setUpdateTime(LocalDateTime.now());
clue.setCaseIds(data.getId());
clue.setRiskReason(data.getTag());
return clue;
}
} }

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

@ -2,12 +2,14 @@ package com.biutag.supervisiondata.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil;
import com.biutag.supervisiondata.common.utils.StreamUtil;
import com.biutag.supervisiondata.pojo.ClueData; import com.biutag.supervisiondata.pojo.ClueData;
import com.biutag.supervisiondata.pojo.constants.Default; import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.database.PointOrg; 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.domain.WFSHPerson; import com.biutag.supervisiondata.pojo.domain.WFSHPerson;
import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD;
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;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal;
@ -24,6 +26,7 @@ import com.biutag.supervisiondata.util.DataUtil;
import com.biutag.supervisiondata.util.IdCodeUtil; import com.biutag.supervisiondata.util.IdCodeUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cglib.core.Local;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate; import java.time.LocalDate;
@ -162,38 +165,38 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
} }
List<RiskModelTaskClue> olds = personOldMap.get(person.getIdCode()); List<RiskModelTaskClue> olds = personOldMap.get(person.getIdCode());
// 是否只有一个 // 是否只有一个
if(olds!=null) { if (olds != null) {
continue; continue;
} }
StringBuilder zm = new StringBuilder(); StringBuilder zm = new StringBuilder();
StringBuilder aj = new StringBuilder(); StringBuilder aj = new StringBuilder();
LocalDateTime eventTime = null; LocalDateTime eventTime = null;
for (GBaseWFRXX xx : wfxxList) { for (GBaseWFRXX xx : wfxxList) {
if(zm.indexOf(xx.getSxzm()+",") == -1) { if (zm.indexOf(xx.getSxzm() + ",") == -1) {
zm.append(xx.getSxzm()).append(","); zm.append(xx.getSxzm()).append(",");
} }
if(aj.indexOf(xx.getAjbh()+",") == -1) { if (aj.indexOf(xx.getAjbh() + ",") == -1) {
aj.append(xx.getAjbh()).append(","); aj.append(xx.getAjbh()).append(",");
} }
try { try {
LocalDateTime tmp = xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); LocalDateTime tmp = xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
if(eventTime == null) { if (eventTime == null) {
eventTime = tmp; eventTime = tmp;
continue; continue;
} }
if(eventTime.isBefore(tmp)) { if (eventTime.isBefore(tmp)) {
eventTime = tmp; eventTime = tmp;
} }
} catch (Exception ignored) { } catch (Exception ignored) {
} }
} }
StringBuilder tmp = new StringBuilder("该人员"); StringBuilder tmp = new StringBuilder("该人员");
if(zm.length() > 0) { if (zm.length() > 0) {
tmp.append("因:").append(zm.substring(0, zm.length()-1)); tmp.append("因:").append(zm.substring(0, zm.length() - 1));
} }
tmp.append(" 已被打击处理过"); tmp.append(" 已被打击处理过");
if(aj.length() > 0) { if (aj.length() > 0) {
tmp.append("具体案件编号:").append(aj.substring(0, aj.length()-1)); tmp.append("具体案件编号:").append(aj.substring(0, aj.length() - 1));
} }
toInsert.add(DataUtil.createClueData(task, ClueData.builder() toInsert.add(DataUtil.createClueData(task, ClueData.builder()
// 案件编号、接警单编号之类 // 案件编号、接警单编号之类
@ -238,33 +241,54 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
if (wfxxList == null) { if (wfxxList == null) {
continue; continue;
} }
List<RiskModelTaskClue> olds = Optional.ofNullable(personOldMap.get(person.getIdCode())).orElse(new ArrayList<>()); List<RiskModelTaskClue> olds = personOldMap.get(person.getIdCode());
Map<String, RiskModelTaskClue> oldMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val)); if (olds != null) continue;
List<WdpcGrjdZblx> zblxList = new ArrayList<>();
LocalDateTime time = null;
StringBuilder sb = new StringBuilder();
for (GBaseWFRXX xx : wfxxList) { for (GBaseWFRXX xx : wfxxList) {
if (oldMap.get(BhUtil.ajBh(xx.getAjbh())) != null) {
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() zblxList.add(zblx);
.name(person.getName()) if (sb.indexOf(xx.getAjbh()) != -1) {
.id(BhUtil.ajBh(xx.getAjbh())) continue;
.idCode(person.getIdCode()) }
.tag(zblx.getDmmc()) sb.append(xx.getAjbh()).append(",");
.personId(person.getId())
.sourceData("该人员有犯罪前科,刑事处罚罪名:" + zblx.getDmmc() + ",案件编号:" + xx.getAjbh() )
.build();
try { try {
data.setEventTime(xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); LocalDateTime tmp = xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
if(time == null) {
time = tmp;
continue;
}
if(time.isBefore(tmp)) {
time = tmp;
}
} catch (Exception ignored) { } catch (Exception ignored) {
data.setEventTime(LocalDateTime.now());
} }
toInsert.add(createClue(task.getModelId(), zblx.getScore().intValue(), task.getId(), data));
} }
zblxList = zblxList.stream().filter(StreamUtil.distinctByKey(WdpcGrjdZblx::getDmmc)).toList();
List<String> tags = new ArrayList<>();
int score = 0;
StringBuilder zm = new StringBuilder();
for (WdpcGrjdZblx wdpcGrjdZblx : zblxList) {
tags.add(wdpcGrjdZblx.getDmmc());
score += wdpcGrjdZblx.getScore().intValue();
zm.append(wdpcGrjdZblx.getDmmc()).append(",");
}
ClueData data = ClueData.builder()
.name(person.getName())
.id("")
.idCode(person.getIdCode())
.tags(tags)
.score(Math.min(5, score))
.personId(person.getId())
.sourceData("发现该人员存在" + zblxList.size() + "起刑事处罚罪名:" + zm.substring(0, zm.length() - 1) + ",案件编号为:" + sb.substring(0, sb.length() - 1))
.eventTime(time)
.build();
toInsert.add(DataUtil.createClueData(task, data));
} }
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
clueService.saveClues(toInsert, "B27刑事处罚罪名"); clueService.saveClues(toInsert, "B27刑事处罚罪名");
} }
@ -324,9 +348,9 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
.personId(person.getId()) .personId(person.getId())
.build(); .build();
if (zblx.getScore() < 5.0) { if (zblx.getScore() < 5.0) {
data.setSourceData("该人员从事" + zblx.getDmmc() ); data.setSourceData("该人员从事" + zblx.getDmmc());
} else { } else {
data.setSourceData("该人员" + zblx.getDmmc() ); data.setSourceData("该人员" + zblx.getDmmc());
ClueData data2 = ClueData.builder() ClueData data2 = ClueData.builder()
.name(person.getName()) .name(person.getName())
.id("zy") .id("zy")
@ -388,24 +412,6 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
taskRepository.updateTask(task2.getId(), toInsert2.size(), 0); taskRepository.updateTask(task2.getId(), toInsert2.size(), 0);
} }
/**
* 多身份证对比名称
*
* @param infos 信息
* @param name 名称
* @return 正确信息
*/
GBaseSYRKXX compare(List<GBaseSYRKXX> infos, String name) {
GBaseSYRKXX info = null;
for (GBaseSYRKXX gBaseSYRKXX : infos) {
if (gBaseSYRKXX.getXm().equals(name)) {
info = gBaseSYRKXX;
break;
}
}
return info;
}
RiskPersonal createPerson(WFSHPerson person, GBaseSYRKXX xx, String tag) { RiskPersonal createPerson(WFSHPerson person, GBaseSYRKXX xx, String tag) {
RiskPersonal personal = new RiskPersonal(); RiskPersonal personal = new RiskPersonal();
personal.setIdCode(person.getIdCode()); personal.setIdCode(person.getIdCode());
@ -430,7 +436,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
} }
List<RiskPersonal> createInsertData(String tag, List<WFSHPerson> list, Map<String, WFSHPerson> tmpMap, Map<String, GBaseSYRKXX> idCodeMap, List<RiskPersonal> createInsertData(String tag, List<WFSHPerson> list, Map<String, WFSHPerson> tmpMap, Map<String, GBaseSYRKXX> idCodeMap,
Map<String, PointOrg> orgCodeMap, Map<String, PointOrg> orgIdMap, Map<String, SupExternalDepart> externalDepart) { Map<String, PointOrg> orgCodeMap, Map<String, PointOrg> orgIdMap, Map<String, SupExternalDepart> externalDepart) {
Map<String, SupExternalDepart> departMap = new WeakHashMap<>(); Map<String, SupExternalDepart> departMap = new WeakHashMap<>();
Map<String, Byte[]> exist = new WeakHashMap<>(); Map<String, Byte[]> exist = new WeakHashMap<>();
List<RiskPersonal> toInsert = new ArrayList<>(); List<RiskPersonal> toInsert = new ArrayList<>();
@ -450,7 +456,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
GBaseSYRKXX xx = idCodeMap.get(person.getIdCode()); GBaseSYRKXX xx = idCodeMap.get(person.getIdCode());
personal = createPerson(person, xx, tag); personal = createPerson(person, xx, tag);
personal.setControlDepartType(DepartType.HUMAN.getType()); personal.setControlDepartType(DepartType.HUMAN.getType());
if(xx != null) { if (xx != null) {
departId = xx.getSspcsdm(); departId = xx.getSspcsdm();
} }
} }

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

@ -160,6 +160,7 @@ public class PointServiceImpl implements PointService {
Map<String, List<RiskModelTaskClue>> personMap = olds.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); Map<String, List<RiskModelTaskClue>> personMap = olds.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode));
List<RiskModelTaskClue> toInsert = new ArrayList<>(); List<RiskModelTaskClue> toInsert = new ArrayList<>();
Map<String, List<ClueData>> mapPerson = new WeakHashMap<>(); Map<String, List<ClueData>> mapPerson = new WeakHashMap<>();
for (GBaseZDRY ry : list) { for (GBaseZDRY ry : list) {
RiskPersonal person = personalMap.get(ry.getSfzh()); RiskPersonal person = personalMap.get(ry.getSfzh());
if (person == null) { if (person == null) {
@ -169,12 +170,14 @@ public class PointServiceImpl implements PointService {
if (codes.isEmpty()) { if (codes.isEmpty()) {
continue; continue;
} }
List<RiskModelTaskClue> oldList = Optional.ofNullable(personMap.get(ry.getSfzh())).orElse(new ArrayList<>()); List<RiskModelTaskClue> oldList = personMap.get(ry.getSfzh());
Map<String, RiskModelTaskClue> oldClue = oldList.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val)); if(oldList != null) {
continue;
}
codes = codes.stream().distinct().toList(); codes = codes.stream().distinct().toList();
for (String index : codes) { for (String index : codes) {
WdpcGrjdZblx zblx = map.get(index); WdpcGrjdZblx zblx = map.get(index);
if (oldClue.get(index) != null || zblx == null) { if (zblx == null) {
continue; continue;
} }
ClueData data = ClueData.builder() ClueData data = ClueData.builder()
@ -199,15 +202,16 @@ public class PointServiceImpl implements PointService {
int score = 0; int score = 0;
List<String> tags = new ArrayList<>(); List<String> tags = new ArrayList<>();
for (ClueData clue : tmp) { for (ClueData clue : tmp) {
tags.add(clue.getTag());
sb.append(clue.getTag()).append(",");
score += clue.getScore();
if (tmpDateTime == null) { if (tmpDateTime == null) {
tmpDateTime = clue.getEventTime(); tmpDateTime = clue.getEventTime();
continue;
} }
if (tmpDateTime.isBefore(clue.getEventTime())) { if (tmpDateTime.isBefore(clue.getEventTime())) {
tmpDateTime = clue.getEventTime(); tmpDateTime = clue.getEventTime();
} }
tags.add(clue.getTag());
sb.append(clue.getTag()).append(",");
score += clue.getScore();
} }
toInsert.add(DataUtil.createClueData(task, ClueData.builder() toInsert.add(DataUtil.createClueData(task, ClueData.builder()
// 案件编号、接警单编号之类 // 案件编号、接警单编号之类

Loading…
Cancel
Save