Browse Source

BI-72473 fix: Postgreexcel导入插件适配

upgrade
Zhenfei.Li 4 years ago
parent
commit
ace734892b
  1. 28
      src/main/java/com/fr/plugin/decision/dialect/postgre/PostgreDialectColumnType2SQLExecutor.java
  2. 1
      src/main/java/com/fr/plugin/decision/dialect/postgre/PostgreDialectConsummate.java
  3. 34
      src/main/java/com/fr/plugin/decision/request/handler/TableDataImport.java
  4. 17
      src/main/resources/com/fr/plugin/hw/decision/js/pane/left.js
  5. 2
      src/main/resources/com/fr/plugin/hw/decision/js/table.info.model.js

28
src/main/java/com/fr/plugin/decision/dialect/postgre/PostgreDialectColumnType2SQLExecutor.java

@ -0,0 +1,28 @@
package com.fr.plugin.decision.dialect.postgre;
import com.fr.data.core.db.dialect.Dialect;
import com.fr.data.core.db.dialect.base.key.column.typetosql.AbstractDialectColumnType2SQLExecutor;
import com.fr.data.core.db.dialect.base.key.column.typetosql.DialectColumnType2SQLParameter;
import com.fr.data.core.db.dialect.util.DialectUtils;
public class PostgreDialectColumnType2SQLExecutor extends AbstractDialectColumnType2SQLExecutor {
public PostgreDialectColumnType2SQLExecutor(){
}
@Override
public String execute(DialectColumnType2SQLParameter dialectColumnType2SQLParameter, Dialect dialect) {
int columnType = dialectColumnType2SQLParameter.getColumnType();
String columnSize = dialectColumnType2SQLParameter.getParameter();
switch(columnType) {
case 8:
return "double precision";
case 12:
return "varchar(" + columnSize + ")";
case 91:
return "date";
default:
return DialectUtils.getTypeName(columnType);
}
}
}

1
src/main/java/com/fr/plugin/decision/dialect/postgre/PostgreDialectConsummate.java

@ -8,6 +8,7 @@ public class PostgreDialectConsummate extends PostgreSQLDialect {
public PostgreDialectConsummate(){
super();
this.putExecutor(DialectKeyConstants.COLUMN_TYPE_2_SQL_KEY, new PostgreDialectColumnType2SQLExecutor());
this.putExecutor(DialectKeyConstants.CREATE_TOP_N_SQL_KEY, new KylinDialectCreateTOPNSQLExecutor());
}
}

34
src/main/java/com/fr/plugin/decision/request/handler/TableDataImport.java

@ -1,5 +1,8 @@
package com.fr.plugin.decision.request.handler;
import com.finebi.burger.api.request.configuration.table.DataBaseAddTableRequestBean;
import com.finebi.common.api.cell.user.authority.UserAuthority;
import com.finebi.common.api.vo.table.FineBusinessTable;
import com.fr.decision.webservice.v10.user.UserService;
import com.fr.json.JSONArray;
import com.fr.json.JSONObject;
@ -10,6 +13,9 @@ import com.fr.plugin.decision.core.action.ExcelDmlAction;
import com.fr.plugin.decision.dao.ExcelLinkService;
import com.fr.plugin.decision.utils.JdbcUtils;
import com.fr.stable.StringUtils;
import com.fr.third.fasterxml.jackson.core.JsonGenerationException;
import com.fr.third.fasterxml.jackson.databind.JsonMappingException;
import com.fr.third.fasterxml.jackson.databind.ObjectMapper;
import com.fr.third.org.apache.poi.hssf.usermodel.HSSFSheet;
import com.fr.third.org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.fr.third.v2.org.apache.poi.xssf.usermodel.XSSFSheet;
@ -18,6 +24,7 @@ import com.fr.web.utils.WebUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.util.HashMap;
import java.util.List;
@ -80,6 +87,33 @@ public class TableDataImport extends HWAbstractHandler {
ExcelLinkService.getInstance().addLink(name, connection, schema, tableName, createUser);
FineLoggerFactory.getLogger().info("HW_excel导入:FineDB 新增数据成功" + name);
}
if (StringUtils.equals("success", dmlResult.getString("status")) || StringUtils.contains(dmlResult.getString("errorText"), "existed")) {
ObjectMapper mapper = new ObjectMapper();
JSONObject table = JSONObject.create().put("tableName", tableName).put("connectionName", connection);
JSONArray tables = JSONArray.create().put(table);
JSONObject tablesBean = JSONObject.create().put("tables", tables);
try{
UserAuthority authorityUser = UpgradeHandler.getFineUserInfoService().getUserAuthority(req);
String userId = authorityUser.getUser().getInfo().getUserId();
String packId = "__my_analysis__" + userId + 1;
try {
String tableString = tablesBean.toString();
FineBusinessTable[] businessTables = UpgradeHandler.createBusinessTablesFromDBNewAddTableInfo(mapper.readValue(tableString, DataBaseAddTableRequestBean.class), userId);
UpgradeHandler.getTableService().addNewTable(packId, authorityUser, businessTables);
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch(Exception e){
e.printStackTrace();
}
}
WebUtils.printAsJSON(res, dmlResult);
}

17
src/main/resources/com/fr/plugin/hw/decision/js/pane/left.js

@ -42,21 +42,8 @@
var tableData = BI.deepClone(table);
BI.hwfield2ColTypeDeal(tableData.items);
Dec.HW.importTableData(tableData, function (res) {
if (res.status === "success") {
BI.Utils.addTables2Pack({
packId: "__my_analysis__" + BI.Utils.getCurrentUserId() + BI.Utils.getUserEngine(),
tables: [{
tableName: tableData.tableName,
connectionName: tableData.connection
}]
}, function () {
callback(res);
self.linkListPane.populate();
});
} else {
callback(res);
self.linkListPane.populate();
}
callback(res);
self.linkListPane.populate();
});
},
listeners: [

2
src/main/resources/com/fr/plugin/hw/decision/js/table.info.model.js

@ -5,7 +5,7 @@
return {
items: [],
connection: "",
schema: "guest",
schema: "",
tableName: "",
excelItems: [],
infoId: o.infoId,

Loading…
Cancel
Save