Browse Source

Merge remote-tracking branch 'origin/master'

master
sjh 1 year ago
parent
commit
75c5781159
  1. 11
      src/main/java/com/biutag/supervisiondata/mapper/mine/DataCaseVerifMapper.java
  2. 11
      src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetition12337Mapper.java
  3. 13
      src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetitionComplaintMapper.java
  4. 31
      src/main/java/com/biutag/supervisiondata/pojo/domain/PetitionData.java
  5. 125
      src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java

11
src/main/java/com/biutag/supervisiondata/mapper/mine/DataCaseVerifMapper.java

@ -2,8 +2,17 @@ package com.biutag.supervisiondata.mapper.mine;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.domain.PetitionData;
import com.biutag.supervisiondata.pojo.entity.mine.DataCaseVerif;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
public interface DataCaseVerifMapper extends BaseMapper<DataCaseVerif> {
import java.util.List;
public interface DataCaseVerifMapper extends BaseMapper<DataCaseVerif> {
@Select(" select a.origin_id as id, b.name as name,b.id_code as idCode,b.mobile_number as mobile, a.third_depart_id as departId, a.third_depart_name as departName, a.discovery_time as eventTime, a.thing_desc as content " +
" from data_case_verif as a " +
" INNER join risk_personal as b on a.responder_phone = b.mobile_number and a.responder_name = b.name" +
" where a.discovery_time >= #{time}")
List<PetitionData> selectRiskPerson(@Param("time")String time);
}

11
src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetition12337Mapper.java

@ -2,10 +2,19 @@ package com.biutag.supervisiondata.mapper.mine;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.domain.PetitionData;
import com.biutag.supervisiondata.pojo.entity.mine.DataPetition12337;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
public interface DataPetition12337Mapper extends BaseMapper<DataPetition12337> {
import java.util.List;
public interface DataPetition12337Mapper extends BaseMapper<DataPetition12337> {
@Select(" select a.only_id as id, b.name as name,b.id_code as idCode,b.mobile_number as mobile, a.third_depart_id as departId, a.third_depart_name as departName, a.discover_time as eventTime, a.review_des as content " +
" from data_petition_12337 as a " +
" INNER join risk_personal as b on a.id_code = b.id_code " +
" where a.discover_time >= #{time}")
List<PetitionData> selectRiskPerson(@Param("time")String time);
}

13
src/main/java/com/biutag/supervisiondata/mapper/mine/DataPetitionComplaintMapper.java

@ -1,10 +1,17 @@
package com.biutag.supervisiondata.mapper.mine;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.biutag.supervisiondata.pojo.domain.PetitionData;
import com.biutag.supervisiondata.pojo.entity.mine.DataPetitionComplaint;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComplaint> {
import java.util.List;
public interface DataPetitionComplaintMapper extends BaseMapper<DataPetitionComplaint> {
@Select(" select a.origin_id as id,b.name as name,b.id_code as idCode,b.mobile_number as mobile, a.third_depart_id as departId, a.third_depart_name as departName, a.discovery_time as eventTime, a.thing_desc as content " +
" from data_petition_complaint as a " +
" INNER join risk_personal as b on a.responder_id_code = b.id_code " +
" where a.discovery_time >= #{time}")
List<PetitionData> selectRiskPerson(@Param("time")String time);
}

31
src/main/java/com/biutag/supervisiondata/pojo/domain/PetitionData.java

@ -0,0 +1,31 @@
package com.biutag.supervisiondata.pojo.domain;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author kami on 2024-12-12 14:54:20
* @version 0.0.1
* @since 1.8
*/
@Data
public class PetitionData implements Serializable {
String id;
String name;
String idCode;
String mobile;
String departId;
String departName;
String content;
LocalDateTime eventTime;
}

125
src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java

@ -5,6 +5,7 @@ import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil;
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.PetitionData;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX;
import com.biutag.supervisiondata.pojo.entity.mine.*;
@ -21,6 +22,7 @@ import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
@ -292,106 +294,64 @@ public class PetitionServiceImpl implements PetitionService {
RiskTask task = riskTaskRepository.create(domain.getPersons().size(), 40);
LocalDateTime time = LocalDateTime.now().minusMonths(12);
List<DataPetition12337> pList1 = new ArrayList<>();
for (List<String> idCard : domain.getIdCards()) {
pList1.addAll(petition12337Repository.list(new LambdaQueryWrapper<DataPetition12337>()
.select(DataPetition12337::getOnlyId, DataPetition12337::getName, DataPetition12337::getIdCode, DataPetition12337::getPhone, DataPetition12337::getThirdDepartId, DataPetition12337::getThirdDepartName, DataPetition12337::getDiscoverTime, DataPetition12337::getReviewDes).ge(DataPetition12337::getDiscoverTime, time)
.in(DataPetition12337::getIdCode, idCard)));
}
List<DataPetitionComplaint> pList2 = new ArrayList<>();
for (List<String> idCard : domain.getIdCards()) {
pList2.addAll(complaintRepository.list(new LambdaQueryWrapper<DataPetitionComplaint>()
.select(DataPetitionComplaint::getOriginId, DataPetitionComplaint::getResponderName, DataPetitionComplaint::getResponderPhone, DataPetitionComplaint::getResponderName, DataPetitionComplaint::getThirdDepartId, DataPetitionComplaint::getThirdDepartName, DataPetitionComplaint::getDiscoveryTime, DataPetitionComplaint::getThingDesc).ge(DataPetitionComplaint::getDiscoveryTime, time)
.in(DataPetitionComplaint::getResponderPhone, idCard)));
}
List<PetitionData> dataList1 = new ArrayList<>();
List<PetitionData> dataList2 = new ArrayList<>();
List<PetitionData> dataList3 = new ArrayList<>();
CompletableFuture.allOf(
CompletableFutureUtil.runSyncObject(() -> dataList1.addAll(dataCaseVerifRepository.getBaseMapper().selectRiskPerson(time.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))))),
CompletableFutureUtil.runSyncObject(() -> dataList2.addAll(complaintRepository.getBaseMapper().selectRiskPerson(time.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))))),
CompletableFutureUtil.runSyncObject(() -> dataList3.addAll(petition12337Repository.getBaseMapper().selectRiskPerson(time.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))))
).join();
List<DataCaseVerif> pList3 = new ArrayList<>();
List<String> mobiles = domain.getPersons().stream().map(RiskPersonal::getMobileNumber).distinct().toList();
List<List<String>> doubleMobile = IntStream.range(0, (mobiles.size() + 9999) / 10000)
.mapToObj(i -> mobiles.subList(i * 10000, Math.min((i + 1) * 10000, mobiles.size())))
.toList();
for (List<String> mobile : doubleMobile) {
pList3.addAll(dataCaseVerifRepository.list(new LambdaQueryWrapper<DataCaseVerif>()
.select(DataCaseVerif::getOriginId, DataCaseVerif::getResponderName, DataCaseVerif::getResponderPhone, DataCaseVerif::getThirdDepartId, DataCaseVerif::getThirdDepartName, DataCaseVerif::getDiscoveryTime, DataCaseVerif::getThingDesc).ge(DataCaseVerif::getDiscoveryTime, time)
.in(DataCaseVerif::getResponderPhone, mobile)));
}
// 先搞定这个电话号码的
Map<String, List<RiskPersonal>> man = domain.getPersons().stream().filter(item -> item.getMobileNumber() != null).collect(Collectors.groupingBy(RiskPersonal::getMobileNumber));
Map<String, RiskPersonal> idCodeMan = domain.getPersons().stream().collect(Collectors.toMap(RiskPersonal::getIdCode, Function.identity(), (oldValue, newValue) -> newValue));
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>());
Map<String, RiskModelTaskClue> oldMap = oldList.stream().collect(Collectors.toMap(RiskModelTaskClue::getCaseIds, Function.identity(), (val, old) -> val));
List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (DataCaseVerif dataCaseVerif : pList3) {
if (oldMap.get(BhUtil.petBh(dataCaseVerif.getOriginId())) != null) {
continue;
}
List<RiskPersonal> list = man.get(dataCaseVerif.getResponderPhone());
RiskPersonal person = comparePerson(list, dataCaseVerif.getResponderName());
if (person == null) {
continue;
}
toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder()
.id(dataCaseVerif.getOriginId())
.tag(Default.PETITION_CASE_TAG)
.personId(person.getId())
.departId(dataCaseVerif.getThirdDepartId())
.departName(dataCaseVerif.getThirdDepartName())
.eventTime(dataCaseVerif.getDiscoveryTime())
.idCode(person.getIdCode())
.name(person.getName())
.sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:" + dataCaseVerif.getThingDesc())
.build()));
}
List<RiskModelTaskClue> toInsert1 = new ArrayList<>(createClues(dataList1, oldMap, idCodeMan, task, Default.PETITION_CASE_TAG));
List<RiskModelTaskClue> toInsert2 = new ArrayList<>(createClues(dataList2, oldMap, idCodeMan, task, Default.PETITION_TAG));
List<RiskModelTaskClue> toInsert3 = new ArrayList<>(createClues(dataList3, oldMap, idCodeMan, task, Default.PETITION_12337_TAG));
for (DataPetition12337 item : pList1) {
if (oldMap.get(BhUtil.petBh(item.getOnlyId())) != null) {
continue;
if (!toInsert1.isEmpty()) {
log.info("信访数据1: {}", toInsert1.size());
riskModelTaskClueService.saveClues(toInsert1, Default.PETITION_CASE_TAG);
}
RiskPersonal person = idCodeMan.get(item.getIdCode());
if (person == null) {
continue;
if (!toInsert2.isEmpty()) {
log.info("信访数据2: {}", toInsert2.size());
riskModelTaskClueService.saveClues(toInsert2, Default.PETITION_TAG);
}
toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder()
.id(item.getOnlyId())
.tag(Default.PETITION_12337_TAG)
.personId(person.getId())
.departId(item.getThirdDepartId())
.departName(item.getThirdDepartName())
.eventTime(item.getDiscoverTime())
.idCode(person.getIdCode())
.name(person.getName())
.sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:" + item.getReviewDes())
.build()));
if (!toInsert3.isEmpty()) {
log.info("信访数据3: {}", toInsert3.size());
riskModelTaskClueService.saveClues(toInsert3, Default.PETITION_12337_TAG);
}
riskTaskRepository.updateTask(task.getId(), toInsert1.size()+toInsert2.size()+toInsert3.size(), 0);
}
for (DataPetitionComplaint item : pList2) {
if (oldMap.get(BhUtil.petBh(item.getOriginId())) != null) {
List<RiskModelTaskClue> createClues(List<PetitionData> dataList, Map<String, RiskModelTaskClue> oldMap, Map<String, RiskPersonal> idCodeMan, RiskTask task, String tag) {
List<RiskModelTaskClue> toInsert = new ArrayList<>();
for (PetitionData data : dataList) {
if (oldMap.get(BhUtil.petBh(data.getId())) != null) {
continue;
}
RiskPersonal person = idCodeMan.get(item.getResponderIdCode());
RiskPersonal person = idCodeMan.get(data.getIdCode());
if (person == null) {
continue;
}
toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder()
.id(item.getOriginId())
.tag(Default.PETITION_TAG)
.id(data.getId())
.tag(tag)
.personId(person.getId())
.departId(item.getThirdDepartId())
.departName(item.getThirdDepartName())
.eventTime(item.getDiscoveryTime())
.departId(data.getDepartId())
.departName(data.getDepartName())
.eventTime(data.getEventTime())
.idCode(person.getIdCode())
.name(person.getName())
.sourceData("该人员在近12个月内有诉求不满或长期未化解的情况,增加风险分5分,具体情况为:" + item.getThingDesc())
.sourceData("该人员在近12个月内有"+tag+"的情况,具体情况为:" + data.getContent())
.build()));
}
if (!toInsert.isEmpty()) {
log.info("公安信访数据: {}", toInsert.size());
riskModelTaskClueService.saveClues(toInsert, Default.MAIL_IG);
}
riskTaskRepository.updateTask(task.getId(), toInsert.size(), 0);
return toInsert;
}
GBaseSYRKXX compare(List<GBaseSYRKXX> infos, String name) {
@ -405,17 +365,6 @@ public class PetitionServiceImpl implements PetitionService {
return info;
}
RiskPersonal comparePerson(List<RiskPersonal> infos, String name) {
RiskPersonal info = null;
for (RiskPersonal gBaseSYRKXX : infos) {
if (gBaseSYRKXX.getName().equals(name)) {
info = gBaseSYRKXX;
break;
}
}
return info;
}
RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data) {
RiskModelTaskClue clue = new RiskModelTaskClue();
clue.setModelId(modelId);

Loading…
Cancel
Save