From 70705d4d2bc510332e33ef98970a2b544d3fcf91 Mon Sep 17 00:00:00 2001 From: sjh Date: Thu, 12 Dec 2024 16:31:51 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B2=BE=E7=A5=9E=E7=96=BE=E7=97=85=E6=82=A3?= =?UTF-8?q?=E8=80=85=E9=A9=BE=E7=85=A7=E6=9C=AA=E6=B3=A8=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/ApplicationEvent.java | 1 + .../mapper/dwd/GBaseJszxxbMapper.java | 19 ++++ .../pojo/constants/Default.java | 2 + .../pojo/entity/dwd/GBaseJszxxb.java | 44 +++++++++ .../repository/GBaseJszxxbRepository.java | 15 +++ .../supervisiondata/service/PointService.java | 3 + .../service/impl/PointServiceImpl.java | 92 +++++++++++++++++++ 7 files changed, 176 insertions(+) create mode 100644 src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJszxxbMapper.java create mode 100644 src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJszxxb.java create mode 100644 src/main/java/com/biutag/supervisiondata/repository/GBaseJszxxbRepository.java diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index d55f3ff..e4451f8 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -164,6 +164,7 @@ public class ApplicationEvent { // pointService.syncIsSpecialPeople(initDomain(List.of(129))); // pointService.syncSpecialPeopleType(initDomain(List.of(130))); // pointService.syncParentsRelationship(initDomain(List.of(131))); + pointService.syncMentalDiseaseDriver(initDomain(List.of(132))); // *********暂时不要********** // riskTaskService.heightFight(initDomain(List.of(42))); // pointService.syncKillSelf(initDomain(List.of(46))); diff --git a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJszxxbMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJszxxbMapper.java new file mode 100644 index 0000000..f9f7758 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseJszxxbMapper.java @@ -0,0 +1,19 @@ +package com.biutag.supervisiondata.mapper.dwd; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJszxxb; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +public interface GBaseJszxxbMapper extends BaseMapper { + + @Select("") + List selectByIdNos(List idNos); + +} 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 b336dff..a97422a 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java @@ -145,4 +145,6 @@ public class Default { public static final String SPECIALPEOPLETYPE = "特殊人群类型"; public static final String PARENTSRELATIONSHIP = "父母关系状况"; + + public static final String MENTALDISEASEDRIVER = "精神疾病患者驾照未注销"; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJszxxb.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJszxxb.java new file mode 100644 index 0000000..348537f --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseJszxxb.java @@ -0,0 +1,44 @@ +package com.biutag.supervisiondata.pojo.entity.dwd; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 案件基本信息 + * @author kami on 2024-11-10 14:47:22 + * @version 0.0.1 + * @since 1.8 + */ +@Data +@TableName("dwd_ry_jtqbglpt_jszxxb") +public class GBaseJszxxb implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + /** + * 身份证号 + */ + @TableField("sfzmhm") + String sfzmhm; + /** + * 单位名 + */ + @TableField("jgmc") + String jgmc; + /** + * 有效期始 + */ + @TableField("yxqs") + Date yxqs; + /** + * 有效期止 + */ + @TableField("yxqz") + Date yxqz; + +} diff --git a/src/main/java/com/biutag/supervisiondata/repository/GBaseJszxxbRepository.java b/src/main/java/com/biutag/supervisiondata/repository/GBaseJszxxbRepository.java new file mode 100644 index 0000000..318d64c --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/repository/GBaseJszxxbRepository.java @@ -0,0 +1,15 @@ +package com.biutag.supervisiondata.repository; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervisiondata.mapper.dwd.GBaseJszxxbMapper; +import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJszxxb; +import org.springframework.stereotype.Service; + +/** + * @author kami on 2024-11-13 15:18:16 + * @version 0.0.1 + * @since 1.8 + */ +@Service +public class GBaseJszxxbRepository extends ServiceImpl { +} diff --git a/src/main/java/com/biutag/supervisiondata/service/PointService.java b/src/main/java/com/biutag/supervisiondata/service/PointService.java index 62b2a98..a8bbd90 100644 --- a/src/main/java/com/biutag/supervisiondata/service/PointService.java +++ b/src/main/java/com/biutag/supervisiondata/service/PointService.java @@ -128,4 +128,7 @@ public interface PointService { // 父母关系状况 void syncParentsRelationship(TaskParamDomain domain); + + // 精神疾病患者驾照未注销 + void syncMentalDiseaseDriver(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 55880db..470392d 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -91,6 +91,9 @@ public class PointServiceImpl implements PointService { private final ModelClueDataMapper modelClueDataMapper; + private final GBaseJszxxbRepository jszxxbRepository; + private final RiskModelTaskClueRepository riskModelTaskClueRepository; + @Override public void personPullAndSave(LocalDateTime start, LocalDateTime end) { riskPersonalService.formatAndSave(getPersons(), Default.POINT_POEPLE); @@ -969,6 +972,63 @@ public class PointServiceImpl implements PointService { taskRepository.updateById(updateTask); } + @Override + public void syncMentalDiseaseDriver(TaskParamDomain domain) { + RiskTask task = createTask(domain.getPersons().size(), 132); + taskRepository.save(task); + + Map oldMap = domain.getOldMap(task.getModelId(), true); + Map idCode = new HashMap<>(); + List mentalDiseaseIds = riskModelTaskClueRepository.list(new LambdaQueryWrapper().select(RiskModelTaskClue::getIdCode).eq(RiskModelTaskClue::getModelId, 59)).stream().map(RiskModelTaskClue::getIdCode).toList(); + log.info("模型132开始查询"); + List list = new ArrayList<>(); + // 切割 每次查10000条 + List> mentalDiseaseIdsParts = IntStream.range(0, (mentalDiseaseIds.size() + 9999) / 10000) + .mapToObj(i -> mentalDiseaseIds.subList(i * 10000, Math.min((i + 1) * 10000, mentalDiseaseIds.size()))) + .toList(); + + for (List mentalDiseaseIdsPart : mentalDiseaseIdsParts) { + list.addAll(jszxxbRepository.getBaseMapper().selectByIdNos(mentalDiseaseIdsPart)); + } + log.info("模型132查询结果数:{}", list.size()); + Map personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (old, newVal) -> newVal)); + List toInsert = new ArrayList<>(); + for (GBaseJszxxb domicileType : list) { + RiskPersonal personal = personalMap.get(domicileType.getSfzmhm()); + if (personal == null) continue; + if (idCode.get(domicileType.getSfzmhm()) != null) continue; + if (oldMap.get(domicileType.getSfzmhm()) != null) continue; + + idCode.put(domicileType.getSfzmhm(), 1); + String context = ""; + if (domicileType.getJgmc() != null) { + context = ",责任单位为" + domicileType.getJgmc(); + } + ClueData data = ClueData.builder() + .name(personal.getName()) + .id(personal.getId().toString()) + .idCode(personal.getIdCode()) + .tag("精神疾病患者驾照未注销") + .eventTime(LocalDateTime.now()) + .personId(personal.getId()) + .sourceData("发现该人员为精神疾病患者,但驾照未注销" + context + + ",驾照有效期为“" + getDateString(domicileType.getYxqs()) + "至" + + getDateString(domicileType.getYxqz()) + "”,增加风险分5分") + .build(); + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); + } + if (!toInsert.isEmpty()) { + modelTaskClueService.saveClues(toInsert, Default.MENTALDISEASEDRIVER); + } + 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 syncParentsRelationship(TaskParamDomain domain) { RiskTask task = createTask(domain.getPersons().size(), 131); @@ -2236,6 +2296,38 @@ public class PointServiceImpl implements PointService { return " 无时间数据 "; } + private static String getDateString(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日")); + } 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日")); + } catch (Exception ex) { + try { + time = String.valueOf(param); + LocalDateTime localDateTime = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); + return localDateTime.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")); + } 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日")); + } catch (Exception exxx) { + System.out.println("时间" + time + "解析失败" + ex); + } + } + } + } + } + return " 无时间数据 "; + } + private static String getDateMinuteString(Object param) { if (param != null) { String time = null;