dtable-statistic 4.0.12 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/calculator/workers/pivot-table-calculator-worker.js +15 -7
- package/es/components/dialog/chart-addition-edit-dialog.js +1 -0
- package/es/components/dialog/statistic-record-dialog/index.js +128 -51
- package/es/constants/event-types.js +4 -1
- package/es/dashboard.js +26 -15
- package/es/desktop-dashboard.js +2 -0
- package/es/model/generic-model.js +2 -2
- package/es/stat-editor/index.js +1 -0
- package/es/stat-list/index.js +6 -1
- package/es/stat-view/pie-chart.js +0 -2
- package/es/stat-view/pivot-table/index.js +2 -2
- package/es/stat-view/pivot-table/two-dimension-table.js +5 -93
- package/es/stat-view/ring-chart.js +0 -2
- package/es/utils/common-utils.js +25 -2
- package/es/utils/export-table-utils.js +510 -311
- package/es/utils/pivot-table.js +91 -0
- package/es/utils/sql-utils.js +18 -0
- package/package.json +3 -3
|
@@ -5,7 +5,8 @@ import { getOption, getCollaborator, getNumberDisplayString, isNumber, CellType,
|
|
|
5
5
|
import { isCellValueChanged } from './cell-value';
|
|
6
6
|
import { getSelectColumnOptions, getDateColumnFormat } from './column';
|
|
7
7
|
import { getKnownCreatorByEmail } from './collaborator';
|
|
8
|
-
import { EMPTY_NAME } from '../constants';
|
|
8
|
+
import { EMPTY_NAME, STATISTICS_COUNT_TYPE } from '../constants';
|
|
9
|
+
import { getPivotTableSummaryTotal } from './pivot-table';
|
|
9
10
|
var isEmptyName = function isEmptyName(title) {
|
|
10
11
|
return title === null || title === '';
|
|
11
12
|
};
|
|
@@ -96,276 +97,8 @@ var getValidValueForColumn = function getValidValueForColumn(column, value) {
|
|
|
96
97
|
if (type === CellType.TEXT) return value ? value : '';
|
|
97
98
|
return '';
|
|
98
99
|
};
|
|
99
|
-
var
|
|
100
|
-
var
|
|
101
|
-
statisticalResult = _ref3.statisticalResult;
|
|
102
|
-
var pivotResult = statisticalResult.pivotResult,
|
|
103
|
-
groupbyColumn = statisticalResult.groupbyColumn,
|
|
104
|
-
statisticTableColumns = statisticalResult.statisticTableColumns;
|
|
105
|
-
if (!groupbyColumn) return {};
|
|
106
|
-
var nameColumn = TableUtils.getTableColumnByName(updateTable, groupbyColumn.name);
|
|
107
|
-
if (!nameColumn) return {};
|
|
108
|
-
var pivot_rows = pivotResult.pivot_rows,
|
|
109
|
-
pivot_columns = pivotResult.pivot_columns;
|
|
110
|
-
var tableRows = updateTable.rows;
|
|
111
|
-
var columnMap = {};
|
|
112
|
-
var newRows = [];
|
|
113
|
-
var updatedRows = {};
|
|
114
|
-
var oldRows = {};
|
|
115
|
-
var rowIds = [];
|
|
116
|
-
|
|
117
|
-
// one dimension table no summary columns
|
|
118
|
-
if (pivot_columns.length < 2) {
|
|
119
|
-
columnMap['total'] = TableUtils.getTableColumnByName(updateTable, intl.get('Total'));
|
|
120
|
-
|
|
121
|
-
// updated rows
|
|
122
|
-
pivot_rows.forEach(function (item) {
|
|
123
|
-
var name = item.name,
|
|
124
|
-
original_name = item.original_name,
|
|
125
|
-
total = item.total;
|
|
126
|
-
var groupName = isEmptyName(original_name) ? intl.get(EMPTY_NAME) : name;
|
|
127
|
-
var row = tableRows.find(function (row) {
|
|
128
|
-
return row[nameColumn.key] === groupName;
|
|
129
|
-
});
|
|
130
|
-
var totalColumn = columnMap['total'];
|
|
131
|
-
if (row) {
|
|
132
|
-
// update old row
|
|
133
|
-
var updateRow = {};
|
|
134
|
-
var oldRow = {};
|
|
135
|
-
var validTotalCellValue = getValidValueForColumn(totalColumn, total.total);
|
|
136
|
-
if (totalColumn && isCellValueChanged(row[totalColumn.key], validTotalCellValue, totalColumn.type)) {
|
|
137
|
-
updateRow[totalColumn.key] = validTotalCellValue;
|
|
138
|
-
oldRow[totalColumn.key] = row[totalColumn.key];
|
|
139
|
-
}
|
|
140
|
-
if (Object.keys(updateRow).length > 0) {
|
|
141
|
-
var rowId = row._id;
|
|
142
|
-
rowIds.push(rowId);
|
|
143
|
-
updatedRows[rowId] = updateRow;
|
|
144
|
-
oldRows[rowId] = oldRow;
|
|
145
|
-
}
|
|
146
|
-
} else {
|
|
147
|
-
// insert new row
|
|
148
|
-
var newRow = {};
|
|
149
|
-
newRow[nameColumn.key] = groupName;
|
|
150
|
-
if (totalColumn) {
|
|
151
|
-
newRow[totalColumn.key] = getValidValueForColumn(totalColumn, total.total);
|
|
152
|
-
}
|
|
153
|
-
newRows.push(newRow);
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
return {
|
|
157
|
-
newRows: newRows,
|
|
158
|
-
updatedRows: updatedRows,
|
|
159
|
-
rowIds: rowIds,
|
|
160
|
-
oldRows: oldRows
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// one dimension table with summary columns
|
|
165
|
-
Array.isArray(pivot_columns) && pivot_columns.forEach(function (item) {
|
|
166
|
-
var key = item.key;
|
|
167
|
-
var column = statisticTableColumns.find(function (column) {
|
|
168
|
-
return column.key === key;
|
|
169
|
-
});
|
|
170
|
-
if (column) {
|
|
171
|
-
columnMap[key] = TableUtils.getTableColumnByName(updateTable, column.name);
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
// updated rows
|
|
176
|
-
var nameColumnKey = nameColumn.key;
|
|
177
|
-
pivot_rows.forEach(function (item) {
|
|
178
|
-
var name = item.name,
|
|
179
|
-
original_name = item.original_name,
|
|
180
|
-
total = item.total;
|
|
181
|
-
var groupName = isEmptyName(original_name) ? intl.get(EMPTY_NAME) : name;
|
|
182
|
-
var row = tableRows.find(function (row) {
|
|
183
|
-
return row[nameColumnKey] === groupName;
|
|
184
|
-
});
|
|
185
|
-
if (row) {
|
|
186
|
-
var updateRow = {};
|
|
187
|
-
var oldRow = {};
|
|
188
|
-
Array.isArray(pivot_columns) && pivot_columns.forEach(function (item) {
|
|
189
|
-
var key = item.key;
|
|
190
|
-
var column = columnMap[key];
|
|
191
|
-
var totalCellValue = getValidValueForColumn(column, total[key]);
|
|
192
|
-
if (column && isCellValueChanged(row[column.key], totalCellValue, column.type)) {
|
|
193
|
-
updateRow[column.key] = totalCellValue;
|
|
194
|
-
oldRow[column.key] = row[column.key];
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
if (Object.keys(updateRow).length > 0) {
|
|
198
|
-
var rowId = row._id;
|
|
199
|
-
rowIds.push(rowId);
|
|
200
|
-
updatedRows[rowId] = updateRow;
|
|
201
|
-
oldRows[rowId] = oldRow;
|
|
202
|
-
}
|
|
203
|
-
} else {
|
|
204
|
-
var newRow = _defineProperty({}, nameColumn.key, groupName);
|
|
205
|
-
Array.isArray(pivot_columns) && pivot_columns.forEach(function (item) {
|
|
206
|
-
var key = item.key;
|
|
207
|
-
var column = columnMap[key];
|
|
208
|
-
if (column) {
|
|
209
|
-
var totalCellValue = getValidValueForColumn(column, total[key]);
|
|
210
|
-
newRow[column.key] = totalCellValue;
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
newRows.push(newRow);
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
return {
|
|
217
|
-
newRows: newRows,
|
|
218
|
-
updatedRows: updatedRows,
|
|
219
|
-
rowIds: rowIds,
|
|
220
|
-
oldRows: oldRows
|
|
221
|
-
};
|
|
222
|
-
};
|
|
223
|
-
var getUpdatedTwoDimensionStatisticTableResultToTable = function getUpdatedTwoDimensionStatisticTableResultToTable(_ref4) {
|
|
224
|
-
var updateTable = _ref4.updateTable,
|
|
225
|
-
statisticalResult = _ref4.statisticalResult;
|
|
226
|
-
var pivotResult = statisticalResult.pivotResult,
|
|
227
|
-
groupbyColumn = statisticalResult.groupbyColumn;
|
|
228
|
-
var nameColumn = TableUtils.getTableColumnByName(updateTable, groupbyColumn.name);
|
|
229
|
-
if (!nameColumn) return {};
|
|
230
|
-
var pivot_rows = pivotResult.pivot_rows,
|
|
231
|
-
pivot_columns = pivotResult.pivot_columns;
|
|
232
|
-
var tableRows = updateTable.rows;
|
|
233
|
-
var columnMap = {};
|
|
234
|
-
var newRows = [];
|
|
235
|
-
var updatedRows = {};
|
|
236
|
-
var rowIds = [];
|
|
237
|
-
var oldRows = {};
|
|
238
|
-
|
|
239
|
-
// updated columns
|
|
240
|
-
Array.isArray(pivot_columns) && pivot_columns.forEach(function (item) {
|
|
241
|
-
var key = item.key,
|
|
242
|
-
original_key = item.original_key;
|
|
243
|
-
var columnName = isEmptyName(original_key) ? intl.get(EMPTY_NAME) : key;
|
|
244
|
-
columnMap[columnName] = TableUtils.getTableColumnByName(updateTable, columnName);
|
|
245
|
-
});
|
|
246
|
-
columnMap['total'] = TableUtils.getTableColumnByName(updateTable, intl.get('Total'));
|
|
247
|
-
|
|
248
|
-
// updated rows
|
|
249
|
-
var _loop = function _loop(i) {
|
|
250
|
-
var pivotRow = pivot_rows[i];
|
|
251
|
-
var name = pivotRow.name,
|
|
252
|
-
original_name = pivotRow.original_name,
|
|
253
|
-
cells = pivotRow.cells,
|
|
254
|
-
total = pivotRow.total;
|
|
255
|
-
if (isEmptyName(original_name)) {
|
|
256
|
-
name = intl.get(EMPTY_NAME);
|
|
257
|
-
}
|
|
258
|
-
var nameColumnKey = nameColumn.key;
|
|
259
|
-
var row = tableRows.find(function (row) {
|
|
260
|
-
return row[nameColumnKey] === name;
|
|
261
|
-
});
|
|
262
|
-
var totalColumn = columnMap['total'];
|
|
263
|
-
if (row) {
|
|
264
|
-
// update old row
|
|
265
|
-
var updatedRow = {};
|
|
266
|
-
var oldRow = {}; // op used
|
|
267
|
-
var validTotalCellValue = getValidValueForColumn(totalColumn, total);
|
|
268
|
-
if (totalColumn && isCellValueChanged(row[totalColumn.key], validTotalCellValue, totalColumn.type)) {
|
|
269
|
-
updatedRow[totalColumn.key] = validTotalCellValue;
|
|
270
|
-
oldRow[totalColumn.key] = row[totalColumn.key];
|
|
271
|
-
}
|
|
272
|
-
Object.keys(cells).forEach(function (key) {
|
|
273
|
-
var columnName = isEmptyName(key) ? intl.get(EMPTY_NAME) : key;
|
|
274
|
-
var column = columnMap[columnName];
|
|
275
|
-
var validCellValue = getValidValueForColumn(column, cells[key].total);
|
|
276
|
-
if (column && isCellValueChanged(row[column.key], validCellValue, column.type)) {
|
|
277
|
-
updatedRow[column.key] = validCellValue;
|
|
278
|
-
oldRow[column.key] = row[column.key];
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
if (Object.keys(updatedRow).length > 0) {
|
|
282
|
-
var rowId = row._id;
|
|
283
|
-
rowIds.push(rowId);
|
|
284
|
-
updatedRows[rowId] = updatedRow;
|
|
285
|
-
oldRows[rowId] = oldRow;
|
|
286
|
-
}
|
|
287
|
-
} else {
|
|
288
|
-
// insert new row
|
|
289
|
-
var newRow = {};
|
|
290
|
-
newRow[nameColumnKey] = name;
|
|
291
|
-
if (totalColumn) {
|
|
292
|
-
newRow[totalColumn.key] = getValidValueForColumn(totalColumn, name);
|
|
293
|
-
}
|
|
294
|
-
Object.keys(cells).forEach(function (key) {
|
|
295
|
-
var columnName = isEmptyName(key) ? intl.get(EMPTY_NAME) : key;
|
|
296
|
-
var column = columnMap[columnName];
|
|
297
|
-
if (column) {
|
|
298
|
-
newRow[column.key] = getValidValueForColumn(column, cells[key].total);
|
|
299
|
-
}
|
|
300
|
-
});
|
|
301
|
-
if (Object.keys(newRow).length > 0) {
|
|
302
|
-
newRows.push(newRow);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
};
|
|
306
|
-
for (var i = 0; i < pivot_rows.length; i++) {
|
|
307
|
-
_loop(i);
|
|
308
|
-
}
|
|
309
|
-
return {
|
|
310
|
-
newRows: newRows,
|
|
311
|
-
updatedRows: updatedRows,
|
|
312
|
-
oldRows: oldRows,
|
|
313
|
-
rowIds: rowIds
|
|
314
|
-
};
|
|
315
|
-
};
|
|
316
|
-
|
|
317
|
-
/**
|
|
318
|
-
* statisticalResult: {
|
|
319
|
-
* columnGroupbyColumn: null,
|
|
320
|
-
* groupbyColumn: null,
|
|
321
|
-
* pivotResult: {
|
|
322
|
-
* pivot_columns: [],
|
|
323
|
-
* pivot_rows: [
|
|
324
|
-
* { name: 'xxx', original_name: 'xxx', total }
|
|
325
|
-
* ]
|
|
326
|
-
* },
|
|
327
|
-
* statisticTableColumns: null,
|
|
328
|
-
* summaryColumn: null,
|
|
329
|
-
* }
|
|
330
|
-
*
|
|
331
|
-
* @return {
|
|
332
|
-
* columns: [
|
|
333
|
-
* {
|
|
334
|
-
* name: xxx,
|
|
335
|
-
* type: CellType.DATE
|
|
336
|
-
* data: { format }
|
|
337
|
-
* }, {
|
|
338
|
-
* name: xxx,
|
|
339
|
-
* type: CellType.NUMBER
|
|
340
|
-
* data: { decimal, thousands, precision, enable_precision, format }
|
|
341
|
-
* },
|
|
342
|
-
* ],
|
|
343
|
-
* rows: [
|
|
344
|
-
* { columnName: value, xxx },
|
|
345
|
-
* ]
|
|
346
|
-
* }
|
|
347
|
-
*/
|
|
348
|
-
export var exportStatisticToTable = function exportStatisticToTable(_ref5) {
|
|
349
|
-
var statisticalResult = _ref5.statisticalResult;
|
|
350
|
-
var pivotResult = statisticalResult.pivotResult,
|
|
351
|
-
groupbyColumn = statisticalResult.groupbyColumn,
|
|
352
|
-
columnGroupbyColumn = statisticalResult.columnGroupbyColumn;
|
|
353
|
-
var pivot_columns = pivotResult.pivot_columns;
|
|
354
|
-
if (!groupbyColumn) return {};
|
|
355
|
-
|
|
356
|
-
// two dimension table
|
|
357
|
-
if (columnGroupbyColumn) {
|
|
358
|
-
return getTwoDimensionStatisticTableResultToTable({
|
|
359
|
-
statisticalResult: statisticalResult
|
|
360
|
-
});
|
|
361
|
-
}
|
|
362
|
-
if (!Array.isArray(pivot_columns)) return {};
|
|
363
|
-
return getOneDimensionStatisticTableResultToTable({
|
|
364
|
-
statisticalResult: statisticalResult
|
|
365
|
-
});
|
|
366
|
-
};
|
|
367
|
-
export var getOneDimensionStatisticTableResultToTable = function getOneDimensionStatisticTableResultToTable(_ref6) {
|
|
368
|
-
var statisticalResult = _ref6.statisticalResult;
|
|
100
|
+
var exportOneDimensionToTable = function exportOneDimensionToTable(_ref3) {
|
|
101
|
+
var statisticalResult = _ref3.statisticalResult;
|
|
369
102
|
var pivotResult = statisticalResult.pivotResult,
|
|
370
103
|
groupbyColumn = statisticalResult.groupbyColumn,
|
|
371
104
|
statisticTableColumns = statisticalResult.statisticTableColumns,
|
|
@@ -393,8 +126,8 @@ export var getOneDimensionStatisticTableResultToTable = function getOneDimension
|
|
|
393
126
|
var isIncludeHour = false;
|
|
394
127
|
if (summaryColumn) {
|
|
395
128
|
if (isSummaryDateColumn(summaryColumn)) {
|
|
396
|
-
var
|
|
397
|
-
format =
|
|
129
|
+
var _ref4 = summaryColumn.data || {},
|
|
130
|
+
format = _ref4.format;
|
|
398
131
|
columnData = {
|
|
399
132
|
format: format
|
|
400
133
|
};
|
|
@@ -406,12 +139,12 @@ export var getOneDimensionStatisticTableResultToTable = function getOneDimension
|
|
|
406
139
|
such as the data attribute in the function column, which contains other content that is not
|
|
407
140
|
useful for creating a new column
|
|
408
141
|
*/
|
|
409
|
-
var
|
|
410
|
-
decimal =
|
|
411
|
-
thousands =
|
|
412
|
-
precision =
|
|
413
|
-
enable_precision =
|
|
414
|
-
_format =
|
|
142
|
+
var _ref5 = summaryColumn.data || {},
|
|
143
|
+
decimal = _ref5.decimal,
|
|
144
|
+
thousands = _ref5.thousands,
|
|
145
|
+
precision = _ref5.precision,
|
|
146
|
+
enable_precision = _ref5.enable_precision,
|
|
147
|
+
_format = _ref5.format;
|
|
415
148
|
columnData = {
|
|
416
149
|
decimal: decimal,
|
|
417
150
|
thousands: thousands,
|
|
@@ -432,7 +165,7 @@ export var getOneDimensionStatisticTableResultToTable = function getOneDimension
|
|
|
432
165
|
|
|
433
166
|
// generator rows
|
|
434
167
|
pivot_rows.forEach(function (item) {
|
|
435
|
-
var
|
|
168
|
+
var _newRow;
|
|
436
169
|
var name = item.name,
|
|
437
170
|
original_name = item.original_name,
|
|
438
171
|
total = item.total;
|
|
@@ -441,7 +174,7 @@ export var getOneDimensionStatisticTableResultToTable = function getOneDimension
|
|
|
441
174
|
if (_isDateSummaryColumn && cellValue) {
|
|
442
175
|
cellValue = isIncludeHour ? dayjs(cellValue).format('YYYY-MM-DD HH:mm') : dayjs(cellValue).format('YYYY-MM-DD');
|
|
443
176
|
}
|
|
444
|
-
var newRow = (
|
|
177
|
+
var newRow = (_newRow = {}, _defineProperty(_newRow, groupbyColumn.name, groupName), _defineProperty(_newRow, intl.get('Total'), cellValue), _newRow);
|
|
445
178
|
rows.push(newRow);
|
|
446
179
|
});
|
|
447
180
|
return {
|
|
@@ -462,8 +195,8 @@ export var getOneDimensionStatisticTableResultToTable = function getOneDimension
|
|
|
462
195
|
var columnType = CellType.NUMBER;
|
|
463
196
|
if (isSummaryDateColumn(column)) {
|
|
464
197
|
columnType = CellType.DATE;
|
|
465
|
-
var
|
|
466
|
-
_format2 =
|
|
198
|
+
var _ref6 = column.data || {},
|
|
199
|
+
_format2 = _ref6.format;
|
|
467
200
|
_columnData = {
|
|
468
201
|
format: _format2
|
|
469
202
|
};
|
|
@@ -473,12 +206,12 @@ export var getOneDimensionStatisticTableResultToTable = function getOneDimension
|
|
|
473
206
|
such as the data attribute in the function column, which contains other content that is not
|
|
474
207
|
useful for creating a new column
|
|
475
208
|
*/
|
|
476
|
-
var
|
|
477
|
-
_decimal =
|
|
478
|
-
_thousands =
|
|
479
|
-
_precision =
|
|
480
|
-
_enable_precision =
|
|
481
|
-
_format3 =
|
|
209
|
+
var _ref7 = column.data || {},
|
|
210
|
+
_decimal = _ref7.decimal,
|
|
211
|
+
_thousands = _ref7.thousands,
|
|
212
|
+
_precision = _ref7.precision,
|
|
213
|
+
_enable_precision = _ref7.enable_precision,
|
|
214
|
+
_format3 = _ref7.format;
|
|
482
215
|
_columnData = {
|
|
483
216
|
decimal: _decimal,
|
|
484
217
|
thousands: _thousands,
|
|
@@ -505,12 +238,14 @@ export var getOneDimensionStatisticTableResultToTable = function getOneDimension
|
|
|
505
238
|
var groupName = isEmptyName(original_name) ? intl.get(EMPTY_NAME) : name;
|
|
506
239
|
var newRow = _defineProperty({}, groupbyColumn.name, groupName);
|
|
507
240
|
Array.isArray(pivot_columns) && pivot_columns.forEach(function (item) {
|
|
508
|
-
var key = item.key
|
|
241
|
+
var key = item.key,
|
|
242
|
+
method = item.method;
|
|
509
243
|
var column = columnMap[key];
|
|
244
|
+
var cellValueKey = key + method;
|
|
510
245
|
var name = column.name,
|
|
511
246
|
type = column.type,
|
|
512
247
|
data = column.data;
|
|
513
|
-
var cellValue = total[
|
|
248
|
+
var cellValue = total[cellValueKey];
|
|
514
249
|
if (type === CellType.DATE && cellValue) {
|
|
515
250
|
var dateFormat = data && data.format && data.format.indexOf('HH:mm') > -1 ? 'YYYY-MM-DD HH:mm' : 'YYYY-MM-DD';
|
|
516
251
|
cellValue = dayjs(cellValue).format(dateFormat);
|
|
@@ -524,8 +259,8 @@ export var getOneDimensionStatisticTableResultToTable = function getOneDimension
|
|
|
524
259
|
rows: rows
|
|
525
260
|
};
|
|
526
261
|
};
|
|
527
|
-
|
|
528
|
-
var statisticalResult =
|
|
262
|
+
var exportTwoDimensionToTable = function exportTwoDimensionToTable(_ref8) {
|
|
263
|
+
var statisticalResult = _ref8.statisticalResult;
|
|
529
264
|
var pivotResult = statisticalResult.pivotResult,
|
|
530
265
|
groupbyColumn = statisticalResult.groupbyColumn,
|
|
531
266
|
summaryColumn = statisticalResult.summaryColumn;
|
|
@@ -550,8 +285,8 @@ export var getTwoDimensionStatisticTableResultToTable = function getTwoDimension
|
|
|
550
285
|
if (summaryColumn) {
|
|
551
286
|
if (isSummaryDateColumn(summaryColumn)) {
|
|
552
287
|
_isDateSummaryColumn = true;
|
|
553
|
-
var
|
|
554
|
-
format =
|
|
288
|
+
var _ref9 = summaryColumn.data || {},
|
|
289
|
+
format = _ref9.format;
|
|
555
290
|
columnData = {
|
|
556
291
|
format: format
|
|
557
292
|
};
|
|
@@ -562,12 +297,12 @@ export var getTwoDimensionStatisticTableResultToTable = function getTwoDimension
|
|
|
562
297
|
such as the data attribute in the function column, which contains other content that is not
|
|
563
298
|
useful for creating a new column
|
|
564
299
|
*/
|
|
565
|
-
var
|
|
566
|
-
decimal =
|
|
567
|
-
thousands =
|
|
568
|
-
precision =
|
|
569
|
-
enable_precision =
|
|
570
|
-
_format4 =
|
|
300
|
+
var _ref10 = summaryColumn.data || {},
|
|
301
|
+
decimal = _ref10.decimal,
|
|
302
|
+
thousands = _ref10.thousands,
|
|
303
|
+
precision = _ref10.precision,
|
|
304
|
+
enable_precision = _ref10.enable_precision,
|
|
305
|
+
_format4 = _ref10.format;
|
|
571
306
|
columnData = {
|
|
572
307
|
decimal: decimal,
|
|
573
308
|
thousands: thousands,
|
|
@@ -628,23 +363,487 @@ export var getTwoDimensionStatisticTableResultToTable = function getTwoDimension
|
|
|
628
363
|
rows: rows
|
|
629
364
|
};
|
|
630
365
|
};
|
|
631
|
-
|
|
632
|
-
var
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
366
|
+
var getTwoDimensionWithSummaryColumns = function getTwoDimensionWithSummaryColumns(_ref11) {
|
|
367
|
+
var statisticalResult = _ref11.statisticalResult;
|
|
368
|
+
var pivotResult = statisticalResult.pivotResult,
|
|
369
|
+
groupbyColumn = statisticalResult.groupbyColumn;
|
|
370
|
+
var pivot_rows = pivotResult.pivot_rows,
|
|
371
|
+
pivot_columns = pivotResult.pivot_columns,
|
|
372
|
+
pivot_summary_multiple_columns = pivotResult.pivot_summary_multiple_columns,
|
|
373
|
+
formulaRows = pivotResult.formulaRows,
|
|
374
|
+
isSqlQuery = pivotResult.isSqlQuery;
|
|
375
|
+
var summaryColumns = pivot_summary_multiple_columns.filter(Boolean);
|
|
376
|
+
if (!groupbyColumn || summaryColumns.length === 0 || !Array.isArray(pivot_columns) || pivot_columns.length === 0 || !Array.isArray(pivot_rows) || pivot_rows.length === 0) return {};
|
|
377
|
+
var groupbyColumnName = groupbyColumn.name;
|
|
378
|
+
var firstSummaryColumn = summaryColumns[0];
|
|
379
|
+
var columns = [{
|
|
380
|
+
// name column
|
|
381
|
+
key: '0000',
|
|
382
|
+
type: CellType.TEXT,
|
|
383
|
+
name: groupbyColumnName,
|
|
384
|
+
data: null
|
|
385
|
+
}];
|
|
386
|
+
var tmpColumns = [];
|
|
387
|
+
pivot_columns.forEach(function (pivotColumn) {
|
|
388
|
+
var pivotColumnKey = pivotColumn.key,
|
|
389
|
+
original_key = pivotColumn.original_key;
|
|
390
|
+
var pivotColumnColumnName = isEmptyName(original_key) ? intl.get(EMPTY_NAME) : pivotColumnKey;
|
|
391
|
+
summaryColumns.forEach(function (summaryColumn) {
|
|
392
|
+
var key = summaryColumn.key,
|
|
393
|
+
type = summaryColumn.type,
|
|
394
|
+
sqlKey = summaryColumn.sqlKey,
|
|
395
|
+
column_name = summaryColumn.column_name,
|
|
396
|
+
data = summaryColumn.data,
|
|
397
|
+
method = summaryColumn.method;
|
|
398
|
+
var newColumnName = "".concat(pivotColumnColumnName, "-").concat(column_name);
|
|
399
|
+
columns.push({
|
|
400
|
+
// just support number column
|
|
401
|
+
type: CellType.NUMBER,
|
|
402
|
+
name: newColumnName,
|
|
403
|
+
data: data
|
|
404
|
+
});
|
|
405
|
+
tmpColumns.push({
|
|
406
|
+
name: newColumnName,
|
|
407
|
+
pivotColumnKey: pivotColumnKey,
|
|
408
|
+
key: key,
|
|
409
|
+
type: type,
|
|
410
|
+
sqlKey: sqlKey,
|
|
411
|
+
method: method
|
|
412
|
+
});
|
|
413
|
+
});
|
|
414
|
+
});
|
|
415
|
+
columns.push({
|
|
416
|
+
type: CellType.NUMBER,
|
|
417
|
+
name: intl.get('Total'),
|
|
418
|
+
data: firstSummaryColumn.data
|
|
419
|
+
});
|
|
420
|
+
var rows = [];
|
|
421
|
+
pivot_rows.forEach(function (pivotRow) {
|
|
422
|
+
var name = pivotRow.name,
|
|
423
|
+
original_name = pivotRow.original_name,
|
|
424
|
+
cells = pivotRow.cells;
|
|
425
|
+
if (isEmptyName(original_name)) {
|
|
426
|
+
name = intl.get(EMPTY_NAME);
|
|
427
|
+
}
|
|
428
|
+
var newRow = _defineProperty({}, groupbyColumnName, name);
|
|
429
|
+
var total = 0;
|
|
430
|
+
tmpColumns.forEach(function (tmpColumn) {
|
|
431
|
+
var name = tmpColumn.name,
|
|
432
|
+
pivotColumnKey = tmpColumn.pivotColumnKey,
|
|
433
|
+
key = tmpColumn.key,
|
|
434
|
+
type = tmpColumn.type,
|
|
435
|
+
sqlKey = tmpColumn.sqlKey,
|
|
436
|
+
method = tmpColumn.method;
|
|
437
|
+
var cell = cells && cells[pivotColumnKey];
|
|
438
|
+
var cellRows = cell && cell.rows;
|
|
439
|
+
if (!Array.isArray(cellRows) || cellRows.length === 0) {
|
|
440
|
+
newRow[name] = 0;
|
|
441
|
+
} else {
|
|
442
|
+
var cellValue = getPivotTableSummaryTotal(type, key, sqlKey, STATISTICS_COUNT_TYPE.ADVANCED, method, cellRows, formulaRows, isSqlQuery);
|
|
443
|
+
newRow[name] = cellValue;
|
|
444
|
+
total += cellValue;
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
newRow[intl.get('Total')] = total;
|
|
448
|
+
rows.push(newRow);
|
|
449
|
+
});
|
|
450
|
+
return {
|
|
451
|
+
columns: columns,
|
|
452
|
+
rows: rows
|
|
453
|
+
};
|
|
454
|
+
};
|
|
455
|
+
var exportTwoDimensionWithSummaryColumnsToTable = function exportTwoDimensionWithSummaryColumnsToTable(_ref12) {
|
|
456
|
+
var statisticalResult = _ref12.statisticalResult;
|
|
457
|
+
return getTwoDimensionWithSummaryColumns({
|
|
458
|
+
statisticalResult: statisticalResult
|
|
459
|
+
});
|
|
460
|
+
};
|
|
461
|
+
var updatedOneDimensionToTable = function updatedOneDimensionToTable(_ref13) {
|
|
462
|
+
var updateTable = _ref13.updateTable,
|
|
463
|
+
statisticalResult = _ref13.statisticalResult;
|
|
464
|
+
var pivotResult = statisticalResult.pivotResult,
|
|
465
|
+
groupbyColumn = statisticalResult.groupbyColumn,
|
|
466
|
+
statisticTableColumns = statisticalResult.statisticTableColumns;
|
|
467
|
+
if (!groupbyColumn) return {};
|
|
468
|
+
var nameColumn = TableUtils.getTableColumnByName(updateTable, groupbyColumn.name);
|
|
469
|
+
if (!nameColumn) return {};
|
|
470
|
+
var pivot_rows = pivotResult.pivot_rows,
|
|
471
|
+
pivot_columns = pivotResult.pivot_columns;
|
|
472
|
+
var tableRows = updateTable.rows;
|
|
473
|
+
var columnMap = {};
|
|
474
|
+
var newRows = [];
|
|
475
|
+
var updatedRows = {};
|
|
476
|
+
var oldRows = {};
|
|
477
|
+
var rowIds = [];
|
|
478
|
+
|
|
479
|
+
// one dimension table no summary columns
|
|
480
|
+
if (pivot_columns.length < 2) {
|
|
481
|
+
columnMap['total'] = TableUtils.getTableColumnByName(updateTable, intl.get('Total'));
|
|
482
|
+
|
|
483
|
+
// updated rows
|
|
484
|
+
pivot_rows.forEach(function (item) {
|
|
485
|
+
var name = item.name,
|
|
486
|
+
original_name = item.original_name,
|
|
487
|
+
total = item.total;
|
|
488
|
+
var groupName = isEmptyName(original_name) ? intl.get(EMPTY_NAME) : name;
|
|
489
|
+
var row = tableRows.find(function (row) {
|
|
490
|
+
return row[nameColumn.key] === groupName;
|
|
491
|
+
});
|
|
492
|
+
var totalColumn = columnMap['total'];
|
|
493
|
+
if (row) {
|
|
494
|
+
// update old row
|
|
495
|
+
var updateRow = {};
|
|
496
|
+
var oldRow = {};
|
|
497
|
+
var validTotalCellValue = getValidValueForColumn(totalColumn, total.total);
|
|
498
|
+
if (totalColumn && isCellValueChanged(row[totalColumn.key], validTotalCellValue, totalColumn.type)) {
|
|
499
|
+
updateRow[totalColumn.key] = validTotalCellValue;
|
|
500
|
+
oldRow[totalColumn.key] = row[totalColumn.key];
|
|
501
|
+
}
|
|
502
|
+
if (Object.keys(updateRow).length > 0) {
|
|
503
|
+
var rowId = row._id;
|
|
504
|
+
rowIds.push(rowId);
|
|
505
|
+
updatedRows[rowId] = updateRow;
|
|
506
|
+
oldRows[rowId] = oldRow;
|
|
507
|
+
}
|
|
508
|
+
} else {
|
|
509
|
+
// insert new row
|
|
510
|
+
var newRow = {};
|
|
511
|
+
newRow[nameColumn.key] = groupName;
|
|
512
|
+
if (totalColumn) {
|
|
513
|
+
newRow[totalColumn.key] = getValidValueForColumn(totalColumn, total.total);
|
|
514
|
+
}
|
|
515
|
+
newRows.push(newRow);
|
|
516
|
+
}
|
|
517
|
+
});
|
|
518
|
+
return {
|
|
519
|
+
newRows: newRows,
|
|
520
|
+
updatedRows: updatedRows,
|
|
521
|
+
rowIds: rowIds,
|
|
522
|
+
oldRows: oldRows
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
// one dimension table with summary columns
|
|
527
|
+
Array.isArray(pivot_columns) && pivot_columns.forEach(function (item) {
|
|
528
|
+
var key = item.key;
|
|
529
|
+
var column = statisticTableColumns.find(function (column) {
|
|
530
|
+
return column.key === key;
|
|
531
|
+
});
|
|
532
|
+
if (column) {
|
|
533
|
+
columnMap[key] = TableUtils.getTableColumnByName(updateTable, column.name);
|
|
534
|
+
}
|
|
535
|
+
});
|
|
536
|
+
|
|
537
|
+
// updated rows
|
|
538
|
+
var nameColumnKey = nameColumn.key;
|
|
539
|
+
pivot_rows.forEach(function (item) {
|
|
540
|
+
var name = item.name,
|
|
541
|
+
original_name = item.original_name,
|
|
542
|
+
total = item.total;
|
|
543
|
+
var groupName = isEmptyName(original_name) ? intl.get(EMPTY_NAME) : name;
|
|
544
|
+
var row = tableRows.find(function (row) {
|
|
545
|
+
return row[nameColumnKey] === groupName;
|
|
546
|
+
});
|
|
547
|
+
if (row) {
|
|
548
|
+
var updateRow = {};
|
|
549
|
+
var oldRow = {};
|
|
550
|
+
Array.isArray(pivot_columns) && pivot_columns.forEach(function (item) {
|
|
551
|
+
var key = item.key,
|
|
552
|
+
method = item.method;
|
|
553
|
+
var column = columnMap[key];
|
|
554
|
+
var cellValueKey = key + method;
|
|
555
|
+
var totalCellValue = getValidValueForColumn(column, total[cellValueKey]);
|
|
556
|
+
if (column && isCellValueChanged(row[column.key], totalCellValue, column.type)) {
|
|
557
|
+
updateRow[column.key] = totalCellValue;
|
|
558
|
+
oldRow[column.key] = row[column.key];
|
|
559
|
+
}
|
|
560
|
+
});
|
|
561
|
+
if (Object.keys(updateRow).length > 0) {
|
|
562
|
+
var rowId = row._id;
|
|
563
|
+
rowIds.push(rowId);
|
|
564
|
+
updatedRows[rowId] = updateRow;
|
|
565
|
+
oldRows[rowId] = oldRow;
|
|
566
|
+
}
|
|
567
|
+
} else {
|
|
568
|
+
var newRow = _defineProperty({}, nameColumn.key, groupName);
|
|
569
|
+
Array.isArray(pivot_columns) && pivot_columns.forEach(function (item) {
|
|
570
|
+
var key = item.key,
|
|
571
|
+
method = item.method;
|
|
572
|
+
var cellValueKey = key + method;
|
|
573
|
+
var column = columnMap[key];
|
|
574
|
+
if (column) {
|
|
575
|
+
var totalCellValue = getValidValueForColumn(column, total[cellValueKey]);
|
|
576
|
+
newRow[column.key] = totalCellValue;
|
|
577
|
+
}
|
|
578
|
+
});
|
|
579
|
+
newRows.push(newRow);
|
|
580
|
+
}
|
|
581
|
+
});
|
|
582
|
+
return {
|
|
583
|
+
newRows: newRows,
|
|
584
|
+
updatedRows: updatedRows,
|
|
585
|
+
rowIds: rowIds,
|
|
586
|
+
oldRows: oldRows
|
|
587
|
+
};
|
|
588
|
+
};
|
|
589
|
+
var updateTwoDimensionToTable = function updateTwoDimensionToTable(_ref14) {
|
|
590
|
+
var updateTable = _ref14.updateTable,
|
|
591
|
+
statisticalResult = _ref14.statisticalResult;
|
|
592
|
+
var pivotResult = statisticalResult.pivotResult,
|
|
593
|
+
groupbyColumn = statisticalResult.groupbyColumn;
|
|
594
|
+
var nameColumn = TableUtils.getTableColumnByName(updateTable, groupbyColumn.name);
|
|
595
|
+
if (!nameColumn) return {};
|
|
596
|
+
var pivot_rows = pivotResult.pivot_rows,
|
|
597
|
+
pivot_columns = pivotResult.pivot_columns;
|
|
598
|
+
var tableRows = updateTable.rows;
|
|
599
|
+
var columnMap = {};
|
|
600
|
+
var newRows = [];
|
|
601
|
+
var updatedRows = {};
|
|
602
|
+
var rowIds = [];
|
|
603
|
+
var oldRows = {};
|
|
604
|
+
|
|
605
|
+
// updated columns
|
|
606
|
+
var updateColumns = [];
|
|
607
|
+
Array.isArray(pivot_columns) && pivot_columns.forEach(function (item) {
|
|
608
|
+
var key = item.key,
|
|
609
|
+
original_key = item.original_key;
|
|
610
|
+
var columnName = isEmptyName(original_key) ? intl.get(EMPTY_NAME) : key;
|
|
611
|
+
var column = TableUtils.getTableColumnByName(updateTable, columnName);
|
|
612
|
+
columnMap[columnName] = column;
|
|
613
|
+
updateColumns.push(column);
|
|
614
|
+
});
|
|
615
|
+
var totalColumn = TableUtils.getTableColumnByName(updateTable, intl.get('Total'));
|
|
616
|
+
columnMap['total'] = totalColumn;
|
|
617
|
+
updateColumns.push(totalColumn);
|
|
618
|
+
|
|
619
|
+
// updated rows
|
|
620
|
+
var _loop = function _loop(i) {
|
|
621
|
+
var pivotRow = pivot_rows[i];
|
|
622
|
+
var name = pivotRow.name,
|
|
623
|
+
original_name = pivotRow.original_name,
|
|
624
|
+
cells = pivotRow.cells,
|
|
625
|
+
total = pivotRow.total;
|
|
626
|
+
if (isEmptyName(original_name)) {
|
|
627
|
+
name = intl.get(EMPTY_NAME);
|
|
628
|
+
}
|
|
629
|
+
var nameColumnKey = nameColumn.key;
|
|
630
|
+
var row = tableRows.find(function (row) {
|
|
631
|
+
return row[nameColumnKey] === name;
|
|
632
|
+
});
|
|
633
|
+
var totalColumn = columnMap['total'];
|
|
634
|
+
if (row) {
|
|
635
|
+
// update old row
|
|
636
|
+
var rowId = row._id;
|
|
637
|
+
var updatedRow = {};
|
|
638
|
+
var oldRow = {}; // op used
|
|
639
|
+
var validTotalCellValue = getValidValueForColumn(totalColumn, total);
|
|
640
|
+
if (totalColumn && isCellValueChanged(row[totalColumn.key], validTotalCellValue, totalColumn.type)) {
|
|
641
|
+
updatedRow[totalColumn.key] = validTotalCellValue;
|
|
642
|
+
oldRow[totalColumn.key] = row[totalColumn.key];
|
|
643
|
+
}
|
|
644
|
+
var keys = Object.keys(cells);
|
|
645
|
+
if (keys.length === 0) {
|
|
646
|
+
updateColumns.forEach(function (column) {
|
|
647
|
+
var key = column.key,
|
|
648
|
+
type = column.type;
|
|
649
|
+
var newCellValue = key === totalColumn.key ? 0 : null;
|
|
650
|
+
if (isCellValueChanged(row[key], newCellValue, type)) {
|
|
651
|
+
updatedRow[key] = newCellValue;
|
|
652
|
+
oldRow[key] = row[key];
|
|
653
|
+
}
|
|
654
|
+
});
|
|
655
|
+
} else {
|
|
656
|
+
keys.forEach(function (key) {
|
|
657
|
+
var columnName = isEmptyName(key) ? intl.get(EMPTY_NAME) : key;
|
|
658
|
+
var column = columnMap[columnName];
|
|
659
|
+
var validCellValue = getValidValueForColumn(column, cells[key].total);
|
|
660
|
+
if (column && isCellValueChanged(row[column.key], validCellValue, column.type)) {
|
|
661
|
+
updatedRow[column.key] = validCellValue;
|
|
662
|
+
oldRow[column.key] = row[column.key];
|
|
663
|
+
}
|
|
664
|
+
});
|
|
665
|
+
}
|
|
666
|
+
if (Object.keys(updatedRow).length > 0) {
|
|
667
|
+
rowIds.push(rowId);
|
|
668
|
+
updatedRows[rowId] = updatedRow;
|
|
669
|
+
oldRows[rowId] = oldRow;
|
|
670
|
+
}
|
|
671
|
+
} else {
|
|
672
|
+
// insert new row
|
|
673
|
+
var newRow = {};
|
|
674
|
+
newRow[nameColumnKey] = name;
|
|
675
|
+
if (totalColumn) {
|
|
676
|
+
newRow[totalColumn.key] = getValidValueForColumn(totalColumn, name);
|
|
677
|
+
}
|
|
678
|
+
Object.keys(cells).forEach(function (key) {
|
|
679
|
+
var columnName = isEmptyName(key) ? intl.get(EMPTY_NAME) : key;
|
|
680
|
+
var column = columnMap[columnName];
|
|
681
|
+
if (column) {
|
|
682
|
+
newRow[column.key] = getValidValueForColumn(column, cells[key].total);
|
|
683
|
+
}
|
|
684
|
+
});
|
|
685
|
+
if (Object.keys(newRow).length > 0) {
|
|
686
|
+
newRows.push(newRow);
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
};
|
|
690
|
+
for (var i = 0; i < pivot_rows.length; i++) {
|
|
691
|
+
_loop(i);
|
|
692
|
+
}
|
|
693
|
+
return {
|
|
694
|
+
newRows: newRows,
|
|
695
|
+
updatedRows: updatedRows,
|
|
696
|
+
oldRows: oldRows,
|
|
697
|
+
rowIds: rowIds
|
|
698
|
+
};
|
|
699
|
+
};
|
|
700
|
+
var updateTwoDimensionWithSummaryColumnsToTable = function updateTwoDimensionWithSummaryColumnsToTable(_ref15) {
|
|
701
|
+
var updateTable = _ref15.updateTable,
|
|
702
|
+
statisticalResult = _ref15.statisticalResult;
|
|
703
|
+
var groupbyColumn = statisticalResult.groupbyColumn;
|
|
704
|
+
var nameColumn = groupbyColumn && TableUtils.getTableColumnByName(updateTable, groupbyColumn.name);
|
|
705
|
+
if (!nameColumn) return {};
|
|
706
|
+
var _getTwoDimensionWithS = getTwoDimensionWithSummaryColumns({
|
|
707
|
+
statisticalResult: statisticalResult
|
|
708
|
+
}),
|
|
709
|
+
exportingColumns = _getTwoDimensionWithS.columns,
|
|
710
|
+
exportingRows = _getTwoDimensionWithS.rows;
|
|
711
|
+
if (!Array.isArray(exportingColumns) || exportingColumns.length === 0 || !Array.isArray(exportingRows) || exportingRows.length === 0) {
|
|
712
|
+
return {};
|
|
713
|
+
}
|
|
714
|
+
var tableRows = updateTable.rows,
|
|
715
|
+
tableColumns = updateTable.columns;
|
|
716
|
+
var nameColumnKey = nameColumn.key;
|
|
717
|
+
var groupbyColumnName = groupbyColumn.name;
|
|
718
|
+
var newRows = [];
|
|
719
|
+
var updatedRows = {};
|
|
720
|
+
var rowIds = [];
|
|
721
|
+
var oldRows = {};
|
|
722
|
+
var nameCellValueExistRowMap = {};
|
|
723
|
+
tableRows.forEach(function (row) {
|
|
724
|
+
var nameCellValue = row[nameColumnKey];
|
|
725
|
+
if (!nameCellValueExistRowMap[nameCellValue]) {
|
|
726
|
+
nameCellValueExistRowMap[nameCellValue] = row;
|
|
727
|
+
}
|
|
728
|
+
});
|
|
729
|
+
exportingRows.forEach(function (exportingRow) {
|
|
730
|
+
var nameCellValue = exportingRow[groupbyColumnName];
|
|
731
|
+
var existRow = nameCellValueExistRowMap[nameCellValue];
|
|
732
|
+
if (existRow) {
|
|
733
|
+
// update the row already exist
|
|
734
|
+
var exportingRowData = {};
|
|
735
|
+
var existRowData = {};
|
|
736
|
+
tableColumns.forEach(function (tableColumn) {
|
|
737
|
+
var tableColumnKey = tableColumn.key,
|
|
738
|
+
tableColumnType = tableColumn.type,
|
|
739
|
+
tableColumnName = tableColumn.name;
|
|
740
|
+
var existCellValue = existRow[tableColumnKey];
|
|
741
|
+
var exportingCellValue = exportingRow[tableColumnName];
|
|
742
|
+
if (tableColumn && isCellValueChanged(existCellValue, exportingCellValue, tableColumnType)) {
|
|
743
|
+
exportingRowData[tableColumnKey] = exportingCellValue;
|
|
744
|
+
existRowData[tableColumnKey] = existCellValue;
|
|
745
|
+
}
|
|
746
|
+
});
|
|
747
|
+
if (Object.keys(exportingRowData).length > 0) {
|
|
748
|
+
var rowId = existRow._id;
|
|
749
|
+
rowIds.push(rowId);
|
|
750
|
+
updatedRows[rowId] = exportingRowData;
|
|
751
|
+
oldRows[rowId] = existRowData;
|
|
752
|
+
}
|
|
753
|
+
} else {
|
|
754
|
+
// create new row which not exist
|
|
755
|
+
newRows.push(exportingRow);
|
|
756
|
+
}
|
|
757
|
+
});
|
|
758
|
+
return {
|
|
759
|
+
newRows: newRows,
|
|
760
|
+
updatedRows: updatedRows,
|
|
761
|
+
oldRows: oldRows,
|
|
762
|
+
rowIds: rowIds
|
|
763
|
+
};
|
|
764
|
+
};
|
|
765
|
+
|
|
766
|
+
/**
|
|
767
|
+
* statisticalResult: {
|
|
768
|
+
* columnGroupbyColumn: null,
|
|
769
|
+
* groupbyColumn: null,
|
|
770
|
+
* pivotResult: {
|
|
771
|
+
* pivot_columns: [],
|
|
772
|
+
* pivot_rows: [
|
|
773
|
+
* { name: 'xxx', original_name: 'xxx', total }
|
|
774
|
+
* ]
|
|
775
|
+
* },
|
|
776
|
+
* statisticTableColumns: null,
|
|
777
|
+
* summaryColumn: null,
|
|
778
|
+
* }
|
|
779
|
+
*
|
|
780
|
+
* @return {
|
|
781
|
+
* columns: [
|
|
782
|
+
* {
|
|
783
|
+
* name: xxx,
|
|
784
|
+
* type: CellType.DATE
|
|
785
|
+
* data: { format }
|
|
786
|
+
* }, {
|
|
787
|
+
* name: xxx,
|
|
788
|
+
* type: CellType.NUMBER
|
|
789
|
+
* data: { decimal, thousands, precision, enable_precision, format }
|
|
790
|
+
* },
|
|
791
|
+
* ],
|
|
792
|
+
* rows: [
|
|
793
|
+
* { columnName: value, xxx },
|
|
794
|
+
* ]
|
|
795
|
+
* }
|
|
796
|
+
*/
|
|
797
|
+
export var exportStatisticToTable = function exportStatisticToTable(_ref16) {
|
|
798
|
+
var statisticalResult = _ref16.statisticalResult;
|
|
799
|
+
var pivotResult = statisticalResult.pivotResult,
|
|
800
|
+
groupbyColumn = statisticalResult.groupbyColumn,
|
|
801
|
+
columnGroupbyColumn = statisticalResult.columnGroupbyColumn;
|
|
802
|
+
var pivot_columns = pivotResult.pivot_columns,
|
|
803
|
+
pivot_summary_multiple_columns = pivotResult.pivot_summary_multiple_columns;
|
|
804
|
+
if (!groupbyColumn) return {};
|
|
805
|
+
|
|
806
|
+
// two dimension table
|
|
639
807
|
if (columnGroupbyColumn) {
|
|
640
|
-
|
|
808
|
+
if (Array.isArray(pivot_summary_multiple_columns) && pivot_summary_multiple_columns.length > 0) {
|
|
809
|
+
return exportTwoDimensionWithSummaryColumnsToTable({
|
|
810
|
+
statisticalResult: statisticalResult
|
|
811
|
+
});
|
|
812
|
+
}
|
|
813
|
+
return exportTwoDimensionToTable({
|
|
814
|
+
statisticalResult: statisticalResult
|
|
815
|
+
});
|
|
816
|
+
}
|
|
817
|
+
if (!Array.isArray(pivot_columns)) return {};
|
|
818
|
+
return exportOneDimensionToTable({
|
|
819
|
+
statisticalResult: statisticalResult
|
|
820
|
+
});
|
|
821
|
+
};
|
|
822
|
+
export var updateStatisticToTable = function updateStatisticToTable(_ref17) {
|
|
823
|
+
var updateTable = _ref17.updateTable,
|
|
824
|
+
statisticalResult = _ref17.statisticalResult;
|
|
825
|
+
var groupbyColumn = statisticalResult.groupbyColumn,
|
|
826
|
+
columnGroupbyColumn = statisticalResult.columnGroupbyColumn,
|
|
827
|
+
pivotResult = statisticalResult.pivotResult;
|
|
828
|
+
var pivot_summary_multiple_columns = pivotResult.pivot_summary_multiple_columns;
|
|
829
|
+
if (!groupbyColumn) return {};
|
|
830
|
+
|
|
831
|
+
// two dimension table
|
|
832
|
+
if (columnGroupbyColumn) {
|
|
833
|
+
if (Array.isArray(pivot_summary_multiple_columns) && pivot_summary_multiple_columns.length > 0) {
|
|
834
|
+
return updateTwoDimensionWithSummaryColumnsToTable({
|
|
835
|
+
updateTable: updateTable,
|
|
836
|
+
statisticalResult: statisticalResult
|
|
837
|
+
});
|
|
838
|
+
}
|
|
839
|
+
return updateTwoDimensionToTable({
|
|
641
840
|
updateTable: updateTable,
|
|
642
841
|
statisticalResult: statisticalResult
|
|
643
842
|
});
|
|
644
843
|
}
|
|
645
844
|
|
|
646
845
|
// one dimension table
|
|
647
|
-
return
|
|
846
|
+
return updatedOneDimensionToTable({
|
|
648
847
|
updateTable: updateTable,
|
|
649
848
|
statisticalResult: statisticalResult
|
|
650
849
|
});
|