Merge branch 'main' of github.com:dataease/dataease into main

This commit is contained in:
taojinlong 2021-06-02 17:11:44 +08:00
commit c627f44e6e
12 changed files with 62 additions and 41 deletions

View File

@ -6,16 +6,9 @@ import org.quartz.impl.triggers.CronTriggerImpl;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component @Component
public class ScheduleManager { public class ScheduleManager {

View File

@ -7,5 +7,7 @@ package io.dataease.provider;
public abstract class DDLProvider { public abstract class DDLProvider {
public abstract String createView(String name, String viewSQL); public abstract String createView(String name, String viewSQL);
public abstract String dropTableOrView(String name); public abstract String dropTable(String name);
public abstract String dropView(String name);
} }

View File

@ -15,7 +15,12 @@ public class DorisDDLProvider extends DDLProvider {
} }
@Override @Override
public String dropTableOrView(String name) { public String dropTable(String name) {
return "DROP TABLE IF EXISTS " + name; return "DROP TABLE IF EXISTS " + name;
} }
@Override
public String dropView(String name) {
return "DROP VIEW IF EXISTS " + name;
}
} }

View File

@ -15,7 +15,12 @@ public class MysqlDDLProvider extends DDLProvider {
} }
@Override @Override
public String dropTableOrView(String name) { public String dropTable(String name) {
return "DROP TABLE IF EXISTS " + name; return "DROP TABLE IF EXISTS " + name;
} }
@Override
public String dropView(String name) {
return "DROP VIEW IF EXISTS " + name;
}
} }

View File

