feat: excel 替换数据显示'同步中'

This commit is contained in:
taojinlong 2022-06-22 16:04:07 +08:00
parent 559bcb1ebb
commit 1349431c63
5 changed files with 47 additions and 3 deletions

View File

@ -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;
}

View File

@ -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',

View File

@ -1115,6 +1115,7 @@ export default {
form_type: '類別'
},
dataset: {
dataset_sync: ' ( 資料同步中... )',
sheet_warn: '有多個 Sheet 頁,默認抽取第一個',
datalist: '數據集',
name: '數據集名稱',

View File

@ -1117,6 +1117,7 @@ export default {
form_type: '类别'
},
dataset: {
dataset_sync: ' ( 数据同步中... )',
sheet_warn: '有多个 Sheet 页,默认抽取第一个',
datalist: '数据集',
name: '数据集名称',

View File

@ -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 = {