Browse Source

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

master
kami 1 year ago
parent
commit
245f5c5576
  1. 82
      src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java
  2. 6
      src/main/java/com/biutag/supervisiondata/rest/ApiController.java
  3. 5
      src/main/java/com/biutag/supervisiondata/service/PersonalService.java
  4. 19
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java
  5. 10
      src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java
  6. 55
      src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java
  7. 15
      src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java
  8. 35
      src/main/java/com/biutag/supervisiondata/service/impl/PetitionServiceImpl.java
  9. 43
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java
  10. 123
      src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java
  11. 34
      src/main/java/com/biutag/supervisiondata/util/ImageUtil.java

82
src/main/java/com/biutag/supervisiondata/event/ApplicationEvent.java

@ -101,58 +101,58 @@ public class ApplicationEvent {
RedisDao.getInstance().init(redisTemplate);
LocalDateTime end = LocalDate.now().minusDays(1).atTime(23,59,59);
CompletableFutureUtil.runSync(() -> {
personalService.init();
personalService.pullInvestigate();
personalService.pullPsychosis();
gBaseSHRWFRService.pullAndSave(LocalDateTime.of(2019,12,6,0,0,0), end);
petitionService.personPullAndSave(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end);
personalService.pullPetitionAgain(LocalDateTime.of(2000, 12, 6, 0, 0, 0), end);
pointService.personPullAndSave();
gBaseJJDService.pullAndSave(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end);
riskPersonalService.fixed();
personalService.syncPerson(LocalDate.now());
petitionService.petitionModelTask(initDomain(List.of(40)));
// personalService.init();
// personalService.pullInvestigate();
// personalService.pullPsychosis();
// gBaseSHRWFRService.pullAndSave(LocalDateTime.of(2019,12,6,0,0,0), end);
// petitionService.personPullAndSave(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end);
// personalService.pullPetitionAgain(LocalDateTime.of(2000, 12, 6, 0, 0, 0), end);
// pointService.personPullAndSave();
// gBaseJJDService.pullAndSave(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end);
// riskPersonalService.fixed();
// personalService.syncPerson(LocalDate.now());
// petitionService.petitionModelTask(initDomain(List.of(40)));
riskTaskService.eduAndAreaModelTask(initDomain(List.of(34,41)));
riskTaskService.infoModelTask(initDomain(List.of(32,33)));
marriageService.marriageModelTask(initDomain(List.of(39,51)));
pointService.syncSecurity(initDomain(List.of(37)));
habitService.habitModelTask(LocalDateTime.of(2023, 12, 6, 0, 0, 0), initDomain(List.of(36,60,61,62)));
// pointService.syncSecurity(initDomain(List.of(37)));
// habitService.habitModelTask(LocalDateTime.of(2023, 12, 6, 0, 0, 0), initDomain(List.of(36,60,61,62)));
pointService.syncCarUser(initDomain(List.of(53)));
pointService.syncScore(initDomain(List.of(43)));
pointService.syncViolence(initDomain(List.of(44)));
noControlService.syncNoControlData(initDomain(List.of(45)));
pointService.syncDrug(initDomain(List.of(37)));
pointService.syncControlNoPower(initDomain(List.of(48)));
pointService.syncOilBuy(initDomain(List.of(52)));
gBaseJJDService.pullPoliceInstance(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end, initDomain(List.of(55,56,57,58)));
jsbryService.syncPys(initDomain(List.of(59)));
// pointService.syncViolence(initDomain(List.of(44)));
// noControlService.syncNoControlData(initDomain(List.of(45)));
// pointService.syncDrug(initDomain(List.of(37)));
// pointService.syncControlNoPower(initDomain(List.of(48)));
// pointService.syncOilBuy(initDomain(List.of(52)));
// gBaseJJDService.pullPoliceInstance(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end, initDomain(List.of(55,56,57,58)));
// 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.syncPointType(initDomain(List.of(67)));
gBaseSHRWFRService.hadWork(initDomain(List.of(68)));
gBaseJJDService.syncParentRelation(initDomain(List.of(69,70)));
gBaseJJDService.syncLove(initDomain(List.of(71)));
gBaseJJDService.syncMarryDispute(initDomain(List.of(72)));
gBaseJJDService.syncNeighborAndColleagueDispute(initDomain(List.of(73)));
gBaseJJDService.syncBullying(initDomain(List.of(74)));
gBaseSHRWFRService.crimeName(initDomain(List.of(76)));
pointService.syncIsPetition(initDomain(List.of(40)));
pointService.syncFatherEducation(initDomain(List.of(112)));
pointService.syncMotherEducation(initDomain(List.of(113)));
pointService.syncDomicileType(initDomain(List.of(114)));
pointService.syncCriminalPunishment(initDomain(List.of(115)));
pointService.syncAdministrativePunishment(initDomain(List.of(116)));
pointService.syncParentsDivorce(initDomain(List.of(117)));
pointService.syncFamilyDie(initDomain(List.of(118)));
pointService.syncFatherDie(initDomain(List.of(119)));
// gBaseJJDService.syncPoliceAttack(initDomain(List.of(64)));
// gBaseJJDService.syncHomeViolence(initDomain(List.of(65,66)));
// pointService.syncPointType(initDomain(List.of(67)));
// gBaseSHRWFRService.hadWork(initDomain(List.of(68)));
// gBaseJJDService.syncParentRelation(initDomain(List.of(69,70)));
// gBaseJJDService.syncLove(initDomain(List.of(71)));
// gBaseJJDService.syncMarryDispute(initDomain(List.of(72)));
// gBaseJJDService.syncNeighborAndColleagueDispute(initDomain(List.of(73)));
// gBaseJJDService.syncBullying(initDomain(List.of(74)));
// gBaseSHRWFRService.crimeName(initDomain(List.of(76)));
// pointService.syncIsPetition(initDomain(List.of(40)));
// pointService.syncFatherEducation(initDomain(List.of(112)));
// pointService.syncMotherEducation(initDomain(List.of(113)));
// pointService.syncDomicileType(initDomain(List.of(114)));
// pointService.syncCriminalPunishment(initDomain(List.of(115)));
// pointService.syncAdministrativePunishment(initDomain(List.of(116)));
// pointService.syncParentsDivorce(initDomain(List.of(117)));
// 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)));
// gBaseJJDService.syncOtherContradict(initDomain(List.of(75)));
pointService.syncPetitionContent(initDomain(List.of(124)));
pointService.syncMedicalPressure(initDomain(List.of(125)));

6
src/main/java/com/biutag/supervisiondata/rest/ApiController.java

@ -71,6 +71,12 @@ public class ApiController {
return RS.success();
}
@GetMapping("/local/image")
public RS<String> localImage() {
CompletableFutureUtil.runSync(() -> personalService.syncLocalImage());
return RS.success();
}
@GetMapping("/get/jjd")
public String getJJD() {
String data = (String) RedisDao.getInstance().leftPop("jjd");

5
src/main/java/com/biutag/supervisiondata/service/PersonalService.java

@ -61,4 +61,9 @@ public interface PersonalService {
* 同步人员证照
*/
void syncPersonImage();
/**
* 同步本地人员证照
*/
void syncLocalImage();
}

19
src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java

@ -20,6 +20,7 @@ import com.biutag.supervisiondata.service.GBaseSHRWFRService;
import com.biutag.supervisiondata.service.RiskModelTaskClueService;
import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.util.BhUtil;
import com.biutag.supervisiondata.util.DataUtil;
import com.biutag.supervisiondata.util.IdCodeUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -174,7 +175,6 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
if(aj.indexOf(xx.getAjbh()+",") == -1) {
aj.append(xx.getAjbh()).append(",");
}
try {
LocalDateTime tmp = xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
if(eventTime == null) {
@ -195,16 +195,17 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
if(aj.length() > 0) {
tmp.append("具体案件编号:").append(aj.substring(0, aj.length()-1));
}
ClueData data = ClueData.builder()
.name(person.getName())
.id("isPoint")
.idCode(person.getIdCode())
.tag("已被打击处理")
toInsert.add(DataUtil.createClueData(task, ClueData.builder()
// 案件编号、接警单编号之类
.id("")
.score(5)
.personId(person.getId())
.tags(List.of("已被打击处理"))
.sourceData(tmp.toString())
.eventTime(Optional.ofNullable(eventTime).orElse(LocalDateTime.now()))
.build();
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data));
.name(person.getName())
.idCode(person.getIdCode())
.eventTime(eventTime)
.build()));
}
if (!toInsert.isEmpty()) {
clueService.saveClues(toInsert, "B24被打击处理");

10
src/main/java/com/biutag/supervisiondata/service/impl/HabitServiceImpl.java

@ -1,6 +1,5 @@
package com.biutag.supervisiondata.service.impl;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil;
import com.biutag.supervisiondata.common.utils.StreamUtil;
@ -8,23 +7,18 @@ import com.biutag.supervisiondata.pojo.ClueData;
import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX;
import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonalControlRecord;
import com.biutag.supervisiondata.pojo.entity.mine.RiskTask;
import com.biutag.supervisiondata.repository.*;
import com.biutag.supervisiondata.service.HabitService;
import com.biutag.supervisiondata.service.RiskModelTaskClueService;
import com.biutag.supervisiondata.service.RiskPersonalControlRecordService;
import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.util.BhUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
@ -187,7 +181,7 @@ public class HabitServiceImpl implements HabitService {
List<RiskModelTaskClue> clues;
// 创建新数据
List<RiskModelTaskClue> toInsert = new ArrayList<>();
log.info("开始遍历人员", wfrMap.size());
log.info("开始遍历人员:{}", wfrMap.size());
for (RiskPersonal person : domain.getPersons()) {
List<GBaseWFRXX> wfTmp = Optional.ofNullable(wfrMap.get(person.getIdCode())).orElse(new ArrayList<>());
wfTmp = wfTmp.stream().filter(StreamUtil.distinctByKey(GBaseWFRXX::getAjbh)).toList();
@ -217,7 +211,7 @@ public class HabitServiceImpl implements HabitService {
if(eventTime.isBefore(tmp)) {
eventTime = tmp;
}
} catch (Exception e) {
} catch (Exception ignored) {
}
}

55
src/main/java/com/biutag/supervisiondata/service/impl/MarriageServiceImpl.java

@ -1,13 +1,7 @@
package com.biutag.supervisiondata.service.impl;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.domain.TaskParamDomain;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseHY;
import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal;
import com.biutag.supervisiondata.pojo.entity.mine.RiskTask;
@ -15,17 +9,15 @@ import com.biutag.supervisiondata.pojo.entity.wdpc2.WdpcGrjdHyqkb;
import com.biutag.supervisiondata.repository.*;
import com.biutag.supervisiondata.service.MarriageService;
import com.biutag.supervisiondata.service.RiskModelTaskClueService;
import com.biutag.supervisiondata.util.BhUtil;
import com.biutag.supervisiondata.util.DataUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -41,12 +33,8 @@ public class MarriageServiceImpl implements MarriageService {
private final RiskTaskRepository riskTaskRepository;
private final RiskModelTaskClueRepository clueRepository;
private final RiskModelTaskClueService riskModelTaskClueService;
private final GBaseHYRepository hyRepository;
private final WdpcGrjdHyqkbRepository hyqkbRepository;
@Override
@ -76,36 +64,38 @@ public class MarriageServiceImpl implements MarriageService {
continue;
}
ClueData clueData = ClueData.builder()
.id("")
.score(5)
.personId(person.getId())
.tag("离婚")
.id(person.getIdCode())
.idCode(person.getIdCode())
.name(person.getName())
.tags(List.of("离婚"))
.sourceData("根据该人员最新的婚姻登记信息,发现该人员登记为离婚")
.name(person.getName())
.idCode(person.getIdCode())
.build();
try {
clueData.setEventTime(LocalDate.parse(result.getRegisterTime(), DateTimeFormatter.ofPattern("yyyyMMdd")).atTime(0,0,0));
} catch (Exception e) {
clueData.setEventTime(LocalDateTime.now());
}
toInsert1.add(createClue(task.getModelId(), 5, task.getId(), clueData));
toInsert1.add(DataUtil.createClueData(task, clueData));
if(clueData.getEventTime().isBefore(yearsDate) || old2.get(person.getIdCode()) != null) {
continue;
}
ClueData clueData2 = ClueData.builder()
.id("")
.score(5)
.personId(person.getId())
.tag("个人婚姻创伤")
.id(person.getIdCode())
.idCode(person.getIdCode())
.name(person.getName())
.tags(List.of("个人婚姻创伤"))
.sourceData("该人员最近一年有离婚登记信息")
.name(person.getName())
.idCode(person.getIdCode())
.build();
try {
clueData2.setEventTime(LocalDate.parse(result.getRegisterTime(), DateTimeFormatter.ofPattern("yyyyMMdd")).atTime(0,0,0));
} catch (Exception e) {
clueData.setEventTime(LocalDateTime.now());
clueData2.setEventTime(LocalDateTime.now());
}
toInsert2.add(createClue(task2.getModelId(), 5, task2.getId(), clueData2));
toInsert2.add(DataUtil.createClueData(task2, clueData2));
}
List<RiskModelTaskClue> toUpdate = new ArrayList<>();
@ -136,21 +126,4 @@ public class MarriageServiceImpl implements MarriageService {
}
riskTaskRepository.updateTask(task.getId(), toInsert1.size(), toUpdate.size());
}
RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data) {
RiskModelTaskClue clue = new RiskModelTaskClue();
clue.setModelId(modelId);
clue.setScore(score);
clue.setName(data.getName());
clue.setIdCode(data.getIdCode());
clue.setTaskId(taskId);
clue.setData(data.getSourceData());
clue.setEventTime(data.getEventTime());
clue.setCreateTime(LocalDateTime.now());
clue.setUpdateTime(LocalDateTime.now());
clue.setCaseIds(BhUtil.ajBh(data.getId()));
data.setPersonId(null);
clue.setRiskReason(data.getTag());
return clue;
}
}

15
src/main/java/com/biutag/supervisiondata/service/impl/PersonalServiceImpl.java

@ -21,6 +21,7 @@ import com.biutag.supervisiondata.repository.*;
import com.biutag.supervisiondata.service.PersonalService;
import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.util.IdCodeUtil;
import com.biutag.supervisiondata.util.ImageUtil;
import com.biutag.supervisiondata.util.OrgUtil;
import com.biutag.supervisiondata.util.PatternUtil;
import lombok.AllArgsConstructor;
@ -543,6 +544,20 @@ public class PersonalServiceImpl implements PersonalService {
}
}
@Override
public void syncLocalImage() {
String base64 = ImageUtil.file2Base64("/work/he.jpg");
String base642 = ImageUtil.file2Base64("/work/xiong.jpg");
RiskPersonInfo info = new RiskPersonInfo();
info.setIdCode("430122198706190310");
info.setImageBase64(Media.JPEG.concat(base64));
RiskPersonInfo info2 = new RiskPersonInfo();
info2.setIdCode("43062419900904876X");
info2.setImageBase64(Media.JPEG.concat(base642));
infoRepository.saveOrUpdateBatch(List.of(info, info2));
}
/**
* 通过身份证号查询实有人口
*

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

@ -14,6 +14,7 @@ import com.biutag.supervisiondata.repository.*;
import com.biutag.supervisiondata.service.PetitionService;
import com.biutag.supervisiondata.service.RiskModelTaskClueService;
import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.util.DataUtil;
import com.biutag.supervisiondata.util.IdCodeUtil;
import com.biutag.supervisiondata.util.BhUtil;
import lombok.AllArgsConstructor;
@ -326,7 +327,7 @@ public class PetitionServiceImpl implements PetitionService {
log.info("信访数据3: {}", toInsert3.size());
riskModelTaskClueService.saveClues(toInsert3, Default.PETITION_12337_TAG);
}
riskTaskRepository.updateTask(task.getId(), toInsert1.size()+toInsert2.size()+toInsert3.size(), 0);
riskTaskRepository.updateTask(task.getId(), toInsert1.size() + toInsert2.size() + toInsert3.size(), 0);
}
List<RiskModelTaskClue> createClues(List<PetitionData> dataList, Map<String, RiskModelTaskClue> oldMap, Map<String, RiskPersonal> idCodeMan, RiskTask task, String tag) {
@ -339,16 +340,15 @@ public class PetitionServiceImpl implements PetitionService {
if (person == null) {
continue;
}
toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder()
.id(data.getId())
.tag(tag)
toInsert.add(DataUtil.createClueData(task, ClueData.builder()
.id("")
.score(5)
.personId(person.getId())
.departId(data.getDepartId())
.departName(data.getDepartName())
.eventTime(data.getEventTime())
.idCode(person.getIdCode())
.tags(List.of(tag))
.sourceData("该人员在近12个月内有" + tag + "的情况,具体情况为:" + data.getContent())
.name(person.getName())
.sourceData("该人员在近12个月内有"+tag+"的情况,具体情况为:" + data.getContent())
.idCode(person.getIdCode())
.eventTime(null)
.build()));
}
return toInsert;
@ -365,23 +365,6 @@ public class PetitionServiceImpl implements PetitionService {
return info;
}
RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data) {
RiskModelTaskClue clue = new RiskModelTaskClue();
clue.setModelId(modelId);
clue.setScore(score);
clue.setName(data.getName());
clue.setIdCode(data.getIdCode());
clue.setTaskId(taskId);
clue.setData(data.getSourceData());
clue.setEventTime(data.getEventTime());
clue.setCreateTime(LocalDateTime.now());
clue.setUpdateTime(LocalDateTime.now());
clue.setCaseIds(BhUtil.petBh(data.getId()));
data.setPersonId(null);
clue.setRiskReason(data.getTag());
return clue;
}
RiskPersonal checkPerson(RiskPersonal personal) {
if (personal.getName() == null || personal.getIdCode() == null || personal.getName().isEmpty() || personal.getIdCode().isEmpty()) {
return null;

43
src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

@ -124,15 +124,7 @@ public class PointServiceImpl implements PointService {
if (sb.isEmpty()) {
continue;
}
// toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder()
// .tag("重点人员")
// .name(personals.getFirst().getName())
// .idCode(personals.getFirst().getIdCode())
// .eventTime(Optional.ofNullable(personals.getFirst().getControlTime()).orElse(LocalDateTime.now()))
// .sourceData("发现该人员为重点人员,存在" + personals.size() + "个标签")
// .build()));
toInsert.add(DataUtil.createClueData(task, ClueData.builder()
// 案件编号、接警单编号之类
.id("")
.score(5)
.personId(personals.getFirst().getId())
@ -144,7 +136,7 @@ public class PointServiceImpl implements PointService {
.build()));
}
if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert, "是否是重点人员");
modelTaskClueService.saveClues(toInsert, "B11是否是重点人员");
}
taskRepository.updateTask(task.getId(), toInsert.size(), 0);
}
@ -231,7 +223,7 @@ public class PointServiceImpl implements PointService {
}
if (!toInsert.isEmpty()) {
log.info("保存重点人员标签 {}", toInsert.size());
modelTaskClueService.saveClues(toInsert, "列管原因");
modelTaskClueService.saveClues(toInsert, "B12列管原因");
}
taskRepository.updateTask(task.getId(), toInsert.size(), 0);
}
@ -1958,7 +1950,6 @@ public class PointServiceImpl implements PointService {
break;
}
}
ClueData data = ClueData.builder()
.name(person.getName())
.id("security")
@ -2002,8 +1993,7 @@ public class PointServiceImpl implements PointService {
public void syncCarUser(TaskParamDomain domain) {
List<String> carUsers = zdryRepository.getBaseMapper().syncCarUser2();
log.info("车主数量:{}", carUsers.size());
RiskTask task = createTask(carUsers.size(), 53);
taskRepository.save(task);
RiskTask task = taskRepository.create(carUsers.size(), 53);
Map<String, RiskModelTaskClue> clueMap = domain.getOldMap(task.getModelId(), false);
Map<String, Byte[]> exist = new WeakHashMap<>();
@ -2017,18 +2007,16 @@ public class PointServiceImpl implements PointService {
for (RiskPersonal person : domain.getPersons()) {
// 增加
if (exist.get(person.getIdCode()) != null && clueMap.get(person.getIdCode()) == null) {
ClueData data = ClueData.builder()
.name(person.getName())
.id("car_man")
.tag(Default.CAR_TAG)
.idCode(person.getIdCode())
.departId(person.getControlDepartId())
.departName(person.getControlDepartName())
toInsert.add(DataUtil.createClueData(task, ClueData.builder()
.id("")
.score(5)
.personId(person.getId())
.eventTime(LocalDateTime.now())
.tags(List.of(Default.CAR_TAG))
.sourceData("发现该人员有车。")
.build();
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data));
.name(person.getName())
.idCode(person.getIdCode())
.eventTime(null)
.build()));
}
// 减少
if (exist.get(person.getIdCode()) == null && clueMap.get(person.getIdCode()) != null) {
@ -2045,17 +2033,10 @@ public class PointServiceImpl implements PointService {
log.info("增加有车人员:{}", toInsert.size());
modelTaskClueService.saveClues(toInsert, Default.CAR_IG);
}
if (!toDelete.isEmpty()) {
modelTaskClueService.deleteCluesAndDeleteTag(toDelete, idCodes, Default.CAR_TAG);
}
RiskTask updateTask = new RiskTask();
updateTask.setId(task.getId());
updateTask.setInsertSize(toInsert.size());
updateTask.setUpdateSize(toDelete.size());
updateTask.setState(1);
updateTask.setEndTime(LocalDateTime.now());
taskRepository.updateById(updateTask);
taskRepository.updateTask(task.getId(), toInsert.size(), toDelete.size());
}
RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data) {

123
src/main/java/com/biutag/supervisiondata/service/impl/RiskTaskServiceImpl.java

@ -10,22 +10,15 @@ import com.biutag.supervisiondata.pojo.database.PointOrg;
import com.biutag.supervisiondata.pojo.domain.FightMan;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX;
import com.biutag.supervisiondata.pojo.entity.mine.*;
import com.biutag.supervisiondata.pojo.enums.Charge;
import com.biutag.supervisiondata.pojo.enums.DepartType;
import com.biutag.supervisiondata.pojo.enums.Edu;
import com.biutag.supervisiondata.repository.*;
import com.biutag.supervisiondata.service.RiskModelTaskClueService;
import com.biutag.supervisiondata.service.RiskPersonalControlRecordService;
import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.service.RiskTaskService;
import com.biutag.supervisiondata.util.IdCodeUtil;
import com.biutag.supervisiondata.util.BhUtil;
import com.biutag.supervisiondata.util.PatternUtil;
import com.biutag.supervisiondata.util.TxtUtil;
import com.biutag.supervisiondata.util.*;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -38,7 +31,6 @@ import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* @author kami on 2024-11-11 14:14:39
@ -186,39 +178,42 @@ public class RiskTaskServiceImpl implements RiskTaskService {
if (edu != null) {
Integer score = Edu.contains(edu);
//创建新的
toInsert1.add(createClue(eduTask.getModelId(), score, eduTask.getId(), ClueData.builder()
toInsert1.add(DataUtil.createClueData(eduTask, ClueData.builder()
.id("")
.score(score)
.personId(person.getId())
.tags(List.of(edu))
.sourceData("该人员的学历为" + xx.getXlmc() + ",属于" + edu)
.name(person.getName())
.idCode(person.getIdCode())
.tag(edu)
.sourceData("该人员的学历为" + xx.getXlmc() + ",属于" + edu)
.eventTime(LocalDateTime.now())
.personId(person.getId())
.build(), "edu" + person.getId().toString()));
.eventTime(null)
.build()));
}
}
if(xx.getCsdxzqhdm() != null && oldAreaMap.get(person.getIdCode()) == null) {
if(!areCode.contains(xx.getCsdxzqhdm())) {
continue;
}
toInsert2.add(createClue(areaTask.getModelId(), 5, areaTask.getId(), ClueData.builder()
toInsert2.add(DataUtil.createClueData(eduTask, ClueData.builder()
.id(BhUtil.sfBh(person.getId().toString()))
.name(person.getName())
.idCode(person.getIdCode())
.score(5)
.personId(person.getId())
.eventTime(LocalDateTime.now())
.tags(List.of(xx.getCsdxzqhmc()))
.sourceData("发现该人员在" + xx.getCsdxzqhmc() + "成长,该地区暴力警情情况较多")
.tag(xx.getCsdxzqhmc())
.build(), "area___" + person.getId().toString()));
.name(person.getName())
.idCode(person.getIdCode())
.eventTime(null)
.build()));
}
}
if(!toInsert1.isEmpty()) {
log.info("保存学历:{}", toInsert1.size());
riskModelTaskClueService.saveClues(toInsert1, Default.EDU_IG);
riskModelTaskClueService.saveClues(toInsert1, "B4文化程度");
}
riskTaskRepository.updateTask(eduTask.getId(), toInsert1.size(), 0);
if(!toInsert2.isEmpty()) {
log.info("保存风险区域:{}", toInsert2.size());
riskModelTaskClueService.saveClues(toInsert2, Default.FIGHT_IG);
riskModelTaskClueService.saveClues(toInsert2, "B10民风习俗");
}
riskTaskRepository.updateTask(areaTask.getId(), toInsert2.size(), 0);
}
@ -503,7 +498,6 @@ public class RiskTaskServiceImpl implements RiskTaskService {
*
* @param domain 参数
* @param task 任务
* @return 筛选出来的用户
*/
void ageModel(TaskParamDomain domain, RiskTask task) {
List<RiskModelTaskClue> taskClue = new ArrayList<>();
@ -527,31 +521,67 @@ public class RiskTaskServiceImpl implements RiskTaskService {
}
// 符合条件但是又没有旧数据 | 新增
if (age >= 16 && age <= 24) {
RiskModelTaskClue clue = createClue(task.getModelId(), 1, person, task.getId(), "年龄处于16岁至24岁之间", "该人员年龄为" + age + ",属于16岁至24岁之间");
taskClue.add(clue);
continue;
taskClue.add(DataUtil.createClueData(task, ClueData.builder()
.id("")
.score(1)
.personId(person.getId())
.tags(List.of("年龄处于16岁至24岁之间"))
.sourceData("该人员年龄为" + age + ",属于16岁至24岁之间")
.name(person.getName())
.idCode(person.getIdCode())
.eventTime(null)
.build()));
}
if (age >= 25 && age <= 34) {
RiskModelTaskClue clue = createClue(task.getModelId(), 3, person, task.getId(), "年龄处于25岁至34岁之间", "该人员年龄为" + age + ",属于25岁至34岁之间");
taskClue.add(clue);
continue;
taskClue.add(DataUtil.createClueData(task, ClueData.builder()
.id("")
.score(3)
.personId(person.getId())
.tags(List.of("年龄处于25岁至34岁之间"))
.sourceData("该人员年龄为" + age + ",属于25岁至34岁之间")
.name(person.getName())
.idCode(person.getIdCode())
.eventTime(null)
.build()));
}
if (age >= 35 && age <= 55) {
RiskModelTaskClue clue = createClue(task.getModelId(), 5, person, task.getId(), "年龄处于35岁至55岁之间", "该人员年龄为" + age + ",属于35岁至55岁之间");
taskClue.add(clue);
continue;
taskClue.add(DataUtil.createClueData(task, ClueData.builder()
.id("")
.score(5)
.personId(person.getId())
.tags(List.of("年龄处于35岁至55岁之间"))
.sourceData("该人员年龄为" + age + ",属于35岁至55岁之间")
.name(person.getName())
.idCode(person.getIdCode())
.eventTime(null)
.build()));
}
if (age >= 56 && age <= 65) {
RiskModelTaskClue clue = createClue(task.getModelId(), 3, person, task.getId(), "年龄处于56岁至66岁之间", "该人员年龄为" + age + ",属于56岁至66岁之间");
taskClue.add(clue);
continue;
taskClue.add(DataUtil.createClueData(task, ClueData.builder()
.id("")
.score(3)
.personId(person.getId())
.tags(List.of("年龄处于56岁至66岁之间"))
.sourceData("该人员年龄为" + age + ",属于56岁至66岁之间")
.name(person.getName())
.idCode(person.getIdCode())
.eventTime(null)
.build()));
}
if (age >= 66 && age <= 75) {
RiskModelTaskClue clue = createClue(task.getModelId(), 1, person, task.getId(), "年龄处于66岁至75岁之间", "该人员年龄为" + age + ",属于66岁至75岁之间");
taskClue.add(clue);
taskClue.add(DataUtil.createClueData(task, ClueData.builder()
.id("")
.score(1)
.personId(person.getId())
.tags(List.of("年龄处于66岁至75岁之间"))
.sourceData("该人员年龄为" + age + ",属于66岁至75岁之间")
.name(person.getName())
.idCode(person.getIdCode())
.eventTime(null)
.build()));
}
}
riskModelTaskClueService.saveClues(taskClue, Default.AGE_IG);
riskModelTaskClueService.saveClues(taskClue, "B2年龄");
if (!toHidden.isEmpty()) {
clueRepository.updateBatchById(toHidden);
}
@ -563,7 +593,6 @@ public class RiskTaskServiceImpl implements RiskTaskService {
*
* @param domain 参数
* @param task 任务
* @return 筛选出来的用户
*/
void genderModel(TaskParamDomain domain, RiskTask task) {
List<RiskModelTaskClue> taskClue = new ArrayList<>();
@ -576,10 +605,18 @@ public class RiskTaskServiceImpl implements RiskTaskService {
if (oldMap.get(person.getIdCode()) != null) {
continue;
}
RiskModelTaskClue clue = createClue(32, 5, person, task.getId(), "男性", "该人员性别为男性");
taskClue.add(clue);
taskClue.add(DataUtil.createClueData(task, ClueData.builder()
.id("")
.score(5)
.personId(person.getId())
.tags(List.of("男性"))
.sourceData("该人员性别为男性")
.name(person.getName())
.idCode(person.getIdCode())
.eventTime(null)
.build()));
}
riskModelTaskClueService.saveClues(taskClue, Default.GENDER_IG);
riskModelTaskClueService.saveClues(taskClue, "B1性别");
riskTaskRepository.updateTask(task.getId(), taskClue.size(), 0);
}

34
src/main/java/com/biutag/supervisiondata/util/ImageUtil.java

@ -0,0 +1,34 @@
package com.biutag.supervisiondata.util;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.util.Base64;
/**
* @author kami on 2024-12-13 18:33:39
* @version 0.0.1
* @since 1.8
*/
@Slf4j
@UtilityClass
public class ImageUtil {
public static String file2Base64(String path) {
try (FileInputStream fis = new FileInputStream(path);
ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
bos.write(buffer, 0, bytesRead);
}
byte[] imageBytes = bos.toByteArray();
return Base64.getEncoder().encodeToString(imageBytes);
} catch (Exception e) {
log.error("", e);
}
return null;
}
}
Loading…
Cancel
Save