diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index 9a192bc..5477685 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -152,6 +152,7 @@ public class ApplicationEvent { pointService.syncMotherDie(initDomain(List.of(120))); pointService.syncChildNo(initDomain(List.of(121))); pointService.syncXIDU(initDomain(List.of(122))); + pointService.syncFiliation(initDomain(List.of(123))); // *********暂时不要********** // riskTaskService.caseModelTask(initDomain(List.of(35))); diff --git a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java index 6b1705e..244538e 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJJDMapper.java @@ -78,6 +78,13 @@ public interface GBaseJJDMapper extends BaseMapper { @Select(" select jjdbh, bjdh,bjrxm ,bjrzjhm, bjnr, cjqk, bjsj from dwd_asj_zhtx_jjd where (bjnr like '%家暴%' or cjqk like '%家暴%' or jqxzmc like '%家庭暴力%' or cjqk like '%家庭暴力%' or bjnr like '%家庭暴力%') and SUBSTR(jqxzdm, 1, 2) != '99' and bjsj >= #{start}") List selectHomeViolence(@Param("start")String start); + // 与子女关系 + @Select(" select jjdbh, bjrzjhm, bjnr,cjqk ,bjsj from dwd_asj_zhtx_jjd " + + "where (jqxzmc like '%纠纷%' or jqxzmc like '%矛盾%') " + + "AND (bjnr like '%孩子%' OR bjnr like '%儿子%' OR bjnr like '%女儿%' OR bjnr like '%子女%' OR cjqk like '%孩子%' OR cjqk like '%儿子%' OR cjqk like '%女儿%' OR cjqk like '%子女%') " + + "AND bjrzjhm is not null and bjsj > '2019-12-06 00:00:00' and substr(jqxzdm, 1, 2) != '99';") + List selectFiliation(List idNos); + @Select(" select jjdbh, bjdh,bjrxm ,bjrzjhm, bjnr, cjqk, bjsj from dwd_asj_zhtx_jjd " + " where jqxzmc like '%纠纷%' and SUBSTR(jqxzdm, 1, 2) != '99' and bjsj >= #{start} and " + " (bjnr like '%与父亲%' or cjqk like '%与父亲%' or " + diff --git a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java index 5adbc6a..376f651 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java @@ -128,4 +128,6 @@ public class Default { public static final String DRUG = "吸食毒品"; + public static final String FILIATION = "与子女关系"; + } diff --git a/src/main/java/com/biutag/supervisiondata/service/PointService.java b/src/main/java/com/biutag/supervisiondata/service/PointService.java index 4bd55cf..1bd6e76 100644 --- a/src/main/java/com/biutag/supervisiondata/service/PointService.java +++ b/src/main/java/com/biutag/supervisiondata/service/PointService.java @@ -101,4 +101,7 @@ public interface PointService { // 吸食毒品 void syncXIDU(TaskParamDomain domain); + + // 与子女关系 + void syncFiliation(TaskParamDomain domain); } diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java index 56da328..3d85fea 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -72,6 +72,8 @@ public class PointServiceImpl implements PointService { private final WdpcXdryRepository xdryRepository; + private final GBaseJJDRepository jjdRepository; + @Override public void personPullAndSave(LocalDateTime start, LocalDateTime end) { riskPersonalService.formatAndSave(getPersons(), Default.POINT_POEPLE); @@ -603,6 +605,60 @@ public class PointServiceImpl implements PointService { taskRepository.updateById(updateTask); } + @Override + public void syncFiliation(TaskParamDomain domain) { + RiskTask task = createTask(domain.getPersons().size(), 123); + taskRepository.save(task); + + Map oldMap = domain.getOldMap(task.getModelId(), true); + Map idCode = new HashMap<>(); + List list = new ArrayList<>(); + log.info("模型123开始查询"); + for (List idCard : domain.getIdCards()) { + list.addAll(jjdRepository.getBaseMapper().selectFiliation(idCard)); + } + log.info("模型123查询结果数:{}", list.size()); + Map personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal)); + List toInsert = new ArrayList<>(); + for (GBaseJJD domicileType : list) { + RiskPersonal personal = personalMap.get(domicileType.getBjrzjhm()); + if (personal == null) continue; + if (idCode.get(domicileType.getBjrzjhm()) != null) continue; + if (oldMap.get(domicileType.getBjrzjhm()) != null) continue; + + idCode.put(domicileType.getBjrzjhm(), 1); + String content = ""; + if (domicileType.getBjnr() != null) { + content = content + ",报警内容为“" + domicileType.getBjnr() + "”"; + } + if (domicileType.getCjqk() != null) { + content = content + ",处警情况为“" + domicileType.getCjqk() + "”"; + } + ClueData data = ClueData.builder() + .name(personal.getName()) + .id(personal.getId().toString()) + .idCode(personal.getIdCode()) + .tag("与子女关系") + .eventTime(LocalDateTime.now()) + .personId(personal.getId()) + .sourceData("发现该人员于" + getDateMinuteString(domicileType.getBjsj()) + + "报警,关联接警单单号" + domicileType.getJjdbh() + content + + ",增加风险分5分") + .build(); + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); + } + if (!toInsert.isEmpty()) { + modelTaskClueService.saveClues(toInsert, Default.FILIATION); + } + RiskTask updateTask = new RiskTask(); + updateTask.setId(task.getId()); + updateTask.setInsertSize(toInsert.size()); + updateTask.setUpdateSize(0); + updateTask.setState(1); + updateTask.setEndTime(LocalDateTime.now()); + taskRepository.updateById(updateTask); + } + @Override public void syncChildNo(TaskParamDomain domain) { RiskTask task = createTask(domain.getPersons().size(), 121); @@ -989,8 +1045,6 @@ public class PointServiceImpl implements PointService { taskRepository.updateById(updateTask); } - private final GBaseJJDRepository jjdRepository; - private final RiskTestRepository riskTestRepository; @Override @@ -1533,4 +1587,36 @@ public class PointServiceImpl implements PointService { } return " 无时间数据 "; } + + private static String getDateMinuteString(Object param) { + if (param != null) { + String time = null; + try { + time = String.valueOf(param); + LocalDateTime localDateTime = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss")); + return localDateTime.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH时mm分")); + } catch (Exception e) { + try { + time = String.valueOf(param); + LocalDateTime localDateTime = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S")); + return localDateTime.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH时mm分")); + } catch (Exception ex) { + try { + time = String.valueOf(param); + LocalDateTime localDateTime = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); + return localDateTime.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH时mm分")); + } catch (Exception exx) { + try { + time = String.valueOf(param); + LocalDateTime localDateTime = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + return localDateTime.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH时mm分")); + } catch (Exception exxx) { + log.info("日期转换异常{}", time, ex); + } + } + } + } + } + return " 无时间数据 "; + } }