use of com.dtstack.taier.scheduler.vo.ScheduleTaskVO in project Taier by DTStack.
the class BatchTaskService method getTaskById.
/**
* 数据开发-根据任务id,查询详情
*
* @return
* @author toutian
*/
public BatchTaskBatchVO getTaskById(final ScheduleTaskVO scheduleTaskVO) {
final BatchTask task = this.developTaskDao.getOne(scheduleTaskVO.getId());
if (task == null) {
throw new RdosDefineException(ErrorCode.CAN_NOT_FIND_TASK);
}
final List<BatchResource> resources = this.batchTaskResourceService.getResources(scheduleTaskVO.getId(), ResourceRefType.MAIN_RES.getType());
final List<BatchResource> refResourceIdList = this.batchTaskResourceService.getResources(scheduleTaskVO.getId(), ResourceRefType.DEPENDENCY_RES.getType());
final BatchTaskBatchVO taskVO = new BatchTaskBatchVO(this.batchTaskTaskService.getForefathers(task));
taskVO.setVersion(task.getVersion());
if (task.getTaskType().intValue() == EScheduleJobType.SYNC.getVal().intValue()) {
// 同步任务类型
final String taskJson = Base64Util.baseDecode(task.getSqlText());
if (StringUtils.isBlank(taskJson)) {
// 向导模式存在为空的情况
taskVO.setCreateModel(Constant.CREATE_MODEL_GUIDE);
taskVO.setSqlText("");
} else {
final JSONObject obj = JSON.parseObject(taskJson);
taskVO.setCreateModel(obj.get("createModel") == null ? Constant.CREATE_MODEL_GUIDE : Integer.parseInt(String.valueOf(obj.get("createModel"))));
formatSqlText(taskVO, obj);
}
}
this.setTaskOperatorModelAndOptions(taskVO, task);
if (task.getFlowId() != null && task.getFlowId() > 0) {
taskVO.setFlowId(task.getFlowId());
final BatchTask flow = this.developTaskDao.getOne(task.getFlowId());
if (flow != null) {
taskVO.setFlowName(flow.getName());
}
}
final BatchCatalogue catalogue = batchCatalogueService.getOne(task.getNodePid());
if (catalogue != null) {
taskVO.setNodePName(catalogue.getNodeName());
}
taskVO.setResourceList(resources);
taskVO.setRefResourceList(refResourceIdList);
PageQuery pageQuery = new PageQuery(1, 5, "gmt_create", Sort.DESC.name());
List<BatchTaskVersionDetailDTO> taskVersions = batchTaskVersionService.listByTaskId(scheduleTaskVO.getId(), pageQuery).stream().map(ver -> {
if (StringUtils.isNotBlank(ver.getOriginSql())) {
if (task.getTaskType().intValue() == EScheduleJobType.SYNC.getVal().intValue()) {
ver.setSqlText(ver.getSqlText());
} else {
ver.setSqlText(ver.getOriginSql());
}
}
// 填充用户名称
ver.setUserName(userService.getUserName(ver.getCreateUserId()));
return ver;
}).collect(Collectors.toList());
taskVO.setTaskVersions(taskVersions);
// 密码脱敏 --2019/10/25 茂茂-- 同步任务 密码脱敏 仅 向导模式 修改成 全部模式
if (task.getTaskType().intValue() == EScheduleJobType.SYNC.getVal().intValue()) {
try {
taskVO.setSqlText(JsonUtils.formatJSON(DataFilter.passwordFilter(taskVO.getSqlText())));
} catch (final Exception e) {
LOGGER.error("同步任务json解析失败 taskId = {}", task.getId(), e);
taskVO.setSqlText(DataFilter.passwordFilter(taskVO.getSqlText()));
}
for (BatchTaskVersionDetailDTO taskVersion : taskVO.getTaskVersions()) {
try {
taskVersion.setSqlText(JsonUtils.formatJSON(DataFilter.passwordFilter(taskVersion.getSqlText())));
} catch (final Exception e) {
LOGGER.error("同步任务json解析失败 taskVersionId = {}", taskVersion.getId(), e);
taskVersion.setSqlText(DataFilter.passwordFilter(taskVersion.getSqlText()));
}
}
}
final ReadWriteLockVO readWriteLockVO = this.readWriteLockService.getDetail(scheduleTaskVO.getTenantId(), task.getId(), ReadWriteLockType.BATCH_TASK, scheduleTaskVO.getUserId(), task.getModifyUserId(), task.getGmtModified());
taskVO.setReadWriteLockVO(readWriteLockVO);
taskVO.setUserId(scheduleTaskVO.getUserId());
setTaskVariables(taskVO, scheduleTaskVO.getId());
final List<Long> userIds = new ArrayList<>();
userIds.add(task.getCreateUserId());
final Map<Long, User> userMap = userService.getUserMap(userIds);
buildUserDTOInfo(userMap, taskVO);
return taskVO;
}
use of com.dtstack.taier.scheduler.vo.ScheduleTaskVO in project Taier by DTStack.
the class BatchTaskTaskService method getForefathers.
/**
* 展开上一个父节点
*
* @author toutian
*/
public ScheduleTaskVO getForefathers(BatchTask task) {
BatchTaskBatchVO vo = new BatchTaskBatchVO();
BeanUtils.copyProperties(task, vo);
vo.setVersion(task.getVersion());
vo.setCreateUser(userService.getUserByDTO(task.getCreateUserId()));
vo.setModifyUser(userService.getUserByDTO(task.getModifyUserId()));
vo.setTenantName(tenantService.getTenantById(task.getTenantId()).getTenantName());
List<BatchTaskTask> taskTasks = developTaskTaskDao.listByTaskId(task.getId());
if (CollectionUtils.isEmpty(taskTasks)) {
return vo;
}
List<ScheduleTaskVO> fatherTaskVOs = Lists.newArrayList();
for (BatchTaskTask taskTask : taskTasks) {
Long parentTaskId = taskTask.getParentTaskId();
ScheduleTaskShade taskShade = taskService.findTaskByTaskId(parentTaskId);
if (taskShade != null) {
ScheduleTaskVO scheduleTaskVO = new ScheduleTaskVO();
BeanUtils.copyProperties(taskShade, scheduleTaskVO);
scheduleTaskVO.setId(taskShade.getTaskId());
scheduleTaskVO.setTenantName(tenantService.getByDtTenantId(taskShade.getTenantId()).getTenantName());
fatherTaskVOs.add(scheduleTaskVO);
}
}
vo.setTaskVOS(fatherTaskVOs);
return vo;
}
Aggregations