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 javax.annotation.Resource;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@Component
public class ScheduleManager {

View File

@ -7,5 +7,7 @@ package io.dataease.provider;
public abstract class DDLProvider {
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
public String dropTableOrView(String name) {
public String dropTable(String 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
public String dropTableOrView(String name) {
public String dropTable(String 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;
} else {
endTime = new Date(datasetTableTask.getEndTime());
if (endTime.before(new Date())) {
return;
}
// if (endTime.before(new Date())) {
// return;
// }
}
scheduleManager.addOrUpdateCronJob(new JobKey(datasetTableTask.getId(), datasetTableTask.getTableId()),

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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