refactor(vehicleThreeInspect): 优化批量审核与隐患治理流程,完善日志与异常处理
- 为车辆三检批量审核流程添加多阶段详细日志便于排查问题 - 重构批量审核筛选逻辑,新增各跳过原因统计及无候选数据提前抛出异常 - 修复隐患治理流程重复创建问题,新增重复记录检查逻辑 - 优化隐患治理流程的参数处理与日志输出,新增审核结果翻译工具方法 - 更新流程回调日志,补充实例ID、流程编码等上下文信息
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package com.hotwj.platform.config.vehicleThreeInspect.callback;
|
package com.hotwj.platform.config.vehicleThreeInspect.callback;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.domain.HotVehicleThreeInspect;
|
import com.hotwj.platform.config.vehicleThreeInspect.domain.HotVehicleThreeInspect;
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.mapper.HotVehicleThreeInspectMapper;
|
import com.hotwj.platform.config.vehicleThreeInspect.mapper.HotVehicleThreeInspectMapper;
|
||||||
import com.hotwj.platform.flow.callback.IFlowCallback;
|
import com.hotwj.platform.flow.callback.IFlowCallback;
|
||||||
@@ -10,8 +11,8 @@ import com.hotwj.platform.securityManagement.hiddenDanger.domain.HotHiddenDanger
|
|||||||
import com.hotwj.platform.securityManagement.hiddenDanger.domain.bo.HotHiddenDangerBo;
|
import com.hotwj.platform.securityManagement.hiddenDanger.domain.bo.HotHiddenDangerBo;
|
||||||
import com.hotwj.platform.securityManagement.hiddenDanger.mapper.HotHiddenDangerMapper;
|
import com.hotwj.platform.securityManagement.hiddenDanger.mapper.HotHiddenDangerMapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -48,7 +49,7 @@ public class VehicleThreeInspectCallback implements IFlowCallback {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onProcessEnd(String instanceId, String businessId, String flowCode, boolean success) {
|
public void onProcessEnd(String instanceId, String businessId, String flowCode, boolean success) {
|
||||||
log.info("车辆三检流程结束回调: businessId={}, success={}", businessId, success);
|
log.info("车辆三检流程结束回调: instanceId={}, businessId={}, flowCode={}, success={}", instanceId, businessId, flowCode, success);
|
||||||
Long id = Long.parseLong(businessId);
|
Long id = Long.parseLong(businessId);
|
||||||
// 去掉try catch,防止事务无法正常回滚
|
// 去掉try catch,防止事务无法正常回滚
|
||||||
HotVehicleThreeInspect inspect = inspectMapper.selectById(id);
|
HotVehicleThreeInspect inspect = inspectMapper.selectById(id);
|
||||||
@@ -74,19 +75,41 @@ public class VehicleThreeInspectCallback implements IFlowCallback {
|
|||||||
* 创建隐患治理流程
|
* 创建隐患治理流程
|
||||||
*/
|
*/
|
||||||
private void createHiddenDangerFlow(HotVehicleThreeInspect inspect) {
|
private void createHiddenDangerFlow(HotVehicleThreeInspect inspect) {
|
||||||
if (inspect.getHasHiddenDanger() != null && inspect.getHasHiddenDanger() == 1L) {
|
if (!Long.valueOf(1L).equals(inspect.getHasHiddenDanger())) {
|
||||||
log.info("车辆三检存在隐患,自动创建隐患治理流程,业务ID: {}", inspect.getId());
|
log.info("车辆三检未标记隐患,跳过隐患治理创建: recordId={}, inspectId={}", inspect.getId(), inspect.getInspectId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String sourceId = String.valueOf(inspect.getInspectId() != null ? inspect.getInspectId() : inspect.getId());
|
||||||
|
log.info("车辆三检存在隐患,准备创建隐患治理流程: recordId={}, inspectId={}, sourceId={}, auditorId={}, evaluatorId={}",
|
||||||
|
inspect.getId(), inspect.getInspectId(), sourceId, inspect.getAuditorId(), inspect.getEvaluatorId());
|
||||||
|
|
||||||
|
HotHiddenDanger existingDanger = hiddenDangerMapper.selectOne(
|
||||||
|
Wrappers.<HotHiddenDanger>lambdaQuery()
|
||||||
|
.eq(HotHiddenDanger::getSourceType, 2L)
|
||||||
|
.eq(HotHiddenDanger::getDataSource, 2L)
|
||||||
|
.eq(HotHiddenDanger::getSourceId, sourceId)
|
||||||
|
.eq(HotHiddenDanger::getIsDeleted, 0L)
|
||||||
|
.last("LIMIT 1")
|
||||||
|
);
|
||||||
|
if (existingDanger != null) {
|
||||||
|
log.warn("车辆三检隐患治理已存在,跳过重复创建: recordId={}, inspectId={}, sourceId={}, existingDangerId={}, existingInstanceId={}",
|
||||||
|
inspect.getId(), inspect.getInspectId(), sourceId, existingDanger.getId(), existingDanger.getInstanceId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
HotHiddenDangerBo hiddenDangerBo = new HotHiddenDangerBo();
|
HotHiddenDangerBo hiddenDangerBo = new HotHiddenDangerBo();
|
||||||
hiddenDangerBo.setCompanyId(inspect.getCompanyId());
|
hiddenDangerBo.setCompanyId(inspect.getCompanyId());
|
||||||
hiddenDangerBo.setCheckTime(new Date());
|
hiddenDangerBo.setCheckTime(new Date());
|
||||||
hiddenDangerBo.setCheckerId(String.valueOf(inspect.getAuditorId()));
|
hiddenDangerBo.setCheckerId(String.valueOf(inspect.getAuditorId()));
|
||||||
hiddenDangerBo.setCheckerName(inspect.getAuditorName());
|
hiddenDangerBo.setCheckerName(inspect.getAuditorName());
|
||||||
hiddenDangerBo.setDescription(inspect.getAuditResult());
|
hiddenDangerBo.setDescription(StringUtils.defaultIfBlank(
|
||||||
|
StringUtils.trimToNull(inspect.getRejectReason()),
|
||||||
|
resolveReadableAuditResult(inspect.getAuditResult())
|
||||||
|
));
|
||||||
hiddenDangerBo.setEvidenceUrls(inspect.getAttachImgUrl());
|
hiddenDangerBo.setEvidenceUrls(inspect.getAttachImgUrl());
|
||||||
hiddenDangerBo.setDangerNo("YH-" + System.currentTimeMillis() / 1000);
|
hiddenDangerBo.setDangerNo("YH-" + System.currentTimeMillis() / 1000);
|
||||||
hiddenDangerBo.setSourceName("车辆");
|
hiddenDangerBo.setSourceName("车辆");
|
||||||
hiddenDangerBo.setSourceId(String.valueOf(inspect.getId()));
|
hiddenDangerBo.setSourceId(sourceId);
|
||||||
hiddenDangerBo.setSourceType(2L);
|
hiddenDangerBo.setSourceType(2L);
|
||||||
hiddenDangerBo.setDataSource(2L);
|
hiddenDangerBo.setDataSource(2L);
|
||||||
hiddenDangerBo.setDangerName("车辆三检治理");
|
hiddenDangerBo.setDangerName("车辆三检治理");
|
||||||
@@ -94,6 +117,8 @@ public class VehicleThreeInspectCallback implements IFlowCallback {
|
|||||||
|
|
||||||
HotHiddenDanger danger = MapstructUtils.convert(hiddenDangerBo, HotHiddenDanger.class);
|
HotHiddenDanger danger = MapstructUtils.convert(hiddenDangerBo, HotHiddenDanger.class);
|
||||||
hiddenDangerMapper.insert(danger);
|
hiddenDangerMapper.insert(danger);
|
||||||
|
log.info("车辆三检隐患治理数据已创建: recordId={}, inspectId={}, sourceId={}, dangerId={}",
|
||||||
|
inspect.getId(), inspect.getInspectId(), sourceId, danger.getId());
|
||||||
|
|
||||||
// 启动隐患治理流程
|
// 启动隐患治理流程
|
||||||
// 发起人为审核人(发现隐患的人)
|
// 发起人为审核人(发现隐患的人)
|
||||||
@@ -112,7 +137,8 @@ public class VehicleThreeInspectCallback implements IFlowCallback {
|
|||||||
danger.setEvaluatorId(inspect.getEvaluatorId());
|
danger.setEvaluatorId(inspect.getEvaluatorId());
|
||||||
danger.setFlowStatus("SUBMITTED");
|
danger.setFlowStatus("SUBMITTED");
|
||||||
hiddenDangerMapper.updateById(danger);
|
hiddenDangerMapper.updateById(danger);
|
||||||
}
|
log.info("车辆三检隐患治理流程已启动: recordId={}, inspectId={}, sourceId={}, dangerId={}, hiddenDangerInstanceId={}",
|
||||||
|
inspect.getId(), inspect.getInspectId(), sourceId, danger.getId(), instanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendDriverAuditNotification(HotVehicleThreeInspect inspect, boolean success) {
|
private void sendDriverAuditNotification(HotVehicleThreeInspect inspect, boolean success) {
|
||||||
@@ -139,13 +165,27 @@ public class VehicleThreeInspectCallback implements IFlowCallback {
|
|||||||
if (StringUtils.isNotBlank(rejectReason)) {
|
if (StringUtils.isNotBlank(rejectReason)) {
|
||||||
return "您的车辆三检【" + phaseName + "】未通过,不通过原因:" + rejectReason;
|
return "您的车辆三检【" + phaseName + "】未通过,不通过原因:" + rejectReason;
|
||||||
}
|
}
|
||||||
String auditResult = StringUtils.trimToEmpty(inspect.getAuditResult());
|
String auditResult = StringUtils.trimToEmpty(resolveReadableAuditResult(inspect.getAuditResult()));
|
||||||
if (StringUtils.isNotBlank(auditResult)) {
|
if (StringUtils.isNotBlank(auditResult)) {
|
||||||
return "您的车辆三检【" + phaseName + "】未通过,审核意见:" + auditResult;
|
return "您的车辆三检【" + phaseName + "】未通过,审核意见:" + auditResult;
|
||||||
}
|
}
|
||||||
return "您的车辆三检【" + phaseName + "】未通过,请及时查看审核意见。";
|
return "您的车辆三检【" + phaseName + "】未通过,请及时查看审核意见。";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String resolveReadableAuditResult(String auditResult) {
|
||||||
|
String value = StringUtils.trimToNull(auditResult);
|
||||||
|
if (value == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if ("1".equals(value)) {
|
||||||
|
return "通过";
|
||||||
|
}
|
||||||
|
if ("2".equals(value)) {
|
||||||
|
return "不通过";
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
private String getPhaseName(Long phase) {
|
private String getPhaseName(Long phase) {
|
||||||
if (phase == null) {
|
if (phase == null) {
|
||||||
return "未知阶段";
|
return "未知阶段";
|
||||||
|
|||||||
@@ -4,23 +4,19 @@ import cn.hutool.core.date.DateUtil;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.hotwj.platform.common.helper.DriverLoginContextHelper;
|
import com.hotwj.platform.common.helper.DriverLoginContextHelper;
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.domain.HotVehicleThreeInspect;
|
import com.hotwj.platform.config.vehicleThreeInspect.domain.HotVehicleThreeInspect;
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeInspectBatchAuditBo;
|
import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeInspectBatchAuditBo;
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeInspectBo;
|
import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeInspectBo;
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeInspectMultiVehicleBatchAuditBo;
|
import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeInspectMultiVehicleBatchAuditBo;
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeInspectVehicleQueryBo;
|
import com.hotwj.platform.config.vehicleThreeInspect.domain.bo.HotVehicleThreeInspectVehicleQueryBo;
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectProcessVo;
|
import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.*;
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectReceivedVehicleVo;
|
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectSummaryVo;
|
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectUnreceivedVehicleVo;
|
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.domain.vo.HotVehicleThreeInspectVo;
|
|
||||||
import com.hotwj.platform.config.vehicleThreeInspectConfig.domain.HotVehicleThreeInspectConfig;
|
|
||||||
import com.hotwj.platform.config.vehicleThreeInspectConfig.mapper.HotVehicleThreeInspectConfigMapper;
|
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.mapper.HotVehicleThreeInspectMapper;
|
import com.hotwj.platform.config.vehicleThreeInspect.mapper.HotVehicleThreeInspectMapper;
|
||||||
import com.hotwj.platform.config.vehicleThreeInspect.service.IHotVehicleThreeInspectService;
|
import com.hotwj.platform.config.vehicleThreeInspect.service.IHotVehicleThreeInspectService;
|
||||||
|
import com.hotwj.platform.config.vehicleThreeInspectConfig.domain.HotVehicleThreeInspectConfig;
|
||||||
|
import com.hotwj.platform.config.vehicleThreeInspectConfig.mapper.HotVehicleThreeInspectConfigMapper;
|
||||||
import com.hotwj.platform.flow.service.ISysFlowService;
|
import com.hotwj.platform.flow.service.ISysFlowService;
|
||||||
import com.hotwj.platform.integration.ocr.SignatureVerifyService;
|
import com.hotwj.platform.integration.ocr.SignatureVerifyService;
|
||||||
import com.hotwj.platform.noticeManagerment.systemNotification.domain.bo.HotSystemNotificationGroupBo;
|
import com.hotwj.platform.noticeManagerment.systemNotification.domain.bo.HotSystemNotificationGroupBo;
|
||||||
@@ -33,8 +29,8 @@ import com.hotwj.platform.securityManagement.vehicleInoutCheck.domain.HotVehicle
|
|||||||
import com.hotwj.platform.securityManagement.vehicleInoutCheck.mapper.HotVehicleInoutCheckMapper;
|
import com.hotwj.platform.securityManagement.vehicleInoutCheck.mapper.HotVehicleInoutCheckMapper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.dromara.common.core.exception.ServiceException;
|
|
||||||
import org.dromara.common.core.domain.model.LoginUser;
|
import org.dromara.common.core.domain.model.LoginUser;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.json.utils.JsonUtils;
|
import org.dromara.common.json.utils.JsonUtils;
|
||||||
@@ -49,16 +45,7 @@ import java.io.InputStream;
|
|||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -905,12 +892,15 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec
|
|||||||
if (inspectIdSet.isEmpty()) {
|
if (inspectIdSet.isEmpty()) {
|
||||||
throw new ServiceException("三检流程ID不能为空");
|
throw new ServiceException("三检流程ID不能为空");
|
||||||
}
|
}
|
||||||
|
log.info("车辆三检批量审核开始: inspectIds={}, currentAuditorId={}, currentCompanyId={}, hasHiddenDanger={}, evaluatorId={}",
|
||||||
|
inspectIdSet, currentAuditorId, currentCompanyId, bo.getHasHiddenDanger(), bo.getEvaluatorId());
|
||||||
|
|
||||||
List<HotVehicleThreeInspectVo> detailList = baseMapper.querySummaryDetailList(new ArrayList<>(inspectIdSet));
|
List<HotVehicleThreeInspectVo> detailList = baseMapper.querySummaryDetailList(new ArrayList<>(inspectIdSet));
|
||||||
if (detailList == null || detailList.isEmpty()) {
|
if (detailList == null || detailList.isEmpty()) {
|
||||||
throw new ServiceException("未查询到可批量审核的车辆三检数据");
|
throw new ServiceException("未查询到可批量审核的车辆三检数据");
|
||||||
}
|
}
|
||||||
fillTaskId(detailList);
|
fillTaskId(detailList);
|
||||||
|
log.info("车辆三检批量审核明细加载完成: detailCount={}, inspectCount={}", detailList.size(), inspectIdSet.size());
|
||||||
|
|
||||||
Map<Long, List<HotVehicleThreeInspectVo>> detailMap = new LinkedHashMap<>();
|
Map<Long, List<HotVehicleThreeInspectVo>> detailMap = new LinkedHashMap<>();
|
||||||
for (HotVehicleThreeInspectVo detail : detailList) {
|
for (HotVehicleThreeInspectVo detail : detailList) {
|
||||||
@@ -933,6 +923,10 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec
|
|||||||
if (auditItems.isEmpty()) {
|
if (auditItems.isEmpty()) {
|
||||||
throw new ServiceException("没有符合批量审核条件的数据");
|
throw new ServiceException("没有符合批量审核条件的数据");
|
||||||
}
|
}
|
||||||
|
log.info("车辆三检批量审核审核项构建完成: inspectCount={}, auditItemCount={}, auditItemRecordIds={}",
|
||||||
|
inspectIdSet.size(),
|
||||||
|
auditItems.size(),
|
||||||
|
auditItems.stream().map(HotVehicleThreeInspectBo::getId).filter(Objects::nonNull).toList());
|
||||||
return auditItems;
|
return auditItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -945,11 +939,14 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec
|
|||||||
List<HotVehicleThreeInspectBo> auditItems) {
|
List<HotVehicleThreeInspectBo> auditItems) {
|
||||||
boolean hasBackCheck = false;
|
boolean hasBackCheck = false;
|
||||||
String plateNumber = null;
|
String plateNumber = null;
|
||||||
int pendingCount = 0;
|
Long inspectId = null;
|
||||||
for (HotVehicleThreeInspectVo detail : currentDetails) {
|
for (HotVehicleThreeInspectVo detail : currentDetails) {
|
||||||
if (detail == null) {
|
if (detail == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (inspectId == null) {
|
||||||
|
inspectId = detail.getInspectId();
|
||||||
|
}
|
||||||
if (Objects.equals(detail.getInspectPhase(), 3L)) {
|
if (Objects.equals(detail.getInspectPhase(), 3L)) {
|
||||||
hasBackCheck = true;
|
hasBackCheck = true;
|
||||||
}
|
}
|
||||||
@@ -961,22 +958,49 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec
|
|||||||
throw new ServiceException(buildBatchAuditVehicleMessage(plateNumber, "尚未完成收车检查,不可批量审核"));
|
throw new ServiceException(buildBatchAuditVehicleMessage(plateNumber, "尚未完成收车检查,不可批量审核"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<HotVehicleThreeInspectVo> candidateDetails = new ArrayList<>();
|
||||||
|
int skippedByCompany = 0;
|
||||||
|
int skippedByAuditor = 0;
|
||||||
|
int skippedByStatus = 0;
|
||||||
|
int skippedByTask = 0;
|
||||||
for (HotVehicleThreeInspectVo detail : currentDetails) {
|
for (HotVehicleThreeInspectVo detail : currentDetails) {
|
||||||
if (detail == null) {
|
if (detail == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (currentCompanyId != null && !Objects.equals(currentCompanyId, detail.getCompanyId())) {
|
if (currentCompanyId != null && !Objects.equals(currentCompanyId, detail.getCompanyId())) {
|
||||||
|
skippedByCompany++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!Objects.equals(currentAuditorId, detail.getAuditorId())) {
|
if (!Objects.equals(currentAuditorId, detail.getAuditorId())) {
|
||||||
|
skippedByAuditor++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!isPendingAuditRecord(detail)) {
|
if (!isPendingAuditRecord(detail)) {
|
||||||
|
skippedByStatus++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (StringUtils.isBlank(detail.getTaskId())) {
|
if (StringUtils.isBlank(detail.getTaskId())) {
|
||||||
|
skippedByTask++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
candidateDetails.add(detail);
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("车辆三检批量审核候选明细筛选: inspectId={}, plateNumber={}, totalDetails={}, candidateCount={}, skippedByCompany={}, skippedByAuditor={}, skippedByStatus={}, skippedByTask={}, candidateRecordIds={}",
|
||||||
|
inspectId,
|
||||||
|
plateNumber,
|
||||||
|
currentDetails.size(),
|
||||||
|
candidateDetails.size(),
|
||||||
|
skippedByCompany,
|
||||||
|
skippedByAuditor,
|
||||||
|
skippedByStatus,
|
||||||
|
skippedByTask,
|
||||||
|
candidateDetails.stream().map(HotVehicleThreeInspectVo::getId).filter(Objects::nonNull).toList());
|
||||||
|
|
||||||
|
if (candidateDetails.isEmpty()) {
|
||||||
|
throw new ServiceException(buildBatchAuditVehicleMessage(plateNumber, "没有当前账号可审核的未审核数据"));
|
||||||
|
}
|
||||||
|
for (HotVehicleThreeInspectVo detail : candidateDetails) {
|
||||||
HotVehicleThreeInspectBo item = new HotVehicleThreeInspectBo();
|
HotVehicleThreeInspectBo item = new HotVehicleThreeInspectBo();
|
||||||
item.setId(detail.getId());
|
item.setId(detail.getId());
|
||||||
item.setTaskId(detail.getTaskId());
|
item.setTaskId(detail.getTaskId());
|
||||||
@@ -989,12 +1013,13 @@ public class HotVehicleThreeInspectServiceImpl implements IHotVehicleThreeInspec
|
|||||||
item.setAuditorName(detail.getAuditorName());
|
item.setAuditorName(detail.getAuditorName());
|
||||||
item.setEvaluatorId(bo.getEvaluatorId());
|
item.setEvaluatorId(bo.getEvaluatorId());
|
||||||
auditItems.add(item);
|
auditItems.add(item);
|
||||||
pendingCount++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pendingCount == 0) {
|
log.info("车辆三检批量审核候选明细全部入队: inspectId={}, plateNumber={}, queuedCount={}, queuedRecordIds={}",
|
||||||
throw new ServiceException(buildBatchAuditVehicleMessage(plateNumber, "没有当前账号可审核的未审核数据"));
|
inspectId,
|
||||||
}
|
plateNumber,
|
||||||
|
candidateDetails.size(),
|
||||||
|
candidateDetails.stream().map(HotVehicleThreeInspectVo::getId).filter(Objects::nonNull).toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isPendingAuditRecord(HotVehicleThreeInspectVo detail) {
|
private boolean isPendingAuditRecord(HotVehicleThreeInspectVo detail) {
|
||||||
|
|||||||
Reference in New Issue
Block a user