Skip to content

Commit 1349431

Browse files
committed
feat: excel 替换数据显示'同步中'
1 parent 559bcb1 commit 1349431

File tree

5 files changed

+47
-3
lines changed

5 files changed

+47
-3
lines changed

backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import io.dataease.auth.annotation.DeCleaner;
99
import io.dataease.auth.api.dto.CurrentUserDto;
1010
import io.dataease.controller.request.chart.ChartExtRequest;
11+
import io.dataease.controller.sys.base.BaseGridRequest;
12+
import io.dataease.controller.sys.base.ConditionEntity;
1113
import io.dataease.dto.SysLogDTO;
1214
import io.dataease.ext.ExtDataSetGroupMapper;
1315
import io.dataease.ext.ExtDataSetTableMapper;
@@ -32,7 +34,6 @@
3234
import io.dataease.plugins.common.constants.DatasourceTypes;
3335
import io.dataease.plugins.common.dto.chart.ChartFieldCustomFilterDTO;
3436
import io.dataease.plugins.common.dto.datasource.TableField;
35-
import io.dataease.plugins.common.request.chart.ChartExtFilterRequest;
3637
import io.dataease.plugins.common.request.datasource.DatasourceRequest;
3738
import io.dataease.plugins.datasource.provider.Provider;
3839
import io.dataease.plugins.datasource.query.QueryProvider;
@@ -80,7 +81,6 @@
8081
import java.io.File;
8182
import java.io.FileOutputStream;
8283
import java.io.InputStream;
83-
import java.io.StringReader;
8484
import java.math.BigDecimal;
8585
import java.text.MessageFormat;
8686
import java.text.NumberFormat;
@@ -133,6 +133,8 @@ public class DataSetTableService {
133133
private SysAuthService sysAuthService;
134134
@Resource
135135
private ChartViewMapper chartViewMapper;
136+
@Resource
137+
private DataSetTableTaskLogService dataSetTableTaskLogService;
136138

137139
private static boolean isUpdatingDatasetTableStatus = false;
138140
private static final String lastUpdateTime = "${__last_update_time__}";
@@ -526,6 +528,7 @@ public Map<String, List<DatasetTableField>> getFieldsFromDE(DataSetTableRequest
526528
public Map<String, Object> getPreviewData(DataSetTableRequest dataSetTableRequest, Integer page, Integer pageSize,
527529
List<DatasetTableField> extFields) throws Exception {
528530
Map<String, Object> map = new HashMap<>();
531+
String sycnStatus = "";
529532
DatasetTableField datasetTableField = DatasetTableField.builder().tableId(dataSetTableRequest.getId())
530533
.checked(Boolean.TRUE).build();
531534
List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableField);
@@ -737,6 +740,20 @@ public Map<String, Object> getPreviewData(DataSetTableRequest dataSetTableReques
737740
logger.error(e.getMessage());
738741
DEException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage());
739742
}
743+
BaseGridRequest request = new BaseGridRequest();
744+
ConditionEntity entity2 = new ConditionEntity();
745+
entity2.setField("dataset_table_task_log.table_id");
746+
entity2.setOperator("eq");
747+
entity2.setValue(dataSetTableRequest.getId());
748+
List<ConditionEntity> conditionEntities = new ArrayList<>();
749+
conditionEntities.add(entity2);
750+
request.setConditions(conditionEntities);
751+
List<DataSetTaskLogDTO> dataSetTaskLogDTOS = dataSetTableTaskLogService.listTaskLog(request, "excel");
752+
if(CollectionUtils.isNotEmpty(dataSetTaskLogDTOS)){
753+
dataSetTaskLogDTOS.get(0).getStatus().equalsIgnoreCase(JobStatus.Underway.name());
754+
sycnStatus = dataSetTaskLogDTOS.get(0).getStatus();
755+
}
756+
740757
} else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "custom")) {
741758
if (datasetTable.getMode() == 0) {
742759
Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId());
@@ -902,6 +919,7 @@ public Map<String, Object> getPreviewData(DataSetTableRequest dataSetTableReques
902919
map.put("fields", fields);
903920
map.put("data", jsonArray);
904921
map.put("page", dataSetPreviewPage);
922+
map.put("sycnStatus", sycnStatus);
905923

906924
return map;
907925
}

frontend/src/lang/en.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1115,6 +1115,7 @@ export default {
11151115
form_type: 'From Type'
11161116
},
11171117
dataset: {
1118+
dataset_sync: ' ( Data sync... )',
11181119
sheet_warn: 'There are multiple sheet pages, and the first one is extracted by default',
11191120
datalist: 'Data Set',
11201121
name: 'DataSet Name',

frontend/src/lang/tw.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1115,6 +1115,7 @@ export default {
11151115
form_type: '類別'
11161116
},
11171117
dataset: {
1118+
dataset_sync: ' ( 資料同步中... )',
11181119
sheet_warn: '有多個 Sheet 頁,默認抽取第一個',
11191120
datalist: '數據集',
11201121
name: '數據集名稱',

frontend/src/lang/zh.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,6 +1117,7 @@ export default {
11171117
form_type: '类别'
11181118
},
11191119
dataset: {
1120+
dataset_sync: ' ( 数据同步中... )',
11201121
sheet_warn: '有多个 Sheet 页,默认抽取第一个',
11211122
datalist: '数据集',
11221123
name: '数据集名称',

frontend/src/views/dataset/data/ViewTable.vue

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
<span class="title-text" style="line-height: 26px;">
55
{{ table.name }}
66
</span>
7+
<span v-if="sycnStatus === 'Underway'" class="blue-color" style="line-height: 26px;">
8+
{{ $t('dataset.dataset_sync') }}
9+
</span>
710
<el-popover
811
placement="right-start"
912
width="400"
@@ -102,6 +105,8 @@ export default {
102105
},
103106
fields: [],
104107
data: [],
108+
sycnStatus: '',
109+
lastRequestComplete: true,
105110
page: {
106111
page: 1,
107112
pageSize: 1000,
@@ -132,7 +137,22 @@ export default {
132137
})
133138
},
134139
created() {
135-
140+
this.taskLogTimer = setInterval(() => {
141+
console.log(this.sycnStatus)
142+
console.log(this.lastRequestComplete)
143+
if (this.sycnStatus !== 'Underway') {
144+
return;
145+
}
146+
if (!this.lastRequestComplete) {
147+
return
148+
} else {
149+
this.lastRequestComplete = false
150+
}
151+
this.initPreviewData(this.page)
152+
}, 5000)
153+
},
154+
beforeDestroy() {
155+
clearInterval(this.taskLogTimer)
136156
},
137157
mounted() {
138158
this.initTable(this.param.id)
@@ -160,13 +180,16 @@ export default {
160180
this.fields = response.data.fields
161181
this.data = response.data.data
162182
this.page = response.data.page
183+
this.sycnStatus = response.data.sycnStatus
163184
if (response.data.status === 'warnning') {
164185
this.$warning(response.data.msg, 3000)
165186
}
166187
if (response.data.status === 'error') {
167188
this.$error(response.data.msg, 3000)
168189
}
190+
this.lastRequestComplete = true
169191
}).catch(response => {
192+
this.lastRequestComplete = true
170193
this.fields = []
171194
this.data = []
172195
this.page = {

0 commit comments

Comments
 (0)