diff --git a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java index ef895cb..66aa32b 100644 --- a/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java +++ b/src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java @@ -101,7 +101,7 @@ public class ApplicationEvent { RedisDao.getInstance().init(redisTemplate); LocalDateTime end = LocalDate.now().minusDays(1).atTime(23,59,59); CompletableFutureUtil.runSync(() -> { -// personalService.init(); + personalService.init(List.of(75,130)); // personalService.pullInvestigate(); // personalService.pullPsychosis(); // gBaseSHRWFRService.pullAndSave(LocalDateTime.of(2019,12,6,0,0,0), end); @@ -144,14 +144,13 @@ public class ApplicationEvent { // pointService.syncCriminalPunishment(initDomain(List.of(115))); // pointService.syncAdministrativePunishment(initDomain(List.of(116))); // pointService.syncParentsDivorce(initDomain(List.of(117))); + gBaseJJDService.syncOtherContradict(initDomain(List.of(75))); pointService.syncFamilyDie(initDomain(List.of(118))); // pointService.syncFatherDie(initDomain(List.of(119))); // pointService.syncMotherDie(initDomain(List.of(120))); // pointService.syncChildNo(initDomain(List.of(121))); // pointService.syncXIDU(initDomain(List.of(122))); // pointService.syncFiliation(initDomain(List.of(123))); -// // 必须在123后面 -// 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/mapper/ads/GBaseSYRKXXMapper.java b/src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java index d9db157..1fee233 100644 --- a/src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java +++ b/src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java @@ -2,6 +2,7 @@ package com.biutag.supervisiondata.mapper.ads; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.biutag.supervisiondata.pojo.database.Contradiction; +import com.biutag.supervisiondata.pojo.domain.Contradict; import com.biutag.supervisiondata.pojo.domain.FightMan; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import org.apache.ibatis.annotations.Param; @@ -37,10 +38,17 @@ public interface GBaseSYRKXXMapper extends BaseMapper { * @return 信息 */ @Select(" select DISTINCT a.gmsfhm,a.xm,a.lxdh from csga_dwd.dwd_qt_jzpt_mdjfdsrxx a " + - " inner join csga_dwd.dwd_wp_zfba_xzjljstzs b on a.gmsfhm = b.zjhm " + + " inner join csga_dwd.dwd_qt_jzpt_mdjfdsrxx b on a.gmsfhm = b.zjhm " + " where a.djsj >= #{time}") List selectHeightFight(@Param("time")String time); + @Select(" select a.gmsfhm as gmsfhm, b.mdjfcddm as type, count(1) as number from csga_dwd.dwd_qt_jzpt_mdjfdsrxx a " + + " inner join csga_dwd.dwd_wp_zfba_mdjfzb as b on a.mdjfid = b.id " + + " inner join csga_wdpcdb.wdpc_person as c on a.gmsfhm = c.id_code " + + " where a.djsj > #{time}" + + " group by a.gmsfhm, b.mdjfcddm order by a.gmsfhm") + List selectContradict(@Param("time")String time); + /** * 矛盾纠纷人员(矛盾次数大于5次) * @param time 开始时间 diff --git a/src/main/java/com/biutag/supervisiondata/pojo/domain/Contradict.java b/src/main/java/com/biutag/supervisiondata/pojo/domain/Contradict.java new file mode 100644 index 0000000..9386a64 --- /dev/null +++ b/src/main/java/com/biutag/supervisiondata/pojo/domain/Contradict.java @@ -0,0 +1,20 @@ +package com.biutag.supervisiondata.pojo.domain; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author kami on 2024-12-17 10:35:28 + * @version 0.0.1 + * @since 1.8 + */ +@Data +public class Contradict implements Serializable { + + String gmsfhm; + + String type; + + Integer number; +} diff --git a/src/main/java/com/biutag/supervisiondata/service/PersonalService.java b/src/main/java/com/biutag/supervisiondata/service/PersonalService.java index 77de039..21a7349 100644 --- a/src/main/java/com/biutag/supervisiondata/service/PersonalService.java +++ b/src/main/java/com/biutag/supervisiondata/service/PersonalService.java @@ -2,6 +2,7 @@ package com.biutag.supervisiondata.service; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.List; /** * @author kami on 2024-11-25 10:59:37 @@ -49,7 +50,11 @@ public interface PersonalService { */ void pullPsychosis(); - void init(); + /** + * 初始化 + * @param modelIds 要清空的模型id集合 + */ + void init(List modelIds); /** * 同步人员到gbase 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 9781e85..1404f5c 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java @@ -9,6 +9,7 @@ import com.biutag.supervisiondata.config.cache.RedisDao; 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.Contradict; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; @@ -1001,72 +1002,51 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { @Override public void syncOtherContradict(TaskParamDomain domain) { String startTime = LocalDateTime.of(2023, 12, 6, 0, 0, 0).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); - List result = gBaseJJDRepository.getBaseMapper().selectAllContradict(startTime); - List idCodes = taskClueRepository.getBaseMapper().selectContradictModelIdCode(); - RiskTask task = taskRepository.create(result.size(), 75); - Map> idCodesMap = new WeakHashMap<>(); - Map> mobilesMap = new WeakHashMap<>(); + List list = gBaseSYRKXXRepository.getBaseMapper().selectContradict(startTime); + RiskTask task = taskRepository.create(list.size(), 75); - for (GBaseJJD gBaseJJD : result) { - String idCard = PatternUtil.takeIdCard(gBaseJJD.getCjqk()); - if (idCard.isEmpty()) { - idCard = PatternUtil.takeIdCard(gBaseJJD.getBjnr()); - } - boolean mobileContinue = false; - if (!idCard.isEmpty()) { - List tmp = Arrays.stream(idCard.split(",")).toList(); - switch (tmp.size()) { - case 0 -> mobileContinue = true; - case 1 -> idCodesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD); - default -> { - for (int i = 1; i < tmp.size(); i++) { - idCodesMap.computeIfAbsent(tmp.get(i), k -> new ArrayList<>()).add(gBaseJJD); - } - } - } - if (!mobileContinue) { - continue; - } - } - String mobile = PatternUtil.takeMobile(gBaseJJD.getCjqk()); - if (mobile.isEmpty()) { - mobile = PatternUtil.takeMobile(gBaseJJD.getBjnr()); - } - if (mobile.isEmpty()) { - continue; - } - List tmp = Arrays.stream(mobile.split(",")).toList(); - switch (tmp.size()) { - case 0 -> { - } - case 1 -> mobilesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD); - default -> { - for (int i = 1; i < tmp.size(); i++) { - mobilesMap.computeIfAbsent(tmp.get(i), k -> new ArrayList<>()).add(gBaseJJD); - } - } - } - } - - Map manMap = new WeakHashMap<>(); - idCodes.forEach(item -> manMap.put(item, new Byte[0])); + Map> map = list.stream().collect(Collectors.groupingBy(Contradict::getGmsfhm)); - List oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); - Map> oldMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); + Map oldMap = domain.getOldMap(task.getModelId(), true); List toInsert = new ArrayList<>(); for (RiskPersonal person : domain.getPersons()) { - if (manMap.get(person.getIdCode()) != null) { - // 非其他纠纷 + List contradicts = map.get(person.getIdCode()); + if (contradicts == null) { + continue; + } + if (oldMap.get(person.getIdCode()) != null) { continue; } - toInsert.addAll(collectionClue(idCodesMap, mobilesMap, person, oldMap, task, "其他纠纷")); + StringBuilder sb = new StringBuilder("该人员涉及"); + for (Contradict contradict : contradicts) { + switch (contradict.getType()) { + case "0" -> + sb.append("\n").append("简单矛盾纠纷").append(contradict.getNumber().toString()).append("起"); + case "1" -> + sb.append("\n").append("一般矛盾纠纷").append(contradict.getNumber().toString()).append("起"); + case "2" -> + sb.append("\n").append("复杂疑难矛盾纠纷").append(contradict.getNumber().toString()).append("起"); + case "3" -> + sb.append("\n").append("重大矛盾纠纷").append(contradict.getNumber().toString()).append("起"); + } + } + toInsert.add(DataUtil.createClueData(task, ClueData.builder() + .name(person.getName()) + .id("") + .idCode(person.getIdCode()) + .tags(List.of("其他矛盾纠纷")) + .personId(person.getId()) + .eventTime(null) + .sourceData(sb.substring(0, sb.length() - 1)) + .score(5) + .build())); } if (!toInsert.isEmpty()) { log.info("其他纠纷:{} ", toInsert.size()); - clueService.saveClues(toInsert,"B57其他矛盾纠纷"); + clueService.saveClues(toInsert, "B57其他矛盾纠纷"); } taskRepository.updateTask(task.getId(), toInsert.size(), 0); } @@ -1114,7 +1094,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { } List tmp = Arrays.stream(mobile.split(",")).toList(); switch (tmp.size()) { - case 0 -> {} + case 0 -> { + } case 1 -> mobilesMap.computeIfAbsent(tmp.getFirst(), k -> new ArrayList<>()).add(gBaseJJD); default -> { for (int i = 1; i < tmp.size(); i++) { 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 af3409b..fc17b14 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java @@ -484,12 +484,22 @@ public class PersonalServiceImpl implements PersonalService { private final RiskTestRepository riskTestRepository; + private final RiskModelTaskClueRepository riskModelTaskClueRepository; + + private final RiskPersonalTagRepository tagRepository; + @Override - public void init() { + public void init(List modelIds) { // riskTestRepository.getBaseMapper().truncatePerson(); - riskTestRepository.getBaseMapper().truncateClue(); - riskTestRepository.getBaseMapper().truncateTag(); - riskTestRepository.getBaseMapper().truncateTask(); +// riskTestRepository.getBaseMapper().truncateClue(); +// riskTestRepository.getBaseMapper().truncateTag(); +// riskTestRepository.getBaseMapper().truncateTask(); + if(modelIds.isEmpty()) { + return; + } + riskModelTaskClueRepository.remove(new LambdaQueryWrapper().in(RiskModelTaskClue::getModelId, modelIds)); + tagRepository.remove(new LambdaQueryWrapper().in(RiskPersonalTag::getModelId, modelIds)); + } private final WdpcPersonRepository wdpcPersonRepository; 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 dda7310..3835b7b 100644 --- a/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java +++ b/src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java @@ -63,7 +63,7 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService { Map modelMap = models.stream().collect(Collectors.toMap(Model::getRiskScoreRuleId, Function.identity(), (oldValue, newValue) -> newValue)); List clues = riskModelTaskClueRepository.list(new LambdaQueryWrapper() - .select(RiskModelTaskClue::getIdCode, RiskModelTaskClue::getModelId, RiskModelTaskClue::getScore, RiskModelTaskClue::getScoreCalc) + .select(RiskModelTaskClue::getId, RiskModelTaskClue::getIdCode, RiskModelTaskClue::getModelId, RiskModelTaskClue::getScore, RiskModelTaskClue::getScoreCalc) .eq(RiskModelTaskClue::getDel, 0)); log.info("1、修改每项得分\n2、修改人员总分"); log.info("1、计算分项倍分");