Browse Source

Merge remote-tracking branch 'origin/master'

master
sjh 1 year ago
parent
commit
ebbf929666
  1. 3
      src/main/java/com/biutag/supervisiondata/mapper/mine/RiskModelTaskClueMapper.java
  2. 92
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java

3
src/main/java/com/biutag/supervisiondata/mapper/mine/RiskModelTaskClueMapper.java

@ -15,4 +15,7 @@ public interface RiskModelTaskClueMapper extends BaseMapper<RiskModelTaskClue> {
@Select(" select * from risk_model_task_clue where id_code in (select id_code from risk_model_task_clue where model_id = 43 and risk_reason = '特定人员' group by id_code having count(1) > 1) and model_id = 43 and risk_reason = '特定人员' ")
List<RiskModelTaskClue> selectToKill();
@Select(" select distinct id_code from risk_model_task_clue where model_id in (65,66,69,70,72,73,123)")
List<String> selectContradictModelIdCode();
}

92
src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java

@ -1006,39 +1006,85 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
taskRepository.updateTask(task.getId(), toInsert.size(), 0);
}
private final RiskModelTaskClueRepository taskClueRepository;
@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>> jjdMap = new HashMap<>();
Map<String, List<GBaseJJD>> jjdMMap = new HashMap<>();
// for (GBaseJJD item : result) {
// if (item.getBjrzjhm() != null) {
// jjdMap.computeIfAbsent(item.getBjrzjhm(), k -> new ArrayList<>()).add(item);
// continue;
// }
// String idCards = PatternUtil.takeIdCard(item.getCjqk());
// if (!idCards.isEmpty()) {
// person.setIdCode(idCards);
// String[] strs = idCards.split(",");
// for (String s : strs) {
// jjdMap.computeIfAbsent(item.getBjrzjhm(), k -> new ArrayList<>()).add(item);
// }
// } else if (item.getBjrlxdh() == null) {
// continue;
// } else {
// mobiles1.add(item.getBjrlxdh());
// jjdMMap.computeIfAbsent(item.getBjrzjhm(), k -> new ArrayList<>()).add(item);
// }
// personals.add(person);
// }
Map<String, List<GBaseJJD>> idCodesMap = new WeakHashMap<>();
Map<String, List<GBaseJJD>> mobilesMap = new WeakHashMap<>();
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]));
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));
List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (RiskPersonal person : domain.getPersons()) {
if(manMap.get(person.getIdCode()) != null) {
// 非其他纠纷
continue;
}
toInsert.addAll(collectionClue(idCodesMap, mobilesMap, person, oldMap, task, "其他纠纷"));
}
if (!toInsert.isEmpty()) {
log.info("其他纠纷:{} ", toInsert.size());
clueService.saveClues(toInsert, Default.HOME_VIOLENCE);
}
taskRepository.updateTask(task.getId(), toInsert.size(), 0);
}
/**
* 遍历接警单
*
* @param modelId 模型id
* @param task 任务
* @param tag 标签
* @param result 接警单数据
* @param domain domain

Loading…
Cancel
Save