@steedos/objectql 2.2.55-beta.9 → 2.2.55
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/lib/actions/field_updates.js +36 -50
- package/lib/actions/field_updates.js.map +1 -1
- package/lib/actions/workflow_notifications.d.ts +0 -12
- package/lib/actions/workflow_notifications.js +14 -31
- package/lib/actions/workflow_notifications.js.map +1 -1
- package/lib/actions/workflow_rule.js +33 -54
- package/lib/actions/workflow_rule.js.map +1 -1
- package/lib/broker.js +5 -5
- package/lib/broker.js.map +1 -1
- package/lib/driver/driver.d.ts +0 -38
- package/lib/driver/field-encrytion/index.js +0 -7
- package/lib/driver/field-encrytion/index.js.map +1 -1
- package/lib/driver/field-encrytion/mongosharedconst.js +4 -20
- package/lib/driver/field-encrytion/mongosharedconst.js.map +1 -1
- package/lib/driver/fieldDBType.js +0 -4
- package/lib/driver/fieldDBType.js.map +1 -1
- package/lib/driver/format.d.ts +0 -12
- package/lib/driver/format.js +0 -12
- package/lib/driver/format.js.map +1 -1
- package/lib/driver/metadata.js +2 -10
- package/lib/driver/metadata.js.map +1 -1
- package/lib/driver/meteorMongo.js +32 -36
- package/lib/driver/meteorMongo.js.map +1 -1
- package/lib/driver/mongo.d.ts +0 -3
- package/lib/driver/mongo.js +59 -64
- package/lib/driver/mongo.js.map +1 -1
- package/lib/driver/mysql.js +1 -8
- package/lib/driver/mysql.js.map +1 -1
- package/lib/driver/oracle.js +3 -11
- package/lib/driver/oracle.js.map +1 -1
- package/lib/driver/postgres.js +1 -8
- package/lib/driver/postgres.js.map +1 -1
- package/lib/driver/sqlite3.js +1 -8
- package/lib/driver/sqlite3.js.map +1 -1
- package/lib/driver/sqlserver.js +3 -10
- package/lib/driver/sqlserver.js.map +1 -1
- package/lib/dynamic-load/actions.js +26 -27
- package/lib/dynamic-load/actions.js.map +1 -1
- package/lib/dynamic-load/approval_process.js +0 -1
- package/lib/dynamic-load/approval_process.js.map +1 -1
- package/lib/dynamic-load/button.js +13 -13
- package/lib/dynamic-load/button.js.map +1 -1
- package/lib/dynamic-load/chart.js +3 -3
- package/lib/dynamic-load/chart.js.map +1 -1
- package/lib/dynamic-load/client_script.js +0 -24
- package/lib/dynamic-load/client_script.js.map +1 -1
- package/lib/dynamic-load/field.js +13 -13
- package/lib/dynamic-load/field.js.map +1 -1
- package/lib/dynamic-load/layout.js +16 -16
- package/lib/dynamic-load/layout.js.map +1 -1
- package/lib/dynamic-load/listview.js +13 -13
- package/lib/dynamic-load/listview.js.map +1 -1
- package/lib/dynamic-load/object_translations.js +8 -20
- package/lib/dynamic-load/object_translations.js.map +1 -1
- package/lib/dynamic-load/package.d.ts +0 -8
- package/lib/dynamic-load/package.js +83 -95
- package/lib/dynamic-load/package.js.map +1 -1
- package/lib/dynamic-load/page.js +3 -3
- package/lib/dynamic-load/page.js.map +1 -1
- package/lib/dynamic-load/permission.js +24 -25
- package/lib/dynamic-load/permission.js.map +1 -1
- package/lib/dynamic-load/permissionset.js +22 -23
- package/lib/dynamic-load/permissionset.js.map +1 -1
- package/lib/dynamic-load/preload_data.js +73 -73
- package/lib/dynamic-load/preload_data.js.map +1 -1
- package/lib/dynamic-load/profile.js +22 -25
- package/lib/dynamic-load/profile.js.map +1 -1
- package/lib/dynamic-load/query.js +3 -3
- package/lib/dynamic-load/query.js.map +1 -1
- package/lib/dynamic-load/restrictionRules.js +3 -3
- package/lib/dynamic-load/restrictionRules.js.map +1 -1
- package/lib/dynamic-load/shareRules.js +3 -3
- package/lib/dynamic-load/shareRules.js.map +1 -1
- package/lib/dynamic-load/tab.js +4 -4
- package/lib/dynamic-load/tab.js.map +1 -1
- package/lib/dynamic-load/tabs.d.ts +0 -3
- package/lib/dynamic-load/tabs.js +4 -7
- package/lib/dynamic-load/tabs.js.map +1 -1
- package/lib/dynamic-load/translations.js +17 -28
- package/lib/dynamic-load/translations.js.map +1 -1
- package/lib/dynamic-load/trigger.d.ts +0 -5
- package/lib/dynamic-load/trigger.js +0 -29
- package/lib/dynamic-load/trigger.js.map +1 -1
- package/lib/errors/index.js +1 -25
- package/lib/errors/index.js.map +1 -1
- package/lib/formula/core.d.ts +0 -63
- package/lib/formula/core.js +94 -211
- package/lib/formula/core.js.map +1 -1
- package/lib/formula/field_formula.d.ts +0 -23
- package/lib/formula/field_formula.js +12 -36
- package/lib/formula/field_formula.js.map +1 -1
- package/lib/formula/index.js +15 -22
- package/lib/formula/index.js.map +1 -1
- package/lib/formula/params.js +23 -48
- package/lib/formula/params.js.map +1 -1
- package/lib/formula/recompute.d.ts +0 -8
- package/lib/formula/recompute.js +32 -45
- package/lib/formula/recompute.js.map +1 -1
- package/lib/formula/simple_params.js +10 -10
- package/lib/formula/simple_params.js.map +1 -1
- package/lib/formula/type.d.ts +0 -52
- package/lib/formula/type.js +0 -4
- package/lib/formula/type.js.map +1 -1
- package/lib/formula/util.d.ts +0 -69
- package/lib/formula/util.js +0 -70
- package/lib/formula/util.js.map +1 -1
- package/lib/index.js +0 -7
- package/lib/index.js.map +1 -1
- package/lib/metadata-register/_base.js +13 -13
- package/lib/metadata-register/_base.js.map +1 -1
- package/lib/metadata-register/app.js +8 -8
- package/lib/metadata-register/app.js.map +1 -1
- package/lib/metadata-register/chart.js +1 -1
- package/lib/metadata-register/index.js +49 -49
- package/lib/metadata-register/index.js.map +1 -1
- package/lib/metadata-register/layout.js +10 -10
- package/lib/metadata-register/layout.js.map +1 -1
- package/lib/metadata-register/object.js +10 -15
- package/lib/metadata-register/object.js.map +1 -1
- package/lib/metadata-register/page.js +1 -1
- package/lib/metadata-register/permissionFields.js +1 -1
- package/lib/metadata-register/permissionset.js +6 -6
- package/lib/metadata-register/permissionset.js.map +1 -1
- package/lib/metadata-register/process.js +1 -8
- package/lib/metadata-register/process.js.map +1 -1
- package/lib/metadata-register/processTrigger.d.ts +0 -11
- package/lib/metadata-register/processTrigger.js +1 -12
- package/lib/metadata-register/processTrigger.js.map +1 -1
- package/lib/metadata-register/profile.js +6 -6
- package/lib/metadata-register/profile.js.map +1 -1
- package/lib/metadata-register/query.js +1 -1
- package/lib/metadata-register/restrictionRules.js +1 -1
- package/lib/metadata-register/shareRules.js +1 -1
- package/lib/metadata-register/tab.js +1 -1
- package/lib/metadata-register/tabs.d.ts +0 -3
- package/lib/metadata-register/tabs.js +10 -13
- package/lib/metadata-register/tabs.js.map +1 -1
- package/lib/services/datasourceServiceFactory.js +5 -8
- package/lib/services/datasourceServiceFactory.js.map +1 -1
- package/lib/services/helpers/graphql/consts.js +0 -7
- package/lib/services/helpers/graphql/consts.js.map +1 -1
- package/lib/services/helpers/graphql/getPrimaryFieldType.d.ts +0 -4
- package/lib/services/helpers/graphql/getPrimaryFieldType.js +0 -12
- package/lib/services/helpers/graphql/getPrimaryFieldType.js.map +1 -1
- package/lib/services/helpers/graphql/getQueryFields.js +0 -4
- package/lib/services/helpers/graphql/getQueryFields.js.map +1 -1
- package/lib/services/helpers/graphql/index.js +84 -108
- package/lib/services/helpers/graphql/index.js.map +1 -1
- package/lib/services/objectService.js +127 -179
- package/lib/services/objectService.js.map +1 -1
- package/lib/services/objectServiceDispatcher.js +87 -87
- package/lib/services/objectServiceDispatcher.js.map +1 -1
- package/lib/services/objectServiceFactory.js +4 -4
- package/lib/services/objectServiceFactory.js.map +1 -1
- package/lib/summary/core.d.ts +0 -68
- package/lib/summary/core.js +46 -130
- package/lib/summary/core.js.map +1 -1
- package/lib/summary/field_summary.d.ts +0 -16
- package/lib/summary/field_summary.js +10 -27
- package/lib/summary/field_summary.js.map +1 -1
- package/lib/summary/index.d.ts +0 -5
- package/lib/summary/index.js +10 -28
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/recompute.d.ts +0 -8
- package/lib/summary/recompute.js +8 -23
- package/lib/summary/recompute.js.map +1 -1
- package/lib/summary/type.d.ts +0 -17
- package/lib/summary/type.js +0 -13
- package/lib/summary/type.js.map +1 -1
- package/lib/typeorm/driver.js +69 -77
- package/lib/typeorm/driver.js.map +1 -1
- package/lib/typeorm/util.js +0 -4
- package/lib/typeorm/util.js.map +1 -1
- package/lib/types/action.js +1 -1
- package/lib/types/app.js +38 -43
- package/lib/types/app.js.map +1 -1
- package/lib/types/config.js +11 -15
- package/lib/types/config.js.map +1 -1
- package/lib/types/connection.d.ts +0 -10
- package/lib/types/connection.js +9 -16
- package/lib/types/connection.js.map +1 -1
- package/lib/types/dashboard.js +1 -1
- package/lib/types/datasource.d.ts +0 -3
- package/lib/types/datasource.js +97 -110
- package/lib/types/datasource.js.map +1 -1
- package/lib/types/field.js +3 -33
- package/lib/types/field.js.map +1 -1
- package/lib/types/field_permission.js +7 -7
- package/lib/types/field_permission.js.map +1 -1
- package/lib/types/list_view.js +2 -2
- package/lib/types/object.d.ts +0 -38
- package/lib/types/object.js +282 -389
- package/lib/types/object.js.map +1 -1
- package/lib/types/object_dynamic_load.js +39 -44
- package/lib/types/object_dynamic_load.js.map +1 -1
- package/lib/types/object_events.js +4 -14
- package/lib/types/object_events.js.map +1 -1
- package/lib/types/object_layouts.js +4 -4
- package/lib/types/object_layouts.js.map +1 -1
- package/lib/types/object_permission.js +2 -2
- package/lib/types/query.d.ts +0 -12
- package/lib/types/report.js +1 -1
- package/lib/types/restrictionRule.js +6 -6
- package/lib/types/restrictionRule.js.map +1 -1
- package/lib/types/schema.d.ts +0 -14
- package/lib/types/schema.js +14 -39
- package/lib/types/schema.js.map +1 -1
- package/lib/types/shareRule.js +6 -6
- package/lib/types/shareRule.js.map +1 -1
- package/lib/types/trigger.js +1 -1
- package/lib/types/validation_rules.js +10 -15
- package/lib/types/validation_rules.js.map +1 -1
- package/lib/util/index.d.ts +0 -12
- package/lib/util/index.js +10 -50
- package/lib/util/index.js.map +1 -1
- package/lib/util/locale.d.ts +0 -6
- package/lib/util/locale.js +0 -6
- package/lib/util/locale.js.map +1 -1
- package/lib/util/suffix.js +4 -12
- package/lib/util/suffix.js.map +1 -1
- package/package.json +13 -13
package/lib/formula/recompute.js
CHANGED
|
@@ -17,7 +17,7 @@ var runCurrentFieldFormulas = function (fieldFormulaConfig, userSession) {
|
|
|
17
17
|
currentUserId = userSession ? userSession.userId : undefined;
|
|
18
18
|
fieldName = fieldFormulaConfig.field_name, objectName = fieldFormulaConfig.object_name;
|
|
19
19
|
formulaVarFields = (0, core_1.pickFieldFormulaVarFields)(fieldFormulaConfig);
|
|
20
|
-
return [4
|
|
20
|
+
return [4, (0, index_1.getSteedosSchema)().getObject(objectName).find({ filters: [], fields: formulaVarFields })];
|
|
21
21
|
case 1:
|
|
22
22
|
docs = _b.sent();
|
|
23
23
|
_b.label = 2;
|
|
@@ -26,38 +26,38 @@ var runCurrentFieldFormulas = function (fieldFormulaConfig, userSession) {
|
|
|
26
26
|
docs_1 = tslib_1.__values(docs), docs_1_1 = docs_1.next();
|
|
27
27
|
_b.label = 3;
|
|
28
28
|
case 3:
|
|
29
|
-
if (!!docs_1_1.done) return [3
|
|
29
|
+
if (!!docs_1_1.done) return [3, 8];
|
|
30
30
|
doc = docs_1_1.value;
|
|
31
|
-
return [4
|
|
31
|
+
return [4, (0, core_1.computeFieldFormulaValue)(doc, fieldFormulaConfig, currentUserId)];
|
|
32
32
|
case 4:
|
|
33
33
|
value = _b.sent();
|
|
34
34
|
setDoc = {};
|
|
35
35
|
setDoc[fieldName] = value;
|
|
36
|
-
return [4
|
|
36
|
+
return [4, (0, index_1.getSteedosSchema)().getObject(objectName).directUpdate(doc._id, setDoc)];
|
|
37
37
|
case 5:
|
|
38
38
|
_b.sent();
|
|
39
|
-
return [4
|
|
39
|
+
return [4, runQuotedFieldFormulas(doc._id, fieldFormulaConfig, userSession)];
|
|
40
40
|
case 6:
|
|
41
41
|
_b.sent();
|
|
42
42
|
_b.label = 7;
|
|
43
43
|
case 7:
|
|
44
44
|
docs_1_1 = docs_1.next();
|
|
45
|
-
return [3
|
|
46
|
-
case 8: return [3
|
|
45
|
+
return [3, 3];
|
|
46
|
+
case 8: return [3, 11];
|
|
47
47
|
case 9:
|
|
48
48
|
e_1_1 = _b.sent();
|
|
49
49
|
e_1 = { error: e_1_1 };
|
|
50
|
-
return [3
|
|
50
|
+
return [3, 11];
|
|
51
51
|
case 10:
|
|
52
52
|
try {
|
|
53
53
|
if (docs_1_1 && !docs_1_1.done && (_a = docs_1.return)) _a.call(docs_1);
|
|
54
54
|
}
|
|
55
55
|
finally { if (e_1) throw e_1.error; }
|
|
56
|
-
return [7
|
|
57
|
-
case 11: return [4
|
|
56
|
+
return [7];
|
|
57
|
+
case 11: return [4, runQuotedFieldSummaries(fieldFormulaConfig, userSession)];
|
|
58
58
|
case 12:
|
|
59
59
|
_b.sent();
|
|
60
|
-
return [2
|
|
60
|
+
return [2];
|
|
61
61
|
}
|
|
62
62
|
});
|
|
63
63
|
});
|
|
@@ -68,7 +68,7 @@ var runQuotedFieldFormulas = function (recordId, fieldFormulaConfig, userSession
|
|
|
68
68
|
var e_2, _c;
|
|
69
69
|
return tslib_1.__generator(this, function (_d) {
|
|
70
70
|
switch (_d.label) {
|
|
71
|
-
case 0: return [4
|
|
71
|
+
case 0: return [4, (0, field_formula_1.getQuotedByFieldFormulaConfigs)(fieldFormulaConfig)];
|
|
72
72
|
case 1:
|
|
73
73
|
formulaQuotedBys = _d.sent();
|
|
74
74
|
_d.label = 2;
|
|
@@ -77,43 +77,38 @@ var runQuotedFieldFormulas = function (recordId, fieldFormulaConfig, userSession
|
|
|
77
77
|
_a = tslib_1.__values(formulaQuotedBys.allConfigs), _b = _a.next();
|
|
78
78
|
_d.label = 3;
|
|
79
79
|
case 3:
|
|
80
|
-
if (!!_b.done) return [3
|
|
80
|
+
if (!!_b.done) return [3, 6];
|
|
81
81
|
config = _b.value;
|
|
82
|
-
return [4
|
|
82
|
+
return [4, (0, core_1.updateQuotedByObjectFieldFormulaValue)(fieldFormulaConfig.object_name, recordId, config, userSession)];
|
|
83
83
|
case 4:
|
|
84
84
|
_d.sent();
|
|
85
85
|
_d.label = 5;
|
|
86
86
|
case 5:
|
|
87
87
|
_b = _a.next();
|
|
88
|
-
return [3
|
|
89
|
-
case 6: return [3
|
|
88
|
+
return [3, 3];
|
|
89
|
+
case 6: return [3, 9];
|
|
90
90
|
case 7:
|
|
91
91
|
e_2_1 = _d.sent();
|
|
92
92
|
e_2 = { error: e_2_1 };
|
|
93
|
-
return [3
|
|
93
|
+
return [3, 9];
|
|
94
94
|
case 8:
|
|
95
95
|
try {
|
|
96
96
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
97
97
|
}
|
|
98
98
|
finally { if (e_2) throw e_2.error; }
|
|
99
|
-
return [7
|
|
100
|
-
case 9: return [2
|
|
99
|
+
return [7];
|
|
100
|
+
case 9: return [2];
|
|
101
101
|
}
|
|
102
102
|
});
|
|
103
103
|
});
|
|
104
104
|
};
|
|
105
|
-
/**
|
|
106
|
-
* 找到公式字段被哪些汇总字段引用,并重新计算汇总字段值(相当于点击一次界面上的“批量重算汇总值”按钮)
|
|
107
|
-
* @param fieldFormulaConfig
|
|
108
|
-
* @param userSession
|
|
109
|
-
*/
|
|
110
105
|
var runQuotedFieldSummaries = function (fieldFormulaConfig, userSession) {
|
|
111
106
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
112
107
|
var summaryQuotedBys, summaryQuotedBys_1, summaryQuotedBys_1_1, config, e_3_1;
|
|
113
108
|
var e_3, _a;
|
|
114
109
|
return tslib_1.__generator(this, function (_b) {
|
|
115
110
|
switch (_b.label) {
|
|
116
|
-
case 0: return [4
|
|
111
|
+
case 0: return [4, (0, summary_1.getQuotedByFieldSummaryConfigs)(fieldFormulaConfig)];
|
|
117
112
|
case 1:
|
|
118
113
|
summaryQuotedBys = _b.sent();
|
|
119
114
|
_b.label = 2;
|
|
@@ -122,55 +117,47 @@ var runQuotedFieldSummaries = function (fieldFormulaConfig, userSession) {
|
|
|
122
117
|
summaryQuotedBys_1 = tslib_1.__values(summaryQuotedBys), summaryQuotedBys_1_1 = summaryQuotedBys_1.next();
|
|
123
118
|
_b.label = 3;
|
|
124
119
|
case 3:
|
|
125
|
-
if (!!summaryQuotedBys_1_1.done) return [3
|
|
120
|
+
if (!!summaryQuotedBys_1_1.done) return [3, 6];
|
|
126
121
|
config = summaryQuotedBys_1_1.value;
|
|
127
|
-
return [4
|
|
122
|
+
return [4, (0, summary_1.recomputeFieldSummaryValues)(config, userSession)];
|
|
128
123
|
case 4:
|
|
129
124
|
_b.sent();
|
|
130
125
|
_b.label = 5;
|
|
131
126
|
case 5:
|
|
132
127
|
summaryQuotedBys_1_1 = summaryQuotedBys_1.next();
|
|
133
|
-
return [3
|
|
134
|
-
case 6: return [3
|
|
128
|
+
return [3, 3];
|
|
129
|
+
case 6: return [3, 9];
|
|
135
130
|
case 7:
|
|
136
131
|
e_3_1 = _b.sent();
|
|
137
132
|
e_3 = { error: e_3_1 };
|
|
138
|
-
return [3
|
|
133
|
+
return [3, 9];
|
|
139
134
|
case 8:
|
|
140
135
|
try {
|
|
141
136
|
if (summaryQuotedBys_1_1 && !summaryQuotedBys_1_1.done && (_a = summaryQuotedBys_1.return)) _a.call(summaryQuotedBys_1);
|
|
142
137
|
}
|
|
143
138
|
finally { if (e_3) throw e_3.error; }
|
|
144
|
-
return [7
|
|
145
|
-
case 9: return [2
|
|
139
|
+
return [7];
|
|
140
|
+
case 9: return [2];
|
|
146
141
|
}
|
|
147
142
|
});
|
|
148
143
|
});
|
|
149
144
|
};
|
|
150
|
-
/**
|
|
151
|
-
* 重算指定公式字段Id对应的公式值
|
|
152
|
-
* @param fieldId : ${objectApiName}.${fieldApiName}
|
|
153
|
-
*/
|
|
154
145
|
var recomputeFormulaValues = function (fieldId, userSession) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
155
146
|
var config;
|
|
156
147
|
return tslib_1.__generator(this, function (_a) {
|
|
157
148
|
switch (_a.label) {
|
|
158
|
-
case 0: return [4
|
|
149
|
+
case 0: return [4, (0, field_formula_1.getFieldFormulaConfig)(fieldId)];
|
|
159
150
|
case 1:
|
|
160
151
|
config = _a.sent();
|
|
161
152
|
if (!config) {
|
|
162
153
|
throw new Error("recomputeFormulaValues:".concat(fieldId, " not found in field_formula configs."));
|
|
163
154
|
}
|
|
164
|
-
return [4
|
|
165
|
-
case 2: return [2
|
|
155
|
+
return [4, (0, exports.recomputeFieldFormulaValues)(config, userSession)];
|
|
156
|
+
case 2: return [2, _a.sent()];
|
|
166
157
|
}
|
|
167
158
|
});
|
|
168
159
|
}); };
|
|
169
160
|
exports.recomputeFormulaValues = recomputeFormulaValues;
|
|
170
|
-
/**
|
|
171
|
-
* 重算指定公式字段的公式值
|
|
172
|
-
* @param fieldFormulaConfig
|
|
173
|
-
*/
|
|
174
161
|
var recomputeFieldFormulaValues = function (fieldFormulaConfig, userSession) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
175
162
|
var currentUserId;
|
|
176
163
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -180,10 +167,10 @@ var recomputeFieldFormulaValues = function (fieldFormulaConfig, userSession) { r
|
|
|
180
167
|
if (!currentUserId) {
|
|
181
168
|
(0, util_1.checkCurrentUserIdNotRequiredForFieldFormulas)(fieldFormulaConfig);
|
|
182
169
|
}
|
|
183
|
-
return [4
|
|
170
|
+
return [4, runCurrentFieldFormulas(fieldFormulaConfig, userSession)];
|
|
184
171
|
case 1:
|
|
185
172
|
_a.sent();
|
|
186
|
-
return [2
|
|
173
|
+
return [2, true];
|
|
187
174
|
}
|
|
188
175
|
});
|
|
189
176
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recompute.js","sourceRoot":"","sources":["../../src/formula/recompute.ts"],"names":[],"mappings":";;;;AAAA,kCAA4C;AAE5C,+BAAuE;AACvE,iDAAwF;AACxF,+BAAoH;AACpH,sCAAyF;AAEzF,IAAM,uBAAuB,GAAG,UAAgB,kBAAiD,EAAE,WAAgB;;;;;;;oBACzG,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC/C,SAAS,GAA8B,kBAAkB,WAAhD,EAAe,UAAU,GAAK,kBAAkB,YAAvB,CAAwB;oBACxE,gBAAgB,GAAG,IAAA,gCAAyB,EAAC,kBAAkB,CAAC,CAAC;oBAC1D,
|
|
1
|
+
{"version":3,"file":"recompute.js","sourceRoot":"","sources":["../../src/formula/recompute.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,27 +11,27 @@ function getSubstitutionDataType(value) {
|
|
|
11
11
|
}
|
|
12
12
|
switch (valueType) {
|
|
13
13
|
case 'string':
|
|
14
|
-
dateType = "text"
|
|
14
|
+
dateType = "text";
|
|
15
15
|
break;
|
|
16
16
|
case 'number':
|
|
17
|
-
dateType = "number"
|
|
17
|
+
dateType = "number";
|
|
18
18
|
break;
|
|
19
19
|
case 'boolean':
|
|
20
|
-
dateType = "checkbox"
|
|
20
|
+
dateType = "checkbox";
|
|
21
21
|
break;
|
|
22
22
|
case 'object':
|
|
23
23
|
if (value === null) {
|
|
24
|
-
dateType = "null"
|
|
24
|
+
dateType = "null";
|
|
25
25
|
}
|
|
26
26
|
else if (value instanceof Date) {
|
|
27
|
-
dateType = "datetime"
|
|
27
|
+
dateType = "datetime";
|
|
28
28
|
}
|
|
29
29
|
else {
|
|
30
30
|
throw new Error("runFormula:Catch an error the param type \"".concat(valueType, "\" is not supported while eval formula with the params value: \"").concat(value, "\""));
|
|
31
31
|
}
|
|
32
32
|
break;
|
|
33
33
|
case 'undefined':
|
|
34
|
-
dateType = "null"
|
|
34
|
+
dateType = "null";
|
|
35
35
|
break;
|
|
36
36
|
default:
|
|
37
37
|
break;
|
|
@@ -40,7 +40,7 @@ function getSubstitutionDataType(value) {
|
|
|
40
40
|
}
|
|
41
41
|
function getSubstitutionOptions(dataType, value) {
|
|
42
42
|
switch (dataType) {
|
|
43
|
-
case "number"
|
|
43
|
+
case "number":
|
|
44
44
|
var scale = 0;
|
|
45
45
|
var str = value.toString();
|
|
46
46
|
var dotStr = str.toString().split(".")[1];
|
|
@@ -49,7 +49,7 @@ function getSubstitutionOptions(dataType, value) {
|
|
|
49
49
|
scale = dotCount;
|
|
50
50
|
}
|
|
51
51
|
return { scale: scale };
|
|
52
|
-
case "text"
|
|
52
|
+
case "text":
|
|
53
53
|
return { length: Number.MAX_VALUE };
|
|
54
54
|
default:
|
|
55
55
|
return;
|
|
@@ -57,12 +57,12 @@ function getSubstitutionOptions(dataType, value) {
|
|
|
57
57
|
}
|
|
58
58
|
function getSubstitutionValue(dataType, value, blankValue) {
|
|
59
59
|
switch (dataType) {
|
|
60
|
-
case "text"
|
|
60
|
+
case "text":
|
|
61
61
|
if (value === null || value === undefined) {
|
|
62
62
|
return '';
|
|
63
63
|
}
|
|
64
64
|
break;
|
|
65
|
-
case "number"
|
|
65
|
+
case "number":
|
|
66
66
|
if (value === null || value === undefined) {
|
|
67
67
|
if (blankValue === type_1.SteedosFormulaBlankValue.blanks) {
|
|
68
68
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple_params.js","sourceRoot":"","sources":["../../src/formula/simple_params.ts"],"names":[],"mappings":";;;AAAA,+BAAkD;AAGlD,IAAM,yBAAyB,GAAG,CAAC,UAAU,CAAC,CAAC;AAE/C,SAAS,uBAAuB,CAAC,KAAU;IACvC,IAAM,SAAS,GAAG,OAAO,KAAK,CAAC;IAC/B,IAAI,QAA0B,CAAC;IAC/B,IAAG,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC;QAChD,MAAM,IAAI,KAAK,CAAC,qDAA6C,SAAS,6EAAiE,KAAK,OAAG,CAAC,CAAC;KACpJ;IACD,QAAQ,SAAS,EAAE;QACf,KAAK,QAAQ;YACT,QAAQ,
|
|
1
|
+
{"version":3,"file":"simple_params.js","sourceRoot":"","sources":["../../src/formula/simple_params.ts"],"names":[],"mappings":";;;AAAA,+BAAkD;AAGlD,IAAM,yBAAyB,GAAG,CAAC,UAAU,CAAC,CAAC;AAE/C,SAAS,uBAAuB,CAAC,KAAU;IACvC,IAAM,SAAS,GAAG,OAAO,KAAK,CAAC;IAC/B,IAAI,QAA0B,CAAC;IAC/B,IAAG,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC;QAChD,MAAM,IAAI,KAAK,CAAC,qDAA6C,SAAS,6EAAiE,KAAK,OAAG,CAAC,CAAC;KACpJ;IACD,QAAQ,SAAS,EAAE;QACf,KAAK,QAAQ;YACT,QAAQ,SAAwB,CAAC;YACjC,MAAM;QACV,KAAK,QAAQ;YACT,QAAQ,WAA0B,CAAC;YACnC,MAAM;QACV,KAAK,SAAS;YACV,QAAQ,aAA4B,CAAC;YACrC,MAAM;QACV,KAAK,QAAQ;YACT,IAAG,KAAK,KAAK,IAAI,EAAC;gBACd,QAAQ,SAAwB,CAAC;aACpC;iBACI,IAAI,KAAK,YAAY,IAAI,EAAC;gBAC3B,QAAQ,aAA4B,CAAC;aACxC;iBACG;gBACA,MAAM,IAAI,KAAK,CAAC,qDAA6C,SAAS,6EAAiE,KAAK,OAAG,CAAC,CAAC;aACpJ;YACD,MAAM;QACV,KAAK,WAAW;YACZ,QAAQ,SAAwB,CAAC;YACjC,MAAM;QACV;YACI,MAAM;KACb;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB,EAAE,KAAU;IACxD,QAAQ,QAAQ,EAAE;QACd;YACI,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,QAAQ,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YACvC,IAAG,QAAQ,GAAG,CAAC,EAAC;gBACZ,KAAK,GAAG,QAAQ,CAAC;aACpB;YACD,OAAO,EAAE,KAAK,OAAA,EAAE,CAAC;QACrB;YACI,OAAO,EAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAC,CAAC;QACtC;YACI,OAAQ;KACf;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,KAAU,EAAE,UAAoC;IAC5F,QAAQ,QAAQ,EAAE;QACd;YACI,IAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAC;gBACrC,OAAO,EAAE,CAAC;aACb;YACD,MAAM;QACV;YACI,IAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAC;gBACrC,IAAG,UAAU,KAAK,+BAAwB,CAAC,MAAM,EAAC;oBAC9C,OAAO,IAAI,CAAC;iBACf;qBACG;oBACA,OAAO,CAAC,CAAC;iBACZ;aACJ;YACD,MAAM;QACV;YACI,MAAM;KACb;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,0BAA0B,CAAC,KAAU,EAAE,UAAoC;IACvF,IAAI,iBAAiB,GAAQ;QACzB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,KAAK;KACf,CAAA;IACD,iBAAiB,CAAC,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5D,iBAAiB,CAAC,OAAO,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtF,iBAAiB,CAAC,KAAK,GAAI,oBAAoB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/F,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AATD,gEASC"}
|
package/lib/formula/type.d.ts
CHANGED
|
@@ -1,61 +1,21 @@
|
|
|
1
1
|
export declare const FormulaUserKey = "$user";
|
|
2
|
-
/**
|
|
3
|
-
* 记录公式字段中引用的本对象或其他对象上的字段
|
|
4
|
-
* 用于相关引用字段值变更时,能找到哪些公式字段需要级联变更
|
|
5
|
-
* is_formula指field_name是否是公式字段
|
|
6
|
-
* is_own指field_name是否引用的是本对象自身的字段(字段属于对象本身,且所对应的公式变量只有唯一一层引用,即直接引用当前对象自身上的字段)
|
|
7
|
-
*/
|
|
8
2
|
export declare type SteedosFieldFormulaQuoteTypeConfig = {
|
|
9
3
|
object_name: string;
|
|
10
4
|
field_name: string;
|
|
11
5
|
is_formula?: boolean;
|
|
12
6
|
is_own?: boolean;
|
|
13
7
|
};
|
|
14
|
-
/**
|
|
15
|
-
* 公式中的{}括起来的单个变量中的执行路径
|
|
16
|
-
* {}中第一个reference_from肯定是指向当前对象
|
|
17
|
-
* is_formula指field_name是否是公式字段
|
|
18
|
-
*/
|
|
19
8
|
export declare type SteedosFormulaVarPathTypeConfig = {
|
|
20
9
|
field_name: string;
|
|
21
10
|
reference_from: string;
|
|
22
11
|
reference_to_field?: string;
|
|
23
12
|
is_formula?: boolean;
|
|
24
13
|
};
|
|
25
|
-
/**
|
|
26
|
-
* 运行公式时,要注入的参数,经过计算每个SteedosFieldFormulaVarTypeConfig最终会转换为该结构作为参数注入公式中
|
|
27
|
-
* 比如contacts对象中有公式{account.website}
|
|
28
|
-
* 解析后的SteedosFieldFormulaVarTypeConfig为:
|
|
29
|
-
* {
|
|
30
|
-
* key: "account.website",
|
|
31
|
-
* paths: [
|
|
32
|
-
* {field_name: "account", reference_from:"contacts"},
|
|
33
|
-
* {field_name: "website", reference_from:"accounts"},
|
|
34
|
-
* ]
|
|
35
|
-
* }
|
|
36
|
-
* 最终转换成的SteedosFieldFormulaParamTypeConfig为:
|
|
37
|
-
* {
|
|
38
|
-
* key: "account.website",
|
|
39
|
-
* value: "www.abc.com"
|
|
40
|
-
* }
|
|
41
|
-
*/
|
|
42
14
|
export declare type SteedosFormulaParamTypeConfig = {
|
|
43
15
|
key: string;
|
|
44
16
|
path?: any;
|
|
45
17
|
value: any;
|
|
46
18
|
};
|
|
47
|
-
/**
|
|
48
|
-
* 公式中的{}括起来的单个变量
|
|
49
|
-
* 比如contacts对象中有公式{account.website}
|
|
50
|
-
* 则解析为:
|
|
51
|
-
* {
|
|
52
|
-
* key: "account.website",
|
|
53
|
-
* paths: [
|
|
54
|
-
* {field_name: "account", reference_from:"contacts"},
|
|
55
|
-
* {field_name: "website", reference_from:"accounts"},
|
|
56
|
-
* ]
|
|
57
|
-
* }
|
|
58
|
-
*/
|
|
59
19
|
export declare type SteedosFormulaVarTypeConfig = {
|
|
60
20
|
key: string;
|
|
61
21
|
paths?: Array<SteedosFormulaVarPathTypeConfig>;
|
|
@@ -72,27 +32,15 @@ export declare type SteedosFieldFormulaTypeConfig = {
|
|
|
72
32
|
quotes: Array<SteedosFieldFormulaQuoteTypeConfig>;
|
|
73
33
|
vars: Array<SteedosFormulaVarTypeConfig>;
|
|
74
34
|
};
|
|
75
|
-
/**
|
|
76
|
-
* 获取对象在哪些字段公式中被引用时的返回结果
|
|
77
|
-
* ownConfigs为引用关系为当前对象上的自身引用自身(即引用关系is_own为true)
|
|
78
|
-
* otherConfigs为引用关系中排除ownConfigs后的其他引用关系(包括当前对象上is_own为false的引用关系)
|
|
79
|
-
* allConfigs = ownConfigs + otherConfigs
|
|
80
|
-
*/
|
|
81
35
|
export declare type SteedosQuotedByFieldFormulasTypeConfig = {
|
|
82
36
|
ownConfigs: Array<SteedosFieldFormulaTypeConfig>;
|
|
83
37
|
otherConfigs: Array<SteedosFieldFormulaTypeConfig>;
|
|
84
38
|
allConfigs: Array<SteedosFieldFormulaTypeConfig>;
|
|
85
39
|
};
|
|
86
|
-
/**
|
|
87
|
-
* 空白字段处理,只在公式类型返回值为number和currency类型时有效,默认为zeroes
|
|
88
|
-
*/
|
|
89
40
|
export declare enum SteedosFormulaBlankValue {
|
|
90
41
|
zeroes = "zeroes",
|
|
91
42
|
blanks = "blanks"
|
|
92
43
|
}
|
|
93
|
-
/**
|
|
94
|
-
* 内核函数runFormula的额外参数
|
|
95
|
-
*/
|
|
96
44
|
export declare type SteedosFormulaOptions = {
|
|
97
45
|
returnType?: string;
|
|
98
46
|
blankValue?: SteedosFormulaBlankValue;
|
package/lib/formula/type.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SteedosFormulaBlankValue = exports.FormulaUserKey = void 0;
|
|
4
|
-
// 公式内容中表示userSession变量的占位符
|
|
5
4
|
exports.FormulaUserKey = "$user";
|
|
6
|
-
/**
|
|
7
|
-
* 空白字段处理,只在公式类型返回值为number和currency类型时有效,默认为zeroes
|
|
8
|
-
*/
|
|
9
5
|
var SteedosFormulaBlankValue;
|
|
10
6
|
(function (SteedosFormulaBlankValue) {
|
|
11
7
|
SteedosFormulaBlankValue["zeroes"] = "zeroes";
|
package/lib/formula/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/formula/type.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/formula/type.ts"],"names":[],"mappings":";;;AACa,QAAA,cAAc,GAAG,OAAO,CAAC;AA+FtC,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAChC,6CAAiB,CAAA;IACjB,6CAAiB,CAAA;AACrB,CAAC,EAHW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAGnC"}
|
package/lib/formula/util.d.ts
CHANGED
|
@@ -1,80 +1,11 @@
|
|
|
1
1
|
import { SteedosFieldFormulaTypeConfig, SteedosFormulaVarPathTypeConfig, SteedosFormulaVarTypeConfig } from './type';
|
|
2
|
-
/**
|
|
3
|
-
* 从参数sourceConfigs中找到参数config中引用过的公式字段配置
|
|
4
|
-
* @param config
|
|
5
|
-
* @param sourceConfigs
|
|
6
|
-
*/
|
|
7
2
|
export declare const getQuotedFieldFormulaConfigs: (config: SteedosFieldFormulaTypeConfig, sourceConfigs: Array<SteedosFieldFormulaTypeConfig>) => Array<SteedosFieldFormulaTypeConfig>;
|
|
8
|
-
/**
|
|
9
|
-
* 参数configA中是否引用了参数configB
|
|
10
|
-
* @param configA
|
|
11
|
-
* @param configB
|
|
12
|
-
*/
|
|
13
3
|
export declare const isFieldFormulaConfigQuoted: (configA: SteedosFieldFormulaTypeConfig, configB: SteedosFieldFormulaTypeConfig) => boolean;
|
|
14
|
-
/**
|
|
15
|
-
* 公式字段配置是否引用了某个对象和字段
|
|
16
|
-
* @param config 公式字段配置
|
|
17
|
-
* @param object_name 是否引用了该对象
|
|
18
|
-
* @param field_name 是否引用了该字段
|
|
19
|
-
*/
|
|
20
4
|
export declare const isFieldFormulaConfigQuotingObjectAndFields: (config: SteedosFieldFormulaTypeConfig, objectName: string, fieldNames?: Array<string>) => boolean;
|
|
21
|
-
/**
|
|
22
|
-
* 参数config是否与sourceConfigs中任何一项有双向引用关系
|
|
23
|
-
*
|
|
24
|
-
* @param config
|
|
25
|
-
* @param sourceConfigs
|
|
26
|
-
*/
|
|
27
5
|
export declare const isFieldFormulaConfigQuotedTwoWays: (config: SteedosFieldFormulaTypeConfig, sourceConfigs: Array<SteedosFieldFormulaTypeConfig>) => boolean;
|
|
28
|
-
/**
|
|
29
|
-
* 参数configA与参数configB是否存在双向引用关系
|
|
30
|
-
* @param configA
|
|
31
|
-
* @param configB
|
|
32
|
-
*/
|
|
33
6
|
export declare const isFieldFormulaConfigQuotedTwoWay: (configA: SteedosFieldFormulaTypeConfig, configB: SteedosFieldFormulaTypeConfig) => boolean;
|
|
34
|
-
/**
|
|
35
|
-
* 往参数configs中插入config,排除掉重复记录
|
|
36
|
-
* @param config
|
|
37
|
-
* @param configs
|
|
38
|
-
*/
|
|
39
7
|
export declare const addToFieldFormulaConfigs: (config: SteedosFieldFormulaTypeConfig, configs: Array<SteedosFieldFormulaTypeConfig>) => void;
|
|
40
|
-
/**
|
|
41
|
-
* 根据公式引用关系对字段公式配置进行排序
|
|
42
|
-
* 这里不能用sort函数,因为sort函数只支持两个数值或对象中两个数值属性对比
|
|
43
|
-
* 规则是把其中被依赖的公式字段配置放前面
|
|
44
|
-
* @param configs
|
|
45
|
-
*/
|
|
46
8
|
export declare const sortFieldFormulaConfigs: (configs: Array<SteedosFieldFormulaTypeConfig>) => Array<SteedosFieldFormulaTypeConfig>;
|
|
47
|
-
/**
|
|
48
|
-
* 当currentUserId为空时,确认参数configs中没有引用$user变量
|
|
49
|
-
* @param configs
|
|
50
|
-
*/
|
|
51
9
|
export declare const checkCurrentUserIdNotRequiredForFieldFormulas: (configs: SteedosFieldFormulaTypeConfig | Array<SteedosFieldFormulaTypeConfig> | any) => void;
|
|
52
|
-
/**
|
|
53
|
-
* 当currentUserId为空时,判断参数vars中是否有引用$user变量
|
|
54
|
-
* @param configs
|
|
55
|
-
*/
|
|
56
10
|
export declare const isCurrentUserIdRequiredForFormulaVars: (vars: Array<SteedosFormulaVarTypeConfig>) => boolean;
|
|
57
|
-
/**
|
|
58
|
-
* 把公式变量中需要聚合查询的paths转换为aggregate函数级联查询需要的lookups,
|
|
59
|
-
* 比如合同对象某个公式字段中有变量{company_id.organization.name}需要聚合查询的paths为:
|
|
60
|
-
* [{"field_name":"company_id","reference_from":"contracts"},{"field_name":"organization","reference_from":"company"},{"field_name":"name","reference_from":"organizations"}]
|
|
61
|
-
* 将转换返回:
|
|
62
|
-
[{
|
|
63
|
-
$lookup: {
|
|
64
|
-
from: 'company',
|
|
65
|
-
localField: 'company_id',
|
|
66
|
-
foreignField: '_id',
|
|
67
|
-
as: '@lookup_company_id'
|
|
68
|
-
}
|
|
69
|
-
},{
|
|
70
|
-
$lookup: {
|
|
71
|
-
from: 'organizations',
|
|
72
|
-
localField: '@lookup_company_id.organization',
|
|
73
|
-
foreignField: '_id',
|
|
74
|
-
as: '@lookup_company_id.organization'
|
|
75
|
-
}
|
|
76
|
-
}]
|
|
77
|
-
以上返回的lookup可用于当修改组织的名称时,找到合同中引用了该组织记录的记录,并重算其对应的公式字段值
|
|
78
|
-
* @param paths 该参数最后一项的reference_from即为需要聚合查询的对象,亦即为当前正在修改对象(需要查找数据库中有哪些对象记录引用了该对象上的字段)
|
|
79
|
-
*/
|
|
80
11
|
export declare const getFormulaVarPathsAggregateLookups: (paths: Array<SteedosFormulaVarPathTypeConfig>) => any[];
|
package/lib/formula/util.js
CHANGED
|
@@ -3,11 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getFormulaVarPathsAggregateLookups = exports.isCurrentUserIdRequiredForFormulaVars = exports.checkCurrentUserIdNotRequiredForFieldFormulas = exports.sortFieldFormulaConfigs = exports.addToFieldFormulaConfigs = exports.isFieldFormulaConfigQuotedTwoWay = exports.isFieldFormulaConfigQuotedTwoWays = exports.isFieldFormulaConfigQuotingObjectAndFields = exports.isFieldFormulaConfigQuoted = exports.getQuotedFieldFormulaConfigs = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var _ = require("lodash");
|
|
6
|
-
/**
|
|
7
|
-
* 从参数sourceConfigs中找到参数config中引用过的公式字段配置
|
|
8
|
-
* @param config
|
|
9
|
-
* @param sourceConfigs
|
|
10
|
-
*/
|
|
11
6
|
var getQuotedFieldFormulaConfigs = function (config, sourceConfigs) {
|
|
12
7
|
var quotes = config.quotes;
|
|
13
8
|
if (quotes && quotes.length) {
|
|
@@ -22,22 +17,11 @@ var getQuotedFieldFormulaConfigs = function (config, sourceConfigs) {
|
|
|
22
17
|
}
|
|
23
18
|
};
|
|
24
19
|
exports.getQuotedFieldFormulaConfigs = getQuotedFieldFormulaConfigs;
|
|
25
|
-
/**
|
|
26
|
-
* 参数configA中是否引用了参数configB
|
|
27
|
-
* @param configA
|
|
28
|
-
* @param configB
|
|
29
|
-
*/
|
|
30
20
|
var isFieldFormulaConfigQuoted = function (configA, configB) {
|
|
31
21
|
var configAQuoteds = (0, exports.getQuotedFieldFormulaConfigs)(configA, [configB]);
|
|
32
22
|
return !!configAQuoteds.length;
|
|
33
23
|
};
|
|
34
24
|
exports.isFieldFormulaConfigQuoted = isFieldFormulaConfigQuoted;
|
|
35
|
-
/**
|
|
36
|
-
* 公式字段配置是否引用了某个对象和字段
|
|
37
|
-
* @param config 公式字段配置
|
|
38
|
-
* @param object_name 是否引用了该对象
|
|
39
|
-
* @param field_name 是否引用了该字段
|
|
40
|
-
*/
|
|
41
25
|
var isFieldFormulaConfigQuotingObjectAndFields = function (config, objectName, fieldNames) {
|
|
42
26
|
var quotes = config.quotes;
|
|
43
27
|
if (quotes && quotes.length) {
|
|
@@ -55,12 +39,6 @@ var isFieldFormulaConfigQuotingObjectAndFields = function (config, objectName, f
|
|
|
55
39
|
}
|
|
56
40
|
};
|
|
57
41
|
exports.isFieldFormulaConfigQuotingObjectAndFields = isFieldFormulaConfigQuotingObjectAndFields;
|
|
58
|
-
/**
|
|
59
|
-
* 参数config是否与sourceConfigs中任何一项有双向引用关系
|
|
60
|
-
*
|
|
61
|
-
* @param config
|
|
62
|
-
* @param sourceConfigs
|
|
63
|
-
*/
|
|
64
42
|
var isFieldFormulaConfigQuotedTwoWays = function (config, sourceConfigs) {
|
|
65
43
|
var e_1, _a;
|
|
66
44
|
var quotedConfigs = (0, exports.getQuotedFieldFormulaConfigs)(config, sourceConfigs);
|
|
@@ -87,20 +65,10 @@ var isFieldFormulaConfigQuotedTwoWays = function (config, sourceConfigs) {
|
|
|
87
65
|
return false;
|
|
88
66
|
};
|
|
89
67
|
exports.isFieldFormulaConfigQuotedTwoWays = isFieldFormulaConfigQuotedTwoWays;
|
|
90
|
-
/**
|
|
91
|
-
* 参数configA与参数configB是否存在双向引用关系
|
|
92
|
-
* @param configA
|
|
93
|
-
* @param configB
|
|
94
|
-
*/
|
|
95
68
|
var isFieldFormulaConfigQuotedTwoWay = function (configA, configB) {
|
|
96
69
|
return (0, exports.isFieldFormulaConfigQuotedTwoWays)(configA, [configB]);
|
|
97
70
|
};
|
|
98
71
|
exports.isFieldFormulaConfigQuotedTwoWay = isFieldFormulaConfigQuotedTwoWay;
|
|
99
|
-
/**
|
|
100
|
-
* 往参数configs中插入config,排除掉重复记录
|
|
101
|
-
* @param config
|
|
102
|
-
* @param configs
|
|
103
|
-
*/
|
|
104
72
|
var addToFieldFormulaConfigs = function (config, configs) {
|
|
105
73
|
var existedConfig = configs.find(function (item) {
|
|
106
74
|
return item._id === config._id;
|
|
@@ -117,15 +85,8 @@ var addSortedFieldFormulaConfig = function (config, sourceConfigs, sortedConfigs
|
|
|
117
85
|
});
|
|
118
86
|
(0, exports.addToFieldFormulaConfigs)(config, sortedConfigs);
|
|
119
87
|
};
|
|
120
|
-
/**
|
|
121
|
-
* 根据公式引用关系对字段公式配置进行排序
|
|
122
|
-
* 这里不能用sort函数,因为sort函数只支持两个数值或对象中两个数值属性对比
|
|
123
|
-
* 规则是把其中被依赖的公式字段配置放前面
|
|
124
|
-
* @param configs
|
|
125
|
-
*/
|
|
126
88
|
var sortFieldFormulaConfigs = function (configs) {
|
|
127
89
|
if (configs.length <= 1) {
|
|
128
|
-
// 只有一个时,不需要排序,直接返回
|
|
129
90
|
return configs;
|
|
130
91
|
}
|
|
131
92
|
var sortedConfigs = [];
|
|
@@ -135,10 +96,6 @@ var sortFieldFormulaConfigs = function (configs) {
|
|
|
135
96
|
return sortedConfigs;
|
|
136
97
|
};
|
|
137
98
|
exports.sortFieldFormulaConfigs = sortFieldFormulaConfigs;
|
|
138
|
-
/**
|
|
139
|
-
* 当currentUserId为空时,确认参数configs中没有引用$user变量
|
|
140
|
-
* @param configs
|
|
141
|
-
*/
|
|
142
99
|
var checkCurrentUserIdNotRequiredForFieldFormulas = function (configs) {
|
|
143
100
|
var e_2, _a;
|
|
144
101
|
if (!_.isArray(configs)) {
|
|
@@ -166,10 +123,6 @@ var checkCurrentUserIdNotRequiredForFieldFormulas = function (configs) {
|
|
|
166
123
|
}
|
|
167
124
|
};
|
|
168
125
|
exports.checkCurrentUserIdNotRequiredForFieldFormulas = checkCurrentUserIdNotRequiredForFieldFormulas;
|
|
169
|
-
/**
|
|
170
|
-
* 当currentUserId为空时,判断参数vars中是否有引用$user变量
|
|
171
|
-
* @param configs
|
|
172
|
-
*/
|
|
173
126
|
var isCurrentUserIdRequiredForFormulaVars = function (vars) {
|
|
174
127
|
var required = !!vars.find(function (_a) {
|
|
175
128
|
var isUserVar = _a.is_user_var;
|
|
@@ -178,29 +131,6 @@ var isCurrentUserIdRequiredForFormulaVars = function (vars) {
|
|
|
178
131
|
return required;
|
|
179
132
|
};
|
|
180
133
|
exports.isCurrentUserIdRequiredForFormulaVars = isCurrentUserIdRequiredForFormulaVars;
|
|
181
|
-
/**
|
|
182
|
-
* 把公式变量中需要聚合查询的paths转换为aggregate函数级联查询需要的lookups,
|
|
183
|
-
* 比如合同对象某个公式字段中有变量{company_id.organization.name}需要聚合查询的paths为:
|
|
184
|
-
* [{"field_name":"company_id","reference_from":"contracts"},{"field_name":"organization","reference_from":"company"},{"field_name":"name","reference_from":"organizations"}]
|
|
185
|
-
* 将转换返回:
|
|
186
|
-
[{
|
|
187
|
-
$lookup: {
|
|
188
|
-
from: 'company',
|
|
189
|
-
localField: 'company_id',
|
|
190
|
-
foreignField: '_id',
|
|
191
|
-
as: '@lookup_company_id'
|
|
192
|
-
}
|
|
193
|
-
},{
|
|
194
|
-
$lookup: {
|
|
195
|
-
from: 'organizations',
|
|
196
|
-
localField: '@lookup_company_id.organization',
|
|
197
|
-
foreignField: '_id',
|
|
198
|
-
as: '@lookup_company_id.organization'
|
|
199
|
-
}
|
|
200
|
-
}]
|
|
201
|
-
以上返回的lookup可用于当修改组织的名称时,找到合同中引用了该组织记录的记录,并重算其对应的公式字段值
|
|
202
|
-
* @param paths 该参数最后一项的reference_from即为需要聚合查询的对象,亦即为当前正在修改对象(需要查找数据库中有哪些对象记录引用了该对象上的字段)
|
|
203
|
-
*/
|
|
204
134
|
var getFormulaVarPathsAggregateLookups = function (paths) {
|
|
205
135
|
if (!paths.length) {
|
|
206
136
|
return [];
|
package/lib/formula/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/formula/util.ts"],"names":[],"mappings":";;;;AACA,0BAA4B;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/formula/util.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -3,13 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.broker = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var broker_1 = require("./broker");
|
|
6
|
-
/*
|
|
7
|
-
* @Author: baozhoutao@hotoa.com
|
|
8
|
-
* @Date: 2022-03-28 14:16:02
|
|
9
|
-
* @LastEditors: baozhoutao@steedos.com
|
|
10
|
-
* @LastEditTime: 2022-07-02 14:17:05
|
|
11
|
-
* @Description:
|
|
12
|
-
*/
|
|
13
6
|
tslib_1.__exportStar(require("./types"), exports);
|
|
14
7
|
tslib_1.__exportStar(require("./driver"), exports);
|
|
15
8
|
tslib_1.__exportStar(require("./util"), exports);
|