Commit 655eaa65 by wqc

新增导出组件

parent 2731cac6
...@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Map; import java.util.Map;
@Api(tags = "组件执行接口") @Api(tags = "组件执行接口")
...@@ -53,4 +54,10 @@ public class ComponentRunController { ...@@ -53,4 +54,10 @@ public class ComponentRunController {
return ResultVo.success(commonQueryService.validateNumber(body)); 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; ...@@ -15,6 +15,7 @@ import com.zq.dataoperation.entity.CommonQuerySetting;
import com.zq.dataoperation.entity.MetaDataMapping; import com.zq.dataoperation.entity.MetaDataMapping;
import com.zq.dataoperation.entity.QueryDb; import com.zq.dataoperation.entity.QueryDb;
import com.zq.dataoperation.utils.ConnectionUtil; import com.zq.dataoperation.utils.ConnectionUtil;
import com.zq.dataoperation.utils.FileUtil;
import com.zq.dataoperation.utils.IdentityUtils; import com.zq.dataoperation.utils.IdentityUtils;
import com.zq.dataoperation.utils.SqlUtils; import com.zq.dataoperation.utils.SqlUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -25,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -25,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import java.sql.*; import java.sql.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -140,7 +142,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo ...@@ -140,7 +142,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
public List<Map> commonQuery(String sql, Integer queryId) throws Exception { public List<Map> commonQuery(String sql, Integer queryId) throws Exception {
ResultSet resultSet = null; ResultSet resultSet = null;
try { try {
Connection connection = ConnectionUtil.getConnection(queryId); Connection connection = ConnectionUtil.get(queryId);
connection.prepareStatement(sql).setQueryTimeout(5000); connection.prepareStatement(sql).setQueryTimeout(5000);
resultSet = connection.prepareStatement(sql).executeQuery(); resultSet = connection.prepareStatement(sql).executeQuery();
int columnCount = resultSet.getMetaData().getColumnCount(); int columnCount = resultSet.getMetaData().getColumnCount();
...@@ -245,6 +247,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo ...@@ -245,6 +247,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
} }
} }
//记录排序
public Object SortRecord(Map<String, Object> body) throws Exception { public Object SortRecord(Map<String, Object> body) throws Exception {
JSONObject jsonObject = JSONUtil.parseObj(body); JSONObject jsonObject = JSONUtil.parseObj(body);
Integer datasourceId = Integer.valueOf(jsonObject.get("datasourceId").toString()); Integer datasourceId = Integer.valueOf(jsonObject.get("datasourceId").toString());
...@@ -260,6 +263,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo ...@@ -260,6 +263,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
return commonQuery(sql,datasourceId); return commonQuery(sql,datasourceId);
} }
//剪切字符串
public Object CutString(Map<String, Object> body) throws Exception { public Object CutString(Map<String, Object> body) throws Exception {
JSONObject jsonObject = JSONUtil.parseObj(body); JSONObject jsonObject = JSONUtil.parseObj(body);
Integer datasourceId = Integer.valueOf(jsonObject.get("datasourceId").toString()); Integer datasourceId = Integer.valueOf(jsonObject.get("datasourceId").toString());
...@@ -275,6 +279,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo ...@@ -275,6 +279,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
} }
} }
//验证电话
public Object validateNumber(Map<String, Object> body) throws Exception { public Object validateNumber(Map<String, Object> body) throws Exception {
JSONObject jsonObject = JSONUtil.parseObj(body); JSONObject jsonObject = JSONUtil.parseObj(body);
Integer datasourceId = Integer.valueOf(jsonObject.get("datasourceId").toString()); Integer datasourceId = Integer.valueOf(jsonObject.get("datasourceId").toString());
...@@ -302,4 +307,17 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo ...@@ -302,4 +307,17 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
map.put("dirtyList",dirtyList); map.put("dirtyList",dirtyList);
return map; 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 { ...@@ -26,4 +26,8 @@ public class ConnectionUtil {
public static JdbcTemplate getJdbcTemplate(Integer id){ public static JdbcTemplate getJdbcTemplate(Integer id){
return new JdbcTemplate(dataSourceMap.get(id)); return new JdbcTemplate(dataSourceMap.get(id));
} }
}
\ No newline at end of file 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 { ...@@ -158,6 +158,27 @@ public class FileUtil extends cn.hutool.core.io.FileUtil {
IoUtil.close(out); 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) { public static String getFileType(String type) {
String documents = "txt doc pdf ppt pps xlsx xls docx"; String documents = "txt doc pdf ppt pps xlsx xls docx";
String music = "mp3 wav wma mpa ram ra aac aif m4a"; 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 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