diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index 372caed..8ea928d 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -19,6 +19,7 @@ import org.springframework.context.event.EventListener; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; import java.util.Map; @@ -98,83 +99,52 @@ public class ApplicationEvent { @EventListener(ApplicationReadyEvent.class) public void serviceReady() { RedisDao.getInstance().init(redisTemplate); - - LocalDateTime start = LocalDateTime.of(2023, 12, 6, 0, 0, 0); - LocalDateTime end = LocalDateTime.now(); + LocalDateTime end = LocalDate.now().minusDays(1).atTime(23,59,59); CompletableFutureUtil.runSync(() -> { personalService.init(); -// personalService.pullInvestigate(); -// personalService.pullPsychosis(); -// gBaseSHRWFRService.pullAndSave(start, end); -// petitionService.personPullAndSave(start, end); -// personalService.pullPetitionAgain(); -// pointService.personPullAndSave(start, end); -// gBaseJJDService.pullAndSave(start, end); -// riskPersonalService.fixed(); -// personalService.syncPerson(); - -// petitionService.petitionModelTask(initDomain(List.of(40))); -// riskTaskService.eduAndAreaModelTask(initDomain(List.of(34,41))); -// riskTaskService.infoModelTask(initDomain(List.of(32,33))); -// marriageService.marriageModelTask(initDomain(List.of(39,51))); -// pointService.syncSecurity(initDomain(List.of(37))); -// habitService.habitModelTask(start, initDomain(List.of(36,60,61,62))); -// pointService.syncCarUser(initDomain(List.of(53))); -// pointService.syncScore(initDomain(List.of(43))); -// pointService.syncViolence(initDomain(List.of(44))); -// noControlService.syncNoControlData(initDomain(List.of(45))); -// pointService.syncDrug(initDomain(List.of(37))); -// pointService.syncControlNoPower(initDomain(List.of(48))); -// pointService.syncOilBuy(initDomain(List.of(52))); -// gBaseJJDService.pullPoliceInstance(start, end, initDomain(List.of(55,56,57,58))); -// jsbryService.syncPys(initDomain(List.of(59))); -// gBaseSHRWFRService.combatCrime(initDomain(List.of(63))); -// gBaseJJDService.syncPoliceAttack(initDomain(List.of(64))); -// gBaseJJDService.syncHomeViolence(initDomain(List.of(65,66))); -// pointService.syncPointType(initDomain(List.of(67))); -// gBaseSHRWFRService.hadWork(initDomain(List.of(68))); -// gBaseJJDService.syncParentRelation(initDomain(List.of(69,70))); -// gBaseJJDService.syncLove(initDomain(List.of(71))); -// gBaseJJDService.syncMarryDispute(initDomain(List.of(72))); -// gBaseJJDService.syncNeighborAndColleagueDispute(initDomain(List.of(73))); -// gBaseJJDService.syncBullying(initDomain(List.of(74))); -// gBaseSHRWFRService.crimeName(initDomain(List.of(76))); -// pointService.syncIsPetition(initDomain(List.of(40))); -// petitionService.petitionModelTask(initDomain(List.of(40))); -// riskTaskService.eduAndAreaModelTask(initDomain(List.of(34,41))); -// riskTaskService.eduModelTask(initDomain(List.of(34))); -// riskTaskService.infoModelTask(initDomain(List.of(32,33))); -// marriageService.marriageModelTask(initDomain(List.of(39,51))); -// pointService.syncSecurity(initDomain(List.of(37))); -// habitService.habitModelTask(start, 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))); -// pointService.syncDrug(initDomain(List.of(37))); -// pointService.syncControlNoPower(initDomain(List.of(48))); -// pointService.syncOilBuy(initDomain(List.of(52))); -// gBaseJJDService.pullPoliceInstance(start, end, initDomain(List.of(55,56,57,58))); -// jsbryService.syncPys(initDomain(List.of(59))); -// gBaseSHRWFRService.combatCrime(initDomain(List.of(63))); -// gBaseJJDService.syncPoliceAttack(initDomain(List.of(64))); -// gBaseJJDService.syncHomeViolence(initDomain(List.of(65,66))); -// pointService.syncPointType(initDomain(List.of(67))); -// gBaseSHRWFRService.hadWork(initDomain(List.of(68))); -// gBaseJJDService.syncParentRelation(initDomain(List.of(69,70))); -// gBaseJJDService.syncLove(initDomain(List.of(71))); -// gBaseJJDService.syncMarryDispute(initDomain(List.of(72))); -// gBaseJJDService.syncNeighborAndColleagueDispute(initDomain(List.of(73))); -// gBaseJJDService.syncBullying(initDomain(List.of(74))); -// gBaseSHRWFRService.crimeName(initDomain(List.of(76))); -// 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))); + personalService.pullInvestigate(); + personalService.pullPsychosis(); + gBaseSHRWFRService.pullAndSave(LocalDateTime.of(2019,12,6,0,0,0), end); + petitionService.personPullAndSave(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end); + personalService.pullPetitionAgain(LocalDateTime.of(2000, 12, 6, 0, 0, 0), end); + pointService.personPullAndSave(); + gBaseJJDService.pullAndSave(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end); + riskPersonalService.fixed(); + personalService.syncPerson(LocalDate.now()); + + petitionService.petitionModelTask(initDomain(List.of(40))); + riskTaskService.eduAndAreaModelTask(initDomain(List.of(34,41))); + riskTaskService.infoModelTask(initDomain(List.of(32,33))); + marriageService.marriageModelTask(initDomain(List.of(39,51))); + pointService.syncSecurity(initDomain(List.of(37))); + habitService.habitModelTask(LocalDateTime.of(2023, 12, 6, 0, 0, 0), initDomain(List.of(36,60,61,62))); + pointService.syncCarUser(initDomain(List.of(53))); + pointService.syncScore(initDomain(List.of(43))); + pointService.syncViolence(initDomain(List.of(44))); + noControlService.syncNoControlData(initDomain(List.of(45))); + pointService.syncDrug(initDomain(List.of(37))); + pointService.syncControlNoPower(initDomain(List.of(48))); + pointService.syncOilBuy(initDomain(List.of(52))); + gBaseJJDService.pullPoliceInstance(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end, initDomain(List.of(55,56,57,58))); + jsbryService.syncPys(initDomain(List.of(59))); + gBaseSHRWFRService.combatCrime(initDomain(List.of(63))); + gBaseJJDService.syncPoliceAttack(initDomain(List.of(64))); + gBaseJJDService.syncHomeViolence(initDomain(List.of(65,66))); + pointService.syncPointType(initDomain(List.of(67))); + gBaseSHRWFRService.hadWork(initDomain(List.of(68))); + gBaseJJDService.syncParentRelation(initDomain(List.of(69,70))); + gBaseJJDService.syncLove(initDomain(List.of(71))); + gBaseJJDService.syncMarryDispute(initDomain(List.of(72))); + gBaseJJDService.syncNeighborAndColleagueDispute(initDomain(List.of(73))); + gBaseJJDService.syncBullying(initDomain(List.of(74))); + gBaseSHRWFRService.crimeName(initDomain(List.of(76))); + 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))); pointService.syncFamilyDie(initDomain(List.of(118))); pointService.syncFatherDie(initDomain(List.of(119))); pointService.syncMotherDie(initDomain(List.of(120))); @@ -182,7 +152,7 @@ public class ApplicationEvent { pointService.syncXIDU(initDomain(List.of(122))); pointService.syncFiliation(initDomain(List.of(123))); // 必须在123后面 -// gBaseJJDService.syncOtherContradict(initDomain(List.of(75))); + gBaseJJDService.syncOtherContradict(initDomain(List.of(75))); pointService.syncPetitionContent(initDomain(List.of(124))); pointService.syncMedicalPressure(initDomain(List.of(125))); diff --git a/src/main/java/com/biutag/supervisiondata/pojo/ClueData.java b/src/main/java/com/biutag/supervisiondata/pojo/ClueData.java index a2f9e77..6f4a01c 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/ClueData.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/ClueData.java @@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j; import java.io.Serial; import java.io.Serializable; import java.time.LocalDateTime; +import java.util.List; /** * @author kami on 2024-11-13 13:08:18 @@ -44,4 +45,8 @@ public class ClueData implements Serializable { Integer personId; String sourceData; + + List tags; + + Integer score; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/constants/RedisKey.java b/src/main/java/com/biutag/supervisiondata/pojo/constants/RedisKey.java index dce7e10..30dbebd 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/RedisKey.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/RedisKey.java @@ -25,4 +25,6 @@ public class RedisKey { public static final String REVENGE = "revenge"; public static final String REVENGE_INFO = "revenge:info"; + + public static final String WEIGHT_SCORE = "weight:score"; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskModelTaskClue.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskModelTaskClue.java index 5ffd627..f46aa05 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskModelTaskClue.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/mine/RiskModelTaskClue.java @@ -6,6 +6,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.time.LocalDateTime; +import java.util.List; /** * @author kami on 2024-11-11 11:37:50 @@ -111,6 +112,9 @@ public class RiskModelTaskClue implements Serializable { @TableField("update_time") LocalDateTime updateTime; + @TableField(exist = false) + List tags; + /** * 逻辑删除键 */ diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdXfsj.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdXfsj.java index 62569d7..a835846 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdXfsj.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdXfsj.java @@ -17,4 +17,6 @@ public class WdpcGrjdXfsj { String name; @TableField("`id_code`") String idCode; + @TableField("`create_time`") + String createTime; } diff --git a/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdXfsjCs.java b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdXfsjCs.java index 974ea62..ee4b72b 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdXfsjCs.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/entity/wdpc/WdpcGrjdXfsjCs.java @@ -17,4 +17,6 @@ public class WdpcGrjdXfsjCs { String name; @TableField("`id_code`") String idCode; + @TableField("`create_time`") + String createTime; } diff --git a/src/main/java/com/biutag/supervisiondata/rest/ApiController.java b/src/main/java/com/biutag/supervisiondata/rest/ApiController.java index fdc0718..74ac4f0 100644 --- a/src/main/java/com/biutag/supervisiondata/rest/ApiController.java +++ b/src/main/java/com/biutag/supervisiondata/rest/ApiController.java @@ -9,6 +9,7 @@ import com.biutag.supervisiondata.common.response.RS; import com.biutag.supervisiondata.config.cache.RedisDao; import com.biutag.supervisiondata.lock.LocalLock; import com.biutag.supervisiondata.pojo.constants.Prompt; +import com.biutag.supervisiondata.pojo.constants.RedisKey; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcJJDAi; @@ -47,9 +48,11 @@ public class ApiController { CompletableFutureUtil.runSync(() -> { try { if(idCodes == null) { + RedisDao.getInstance().set(RedisKey.WEIGHT_SCORE, weight); riskScoreRuleService.runScore(new ArrayList<>(), weight); } else { - riskScoreRuleService.runScore(List.of(idCodes.split(",")), weight); + String we = Optional.ofNullable(weight).orElse((String)RedisDao.getInstance().get(RedisKey.WEIGHT_SCORE)); + riskScoreRuleService.runScore(List.of(idCodes.split(",")), we); } } catch (Exception e) { log.error("", e); diff --git a/src/main/java/com/biutag/supervisiondata/service/PersonalService.java b/src/main/java/com/biutag/supervisiondata/service/PersonalService.java index 0833c04..4b72880 100644 --- a/src/main/java/com/biutag/supervisiondata/service/PersonalService.java +++ b/src/main/java/com/biutag/supervisiondata/service/PersonalService.java @@ -1,5 +1,6 @@ package com.biutag.supervisiondata.service; +import java.time.LocalDate; import java.time.LocalDateTime; /** @@ -37,7 +38,7 @@ public interface PersonalService { /** * 另一个表的信访 */ - void pullPetitionAgain(); + void pullPetitionAgain(LocalDateTime startTime, LocalDateTime end); /** * 推送排查人员(四无) */ @@ -52,8 +53,9 @@ public interface PersonalService { /** * 同步人员到gbase + * @param date 哪一天入库的 */ - void syncPerson(); + void syncPerson(LocalDate date); /** * 同步人员证照 diff --git a/src/main/java/com/biutag/supervisiondata/service/PointService.java b/src/main/java/com/biutag/supervisiondata/service/PointService.java index a8bbd90..41d1514 100644 --- a/src/main/java/com/biutag/supervisiondata/service/PointService.java +++ b/src/main/java/com/biutag/supervisiondata/service/PointService.java @@ -11,7 +11,7 @@ import java.time.LocalDateTime; */ public interface PointService { - void personPullAndSave(LocalDateTime start, LocalDateTime end); + void personPullAndSave(); /** * 重点人员类型 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 1d2837f..6c2517e 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java @@ -78,7 +78,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService { CompletableFuture.allOf( CompletableFutureUtil.runSyncObject(() -> shrTmp.addAll(shrxxRepository.getBaseMapper().selectSHData(start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")), end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))))), - CompletableFutureUtil.runSyncObject(() -> wfrTmp.addAll(wfrxxRepository.getBaseMapper().selectWFData("2019-12-06 00:00:00", + CompletableFutureUtil.runSyncObject(() -> wfrTmp.addAll(wfrxxRepository.getBaseMapper().selectWFData(start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")), end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))))) ).join(); // 信息全的数据 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 f8d5bb7..b74f828 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java @@ -92,12 +92,9 @@ public class HabitServiceImpl implements HabitService { ajNos3.add(gBaseAJJBXX.getAjbh()); } } - RiskTask task = createTask(ajNos.size(), 36); - riskTaskRepository.save(task); - RiskTask task2 = createTask(ajNos2.size(), 60); - riskTaskRepository.save(task2); - RiskTask task3 = createTask(ajNos3.size(), 61); - riskTaskRepository.save(task3); + RiskTask task = riskTaskRepository.create(ajNos.size(), 36); + RiskTask task2 = riskTaskRepository.create(ajNos2.size(), 60); + RiskTask task3 = riskTaskRepository.create(ajNos3.size(), 61); log.info("共计案件:{} | {} | {}", ajNos.size(), ajNos2.size(), ajNos3.size()); @@ -123,13 +120,12 @@ public class HabitServiceImpl implements HabitService { riskModelTaskClueService.saveClues(toInsert3, Default.HABBIT_IG); } - updateTask(task.getId(), toInsert1.size(), 0); - updateTask(task2.getId(), toInsert2.size(), 0); - updateTask(task3.getId(), toInsert3.size(), 0); + riskTaskRepository.updateTask(task.getId(), toInsert1.size(), 0); + riskTaskRepository.updateTask(task2.getId(), toInsert2.size(), 0); + riskTaskRepository.updateTask(task3.getId(), toInsert3.size(), 0); // 近一年酗酒 - RiskTask task4 = createTask(toInsert1.size(), 62); - riskTaskRepository.save(task4); + RiskTask task4 = riskTaskRepository.create(toInsert1.size(), 62); Map old = domain.getOldMap(task4.getModelId(), true); @@ -170,7 +166,7 @@ public class HabitServiceImpl implements HabitService { if(!toUpdate.isEmpty()) { riskModelTaskClueService.deleteCluesAndDeleteTag(toUpdate, idCodes, Default.YEAR_DRINK); } - updateTask(task4.getId(), toInsertYears.size(), toUpdate.size()); + riskTaskRepository.updateTask(task4.getId(), toInsertYears.size(), toUpdate.size()); } List findBadHabit(List ajNos, List targetAjList, RiskTask task, TaskParamDomain domain, String tag) { @@ -239,26 +235,6 @@ public class HabitServiceImpl implements HabitService { return toInsert; } - 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; - } - - 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()); - riskTaskRepository.updateById(updateTask); - } - - RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data) { RiskModelTaskClue clue = new RiskModelTaskClue(); clue.setModelId(modelId); 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 48100e4..d6a20be 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java @@ -317,9 +317,12 @@ public class PersonalServiceImpl implements PersonalService { private final WdpcGrjdXfsjRepository xfsjRepository; @Override - public void pullPetitionAgain() { + public void pullPetitionAgain(LocalDateTime startTime, LocalDateTime end) { List idCodes = new ArrayList<>(); - CompletableFuture.allOf(CompletableFutureUtil.runSyncObject(() -> idCodes.addAll(xfsjRepository.list(new LambdaQueryWrapper().select(WdpcGrjdXfsj::getIdCode, WdpcGrjdXfsj::getName)).stream().map(WdpcGrjdXfsj::getIdCode).toList())), CompletableFutureUtil.runSyncObject(() -> idCodes.addAll(xfsjCsRepository.list(new LambdaQueryWrapper().select(WdpcGrjdXfsjCs::getIdCode, WdpcGrjdXfsjCs::getName)).stream().map(WdpcGrjdXfsjCs::getIdCode).toList()))).join(); + CompletableFuture.allOf( + CompletableFutureUtil.runSyncObject(() -> idCodes.addAll(xfsjRepository.list(new LambdaQueryWrapper().select(WdpcGrjdXfsj::getIdCode, WdpcGrjdXfsj::getName).between(WdpcGrjdXfsj::getCreateTime, startTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")), end.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")))).stream().map(WdpcGrjdXfsj::getIdCode).toList())), + CompletableFutureUtil.runSyncObject(() -> idCodes.addAll(xfsjCsRepository.list(new LambdaQueryWrapper().select(WdpcGrjdXfsjCs::getIdCode, WdpcGrjdXfsjCs::getName).between(WdpcGrjdXfsjCs::getCreateTime, startTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")), end.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")))).stream().map(WdpcGrjdXfsjCs::getIdCode).toList())) + ).join(); List idCards = idCodes.stream().distinct().toList(); List> idCards2 = IntStream.range(0, (idCards.size() + 9999) / 10000) @@ -482,12 +485,9 @@ public class PersonalServiceImpl implements PersonalService { @Override public void init() { - riskTestRepository.getBaseMapper().truncateControl(); riskTestRepository.getBaseMapper().truncateClue(); -// riskTestRepository.getBaseMapper().truncatePerson(); riskTestRepository.getBaseMapper().truncateTag(); riskTestRepository.getBaseMapper().truncateTask(); - riskTestRepository.getBaseMapper().truncateTable(); } private final WdpcPersonRepository wdpcPersonRepository; @@ -495,8 +495,7 @@ public class PersonalServiceImpl implements PersonalService { private final RiskPersonalRepository personalRepository; @Override - public void syncPerson() { - wdpcPersonRepository.getBaseMapper().truncateTable(); + public void syncPerson(LocalDate date) { List personals = personalRepository.list(new LambdaQueryWrapper() .select(RiskPersonal::getIdCode, RiskPersonal::getId) .eq(RiskPersonal::getDel, 0)); 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 4872877..cc8c692 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -6,7 +6,6 @@ import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; import com.biutag.supervisiondata.common.utils.StreamUtil; import com.biutag.supervisiondata.config.cache.RedisDao; import com.biutag.supervisiondata.mapper.dwd.ModelClueDataMapper; -import com.biutag.supervisiondata.mapper.mine.SupDepartMapper; import com.biutag.supervisiondata.pojo.ClueData; import com.biutag.supervisiondata.pojo.constants.Default; import com.biutag.supervisiondata.pojo.database.MuchCall; @@ -23,6 +22,7 @@ import com.biutag.supervisiondata.service.PointService; import com.biutag.supervisiondata.service.RiskModelTaskClueService; import com.biutag.supervisiondata.service.RiskPersonalService; import com.biutag.supervisiondata.util.BhUtil; +import com.biutag.supervisiondata.util.DataUtil; import com.biutag.supervisiondata.util.IdCodeUtil; import com.biutag.supervisiondata.util.PatternUtil; import lombok.AllArgsConstructor; @@ -94,7 +94,7 @@ public class PointServiceImpl implements PointService { private final RiskModelTaskClueRepository riskModelTaskClueRepository; @Override - public void personPullAndSave(LocalDateTime start, LocalDateTime end) { + public void personPullAndSave() { riskPersonalService.formatAndSave(getPersons(), Default.POINT_POEPLE); } @@ -121,15 +121,26 @@ public class PointServiceImpl implements PointService { for (RiskPersonal personal : personals) { sb.append(personal.getTags()).append(","); } - if(sb.isEmpty()){ + if (sb.isEmpty()) { continue; } - toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() - .tag("重点人员") +// toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() +// .tag("重点人员") +// .name(personals.getFirst().getName()) +// .idCode(personals.getFirst().getIdCode()) +// .eventTime(Optional.ofNullable(personals.getFirst().getControlTime()).orElse(LocalDateTime.now())) +// .sourceData("发现该人员为重点人员,存在" + personals.size() + "个标签") +// .build())); + toInsert.add(DataUtil.createClueData(task, ClueData.builder() + // 案件编号、接警单编号之类 + .id("") + .score(5) + .personId(personals.getFirst().getId()) + .tags(List.of("重点人员")) + .sourceData("发现该人员为重点人员,存在" + personals.size() + "个标签") .name(personals.getFirst().getName()) .idCode(personals.getFirst().getIdCode()) - .eventTime(Optional.ofNullable(personals.getFirst().getControlTime()).orElse(LocalDateTime.now())) - .sourceData("该人员存在标签:" +sb.substring(0,sb.length()-1) + ",属于重点人员") + .eventTime(personals.getFirst().getControlTime()) .build())); } if (!toInsert.isEmpty()) { @@ -156,10 +167,10 @@ public class PointServiceImpl implements PointService { List olds = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); Map> personMap = olds.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); List toInsert = new ArrayList<>(); - Map> mapPerson = new WeakHashMap<>(); + Map> mapPerson = new WeakHashMap<>(); for (GBaseZDRY ry : list) { RiskPersonal person = personalMap.get(ry.getSfzh()); - if(person==null) { + if (person == null) { continue; } List codes = PatternUtil.takeMarkPositionToString(ry.getZdrylbbj()); @@ -171,7 +182,7 @@ public class PointServiceImpl implements PointService { codes = codes.stream().distinct().toList(); for (String index : codes) { WdpcGrjdZblx zblx = map.get(index); - if(oldClue.get(index) != null || zblx == null) { + if (oldClue.get(index) != null || zblx == null) { continue; } ClueData data = ClueData.builder() @@ -180,18 +191,43 @@ public class PointServiceImpl implements PointService { .tag(zblx.getDmmc()) .name(person.getName()) .idCode(person.getIdCode()) - .sourceData("该人员存在标签:" + zblx.getDmmc() ) + .score(zblx.getScore().intValue()) .build(); try { data.setEventTime(LocalDateTime.parse(ry.getJlbgsj(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); - } catch (Exception e) { - data.setEventTime(LocalDateTime.now()); + } catch (Exception ignored) { } - mapPerson.computeIfAbsent(person.getIdCode(), k -> new ArrayList<>()).add(createClue(task.getModelId(), zblx.getScore().intValue(), task.getId(), data)); + mapPerson.computeIfAbsent(person.getIdCode(), k -> new ArrayList<>()).add(data); } } - for (Map.Entry> entry : mapPerson.entrySet()) { - toInsert.addAll(entry.getValue().stream().filter(StreamUtil.distinctByKey(RiskModelTaskClue::getRiskReason)).toList()); + for (Map.Entry> entry : mapPerson.entrySet()) { + LocalDateTime tmpDateTime = null; + List tmp = entry.getValue().stream().filter(StreamUtil.distinctByKey(ClueData::getTag)).toList(); + StringBuilder sb = new StringBuilder(); + int score = 0; + List tags = new ArrayList<>(); + for (ClueData clue : tmp) { + if (tmpDateTime == null) { + tmpDateTime = clue.getEventTime(); + } + if (tmpDateTime.isBefore(clue.getEventTime())) { + tmpDateTime = clue.getEventTime(); + } + tags.add(clue.getTag()); + sb.append(clue.getTag()).append(","); + score += clue.getScore(); + } + toInsert.add(DataUtil.createClueData(task, ClueData.builder() + // 案件编号、接警单编号之类 + .id("") + .score(Math.min(5, score)) + .personId(tmp.getFirst().getPersonId()) + .tags(tags) + .sourceData(sb.substring(0, sb.length() - 1)) + .name(tmp.getFirst().getName()) + .idCode(tmp.getFirst().getIdCode()) + .eventTime(tmpDateTime) + .build())); } if (!toInsert.isEmpty()) { log.info("保存重点人员标签 {}", toInsert.size()); @@ -330,7 +366,7 @@ public class PointServiceImpl implements PointService { .tag("受到行政处罚") .eventTime(LocalDateTime.now()) .personId(personal.getId()) - .sourceData("发现该人员涉及" + wfrwfxxList.size() + "个行政处罚,案件编号为:“" + context + "”" ) + .sourceData("发现该人员涉及" + wfrwfxxList.size() + "个行政处罚,案件编号为:“" + context + "”") .build(); toInsert.add(createClue(task.getModelId(), score, task.getId(), data)); } @@ -378,7 +414,7 @@ public class PointServiceImpl implements PointService { .tag("受到刑事处罚") .eventTime(LocalDateTime.now()) .personId(personal.getId()) - .sourceData("发现该人员涉及" + wfrwfxxList.size() + "个刑事案件,案件编号为:“" + context + "”" ) + .sourceData("发现该人员涉及" + wfrwfxxList.size() + "个刑事案件,案件编号为:“" + context + "”") .build(); toInsert.add(createClue(task.getModelId(), score, task.getId(), data)); } @@ -644,7 +680,8 @@ public class PointServiceImpl implements PointService { Map idCode = new HashMap<>(); log.info("模型129开始查询"); List list1 = jsbryRepository.getBaseMapper().selectByIdNos(); - List list2 = jZJLBRepository.getBaseMapper().selectForModel129();; + List list2 = jZJLBRepository.getBaseMapper().selectForModel129(); + ; List list3 = xdryRepository.getBaseMapper().selectXIDU(); List list4 = sqjzryRepository.getBaseMapper().selectByIdNos(); List list5 = xmsfryRepository.getBaseMapper().selectByIdNos(); @@ -767,7 +804,8 @@ public class PointServiceImpl implements PointService { Map idCode = new HashMap<>(); log.info("模型130开始查询"); List list1 = jsbryRepository.getBaseMapper().selectByIdNos(); - List list2 = jZJLBRepository.getBaseMapper().selectForModel129();; + List list2 = jZJLBRepository.getBaseMapper().selectForModel129(); + ; List list3 = xdryRepository.getBaseMapper().selectXIDU(); List list4 = sqjzryRepository.getBaseMapper().selectByIdNos(); List list5 = xmsfryRepository.getBaseMapper().selectByIdNos(); @@ -999,7 +1037,7 @@ public class PointServiceImpl implements PointService { .tag("父母关系状况") .eventTime(LocalDateTime.now()) .personId(personal.getId()) - .sourceData("发现该人员父母关系状况不佳,关联接警单单号为" + domicileType.get("jjdbh") ) + .sourceData("发现该人员父母关系状况不佳,关联接警单单号为" + domicileType.get("jjdbh")) .build(); toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } @@ -1274,7 +1312,7 @@ public class PointServiceImpl implements PointService { if (oldMap.get(domicileType.getGmsfhm()) != null) continue; idCode.put(domicileType.getGmsfhm(), 1); - if (domicileType.getScore() == 0){ + if (domicileType.getScore() == 0) { continue; } int realScore = 0; @@ -1292,7 +1330,7 @@ public class PointServiceImpl implements PointService { .tag("行为人子女数") .eventTime(LocalDateTime.now()) .personId(personal.getId()) - .sourceData("发现该人员子女数为" + domicileType.getScore() ) + .sourceData("发现该人员子女数为" + domicileType.getScore()) .build(); toInsert.add(createClue(task.getModelId(), realScore, task.getId(), data)); } @@ -1391,7 +1429,7 @@ public class PointServiceImpl implements PointService { .tag("户籍类型") .eventTime(LocalDateTime.now()) .personId(personal.getId()) - .sourceData("发现该人员户籍类型为" + domicileType.getHlxmc() ) + .sourceData("发现该人员户籍类型为" + domicileType.getHlxmc()) .build(); toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } @@ -1433,7 +1471,7 @@ public class PointServiceImpl implements PointService { .tag("父亲文化程度") .eventTime(LocalDateTime.now()) .personId(personal.getId()) - .sourceData("发现该人员父亲文化程度为" + fatherEducation.getFatherEducation() ) + .sourceData("发现该人员父亲文化程度为" + fatherEducation.getFatherEducation()) .build(); toInsert.add(createClue(task.getModelId(), eduScore, task.getId(), data)); } @@ -1502,10 +1540,11 @@ public class PointServiceImpl implements PointService { case "研究生", "研究生肄业", "研究生毕业", "大学毕业", "大学本科", "大学肄业", "相当大学毕业" -> 1;// 本科 case "大学专科和专科学校", "相当专科毕业", "专科毕业", "专科肄业" -> 2;// 大专 case "相当高中毕业", "相当中专或中技毕业", "中专中技肄业", "职业高中毕业", "中专毕业", "高中肄业", - "中技毕业", "中等专科学校", "高中", "高中毕业", "农业高中毕业" -> 3;// 高中中专 + "中技毕业", "中等专科学校", "高中", "高中毕业", "农业高中毕业" -> 3;// 高中中专 case "农业初中毕业", "技工学校", "技工学校肄业", "技工学校毕业", "初中", "职业初中毕业", "初中毕业", - "初中肆业", "相当初中毕业" -> 4;// 初中 - case "小学", "小学肄业", "小学肆业", "小学毕业", "相当小学毕业", "文盲", "文盲或半文盲", "学龄前儿童" -> 5;// 小学 + "初中肆业", "相当初中毕业" -> 4;// 初中 + case "小学", "小学肄业", "小学肆业", "小学毕业", "相当小学毕业", "文盲", "文盲或半文盲", "学龄前儿童" -> + 5;// 小学 default -> 0; }; } @@ -1843,7 +1882,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() ); + data.setSourceData("发现该人员属于无车人员,于" + item.getTime() + "在" + item.getCompanyName() + "购买容量为" + item.getNumber() + "L的" + item.getType() + ",用作" + item.getUseTo()); toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } } @@ -1977,7 +2016,7 @@ public class PointServiceImpl implements PointService { List idCodes = new ArrayList<>(); for (RiskPersonal person : domain.getPersons()) { // 增加 - if(exist.get(person.getIdCode())!=null && clueMap.get(person.getIdCode()) == null) { + if (exist.get(person.getIdCode()) != null && clueMap.get(person.getIdCode()) == null) { ClueData data = ClueData.builder() .name(person.getName()) .id("car_man") @@ -1992,7 +2031,7 @@ public class PointServiceImpl implements PointService { toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); } // 减少 - if(exist.get(person.getIdCode())==null && clueMap.get(person.getIdCode())!=null) { + if (exist.get(person.getIdCode()) == null && clueMap.get(person.getIdCode()) != null) { RiskModelTaskClue old = clueMap.get(person.getIdCode()); RiskModelTaskClue delete = new RiskModelTaskClue(); delete.setId(old.getId()); @@ -2093,7 +2132,7 @@ public class PointServiceImpl implements PointService { } Map lbMap = new WeakHashMap<>(); - Map supExternalDepartMap = supDeparts.stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val,old) -> val)); + Map supExternalDepartMap = supDeparts.stream().collect(Collectors.toMap(SupExternalDepart::getExternalId, Function.identity(), (val, old) -> val)); for (GBaseTbDZdrylb lb : lbList) { @@ -2133,7 +2172,7 @@ public class PointServiceImpl implements PointService { Map tmp = Optional.ofNullable(map.get(ry.getSfzh())).orElse(new HashMap<>()); PointOrg org = orgCodeMap.get(ry.getGxdwjgdm()); org = findOrg(org, orgIdMap); - if(org == null) { + if (org == null) { noOrgCount++; continue; } @@ -2191,10 +2230,10 @@ public class PointServiceImpl implements PointService { } PointOrg findOrg(PointOrg org, Map orgIdMap) { - if(org == null) { + if (org == null) { return null; } - if(org.getPcs() == null || !org.getPcs().equals("1")) { + if (org.getPcs() == null || !org.getPcs().equals("1")) { return findOrg(orgIdMap.get(org.getPid()), orgIdMap); } return org; diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java index c412b12..d410a5a 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PoliceServiceImpl.java @@ -55,8 +55,7 @@ public class PoliceServiceImpl implements PoliceService { @Override public void contradictModelTask(TaskParamDomain domain) { - RiskTask task = createTask(domain.getPersons().size(), 38); - riskTaskRepository.save(task); + RiskTask task = riskTaskRepository.create(domain.getPersons().size(), 38); List jjds = new ArrayList<>(); for (List idCard : domain.getIdCards()) { @@ -140,22 +139,10 @@ public class PoliceServiceImpl implements PoliceService { riskPersonalRepository.updateBatchById(toUpdatePerson, 5000); } -// if(!toInsertTags.isEmpty()) { -// log.info("操作新增标签数据:{}",toInsertTags.size()); -// tagService.saveBatchTag(toInsertTags, Default.BIG_TAG_TRUBO); -// } - if(!updateClueList.isEmpty()) { taskClueRepository.updateBatchById(updateClueList, 10000); } - - RiskTask updateTask = new RiskTask(); - updateTask.setId(task.getId()); - updateTask.setInsertSize(toInsert.size()); - updateTask.setUpdateSize(toUpdatePerson.size()); - updateTask.setState(1); - updateTask.setEndTime(LocalDateTime.now()); - riskTaskRepository.updateById(updateTask); + riskTaskRepository.updateTask(task.getId(), toInsert.size(), toUpdatePerson.size()); } private static RiskPersonal getRiskPersonal(RiskPersonal person, RiskPersonalControlRecord tmpRecord) { @@ -186,15 +173,6 @@ public class PoliceServiceImpl implements PoliceService { return clue; } - 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; - } - RiskPersonalControlRecord createControlRecord(RiskPersonal person, GBaseJJD jjd, String tag) { RiskPersonalControlRecord controlRecord = new RiskPersonalControlRecord(); controlRecord.setName(person.getName()); diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java index 16dcd26..6c7a30e 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskModelTaskClueServiceImpl.java @@ -106,20 +106,13 @@ public class RiskModelTaskClueServiceImpl implements RiskModelTaskClueService { oldMap.put(tag.getSmallTag(), new Byte[0]); } for (RiskModelTaskClue clue : entry.getValue()) { - if (bigTag.equals(Default.BIG_TAG_SHWFR)) { - String[] strs = clue.getRiskReason().split(","); - for (int i = 0, len = strs.length; i < len; i++) { - if (oldMap.get(strs[i]) == null) { - tags.add(creatTag(bigTag, strs[i], clue)); - oldMap.put(strs[i], new Byte[0]); - } + for (String tag : clue.getTags()) { + if (oldMap.get(tag) == null) { + tags.add(creatTag(bigTag, tag, clue)); + oldMap.put(tag, new Byte[0]); } - continue; - } - if (oldMap.get(clue.getRiskReason()) == null) { - tags.add(creatTag(bigTag, clue.getRiskReason(), clue)); - oldMap.put(clue.getRiskReason(), new Byte[0]); } + } } if (!tags.isEmpty()) { diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java index 6b670d4..b70f52a 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java @@ -3,6 +3,8 @@ package com.biutag.supervisiondata.service.impl; import cn.hutool.core.util.NumberUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.biutag.supervisiondata.config.cache.RedisDao; +import com.biutag.supervisiondata.pojo.constants.RedisKey; import com.biutag.supervisiondata.pojo.entity.mine.Model; import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; diff --git a/src/main/java/com/biutag/supervisiondata/task/TaskService.java b/src/main/java/com/biutag/supervisiondata/task/TaskService.java index 43fa3aa..42aa2a9 100644 --- a/src/main/java/com/biutag/supervisiondata/task/TaskService.java +++ b/src/main/java/com/biutag/supervisiondata/task/TaskService.java @@ -1,6 +1,6 @@ package com.biutag.supervisiondata.task; -import com.biutag.supervisiondata.service.ModelClueService; +import com.biutag.supervisiondata.service.*; import lombok.AllArgsConstructor; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; @@ -8,12 +8,13 @@ import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; import com.biutag.supervisiondata.repository.RiskModelTaskClueRepository; import com.biutag.supervisiondata.repository.RiskPersonalRepository; -import com.biutag.supervisiondata.service.PointService; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -29,9 +30,6 @@ import java.util.stream.Collectors; @AllArgsConstructor public class TaskService { - @Resource - private PointService pointService; - @Resource private RiskPersonalRepository riskPersonalRepository; private final ModelClueService modelClueService; @@ -39,12 +37,49 @@ public class TaskService { @Resource private RiskModelTaskClueRepository riskModelTaskClueRepository; + @Resource + private PersonalService personalService; + + @Resource + private final GBaseSHRWFRService gBaseSHRWFRService; + + @Resource + private PetitionService petitionService; + + @Resource + private PointService pointService; + + @Resource + private GBaseJJDService gBaseJJDService; + + @Resource + private RiskPersonalService riskPersonalService; + /** - * 1点半执行 + * 1点半更新人员 */ @Scheduled(cron = "0 30 01 * * ?") - public void ageModel() { -// pointService.syncPointCall(initDomain()); + public void personRefresh() { + LocalDateTime start = LocalDate.now().minusDays(1).atTime(0,0,0); + LocalDateTime end = LocalDate.now().minusDays(1).atTime(23,59,59); + + personalService.pullInvestigate(); + personalService.pullPsychosis(); + petitionService.personPullAndSave(start, end); + gBaseSHRWFRService.pullAndSave(start, end); + personalService.pullPetitionAgain(start, end); + pointService.personPullAndSave(); + gBaseJJDService.pullAndSave(start, end); + riskPersonalService.fixed(); + personalService.syncPerson(LocalDate.now()); + } + + /** + * 1点更新机构缓存 + */ + @Scheduled(cron = "0 0 01 * * ?") + public void cacheRefresh() { + } TaskParamDomain initDomain() { diff --git a/src/main/java/com/biutag/supervisiondata/util/DataUtil.java b/src/main/java/com/biutag/supervisiondata/util/DataUtil.java new file mode 100644 index 0000000..bb8b179 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/util/DataUtil.java @@ -0,0 +1,36 @@ +package com.biutag.supervisiondata.util; + +import com.biutag.supervisiondata.pojo.ClueData; +import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; +import com.biutag.supervisiondata.pojo.entity.mine.RiskTask; +import lombok.experimental.UtilityClass; + +import java.time.LocalDateTime; +import java.util.Optional; + +/** + * @author kami on 2024-12-13 16:30:46 + * @version 0.0.1 + * @since 1.8 + */ +@UtilityClass +public class DataUtil { + + public static RiskModelTaskClue createClueData(RiskTask task, ClueData data) { + RiskModelTaskClue clue = new RiskModelTaskClue(); + clue.setModelId(task.getModelId()); + clue.setScore(data.getScore()); + clue.setName(data.getName()); + clue.setIdCode(data.getIdCode()); + clue.setTaskId(task.getId()); + clue.setData(data.getSourceData()); + clue.setEventTime(data.getEventTime()); + clue.setCreateTime(LocalDateTime.now()); + clue.setUpdateTime(LocalDateTime.now()); + clue.setCaseIds(data.getId()); + clue.setRiskReason(data.getTag()); + clue.setEventTime(Optional.ofNullable(data.getEventTime()).orElse(LocalDateTime.now())); + clue.setTags(data.getTags()); + return clue; + } +}