|
|
|
|
@ -398,44 +398,44 @@ public class MailBoxCaptureService {
|
|
|
|
|
* 同步涉及人 |
|
|
|
|
*/ |
|
|
|
|
private List<NegativeBlame> syncBlame(Mail mail, String negativeId, List<MailBlame> mailBlames) { |
|
|
|
|
// 幂等性检查:已存在则跳过
|
|
|
|
|
LambdaQueryWrapper<NegativeBlame> existWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
existWrapper.eq(NegativeBlame::getNegativeId, negativeId); |
|
|
|
|
if (blameService.count(existWrapper) > 0) { |
|
|
|
|
log.info("【阶段2同步】涉及人已存在,跳过: negativeId={}", negativeId); |
|
|
|
|
return Collections.emptyList(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// mailBlames 已由调用方在事务外查询好
|
|
|
|
|
if (CollectionUtil.isEmpty(mailBlames)) { |
|
|
|
|
return Collections.emptyList(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 全量覆盖同步:先删除问题关联,再删除涉及人员
|
|
|
|
|
negativeProblemRelationService.remove(negativeId); |
|
|
|
|
blameService.remove(negativeId); |
|
|
|
|
|
|
|
|
|
List<NegativeBlame> result = new ArrayList<>(); |
|
|
|
|
for (MailBlame blame : mailBlames) { |
|
|
|
|
// 通过姓名+警号查询 SupPolice 获取完整信息
|
|
|
|
|
// 通过身份证号或警号查询 SupPolice 获取完整信息
|
|
|
|
|
LambdaQueryWrapper<SupPolice> supPoliceLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
supPoliceLambdaQueryWrapper.eq(SupPolice::getIdCode, blame.getBlameIdCode()); |
|
|
|
|
supPoliceLambdaQueryWrapper.last("limit 1"); |
|
|
|
|
supPoliceLambdaQueryWrapper |
|
|
|
|
.eq(StrUtil.isNotBlank(blame.getBlameIdCode()), SupPolice::getIdCode, blame.getBlameIdCode()) |
|
|
|
|
.or() |
|
|
|
|
.eq(StrUtil.isNotBlank(blame.getBlameEmpNo()), SupPolice::getEmpNo, blame.getBlameEmpNo()) |
|
|
|
|
.last("limit 1"); |
|
|
|
|
SupPolice police = supPoliceService.getOne(supPoliceLambdaQueryWrapper); |
|
|
|
|
if (Objects.isNull(police)) { |
|
|
|
|
log.warn("【阶段2同步】未找到该警员的数据! blameName={}, blameEmpNo={}", blame.getBlameName(), blame.getBlameEmpNo()); |
|
|
|
|
continue; |
|
|
|
|
log.warn("【阶段2同步】未找到该警员的数据,使用MailBlame数据补充! blameName={}, blameEmpNo={}", blame.getBlameName(), blame.getBlameEmpNo()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
NegativeBlame negativeBlame = new NegativeBlame(); |
|
|
|
|
negativeBlame.setBlameId(IdUtil.getSnowflakeNextIdStr()); |
|
|
|
|
negativeBlame.setNegativeId(negativeId); |
|
|
|
|
negativeBlame.setType("personal"); |
|
|
|
|
negativeBlame.setBlameEmpNo(police.getEmpNo()); |
|
|
|
|
negativeBlame.setBlameIdCode(police.getIdCode()); |
|
|
|
|
negativeBlame.setBlameName(police.getName()); |
|
|
|
|
negativeBlame.setBlameEmpNo(Objects.nonNull(police) ? police.getEmpNo() : blame.getBlameEmpNo()); |
|
|
|
|
negativeBlame.setBlameIdCode(Objects.nonNull(police) ? police.getIdCode() : blame.getBlameIdCode()); |
|
|
|
|
negativeBlame.setBlameName(Objects.nonNull(police) ? police.getName() : blame.getBlameName()); |
|
|
|
|
negativeBlame.setCrtTime(LocalDateTime.now()); |
|
|
|
|
negativeBlame.setUpdTime(LocalDateTime.now()); |
|
|
|
|
negativeBlame.setLeadEmpNo(blame.getLeaderEmpNo()); |
|
|
|
|
negativeBlame.setLeadName(blame.getLeaderName()); |
|
|
|
|
negativeBlame.setLeadIdCode(blame.getLeaderIdCode()); |
|
|
|
|
if (Objects.nonNull(police)) { |
|
|
|
|
negativeBlame.setIvPersonType(police.getPersonType()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 责任追究映射
|
|
|
|
|
if (StrUtil.isNotBlank(blame.getVerifyPunish())) { |
|
|
|
|
|