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 eae6bf0..dd6928a 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){ - taskInfoService.findByFieName(taskId); + taskInfoService.findByFieName2(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 9e5126d..1348716 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 @@ -13,5 +13,7 @@ import com.muyu.common.domian.resp.TaskInfoResp; public interface TaskInfoService extends IService { Page selectList(TaskInfoListReq req); - String findByFieName(Long taskId); +// String findByFieName(Long taskId); + + String findByFieName2(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 5dd1c53..ccacac3 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 @@ -24,6 +24,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import java.lang.reflect.Constructor; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -69,9 +70,87 @@ 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 = ""; +// HashMap hashMap = new HashMap<>(); +// for (int i = 0; i < list.size(); i++) { +// fieName += "," + list.get(i).getTableAsFieId(); +// Long databaseId = list.get(i).getDatabaseId(); +// longs.add(databaseId); +// String tableFieId = list.get(i).getTableFieId(); +// Long fieIdAsEngineId = list.get(i).getFieIdAsEngineId(); +// hashMap.put(tableFieId,fieIdAsEngineId); +// } +// 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); +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("task_id", taskId); +// List list1 = taskOutputService.list(queryWrapper); +// HashMap map = new HashMap<>(); +// Long tableId=null; +// Long newBasicId=null; +// for (TaskOutput taskOutput : list1) { +// tableId=taskOutput.getTableId(); +// newBasicId=taskOutput.getBasicId(); +// String lastFieName = taskOutput.getLastFieName(); +// String newFieName = taskOutput.getNewFieName(); +// map.put(lastFieName, newFieName); +// } +// List> tableValue = tableValueResult.getData(); +// for (List dataValues : tableValue) { +// for (DataValue dataValue : dataValues) { +// String key = dataValue.getKey(); +// String newKey = map.get(key); +// dataValue.setKey(newKey); +// } +// } +// return "执行成功"; +// } @Override - public String findByFieName(Long taskId) { + public String findByFieName2(Long taskId) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("task_id", taskId); HashSet longs = new HashSet<>(); @@ -79,19 +158,22 @@ public class TaskInfoServiceImpl extends ServiceImpl i if (CollectionUtils.isEmpty(list)) { return "没有选择字段"; } + HashMap tableNameMap = new HashMap<>(); String fieName = ""; HashMap hashMap = new HashMap<>(); for (int i = 0; i < list.size(); i++) { - fieName += "," + list.get(i).getTableAsFieId(); Long databaseId = list.get(i).getDatabaseId(); longs.add(databaseId); String tableFieId = list.get(i).getTableFieId(); + String tableAsFieId = list.get(i).getTableAsFieId(); Long fieIdAsEngineId = list.get(i).getFieIdAsEngineId(); hashMap.put(tableFieId,fieIdAsEngineId); + tableNameMap.put(tableFieId,tableAsFieId); } if (longs.size() > 1) { return "你选择的不是同一个数据库"; } + QueryWrapper jointQueryWrapper = new QueryWrapper<>(); jointQueryWrapper.eq("task_id", taskId); List jointList = nodeJointService.list(jointQueryWrapper); @@ -119,26 +201,36 @@ public class TaskInfoServiceImpl extends ServiceImpl i 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); + + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("task_id", taskId); List list1 = taskOutputService.list(queryWrapper); HashMap map = new HashMap<>(); + Long tableId=null; + Long newBasicId=null; for (TaskOutput taskOutput : list1) { + tableId=taskOutput.getTableId(); + newBasicId=taskOutput.getBasicId(); String lastFieName = taskOutput.getLastFieName(); String newFieName = taskOutput.getNewFieName(); map.put(lastFieName, newFieName); + fieName += "," + tableNameMap.get(lastFieName); } + 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) { - + for (DataValue dataValue : dataValues) { + String key = dataValue.getKey(); + String newKey = map.get(key); + dataValue.setKey(newKey); + } } - - - return "执行成功"; } + + }