From 34c07a4d85e59b27abf318bf73277b7ac6cb7d64 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=99=88=E6=80=9D=E8=B1=AA?= <1437200870@qq.com>
Date: Wed, 4 Sep 2024 22:32:49 +0800
Subject: [PATCH] =?UTF-8?q?sql=E6=8B=BC=E6=8E=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
cloud-task-remote/pom.xml | 7 ++
.../src/main/java/com/muyu/Main.java | 7 --
.../com/muyu/task/feign/DataValueFeign.java | 22 +++++
cloud-task-server/pom.xml | 6 ++
.../main/java/com/muyu/TaskApplication.java | 2 +
.../com/muyu/controller/TaskController.java | 11 +++
...troller.java => TaskOutputController.java} | 13 ++-
.../com/muyu/service/TaskOutputService.java | 9 ++
.../java/com/muyu/service/TaskService.java | 2 +
.../service/impl/TableInfoServiceImpl.java | 9 --
.../service/impl/TaskOutputServiceImpl.java | 32 ++++++
.../muyu/service/impl/TaskServiceImpl.java | 98 +++++++++++++++++++
.../src/main/resources/bootstrap.yml | 9 +-
13 files changed, 205 insertions(+), 22 deletions(-)
delete mode 100644 cloud-task-remote/src/main/java/com/muyu/Main.java
create mode 100644 cloud-task-remote/src/main/java/com/muyu/task/feign/DataValueFeign.java
rename cloud-task-server/src/main/java/com/muyu/controller/{TaskOutPutController.java => TaskOutputController.java} (60%)
create mode 100644 cloud-task-server/src/main/java/com/muyu/service/TaskOutputService.java
create mode 100644 cloud-task-server/src/main/java/com/muyu/service/impl/TaskOutputServiceImpl.java
diff --git a/cloud-task-remote/pom.xml b/cloud-task-remote/pom.xml
index 415ee0f..c4f5839 100644
--- a/cloud-task-remote/pom.xml
+++ b/cloud-task-remote/pom.xml
@@ -17,4 +17,11 @@
UTF-8
+
+
+ com.muyu
+ cloud-common-core
+
+
+
diff --git a/cloud-task-remote/src/main/java/com/muyu/Main.java b/cloud-task-remote/src/main/java/com/muyu/Main.java
deleted file mode 100644
index 95690d4..0000000
--- a/cloud-task-remote/src/main/java/com/muyu/Main.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.muyu;
-
-public class Main {
- public static void main(String[] args) {
- System.out.println("Hello world!");
- }
-}
\ No newline at end of file
diff --git a/cloud-task-remote/src/main/java/com/muyu/task/feign/DataValueFeign.java b/cloud-task-remote/src/main/java/com/muyu/task/feign/DataValueFeign.java
new file mode 100644
index 0000000..26a9f80
--- /dev/null
+++ b/cloud-task-remote/src/main/java/com/muyu/task/feign/DataValueFeign.java
@@ -0,0 +1,22 @@
+package com.muyu.task.feign;
+
+import com.muyu.common.core.domain.Result;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * @PackageName:com.muyu.task.feign
+ * @ClassName:dataValue
+ * @Description:
+ * @author: ¥陈思豪¥
+ * @date: 2024/9/4 15:13
+ */
+//,fallback = TaskFeignFallback.class
+@FeignClient(name = "cloud-source")
+public interface DataValueFeign {
+
+ @PostMapping("/DataValue/findTableValue")
+ public Result findTableValue(@RequestParam("basicId") Long basicId,@RequestParam("sql") String sql);
+
+}
diff --git a/cloud-task-server/pom.xml b/cloud-task-server/pom.xml
index c69c063..bc8bd19 100644
--- a/cloud-task-server/pom.xml
+++ b/cloud-task-server/pom.xml
@@ -72,6 +72,12 @@
spring-boot-starter-web
+
+ com.muyu
+ cloud-task-remote
+ 1.0.0
+
+
diff --git a/cloud-task-server/src/main/java/com/muyu/TaskApplication.java b/cloud-task-server/src/main/java/com/muyu/TaskApplication.java
index fba53f0..06334a0 100644
--- a/cloud-task-server/src/main/java/com/muyu/TaskApplication.java
+++ b/cloud-task-server/src/main/java/com/muyu/TaskApplication.java
@@ -2,8 +2,10 @@ package com.muyu;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
+@EnableFeignClients
public class TaskApplication {
public static void main (String[] args) {
SpringApplication.run(TaskApplication.class, args);
diff --git a/cloud-task-server/src/main/java/com/muyu/controller/TaskController.java b/cloud-task-server/src/main/java/com/muyu/controller/TaskController.java
index f0a7d29..e4b36e6 100644
--- a/cloud-task-server/src/main/java/com/muyu/controller/TaskController.java
+++ b/cloud-task-server/src/main/java/com/muyu/controller/TaskController.java
@@ -72,5 +72,16 @@ public class TaskController {
);
}
+ /**
+ * 执行任务
+ */
+ @RequestMapping(path = "/executeTask/{taskId}", method = RequestMethod.POST)
+ @Operation(summary = "对指定任务进行执行", description = "根据传来的id进行执行")
+ public Result executeTask(@PathVariable(name = "taskId") Integer taskId) {
+ return Result.success(
+ taskService.executeTask(taskId), "执行成功"
+ );
+ }
+
}
diff --git a/cloud-task-server/src/main/java/com/muyu/controller/TaskOutPutController.java b/cloud-task-server/src/main/java/com/muyu/controller/TaskOutputController.java
similarity index 60%
rename from cloud-task-server/src/main/java/com/muyu/controller/TaskOutPutController.java
rename to cloud-task-server/src/main/java/com/muyu/controller/TaskOutputController.java
index f50408b..0779877 100644
--- a/cloud-task-server/src/main/java/com/muyu/controller/TaskOutPutController.java
+++ b/cloud-task-server/src/main/java/com/muyu/controller/TaskOutputController.java
@@ -1,7 +1,9 @@
package com.muyu.controller;
+import com.muyu.common.core.domain.Result;
import com.muyu.domain.TaskOutputInfo;
import com.muyu.mapper.TaskOutputMapper;
+import com.muyu.service.TaskOutputService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -16,15 +18,16 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping(value = "/taskOutPut")
-public class TaskOutPutController {
+public class TaskOutputController {
@Autowired
- private TaskOutputMapper taskOutPutMapper;
+ private TaskOutputService taskOutputService;
//添加数据输出方法
- @RequestMapping(value = "addTaskOutPut")
- public void addTaskOutPut(@RequestBody TaskOutputInfo taskOutputInfo){
- int insert = taskOutPutMapper.insert(taskOutputInfo);
+ @RequestMapping(value = "addTaskOutput")
+ public Result addTaskOutPut(@RequestBody TaskOutputInfo taskOutputInfo){
+ return Result.success(null,
+ taskOutputService.addTaskOutput(taskOutputInfo));
}
diff --git a/cloud-task-server/src/main/java/com/muyu/service/TaskOutputService.java b/cloud-task-server/src/main/java/com/muyu/service/TaskOutputService.java
new file mode 100644
index 0000000..be1c3db
--- /dev/null
+++ b/cloud-task-server/src/main/java/com/muyu/service/TaskOutputService.java
@@ -0,0 +1,9 @@
+package com.muyu.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.muyu.domain.TaskOutputInfo;
+
+public interface TaskOutputService extends IService {
+
+ String addTaskOutput(TaskOutputInfo taskOutputInfo);
+}
diff --git a/cloud-task-server/src/main/java/com/muyu/service/TaskService.java b/cloud-task-server/src/main/java/com/muyu/service/TaskService.java
index c6ca08a..8f4c263 100644
--- a/cloud-task-server/src/main/java/com/muyu/service/TaskService.java
+++ b/cloud-task-server/src/main/java/com/muyu/service/TaskService.java
@@ -21,4 +21,6 @@ public interface TaskService extends IService {
String updById(TaskInfo taskInfo);
String deleteById(Integer id);
+
+ String executeTask(Integer taskId);
}
diff --git a/cloud-task-server/src/main/java/com/muyu/service/impl/TableInfoServiceImpl.java b/cloud-task-server/src/main/java/com/muyu/service/impl/TableInfoServiceImpl.java
index 9d5c139..4f78d9a 100644
--- a/cloud-task-server/src/main/java/com/muyu/service/impl/TableInfoServiceImpl.java
+++ b/cloud-task-server/src/main/java/com/muyu/service/impl/TableInfoServiceImpl.java
@@ -48,15 +48,6 @@ public class TableInfoServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>();
-// queryWrapper.eq(TableInfo::getParentId,0);
-// List list = this.list(queryWrapper);
-// list.forEach(tableInfo -> {
-// LambdaQueryWrapper queryWrapperC = new LambdaQueryWrapper<>();
-// queryWrapperC.eq(TableInfo::getParentId,tableInfo.getId());
-// List list1 = this.list(queryWrapperC);
-// tableInfo.setTableInfoList(list1);
-// });
});
return tableInfoCasResp;
diff --git a/cloud-task-server/src/main/java/com/muyu/service/impl/TaskOutputServiceImpl.java b/cloud-task-server/src/main/java/com/muyu/service/impl/TaskOutputServiceImpl.java
new file mode 100644
index 0000000..6f0099d
--- /dev/null
+++ b/cloud-task-server/src/main/java/com/muyu/service/impl/TaskOutputServiceImpl.java
@@ -0,0 +1,32 @@
+package com.muyu.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.muyu.domain.TaskOutputInfo;
+import com.muyu.mapper.TaskOutputMapper;
+import com.muyu.service.TaskOutputService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @PackageName:com.muyu.service.impl
+ * @ClassName:TaskOutputServiceImpl
+ * @Description:
+ * @author: ¥陈思豪¥
+ * @date: 2024/9/4 11:35
+ */
+@Service
+public class TaskOutputServiceImpl extends ServiceImpl implements TaskOutputService {
+
+ @Autowired
+ private TaskOutputMapper taskOutputMapper;
+
+
+ @Override
+ public String addTaskOutput(TaskOutputInfo taskOutputInfo) {
+ int insert = taskOutputMapper.insert(taskOutputInfo);
+ if(insert<=0){
+ return "添加失败";
+ }
+ return "添加成功";
+ }
+}
diff --git a/cloud-task-server/src/main/java/com/muyu/service/impl/TaskServiceImpl.java b/cloud-task-server/src/main/java/com/muyu/service/impl/TaskServiceImpl.java
index 3082f16..b178d2b 100644
--- a/cloud-task-server/src/main/java/com/muyu/service/impl/TaskServiceImpl.java
+++ b/cloud-task-server/src/main/java/com/muyu/service/impl/TaskServiceImpl.java
@@ -2,13 +2,24 @@ package com.muyu.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.domain.TaskInfo;
+import com.muyu.domain.TaskInputInfo;
+import com.muyu.domain.TaskJoinInfo;
+import com.muyu.domain.TaskOutputInfo;
import com.muyu.domain.req.TaskInfoReq;
import com.muyu.mapper.TaskMapper;
+import com.muyu.service.TaskInputService;
+import com.muyu.service.TaskJoinService;
+import com.muyu.service.TaskOutputService;
import com.muyu.service.TaskService;
+import com.muyu.task.feign.DataValueFeign;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.HashMap;
import java.util.List;
/**
@@ -19,9 +30,23 @@ import java.util.List;
* @date: 2024/8/22 17:15
*/
@Service
+@Log4j2
public class TaskServiceImpl extends ServiceImpl implements TaskService {
+ @Autowired
+ private TaskInputService taskInputService;
+ @Autowired
+ private TaskMapper taskMapper;
+
+ @Autowired
+ private TaskJoinService taskJoinService;
+
+ @Autowired
+ private TaskOutputService taskOutputService;
+
+ @Autowired
+ private DataValueFeign dataValue;
@Override
public List selectList(TaskInfoReq taskInfoReq) {
@@ -70,4 +95,77 @@ public class TaskServiceImpl extends ServiceImpl implement
return "success";
}
+ @Override
+ public String executeTask(Integer taskId) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(TaskInputInfo::getTaskId, taskId);
+ List taskInputList = taskInputService.list(queryWrapper);
+ if(taskInputList.isEmpty()){
+ return "表节点没有进行相对应的选择,无法继续执行";
+ }
+
+ LambdaQueryWrapper outputInfo = new LambdaQueryWrapper<>();
+ outputInfo.eq(TaskOutputInfo::getTaskId, taskId);
+ TaskOutputInfo serviceOne = taskOutputService.getOne(outputInfo);
+ String[] outPutFileName = serviceOne.getLastFileName().split(",");
+ HashMap fieldAsNameMap = new HashMap<>();
+ String sql = "";
+ for (int i = 0; i < taskInputList.size(); i++) {
+ String[] tableFieldList = taskInputList.get(i).getTableField().split(",");
+ String[] tableAsFieldList = taskInputList.get(i).getTableAsField().split(",");
+ for (int j = 0; j < tableAsFieldList.length; j++) {
+ for (int o = 0; o < outPutFileName.length; o++) {
+ if(tableAsFieldList[j].equals(outPutFileName[o])){
+ sql += ","+taskInputList.get(i).getTableAsName() + "." + tableFieldList[j] +" " +
+ tableAsFieldList[j] + " ";
+ }
+ }
+ fieldAsNameMap.put(tableAsFieldList[j], tableFieldList[j]);
+// 规则
+// tableNameMap.put(tableFieldList[j], tableAsFieId[j]);
+ }
+ }
+
+ sql = sql.substring(1);
+ sql = "select " + sql + " from ";
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(TaskJoinInfo::getTaskId, taskId);
+ List taskJoinInfos = taskJoinService.list(lambdaQueryWrapper);
+ if(!taskJoinInfos.isEmpty()){
+ for (TaskJoinInfo taskJoinInfo : taskJoinInfos) {
+ //拿到左表id
+ String leftId = taskJoinInfo.getLeftId();
+ TaskInputInfo leftInput = taskInputService.findByNodeId(leftId);
+ //拿到右表id
+ String rightId = taskJoinInfo.getRightId();
+ TaskInputInfo rightInput = taskInputService.findByNodeId(rightId);
+ sql += leftInput.getTableName() + " " + leftInput.getTableAsName()+" " +
+ taskJoinInfo.getJoinType() + " " + rightInput.getTableName() + " " +
+ rightInput.getTableAsName() + " on " + leftInput.getTableAsName() + "." +
+ fieldAsNameMap.get(taskJoinInfo.getLeftJoinField()) + "=" + rightInput.getTableAsName() + "." +
+ fieldAsNameMap.get(taskJoinInfo.getRightJoinField()) + " ";
+
+ }
+ }else{
+ LambdaQueryWrapper selectOne = new LambdaQueryWrapper<>();
+ queryWrapper.eq(TaskInputInfo::getTaskId, taskId);
+ TaskInputInfo taskInputInfo = taskInputService.getOne(selectOne);
+ sql += taskInputInfo.getTableName() + " " + taskInputInfo.getTableAsName();
+ }
+
+ System.out.println(sql);
+ System.out.println(sql);
+ System.out.println(sql);
+ System.out.println(sql);
+ System.out.println(sql);
+ System.out.println(sql);
+ log.info(sql);
+ Result tableValue = dataValue.findTableValue(Long.valueOf(serviceOne.getBasicId()), sql);
+ log.info(tableValue);
+ Object data = tableValue.getData();
+ System.out.println(data);
+
+ return "success";
+ }
+
}
diff --git a/cloud-task-server/src/main/resources/bootstrap.yml b/cloud-task-server/src/main/resources/bootstrap.yml
index 691f553..ff58182 100644
--- a/cloud-task-server/src/main/resources/bootstrap.yml
+++ b/cloud-task-server/src/main/resources/bootstrap.yml
@@ -11,7 +11,8 @@ nacos:
# text cloud-2112
# Spring
spring:
-
+ main:
+ allow-bean-definition-overriding: true
application:
# 应用名称
name: cloud-task
@@ -19,6 +20,12 @@ spring:
# 环境配置
active: dev
cloud:
+ openfeign:
+ client:
+ config:
+ default:
+ connectTimeout: 50000 # 连接超时时间,单位为毫秒
+ readTimeout: 5000 # 读取超时时间,单位为毫秒
nacos:
discovery:
# 服务注册地址