From d9489be20650216cef1b049ef3435e9e3f2f9ee5 Mon Sep 17 00:00:00 2001 From: kami <605128600@qq.com> Date: Sat, 7 Dec 2024 13:16:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E6=A0=87=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervisiondata/config/db/WdpcMySql.java | 74 ++++++++++++++++++ .../event/ApplicationEvent.java | 36 ++++++--- .../mapper/dwd/GBaseWFRXXMapper.java | 13 +++- .../{wdpc => wdpc2}/WdpcGrjdJsbryMapper.java | 4 +- .../pojo/constants/Default.java | 12 ++- .../pojo/entity/dwd/GBaseWFRXX.java | 8 +- .../entity/{wdpc => wdpc2}/WdpcGrjdJsbry.java | 2 +- .../supervisiondata/pojo/enums/Edu.java | 8 +- .../repository/RiskTaskRepository.java | 10 +++ .../repository/WdpcGrjdJsbryRepository.java | 4 +- .../service/GBaseSHRWFRService.java | 8 ++ .../service/impl/GBaseSHRWFRServiceImpl.java | 77 ++++++++++++++++++- .../service/impl/HabitServiceImpl.java | 72 +++++++++++++---- .../service/impl/NoControlServiceImpl.java | 69 +---------------- .../service/impl/PersonalServiceImpl.java | 2 +- .../service/impl/PointServiceImpl.java | 6 +- .../service/impl/RiskTaskServiceImpl.java | 11 +-- .../impl/WdpcGrjdJsbryServiceService.java | 12 ++- src/main/resources/application.yml | 12 +++ 19 files changed, 320 insertions(+), 120 deletions(-) create mode 100644 src/main/java/com/biutag/supervisiondata/config/db/WdpcMySql.java rename src/main/java/com/biutag/supervisiondata/mapper/{wdpc => wdpc2}/WdpcGrjdJsbryMapper.java (64%) rename src/main/java/com/biutag/supervisiondata/pojo/entity/{wdpc => wdpc2}/WdpcGrjdJsbry.java (94%) diff --git a/src/main/java/com/biutag/supervisiondata/config/db/WdpcMySql.java b/src/main/java/com/biutag/supervisiondata/config/db/WdpcMySql.java new file mode 100644 index 0000000..e7a68b0 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/config/db/WdpcMySql.java @@ -0,0 +1,74 @@ +package com.biutag.supervisiondata.config.db; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.core.MybatisConfiguration; +import com.baomidou.mybatisplus.core.config.GlobalConfig; +import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; +import com.zaxxer.hikari.HikariDataSource; +import org.apache.ibatis.session.SqlSessionFactory; +import org.apache.ibatis.type.JdbcType; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; + +import javax.sql.DataSource; + +/** + * @author kami + * @since 10:22 2020/4/5 + */ + +@Configuration +@MapperScan(basePackages = {"com.biutag.supervisiondata.mapper.wdpc2"}, + sqlSessionFactoryRef = "wdpcMysqlSessionFactory") +public class WdpcMySql { + + @Bean(name = "wdpcMysqlBean") + @ConfigurationProperties(prefix = "spring.datasource.wdpc2") + public DataSource mysqlDataSource() { + return DataSourceBuilder.create() + .type(HikariDataSource.class).build(); + } + + @Bean(name = "wdpcMysqlTransactionManager") + public DataSourceTransactionManager transactionManager() { + return new DataSourceTransactionManager(mysqlDataSource()); + } + + @Bean(name = "wdpcMysqlSessionFactory") + public SqlSessionFactory mysqlSqlSessionFactory(@Qualifier("wdpcMysqlBean") DataSource mysqlDataSource) throws Exception { + final MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean(); + MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); + mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor()); + sessionFactory.setPlugins(mybatisPlusInterceptor); + sessionFactory.setDataSource(mysqlDataSource); + GlobalConfig globalConfig = GlobalConfigUtils + .defaults(); + sessionFactory.setGlobalConfig(globalConfig); + MybatisConfiguration configuration = new MybatisConfiguration(); + configuration.setJdbcTypeForNull(JdbcType.NULL); + configuration.setMapUnderscoreToCamelCase(true); + configuration.setDatabaseId(DbType.MYSQL.getDb()); + sessionFactory.setConfiguration(configuration); + return sessionFactory.getObject(); + } + + /** + * mp分页配置 + * @return MybatisPlusInterceptor + */ + @Bean(name = "wdpcMysqlInterceptor") + public MybatisPlusInterceptor mybatisPlusInterceptor() { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); + return interceptor; + } + +} diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index 1f7afa3..bc42ff3 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -91,6 +91,9 @@ public class ApplicationEvent { @Resource private PersonalService personalService; + @Resource + private WdpcGrjdJsbryService jsbryService; + @EventListener(ApplicationReadyEvent.class) public void serviceReady() { @@ -105,6 +108,7 @@ public class ApplicationEvent { // personalService.init(); // personalService.pullInvestigate(); +// personalService.pullPsychosis(); // gBaseJJDService.pullAndSave(start, end); // gBaseSHRWFRService.pullAndSave(start, end); // petitionService.personPullAndSave(start, end); @@ -114,33 +118,41 @@ public class ApplicationEvent { // // gBaseJJDService.pullPoliceInstance(start, end); // -// riskTaskService.heightFight(initDomain(List.of(42))); + // petitionService.petitionModelTask(initDomain(List.of(40))); // riskTaskService.eduModelTask(initDomain(List.of(34))); // riskTaskService.infoModelTask(initDomain(List.of(32,33))); +// marriageService.marriageModelTask(initDomain(List.of(39,51))); // riskTaskService.caseModelTask(initDomain(List.of(35))); // pointService.syncSecurity(initDomain(List.of(37))); // policeService.contradictModelTask(initDomain(List.of(38))); -// habitService.habitModelTask(initDomain(List.of(36))); -// marriageService.marriageModelTask(initDomain(List.of(39,51))); +// habitService.habitModelTask(initDomain(List.of(36,60,61,62))); + // pointService.syncCarUser(initDomain(List.of(53))); // riskTaskService.riskAreaModelTask(initDomain(List.of(41))); // pointService.syncScore(initDomain(List.of(43))); // pointService.syncViolence(initDomain(List.of(44))); -// noControlService.syncNoControlData(initDomain(List.of(45,49))); +// noControlService.syncNoControlData(initDomain(List.of(45))); // pointService.syncKillSelf(initDomain(List.of(46))); // pointService.syncDrug(initDomain(List.of(37))); // pointService.syncControlNoPower(initDomain(List.of(48))); -// pointService.syncPointCall(initDomain(List.of(50))); // pointService.syncOilBuy(initDomain(List.of(52))); - pointService.syncIsPetition(initDomain(List.of(40))); -// pointService.syncFatherEducation(initDomain(List.of(112))); -// pointService.syncMotherEducation(initDomain(List.of(113))); - pointService.syncDomicileType(initDomain(List.of(114))); - pointService.syncCriminalPunishment(initDomain(List.of(115))); - pointService.syncAdministrativePunishment(initDomain(List.of(116))); - pointService.syncParentsDivorce(initDomain(List.of(117))); +// jsbryService.syncPys(initDomain(List.of(59))); + +// pointService.syncIsPetition(initDomain(List.of(101))); +// pointService.syncFatherEducation(initDomain(List.of(102))); +// pointService.syncMotherEducation(initDomain(List.of(103))); +// pointService.syncDomicileType(initDomain(List.of(104))); +// pointService.syncCriminalPunishment(initDomain(List.of(115))); +// pointService.syncAdministrativePunishment(initDomain(List.of(116))); +// pointService.syncParentsDivorce(initDomain(List.of(117))); // pointService.syncFamilyDie(initDomain(List.of(118))); // 未完成 + + + // *********暂时不要********** +// riskTaskService.heightFight(initDomain(List.of(42))); +// pointService.syncPointCall(initDomain(List.of(50))); + }); } diff --git a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseWFRXXMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseWFRXXMapper.java index 7b4b37f..7642c58 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseWFRXXMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/dwd/GBaseWFRXXMapper.java @@ -21,11 +21,22 @@ public interface GBaseWFRXXMapper extends BaseMapper { * @param endTime 查询结束时间(处警时间) * @return 列表 */ - @Select(" select ajbh,zjhm,xm,xbdm,lxdh from dwd_ry_zfba_wfryxx " + + @Select(" select ajbh,zjhm,xm,lxdh from dwd_ry_zfba_wfryxx " + " where lrsj between #{startTime} and #{endTime} " + " and ajbh is not null") List selectDataToRisk(@Param("startTime")String startTime, @Param("endTime")String endTime); + + /** + * 5年内犯罪 + * @param startTime 查询开始时间(处警时间) + * @param endTime 查询结束时间(处警时间) + * @return 列表 + */ + @Select(" select ajbh,zjhm,sxzm,lrsj from dwd_ry_zfba_wfryxx " + + " where lrsj between #{startTime} and #{endTime} " + + " and ajbh is not null") + List selectFiveYearsCombatCrime(@Param("startTime")String startTime, @Param("endTime")String endTime); /** * @return 列表 */ diff --git a/src/main/java/com/biutag/supervisiondata/mapper/wdpc/WdpcGrjdJsbryMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcGrjdJsbryMapper.java similarity index 64% rename from src/main/java/com/biutag/supervisiondata/mapper/wdpc/WdpcGrjdJsbryMapper.java rename to src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcGrjdJsbryMapper.java index bde7dbd..03ea439 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/wdpc/WdpcGrjdJsbryMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/wdpc2/WdpcGrjdJsbryMapper.java @@ -1,7 +1,7 @@ -package com.biutag.supervisiondata.mapper.wdpc; +package com.biutag.supervisiondata.mapper.wdpc2; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdJsbry; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcGrjdJsbry; /** * @author kami on 2024-12-06 10:23:13 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 93f00ce..08814fb 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java @@ -66,7 +66,15 @@ public class Default { public static final String TRUBO_IG = "涉矛盾纠纷因素"; - public static final String HABBIT_IG = "不良嗜好因素"; + public static final String HABBIT_IG = "成瘾性行为"; + + public static final String DRINK = "酗酒"; + + public static final String YEAR_DRINK = "近一年酗酒"; + + public static final String GAMBLING = "赌博"; + + public static final String OTHER_HABIT = "其他成瘾行为"; public static final String FIGHT_IG = "民风习俗因素"; @@ -92,6 +100,8 @@ public class Default { public static final String CAR_IG ="有车因素"; + public static final String WF_IG = "涉访涉诉、前科劣迹"; + public static final String IS_PETITION = "信访、投诉-信访局信访"; public static final String FATHER_EDUCATION = "父亲文化程度"; diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseWFRXX.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseWFRXX.java index b2c450a..4f3d46a 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseWFRXX.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseWFRXX.java @@ -6,6 +6,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; +import java.util.Date; /** * 违法人信息 @@ -24,11 +25,6 @@ public class GBaseWFRXX implements Serializable { */ @TableField("xm") String xm; - /** - * 性别代码 - */ - @TableField("xbdm") - String xbdm; /** * 证件号码 */ @@ -49,4 +45,6 @@ public class GBaseWFRXX implements Serializable { */ @TableField("sxzm") String sxzm; + @TableField("lrsj") + Date lrsj; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdJsbry.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcGrjdJsbry.java similarity index 94% rename from src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdJsbry.java rename to src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcGrjdJsbry.java index 23adb23..b603e6f 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdJsbry.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc2/WdpcGrjdJsbry.java @@ -1,4 +1,4 @@ -package com.biutag.supervisiondata.pojo.entity.wdpc; +package com.biutag.supervisiondata.pojo.entity.wdpc2; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; diff --git a/src/main/java/com/biutag/supervisiondata/pojo/enums/Edu.java b/src/main/java/com/biutag/supervisiondata/pojo/enums/Edu.java index 6a890e9..c82f3f8 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/enums/Edu.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/enums/Edu.java @@ -14,9 +14,11 @@ import lombok.extern.slf4j.Slf4j; @Slf4j public enum Edu { - LOW("小学及以下", 3), - MIDDLE("初中/高中", 2), - HEIGHT("中专/大专", 1); + LOW("小学及以下", 5), + MIDDLE("初中", 4), + MIDDLE_HEIGHT("高中/中专", 3), + HEIGHT("大学", 2), + OTHER("大学以上", 1); private final String desc; diff --git a/src/main/java/com/biutag/supervisiondata/repository/RiskTaskRepository.java b/src/main/java/com/biutag/supervisiondata/repository/RiskTaskRepository.java index 2ff58e3..e0bae2b 100644 --- a/src/main/java/com/biutag/supervisiondata/repository/RiskTaskRepository.java +++ b/src/main/java/com/biutag/supervisiondata/repository/RiskTaskRepository.java @@ -24,4 +24,14 @@ public class RiskTaskRepository extends ServiceImpl { save(task); return task; } + + public void updateTask(Integer taskId, Integer size, Integer updateSize) { + RiskTask updateTask = new RiskTask(); + updateTask.setId(taskId); + updateTask.setInsertSize(size); + updateTask.setUpdateSize(updateSize); + updateTask.setState(1); + updateTask.setEndTime(LocalDateTime.now()); + updateById(updateTask); + } } diff --git a/src/main/java/com/biutag/supervisiondata/repository/WdpcGrjdJsbryRepository.java b/src/main/java/com/biutag/supervisiondata/repository/WdpcGrjdJsbryRepository.java index 94a094e..8f602b5 100644 --- a/src/main/java/com/biutag/supervisiondata/repository/WdpcGrjdJsbryRepository.java +++ b/src/main/java/com/biutag/supervisiondata/repository/WdpcGrjdJsbryRepository.java @@ -1,8 +1,8 @@ package com.biutag.supervisiondata.repository; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.biutag.supervisiondata.mapper.wdpc.WdpcGrjdJsbryMapper; -import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdJsbry; +import com.biutag.supervisiondata.mapper.wdpc2.WdpcGrjdJsbryMapper; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcGrjdJsbry; import org.springframework.stereotype.Service; /** diff --git a/src/main/java/com/biutag/supervisiondata/service/GBaseSHRWFRService.java b/src/main/java/com/biutag/supervisiondata/service/GBaseSHRWFRService.java index 7655fce..515c86a 100644 --- a/src/main/java/com/biutag/supervisiondata/service/GBaseSHRWFRService.java +++ b/src/main/java/com/biutag/supervisiondata/service/GBaseSHRWFRService.java @@ -1,5 +1,7 @@ package com.biutag.supervisiondata.service; +import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; + import java.time.LocalDateTime; /** @@ -13,4 +15,10 @@ public interface GBaseSHRWFRService { * 拉取和转存 */ void pullAndSave(LocalDateTime start, LocalDateTime end); + + /** + * 打击5年内犯罪 + * @param domain + */ + void combatCrime(TaskParamDomain domain); } diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java index 4fffa7f..6c69fd0 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java @@ -2,18 +2,24 @@ package com.biutag.supervisiondata.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; +import com.biutag.supervisiondata.pojo.ClueData; import com.biutag.supervisiondata.pojo.constants.Default; import com.biutag.supervisiondata.pojo.database.PointOrg; +import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseSHRXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX; +import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; +import com.biutag.supervisiondata.pojo.entity.mine.RiskTask; import com.biutag.supervisiondata.pojo.entity.mine.SupExternalDepart; import com.biutag.supervisiondata.pojo.enums.DepartType; import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.service.GBaseSHRWFRService; +import com.biutag.supervisiondata.service.RiskModelTaskClueService; import com.biutag.supervisiondata.service.RiskPersonalService; +import com.biutag.supervisiondata.util.BhUtil; import com.biutag.supervisiondata.util.IdCodeUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -274,7 +280,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { } PointOrg org = orgCodeMap.get(jjx.getBadwiddm()); org = findOrg(org, orgIdMap); - SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(item -> jqExternalDepart.get(item)).orElse(null); + SupExternalDepart depart = Optional.ofNullable(org).map(PointOrg::getDm).map(jqExternalDepart::get).orElse(null); if (depart == null) { personal.setControlDepartId(null); personal.setControlDepartName(null); @@ -299,6 +305,59 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { riskPersonalService.formatAndSave(personals, Default.BIG_TAG_SHWFR); } + private final RiskTaskRepository taskRepository; + + private final RiskModelTaskClueService clueService; + + @Override + public void combatCrime(TaskParamDomain domain) { + LocalDateTime start = LocalDateTime.of(2019,12,6,0,0,0); + LocalDateTime end = LocalDate.now().atTime(0,0,0); + + List xxList = wfrxxRepository.getBaseMapper().selectFiveYearsCombatCrime(start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")), end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + RiskTask task = taskRepository.create(xxList.size(), 63); + + List oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); + // 按人分 + Map> personOldMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); + + Map> wfrMap = xxList.stream().collect(Collectors.groupingBy(GBaseWFRXX::getZjhm)); + + List toInsert = new ArrayList<>(); + + for (RiskPersonal person : domain.getPersons()) { + List wfxxList = wfrMap.get(person.getIdCode()); + if(wfxxList == null) { + continue; + } + List olds = Optional.ofNullable(personOldMap.get(person.getIdCode())).orElse(new ArrayList<>()); + Map oldMap = olds.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val)); + for (GBaseWFRXX xx : wfxxList) { + if(oldMap.get(BhUtil.ajBh(xx.getAjbh())) != null) { + continue; + } + ClueData data = ClueData.builder() + .name(person.getName()) + .id(BhUtil.ajBh(xx.getAjbh())) + .idCode(person.getIdCode()) + .tag("被打击处理") + .personId(person.getId()) + .sourceData("该人员因" + xx.getSxzm() + "被打击处理,案件编号:" + xx.getAjbh()+ ",增加风险分5分") + .build(); + try { + data.setEventTime(xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime()); + } catch (Exception ignored) {} + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); + } + } + + if(!toInsert.isEmpty()) { + clueService.saveClues(toInsert, Default.WF_IG); + } + taskRepository.updateTask(task.getId(), toInsert.size(), 0); + } + /** * 多身份证对比名称 * @param infos 信息 @@ -353,4 +412,20 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { return org; } + 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; + } + } diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java index bc6e765..867175a 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java @@ -50,7 +50,6 @@ public class HabitServiceImpl implements HabitService { private final RiskModelTaskClueService riskModelTaskClueService; - @Override public void habitModelTask(LocalDateTime targetTime, TaskParamDomain domain) { List ajjbxxList = gBaseAJJBXXRepository.getBaseMapper().selectHabit(targetTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); @@ -69,8 +68,6 @@ public class HabitServiceImpl implements HabitService { List targetAjList3 = new ArrayList<>(); List ajNos3 = new ArrayList<>(); - - for (GBaseAJJBXX gBaseAJJBXX : ajjbxxList) { if (gBaseAJJBXX.getAjlbmc() == null) { continue; @@ -101,7 +98,6 @@ public class HabitServiceImpl implements HabitService { riskTaskRepository.save(task3); log.info("共计案件:{} | {} | {}", ajNos.size(), ajNos2.size(), ajNos3.size()); - List toInsert = new ArrayList<>(); List toInsert1 = new ArrayList<>(); List toInsert2 = new ArrayList<>(); @@ -114,17 +110,65 @@ public class HabitServiceImpl implements HabitService { ).join(); log.info("开始进行数据库操作"); - toInsert.addAll(toInsert1); - toInsert.addAll(toInsert2); - toInsert.addAll(toInsert3); - if(!toInsert.isEmpty()) { - riskModelTaskClueService.saveClues(toInsert, Default.HABBIT_IG); + if(!toInsert1.isEmpty()) { + riskModelTaskClueService.saveClues(toInsert1, Default.HABBIT_IG); + } + if(!toInsert2.isEmpty()) { + riskModelTaskClueService.saveClues(toInsert1, Default.HABBIT_IG); + } + if(!toInsert3.isEmpty()) { + riskModelTaskClueService.saveClues(toInsert1, Default.HABBIT_IG); } - updateTask(task.getId(), toInsert1.size()); - updateTask(task2.getId(), toInsert2.size()); - updateTask(task3.getId(), toInsert3.size()); + updateTask(task.getId(), toInsert1.size(), 0); + updateTask(task2.getId(), toInsert2.size(), 0); + updateTask(task3.getId(), toInsert3.size(), 0); + + // 近一年酗酒 + RiskTask task4 = createTask(toInsert1.size(), 62); + riskTaskRepository.save(task4); + + Map old = domain.getOldMap(task4.getModelId(), true); + + List toInsertYears = new ArrayList<>(); + for (RiskModelTaskClue clue : toInsert1) { + if(!limit.isBefore(clue.getEventTime())) { + continue; + } + if(old.get(clue.getIdCode()) == null) { + clue.setModelId(task4.getModelId()); + clue.setTaskId(task4.getId()); + clue.setData(clue.getData().replace(",存在"+clue.getRiskReason()+",", ",近一年内存在"+clue.getRiskReason()+"行为,")); + clue.setRiskReason(Default.YEAR_DRINK); + toInsertYears.add(clue); + continue; + } + old.remove(clue.getIdCode()); + } + + if(!toInsertYears.isEmpty()) { + riskModelTaskClueService.saveClues(toInsertYears, Default.HABBIT_IG); + } + List toUpdate = new ArrayList<>(); + List idCodes = new ArrayList<>(); + // 酗酒 看看有没有过期 + for (Map.Entry entry : old.entrySet()) { + if(entry.getValue().getEventTime() == null) { + continue; + } + if(entry.getValue().getEventTime().isBefore(limit)) { + RiskModelTaskClue update = new RiskModelTaskClue(); + update.setId(entry.getValue().getId()); + update.setDel(1); + toUpdate.add(update); + idCodes.add(entry.getValue().getIdCode()); + } + } + if(!toUpdate.isEmpty()) { + riskModelTaskClueService.deleteCluesAndDeleteTag(toUpdate, idCodes, Default.YEAR_DRINK); + } + updateTask(task4.getId(), toInsertYears.size(), toUpdate.size()); } List findBadHabit(List ajNos, List targetAjList, RiskTask task, TaskParamDomain domain, String tag) { @@ -190,11 +234,11 @@ public class HabitServiceImpl implements HabitService { return task; } - void updateTask(Integer taskId, Integer size) { + void updateTask(Integer taskId, Integer size, Integer updateSize) { RiskTask updateTask = new RiskTask(); updateTask.setId(taskId); updateTask.setInsertSize(size); - updateTask.setUpdateSize(0); + updateTask.setUpdateSize(updateSize); updateTask.setState(1); updateTask.setEndTime(LocalDateTime.now()); riskTaskRepository.updateById(updateTask); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java index 2af11ea..a872bf3 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/NoControlServiceImpl.java @@ -40,8 +40,6 @@ public class NoControlServiceImpl implements NoControlService { private final RiskTaskRepository riskTaskRepository; - private final RiskPersonalTagService tagService; - private final RiskPersonalRepository personalRepository; private final RiskModelTaskClueService clueService; @@ -50,10 +48,7 @@ public class NoControlServiceImpl implements NoControlService { public void syncNoControlData(TaskParamDomain domain) { // 婚姻不用管管控 // clue 应该要看结婚状态 - RiskTask task = createTask(domain.getPersons().size(), 45); - riskTaskRepository.save(task); - RiskTask task2 = createTask(domain.getPersons().size(), 49); - riskTaskRepository.save(task2); + RiskTask task = riskTaskRepository.create(domain.getPersons().size(), 45); List clueData = new ArrayList<>(); Map idCodes = new HashMap<>(); @@ -69,7 +64,6 @@ public class NoControlServiceImpl implements NoControlService { CompletableFutureUtil.runSyncObject(() -> clueData.addAll(zyControl(idCodes))), CompletableFutureUtil.runSyncObject(() -> clueData.addAll(crazyLevelThreeControl(idCodes, mobiles))) ).join(); - List tags = new ArrayList<>(); List toUpdate = new ArrayList<>(); List clues = new ArrayList<>(); @@ -83,24 +77,9 @@ public class NoControlServiceImpl implements NoControlService { idCodes.put(clueDatum.getIdCode(), personal); toUpdate.add(newOne); } -// RiskPersonalTag tag = new RiskPersonalTag(); -// tag.setBigTag(Default.NO_CONTROL); -// tag.setTagTime(Optional.ofNullable(clueDatum.getEventTime()).orElse(LocalDateTime.now())); -// tag.setName(clueDatum.getName()); -// tag.setIdCode(clueDatum.getIdCode()); -// tag.setSmallTag(clueDatum.getTag()); -// tag.setCreateTime(LocalDateTime.now()); -// tags.add(tag); - if(clueDatum.getTag().equals("神疾病三级以上人员管控不到位")) { - clues.add(createClue(task2.getModelId(), 3, task.getId(), clueDatum)); - } else { - clues.add(createClue(task.getModelId(), 5, task.getId(), clueDatum)); - } + clues.add(createClue(task.getModelId(), 5, task.getId(), clueDatum)); } - if(!tags.isEmpty()) { - tagService.saveBatchTag(tags, Default.NO_CONTROL); - } if(!toUpdate.isEmpty()) { log.info("修改人数:{}", toUpdate.size()); personalRepository.updateBatchById(toUpdate); @@ -108,22 +87,7 @@ public class NoControlServiceImpl implements NoControlService { if(!clues.isEmpty()) { clueService.saveClues(clues, Default.CONTROLLER2_IG); } - RiskTask updateTask = new RiskTask(); - updateTask.setId(task.getId()); - updateTask.setInsertSize(clues.size()); - updateTask.setUpdateSize(toUpdate.size()); - updateTask.setState(1); - updateTask.setEndTime(LocalDateTime.now()); - riskTaskRepository.updateById(updateTask); - } - - RiskTask createTask(Integer size, Integer modelId) { - RiskTask task = new RiskTask(); - task.setModelId(modelId); - task.setStartTime(LocalDateTime.now()); - task.setState(0); - task.setScanSize(size); - return task; + riskTaskRepository.updateTask(task.getId(), clues.size(), toUpdate.size()); } RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data) { @@ -268,31 +232,4 @@ public class NoControlServiceImpl implements NoControlService { } return clueData; } - - RiskPersonal createPerson(String idCode, String name, String mobile, String controlDepartId, String controlDepartName, Date controlTime) { - RiskPersonal personal = new RiskPersonal(); - personal.setIdCode(idCode); - personal.setName(name); - personal.setMobileNumber(mobile); - personal.setControlDepartId(controlDepartId); - personal.setControlDepartName(controlDepartName); - // 如果有报警时间,暂时填报警时间 处理标签回正 - try { - LocalDateTime time = controlTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); - personal.setCreateTime(time); - personal.setControlTime(time); - } catch (Exception e) { - log.info("报警时间处理异常"); - } - try { - int gender = idCode.length() == 18 ? Integer.valueOf(idCode.substring(16, 17)) : Integer.valueOf(idCode.substring(14, 15)); - // 结果0男1女 余数偶女奇男 - personal.setGender(gender % 2 == 0 ? "2" : "1"); - } catch (Exception e) { - log.info("性别异常"); - } - personal.setAge(Optional.ofNullable(IdCodeUtil.idCard2Age(personal.getIdCode(), LocalDate.now())).orElse(-1)); - // 这里暂时将小标签放到预览属性 处理标签回正 - return personal; - } } diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java index 0f87286..9e15d6b 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java @@ -9,7 +9,7 @@ import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseZDRY; import com.biutag.supervisiondata.pojo.entity.mine.*; -import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdJsbry; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcGrjdJsbry; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdXfsj; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdXfsjCs; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcRyLgXX; 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 e03d063..ac8f719 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -629,7 +629,7 @@ public class PointServiceImpl implements PointService { .personId(personal.getId()) .sourceData("发现该人员于" + drug.getGzdw() + "工作,属于特种工种中的涉药人员,增加风险分2分") .build(); - toInsert.add(createClue(task.getModelId(), 2, task.getId(), data)); + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } if (!toInsert.isEmpty()) { modelTaskClueService.saveClues(toInsert, Default.IMPORT_IG); @@ -854,7 +854,7 @@ public class PointServiceImpl implements PointService { data.setTag(Default.NO_CAR_OIL_BUY); data.setSourceData("发现该人员属于无车人员,于" + item.getTime() + "在" + item.getCompanyName() + "购买容量为" + item.getNumber() + "L的" + item.getType() + ",用作" + item.getUseTo() + ",风险分增加3分"); - toInsert.add(createClue(task.getModelId(), 3, task.getId(), data)); + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } } @@ -951,7 +951,7 @@ public class PointServiceImpl implements PointService { } catch (Exception e) { log.info("保安日期异常"); } - toInsert.add(createClue(task.getModelId(), 2, task.getId(), data)); + toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } // 新增 diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java index 5010b42..2f7dc27 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java @@ -118,12 +118,13 @@ public class RiskTaskServiceImpl implements RiskTaskService { continue; } String edu = switch (xx.getXlmc()) { - case "小学教育", "文盲", "小学毕业", "小学肄业" -> "小学及以下"; - case "初中毕业", "初级中等教育", "初中肄业", "普通高中结业", "普通高级中学教育", "普通高中毕业", "普通高中肄业" -> - "初中/高中"; - case "中等专科结业", "中等专科教育", "大学专科毕业", "技工学校肄业", "大学专科结业", "中等专业毕业" -> - "中专/大专"; + case "小学教育", "文盲", "小学毕业", "小学肄业", "其他" -> "小学及以下"; + case "初中毕业", "初级中等教育", "初中肄业" -> "初中"; + case "普通高中结业", "普通高级中学教育", "普通高中毕业", "普通高中肄业","中等专科结业", "中等专科教育", "中等专业毕业", "技工学校肄业" -> "高中/中专"; + case "大学专科毕业", "大学专科结业", "大学本科/专科教育", "大学生本科结业", "大学生普通班毕业","大学生本科肄业","大学生本科毕业" -> "大学"; + case "硕士研究生毕业", "研究生教育","研究生班肄业" -> "大学以上"; default -> null; + }; if (edu == null) { continue; diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/WdpcGrjdJsbryServiceService.java b/src/main/java/com/biutag/supervisiondata/service/impl/WdpcGrjdJsbryServiceService.java index 31c2598..4211d7e 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/WdpcGrjdJsbryServiceService.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/WdpcGrjdJsbryServiceService.java @@ -5,11 +5,11 @@ import com.biutag.supervisiondata.pojo.ClueData; import com.biutag.supervisiondata.pojo.constants.Default; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; -import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; import com.biutag.supervisiondata.pojo.entity.mine.RiskTask; -import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdJsbry; +import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcGrjdJsbry; import com.biutag.supervisiondata.repository.RiskTaskRepository; import com.biutag.supervisiondata.repository.WdpcGrjdJsbryRepository; +import com.biutag.supervisiondata.service.RiskModelTaskClueService; import com.biutag.supervisiondata.service.WdpcGrjdJsbryService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -39,6 +39,8 @@ public class WdpcGrjdJsbryServiceService implements WdpcGrjdJsbryService { private final RiskTaskRepository taskRepository; + private final RiskModelTaskClueService clueService; + @Override public void syncPys(TaskParamDomain domain) { List jsbryList = jsbryRepository.list(new LambdaQueryWrapper() @@ -81,7 +83,6 @@ public class WdpcGrjdJsbryServiceService implements WdpcGrjdJsbryService { } catch (Exception e) { log.error("精神病转化时间异常"); } - } if(tag2.length() > 0) { text.append("症状为:").append(tag2); @@ -101,6 +102,11 @@ public class WdpcGrjdJsbryServiceService implements WdpcGrjdJsbryService { } toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } + + if(!toInsert.isEmpty()) { + clueService.saveClues(toInsert, Default.WF_IG); + } + taskRepository.updateTask(task.getId(), toInsert.size(), 0); } RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data) { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 968d8dd..9e6e2d1 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -78,6 +78,18 @@ spring: max-lifetime: 30000 connection-timeout: 30000 connection-test-query: SELECT 1 + wdpc2: + jdbc-url: jdbc:mysql://65.47.6.109:3306/csga_wdpcdb?useSSL=false&rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2b8 + username: root + password: ip12341234 + driver-class-name: com.mysql.cj.jdbc.Driver + type: com.zaxxer.hikari.HikariDataSource + hikari: + minimum-idle: 5 + idle-timeout: 30000 + max-lifetime: 30000 + connection-timeout: 30000 + connection-test-query: SELECT 1 data: redis: host: 65.47.6.109