diff --git a/cloud-task-server/src/main/java/com/muyu/task/server/controller/TaskInfoController.java b/cloud-task-server/src/main/java/com/muyu/task/server/controller/TaskInfoController.java index b763d95..eae6bf0 100644 --- a/cloud-task-server/src/main/java/com/muyu/task/server/controller/TaskInfoController.java +++ b/cloud-task-server/src/main/java/com/muyu/task/server/controller/TaskInfoController.java @@ -118,7 +118,7 @@ public class TaskInfoController { @PostMapping("/execute") public Result execute(@RequestParam("taskId") Long taskId){ - taskInputService.findByFieName(taskId); + taskInfoService.findByFieName(taskId); return Result.success(); } diff --git a/cloud-task-server/src/main/java/com/muyu/task/server/service/TaskInfoService.java b/cloud-task-server/src/main/java/com/muyu/task/server/service/TaskInfoService.java index 4b33c64..9e5126d 100644 --- a/cloud-task-server/src/main/java/com/muyu/task/server/service/TaskInfoService.java +++ b/cloud-task-server/src/main/java/com/muyu/task/server/service/TaskInfoService.java @@ -12,4 +12,6 @@ import com.muyu.common.domian.resp.TaskInfoResp; public interface TaskInfoService extends IService { Page selectList(TaskInfoListReq req); + + String findByFieName(Long taskId); } diff --git a/cloud-task-server/src/main/java/com/muyu/task/server/service/TaskInputService.java b/cloud-task-server/src/main/java/com/muyu/task/server/service/TaskInputService.java index ed0bbc0..be7afa6 100644 --- a/cloud-task-server/src/main/java/com/muyu/task/server/service/TaskInputService.java +++ b/cloud-task-server/src/main/java/com/muyu/task/server/service/TaskInputService.java @@ -5,10 +5,14 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.common.domian.TaskInput; import com.muyu.common.domian.req.TaskInputListReq; -import java.util.List; - public interface TaskInputService extends IService { Page findList(TaskInputListReq req); String findByFieName(Long taskId); + + TaskInput selectByNodeId(String oneNodeId); + + TaskInput selectByTaskId(Long taskId); + + Long selectByBasicId(Long taskId); } diff --git a/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInfoServiceImpl.java b/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInfoServiceImpl.java index ab79d53..f2750a4 100644 --- a/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInfoServiceImpl.java +++ b/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInfoServiceImpl.java @@ -1,17 +1,28 @@ package com.muyu.task.server.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.StringUtils; +import com.muyu.common.domain.DataValue; +import com.muyu.common.domian.NodeJoint; import com.muyu.common.domian.TaskInfo; +import com.muyu.common.domian.TaskInput; import com.muyu.common.domian.req.TaskInfoListReq; import com.muyu.common.domian.resp.TaskInfoResp; +import com.muyu.remote.feign.DatasourceFeign; import com.muyu.task.server.mapper.TaskInfoMapper; +import com.muyu.task.server.service.NodeJointService; import com.muyu.task.server.service.TaskInfoService; +import com.muyu.task.server.service.TaskInputService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import java.util.HashSet; import java.util.List; /** @@ -22,12 +33,20 @@ public class TaskInfoServiceImpl extends ServiceImpl i @Resource private TaskInfoMapper taskInfoMapper; + @Autowired + private TaskInputService taskInputService; + + @Autowired + private NodeJointService nodeJointService; + + @Autowired + private DatasourceFeign datasourceFeign; @Override public Page selectList(TaskInfoListReq req) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.like(StringUtils.isNotEmpty(req.getName()), TaskInfo::getName, req.getName()); - queryWrapper.eq(req.getWeight()!=null, TaskInfo::getWeight, req.getWeight()); + queryWrapper.eq(req.getWeight() != null, TaskInfo::getWeight, req.getWeight()); queryWrapper.eq(StringUtils.isNotEmpty(req.getProcessStatus()), TaskInfo::getProcessStatus, req.getProcessStatus()); Page page = new Page<>(req.getPageNum(), req.getPageSize()); Page taskInfoPage = taskInfoMapper.selectPage(page, queryWrapper); @@ -43,4 +62,60 @@ public class TaskInfoServiceImpl extends ServiceImpl i respPage.setPages(pages); return respPage; } + + @Override + public String findByFieName(Long taskId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("task_id", taskId); + HashSet longs = new HashSet<>(); + List list = taskInputService.list(wrapper); + if (CollectionUtils.isEmpty(list)) { + return "没有选择字段"; + } + String fieName = ""; + for (int i = 0; i < list.size(); i++) { + fieName += "," + list.get(i).getTableAsFieId(); + Long databaseId = list.get(i).getDatabaseId(); + longs.add(databaseId); + } + if (longs.size() > 1) { + return "你选择的不是同一个数据库"; + } + QueryWrapper jointQueryWrapper = new QueryWrapper<>(); + jointQueryWrapper.eq("task_id", taskId); + List jointList = nodeJointService.list(jointQueryWrapper); + String joint = ""; + if (!CollectionUtils.isEmpty(jointList)) { + for (NodeJoint nodeJoint : jointList) { + String oneNodeId = nodeJoint.getOneNodeId(); + TaskInput taskInput = taskInputService.selectByNodeId(oneNodeId); + String tableName = taskInput.getTableName(); + String tableAsName = taskInput.getTableAsName(); + + String twoNodeId = nodeJoint.getTwoNodeId(); + TaskInput taskInputTwo = taskInputService.selectByNodeId(twoNodeId); + String tableNameTwo = taskInputTwo.getTableName(); + String tableAsNameTwo = taskInputTwo.getTableAsName(); + joint += " " + tableName + " " + " " + tableAsName + " " + nodeJoint.getJoint() + + " " + tableNameTwo + " " + " " + tableAsNameTwo + " on " + nodeJoint.getOneFie() + + " = " + nodeJoint.getTwoFie(); + + } + }else { + TaskInput taskInput = taskInputService.selectByTaskId(taskId); + String tableName = taskInput.getTableName(); + String tableAsName = taskInput.getTableAsName(); + joint=" "+ tableName+" "+tableAsName; + } + Long basicId = taskInputService.selectByBasicId(taskId); + fieName = fieName.substring(1); + String sql = " SELECT " + fieName + " FROM "+ joint; + System.out.println(sql); + Result>> tableValueResult = datasourceFeign.findTableValue(basicId, sql); + List> tableValue = tableValueResult.getData(); + for (List dataValues : tableValue) { + System.out.println(dataValues); + } + return null; + } } diff --git a/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInputServiceImpl.java b/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInputServiceImpl.java index d0a7951..bac367e 100644 --- a/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInputServiceImpl.java +++ b/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInputServiceImpl.java @@ -102,4 +102,19 @@ public class TaskInputServiceImpl extends ServiceImpl