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. 33
      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); RedisDao.getInstance().init(redisTemplate);
LocalDateTime end = LocalDate.now().minusDays(1).atTime(23,59,59); LocalDateTime end = LocalDate.now().minusDays(1).atTime(23,59,59);
CompletableFutureUtil.runSync(() -> { CompletableFutureUtil.runSync(() -> {
personalService.init(); // personalService.init();
personalService.pullInvestigate(); // personalService.pullInvestigate();
personalService.pullPsychosis(); // personalService.pullPsychosis();
gBaseSHRWFRService.pullAndSave(LocalDateTime.of(2019,12,6,0,0,0), end); // gBaseSHRWFRService.pullAndSave(LocalDateTime.of(2019,12,6,0,0,0), end);
petitionService.personPullAndSave(LocalDateTime.of(2023, 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); // personalService.pullPetitionAgain(LocalDateTime.of(2000, 12, 6, 0, 0, 0), end);
pointService.personPullAndSave(); // pointService.personPullAndSave();
gBaseJJDService.pullAndSave(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end); // gBaseJJDService.pullAndSave(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end);
riskPersonalService.fixed(); // riskPersonalService.fixed();
personalService.syncPerson(LocalDate.now()); // personalService.syncPerson(LocalDate.now());
petitionService.petitionModelTask(initDomain(List.of(40))); // petitionService.petitionModelTask(initDomain(List.of(40)));
riskTaskService.eduAndAreaModelTask(initDomain(List.of(34,41))); riskTaskService.eduAndAreaModelTask(initDomain(List.of(34,41)));
riskTaskService.infoModelTask(initDomain(List.of(32,33))); riskTaskService.infoModelTask(initDomain(List.of(32,33)));
marriageService.marriageModelTask(initDomain(List.of(39,51))); marriageService.marriageModelTask(initDomain(List.of(39,51)));
pointService.syncSecurity(initDomain(List.of(37))); // pointService.syncSecurity(initDomain(List.of(37)));
habitService.habitModelTask(LocalDateTime.of(2023, 12, 6, 0, 0, 0), initDomain(List.of(36,60,61,62))); // habitService.habitModelTask(LocalDateTime.of(2023, 12, 6, 0, 0, 0), initDomain(List.of(36,60,61,62)));
pointService.syncCarUser(initDomain(List.of(53))); pointService.syncCarUser(initDomain(List.of(53)));
pointService.syncScore(initDomain(List.of(43))); pointService.syncScore(initDomain(List.of(43)));
pointService.syncViolence(initDomain(List.of(44))); // pointService.syncViolence(initDomain(List.of(44)));
noControlService.syncNoControlData(initDomain(List.of(45))); // noControlService.syncNoControlData(initDomain(List.of(45)));
pointService.syncDrug(initDomain(List.of(37))); // pointService.syncDrug(initDomain(List.of(37)));
pointService.syncControlNoPower(initDomain(List.of(48))); // pointService.syncControlNoPower(initDomain(List.of(48)));
pointService.syncOilBuy(initDomain(List.of(52))); // pointService.syncOilBuy(initDomain(List.of(52)));
gBaseJJDService.pullPoliceInstance(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end, initDomain(List.of(55,56,57,58))); // gBaseJJDService.pullPoliceInstance(LocalDateTime.of(2023, 12, 6, 0, 0, 0), end, initDomain(List.of(55,56,57,58)));
jsbryService.syncPys(initDomain(List.of(59))); // jsbryService.syncPys(initDomain(List.of(59)));
gBaseSHRWFRService.combatCrime(initDomain(List.of(63))); gBaseSHRWFRService.combatCrime(initDomain(List.of(63)));
gBaseJJDService.syncPoliceAttack(initDomain(List.of(64))); // gBaseJJDService.syncPoliceAttack(initDomain(List.of(64)));
gBaseJJDService.syncHomeViolence(initDomain(List.of(65,66))); // gBaseJJDService.syncHomeViolence(initDomain(List.of(65,66)));
pointService.syncPointType(initDomain(List.of(67))); // pointService.syncPointType(initDomain(List.of(67)));
gBaseSHRWFRService.hadWork(initDomain(List.of(68))); // gBaseSHRWFRService.hadWork(initDomain(List.of(68)));
gBaseJJDService.syncParentRelation(initDomain(List.of(69,70))); // gBaseJJDService.syncParentRelation(initDomain(List.of(69,70)));
gBaseJJDService.syncLove(initDomain(List.of(71))); // gBaseJJDService.syncLove(initDomain(List.of(71)));
gBaseJJDService.syncMarryDispute(initDomain(List.of(72))); // gBaseJJDService.syncMarryDispute(initDomain(List.of(72)));
gBaseJJDService.syncNeighborAndColleagueDispute(initDomain(List.of(73))); // gBaseJJDService.syncNeighborAndColleagueDispute(initDomain(List.of(73)));
gBaseJJDService.syncBullying(initDomain(List.of(74))); // gBaseJJDService.syncBullying(initDomain(List.of(74)));
gBaseSHRWFRService.crimeName(initDomain(List.of(76))); // gBaseSHRWFRService.crimeName(initDomain(List.of(76)));
pointService.syncIsPetition(initDomain(List.of(40))); // pointService.syncIsPetition(initDomain(List.of(40)));
pointService.syncFatherEducation(initDomain(List.of(112))); // pointService.syncFatherEducation(initDomain(List.of(112)));
pointService.syncMotherEducation(initDomain(List.of(113))); // pointService.syncMotherEducation(initDomain(List.of(113)));
pointService.syncDomicileType(initDomain(List.of(114))); // pointService.syncDomicileType(initDomain(List.of(114)));
pointService.syncCriminalPunishment(initDomain(List.of(115))); // pointService.syncCriminalPunishment(initDomain(List.of(115)));
pointService.syncAdministrativePunishment(initDomain(List.of(116))); // pointService.syncAdministrativePunishment(initDomain(List.of(116)));
pointService.syncParentsDivorce(initDomain(List.of(117))); // pointService.syncParentsDivorce(initDomain(List.of(117)));
pointService.syncFamilyDie(initDomain(List.of(118))); // pointService.syncFamilyDie(initDomain(List.of(118)));
pointService.syncFatherDie(initDomain(List.of(119))); // pointService.syncFatherDie(initDomain(List.of(119)));
pointService.syncMotherDie(initDomain(List.of(120))); pointService.syncMotherDie(initDomain(List.of(120)));
pointService.syncChildNo(initDomain(List.of(121))); pointService.syncChildNo(initDomain(List.of(121)));
pointService.syncXIDU(initDomain(List.of(122))); pointService.syncXIDU(initDomain(List.of(122)));
pointService.syncFiliation(initDomain(List.of(123))); pointService.syncFiliation(initDomain(List.of(123)));
// 必须在123后面 // 必须在123后面
gBaseJJDService.syncOtherContradict(initDomain(List.of(75))); // gBaseJJDService.syncOtherContradict(initDomain(List.of(75)));
pointService.syncPetitionContent(initDomain(List.of(124))); pointService.syncPetitionContent(initDomain(List.of(124)));
pointService.syncMedicalPressure(initDomain(List.of(125))); 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(); return RS.success();
} }
@GetMapping("/local/image")
public RS<String> localImage() {
CompletableFutureUtil.runSync(() -> personalService.syncLocalImage());
return RS.success();
}
@GetMapping("/get/jjd") @GetMapping("/get/jjd")
public String getJJD() { public String getJJD() {
String data = (String) RedisDao.getInstance().leftPop("jjd"); 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 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.RiskModelTaskClueService;
import com.biutag.supervisiondata.service.RiskPersonalService; import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.util.BhUtil; import com.biutag.supervisiondata.util.BhUtil;
import com.biutag.supervisiondata.util.DataUtil;
import com.biutag.supervisiondata.util.IdCodeUtil; import com.biutag.supervisiondata.util.IdCodeUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -174,7 +175,6 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
if(aj.indexOf(xx.getAjbh()+",") == -1) { if(aj.indexOf(xx.getAjbh()+",") == -1) {
aj.append(xx.getAjbh()).append(","); aj.append(xx.getAjbh()).append(",");
} }
try { try {
LocalDateTime tmp = xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); LocalDateTime tmp = xx.getLrsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
if(eventTime == null) { if(eventTime == null) {
@ -195,16 +195,17 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
if(aj.length() > 0) { if(aj.length() > 0) {
tmp.append("具体案件编号:").append(aj.substring(0, aj.length()-1)); tmp.append("具体案件编号:").append(aj.substring(0, aj.length()-1));
} }
ClueData data = ClueData.builder() toInsert.add(DataUtil.createClueData(task, ClueData.builder()
.name(person.getName()) // 案件编号、接警单编号之类
.id("isPoint") .id("")
.idCode(person.getIdCode()) .score(5)
.tag("已被打击处理")
.personId(person.getId()) .personId(person.getId())
.tags(List.of("已被打击处理"))
.sourceData(tmp.toString()) .sourceData(tmp.toString())
.eventTime(Optional.ofNullable(eventTime).orElse(LocalDateTime.now())) .name(person.getName())
.build(); .idCode(person.getIdCode())
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); .eventTime(eventTime)
.build()));
} }
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
clueService.saveClues(toInsert, "B24被打击处理"); 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; package com.biutag.supervisiondata.service.impl;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil; import com.biutag.supervisiondata.common.interfaces.CompletableFutureUtil;
import com.biutag.supervisiondata.common.utils.StreamUtil; 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.constants.Default;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseAJJBXX; 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.dwd.GBaseWFRXX;
import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue; import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; 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.pojo.entity.mine.RiskTask;
import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.repository.*;
import com.biutag.supervisiondata.service.HabitService; import com.biutag.supervisiondata.service.HabitService;
import com.biutag.supervisiondata.service.RiskModelTaskClueService; 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 com.biutag.supervisiondata.util.BhUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@ -187,7 +181,7 @@ public class HabitServiceImpl implements HabitService {
List<RiskModelTaskClue> clues; List<RiskModelTaskClue> clues;
// 创建新数据 // 创建新数据
List<RiskModelTaskClue> toInsert = new ArrayList<>(); List<RiskModelTaskClue> toInsert = new ArrayList<>();
log.info("开始遍历人员", wfrMap.size()); log.info("开始遍历人员:{}", wfrMap.size());
for (RiskPersonal person : domain.getPersons()) { for (RiskPersonal person : domain.getPersons()) {
List<GBaseWFRXX> wfTmp = Optional.ofNullable(wfrMap.get(person.getIdCode())).orElse(new ArrayList<>()); List<GBaseWFRXX> wfTmp = Optional.ofNullable(wfrMap.get(person.getIdCode())).orElse(new ArrayList<>());
wfTmp = wfTmp.stream().filter(StreamUtil.distinctByKey(GBaseWFRXX::getAjbh)).toList(); wfTmp = wfTmp.stream().filter(StreamUtil.distinctByKey(GBaseWFRXX::getAjbh)).toList();
@ -217,7 +211,7 @@ public class HabitServiceImpl implements HabitService {
if(eventTime.isBefore(tmp)) { if(eventTime.isBefore(tmp)) {
eventTime = 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; 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.ClueData;
import com.biutag.supervisiondata.pojo.constants.Default;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; 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.RiskModelTaskClue;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal; import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal;
import com.biutag.supervisiondata.pojo.entity.mine.RiskTask; 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.repository.*;
import com.biutag.supervisiondata.service.MarriageService; import com.biutag.supervisiondata.service.MarriageService;
import com.biutag.supervisiondata.service.RiskModelTaskClueService; import com.biutag.supervisiondata.service.RiskModelTaskClueService;
import com.biutag.supervisiondata.util.BhUtil; import com.biutag.supervisiondata.util.DataUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -41,12 +33,8 @@ public class MarriageServiceImpl implements MarriageService {
private final RiskTaskRepository riskTaskRepository; private final RiskTaskRepository riskTaskRepository;
private final RiskModelTaskClueRepository clueRepository;
private final RiskModelTaskClueService riskModelTaskClueService; private final RiskModelTaskClueService riskModelTaskClueService;
private final GBaseHYRepository hyRepository;
private final WdpcGrjdHyqkbRepository hyqkbRepository; private final WdpcGrjdHyqkbRepository hyqkbRepository;
@Override @Override
@ -76,36 +64,38 @@ public class MarriageServiceImpl implements MarriageService {
continue; continue;
} }
ClueData clueData = ClueData.builder() ClueData clueData = ClueData.builder()
.id("")
.score(5)
.personId(person.getId()) .personId(person.getId())
.tag("离婚") .tags(List.of("离婚"))
.id(person.getIdCode())
.idCode(person.getIdCode())
.name(person.getName())
.sourceData("根据该人员最新的婚姻登记信息,发现该人员登记为离婚") .sourceData("根据该人员最新的婚姻登记信息,发现该人员登记为离婚")
.name(person.getName())
.idCode(person.getIdCode())
.build(); .build();
try { try {
clueData.setEventTime(LocalDate.parse(result.getRegisterTime(), DateTimeFormatter.ofPattern("yyyyMMdd")).atTime(0,0,0)); clueData.setEventTime(LocalDate.parse(result.getRegisterTime(), DateTimeFormatter.ofPattern("yyyyMMdd")).atTime(0,0,0));
} catch (Exception e) { } catch (Exception e) {
clueData.setEventTime(LocalDateTime.now()); 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) { if(clueData.getEventTime().isBefore(yearsDate) || old2.get(person.getIdCode()) != null) {
continue; continue;
} }
ClueData clueData2 = ClueData.builder() ClueData clueData2 = ClueData.builder()
.id("")
.score(5)
.personId(person.getId()) .personId(person.getId())
.tag("个人婚姻创伤") .tags(List.of("个人婚姻创伤"))
.id(person.getIdCode())
.idCode(person.getIdCode())
.name(person.getName())
.sourceData("该人员最近一年有离婚登记信息") .sourceData("该人员最近一年有离婚登记信息")
.name(person.getName())
.idCode(person.getIdCode())
.build(); .build();
try { try {
clueData2.setEventTime(LocalDate.parse(result.getRegisterTime(), DateTimeFormatter.ofPattern("yyyyMMdd")).atTime(0,0,0)); clueData2.setEventTime(LocalDate.parse(result.getRegisterTime(), DateTimeFormatter.ofPattern("yyyyMMdd")).atTime(0,0,0));
} catch (Exception e) { } 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<>(); List<RiskModelTaskClue> toUpdate = new ArrayList<>();
@ -136,21 +126,4 @@ public class MarriageServiceImpl implements MarriageService {
} }
riskTaskRepository.updateTask(task.getId(), toInsert1.size(), toUpdate.size()); 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.PersonalService;
import com.biutag.supervisiondata.service.RiskPersonalService; import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.util.IdCodeUtil; import com.biutag.supervisiondata.util.IdCodeUtil;
import com.biutag.supervisiondata.util.ImageUtil;
import com.biutag.supervisiondata.util.OrgUtil; import com.biutag.supervisiondata.util.OrgUtil;
import com.biutag.supervisiondata.util.PatternUtil; import com.biutag.supervisiondata.util.PatternUtil;
import lombok.AllArgsConstructor; 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));
}
/** /**
* 通过身份证号查询实有人口 * 通过身份证号查询实有人口
* *

33
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.PetitionService;
import com.biutag.supervisiondata.service.RiskModelTaskClueService; import com.biutag.supervisiondata.service.RiskModelTaskClueService;
import com.biutag.supervisiondata.service.RiskPersonalService; import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.util.DataUtil;
import com.biutag.supervisiondata.util.IdCodeUtil; import com.biutag.supervisiondata.util.IdCodeUtil;
import com.biutag.supervisiondata.util.BhUtil; import com.biutag.supervisiondata.util.BhUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -339,16 +340,15 @@ public class PetitionServiceImpl implements PetitionService {
if (person == null) { if (person == null) {
continue; continue;
} }
toInsert.add(createClue(task.getModelId(), 5, task.getId(), ClueData.builder() toInsert.add(DataUtil.createClueData(task, ClueData.builder()
.id(data.getId()) .id("")
.tag(tag) .score(5)
.personId(person.getId()) .personId(person.getId())
.departId(data.getDepartId()) .tags(List.of(tag))
.departName(data.getDepartName())
.eventTime(data.getEventTime())
.idCode(person.getIdCode())
.name(person.getName())
.sourceData("该人员在近12个月内有" + tag + "的情况,具体情况为:" + data.getContent()) .sourceData("该人员在近12个月内有" + tag + "的情况,具体情况为:" + data.getContent())
.name(person.getName())
.idCode(person.getIdCode())
.eventTime(null)
.build())); .build()));
} }
return toInsert; return toInsert;
@ -365,23 +365,6 @@ public class PetitionServiceImpl implements PetitionService {
return info; 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) { RiskPersonal checkPerson(RiskPersonal personal) {
if (personal.getName() == null || personal.getIdCode() == null || personal.getName().isEmpty() || personal.getIdCode().isEmpty()) { if (personal.getName() == null || personal.getIdCode() == null || personal.getName().isEmpty() || personal.getIdCode().isEmpty()) {
return null; 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()) { if (sb.isEmpty()) {
continue; 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() toInsert.add(DataUtil.createClueData(task, ClueData.builder()
// 案件编号、接警单编号之类
.id("") .id("")
.score(5) .score(5)
.personId(personals.getFirst().getId()) .personId(personals.getFirst().getId())
@ -144,7 +136,7 @@ public class PointServiceImpl implements PointService {
.build())); .build()));
} }
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
modelTaskClueService.saveClues(toInsert, "是否是重点人员"); modelTaskClueService.saveClues(toInsert, "B11是否是重点人员");
} }
taskRepository.updateTask(task.getId(), toInsert.size(), 0); taskRepository.updateTask(task.getId(), toInsert.size(), 0);
} }
@ -231,7 +223,7 @@ public class PointServiceImpl implements PointService {
} }
if (!toInsert.isEmpty()) { if (!toInsert.isEmpty()) {
log.info("保存重点人员标签 {}", toInsert.size()); log.info("保存重点人员标签 {}", toInsert.size());
modelTaskClueService.saveClues(toInsert, "列管原因"); modelTaskClueService.saveClues(toInsert, "B12列管原因");
} }
taskRepository.updateTask(task.getId(), toInsert.size(), 0); taskRepository.updateTask(task.getId(), toInsert.size(), 0);
} }
@ -1958,7 +1950,6 @@ public class PointServiceImpl implements PointService {
break; break;
} }
} }
ClueData data = ClueData.builder() ClueData data = ClueData.builder()
.name(person.getName()) .name(person.getName())
.id("security") .id("security")
@ -2002,8 +1993,7 @@ public class PointServiceImpl implements PointService {
public void syncCarUser(TaskParamDomain domain) { public void syncCarUser(TaskParamDomain domain) {
List<String> carUsers = zdryRepository.getBaseMapper().syncCarUser2(); List<String> carUsers = zdryRepository.getBaseMapper().syncCarUser2();
log.info("车主数量:{}", carUsers.size()); log.info("车主数量:{}", carUsers.size());
RiskTask task = createTask(carUsers.size(), 53); RiskTask task = taskRepository.create(carUsers.size(), 53);
taskRepository.save(task);
Map<String, RiskModelTaskClue> clueMap = domain.getOldMap(task.getModelId(), false); Map<String, RiskModelTaskClue> clueMap = domain.getOldMap(task.getModelId(), false);
Map<String, Byte[]> exist = new WeakHashMap<>(); Map<String, Byte[]> exist = new WeakHashMap<>();
@ -2017,18 +2007,16 @@ public class PointServiceImpl implements PointService {
for (RiskPersonal person : domain.getPersons()) { for (RiskPersonal person : domain.getPersons()) {
// 增加 // 增加
if (exist.get(person.getIdCode()) != null && clueMap.get(person.getIdCode()) == null) { if (exist.get(person.getIdCode()) != null && clueMap.get(person.getIdCode()) == null) {
ClueData data = ClueData.builder() toInsert.add(DataUtil.createClueData(task, ClueData.builder()
.name(person.getName()) .id("")
.id("car_man") .score(5)
.tag(Default.CAR_TAG)
.idCode(person.getIdCode())
.departId(person.getControlDepartId())
.departName(person.getControlDepartName())
.personId(person.getId()) .personId(person.getId())
.eventTime(LocalDateTime.now()) .tags(List.of(Default.CAR_TAG))
.sourceData("发现该人员有车。") .sourceData("发现该人员有车。")
.build(); .name(person.getName())
toInsert.add(createClue(task.getModelId(), 5, task.getId(), data)); .idCode(person.getIdCode())
.eventTime(null)
.build()));
} }
// 减少 // 减少
if (exist.get(person.getIdCode()) == null && clueMap.get(person.getIdCode()) != null) { if (exist.get(person.getIdCode()) == null && clueMap.get(person.getIdCode()) != null) {
@ -2045,17 +2033,10 @@ public class PointServiceImpl implements PointService {
log.info("增加有车人员:{}", toInsert.size()); log.info("增加有车人员:{}", toInsert.size());
modelTaskClueService.saveClues(toInsert, Default.CAR_IG); modelTaskClueService.saveClues(toInsert, Default.CAR_IG);
} }
if (!toDelete.isEmpty()) { if (!toDelete.isEmpty()) {
modelTaskClueService.deleteCluesAndDeleteTag(toDelete, idCodes, Default.CAR_TAG); modelTaskClueService.deleteCluesAndDeleteTag(toDelete, idCodes, Default.CAR_TAG);
} }
RiskTask updateTask = new RiskTask(); taskRepository.updateTask(task.getId(), toInsert.size(), toDelete.size());
updateTask.setId(task.getId());
updateTask.setInsertSize(toInsert.size());
updateTask.setUpdateSize(toDelete.size());
updateTask.setState(1);
updateTask.setEndTime(LocalDateTime.now());
taskRepository.updateById(updateTask);
} }
RiskModelTaskClue createClue(Integer modelId, Integer score, Integer taskId, ClueData data) { 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.FightMan;
import com.biutag.supervisiondata.pojo.domain.TaskParamDomain; import com.biutag.supervisiondata.pojo.domain.TaskParamDomain;
import com.biutag.supervisiondata.pojo.entity.ads.GBaseSYRKXX; 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.GBaseJJD;
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseWFRXX;
import com.biutag.supervisiondata.pojo.entity.mine.*; 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.DepartType;
import com.biutag.supervisiondata.pojo.enums.Edu; import com.biutag.supervisiondata.pojo.enums.Edu;
import com.biutag.supervisiondata.repository.*; import com.biutag.supervisiondata.repository.*;
import com.biutag.supervisiondata.service.RiskModelTaskClueService; import com.biutag.supervisiondata.service.RiskModelTaskClueService;
import com.biutag.supervisiondata.service.RiskPersonalControlRecordService;
import com.biutag.supervisiondata.service.RiskPersonalService; import com.biutag.supervisiondata.service.RiskPersonalService;
import com.biutag.supervisiondata.service.RiskTaskService; import com.biutag.supervisiondata.service.RiskTaskService;
import com.biutag.supervisiondata.util.IdCodeUtil; import com.biutag.supervisiondata.util.*;
import com.biutag.supervisiondata.util.BhUtil;
import com.biutag.supervisiondata.util.PatternUtil;
import com.biutag.supervisiondata.util.TxtUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -38,7 +31,6 @@ import java.util.*;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.IntStream;
/** /**
* @author kami on 2024-11-11 14:14:39 * @author kami on 2024-11-11 14:14:39
@ -186,39 +178,42 @@ public class RiskTaskServiceImpl implements RiskTaskService {
if (edu != null) { if (edu != null) {
Integer score = Edu.contains(edu); 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()) .name(person.getName())
.idCode(person.getIdCode()) .idCode(person.getIdCode())
.tag(edu) .eventTime(null)
.sourceData("该人员的学历为" + xx.getXlmc() + ",属于" + edu) .build()));
.eventTime(LocalDateTime.now())
.personId(person.getId())
.build(), "edu" + person.getId().toString()));
} }
} }
if(xx.getCsdxzqhdm() != null && oldAreaMap.get(person.getIdCode()) == null) { if(xx.getCsdxzqhdm() != null && oldAreaMap.get(person.getIdCode()) == null) {
if(!areCode.contains(xx.getCsdxzqhdm())) { if(!areCode.contains(xx.getCsdxzqhdm())) {
continue; continue;
} }
toInsert2.add(createClue(areaTask.getModelId(), 5, areaTask.getId(), ClueData.builder() toInsert2.add(DataUtil.createClueData(eduTask, ClueData.builder()
.id(BhUtil.sfBh(person.getId().toString())) .id(BhUtil.sfBh(person.getId().toString()))
.name(person.getName()) .score(5)
.idCode(person.getIdCode())
.personId(person.getId()) .personId(person.getId())
.eventTime(LocalDateTime.now()) .tags(List.of(xx.getCsdxzqhmc()))
.sourceData("发现该人员在" + xx.getCsdxzqhmc() + "成长,该地区暴力警情情况较多") .sourceData("发现该人员在" + xx.getCsdxzqhmc() + "成长,该地区暴力警情情况较多")
.tag(xx.getCsdxzqhmc()) .name(person.getName())
.build(), "area___" + person.getId().toString())); .idCode(person.getIdCode())
.eventTime(null)
.build()));
} }
} }
if(!toInsert1.isEmpty()) { if(!toInsert1.isEmpty()) {
log.info("保存学历:{}", toInsert1.size()); log.info("保存学历:{}", toInsert1.size());
riskModelTaskClueService.saveClues(toInsert1, Default.EDU_IG); riskModelTaskClueService.saveClues(toInsert1, "B4文化程度");
} }
riskTaskRepository.updateTask(eduTask.getId(), toInsert1.size(), 0); riskTaskRepository.updateTask(eduTask.getId(), toInsert1.size(), 0);
if(!toInsert2.isEmpty()) { if(!toInsert2.isEmpty()) {
log.info("保存风险区域:{}", toInsert2.size()); log.info("保存风险区域:{}", toInsert2.size());
riskModelTaskClueService.saveClues(toInsert2, Default.FIGHT_IG); riskModelTaskClueService.saveClues(toInsert2, "B10民风习俗");
} }
riskTaskRepository.updateTask(areaTask.getId(), toInsert2.size(), 0); riskTaskRepository.updateTask(areaTask.getId(), toInsert2.size(), 0);
} }
@ -503,7 +498,6 @@ public class RiskTaskServiceImpl implements RiskTaskService {
* *
* @param domain 参数 * @param domain 参数
* @param task 任务 * @param task 任务
* @return 筛选出来的用户
*/ */
void ageModel(TaskParamDomain domain, RiskTask task) { void ageModel(TaskParamDomain domain, RiskTask task) {
List<RiskModelTaskClue> taskClue = new ArrayList<>(); List<RiskModelTaskClue> taskClue = new ArrayList<>();
@ -527,31 +521,67 @@ public class RiskTaskServiceImpl implements RiskTaskService {
} }
// 符合条件但是又没有旧数据 | 新增 // 符合条件但是又没有旧数据 | 新增
if (age >= 16 && age <= 24) { if (age >= 16 && age <= 24) {
RiskModelTaskClue clue = createClue(task.getModelId(), 1, person, task.getId(), "年龄处于16岁至24岁之间", "该人员年龄为" + age + ",属于16岁至24岁之间"); taskClue.add(DataUtil.createClueData(task, ClueData.builder()
taskClue.add(clue); .id("")
continue; .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) { if (age >= 25 && age <= 34) {
RiskModelTaskClue clue = createClue(task.getModelId(), 3, person, task.getId(), "年龄处于25岁至34岁之间", "该人员年龄为" + age + ",属于25岁至34岁之间"); taskClue.add(DataUtil.createClueData(task, ClueData.builder()
taskClue.add(clue); .id("")
continue; .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) { if (age >= 35 && age <= 55) {
RiskModelTaskClue clue = createClue(task.getModelId(), 5, person, task.getId(), "年龄处于35岁至55岁之间", "该人员年龄为" + age + ",属于35岁至55岁之间"); taskClue.add(DataUtil.createClueData(task, ClueData.builder()
taskClue.add(clue); .id("")
continue; .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) { if (age >= 56 && age <= 65) {
RiskModelTaskClue clue = createClue(task.getModelId(), 3, person, task.getId(), "年龄处于56岁至66岁之间", "该人员年龄为" + age + ",属于56岁至66岁之间"); taskClue.add(DataUtil.createClueData(task, ClueData.builder()
taskClue.add(clue); .id("")
continue; .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) { if (age >= 66 && age <= 75) {
RiskModelTaskClue clue = createClue(task.getModelId(), 1, person, task.getId(), "年龄处于66岁至75岁之间", "该人员年龄为" + age + ",属于66岁至75岁之间"); taskClue.add(DataUtil.createClueData(task, ClueData.builder()
taskClue.add(clue); .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()) { if (!toHidden.isEmpty()) {
clueRepository.updateBatchById(toHidden); clueRepository.updateBatchById(toHidden);
} }
@ -563,7 +593,6 @@ public class RiskTaskServiceImpl implements RiskTaskService {
* *
* @param domain 参数 * @param domain 参数
* @param task 任务 * @param task 任务
* @return 筛选出来的用户
*/ */
void genderModel(TaskParamDomain domain, RiskTask task) { void genderModel(TaskParamDomain domain, RiskTask task) {
List<RiskModelTaskClue> taskClue = new ArrayList<>(); List<RiskModelTaskClue> taskClue = new ArrayList<>();
@ -576,10 +605,18 @@ public class RiskTaskServiceImpl implements RiskTaskService {
if (oldMap.get(person.getIdCode()) != null) { if (oldMap.get(person.getIdCode()) != null) {
continue; continue;
} }
RiskModelTaskClue clue = createClue(32, 5, person, task.getId(), "男性", "该人员性别为男性"); taskClue.add(DataUtil.createClueData(task, ClueData.builder()
taskClue.add(clue); .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); 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