diff --git a/backend/src/main/java/io/dataease/job/sechedule/ScheduleManager.java b/backend/src/main/java/io/dataease/job/sechedule/ScheduleManager.java index 79f06b6784..562561dcb2 100644 --- a/backend/src/main/java/io/dataease/job/sechedule/ScheduleManager.java +++ b/backend/src/main/java/io/dataease/job/sechedule/ScheduleManager.java @@ -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 { diff --git a/backend/src/main/java/io/dataease/provider/DDLProvider.java b/backend/src/main/java/io/dataease/provider/DDLProvider.java index 88db6f9871..0ecc829ab5 100644 --- a/backend/src/main/java/io/dataease/provider/DDLProvider.java +++ b/backend/src/main/java/io/dataease/provider/DDLProvider.java @@ -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); } diff --git a/backend/src/main/java/io/dataease/provider/doris/DorisDDLProvider.java b/backend/src/main/java/io/dataease/provider/doris/DorisDDLProvider.java index a3448b6079..b86dca6eca 100644 --- a/backend/src/main/java/io/dataease/provider/doris/DorisDDLProvider.java +++ b/backend/src/main/java/io/dataease/provider/doris/DorisDDLProvider.java @@ -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; + } } diff --git a/backend/src/main/java/io/dataease/provider/mysql/MysqlDDLProvider.java b/backend/src/main/java/io/dataease/provider/mysql/MysqlDDLProvider.java index 5f51f5459f..5e44c86662 100644 --- a/backend/src/main/java/io/dataease/provider/mysql/MysqlDDLProvider.java +++ b/backend/src/main/java/io/dataease/provider/mysql/MysqlDDLProvider.java @@ -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; + } } diff --git a/backend/src/main/java/io/dataease/service/ScheduleService.java b/backend/src/main/java/io/dataease/service/ScheduleService.java index 8181953a43..9efef3d772 100644 --- a/backend/src/main/java/io/dataease/service/ScheduleService.java +++ b/backend/src/main/java/io/dataease/service/ScheduleService.java @@ -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()), diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index a0f0555080..29d8d1b884 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -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 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); diff --git a/frontend/src/components/cron/cron/day.vue b/frontend/src/components/cron/cron/day.vue index 150d7ff41d..7647bab07d 100644 --- a/frontend/src/components/cron/cron/day.vue +++ b/frontend/src/components/cron/cron/day.vue @@ -153,7 +153,7 @@ export default { } -