Commit 38494d06 authored by chenzai's avatar chenzai

insertSql导出

parent c6cf897a
......@@ -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.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import javax.xml.crypto.Data;
import java.sql.Connection;
import java.util.ArrayList;
......@@ -52,8 +53,8 @@ public class RelationResource {
@TycloudOperation(ApiLevel = UserType.AGENCY,needAuth = false)
@GetMapping(value = "/output/{agencyCodeId}/{sequenceNbrs}")
@ApiOperation(httpMethod = "GET", value = "导出", notes = "导出")
public ResponseModel<String> genereteSQL(@PathVariable Long agencyCodeId,@PathVariable String sequenceNbrs) throws Exception {
relationService.outputAgency(agencyCodeId, sequenceNbrs);
public ResponseModel<String> genereteSQL(@PathVariable Long agencyCodeId,@PathVariable String sequenceNbrs, HttpServletResponse response) throws Exception {
relationService.outputAgency(agencyCodeId, sequenceNbrs,response);
return ResponseHelper.buildResponse("yes");
}
}
}
\ No newline at end of file
......@@ -4,11 +4,11 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import sun.reflect.generics.tree.Tree;
// import sun.reflect.generics.tree.Tree;
import java.util.ArrayList;
import java.util.List;
import java.util.TreeMap;
//import java.util.TreeMap;
@Data
@NoArgsConstructor
......
package com.yeejoin.amos.api.tool.face.service;
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.RelationModel;
import com.yeejoin.amos.api.tool.face.model.RelationTreeModel;
......@@ -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 io.github.classgraph.json.JSONUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
......@@ -21,6 +23,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.sql.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -205,8 +208,28 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
* @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 {
//#############################
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())
System.out.println("Succeeded connecting to the Database!");
//通过连接获取relation表树形结构
......@@ -282,10 +305,24 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
sbsql.append(BRANCH).append(BR);
}
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) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
connection.close();
return null;
......@@ -430,24 +467,29 @@ public class RelationService extends BaseService<RelationModel, Relation, Relati
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)) {
DataBaseLinkModel model = dataBaseLinkService.queryBySeq(seq);
Connection connection = dataBaseLinkService.connectNewDatabase(model);
this.insertData(
connection, agencyTreeService.queryForAgencyCodeById(agencyCodeId), model.getDbName());
connection, agencyTreeService.queryForAgencyCodeById(agencyCodeId), model.getDbName(),response);
}
}
public void download(String filePath ,String sql) throws IOException {
File file = new File(filePath);
try {
FileWriter writer = new FileWriter(file);
writer.write(sql);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
public void download(HttpServletResponse response, String fileName, String sqlFilePath) throws IOException {
File f = new File(sqlFilePath);
BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
byte[] buf = new byte[1024];
int len = 0;
response.reset(); // 非常重要
response.setContentType("application/x-msdownload");
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:
# 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.password=Yeejoin@2020
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
......
spring.application.name=AMOS-ATL
server.servlet.context-path=/atl
<<<<<<< HEAD
#server.servlet.context-path=/jcs
server.port=30002
#server.port=20000
=======
server.port=30201
>>>>>>> 56d4a0ab360f8ce8f2fa01e2ecf68e745d42bc24
spring.profiles.active=dev
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