forked from github/dataease
Merge branch 'main' of github.com:dataease/dataease into main
This commit is contained in:
commit
c627f44e6e
@ -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 {
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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()),
|
||||
|
@ -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);
|
||||
|
@ -153,7 +153,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="css">
|
||||
<style lang="css" scoped>
|
||||
.el-checkbox+.el-checkbox {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="css">
|
||||
<style lang="css" scoped>
|
||||
.el-checkbox+.el-checkbox {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
@ -136,7 +136,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="css">
|
||||
<style lang="css" scoped>
|
||||
.el-checkbox+.el-checkbox {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
@ -139,7 +139,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="css">
|
||||
<style lang="css" scoped>
|
||||
.el-checkbox+.el-checkbox {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="css">
|
||||
<style lang="css" scoped>
|
||||
.el-checkbox+.el-checkbox {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="css">
|
||||
<style lang="css" scoped>
|
||||
.el-checkbox+.el-checkbox {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user