diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index 4cb01b9..265a561 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -99,7 +99,7 @@ public class ApplicationEvent { public void serviceReady() { RedisDao.getInstance().init(redisTemplate); - LocalDateTime start = LocalDateTime.of(2024, 1, 1, 0, 0, 0); + LocalDateTime start = LocalDateTime.of(2023, 12, 6, 0, 0, 0); LocalDateTime end = LocalDateTime.now(); CompletableFutureUtil.runSync(() -> { // 测试数据 @@ -118,16 +118,15 @@ public class ApplicationEvent { // // gBaseJJDService.pullPoliceInstance(start, end); // - +// // 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,60,61,62))); - +// 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))); @@ -138,7 +137,9 @@ public class ApplicationEvent { // pointService.syncControlNoPower(initDomain(List.of(48))); // pointService.syncOilBuy(initDomain(List.of(52))); // 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.syncIsPetition(initDomain(List.of(111))); // pointService.syncFatherEducation(initDomain(List.of(112))); // pointService.syncMotherEducation(initDomain(List.of(113))); @@ -152,6 +153,8 @@ public class ApplicationEvent { pointService.syncChildNo(initDomain(List.of(121))); // *********暂时不要********** +// riskTaskService.caseModelTask(initDomain(List.of(35))); + // riskTaskService.heightFight(initDomain(List.of(42))); // pointService.syncPointCall(initDomain(List.of(50))); diff --git a/src/main/java/com/biutag/supervisiondata/mapper/wdpc/WdpcGrjdZblxMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/wdpc/WdpcGrjdZblxMapper.java new file mode 100644 index 0000000..c40c7c8 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/mapper/wdpc/WdpcGrjdZblxMapper.java @@ -0,0 +1,12 @@ +package com.biutag.supervisiondata.mapper.wdpc; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdZblx; + +/** + * @author kami on 2024-12-07 18:22:32 + * @version 0.0.1 + * @since 1.8 + */ +public interface WdpcGrjdZblxMapper extends BaseMapper { +} 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 065ff27..3e2c0fd 100644 --- a/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java +++ b/src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java @@ -78,7 +78,7 @@ public class Default { public static final String FIGHT_IG = "民风习俗因素"; - public static final String POINT_IG = "重点对象因素"; + public static final String POINT_IG = "作案人特殊属性"; public static final String VIOLENCE_IG ="暴力伤害行为因素"; diff --git a/src/main/java/com/biutag/supervisiondata/repository/WdpcGrjdZblxRepository.java b/src/main/java/com/biutag/supervisiondata/repository/WdpcGrjdZblxRepository.java new file mode 100644 index 0000000..fea3b53 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/repository/WdpcGrjdZblxRepository.java @@ -0,0 +1,15 @@ +package com.biutag.supervisiondata.repository; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.supervisiondata.mapper.wdpc.WdpcGrjdZblxMapper; +import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdZblx; +import org.springframework.stereotype.Service; + +/** + * @author kami on 2024-12-07 19:56:18 + * @version 0.0.1 + * @since 1.8 + */ +@Service +public class WdpcGrjdZblxRepository 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 b83b00a..902578b 100644 --- a/src/main/java/com/biutag/supervisiondata/service/PointService.java +++ b/src/main/java/com/biutag/supervisiondata/service/PointService.java @@ -13,20 +13,43 @@ public interface PointService { void personPullAndSave(LocalDateTime start, LocalDateTime end); + /** + * 重点人员类型 + * @param domain + */ void syncScore(TaskParamDomain domain); + /** + * 重点人员列管类型 + * @param domain + */ + void syncPointType(TaskParamDomain domain); + /** * 同步暴力人员 * @param domain domain */ void syncViolence(TaskParamDomain domain); + /** + * 自杀 + * @param domain domain + */ void syncKillSelf(TaskParamDomain domain); - + /** + * 涉药 + * @param domain domain + */ void syncDrug(TaskParamDomain domain); - + /** + * 管控不给力 + * @param domain domain + */ void syncControlNoPower(TaskParamDomain domain); - + /** + * 报警管控 + * @param domain domain + */ void syncPointCall(TaskParamDomain domain); /** diff --git a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java index 1b48c29..cd1a142 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java @@ -375,8 +375,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { List jjdList; List toInsert = new ArrayList<>(); for (RiskPersonal person : domain.getPersons()) { - jjdList = Optional.of(idCodeMap.get(person.getIdCode())).orElse(new ArrayList<>()); - jjdList.addAll(Optional.of(mobileMap.get(person.getMobileNumber())).orElse(new ArrayList<>())); + jjdList = Optional.ofNullable(idCodeMap.get(person.getIdCode())).orElse(new ArrayList<>()); + jjdList.addAll(Optional.ofNullable(mobileMap.get(person.getMobileNumber())).orElse(new ArrayList<>())); if (jjdList.isEmpty()) { continue; } @@ -555,8 +555,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { * @return 要新增的clue */ List collectionClue(Map> idCode, Map> mobile,RiskPersonal personal,Map> personOldMap, RiskTask task, String tag) { - List jjdList = Optional.of(idCode.get(personal.getIdCode())).orElse(new ArrayList<>()); - jjdList.addAll(Optional.of(mobile.get(personal.getMobileNumber())).orElse(new ArrayList<>())); + List jjdList = Optional.ofNullable(idCode.get(personal.getIdCode())).orElse(new ArrayList<>()); + jjdList.addAll(Optional.ofNullable(mobile.get(personal.getMobileNumber())).orElse(new ArrayList<>())); if (jjdList.isEmpty()) { return new ArrayList<>(); } 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 647db50..472a70c 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java @@ -14,6 +14,7 @@ import com.biutag.supervisiondata.pojo.domain.*; import com.biutag.supervisiondata.pojo.entity.dwd.*; import com.biutag.supervisiondata.pojo.entity.mine.*; import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdXfsj; +import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdZblx; import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcHZCRYXX; import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.service.PointService; @@ -91,7 +92,7 @@ public class PointServiceImpl implements PointService { // 全部增加 for (RiskPersonal personal : entry.getValue()) { toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() - .tag(personal.getTags()) + .tag("重点人员") .name(personal.getName()) .idCode(personal.getIdCode()) .eventTime(Optional.ofNullable(personal.getControlTime()).orElse(LocalDateTime.now())) @@ -106,7 +107,7 @@ public class PointServiceImpl implements PointService { for (RiskPersonal personal : entry.getValue()) { if (clueMap.get(personal.getTags()) == null) { toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() - .tag(personal.getTags()) + .tag("重点人员") .name(personal.getName()) .idCode(personal.getIdCode()) .eventTime(Optional.ofNullable(personal.getControlTime()).orElse(LocalDateTime.now())) @@ -129,6 +130,57 @@ public class PointServiceImpl implements PointService { taskRepository.updateById(updateTask); } + private final WdpcGrjdZblxRepository zblxRepository; + + @Override + public void syncPointType(TaskParamDomain domain) { + List lxList = zblxRepository.list(new LambdaQueryWrapper() + .eq(WdpcGrjdZblx::getLxdm, "18")); + + Map map = lxList.stream().collect(Collectors.toMap(WdpcGrjdZblx::getDmbh, Function.identity(), (val, old) -> val)); + + List list = zdryRepository.getBaseMapper().syncPointPeople(); + log.info("重点人员查询人数: {}", list.size()); + RiskTask task = taskRepository.create(list.size(), 67); + + Map personalMap = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (val, old) -> val)); + + 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<>(); + for (GBaseZDRY ry : list) { + RiskPersonal person = personalMap.get(ry.getSfzh()); + if(person==null) { + continue; + } + List codes = PatternUtil.takeMarkPositionToString(ry.getZdrylbbj()); + if (codes.isEmpty()) { + continue; + } + List oldList = Optional.ofNullable(personMap.get(ry.getSfzh())).orElse(new ArrayList<>()); + Map oldClue = oldList.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val)); + for (String index : codes) { + WdpcGrjdZblx zblx = map.get(index); + if(oldClue.get(index) != null || zblx == null) { + continue; + } + toInsert.add(createClue(task.getModelId(), zblx.getScore().intValue(), task.getId(), ClueData.builder() + .id(index) + .personId(person.getId()) + .tag(zblx.getDmmc()) + .name(person.getName()) + .idCode(person.getIdCode()) + .sourceData("该人员存在标签:" + zblx.getDmmc() + ",增加风险分5分") + .build())); + } + } + if (!toInsert.isEmpty()) { + log.info("保存重点人员标签, {}"); + modelTaskClueService.saveClues(toInsert, Default.POINT_IG); + } + taskRepository.updateTask(task.getId(), toInsert.size(), 0); + } + @Override public void syncViolence(TaskParamDomain domain) { RiskTask task = createTask(domain.getPersons().size(), 44); @@ -164,7 +216,6 @@ public class PointServiceImpl implements PointService { .id(violence.getAjbh()) .personId(person.getId()) .idCode(person.getIdCode()) - .sourceData(JSON.toJSONString(violence)) .sourceData("通过核查案件信息,发现该人员有暴力伤害行为,案件编号为:" + violence.getAjbh() + Optional.ofNullable(violence.getWfss()).map(it -> ",具体情况为:" + it).orElse("")) .tag(violence.getAjlbmc()) .build(); diff --git a/src/main/java/com/biutag/supervisiondata/util/PatternUtil.java b/src/main/java/com/biutag/supervisiondata/util/PatternUtil.java index b0c3516..321e413 100644 --- a/src/main/java/com/biutag/supervisiondata/util/PatternUtil.java +++ b/src/main/java/com/biutag/supervisiondata/util/PatternUtil.java @@ -65,6 +65,23 @@ public class PatternUtil { return indexes; } + public static List takeMarkPositionToString(String content) { + List indexes = new ArrayList<>(); + if(content == null) { + return indexes; + } + Matcher code = MARK.matcher(content); + while (code.find()) { + int index = code.start()+1; + if(index < 10) { + indexes.add("0"+index); + } else { + indexes.add(""+index); + } + } + return indexes; + } + public static void main(String[] args) { String test = "00001100101"; log.info("{}", takeMarkPosition(test));