@ -34,9 +34,9 @@ public class ScheduleService {
endTime = null; endTime = null;
} else { } else {
endTime = new Date(datasetTableTask.getEndTime()); endTime = new Date(datasetTableTask.getEndTime());
if (endTime.before(new Date())) { // if (endTime.before(new Date())) {
return; // return;
} // }
} }
scheduleManager.addOrUpdateCronJob(new JobKey(datasetTableTask.getId(), datasetTableTask.getTableId()), scheduleManager.addOrUpdateCronJob(new JobKey(datasetTableTask.getId(), datasetTableTask.getTableId()),

View File

@ -127,28 +127,36 @@ public class DataSetTableService {
} }
public void delete(String id) throws Exception { public void delete(String id) throws Exception {
DatasetTable table = datasetTableMapper.selectByPrimaryKey(id);
datasetTableMapper.deleteByPrimaryKey(id); datasetTableMapper.deleteByPrimaryKey(id);
dataSetTableFieldsService.deleteByTableId(id); dataSetTableFieldsService.deleteByTableId(id);
// 删除同步任务 // 删除同步任务
dataSetTableTaskService.deleteByTableId(id); dataSetTableTaskService.deleteByTableId(id);
try { try {
deleteDorisTable(id); deleteDorisTable(id, table);
} catch (Exception e) { } catch (Exception e) {
} }
} }
private void deleteDorisTable(String datasetId) throws Exception { private void deleteDorisTable(String datasetId, DatasetTable table) throws Exception {
String dorisTableName = DorisTableUtils.dorisName(datasetId); String dorisTableName = DorisTableUtils.dorisName(datasetId);
Datasource dorisDatasource = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); Datasource dorisDatasource = (Datasource) CommonBeanFactory.getBean("DorisDatasource");
JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class);
DatasourceRequest datasourceRequest = new DatasourceRequest(); DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(dorisDatasource); datasourceRequest.setDatasource(dorisDatasource);
DDLProvider ddlProvider = ProviderFactory.getDDLProvider(dorisDatasource.getType()); DDLProvider ddlProvider = ProviderFactory.getDDLProvider(dorisDatasource.getType());
datasourceRequest.setQuery(ddlProvider.dropTableOrView(dorisTableName)); if (StringUtils.equalsIgnoreCase("custom", table.getType())) {
jdbcProvider.exec(datasourceRequest); datasourceRequest.setQuery(ddlProvider.dropView(dorisTableName));
datasourceRequest.setQuery(ddlProvider.dropTableOrView(DorisTableUtils.dorisTmpName(dorisTableName))); jdbcProvider.exec(datasourceRequest);
jdbcProvider.exec(datasourceRequest); datasourceRequest.setQuery(ddlProvider.dropView(DorisTableUtils.dorisTmpName(dorisTableName)));
jdbcProvider.exec(datasourceRequest);
} else {
datasourceRequest.setQuery(ddlProvider.dropTable(dorisTableName));
jdbcProvider.exec(datasourceRequest);
datasourceRequest.setQuery(ddlProvider.dropTable(DorisTableUtils.dorisTmpName(dorisTableName)));
jdbcProvider.exec(datasourceRequest);
}
} }
public List<DataSetTableDTO> list(DataSetTableRequest dataSetTableRequest) { public List<DataSetTableDTO> list(DataSetTableRequest dataSetTableRequest) {
@ -570,7 +578,7 @@ public class DataSetTableService {
datasourceRequest.setDatasource(dorisDatasource); datasourceRequest.setDatasource(dorisDatasource);
DDLProvider ddlProvider = ProviderFactory.getDDLProvider(dorisDatasource.getType()); DDLProvider ddlProvider = ProviderFactory.getDDLProvider(dorisDatasource.getType());
// 先删除表 // 先删除表
datasourceRequest.setQuery(ddlProvider.dropTableOrView(dorisTableName)); datasourceRequest.setQuery(ddlProvider.dropView(dorisTableName));
jdbcProvider.exec(datasourceRequest); jdbcProvider.exec(datasourceRequest);
datasourceRequest.setQuery(ddlProvider.createView(dorisTableName, customSql)); datasourceRequest.setQuery(ddlProvider.createView(dorisTableName, customSql));
jdbcProvider.exec(datasourceRequest); jdbcProvider.exec(datasourceRequest);
@ -705,9 +713,9 @@ public class DataSetTableService {
tableFiled.setFieldName(columnName); tableFiled.setFieldName(columnName);
tableFiled.setRemarks(columnName); tableFiled.setRemarks(columnName);
fields.add(tableFiled); fields.add(tableFiled);
} else if (i == 1){ } else if (i == 1) {
r[j] = readCell(row.getCell(j), true, fields.get(j)); r[j] = readCell(row.getCell(j), true, fields.get(j));
}else { } else {
r[j] = readCell(row.getCell(j), false, null); r[j] = readCell(row.getCell(j), false, null);
} }
} }
@ -738,16 +746,16 @@ public class DataSetTableService {
TableFiled tableFiled = new TableFiled(); TableFiled tableFiled = new TableFiled();
tableFiled.setFieldType("TEXT"); tableFiled.setFieldType("TEXT");
tableFiled.setFieldSize(1024); tableFiled.setFieldSize(1024);
String columnName = readCell(row.getCell(j),false, null); String columnName = readCell(row.getCell(j), false, null);
if (StringUtils.isEmpty(columnName)) { if (StringUtils.isEmpty(columnName)) {
columnName = "NONE_" + String.valueOf(j); columnName = "NONE_" + String.valueOf(j);
} }
tableFiled.setFieldName(columnName); tableFiled.setFieldName(columnName);
tableFiled.setRemarks(columnName); tableFiled.setRemarks(columnName);
fields.add(tableFiled); fields.add(tableFiled);
} else if (i == 1){ } else if (i == 1) {
r[j] = readCell(row.getCell(j), true, fields.get(j)); r[j] = readCell(row.getCell(j), true, fields.get(j));
}else { } else {
r[j] = readCell(row.getCell(j), false, null); r[j] = readCell(row.getCell(j), false, null);
} }
} }
@ -801,28 +809,36 @@ public class DataSetTableService {
private String readCell(Cell cell, boolean cellType, TableFiled tableFiled) { private String readCell(Cell cell, boolean cellType, TableFiled tableFiled) {
CellType cellTypeEnum = cell.getCellTypeEnum(); CellType cellTypeEnum = cell.getCellTypeEnum();
if (cellTypeEnum.equals(CellType.STRING)) { if (cellTypeEnum.equals(CellType.STRING)) {
if(cellType){ tableFiled.setFieldType("TEXT"); } if (cellType) {
tableFiled.setFieldType("TEXT");
}
return cell.getStringCellValue(); return cell.getStringCellValue();
} }
if (cellTypeEnum.equals(CellType.NUMERIC)) { if (cellTypeEnum.equals(CellType.NUMERIC)) {
if(HSSFDateUtil.isCellDateFormatted(cell)){ if (HSSFDateUtil.isCellDateFormatted(cell)) {
if(cellType) { tableFiled.setFieldType("DATETIME"); } if (cellType) {
tableFiled.setFieldType("DATETIME");
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try { try {
return sdf.format(cell.getDateCellValue()); return sdf.format(cell.getDateCellValue());
}catch (Exception e){ } catch (Exception e) {
return ""; return "";
} }
}else { } else {
double d = cell.getNumericCellValue(); double d = cell.getNumericCellValue();
try { try {
Double value = new Double(d); Double value = new Double(d);
double eps = 1e-10; double eps = 1e-10;
if(value - Math.floor(value) < eps){ if (value - Math.floor(value) < eps) {
if(cellType) { tableFiled.setFieldType("LONG"); } if (cellType) {
tableFiled.setFieldType("LONG");
}
return value.longValue() + ""; return value.longValue() + "";
}else { } else {
if(cellType){ tableFiled.setFieldType("DOUBLE");} if (cellType) {
tableFiled.setFieldType("DOUBLE");
}
NumberFormat nf = NumberFormat.getInstance(); NumberFormat nf = NumberFormat.getInstance();
nf.setGroupingUsed(false); nf.setGroupingUsed(false);
return nf.format(value); return nf.format(value);

View File

@ -153,7 +153,7 @@ export default {
} }
</script> </script>
<style lang="css"> <style lang="css" scoped>
.el-checkbox+.el-checkbox { .el-checkbox+.el-checkbox {
margin-left: 10px; margin-left: 10px;
} }

View File

@ -135,7 +135,7 @@ export default {
} }
</script> </script>
<style lang="css"> <style lang="css" scoped>
.el-checkbox+.el-checkbox { .el-checkbox+.el-checkbox {
margin-left: 10px; margin-left: 10px;
} }

View File

@ -136,7 +136,7 @@ export default {
} }
</script> </script>
<style lang="css"> <style lang="css" scoped>
.el-checkbox+.el-checkbox { .el-checkbox+.el-checkbox {
margin-left: 10px; margin-left: 10px;
} }

View File

@ -139,7 +139,7 @@ export default {
} }
</script> </script>
<style lang="css"> <style lang="css" scoped>
.el-checkbox+.el-checkbox { .el-checkbox+.el-checkbox {
margin-left: 10px; margin-left: 10px;
} }

View File

@ -150,7 +150,7 @@ export default {
} }
</script> </script>
<style lang="css"> <style lang="css" scoped>
.el-checkbox+.el-checkbox { .el-checkbox+.el-checkbox {
margin-left: 10px; margin-left: 10px;
} }

View File

@ -123,7 +123,7 @@ export default {
} }
</script> </script>
<style lang="css"> <style lang="css" scoped>
.el-checkbox+.el-checkbox { .el-checkbox+.el-checkbox {
margin-left: 10px; margin-left: 10px;
} }