refactor(任务中心): 返回执行结果是否删除判断标识
This commit is contained in:
parent
400194b212
commit
e9fa95b1e9
|
@ -1,7 +1,9 @@
|
|||
package io.metersphere.api.service;
|
||||
|
||||
import io.metersphere.api.domain.ApiReportRelateTaskExample;
|
||||
import io.metersphere.sdk.constants.ProjectApplicationType;
|
||||
import io.metersphere.sdk.util.LogUtils;
|
||||
import io.metersphere.sdk.util.SubListUtils;
|
||||
import io.metersphere.system.domain.ExecTask;
|
||||
import io.metersphere.system.domain.ExecTaskExample;
|
||||
import io.metersphere.system.domain.ExecTaskItem;
|
||||
|
@ -11,10 +13,12 @@ import io.metersphere.system.mapper.ExecTaskMapper;
|
|||
import io.metersphere.system.mapper.ExtExecTaskItemMapper;
|
||||
import io.metersphere.system.mapper.ExtExecTaskMapper;
|
||||
import io.metersphere.system.service.BaseCleanUpReport;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import io.metersphere.api.mapper.ApiReportRelateTaskMapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -35,6 +39,8 @@ public class CleanupTaskResultServiceImpl implements BaseCleanUpReport {
|
|||
@Resource
|
||||
private ExecTaskMapper execTaskMapper;
|
||||
@Resource
|
||||
private ApiReportRelateTaskMapper apiReportRelateTaskMapper;
|
||||
@Resource
|
||||
private ExecTaskItemMapper execTaskItemMapper;
|
||||
|
||||
|
||||
|
@ -59,6 +65,16 @@ public class CleanupTaskResultServiceImpl implements BaseCleanUpReport {
|
|||
execTaskItem.setDeleted(true);
|
||||
execTaskItemMapper.updateByExampleSelective(execTaskItem, example);
|
||||
}
|
||||
List<String> cleanIds = ListUtils.union(cleanTaskIds, cleanTaskItemIds);
|
||||
LogUtils.info("清理当前项目[" + projectId + "]任务中心执行结果, 共[" + cleanIds.size() + "]条");
|
||||
if (CollectionUtils.isNotEmpty(cleanIds)) {
|
||||
// 清理任务-报告关系表
|
||||
SubListUtils.dealForSubList(cleanIds, 100, ids -> {
|
||||
ApiReportRelateTaskExample example = new ApiReportRelateTaskExample();
|
||||
example.createCriteria().andTaskResourceIdIn(cleanIds);
|
||||
apiReportRelateTaskMapper.deleteByExample(example);
|
||||
});
|
||||
}
|
||||
LogUtils.info("清理当前项目[" + projectId + "]任务中心执行结果结束!");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,4 +24,7 @@ public class TaskHubDTO extends ExecTask {
|
|||
@Schema(description = "报告ID")
|
||||
private String reportId;
|
||||
|
||||
@Schema(description = "结果是否被删除")
|
||||
private Boolean resultDeleted = true;
|
||||
|
||||
}
|
||||
|
|
|
@ -39,4 +39,10 @@ public class TaskHubItemDTO extends ExecTaskItem {
|
|||
|
||||
@Schema(description = "错误信息")
|
||||
private String errorMessage;
|
||||
|
||||
@Schema(description = "是否集合报告")
|
||||
private Boolean integrated;
|
||||
|
||||
@Schema(description = "结果是否被删除")
|
||||
private Boolean resultDeleted = true;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="io.metersphere.system.mapper.ExtExecTaskItemMapper">
|
||||
<select id="selectList" resultType="io.metersphere.system.dto.taskhub.TaskHubItemDTO">
|
||||
SELECT exec_task_item.*, exec_task.num, exec_task.task_name, exec_task.trigger_mode
|
||||
SELECT exec_task_item.*, exec_task.num, exec_task.task_name, exec_task.trigger_mode, exec_task.integrated
|
||||
FROM exec_task_item
|
||||
inner join exec_task on exec_task_item.task_id = exec_task.id
|
||||
<include refid="queryWhereCondition"/>
|
||||
|
|
|
@ -215,9 +215,11 @@ public class BaseTaskHubService {
|
|||
reportTasks.forEach(task -> {
|
||||
if (integratedTaskIds.contains(task.getId())) {
|
||||
task.setReportId(reportMap.get(task.getId()));
|
||||
task.setResultDeleted(false);
|
||||
} else {
|
||||
if (taskItemMap.containsKey(task.getId())) {
|
||||
task.setReportId(reportMap.get(taskItemMap.get(task.getId())));
|
||||
task.setResultDeleted(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -376,6 +378,34 @@ public class BaseTaskHubService {
|
|||
item.setErrorMessage(Translator.get("task_error_message." + item.getErrorMessage().toLowerCase()));
|
||||
}
|
||||
});
|
||||
handleResultFlag(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理执行结果是否被删除标识
|
||||
*
|
||||
* @param list
|
||||
*/
|
||||
private void handleResultFlag(List<TaskHubItemDTO> list) {
|
||||
List<String> integratedTaskIds = list.stream().filter(item -> BooleanUtils.isTrue(item.getIntegrated())).map(TaskHubItemDTO::getTaskId).toList();
|
||||
List<String> noIntegratedTaskItemIds = list.stream().filter(item -> BooleanUtils.isFalse(item.getIntegrated())).map(TaskHubItemDTO::getId).toList();
|
||||
List<String> resourceIds = ListUtils.union(integratedTaskIds, noIntegratedTaskItemIds);
|
||||
if (CollectionUtils.isEmpty(resourceIds)) {
|
||||
return;
|
||||
}
|
||||
ApiReportRelateTaskExample example = new ApiReportRelateTaskExample();
|
||||
example.createCriteria().andTaskResourceIdIn(resourceIds);
|
||||
List<ApiReportRelateTask> reportRelateTasks = apiReportRelateTaskMapper.selectByExample(example);
|
||||
Map<String, String> reportMap = reportRelateTasks.stream().collect(Collectors.toMap(ApiReportRelateTask::getTaskResourceId, ApiReportRelateTask::getReportId));
|
||||
list.forEach(task -> {
|
||||
if (BooleanUtils.isTrue(task.getIntegrated()) && reportMap.containsKey(task.getTaskId())) {
|
||||
task.setResultDeleted(false);
|
||||
}
|
||||
if (BooleanUtils.isFalse(task.getIntegrated()) && reportMap.containsKey(task.getId())) {
|
||||
task.setResultDeleted(false);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private Map<String, String> getResourcePoolMaps(List<String> resourcePoolIds) {
|
||||
|
|
Loading…
Reference in New Issue