Browse Source

Merge remote-tracking branch 'origin/master'

master
sjh 1 year ago
parent
commit
952aaca4bd
  1. 2
      src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java
  2. 10
      src/main/java/com/biutag/supervisiondata/pojo/entity/ads/GBaseSYRKXX.java
  3. 11
      src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseWFRXX.java
  4. 14
      src/main/java/com/biutag/supervisiondata/service/GBaseSHRWFRService.java
  5. 2
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseJJDServiceImpl.java
  6. 155
      src/main/java/com/biutag/supervisiondata/service/impl/GBaseSHRWFRServiceImpl.java
  7. 13
      src/main/java/com/biutag/supervisiondata/service/impl/PointServiceImpl.java

2
src/main/java/com/biutag/supervisiondata/pojo/constants/Default.java

@ -62,7 +62,7 @@ public class Default {
public static final String WFR_IG = "犯罪前科因素";
public static final String IMPORT_IG = "特种职业因素";
public static final String IMPORT_IG = "职业因素";
public static final String TRUBO_IG = "涉矛盾纠纷因素";

10
src/main/java/com/biutag/supervisiondata/pojo/entity/ads/GBaseSYRKXX.java

@ -60,5 +60,15 @@ public class GBaseSYRKXX {
String sspcsdm;
@TableField("sspcsmc")
String sspcsmc;
/**
* 职业名称
*/
@TableField("zymc")
String zymc;
/**
* 职业代码
*/
@TableField("zydm")
String zydm;
}

11
src/main/java/com/biutag/supervisiondata/pojo/entity/dwd/GBaseWFRXX.java

@ -45,6 +45,17 @@ public class GBaseWFRXX implements Serializable {
*/
@TableField("sxzm")
String sxzm;
/**
* 职业名称
*/
@TableField("zymc")
String zymc;
/**
* 职业代码
*/
@TableField("zydm")
String zydm;
@TableField("lrsj")
Date lrsj;
}

14
src/main/java/com/biutag/supervisiondata/service/GBaseSHRWFRService.java

@ -18,7 +18,19 @@ public interface GBaseSHRWFRService {
/**
* 打击5年内犯罪
* @param domain
* @param domain domain
*/
void combatCrime(TaskParamDomain domain);
/**
* 罪名名称
* @param domain domain
*/
void crimeName(TaskParamDomain domain);
/**
* 有咩有工作
* @param domain domain
*/
void hadWork(TaskParamDomain domain);
}

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

@ -535,7 +535,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService {
}
log.info("家暴:{} | {}", toInsert2.size(), toUpdate2.size());
if (!toInsert.isEmpty()) {
clueService.saveClues(toInsert, Default.HOME_VIOLENCE);
clueService.saveClues(toInsert2, Default.HOME_VIOLENCE);
}
if (!toUpdate2.isEmpty()) {
clueService.deleteCluesAndDeleteTag(toUpdate2, deleteIdCards, "家暴");

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

@ -14,6 +14,7 @@ import com.biutag.supervisiondata.pojo.entity.mine.RiskModelTaskClue;
import com.biutag.supervisiondata.pojo.entity.mine.RiskPersonal;
import com.biutag.supervisiondata.pojo.entity.mine.RiskTask;
import com.biutag.supervisiondata.pojo.entity.mine.SupExternalDepart;
import com.biutag.supervisiondata.pojo.entity.wdpc.WdpcGrjdZblx;
import com.biutag.supervisiondata.pojo.enums.DepartType;
import com.biutag.supervisiondata.repository.*;
import com.biutag.supervisiondata.service.GBaseSHRWFRService;
@ -341,7 +342,7 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
.name(person.getName())
.id(BhUtil.ajBh(xx.getAjbh()))
.idCode(person.getIdCode())
.tag("被打击处理")
.tag("被打击处理")
.personId(person.getId())
.sourceData("该人员因" + xx.getSxzm() + "被打击处理,案件编号:" + xx.getAjbh() + ",增加风险分5分")
.build();
@ -360,8 +361,160 @@ public class GBaseSHRWFRServiceImpl implements GBaseSHRWFRService {
taskRepository.updateTask(task.getId(), toInsert.size(), 0);
}
@Override
public void crimeName(TaskParamDomain domain) {
}
private final WdpcGrjdZblxRepository zblxRepository;
@Override
public void hadWork(TaskParamDomain domain) {
// 职业等级
RiskTask task = taskRepository.create(domain.getPersons().size(), 37);
// 有无职业
RiskTask task2 = taskRepository.create(domain.getPersons().size(), 67);
List<WdpcGrjdZblx> lxList = zblxRepository.list(new LambdaQueryWrapper<WdpcGrjdZblx>()
.in(WdpcGrjdZblx::getLxdm, List.of("9", "12")));
Map<String, List<WdpcGrjdZblx>> lxMap = lxList.stream().collect(Collectors.groupingBy(WdpcGrjdZblx::getLxdm));
Map<String, String> wfrMap = new WeakHashMap<>();
int count = domain.getIdCards().size();
for (List<String> idCard : domain.getIdCards()) {
count--;
log.info("违法人进度{}", count);
List<GBaseWFRXX> tmp = wfrxxRepository.list(new LambdaQueryWrapper<GBaseWFRXX>()
.select(GBaseWFRXX::getZjhm, GBaseWFRXX::getZydm)
.in(GBaseWFRXX::getZjhm, idCard));
for (GBaseWFRXX gBaseWFRXX : tmp) {
wfrMap.put(gBaseWFRXX.getZjhm(), gBaseWFRXX.getZydm());
}
}
// 担心和保安、涉药模型混搭
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true);
List<WdpcGrjdZblx> wfzyList = Optional.ofNullable(lxMap.get("12")).orElse(new ArrayList<>());
Map<String, WdpcGrjdZblx> wfzyMap = wfzyList.stream().collect(Collectors.toMap(WdpcGrjdZblx::getDmbh, Function.identity(), (val, old) -> val));
// 职业登记划分
List<RiskModelTaskClue> toInsert = new ArrayList<>();
// 有无职业
List<RiskModelTaskClue> toInsert2 = new ArrayList<>();
// 实有人口要查的
List<RiskPersonal> personalList = new ArrayList<>();
List<List<String>> srIdCodes = new ArrayList<>();
for (RiskPersonal person : domain.getPersons()) {
if (oldMap.get(person.getIdCode()) != null) {
continue;
}
String zydm = wfrMap.get(person.getIdCode());
if (zydm == null) {
if (srIdCodes.isEmpty()) {
srIdCodes.add(new ArrayList<>());
}
if (srIdCodes.getLast().size() >= 10000) {
srIdCodes.add(new ArrayList<>());
}
srIdCodes.getLast().add(person.getIdCode());
personalList.add(person);
continue;
}
WdpcGrjdZblx zblx = wfzyMap.get(zydm);
if (zblx == null) {
if (srIdCodes.isEmpty()) {
srIdCodes.add(new ArrayList<>());
}
if (srIdCodes.getLast().size() >= 10000) {
srIdCodes.add(new ArrayList<>());
}
srIdCodes.getLast().add(person.getIdCode());
personalList.add(person);
continue;
}
ClueData data = ClueData.builder()
.name(person.getName())
.id("zy")
.idCode(person.getIdCode())
.tag(zblx.getDmmc())
.eventTime(LocalDateTime.now())
.personId(person.getId())
.build();
if (zblx.getScore() < 5.0) {
data.setSourceData("该人员从事" + zblx.getDmmc() + "的职业,增加风险分" + zblx.getScore().intValue() + "分");
} else {
data.setSourceData("该人员" + zblx.getDmmc() + ",增加风险分" + zblx.getScore().intValue() + "分");
ClueData data2 = ClueData.builder()
.name(person.getName())
.id("zy")
.idCode(person.getIdCode())
.tag(zblx.getDmmc())
.eventTime(LocalDateTime.now())
.personId(person.getId())
.sourceData("该人员无固定职业,增加风险分5分")
.build();
toInsert2.add(createClue(task2.getModelId(), zblx.getScore().intValue(), task2.getId(), data2));
}
toInsert.add(createClue(task.getModelId(), zblx.getScore().intValue(), task.getId(), data));
}
List<GBaseSYRKXX> xxList = new ArrayList<>();
count = srIdCodes.size();
for (List<String> srIdCode : srIdCodes) {
count--;
log.info("实有人口进度{}", count);
xxList.addAll(gBaseSYRKXXRepository.list(new LambdaQueryWrapper<GBaseSYRKXX>()
.select(GBaseSYRKXX::getZydm, GBaseSYRKXX::getGmsfhm)
.in(GBaseSYRKXX::getGmsfhm, srIdCode)));
}
Map<String, String> syMap = xxList.stream().collect(Collectors.toMap(GBaseSYRKXX::getGmsfhm, GBaseSYRKXX::getZydm, (val, old) -> val));
for (RiskPersonal person : personalList) {
String zydm = syMap.get(person.getIdCode());
if (zydm == null) continue;
WdpcGrjdZblx zblx = wfzyMap.get(zydm);
if(zblx == null) continue;
ClueData data = ClueData.builder()
.name(person.getName())
.id("zy")
.idCode(person.getIdCode())
.tag(zblx.getDmmc())
.eventTime(LocalDateTime.now())
.personId(person.getId())
.build();
if (zblx.getScore() < 5.0) {
data.setSourceData("该人员从事" + zblx.getDmmc() + "的职业,增加风险分" + zblx.getScore().intValue() + "分");
} else {
data.setSourceData("该人员" + zblx.getDmmc() + ",增加风险分" + zblx.getScore().intValue() + "分");
ClueData data2 = ClueData.builder()
.name(person.getName())
.id("zy")
.idCode(person.getIdCode())
.tag(zblx.getDmmc())
.eventTime(LocalDateTime.now())
.personId(person.getId())
.sourceData("该人员无固定职业,增加风险分5分")
.build();
toInsert2.add(createClue(task2.getModelId(), zblx.getScore().intValue(), task2.getId(), data2));
}
toInsert.add(createClue(task.getModelId(), zblx.getScore().intValue(), task.getId(), data));
}
if(!toInsert.isEmpty()) {
log.info("保存职业类型: {}", toInsert.size());
clueService.saveClues(toInsert, Default.IMPORT_IG);
}
if(!toInsert2.isEmpty()) {
log.info("保存无职业: {}", toInsert2.size());
clueService.saveClues(toInsert2, Default.IMPORT_IG);
}
taskRepository.updateTask(task.getId(), toInsert.size(), 0);
taskRepository.updateTask(task2.getId(), toInsert2.size(), 0);
}
/**
* 多身份证对比名称
*
* @param infos 信息
* @param name 名称
* @return 正确信息

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

@ -169,18 +169,24 @@ public class PointServiceImpl implements PointService {
if(oldClue.get(index) != null || zblx == null) {
continue;
}
toInsert.add(createClue(task.getModelId(), zblx.getScore().intValue(), task.getId(), ClueData.builder()
ClueData data = ClueData.builder()
.id(index)
.personId(person.getId())
.tag(zblx.getDmmc())
.name(person.getName())
.idCode(person.getIdCode())
.sourceData("该人员存在标签:" + zblx.getDmmc() + ",增加风险分5分")
.build()));
.build();
try {
data.setEventTime(LocalDateTime.parse(ry.getJlbgsj(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
} catch (Exception e) {
data.setEventTime(LocalDateTime.now());
}
toInsert.add(createClue(task.getModelId(), zblx.getScore().intValue(), task.getId(), data));
}
}
if (!toInsert.isEmpty()) {
log.info("保存重点人员标签, {}");
log.info("保存重点人员标签 {}", toInsert.size());
modelTaskClueService.saveClues(toInsert, Default.POINT_IG);
}
taskRepository.updateTask(task.getId(), toInsert.size(), 0);
@ -231,6 +237,7 @@ public class PointServiceImpl implements PointService {
try {
data.setEventTime(violence.getBarq().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
} catch (Exception ignored) {
data.setEventTime(LocalDateTime.now());
}
toInsert.add(createClue2(task.getModelId(), 5, task.getId(), data));
}

Loading…
Cancel
Save