Browse Source

修改人员标签和风险项的入库逻辑

master
kami 1 year ago
parent
commit
ab8c61272c
  1. 5
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 10
      src/main/java/com/biutag/supervisiondata/mapper/ads/GBaseSYRKXXMapper.java
  3. 20
      src/main/java/com/biutag/supervisiondata/pojo/domain/Contradict.java
  4. 7
      src/main/java/com/biutag/supervisiondata/service/PersonalService.java
  5. 91
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java
  6. 18
      src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java
  7. 2
      src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java

5
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));
// 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)));

10
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<GBaseSYRKXX> {
* @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<GBaseSYRKXX> 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<Contradict> selectContradict(@Param("time")String time);
/**
* 矛盾纠纷人员(矛盾次数大于5次)
* @param time 开始时间

20
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;
}

7
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<Integer> modelIds);
/**
* 同步人员到gbase

91
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<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectAllContradict(startTime);
List<String> idCodes = taskClueRepository.getBaseMapper().selectContradictModelIdCode();
RiskTask task = taskRepository.create(result.size(), 75);
Map<String, List<GBaseJJD>> idCodesMap = new WeakHashMap<>();
Map<String, List<GBaseJJD>> mobilesMap = new WeakHashMap<>();
List<Contradict> 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<String> 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<String> 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<String, Byte[]> manMap = new WeakHashMap<>();
idCodes.forEach(item -> manMap.put(item, new Byte[0]));
Map<String, List<Contradict>> map = list.stream().collect(Collectors.groupingBy(Contradict::getGmsfhm));
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>());
Map<String, List<RiskModelTaskClue>> oldMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode));
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (RiskPersonal person : domain.getPersons()) {
if (manMap.get(person.getIdCode()) != null) {
// 非其他纠纷
List<Contradict> 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<String> 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++) {

18
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<Integer> 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<RiskModelTaskClue>().in(RiskModelTaskClue::getModelId, modelIds));
tagRepository.remove(new LambdaQueryWrapper<RiskPersonalTag>().in(RiskPersonalTag::getModelId, modelIds));
}
private final WdpcPersonRepository wdpcPersonRepository;

2
src/main/java/com/biutag/supervisiondata/service/impl/RiskScoreRuleServiceImpl.java

@ -63,7 +63,7 @@ public class RiskScoreRuleServiceImpl implements RiskScoreRuleService {
Map<Integer, Model> modelMap = models.stream().collect(Collectors.toMap(Model::getRiskScoreRuleId, Function.identity(), (oldValue, newValue) -> newValue));
List<RiskModelTaskClue> clues = riskModelTaskClueRepository.list(new LambdaQueryWrapper<RiskModelTaskClue>()
.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、计算分项倍分");

Loading…
Cancel
Save