|
|
|
|
@ -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 正确信息 |
|
|
|
|
|