Commit 38494d06 authored by chenzai's avatar chenzai

insertSql导出

parent c6cf897a
...@@ -13,6 +13,7 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation; ...@@ -13,6 +13,7 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import javax.xml.crypto.Data; import javax.xml.crypto.Data;
import java.sql.Connection; import java.sql.Connection;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -52,8 +53,8 @@ public class RelationResource { ...@@ -52,8 +53,8 @@ public class RelationResource {
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/output/{agencyCodeId}/{sequenceNbrs}") @GetMapping(value = "/output/{agencyCodeId}/{sequenceNbrs}")
@ApiOperation(httpMethod = "GET", value = "导出", notes = "导出") @ApiOperation(httpMethod = "GET", value = "导出", notes = "导出")
public ResponseModel<String> genereteSQL(@PathVariable Long agencyCodeId,@PathVariable String sequenceNbrs) throws Exception { public ResponseModel<String> genereteSQL(@PathVariable Long agencyCodeId,@PathVariable String sequenceNbrs, HttpServletResponse response) throws Exception {
relationService.outputAgency(agencyCodeId, sequenceNbrs); relationService.outputAgency(agencyCodeId, sequenceNbrs,response);
return ResponseHelper.buildResponse("yes"); return ResponseHelper.buildResponse("yes");
} }
} }
\ No newline at end of file
...@@ -4,11 +4,11 @@ import io.swagger.annotations.ApiModel; ...@@ -4,11 +4,11 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import sun.reflect.generics.tree.Tree; // import sun.reflect.generics.tree.Tree;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.TreeMap; //import java.util.TreeMap;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
......
package com.yeejoin.amos.api.tool.face.service; package com.yeejoin.amos.api.tool.face.service;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.yeejoin.amos.api.tool.enums.SourceEnum;
import com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel; import com.yeejoin.amos.api.tool.face.model.DataBaseLinkModel;
import com.yeejoin.amos.api.tool.face.model.RelationModel; import com.yeejoin.amos.api.tool.face.model.RelationModel;
import com.yeejoin.amos.api.tool.face.model.RelationTreeModel; import com.yeejoin.amos.api.tool.face.model.RelationTreeModel;
...@@ -9,6 +10,7 @@ import com.yeejoin.amos.api.tool.face.orm.entity.Relation; ...@@ -9,6 +10,7 @@ import com.yeejoin.amos.api.tool.face.orm.entity.Relation;
import com.yeejoin.amos.api.tool.face.orm.entity.TableColumn; import com.yeejoin.amos.api.tool.face.orm.entity.TableColumn;
import io.github.classgraph.json.JSONUtils; import io.github.classgraph.json.JSONUtils;
import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
...@@ -21,6 +23,7 @@ import javax.servlet.http.HttpServletResponse; ...@@ -21,6 +23,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.sql.*; import java.sql.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -205,8 +208,28 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati ...@@ -205,8 +208,28 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
* @throws SQLException * @throws SQLException
*/ */
public String insertData(Connection connection, String agencyCode, String dbName) throws SQLException { public String insertData(Connection connection, String agencyCode, String dbName,HttpServletResponse response) throws SQLException {
try { try {
//#############################
File directory = new File("");// 参数为空
String coursePath = directory.getCanonicalPath();
File parentFile = new File(coursePath).getParentFile();
String backPath = parentFile.getCanonicalPath() + BACKUP_PATH;
File sqlDirectory = new File(backPath);
if (!sqlDirectory.exists()) {
sqlDirectory.mkdir();
}
String fileName = agencyCode + "." + SUFFIX;
String sqlFilePath = backPath + SLASH + fileName;
File file = new File(sqlFilePath);
FileOutputStream out;
OutputStreamWriter writer = null;
out = new FileOutputStream(file);
writer = new OutputStreamWriter(out, "utf8");
StringBuffer insertSql = new StringBuffer();
//##################################
if (!connection.isClosed()) if (!connection.isClosed())
System.out.println("Succeeded connecting to the Database!"); System.out.println("Succeeded connecting to the Database!");
//通过连接获取relation表树形结构 //通过连接获取relation表树形结构
...@@ -282,10 +305,24 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati ...@@ -282,10 +305,24 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
sbsql.append(BRANCH).append(BR); sbsql.append(BRANCH).append(BR);
} }
System.out.println(sbsql); System.out.println(sbsql);
if (!ObjectUtils.isEmpty(sql)) insertSql.append(sql);
} }
} }
if (insertSql.length() > 0) {
writer.write(BR + DELIMITER + BR);
writer.write("/**" + BR + "* 资源数据" + BR + "**/" + BR);
writer.write(BR + DELIMITER + BR);
writer.write(insertSql.toString());
writer.write(BR + BR + DELIMITER + BR);
}
download(response, fileName, sqlFilePath);
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
connection.close(); connection.close();
return null; return null;
...@@ -430,24 +467,29 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati ...@@ -430,24 +467,29 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
return list; return list;
} }
public void outputAgency(Long agencyCodeId, String sequenceNbrs) throws Exception { public void outputAgency(Long agencyCodeId, String sequenceNbrs,HttpServletResponse response) throws Exception {
for (Long seq : (Long[]) ConvertUtils.convert(StringUtil.string2Array(sequenceNbrs),Long.class)) { for (Long seq : (Long[]) ConvertUtils.convert(StringUtil.string2Array(sequenceNbrs),Long.class)) {
DataBaseLinkModel model = dataBaseLinkService.queryBySeq(seq); DataBaseLinkModel model = dataBaseLinkService.queryBySeq(seq);
Connection connection = dataBaseLinkService.connectNewDatabase(model); Connection connection = dataBaseLinkService.connectNewDatabase(model);
this.insertData( this.insertData(
connection, agencyTreeService.queryForAgencyCodeById(agencyCodeId), model.getDbName()); connection, agencyTreeService.queryForAgencyCodeById(agencyCodeId), model.getDbName(),response);
} }
} }
public void download(String filePath ,String sql) throws IOException { public void download(HttpServletResponse response, String fileName, String sqlFilePath) throws IOException {
File file = new File(filePath); File f = new File(sqlFilePath);
try { BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
FileWriter writer = new FileWriter(file); byte[] buf = new byte[1024];
writer.write(sql); int len = 0;
writer.close(); response.reset(); // 非常重要
} catch (IOException e) { response.setContentType("application/x-msdownload");
e.printStackTrace(); response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
} OutputStream out = response.getOutputStream();
while ((len = br.read(buf)) > 0)
out.write(buf, 0, len);
br.close();
out.close();
} }
} }
#DB properties: #DB properties:
# jdbc_config # jdbc_config
spring.datasource.url=jdbc:mysql://39.98.45.134:3306/amos_tool_library_test?allowMultiQueries=true spring.datasource.url=jdbc:mysql://39.98.45.134:3306/amos_studio?allowMultiQueries=true
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=Yeejoin@2020 spring.datasource.password=Yeejoin@2020
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
......
spring.application.name=AMOS-ATL spring.application.name=AMOS-ATL
server.servlet.context-path=/atl server.servlet.context-path=/atl
<<<<<<< HEAD
#server.servlet.context-path=/jcs #server.servlet.context-path=/jcs
server.port=30002 server.port=30002
#server.port=20000 #server.port=20000
=======
server.port=30201
>>>>>>> 56d4a0ab360f8ce8f2fa01e2ecf68e745d42bc24
spring.profiles.active=dev spring.profiles.active=dev
management.health.elasticsearch.enabled=false management.health.elasticsearch.enabled=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