diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index ab2842d..94c9507 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -162,6 +162,7 @@ public class ApplicationEvent { pointService.syncSpecialPeopleType(initDomain(List.of(130))); pointService.syncParentsRelationship(initDomain(List.of(131))); pointService.syncMentalDiseaseDriver(initDomain(List.of(132))); + pointService.syncXIDUDriver(initDomain(List.of(133))); // *********暂时不要********** // riskTaskService.heightFight(initDomain(List.of(42))); // pointService.syncKillSelf(initDomain(List.of(46))); diff --git a/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcXdryMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcXdryMapper.java index 36e2c33..3239629 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcXdryMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcXdryMapper.java @@ -16,4 +16,8 @@ public interface WdpcXdryMapper extends BaseMapper { @Select("select a.sfzh, a.xm, a.fxdw_dwmc, a.fxjsrq, a.fxqsrq, a.chdw_dwmc, a.gkxz_mc, a.jlsmc, a.rsrq, a.csrq from wdpc_grjd_xdry a " + "inner join negative.risk_personal b on a.sfzh = b.id_code where (a.swrq is not null or a.swyy is not null);") List selectXIDU(); + + @Select("select a.sfzh from wdpc_grjd_xdry a " + + "inner join negative.risk_personal b on a.sfzh = b.id_code where (a.swrq is not null or a.swyy is not null);") + List getXIDUIds(); } 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 a97422a..9708085 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java @@ -147,4 +147,6 @@ public class Default { public static final String PARENTSRELATIONSHIP = "父母关系状况"; public static final String MENTALDISEASEDRIVER = "精神疾病患者驾照未注销"; + + public static final String XIDUDRIVER = "吸毒人员驾照未注销"; } diff --git a/src/main/java/com/biutag/supervisiondata/service/PointService.java b/src/main/java/com/biutag/supervisiondata/service/PointService.java index 41d1514..e0dd31b 100644 --- a/src/main/java/com/biutag/supervisiondata/service/PointService.java +++ b/src/main/java/com/biutag/supervisiondata/service/PointService.java @@ -2,8 +2,6 @@ package com.biutag.supervisiondata.service; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; -import java.time.LocalDateTime; - /** * @author kami on 2024-11-15 18:04:09 * @version 0.0.1 @@ -131,4 +129,7 @@ public interface PointService { // 精神疾病患者驾照未注销 void syncMentalDiseaseDriver(TaskParamDomain domain); + + // 吸毒人员驾照未注销 + void syncXIDUDriver(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 154a0d1..0454c82 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -986,6 +986,64 @@ public class PointServiceImpl implements PointService { taskRepository.updateById(updateTask); } + @Override + public void syncXIDUDriver(TaskParamDomain domain) { + RiskTask task = createTask(domain.getPersons().size(), 171); + taskRepository.save(task); + + Map oldMap = domain.getOldMap(task.getModelId(), true); + Map idCode = new HashMap<>(); + log.info("模型171开始查询"); + List xIDUIds = xdryRepository.getBaseMapper().getXIDUIds(); + List list = new ArrayList<>(); + // 切割 每次查10000条 + List> xIDUIdsParts = IntStream.range(0, (xIDUIds.size() + 9999) / 10000) + .mapToObj(i -> xIDUIds.subList(i * 10000, Math.min((i + 1) * 10000, xIDUIds.size()))) + .toList(); + + for (List xIDUIdsPart : xIDUIdsParts) { + list.addAll(jszxxbRepository.getBaseMapper().selectByIdNos(xIDUIdsPart)); + } + log.info("模型171查询结果数:{}", 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()) + .tags(List.of("未注销驾照的吸毒人员")) + .score(5) + .eventTime(LocalDateTime.now()) + .personId(personal.getId()) + .sourceData("发现该人员为吸毒人员,但驾照未注销" + context + + ",驾照有效期为“" + getDateString(domicileType.getYxqs()) + "至" + + getDateString(domicileType.getYxqz()) + "”") + .build(); + toInsert.add(DataUtil.createClueData(task, data)); + } + if (!toInsert.isEmpty()) { + modelTaskClueService.saveClues(toInsert, Default.XIDUDRIVER); + } + 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 syncMentalDiseaseDriver(TaskParamDomain domain) { RiskTask task = createTask(domain.getPersons().size(), 132); @@ -993,8 +1051,8 @@ public class PointServiceImpl implements PointService { 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 mentalDiseaseIds = riskModelTaskClueRepository.list(new LambdaQueryWrapper().select(RiskModelTaskClue::getIdCode).eq(RiskModelTaskClue::getModelId, 59)).stream().map(RiskModelTaskClue::getIdCode).toList(); List list = new ArrayList<>(); // 切割 每次查10000条 List> mentalDiseaseIdsParts = IntStream.range(0, (mentalDiseaseIds.size() + 9999) / 10000)