|
|
|
@ -1,14 +1,12 @@ |
|
|
|
package com.biutag.supervisiondata.service.impl; |
|
|
|
package com.biutag.supervisiondata.service.impl; |
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson2.JSON; |
|
|
|
|
|
|
|
import com.alibaba.fastjson2.JSONObject; |
|
|
|
|
|
|
|
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; |
|
|
|
import com.biutag.supervisiondata.config.cache.RedisDao; |
|
|
|
|
|
|
|
import com.biutag.supervisiondata.pojo.ClueData; |
|
|
|
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.Contradict; |
|
|
|
import com.biutag.supervisiondata.pojo.domain.Contradict; |
|
|
|
|
|
|
|
import com.biutag.supervisiondata.pojo.domain.DBData; |
|
|
|
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.GBaseJJD; |
|
|
|
import com.biutag.supervisiondata.pojo.entity.dwd.GBaseJJD; |
|
|
|
@ -137,9 +135,6 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
info = compare(xxxInfo, personal.getName()); |
|
|
|
info = compare(xxxInfo, personal.getName()); |
|
|
|
} |
|
|
|
} |
|
|
|
if (info == null) { |
|
|
|
|
|
|
|
personal.setErrorMsg(personal.getIdCode()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
if (personal.getMobileNumber() != null && info == null) { |
|
|
|
if (personal.getMobileNumber() != null && info == null) { |
|
|
|
xxxInfo = mobileMap.get(personal.getMobileNumber()); |
|
|
|
xxxInfo = mobileMap.get(personal.getMobileNumber()); |
|
|
|
@ -175,7 +170,6 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
if (personal.getControlDepartType() != null && personal.getControlDepartType() >= DepartType.HUMAN.getType()) { |
|
|
|
if (personal.getControlDepartType() != null && personal.getControlDepartType() >= DepartType.HUMAN.getType()) { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<GBaseJJD> jjds = jjdMap.get(personal.getIdCode()); |
|
|
|
List<GBaseJJD> jjds = jjdMap.get(personal.getIdCode()); |
|
|
|
if (jjds == null) { |
|
|
|
if (jjds == null) { |
|
|
|
jjds = jjdMMap.get(Optional.ofNullable(personal.getMobileNumber()).orElse("")); |
|
|
|
jjds = jjdMMap.get(Optional.ofNullable(personal.getMobileNumber()).orElse("")); |
|
|
|
@ -186,9 +180,10 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
GBaseJJD tmp = jjds.getFirst(); |
|
|
|
GBaseJJD tmp = jjds.getFirst(); |
|
|
|
jjds.removeFirst(); |
|
|
|
jjds.removeFirst(); |
|
|
|
for (GBaseJJD jjd : jjds) { |
|
|
|
for (GBaseJJD jjd : jjds) { |
|
|
|
|
|
|
|
LocalDateTime time = DateTimeUtil.date2LocalDateTime(jjd.getBjsj()); |
|
|
|
|
|
|
|
LocalDateTime last = DateTimeUtil.date2LocalDateTime(tmp.getBjsj()); |
|
|
|
try { |
|
|
|
try { |
|
|
|
LocalDateTime time = jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); |
|
|
|
if (time.isAfter(last)) { |
|
|
|
if (time.isAfter(jjd.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime())) { |
|
|
|
|
|
|
|
tmp = jjd; |
|
|
|
tmp = jjd; |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (Exception ignored) { |
|
|
|
} catch (Exception ignored) { |
|
|
|
@ -224,93 +219,30 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void pullDataAndSaveRedis(LocalDateTime start, LocalDateTime end) { |
|
|
|
public void pullPoliceInstance(TaskParamDomain domain) { |
|
|
|
RedisDao.getInstance().removeListAll("jjd"); |
|
|
|
String endTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
RedisDao.getInstance().opsForHashDelAll("jjd_cache"); |
|
|
|
String startTime = LocalDateTime.now().minusYears(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
List<GBaseJJD> result = gBaseJJDRepository.getBaseMapper().selectDataToRisk(start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")), |
|
|
|
|
|
|
|
end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
|
|
|
|
|
|
|
for (GBaseJJD gBaseJJD : result) { |
|
|
|
|
|
|
|
String bjnr = Optional.ofNullable(gBaseJJD.getBjnr()).orElse(""); |
|
|
|
|
|
|
|
String cjqk = Optional.ofNullable(gBaseJJD.getCjqk()).orElse(""); |
|
|
|
|
|
|
|
if (bjnr.length() <= 2 && cjqk.length() <= 2) { |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
JSONObject ob = new JSONObject(); |
|
|
|
|
|
|
|
ob.put("id", gBaseJJD.getJjdbh()); |
|
|
|
|
|
|
|
ob.put("name", gBaseJJD.getBjrxm()); |
|
|
|
|
|
|
|
ob.put("mobile", gBaseJJD.getBjdh()); |
|
|
|
|
|
|
|
ob.put("idCode", Optional.ofNullable(gBaseJJD.getBjrzjhm()).orElse("暂无")); |
|
|
|
|
|
|
|
ob.put("bjnr", bjnr); |
|
|
|
|
|
|
|
ob.put("cjqk", cjqk); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String str1 = PatternUtil.takeIdCard(ob.getString("bjnr")); |
|
|
|
|
|
|
|
String str2 = PatternUtil.takeIdCard(ob.getString("cjqk")); |
|
|
|
|
|
|
|
String str3 = PatternUtil.takeMobile(ob.getString("bjnr")); |
|
|
|
|
|
|
|
String str4 = PatternUtil.takeMobile(ob.getString("cjqk")); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<String> idCodes = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> mobiles = new ArrayList<>(); |
|
|
|
|
|
|
|
idCodes.addAll(Arrays.stream(str1.split(",")).filter(item -> item.length() > 2).toList()); |
|
|
|
|
|
|
|
idCodes.addAll(Arrays.stream(str2.split(",")).filter(item -> item.length() > 2).toList()); |
|
|
|
|
|
|
|
mobiles.addAll(Arrays.stream(str3.split(",")).filter(item -> item.length() > 2).toList()); |
|
|
|
|
|
|
|
mobiles.addAll(Arrays.stream(str4.split(",")).filter(item -> item.length() > 2).toList()); |
|
|
|
|
|
|
|
mobiles.add(ob.getString("mobile")); |
|
|
|
|
|
|
|
idCodes = idCodes.stream().distinct().toList(); |
|
|
|
|
|
|
|
mobiles = mobiles.stream().distinct().toList(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ob.put("idCodes", idCodes); |
|
|
|
|
|
|
|
ob.put("mobiles", mobiles); |
|
|
|
|
|
|
|
RedisDao.getInstance().rightPush("jjd", ob.toJSONString()); |
|
|
|
|
|
|
|
RedisDao.getInstance().opsForHashSave("jjd_cache", gBaseJJD.getJjdbh(), JSON.toJSONString(gBaseJJD)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
log.info("完成缓存"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void pullPoliceInstance(LocalDateTime start, LocalDateTime end, TaskParamDomain domain) { |
|
|
|
|
|
|
|
String startTime = start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
|
|
|
|
String endTime = end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CompletableFuture.allOf( |
|
|
|
CompletableFuture.allOf( |
|
|
|
CompletableFutureUtil.runSyncObject(() -> { |
|
|
|
CompletableFutureUtil.runSyncObject(() -> { |
|
|
|
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectRevenge(startTime, endTime); |
|
|
|
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectRevenge(startTime, endTime); |
|
|
|
RiskTask task = taskRepository.create(jjdList.size(), 58); |
|
|
|
RiskTask task = taskRepository.create(jjdList.size(), 58); |
|
|
|
List<RiskModelTaskClue> list = collectJJD(task, "表达报复社会", jjdList, domain); |
|
|
|
collectJJD(task, "表达报复社会", jjdList, domain, "B83表达报复社会"); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
|
|
|
|
log.info("保存复仇者联盟:{}", list.size()); |
|
|
|
|
|
|
|
clueService.saveClues(list, "B83表达报复社会"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), list.size(), 0); |
|
|
|
|
|
|
|
}), |
|
|
|
}), |
|
|
|
CompletableFutureUtil.runSyncObject(() -> { |
|
|
|
CompletableFutureUtil.runSyncObject(() -> { |
|
|
|
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectHater(startTime, endTime); |
|
|
|
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectHater(startTime, endTime); |
|
|
|
RiskTask task = taskRepository.create(jjdList.size(), 55); |
|
|
|
RiskTask task = taskRepository.create(jjdList.size(), 55); |
|
|
|
List<RiskModelTaskClue> list = collectJJD(task, "表达厌世情绪", jjdList, domain); |
|
|
|
collectJJD(task, "表达厌世情绪", jjdList, domain, "B80表达厌世情绪"); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
|
|
|
|
log.info("厌世强者:{}", list.size()); |
|
|
|
|
|
|
|
clueService.saveClues(list, "B80表达厌世情绪"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), list.size(), 0); |
|
|
|
|
|
|
|
}), |
|
|
|
}), |
|
|
|
CompletableFutureUtil.runSyncObject(() -> { |
|
|
|
CompletableFutureUtil.runSyncObject(() -> { |
|
|
|
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectInjustice(startTime, endTime); |
|
|
|
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectInjustice(startTime, endTime); |
|
|
|
RiskTask task = taskRepository.create(jjdList.size(), 57); |
|
|
|
RiskTask task = taskRepository.create(jjdList.size(), 57); |
|
|
|
List<RiskModelTaskClue> list = collectJJD(task, "表达遭受不公", jjdList, domain); |
|
|
|
collectJJD(task, "表达遭受不公", jjdList, domain, "B82表达遭受不公"); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
|
|
|
|
log.info("我命由我不由天:{}", list.size()); |
|
|
|
|
|
|
|
clueService.saveClues(list, "B82表达遭受不公"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), list.size(), 0); |
|
|
|
|
|
|
|
}), |
|
|
|
}), |
|
|
|
CompletableFutureUtil.runSyncObject(() -> { |
|
|
|
CompletableFutureUtil.runSyncObject(() -> { |
|
|
|
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectSuicide(startTime, endTime); |
|
|
|
List<GBaseJJD> jjdList = gBaseJJDRepository.getBaseMapper().selectSuicide(startTime, endTime); |
|
|
|
RiskTask task = taskRepository.create(jjdList.size(), 56); |
|
|
|
RiskTask task = taskRepository.create(jjdList.size(), 56); |
|
|
|
List<RiskModelTaskClue> list = collectJJD(task, "尝试自杀", jjdList, domain); |
|
|
|
collectJJD(task, "尝试自杀", jjdList, domain, "B81尝试自杀"); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
|
|
|
|
log.info("毁灭吧:{}", list.size()); |
|
|
|
|
|
|
|
clueService.saveClues(list, "B81尝试自杀"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), list.size(), 0); |
|
|
|
|
|
|
|
}) |
|
|
|
}) |
|
|
|
).join(); |
|
|
|
).join(); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -468,17 +400,12 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
log.info("开始统计每个人的警情"); |
|
|
|
log.info("开始统计每个人的警情"); |
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
DBData data = new DBData(); |
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIds = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
|
|
|
|
|
|
|
|
List<GBaseJJD> list; |
|
|
|
List<GBaseJJD> list; |
|
|
|
for (Map.Entry<String, List<GBaseJJD>> entry : personJqList.entrySet()) { |
|
|
|
for (Map.Entry<String, List<GBaseJJD>> entry : personJqList.entrySet()) { |
|
|
|
list = entry.getValue().stream().distinct().sorted().toList(); |
|
|
|
list = entry.getValue().stream().distinct().sorted().toList(); |
|
|
|
|
|
|
|
|
|
|
|
LocalDateTime maxTime = null; |
|
|
|
LocalDateTime maxTime = null; |
|
|
|
for (GBaseJJD gBaseJJD : list) { |
|
|
|
for (GBaseJJD gBaseJJD : list) { |
|
|
|
LocalDateTime tmp = DateTimeUtil.date2LocalDateTime(gBaseJJD.getBjsj()); |
|
|
|
LocalDateTime tmp = DateTimeUtil.date2LocalDateTime(gBaseJJD.getBjsj()); |
|
|
|
@ -512,12 +439,11 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
update.setTags(List.of(list.size() + "起平台涉警事件")); |
|
|
|
update.setTags(List.of(list.size() + "起平台涉警事件")); |
|
|
|
update.setData(desc); |
|
|
|
update.setData(desc); |
|
|
|
update.setEventTime(maxTime); |
|
|
|
update.setEventTime(maxTime); |
|
|
|
toUpdate.add(update); |
|
|
|
data.getToUpdate().add(update); |
|
|
|
} |
|
|
|
} |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
data.getToInsert().add(DataUtil.createClueData(task, ClueData.builder() |
|
|
|
ClueData data = ClueData.builder() |
|
|
|
|
|
|
|
.name(person.getName()) |
|
|
|
.name(person.getName()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.tags(List.of(list.size() + "起平台涉警事件")) |
|
|
|
.tags(List.of(list.size() + "起平台涉警事件")) |
|
|
|
@ -525,31 +451,10 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
.eventTime(maxTime) |
|
|
|
.eventTime(maxTime) |
|
|
|
.personId(person.getId()) |
|
|
|
.personId(person.getId()) |
|
|
|
.score(Math.min(5, list.size())) |
|
|
|
.score(Math.min(5, list.size())) |
|
|
|
.build(); |
|
|
|
.build())); |
|
|
|
toInsert.add(DataUtil.createClueData(task, data)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIds.add(entry.getKey()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
|
|
|
|
log.info("保存平台涉警事件数据:{}", toInsert.size()); |
|
|
|
|
|
|
|
clueService.saveClues(toInsert, "B28平台涉警事件"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
log.info("修改平台涉警事件数据:{}", toUpdate.size()); |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
log.info("删除平台涉警事件数据:{}", toDelete.size()); |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIds, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toDelete.size() + toUpdate.size()); |
|
|
|
data = eachToDelete(data, oldMap); |
|
|
|
|
|
|
|
toDb(data, "平台涉警事件", "B28平台涉警事件", task); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -624,10 +529,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
Map<String, RiskModelTaskClue> personOldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
Map<String, RiskModelTaskClue> personOldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
Map<String, RiskModelTaskClue> personOldMap2 = domain.getOldMap(task2.getModelId(), true); |
|
|
|
Map<String, RiskModelTaskClue> personOldMap2 = domain.getOldMap(task2.getModelId(), true); |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
DBData data = new DBData(); |
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
DBData data2 = new DBData(); |
|
|
|
List<RiskModelTaskClue> toInsert2 = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toUpdate2 = new ArrayList<>(); |
|
|
|
|
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
// 被家暴
|
|
|
|
// 被家暴
|
|
|
|
RiskModelTaskClue clue1 = collectionClue(shIdCodeMap, shMobileMap, person, task, "被家暴"); |
|
|
|
RiskModelTaskClue clue1 = collectionClue(shIdCodeMap, shMobileMap, person, task, "被家暴"); |
|
|
|
@ -637,10 +540,10 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
personOldMap.remove(person.getIdCode()); |
|
|
|
personOldMap.remove(person.getIdCode()); |
|
|
|
if (!old1.getData().equals(clue1.getData())) { |
|
|
|
if (!old1.getData().equals(clue1.getData())) { |
|
|
|
clue1.setId(old1.getId()); |
|
|
|
clue1.setId(old1.getId()); |
|
|
|
toUpdate.add(clue1); |
|
|
|
data.getToUpdate().add(clue1); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
toInsert.add(clue1); |
|
|
|
data.getToInsert().add(clue1); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// 家暴
|
|
|
|
// 家暴
|
|
|
|
@ -648,56 +551,20 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
if (clue2 == null) continue; |
|
|
|
if (clue2 == null) continue; |
|
|
|
RiskModelTaskClue old2 = personOldMap2.get(person.getIdCode()); |
|
|
|
RiskModelTaskClue old2 = personOldMap2.get(person.getIdCode()); |
|
|
|
if (old2 == null) { |
|
|
|
if (old2 == null) { |
|
|
|
toInsert2.add(clue2); |
|
|
|
data2.getToInsert().add(clue2); |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
personOldMap2.remove(person.getIdCode()); |
|
|
|
personOldMap2.remove(person.getIdCode()); |
|
|
|
if (!old2.getData().equals(clue2.getData())) { |
|
|
|
if (!old2.getData().equals(clue2.getData())) { |
|
|
|
clue2.setId(old2.getId()); |
|
|
|
clue2.setId(old2.getId()); |
|
|
|
toUpdate2.add(clue2); |
|
|
|
data2.getToUpdate().add(clue2); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete2 = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards2 = new ArrayList<>(); |
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : personOldMap.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCards.add(entry.getKey()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : personOldMap2.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete2.add(delete); |
|
|
|
|
|
|
|
deleteIdCards2.add(entry.getKey()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
data = eachToDelete(data, personOldMap); |
|
|
|
|
|
|
|
data2 = eachToDelete(data2, personOldMap2); |
|
|
|
|
|
|
|
|
|
|
|
log.info("被家暴:{} | {} | {}", toInsert.size(), toUpdate.size(), toDelete.size()); |
|
|
|
toDb(data, "被家暴", "B53被他人家暴", task); |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
toDb(data2, "家暴", "B52对他人家暴", task2); |
|
|
|
clueService.saveClues(toInsert, "B53被他人家暴"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCards, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
log.info("家暴:{} | {} | {}", toInsert2.size(), toUpdate2.size(), toDelete2.size()); |
|
|
|
|
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
|
|
|
|
clueService.saveClues(toInsert2, "B52对他人家暴"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toUpdate2.isEmpty()) { |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate2, task2.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete2.isEmpty()) { |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete2, deleteIdCards2, task2.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size() + toDelete.size()); |
|
|
|
|
|
|
|
taskRepository.updateTask(task2.getId(), toInsert.size(), toUpdate2.size() + toDelete2.size()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -718,92 +585,44 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
|
|
|
|
|
|
|
|
log.info("父亲条数:{} | 母亲条数:{}", fatherIdCodeMap.size(), motherIdCodeMap.size()); |
|
|
|
log.info("父亲条数:{} | 母亲条数:{}", fatherIdCodeMap.size(), motherIdCodeMap.size()); |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> tmp1 = eachClue2Save(domain, task, fatherIdCodeMap, "父亲"); |
|
|
|
DBData fatherDBData = new DBData(); |
|
|
|
|
|
|
|
DBData motherDBData = new DBData(); |
|
|
|
List<RiskModelTaskClue> tmp2 = eachClue2Save(domain, task2, motherIdCodeMap, "母亲"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
Map<String, RiskModelTaskClue> fatherOldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
for (RiskModelTaskClue riskModelTaskClue : tmp1) { |
|
|
|
Map<String, RiskModelTaskClue> motherOldMap = domain.getOldMap(task2.getModelId(), true); |
|
|
|
RiskModelTaskClue old = oldMap.get(riskModelTaskClue.getIdCode()); |
|
|
|
|
|
|
|
if (old == null) { |
|
|
|
|
|
|
|
toInsert.add(riskModelTaskClue); |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
oldMap.remove(riskModelTaskClue.getIdCode()); |
|
|
|
|
|
|
|
if (!old.getData().equals(riskModelTaskClue.getData())) { |
|
|
|
|
|
|
|
riskModelTaskClue.setId(old.getId()); |
|
|
|
|
|
|
|
toUpdate.add(riskModelTaskClue); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
RiskModelTaskClue fatherClue = collectionClue(fatherIdCodeMap, new WeakHashMap<>(0), person, task, "与父亲关系不合"); |
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
RiskModelTaskClue motherClue = collectionClue(motherIdCodeMap, new WeakHashMap<>(0), person, task2, "与母亲关系不合"); |
|
|
|
delete.setDel(1); |
|
|
|
if (fatherClue != null) { |
|
|
|
toDelete.add(delete); |
|
|
|
RiskModelTaskClue fatherOld = fatherOldMap.get(person.getIdCode()); |
|
|
|
deleteIdCards.add(entry.getKey()); |
|
|
|
if(fatherOld == null) { |
|
|
|
} |
|
|
|
fatherDBData.getToInsert().add(fatherClue); |
|
|
|
|
|
|
|
} else { |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
fatherOldMap.remove(person.getIdCode()); |
|
|
|
log.info("父亲矛盾增加 {}", toInsert.size()); |
|
|
|
if (!fatherOld.getData().equals(fatherClue.getData())) { |
|
|
|
clueService.saveClues(toInsert, "B48与父亲关系"); |
|
|
|
fatherClue.setId(fatherOld.getId()); |
|
|
|
|
|
|
|
fatherDBData.getToUpdate().add(fatherClue); |
|
|
|
} |
|
|
|
} |
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
log.info("父亲矛盾修改 {}", toUpdate.size()); |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
log.info("父亲矛盾删除 {}", toDelete.size()); |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCards, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if(motherClue == null) continue; |
|
|
|
|
|
|
|
RiskModelTaskClue motherOld = motherOldMap.get(person.getIdCode()); |
|
|
|
List<RiskModelTaskClue> toInsert2 = new ArrayList<>(); |
|
|
|
if(motherOld == null) { |
|
|
|
List<RiskModelTaskClue> toUpdate2 = new ArrayList<>(); |
|
|
|
motherDBData.getToInsert().add(motherClue); |
|
|
|
List<RiskModelTaskClue> toDelete2 = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards2 = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, RiskModelTaskClue> oldMap2 = domain.getOldMap(task2.getModelId(), true); |
|
|
|
|
|
|
|
for (RiskModelTaskClue riskModelTaskClue : tmp2) { |
|
|
|
|
|
|
|
RiskModelTaskClue old = oldMap2.get(riskModelTaskClue.getIdCode()); |
|
|
|
|
|
|
|
if (old == null) { |
|
|
|
|
|
|
|
toInsert2.add(riskModelTaskClue); |
|
|
|
|
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
oldMap2.remove(riskModelTaskClue.getIdCode()); |
|
|
|
motherOldMap.remove(person.getIdCode()); |
|
|
|
if (!old.getData().equals(riskModelTaskClue.getData())) { |
|
|
|
if (!motherOld.getData().equals(motherClue.getData())) { |
|
|
|
riskModelTaskClue.setId(old.getId()); |
|
|
|
motherClue.setId(motherOld.getId()); |
|
|
|
toUpdate2.add(riskModelTaskClue); |
|
|
|
motherDBData.getToUpdate().add(motherClue); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap2.entrySet()) { |
|
|
|
fatherDBData = eachToDelete(fatherDBData, fatherOldMap); |
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
toDb(fatherDBData, "父亲矛盾", "B48与父亲关系", task); |
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
motherDBData = eachToDelete(motherDBData, motherOldMap); |
|
|
|
delete.setDel(1); |
|
|
|
toDb(motherDBData, "母亲矛盾", "B49与母亲关系", task2); |
|
|
|
toDelete2.add(delete); |
|
|
|
|
|
|
|
deleteIdCards2.add(entry.getKey()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!toInsert2.isEmpty()) { |
|
|
|
|
|
|
|
log.info("母亲矛盾增加 {}", toInsert2.size()); |
|
|
|
|
|
|
|
clueService.saveClues(toInsert2, "B49与母亲关系"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toUpdate2.isEmpty()) { |
|
|
|
|
|
|
|
log.info("母亲矛盾修改 {}", toUpdate2.size()); |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate2, task2.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete2.isEmpty()) { |
|
|
|
|
|
|
|
log.info("母亲矛盾删除 {}", toDelete2.size()); |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete2, deleteIdCards2, task2.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size() + toDelete.size()); |
|
|
|
|
|
|
|
taskRepository.updateTask(task2.getId(), toInsert2.size(), toUpdate2.size() + toDelete2.size()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -866,42 +685,23 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
DBData data = new DBData(); |
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
|
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
RiskModelTaskClue clue = collectionClue(idCodesMap, mobilesMap, person, task, "个人恋爱创伤"); |
|
|
|
RiskModelTaskClue clue = collectionClue(idCodesMap, mobilesMap, person, task, "个人恋爱创伤"); |
|
|
|
if (clue == null) continue; |
|
|
|
if (clue == null) continue; |
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
if (old == null) { |
|
|
|
if (old == null) { |
|
|
|
toInsert.add(clue); |
|
|
|
data.getToInsert().add(clue); |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
if (!old.getData().equals(clue.getData())) { |
|
|
|
if (!old.getData().equals(clue.getData())) { |
|
|
|
clue.setId(old.getId()); |
|
|
|
clue.setId(old.getId()); |
|
|
|
toUpdate.add(clue); |
|
|
|
data.getToUpdate().add(clue); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
data = eachToDelete(data, oldMap); |
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
toDb(data, "恋爱创伤", "B68个人恋爱创伤", task); |
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCards.add(entry.getValue().getIdCode()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
log.info("恋爱创伤:{} | {} | {}", toInsert.size(), toUpdate.size(), toDelete.size()); |
|
|
|
|
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
|
|
|
|
clueService.saveClues(toInsert, "B68个人恋爱创伤"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCards, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size() + toDelete.size()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -965,42 +765,23 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
DBData data = new DBData(); |
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
|
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
RiskModelTaskClue clue = collectionClue(idCodesMap, mobilesMap, person, task, "与配偶关系不和"); |
|
|
|
RiskModelTaskClue clue = collectionClue(idCodesMap, mobilesMap, person, task, "与配偶关系不和"); |
|
|
|
if (clue == null) continue; |
|
|
|
if (clue == null) continue; |
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
if (old == null) { |
|
|
|
if (old == null) { |
|
|
|
toInsert.add(clue); |
|
|
|
data.getToInsert().add(clue); |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
if (!old.getData().equals(clue.getData())) { |
|
|
|
if (!old.getData().equals(clue.getData())) { |
|
|
|
clue.setId(old.getId()); |
|
|
|
clue.setId(old.getId()); |
|
|
|
toUpdate.add(clue); |
|
|
|
data.getToUpdate().add(clue); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
data = eachToDelete(data, oldMap); |
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
toDb(data, "与配偶关系不和", "B55与配偶关系", task); |
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCards.add(entry.getValue().getIdCode()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
log.info("与配偶关系不和:{} | {} | {}", toInsert.size(), toUpdate.size(), toDelete.size()); |
|
|
|
|
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
|
|
|
|
clueService.saveClues(toInsert, "B55与配偶关系"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCards, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size() + toDelete.size()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -1063,43 +844,23 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
DBData data = new DBData(); |
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
RiskModelTaskClue clue = collectionClue(idCodesMap, mobilesMap, person, task, "与邻居或同事纠纷"); |
|
|
|
RiskModelTaskClue clue = collectionClue(idCodesMap, mobilesMap, person, task, "与邻居或同事纠纷"); |
|
|
|
if (clue == null) continue; |
|
|
|
if (clue == null) continue; |
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
if (old == null) { |
|
|
|
if (old == null) { |
|
|
|
toInsert.add(clue); |
|
|
|
data.getToInsert().add(clue); |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
if (!old.getData().equals(clue.getData())) { |
|
|
|
if (!old.getData().equals(clue.getData())) { |
|
|
|
clue.setId(old.getId()); |
|
|
|
clue.setId(old.getId()); |
|
|
|
toUpdate.add(clue); |
|
|
|
data.getToUpdate().add(clue); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCards.add(entry.getValue().getIdCode()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
log.info("邻里和同事:{} | {} | {}", toInsert.size(), toUpdate.size(), toDelete.size()); |
|
|
|
|
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
|
|
|
|
clueService.saveClues(toInsert, "B55同事与邻居关系"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCards, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size() + toDelete.size()); |
|
|
|
data = eachToDelete(data, oldMap); |
|
|
|
|
|
|
|
toDb(data, "邻里和同事", "B55同事与邻居关系", task); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -1170,11 +931,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
DBData data = new DBData(); |
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCards = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
List<GBaseJJD> jjdList = Optional.ofNullable(idCodesMap.get(person.getIdCode())).orElse(new ArrayList<>()); |
|
|
|
List<GBaseJJD> jjdList = Optional.ofNullable(idCodesMap.get(person.getIdCode())).orElse(new ArrayList<>()); |
|
|
|
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).sorted().toList(); |
|
|
|
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).sorted().toList(); |
|
|
|
@ -1186,14 +943,14 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
for (GBaseJJD jjd : jjdList) { |
|
|
|
for (GBaseJJD jjd : jjdList) { |
|
|
|
sb.append(jjd.getJjdbh()).append(","); |
|
|
|
sb.append(jjd.getJjdbh()).append(","); |
|
|
|
LocalDateTime tmp = DateTimeUtil.date2LocalDateTime(jjd.getBjsj()); |
|
|
|
LocalDateTime tmp = DateTimeUtil.date2LocalDateTime(jjd.getBjsj()); |
|
|
|
if (time == null || (tmp!= null && time.isBefore(tmp))) { |
|
|
|
if (time == null || (tmp != null && time.isBefore(tmp))) { |
|
|
|
time = tmp; |
|
|
|
time = tmp; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
String desc = sb.substring(0, sb.length() - 1); |
|
|
|
String desc = sb.substring(0, sb.length() - 1); |
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
if (old == null) { |
|
|
|
if (old == null) { |
|
|
|
toInsert.add(DataUtil.createClueData(task, ClueData.builder() |
|
|
|
data.getToInsert().add(DataUtil.createClueData(task, ClueData.builder() |
|
|
|
.name(person.getName()) |
|
|
|
.name(person.getName()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.tags(List.of("被欺凌")) |
|
|
|
.tags(List.of("被欺凌")) |
|
|
|
@ -1205,7 +962,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
if(old.getData().equals(desc)) continue; |
|
|
|
if (old.getData().equals(desc)) continue; |
|
|
|
RiskModelTaskClue update = DataUtil.createClueData(task, ClueData.builder() |
|
|
|
RiskModelTaskClue update = DataUtil.createClueData(task, ClueData.builder() |
|
|
|
.name(person.getName()) |
|
|
|
.name(person.getName()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
@ -1216,27 +973,11 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
.eventTime(time) |
|
|
|
.eventTime(time) |
|
|
|
.build()); |
|
|
|
.build()); |
|
|
|
update.setId(old.getId()); |
|
|
|
update.setId(old.getId()); |
|
|
|
toUpdate.add(update); |
|
|
|
data.getToUpdate().add(update); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
data = eachToDelete(data, oldMap); |
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
toDb(data, "欺凌", "B73遭遇暴力欺凌", task); |
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCards.add(entry.getValue().getIdCode()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
log.info("欺凌:{} | {} | {}", toInsert.size(), toUpdate.size(), toDelete.size()); |
|
|
|
|
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
|
|
|
|
clueService.saveClues(toInsert, "B73遭遇暴力欺凌"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCards, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size()+toDelete.size()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -1249,10 +990,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
Map<String, List<Contradict>> map = list.stream().collect(Collectors.groupingBy(Contradict::getGmsfhm)); |
|
|
|
Map<String, List<Contradict>> map = list.stream().collect(Collectors.groupingBy(Contradict::getGmsfhm)); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
DBData data = new DBData(); |
|
|
|
List<RiskModelTaskClue> toUpdate = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
List<Contradict> contradicts = Optional.ofNullable(map.get(person.getIdCode())).orElse(new ArrayList<>()).stream().sorted(Comparator.comparing(Contradict::getType)).toList(); |
|
|
|
List<Contradict> contradicts = Optional.ofNullable(map.get(person.getIdCode())).orElse(new ArrayList<>()).stream().sorted(Comparator.comparing(Contradict::getType)).toList(); |
|
|
|
if (contradicts.isEmpty()) continue; |
|
|
|
if (contradicts.isEmpty()) continue; |
|
|
|
@ -1280,10 +1018,10 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
RiskModelTaskClue update = new RiskModelTaskClue(); |
|
|
|
RiskModelTaskClue update = new RiskModelTaskClue(); |
|
|
|
update.setId(old.getId()); |
|
|
|
update.setId(old.getId()); |
|
|
|
update.setData(desc); |
|
|
|
update.setData(desc); |
|
|
|
toUpdate.add(update); |
|
|
|
data.getToUpdate().add(update); |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
toInsert.add(DataUtil.createClueData(task, ClueData.builder() |
|
|
|
data.getToInsert().add(DataUtil.createClueData(task, ClueData.builder() |
|
|
|
.name(person.getName()) |
|
|
|
.name(person.getName()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.idCode(person.getIdCode()) |
|
|
|
.tags(List.of("其他矛盾纠纷")) |
|
|
|
.tags(List.of("其他矛盾纠纷")) |
|
|
|
@ -1293,32 +1031,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
.score(5) |
|
|
|
.score(5) |
|
|
|
.build())); |
|
|
|
.build())); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
data = eachToDelete(data, oldMap); |
|
|
|
if (!toInsert.isEmpty()) { |
|
|
|
toDb(data, "其他纠纷", "B57其他矛盾纠纷", task); |
|
|
|
log.info("新增其他纠纷:{} ", toInsert.size()); |
|
|
|
|
|
|
|
clueService.saveClues(toInsert, "B57其他矛盾纠纷"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!toUpdate.isEmpty()) { |
|
|
|
|
|
|
|
log.info("修改其他纠纷:{} ", toUpdate.size()); |
|
|
|
|
|
|
|
clueService.updateClues(toUpdate, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toDelete = new ArrayList<>(); |
|
|
|
|
|
|
|
List<String> deleteIdCodes = new ArrayList<>(); |
|
|
|
|
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
|
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
|
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
|
|
|
|
delete.setDel(1); |
|
|
|
|
|
|
|
toDelete.add(delete); |
|
|
|
|
|
|
|
deleteIdCodes.add(entry.getValue().getIdCode()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!toDelete.isEmpty()) { |
|
|
|
|
|
|
|
log.info("删除其他纠纷:{} ", toDelete.size()); |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(toDelete, deleteIdCodes, task.getModelId()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
taskRepository.updateTask(task.getId(), toInsert.size(), toUpdate.size() + toDelete.size()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
@ -1328,9 +1042,8 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
* @param tag 标签 |
|
|
|
* @param tag 标签 |
|
|
|
* @param result 接警单数据 |
|
|
|
* @param result 接警单数据 |
|
|
|
* @param domain domain |
|
|
|
* @param domain domain |
|
|
|
* @return 要新增的结果 |
|
|
|
|
|
|
|
*/ |
|
|
|
*/ |
|
|
|
List<RiskModelTaskClue> collectJJD(RiskTask task, String tag, List<GBaseJJD> result, TaskParamDomain domain) { |
|
|
|
void collectJJD(RiskTask task, String tag, List<GBaseJJD> result, TaskParamDomain domain, String bigTag) { |
|
|
|
Map<String, List<GBaseJJD>> idCodesMap = new WeakHashMap<>(); |
|
|
|
Map<String, List<GBaseJJD>> idCodesMap = new WeakHashMap<>(); |
|
|
|
Map<String, List<GBaseJJD>> mobilesMap = new WeakHashMap<>(); |
|
|
|
Map<String, List<GBaseJJD>> mobilesMap = new WeakHashMap<>(); |
|
|
|
|
|
|
|
|
|
|
|
@ -1374,15 +1087,24 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
List<RiskModelTaskClue> oldList = Optional.ofNullable(domain.getMap().get(task.getModelId())).orElse(new ArrayList<>()); |
|
|
|
Map<String, RiskModelTaskClue> oldMap = domain.getOldMap(task.getModelId(), true); |
|
|
|
// 按人分
|
|
|
|
|
|
|
|
Map<String, List<RiskModelTaskClue>> personOldMap = oldList.stream().collect(Collectors.groupingBy(RiskModelTaskClue::getIdCode)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
DBData data = new DBData(); |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
toInsert.addAll(collectionClue(idCodesMap, mobilesMap, person, personOldMap, task, tag)); |
|
|
|
RiskModelTaskClue clue = collectionClue(idCodesMap, mobilesMap, person, task, tag); |
|
|
|
|
|
|
|
if (clue == null) continue; |
|
|
|
|
|
|
|
RiskModelTaskClue old = oldMap.get(person.getIdCode()); |
|
|
|
|
|
|
|
if (old == null) { |
|
|
|
|
|
|
|
data.getToInsert().add(clue); |
|
|
|
|
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
return toInsert; |
|
|
|
oldMap.remove(person.getIdCode()); |
|
|
|
|
|
|
|
if (old.getData().equals(clue.getData())) continue; |
|
|
|
|
|
|
|
clue.setId(old.getId()); |
|
|
|
|
|
|
|
data.getToUpdate().add(clue); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
data = eachToDelete(data, oldMap); |
|
|
|
|
|
|
|
toDb(data, tag, bigTag, task); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Map<String, List<GBaseJJD>> findTargetJJD(List<GBaseJJD> jjdList) { |
|
|
|
Map<String, List<GBaseJJD>> findTargetJJD(List<GBaseJJD> jjdList) { |
|
|
|
@ -1448,103 +1170,39 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
return fatherIdCodeMap; |
|
|
|
return fatherIdCodeMap; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<RiskModelTaskClue> eachClue2Save(TaskParamDomain domain, RiskTask task, Map<String, List<GBaseJJD>> idCodeMap, String tag) { |
|
|
|
DBData eachToDelete(DBData data, Map<String, RiskModelTaskClue> oldMap) { |
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
for (Map.Entry<String, RiskModelTaskClue> entry : oldMap.entrySet()) { |
|
|
|
for (RiskPersonal person : domain.getPersons()) { |
|
|
|
RiskModelTaskClue delete = new RiskModelTaskClue(); |
|
|
|
List<GBaseJJD> jjdList = Optional.ofNullable(idCodeMap.get(person.getIdCode())).orElse(new ArrayList<>()); |
|
|
|
delete.setId(entry.getValue().getId()); |
|
|
|
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).sorted().toList(); |
|
|
|
delete.setDel(1); |
|
|
|
if (jjdList.isEmpty()) { |
|
|
|
data.getToDelete().add(delete); |
|
|
|
continue; |
|
|
|
data.getDeleteIdCards().add(entry.getValue().getIdCode()); |
|
|
|
} |
|
|
|
|
|
|
|
LocalDateTime time = null; |
|
|
|
|
|
|
|
StringBuilder sb = new StringBuilder("该人员与" + tag + "存在" + jjdList.size() + "起矛盾,接警单编号:"); |
|
|
|
|
|
|
|
for (GBaseJJD jjd : jjdList) { |
|
|
|
|
|
|
|
sb.append(jjd.getJjdbh()).append(","); |
|
|
|
|
|
|
|
LocalDateTime tmp = DateTimeUtil.date2LocalDateTime(jjd.getBjsj()); |
|
|
|
|
|
|
|
if (time == null || (tmp!= null && time.isBefore(tmp))) time = tmp; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
toInsert.add(DataUtil.createClueData(task, ClueData.builder() |
|
|
|
|
|
|
|
.name(person.getName()) |
|
|
|
|
|
|
|
.idCode(person.getIdCode()) |
|
|
|
|
|
|
|
.tags(List.of("与" + tag + "存在矛盾")) |
|
|
|
|
|
|
|
.eventTime(time) |
|
|
|
|
|
|
|
.score(Math.min(5, jjdList.size())) |
|
|
|
|
|
|
|
.sourceData(sb.substring(0, sb.length() - 1)) |
|
|
|
|
|
|
|
.personId(person.getId()) |
|
|
|
|
|
|
|
.build())); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return toInsert; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String findSmallOne(List<String> list) { |
|
|
|
|
|
|
|
LocalDate today = LocalDate.now(); |
|
|
|
|
|
|
|
String idCode = null; |
|
|
|
|
|
|
|
int age = 0; |
|
|
|
|
|
|
|
for (String s : list) { |
|
|
|
|
|
|
|
if (idCode == null) { |
|
|
|
|
|
|
|
idCode = s; |
|
|
|
|
|
|
|
age = Optional.ofNullable(IdCodeUtil.idCard2Age(s, today)).orElse(0); |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
int tmp = Optional.ofNullable(IdCodeUtil.idCard2Age(s, today)).orElse(0); |
|
|
|
|
|
|
|
if (tmp < age) { |
|
|
|
|
|
|
|
age = tmp; |
|
|
|
|
|
|
|
idCode = s; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
return idCode; |
|
|
|
return data; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
void toDb(DBData data, String mark, String bigTag, RiskTask task) { |
|
|
|
* 手机要搜索的clue数据 |
|
|
|
if (!data.getToInsert().isEmpty()) { |
|
|
|
* |
|
|
|
log.info("{}增加 {}", mark, data.getToInsert().size()); |
|
|
|
* @param idCode 身份证Map |
|
|
|
clueService.saveClues(data.getToInsert(), bigTag); |
|
|
|
* @param mobile 手机号map |
|
|
|
|
|
|
|
* @param personal 人员 |
|
|
|
|
|
|
|
* @param personOldMap 人员的旧clue |
|
|
|
|
|
|
|
* @param task 任务 |
|
|
|
|
|
|
|
* @param tag 标签 |
|
|
|
|
|
|
|
* @return 要新增的clue |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
List<RiskModelTaskClue> collectionClue(Map<String, List<GBaseJJD>> idCode, Map<String, List<GBaseJJD>> mobile, RiskPersonal personal, Map<String, List<RiskModelTaskClue>> personOldMap, RiskTask task, String tag) { |
|
|
|
|
|
|
|
List<GBaseJJD> jjdList = Optional.ofNullable(idCode.get(personal.getIdCode())).orElse(new ArrayList<>()); |
|
|
|
|
|
|
|
jjdList.addAll(Optional.ofNullable(mobile.get(personal.getMobileNumber())).orElse(new ArrayList<>())); |
|
|
|
|
|
|
|
if (jjdList.isEmpty()) { |
|
|
|
|
|
|
|
return new ArrayList<>(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
jjdList = jjdList.stream().filter(StreamUtil.distinctByKey(GBaseJJD::getJjdbh)).toList(); |
|
|
|
|
|
|
|
List<RiskModelTaskClue> olds = personOldMap.get(personal.getIdCode()); |
|
|
|
|
|
|
|
if (olds != null) { |
|
|
|
|
|
|
|
return new ArrayList<>(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
List<RiskModelTaskClue> toInsert = new ArrayList<>(); |
|
|
|
if (!data.getToUpdate().isEmpty()) { |
|
|
|
StringBuilder sb = new StringBuilder("该人员存在" + jjdList.size() + "起" + tag + "警情,接警单编号:"); |
|
|
|
log.info("{}修改 {}", mark, data.getToUpdate().size()); |
|
|
|
LocalDateTime time = null; |
|
|
|
clueService.updateClues(data.getToUpdate(), task.getModelId()); |
|
|
|
for (GBaseJJD gBaseJJD : jjdList) { |
|
|
|
|
|
|
|
sb.append(gBaseJJD.getJjdbh()).append(","); |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
LocalDateTime tmp = gBaseJJD.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); |
|
|
|
|
|
|
|
if (time == null) { |
|
|
|
|
|
|
|
time = tmp; |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
if (time.isBefore(tmp)) { |
|
|
|
if (!data.getToDelete().isEmpty()) { |
|
|
|
time = tmp; |
|
|
|
log.info("{}删除 {}", mark, data.getToDelete().size()); |
|
|
|
|
|
|
|
clueService.deleteCluesAndDeleteTag(data.getToDelete(), data.getDeleteIdCards(), task.getModelId()); |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (Exception ignored) { |
|
|
|
taskRepository.updateTask(task.getId(), data.getToInsert().size(), data.getToUpdate().size() + data.getToDelete().size()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
String findSmallOne(List<String> list) { |
|
|
|
toInsert.add(DataUtil.createClueData(task, ClueData.builder() |
|
|
|
LocalDate today = LocalDate.now(); |
|
|
|
.name(personal.getName()) |
|
|
|
return list.stream() |
|
|
|
.idCode(personal.getIdCode()) |
|
|
|
.min(Comparator.comparingInt(id -> Optional.ofNullable(IdCodeUtil.idCard2Age(id, today)) |
|
|
|
.tags(List.of(tag)) |
|
|
|
.orElse(Integer.MAX_VALUE))) |
|
|
|
.personId(personal.getId()) |
|
|
|
.orElse(null); |
|
|
|
.eventTime(time) |
|
|
|
|
|
|
|
.sourceData(sb.substring(0, sb.length() - 1)) |
|
|
|
|
|
|
|
.score(Math.min(jjdList.size(), 5)) |
|
|
|
|
|
|
|
.build())); |
|
|
|
|
|
|
|
return toInsert; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
@ -1567,7 +1225,7 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
for (GBaseJJD gBaseJJD : jjdList) { |
|
|
|
for (GBaseJJD gBaseJJD : jjdList) { |
|
|
|
sb.append(gBaseJJD.getJjdbh()).append(","); |
|
|
|
sb.append(gBaseJJD.getJjdbh()).append(","); |
|
|
|
LocalDateTime tmp = DateTimeUtil.date2LocalDateTime(gBaseJJD.getBjsj()); |
|
|
|
LocalDateTime tmp = DateTimeUtil.date2LocalDateTime(gBaseJJD.getBjsj()); |
|
|
|
if (time == null || (tmp!= null && time.isBefore(tmp))) { |
|
|
|
if (time == null || (tmp != null && time.isBefore(tmp))) { |
|
|
|
time = tmp; |
|
|
|
time = tmp; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -1584,20 +1242,12 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 多身份证对比名称 |
|
|
|
* 多身份证对比名称 |
|
|
|
* |
|
|
|
|
|
|
|
* @param infos 信息 |
|
|
|
* @param infos 信息 |
|
|
|
* @param name 名称 |
|
|
|
* @param name 名称 |
|
|
|
* @return 正确信息 |
|
|
|
* @return 正确信息 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
GBaseSYRKXX compare(List<GBaseSYRKXX> infos, String name) { |
|
|
|
GBaseSYRKXX compare(List<GBaseSYRKXX> infos, String name) { |
|
|
|
GBaseSYRKXX info = null; |
|
|
|
return infos.stream().filter(item -> item.getXm().equals(name)).findFirst().orElse(null); |
|
|
|
for (GBaseSYRKXX gBaseSYRKXX : infos) { |
|
|
|
|
|
|
|
if (gBaseSYRKXX.getXm().equals(name)) { |
|
|
|
|
|
|
|
info = gBaseSYRKXX; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return info; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
RiskPersonal createPerson(GBaseJJD item) { |
|
|
|
RiskPersonal createPerson(GBaseJJD item) { |
|
|
|
@ -1610,14 +1260,9 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
person.setIdCode(item.getBjrzjhm()); |
|
|
|
person.setIdCode(item.getBjrzjhm()); |
|
|
|
person.setControlDepartType(DepartType.OTHER.getType()); |
|
|
|
person.setControlDepartType(DepartType.OTHER.getType()); |
|
|
|
// 如果有报警时间,暂时填报警时间 处理标签回正
|
|
|
|
// 如果有报警时间,暂时填报警时间 处理标签回正
|
|
|
|
try { |
|
|
|
person.setCreateTime(DateTimeUtil.date2LocalDateTime(item.getBjsj())); |
|
|
|
LocalDateTime time = item.getBjsj().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); |
|
|
|
person.setControlTime(person.getCreateTime()); |
|
|
|
person.setCreateTime(time); |
|
|
|
if (person.getCreateTime() == null) person.setCreateTime(LocalDateTime.now()); |
|
|
|
person.setControlTime(time); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
|
|
person.setCreateTime(LocalDateTime.now()); |
|
|
|
|
|
|
|
log.info("报警时间处理异常"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 这里暂时将小标签放到预览属性 处理标签回正
|
|
|
|
// 这里暂时将小标签放到预览属性 处理标签回正
|
|
|
|
person.setTags(item.getJqxzmc()); |
|
|
|
person.setTags(item.getJqxzmc()); |
|
|
|
return person; |
|
|
|
return person; |
|
|
|
@ -1628,16 +1273,11 @@ public class GBaseJJDServiceImpl implements GBaseJJDService { |
|
|
|
personal.setIdCode(info.getGmsfhm()); |
|
|
|
personal.setIdCode(info.getGmsfhm()); |
|
|
|
personal.setMobileNumber(info.getLxdh()); |
|
|
|
personal.setMobileNumber(info.getLxdh()); |
|
|
|
personal.setGender(IdCodeUtil.idCard2Gender(personal.getIdCode())); |
|
|
|
personal.setGender(IdCodeUtil.idCard2Gender(personal.getIdCode())); |
|
|
|
personal.setAge(Optional.ofNullable(IdCodeUtil.idCard2Age(personal.getIdCode(), LocalDate.now())).orElse(-1)); |
|
|
|
personal.setAge(Optional.ofNullable(IdCodeUtil.idCard2Age(personal.getIdCode(), today)).orElse(-1)); |
|
|
|
if (personal.getAge() == null) { |
|
|
|
if (personal.getAge() == null) { |
|
|
|
try { |
|
|
|
LocalDate localDate = DateTimeUtil.date2LocalDate(info.getCsrq()); |
|
|
|
LocalDate localDate = info.getCsrq().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); |
|
|
|
|
|
|
|
int age = localDate.until(today).getYears(); |
|
|
|
int age = localDate.until(today).getYears(); |
|
|
|
personal.setAge(age); |
|
|
|
personal.setAge(age); |
|
|
|
} catch (Exception e) { |
|
|
|
|
|
|
|
log.error("发现一例没有出生日期"); |
|
|
|
|
|
|
|
personal.setAge(-1); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
if (personal.getGender() == null) { |
|
|
|
if (personal.getGender() == null) { |
|
|
|
personal.setGender(info.getXbdm()); |
|
|
|
personal.setGender(info.getXbdm()); |
|
|
|
|