UPDATE: 添加数据合并时更新主计划检测状态。
This commit is contained in:
@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.gather.detection.pojo.po.AdPair;
|
||||
import com.njcn.gather.detection.service.IAdPariService;
|
||||
import com.njcn.gather.device.pojo.enums.CheckStateEnum;
|
||||
import com.njcn.gather.device.pojo.po.PqDev;
|
||||
import com.njcn.gather.device.pojo.po.PqDevSub;
|
||||
import com.njcn.gather.device.service.IPqDevService;
|
||||
@@ -325,8 +326,8 @@ public class AsyncPlanHandler {
|
||||
// 同步检测数据
|
||||
List<AdPair> pairList = planCheckDataVO.getPairList();
|
||||
adPairService.updateBatchById(pairList);
|
||||
|
||||
|
||||
// 主计划
|
||||
AdPlan plan = adPlanService.getById(planId);
|
||||
if (CollUtil.isNotEmpty(docxFiles)) {
|
||||
progress.addAndGet(1);
|
||||
sseClient.sendMessage(uid, planId, HttpResultUtil.assembleResult(CommonResponseEnum.SUCCESS.getCode(), progress, "开始同步检测报告文件"));
|
||||
@@ -345,7 +346,6 @@ public class AsyncPlanHandler {
|
||||
}
|
||||
}
|
||||
if (CollUtil.isNotEmpty(dataFiles)) {
|
||||
AdPlan plan = adPlanService.getById(planId);
|
||||
Integer planCode = plan.getCode();
|
||||
progress.addAndGet(1);
|
||||
sseClient.sendMessage(uid, planId, HttpResultUtil.assembleResult(CommonResponseEnum.SUCCESS.getCode(), progress, "开始同步检测数据信息,请耐心等待..."));
|
||||
@@ -420,6 +420,27 @@ public class AsyncPlanHandler {
|
||||
|
||||
// 删除临时目录
|
||||
FileUtil.del(tempDir);
|
||||
// 更新主计划状态
|
||||
List<String> planIds = adPlanService.lambdaQuery().eq(AdPlan::getFatherPlanId, planId).list().stream().map(AdPlan::getId).collect(Collectors.toList());
|
||||
planIds.add(planId);
|
||||
List<String> devIds = pqDevService.lambdaQuery().in(PqDev::getPlanId, planIds).list().stream().map(PqDev::getId).collect(Collectors.toList());
|
||||
List<PqDevSub> devSubs = pqDevSubService.lambdaQuery().in(PqDevSub::getDevId, devIds).list();
|
||||
long checkedCount = devSubs.stream().filter(sub -> sub.getCheckState().equals(CheckStateEnum.CHECKED.getValue())).count();
|
||||
if (checkedCount > 0) {
|
||||
plan.setTestState(CheckStateEnum.CHECKING.getValue());
|
||||
// 都已检测完成
|
||||
if (checkedCount == devSubs.size()) {
|
||||
plan.setTestState(CheckStateEnum.CHECKED.getValue());
|
||||
}
|
||||
} else {
|
||||
plan.setTestState(CheckStateEnum.UNCHECKED.getValue());
|
||||
// 是否有检测中
|
||||
long checkingCount = devSubs.stream().filter(sub -> sub.getCheckState().equals(CheckStateEnum.CHECKING.getValue())).count();
|
||||
if (checkingCount > 0) {
|
||||
plan.setTestState(CheckStateEnum.CHECKING.getValue());
|
||||
}
|
||||
}
|
||||
adPlanService.updateById(plan);
|
||||
LocalDateTime endTime = LocalDateTime.now();
|
||||
log.info("数据合并完成,耗时:{}s", Duration.between(startTime, endTime).getSeconds());
|
||||
progress.set(100);
|
||||
|
||||
Reference in New Issue
Block a user