forked from github/dataease
feat: excel 替换数据显示'同步中'
This commit is contained in:
parent
559bcb1ebb
commit
1349431c63
@ -8,6 +8,8 @@ import com.google.gson.reflect.TypeToken;
|
||||
import io.dataease.auth.annotation.DeCleaner;
|
||||
import io.dataease.auth.api.dto.CurrentUserDto;
|
||||
import io.dataease.controller.request.chart.ChartExtRequest;
|
||||
import io.dataease.controller.sys.base.BaseGridRequest;
|
||||
import io.dataease.controller.sys.base.ConditionEntity;
|
||||
import io.dataease.dto.SysLogDTO;
|
||||
import io.dataease.ext.ExtDataSetGroupMapper;
|
||||
import io.dataease.ext.ExtDataSetTableMapper;
|
||||
@ -32,7 +34,6 @@ import io.dataease.plugins.common.constants.DatasetType;
|
||||
import io.dataease.plugins.common.constants.DatasourceTypes;
|
||||
import io.dataease.plugins.common.dto.chart.ChartFieldCustomFilterDTO;
|
||||
import io.dataease.plugins.common.dto.datasource.TableField;
|
||||
import io.dataease.plugins.common.request.chart.ChartExtFilterRequest;
|
||||
import io.dataease.plugins.common.request.datasource.DatasourceRequest;
|
||||
import io.dataease.plugins.datasource.provider.Provider;
|
||||
import io.dataease.plugins.datasource.query.QueryProvider;
|
||||
@ -80,7 +81,6 @@ import javax.annotation.Resource;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.StringReader;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.MessageFormat;
|
||||
import java.text.NumberFormat;
|
||||
@ -133,6 +133,8 @@ public class DataSetTableService {
|
||||
private SysAuthService sysAuthService;
|
||||
@Resource
|
||||
private ChartViewMapper chartViewMapper;
|
||||
@Resource
|
||||
private DataSetTableTaskLogService dataSetTableTaskLogService;
|
||||
|
||||
private static boolean isUpdatingDatasetTableStatus = false;
|
||||
private static final String lastUpdateTime = "${__last_update_time__}";
|
||||
@ -526,6 +528,7 @@ public class DataSetTableService {
|
||||
public Map<String, Object> getPreviewData(DataSetTableRequest dataSetTableRequest, Integer page, Integer pageSize,
|
||||
List<DatasetTableField> extFields) throws Exception {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
String sycnStatus = "";
|
||||
DatasetTableField datasetTableField = DatasetTableField.builder().tableId(dataSetTableRequest.getId())
|
||||
.checked(Boolean.TRUE).build();
|
||||
List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableField);
|
||||
@ -737,6 +740,20 @@ public class DataSetTableService {
|
||||
logger.error(e.getMessage());
|
||||
DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage());
|
||||
}
|
||||
BaseGridRequest request = new BaseGridRequest();
|
||||
ConditionEntity entity2 = new ConditionEntity();
|
||||
entity2.setField("dataset_table_task_log.table_id");
|
||||
entity2.setOperator("eq");
|
||||
entity2.setValue(dataSetTableRequest.getId());
|
||||
List<ConditionEntity> conditionEntities = new ArrayList<>();
|
||||
conditionEntities.add(entity2);
|
||||
request.setConditions(conditionEntities);
|
||||
List<DataSetTaskLogDTO> dataSetTaskLogDTOS = dataSetTableTaskLogService.listTaskLog(request, "excel");
|
||||
if(CollectionUtils.isNotEmpty(dataSetTaskLogDTOS)){
|
||||
dataSetTaskLogDTOS.get(0).getStatus().equalsIgnoreCase(JobStatus.Underway.name());
|
||||
sycnStatus = dataSetTaskLogDTOS.get(0).getStatus();
|
||||
}
|
||||
|
||||
} else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "custom")) {
|
||||
if (datasetTable.getMode() == 0) {
|
||||
Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId());
|
||||
@ -902,6 +919,7 @@ public class DataSetTableService {
|
||||
map.put("fields", fields);
|
||||
map.put("data", jsonArray);
|
||||
map.put("page", dataSetPreviewPage);
|
||||
map.put("sycnStatus", sycnStatus);
|
||||
|
||||
return map;
|
||||
}
|
||||
|
@ -1115,6 +1115,7 @@ export default {
|
||||
form_type: 'From Type'
|
||||
},
|
||||
dataset: {
|
||||
dataset_sync: ' ( Data sync... )',
|
||||
sheet_warn: 'There are multiple sheet pages, and the first one is extracted by default',
|
||||
datalist: 'Data Set',
|
||||
name: 'DataSet Name',
|
||||
|
@ -1115,6 +1115,7 @@ export default {
|
||||
form_type: '類別'
|
||||
},
|
||||
dataset: {
|
||||
dataset_sync: ' ( 資料同步中... )',
|
||||
sheet_warn: '有多個 Sheet 頁,默認抽取第一個',
|
||||
datalist: '數據集',
|
||||
name: '數據集名稱',
|
||||
|
@ -1117,6 +1117,7 @@ export default {
|
||||
form_type: '类别'
|
||||
},
|
||||
dataset: {
|
||||
dataset_sync: ' ( 数据同步中... )',
|
||||
sheet_warn: '有多个 Sheet 页,默认抽取第一个',
|
||||
datalist: '数据集',
|
||||
name: '数据集名称',
|
||||
|
@ -4,6 +4,9 @@
|
||||
<span class="title-text" style="line-height: 26px;">
|
||||
{{ table.name }}
|
||||
</span>
|
||||
<span v-if="sycnStatus === 'Underway'" class="blue-color" style="line-height: 26px;">
|
||||
{{ $t('dataset.dataset_sync') }}
|
||||
</span>
|
||||
<el-popover
|
||||
placement="right-start"
|
||||
width="400"
|
||||
@ -102,6 +105,8 @@ export default {
|
||||
},
|
||||
fields: [],
|
||||
data: [],
|
||||
sycnStatus: '',
|
||||
lastRequestComplete: true,
|
||||
page: {
|
||||
page: 1,
|
||||
pageSize: 1000,
|
||||
@ -132,7 +137,22 @@ export default {
|
||||
})
|
||||
},
|
||||
created() {
|
||||
|
||||
this.taskLogTimer = setInterval(() => {
|
||||
console.log(this.sycnStatus)
|
||||
console.log(this.lastRequestComplete)
|
||||
if (this.sycnStatus !== 'Underway') {
|
||||
return;
|
||||
}
|
||||
if (!this.lastRequestComplete) {
|
||||
return
|
||||
} else {
|
||||
this.lastRequestComplete = false
|
||||
}
|
||||
this.initPreviewData(this.page)
|
||||
}, 5000)
|
||||
},
|
||||
beforeDestroy() {
|
||||
clearInterval(this.taskLogTimer)
|
||||
},
|
||||
mounted() {
|
||||
this.initTable(this.param.id)
|
||||
@ -160,13 +180,16 @@ export default {
|
||||
this.fields = response.data.fields
|
||||
this.data = response.data.data
|
||||
this.page = response.data.page
|
||||
this.sycnStatus = response.data.sycnStatus
|
||||
if (response.data.status === 'warnning') {
|
||||
this.$warning(response.data.msg, 3000)
|
||||
}
|
||||
if (response.data.status === 'error') {
|
||||
this.$error(response.data.msg, 3000)
|
||||
}
|
||||
this.lastRequestComplete = true
|
||||
}).catch(response => {
|
||||
this.lastRequestComplete = true
|
||||
this.fields = []
|
||||
this.data = []
|
||||
this.page = {
|
||||
|
Loading…
Reference in New Issue
Block a user