Commit 655eaa65 by wqc

新增导出组件

parent 2731cac6
......@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
@Api(tags = "组件执行接口")
......@@ -53,4 +54,10 @@ public class ComponentRunController {
return ResultVo.success(commonQueryService.validateNumber(body));
}
@ApiOperation("数据输出")
@PostMapping("/excelOutput")
public ResultVo excelOutput(HttpServletResponse response, @RequestBody Map<String, Object> body) throws Exception {
return ResultVo.success(commonQueryService.excelOutput(response,body));
}
}
......@@ -15,6 +15,7 @@ import com.zq.dataoperation.entity.CommonQuerySetting;
import com.zq.dataoperation.entity.MetaDataMapping;
import com.zq.dataoperation.entity.QueryDb;
import com.zq.dataoperation.utils.ConnectionUtil;
import com.zq.dataoperation.utils.FileUtil;
import com.zq.dataoperation.utils.IdentityUtils;
import com.zq.dataoperation.utils.SqlUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -25,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import java.sql.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
......@@ -140,7 +142,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
public List<Map> commonQuery(String sql, Integer queryId) throws Exception {
ResultSet resultSet = null;
try {
Connection connection = ConnectionUtil.getConnection(queryId);
Connection connection = ConnectionUtil.get(queryId);
connection.prepareStatement(sql).setQueryTimeout(5000);
resultSet = connection.prepareStatement(sql).executeQuery();
int columnCount = resultSet.getMetaData().getColumnCount();
......@@ -245,6 +247,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
}
}
//记录排序
public Object SortRecord(Map<String, Object> body) throws Exception {
JSONObject jsonObject = JSONUtil.parseObj(body);
Integer datasourceId = Integer.valueOf(jsonObject.get("datasourceId").toString());
......@@ -260,6 +263,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
return commonQuery(sql,datasourceId);
}
//剪切字符串
public Object CutString(Map<String, Object> body) throws Exception {
JSONObject jsonObject = JSONUtil.parseObj(body);
Integer datasourceId = Integer.valueOf(jsonObject.get("datasourceId").toString());
......@@ -275,6 +279,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
}
}
//验证电话
public Object validateNumber(Map<String, Object> body) throws Exception {
JSONObject jsonObject = JSONUtil.parseObj(body);
Integer datasourceId = Integer.valueOf(jsonObject.get("datasourceId").toString());
......@@ -302,4 +307,17 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
map.put("dirtyList",dirtyList);
return map;
}
public Object excelOutput(HttpServletResponse response, Map<String, Object> body) throws Exception {
JSONObject jsonObject = JSONUtil.parseObj(body);
Integer datasourceId = Integer.valueOf(jsonObject.get("datasourceId").toString());
String tableName = jsonObject.get("tableName").toString();
String filePath = jsonObject.get("filePath").toString();
String sql="SELECT * FROM "+tableName;
List<Map> list = commonQuery(sql, datasourceId);
FileUtil.outputExcel(list,response,filePath,tableName);
return list;
}
}
......@@ -26,4 +26,8 @@ public class ConnectionUtil {
public static JdbcTemplate getJdbcTemplate(Integer id){
return new JdbcTemplate(dataSourceMap.get(id));
}
public static Connection get(Integer id) throws SQLException {
return dataSourceMap.get(id).getConnection();
}
}
......@@ -158,6 +158,27 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
IoUtil.close(out);
}
/**
* 导出excel
*/
public static void outputExcel(List<Map> list, HttpServletResponse response, String filePath,String fileName) throws IOException {
// String tempPath = fileName + ".xlsx";
File file = new File(fileName+"."+filePath);
BigExcelWriter writer = ExcelUtil.getBigWriter(file);
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(list, true);
//response为HttpServletResponse对象
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
response.setHeader("Content-Disposition", "attachment;filename=file.xlsx");
ServletOutputStream out = response.getOutputStream();
// 终止后删除临时文件
file.deleteOnExit();
writer.flush(out, true);
//此处记得关闭输出Servlet流
IoUtil.close(out);
}
public static String getFileType(String type) {
String documents = "txt doc pdf ppt pps xlsx xls docx";
String music = "mp3 wav wma mpa ram ra aac aif m4a";
......
package com.zq.spiderflow.core.executor.shape;
import com.zq.spiderflow.context.SpiderContext;
import com.zq.spiderflow.executor.ShapeExecutor;
import com.zq.spiderflow.model.Shape;
import com.zq.spiderflow.model.SpiderNode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public class DatabaseOutExecutor implements ShapeExecutor {
public static final String DATASOURCE_ID = "datasourceId";
public static final String META_DATA = "metaData";
public static final String TABLE_NAME = "tableName";
private static final Logger logger = LoggerFactory.getLogger(ExecuteSQLExecutor.class);
@Override
public Shape shape() {
Shape shape = new Shape();
//web界面上显示的图标
shape.setImage("data:image/png;base64,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");
//拖放至容器里时默认的节点名称
shape.setLabel("DatabaseOut");
//模板文件名
shape.setName("DatabaseOut");
//鼠标移动至图标上显示的名称
shape.setTitle("数据库输出");
return shape;
}
@Override
public String supportShape() {
return "DatabaseOut";
}
@Override
public void execute(SpiderNode node, SpiderContext context, Map<String, Object> variables) {
}
@Override
public boolean allowExecuteNext(SpiderNode node, SpiderContext context, Map<String, Object> variables) {
return false;
}
@Override
public boolean isThread() {
return false;
}
}
package com.zq.spiderflow.core.executor.shape;
import com.zq.spiderflow.context.SpiderContext;
import com.zq.spiderflow.executor.ShapeExecutor;
import com.zq.spiderflow.model.Shape;
import com.zq.spiderflow.model.SpiderNode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public class ExcelOutExecutor implements ShapeExecutor {
public static final String DATASOURCE_ID = "datasourceId";
public static final String META_DATA = "metaData";
public static final String TABLE_NAME = "tableName";
private static final Logger logger = LoggerFactory.getLogger(ExecuteSQLExecutor.class);
@Override
public Shape shape() {
Shape shape = new Shape();
//web界面上显示的图标
shape.setImage("data:image/png;base64,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");
//拖放至容器里时默认的节点名称
shape.setLabel("ExcelOut");
//模板文件名
shape.setName("ExcelOut");
//鼠标移动至图标上显示的名称
shape.setTitle("Excel输出");
return shape;
}
@Override
public String supportShape() {
return "ExcelOut";
}
@Override
public void execute(SpiderNode node, SpiderContext context, Map<String, Object> variables) {
}
@Override
public boolean allowExecuteNext(SpiderNode node, SpiderContext context, Map<String, Object> variables) {
return false;
}
@Override
public boolean isThread() {
return false;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment