owl-cli 6.179.0 → 6.181.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.
|
@@ -27,80 +27,19 @@ var spec = @spec;
|
|
|
27
27
|
//判断是subplatform,还是shop,还是platform
|
|
28
28
|
var params = JSON.parse($body);
|
|
29
29
|
var searchArgs = params.searchArgs;
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
var exportKey = params.exportKey;
|
|
33
|
-
env.exportKey = exportKey;
|
|
34
|
-
|
|
35
|
-
function getKeywordQuery(){
|
|
36
|
-
if(keyword && trim(keyword).length>0){
|
|
37
|
-
return "\"" + trim(keyword) + "\""
|
|
38
|
-
}
|
|
39
|
-
else{
|
|
40
|
-
return "*"
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function getFilters(){
|
|
45
|
-
delete searchArgs.keyword;
|
|
46
|
-
var filters = [];
|
|
47
|
-
for(var k in searchArgs){
|
|
48
|
-
var v = searchArgs[k];
|
|
49
|
-
if(typeof(v)=='object' && Array.isArray(v)){
|
|
50
|
-
var range={}
|
|
51
|
-
range[k] = {
|
|
52
|
-
'gte':v[0],
|
|
53
|
-
'lte':v[1]
|
|
54
|
-
}
|
|
55
|
-
filters.push({range:range});
|
|
56
|
-
}
|
|
57
|
-
else{
|
|
58
|
-
var term = {};
|
|
59
|
-
term[k+".keyword"] = trim('' + v)
|
|
60
|
-
filters.push({term:term})
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
return filters;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
var filters = getFilters();
|
|
68
|
-
|
|
69
|
-
if(m!=='0'){
|
|
70
|
-
filters = filters.concat([
|
|
71
|
-
{"term": { "_m.keyword": m }},
|
|
72
|
-
{"term":{"_t":spec["_t"]}}
|
|
73
|
-
]);
|
|
74
|
-
}
|
|
75
|
-
else{
|
|
76
|
-
filters = filters.concat([
|
|
77
|
-
{"term":{"_t":spec["_t"]}}
|
|
78
|
-
]);
|
|
79
|
-
}
|
|
30
|
+
var searchArgs = params.searchArgs;
|
|
31
|
+
var templateId = params.templateId;
|
|
80
32
|
|
|
33
|
+
var sort = params.sort;
|
|
34
|
+
var exportRange = params.exportRange;
|
|
35
|
+
var outputTarget = params.outputTarget;
|
|
36
|
+
var ids = params.ids;
|
|
37
|
+
var key = params.key;
|
|
38
|
+
env.params = params;
|
|
81
39
|
|
|
82
|
-
var query = {
|
|
83
|
-
"query": {
|
|
84
|
-
"bool": {
|
|
85
|
-
"must": {
|
|
86
|
-
"query_string": {
|
|
87
|
-
"query":getKeywordQuery()
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
"must_not": {
|
|
91
|
-
"match": {
|
|
92
|
-
"del": "T"
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
"filter": filters
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
"from" : 0, "size" : 1,
|
|
99
|
-
sort:[{owl_createTime:{order:"desc"}}]
|
|
100
|
-
}
|
|
101
40
|
|
|
102
41
|
|
|
103
|
-
var taskInfoId = @projectCodeService.addExportTask(
|
|
42
|
+
var taskInfoId = @projectCodeService.addExportTask(null,env);
|
|
104
43
|
|
|
105
44
|
var ret = {
|
|
106
45
|
state:'ok',
|
|
@@ -34,7 +34,7 @@ function checklogin() {
|
|
|
34
34
|
now: new Date().getTime(),
|
|
35
35
|
loginUserId: 'internal',
|
|
36
36
|
loginId: 'internal',
|
|
37
|
-
loginUser:user,
|
|
37
|
+
// loginUser:user,
|
|
38
38
|
shopId: m,
|
|
39
39
|
warehouseId: "",
|
|
40
40
|
roleId: 'internal',
|
|
@@ -61,7 +61,7 @@ function checklogin() {
|
|
|
61
61
|
now: new Date().getTime(),
|
|
62
62
|
loginUserId: loginUserId,
|
|
63
63
|
loginId: loginUserId,
|
|
64
|
-
loginUser:loginUser,
|
|
64
|
+
// loginUser:loginUser,
|
|
65
65
|
shopId: m,
|
|
66
66
|
warehouseId: "",
|
|
67
67
|
roleId: roleId,
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
//#import kafkautil.js
|
|
9
9
|
//#import @services/dblayer.jsx
|
|
10
10
|
//#import @handlers/include/diff.jsx
|
|
11
|
-
//#import $
|
|
11
|
+
//#import $owl_task_info:services/modelService.jsx
|
|
12
12
|
|
|
13
13
|
function trim(s){
|
|
14
14
|
if(s){
|
|
@@ -790,33 +790,35 @@ var @projectCodeService = (function (pigeon) {
|
|
|
790
790
|
addExportTask: function (query, env) {
|
|
791
791
|
var now = new Date().getTime()
|
|
792
792
|
var taskInfo = {
|
|
793
|
-
|
|
793
|
+
submitUserId:env.loginId,
|
|
794
794
|
submitTime: now,
|
|
795
|
-
|
|
796
|
-
processState: '
|
|
797
|
-
|
|
798
|
-
|
|
795
|
+
beginTime: null,
|
|
796
|
+
processState: 'notstart',
|
|
797
|
+
appId:"owl_" + spec['_t'],
|
|
798
|
+
params:JSON.stringify(env.params),
|
|
799
|
+
taskId:null
|
|
799
800
|
}
|
|
800
801
|
//这个key如果不多加一个export,会把原有的单据数据覆盖
|
|
801
|
-
var taskInfoId = objPrefix + '_export_' + pigeon.getId()
|
|
802
|
+
// var taskInfoId = objPrefix + '_export_' + pigeon.getId()
|
|
802
803
|
var taskId = JobsService.submitExportTask('@projectCode', 'tasks/export.jsx', {
|
|
803
804
|
query: query,
|
|
804
|
-
env: env
|
|
805
|
-
taskInfoId: taskInfoId,
|
|
805
|
+
env: env
|
|
806
806
|
}, now)
|
|
807
807
|
taskInfo.taskId = '' + taskId
|
|
808
|
-
taskInfo.id = taskInfoId
|
|
809
|
-
var key = pigeon.getRKey(taskInfo.submitTime, 13)
|
|
810
|
-
pigeon.addToList(f.getExportRunningList(), key, taskInfoId)
|
|
811
|
-
pigeon.saveObject(taskInfoId, taskInfo)
|
|
808
|
+
// taskInfo.id = taskInfoId
|
|
809
|
+
// var key = pigeon.getRKey(taskInfo.submitTime, 13)
|
|
810
|
+
// pigeon.addToList(f.getExportRunningList(), key, taskInfoId)
|
|
811
|
+
// pigeon.saveObject(taskInfoId, taskInfo)
|
|
812
|
+
owl_task_infoService.add(taskInfo);
|
|
812
813
|
|
|
813
|
-
return
|
|
814
|
+
return taskInfo.id
|
|
814
815
|
},
|
|
815
816
|
|
|
816
817
|
addDocExportTask: function (docId, env) {
|
|
817
818
|
var now = new Date().getTime()
|
|
818
819
|
var taskInfo = {
|
|
819
|
-
loginUser: f.getEnvValue('$loginUser', env),
|
|
820
|
+
// loginUser: f.getEnvValue('$loginUser', env),
|
|
821
|
+
loginUserId:env.loginUserId,
|
|
820
822
|
submitTime: now,
|
|
821
823
|
startTime: 0,
|
|
822
824
|
processState: 'processing',
|
|
@@ -843,7 +845,8 @@ var @projectCodeService = (function (pigeon) {
|
|
|
843
845
|
addZipExportTask : function(env){
|
|
844
846
|
var now = new Date().getTime()
|
|
845
847
|
var taskInfo = {
|
|
846
|
-
loginUser: f.getEnvValue('$loginUser', env),
|
|
848
|
+
// loginUser: f.getEnvValue('$loginUser', env),
|
|
849
|
+
loginUserId:env.loginUserId,
|
|
847
850
|
submitTime: now,
|
|
848
851
|
startTime: 0,
|
|
849
852
|
processState: 'processing',
|
|
@@ -866,15 +869,11 @@ var @projectCodeService = (function (pigeon) {
|
|
|
866
869
|
},
|
|
867
870
|
|
|
868
871
|
getExportTaskInfo: function (taskInfoId) {
|
|
869
|
-
|
|
872
|
+
return owl_task_infoService.get(taskInfoId);
|
|
870
873
|
},
|
|
871
874
|
|
|
872
875
|
updateExportTaskInfo: function (taskInfoId, taskInfo) {
|
|
873
|
-
|
|
874
|
-
if (oInfo._v == taskInfo._v) {
|
|
875
|
-
taskInfo._v += 1
|
|
876
|
-
pigeon.saveObject(taskInfoId, taskInfo)
|
|
877
|
-
}
|
|
876
|
+
return owl_task_infoService.update(taskInfo);
|
|
878
877
|
},
|
|
879
878
|
|
|
880
879
|
|
|
@@ -1,358 +1,154 @@
|
|
|
1
|
+
//#import Util.js
|
|
2
|
+
//#import @handlers/include/checklogin.jsx
|
|
1
3
|
//#import $@projectCode:services/modelService.jsx
|
|
2
4
|
//#import excel.js
|
|
5
|
+
//#import DateUtil.js
|
|
3
6
|
|
|
4
7
|
|
|
5
8
|
var formSpecs = @formSpecs;
|
|
9
|
+
var spec = @spec;
|
|
6
10
|
|
|
7
|
-
|
|
8
|
-
var keys = fullKey.split(".");
|
|
9
|
-
var curField = formSpecs;
|
|
10
|
-
for(var i=0; i<keys.length; i++){
|
|
11
|
-
if(curField._ft=='field'){
|
|
12
|
-
if(curField.key == fullKey){
|
|
13
|
-
return curField;
|
|
14
|
-
}
|
|
15
|
-
else{
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
else{
|
|
20
|
-
var key = keys[i];
|
|
21
|
-
var fields = curField.fields;
|
|
22
|
-
curField == null;
|
|
23
|
-
for(var j=0; j<fields.length; j++){
|
|
24
|
-
var f = fields[j];
|
|
25
|
-
if(f.origKey == key){
|
|
26
|
-
curField = f;
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
if(curField==null){
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return curField;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
function normalizeValue(value,spec){
|
|
40
|
-
if(value == null){
|
|
41
|
-
return null;
|
|
42
|
-
}
|
|
43
|
-
switch (spec.fieldType){
|
|
44
|
-
case 'string':
|
|
45
|
-
return 's'+value;
|
|
46
|
-
case 'number':
|
|
47
|
-
return 'n' + value;
|
|
48
|
-
case 'date':
|
|
49
|
-
try{
|
|
50
|
-
var d = null;
|
|
51
|
-
if(isNaN(value)){
|
|
52
|
-
d = new Date(value).getTime();
|
|
53
|
-
}
|
|
54
|
-
else{
|
|
55
|
-
d = new Date(Number(value)).getTime();
|
|
56
|
-
}
|
|
57
|
-
return 'd'+ d;
|
|
58
|
-
}
|
|
59
|
-
catch(e){
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
case 'choice':
|
|
63
|
-
for(var i=0; i<spec.options.length; i++){
|
|
64
|
-
var option = spec.options[i];
|
|
65
|
-
if(option[0]==value){
|
|
66
|
-
return 's'+option[1];
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return 's'+value;
|
|
70
|
-
case 'image':
|
|
71
|
-
var final = "";
|
|
72
|
-
for(var i=0; i<value.length; i++){
|
|
73
|
-
var f = value[i];
|
|
74
|
-
final = final + f.url + "\n";
|
|
75
|
-
}
|
|
76
|
-
return 's' + final;
|
|
77
|
-
default:
|
|
78
|
-
return "s"+value;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
function tranverseFields(formSpec, callback, ctx){
|
|
83
|
-
formSpec.fields.forEach( function(field){
|
|
84
|
-
if (field[ '_ft' ] == 'field') {
|
|
85
|
-
callback( field, ctx );
|
|
86
|
-
}
|
|
87
|
-
else if (field[ '_ft' ] == 'subform') {
|
|
88
|
-
var context = { parentField: field }
|
|
89
|
-
tranverseFields( field, callback, context );
|
|
90
|
-
}
|
|
91
|
-
else if (field[ '_ft' ] == 'array') {
|
|
92
|
-
var context = { parentField: field }
|
|
93
|
-
tranverseFields( field, callback, context )
|
|
94
|
-
}
|
|
95
|
-
} );
|
|
96
|
-
}
|
|
11
|
+
main(@projectCodeService, spec);
|
|
97
12
|
|
|
98
|
-
function getMainAndSubFields(exConfig){
|
|
99
|
-
var mainFields = [];
|
|
100
|
-
var subFields = [];
|
|
101
|
-
if (exConfig.fields == "*") {
|
|
102
|
-
tranverseFields(formSpecs,function(field,ctx){
|
|
103
|
-
if (ctx.parentField && ctx.parentField._ft == 'array') {
|
|
104
|
-
//nothing
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
mainFields.push( field );
|
|
108
|
-
}
|
|
109
|
-
},{})
|
|
110
|
-
}
|
|
111
|
-
else{
|
|
112
|
-
for(var i=0; i<exConfig.fields.length; i++){
|
|
113
|
-
var fieldKey = exConfig.fields[i];
|
|
114
|
-
var field = getFieldByKey(fieldKey);
|
|
115
|
-
if(field){
|
|
116
|
-
mainFields.push(field);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
if(exConfig && exConfig.items && exConfig.items.name){
|
|
122
|
-
if(exConfig.items.itemFields=='*'){
|
|
123
|
-
//找到items.name对应的field
|
|
124
|
-
var f = getFieldByKey(exConfig.items.name);
|
|
125
|
-
f.fields.forEach(function(spec){
|
|
126
|
-
if(spec._ft=='field'){
|
|
127
|
-
subFields.push(spec);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
else{
|
|
132
|
-
for(var i=0; i<exConfig.items.itemFields.length; i++){
|
|
133
|
-
var itemField = exConfig.items.itemFields[i];
|
|
134
|
-
var fieldKey = "";
|
|
135
|
-
if(itemField.indexOf("$parent.")==0){
|
|
136
|
-
fieldKey = itemField.substring(8);
|
|
137
|
-
var field = getFieldByKey(fieldKey);
|
|
138
|
-
if(field){
|
|
139
|
-
field.isItemField = false;
|
|
140
|
-
subFields.push(field);
|
|
141
|
-
}
|
|
142
|
-
else{
|
|
143
|
-
$.log("panic!!!!-------------------------++++++++++++++" + fieldKey);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
else{
|
|
148
|
-
fieldKey = exConfig.items.name + "." + itemField;
|
|
149
|
-
var field = getFieldByKey(fieldKey);
|
|
150
|
-
if(field){
|
|
151
|
-
field.isItemField = true;
|
|
152
|
-
subFields.push(field);
|
|
153
|
-
}
|
|
154
|
-
else{
|
|
155
|
-
$.log("panic!!!!-------------------------++++++++++++++" + fieldKey);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
return [mainFields,subFields];
|
|
165
|
-
}
|
|
166
13
|
|
|
167
14
|
|
|
15
|
+
function main(modelService,spec){
|
|
168
16
|
|
|
169
|
-
(function(){
|
|
170
|
-
var spec = @spec;
|
|
171
|
-
var q = JSON.parse(query);
|
|
172
17
|
var ctx = JSON.parse(env);
|
|
173
|
-
var
|
|
174
|
-
|
|
175
|
-
var elasticSearchUrl = $.getEnv( "elasticSearchUrl" );
|
|
176
|
-
|
|
177
|
-
var headers = { "Content-Type": "application/json;charset=utf-8" };
|
|
178
|
-
var elasticSearchUser = $.getEnv( "elasticSearchUser" );
|
|
179
|
-
var elasticSearchPass = $.getEnv( "elasticSearchPass" );
|
|
180
|
-
if (elasticSearchUser && elasticSearchPass) {
|
|
181
|
-
var auth = Base64.encode( elasticSearchUser + ":" + elasticSearchPass );
|
|
182
|
-
var basicAuth = "Basic " + auth;
|
|
183
|
-
headers[ "Authorization" ] = basicAuth;
|
|
184
|
-
}
|
|
185
|
-
var searchUrl = elasticSearchUrl + "/is1erp/_doc/_search";
|
|
186
|
-
|
|
187
|
-
var sndTxt = JSON.stringify( q );
|
|
188
|
-
var s = HttpUtils.postRaw( searchUrl, sndTxt, headers );
|
|
189
|
-
var result = JSON.parse( s );
|
|
18
|
+
var params = ctx.params;
|
|
19
|
+
var key = params.key;
|
|
190
20
|
|
|
21
|
+
/******************************/
|
|
22
|
+
var ret = getRows(modelService, spec);
|
|
23
|
+
var taskInfo = modelService.getExportTaskInfo(taskInfoId);
|
|
24
|
+
taskInfo.processState = "processing";
|
|
25
|
+
taskInfo.percent = 20;
|
|
26
|
+
taskInfo.lastTime = new Date().getTime();
|
|
27
|
+
taskInfo.msg = "获取数据记录完成, 数据条数:" + ret.total;
|
|
28
|
+
modelService.updateExportTaskInfo(taskInfoId, taskInfo);
|
|
29
|
+
/*****************************/
|
|
191
30
|
|
|
192
|
-
var elasticSearchUrl = $.getEnv( "elasticSearchUrl" );
|
|
193
31
|
|
|
194
|
-
|
|
195
|
-
var
|
|
196
|
-
var
|
|
197
|
-
if
|
|
198
|
-
|
|
199
|
-
var basicAuth = "Basic " + auth;
|
|
200
|
-
headers[ "Authorization" ] = basicAuth;
|
|
32
|
+
/****************************************/
|
|
33
|
+
var exportConfig = getExportConfig(spec,key);
|
|
34
|
+
var titleList = exportConfig.cols;
|
|
35
|
+
if(!titleList){
|
|
36
|
+
return;
|
|
201
37
|
}
|
|
202
|
-
var
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
var taskInfo = @projectCodeService.getExportTaskInfo( taskInfoId );
|
|
214
|
-
taskInfo.total = total;
|
|
215
|
-
taskInfo.lastTime = new Date().getTime();
|
|
38
|
+
var recordList = ret.rows.map(function(row){
|
|
39
|
+
var record = {};
|
|
40
|
+
titleList.forEach(function(title){
|
|
41
|
+
var field = title.field;
|
|
42
|
+
var value = modelService.getValue(field,row);
|
|
43
|
+
record[field] = value;
|
|
44
|
+
});
|
|
45
|
+
return record;
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
var taskInfo = modelService.getExportTaskInfo(taskInfoId);
|
|
216
49
|
taskInfo.processState = "processing";
|
|
217
|
-
taskInfo.
|
|
218
|
-
taskInfo.
|
|
50
|
+
taskInfo.percent = 40;
|
|
51
|
+
taskInfo.lastTime = new Date().getTime();
|
|
52
|
+
taskInfo.msg = "准备完数据,正在生成Excel文件......";
|
|
53
|
+
modelService.updateExportTaskInfo(taskInfoId, taskInfo);
|
|
54
|
+
/****************************************/
|
|
219
55
|
|
|
220
|
-
@projectCodeService.updateExportTaskInfo( taskInfoId, taskInfo );
|
|
221
56
|
|
|
222
|
-
|
|
57
|
+
/****************************************/
|
|
58
|
+
var export_fileName = DateUtil.getLongDate(new Date().getTime());
|
|
223
59
|
|
|
224
|
-
var
|
|
225
|
-
$.log('second times=============' + sndTxt);
|
|
226
|
-
var s = HttpUtils.postRaw( searchUrl, sndTxt, headers );
|
|
227
|
-
$.log('second times=============' + s);
|
|
228
|
-
var result = JSON.parse( s );
|
|
60
|
+
var fileUrl = Excel.createExcelList(export_fileName, titleList, recordList);
|
|
229
61
|
|
|
230
|
-
var
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
62
|
+
var taskInfo = modelService.getExportTaskInfo(taskInfoId);
|
|
63
|
+
taskInfo.processState = "succeeded";
|
|
64
|
+
taskInfo.percent = 100;
|
|
65
|
+
taskInfo.lastTime = new Date().getTime();
|
|
66
|
+
taskInfo.msg = "导出文件成功,共导出" + ret.total + "条数据";
|
|
67
|
+
taskInfo.fileUrl = fileUrl;
|
|
68
|
+
modelService.updateExportTaskInfo(taskInfoId, taskInfo);
|
|
69
|
+
/********************************************/
|
|
70
|
+
}
|
|
234
71
|
|
|
235
|
-
|
|
72
|
+
function getExportConfig(spec, key) {
|
|
73
|
+
var meta = spec['#meta'];
|
|
74
|
+
var exportConfigs = meta.export;
|
|
75
|
+
var effectiveExportConfig = null;
|
|
76
|
+
exportConfigs.forEach(function(exportConfig){
|
|
77
|
+
if(exportConfig.key === key){
|
|
78
|
+
effectiveExportConfig = exportConfig;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return effectiveExportConfig;
|
|
82
|
+
}
|
|
236
83
|
|
|
237
|
-
|
|
238
|
-
var row = [];
|
|
84
|
+
function getRows(modelService, spec) {
|
|
239
85
|
|
|
240
|
-
var
|
|
86
|
+
var meta = spec['#meta'];
|
|
87
|
+
var isPublic = meta && meta.isPublic;
|
|
88
|
+
var tableId = 'owl_' + spec._t;
|
|
89
|
+
var ctx = JSON.parse(env);
|
|
90
|
+
var params = ctx.params;
|
|
91
|
+
|
|
92
|
+
var loginId = ctx.loginId;
|
|
93
|
+
var roleId = params.rroleId || ctx.roleId;
|
|
94
|
+
var orgId = params.rorgId || ctx.orgId;
|
|
95
|
+
|
|
96
|
+
var searchArgs = params.searchArgs;
|
|
97
|
+
var templateId = params.templateId;
|
|
98
|
+
|
|
99
|
+
var sort = params.sort;
|
|
100
|
+
var exportRange = params.exportRange;
|
|
101
|
+
var outputTarget = params.outputTarget;
|
|
102
|
+
var ids = params.ids;
|
|
103
|
+
var key = params.key;
|
|
104
|
+
|
|
105
|
+
if (exportRange === "all") {
|
|
106
|
+
var keyword = searchArgs.keyword;
|
|
107
|
+
var mfilters = null;
|
|
108
|
+
delete searchArgs.keyword;
|
|
109
|
+
if (isPublic || orgId === '0') {
|
|
110
|
+
delete searchArgs["_orgIds"];
|
|
111
|
+
} else {
|
|
112
|
+
searchArgs["_orgIds"] = orgId;
|
|
113
|
+
var permissions = getPermissions(roleId,tableId);
|
|
114
|
+
mfilters = getListPermissionFilter(tableId, roleId, orgId, loginId, permissions);
|
|
115
|
+
}
|
|
241
116
|
|
|
242
|
-
|
|
243
|
-
var subFields = [];
|
|
117
|
+
delete searchArgs.recycleBin;
|
|
244
118
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
exConfig = config;
|
|
250
|
-
}
|
|
251
|
-
});
|
|
252
|
-
if (exConfig && exConfig.fields) {
|
|
253
|
-
var fields = getMainAndSubFields(exConfig);
|
|
254
|
-
$.log("getMainAndSubFields=" + JSON.stringify(fields));
|
|
255
|
-
mainFields = fields[0];
|
|
256
|
-
subFields = fields[1];
|
|
257
|
-
|
|
258
|
-
if(mainFields.length>0){
|
|
259
|
-
row.push(exConfig.mainTitleFormat);
|
|
260
|
-
mainFields.forEach( function (f){
|
|
261
|
-
row.push( "s"+f.fieldLabel );
|
|
262
|
-
} );
|
|
263
|
-
rows.push(row);
|
|
264
|
-
}
|
|
265
|
-
else{
|
|
266
|
-
//写入子记录的title一次
|
|
267
|
-
row.push(exConfig.subTitleFormat);
|
|
268
|
-
subFields.forEach( function (spec){
|
|
269
|
-
row.push( "s" + spec.fieldLabel ); //子记录title
|
|
270
|
-
} );
|
|
271
|
-
rows.push(row);
|
|
119
|
+
var pageSize = 100000;
|
|
120
|
+
var from = 0;
|
|
121
|
+
var sort = {
|
|
122
|
+
owl_modifyTime: {order: "desc"}
|
|
272
123
|
}
|
|
273
124
|
|
|
274
|
-
var
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
row.push( value );
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
} );
|
|
292
|
-
rows.push( row );
|
|
293
|
-
}
|
|
294
|
-
//写入子item的title
|
|
295
|
-
if (subFields.length>0) {
|
|
296
|
-
var row = [];
|
|
297
|
-
var grouping = [];
|
|
298
|
-
if(mainFields.length>0 && (objIdx % subTitleInterval)==0){
|
|
299
|
-
//当有主记录的时候才写入子记录的Title
|
|
300
|
-
row.push(exConfig.subTitleFormat);
|
|
301
|
-
subFields.forEach( function (spec){
|
|
302
|
-
row.push( "s" +spec.fieldLabel ); //子记录title
|
|
303
|
-
} );
|
|
304
|
-
rows.push( row );
|
|
305
|
-
grouping[ 0 ] = rows.length - 1;
|
|
306
|
-
}
|
|
307
|
-
var items = obj[exConfig.items.name];
|
|
308
|
-
items && items.forEach && items.forEach( function (item){
|
|
309
|
-
var row = [];
|
|
310
|
-
row.push(exConfig.subRecordFormat);
|
|
311
|
-
subFields.forEach( function (spec){
|
|
312
|
-
if(spec.isItemField){
|
|
313
|
-
var value = item[ spec.origKey ];
|
|
314
|
-
value = normalizeValue(value,spec);
|
|
315
|
-
row.push( value );
|
|
316
|
-
}
|
|
317
|
-
else{
|
|
318
|
-
if(spec.key){
|
|
319
|
-
var value = @projectCodeService.getValue( spec.key, obj );
|
|
320
|
-
value = normalizeValue(value,spec);
|
|
321
|
-
row.push(value);
|
|
322
|
-
}
|
|
323
|
-
else{
|
|
324
|
-
row.push("")
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
}
|
|
328
|
-
} );
|
|
329
|
-
rows.push( row );
|
|
330
|
-
} );
|
|
331
|
-
if(mainFields.length>0){
|
|
332
|
-
grouping[ 1 ] = rows.length - 1;
|
|
333
|
-
groupings.push( grouping );
|
|
125
|
+
var sr = modelService.search(mfilters, searchArgs, keyword, from, pageSize, sort);
|
|
126
|
+
var count = modelService.count(mfilters, searchArgs, keyword );
|
|
127
|
+
return {
|
|
128
|
+
rows: sr.list,
|
|
129
|
+
total: count
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
else if(exportRange=== "selected") {
|
|
133
|
+
var ids = params.ids;
|
|
134
|
+
var rows = [];
|
|
135
|
+
ids.forEach(function(id){
|
|
136
|
+
var row = modelService.get(id);
|
|
137
|
+
if(row){
|
|
138
|
+
rows.push(row);
|
|
334
139
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
taskInfo.processState = "success";
|
|
341
|
-
taskInfo.percent = 70;
|
|
342
|
-
taskInfo.lastTime = new Date().getTime();
|
|
343
|
-
taskInfo.msg = "获取数据记录完成";
|
|
344
|
-
$.log("rows======" + JSON.stringify(rows));
|
|
345
|
-
var fileId = Excel.createExcel( rows, groupings, "export" );
|
|
346
|
-
var taskInfo = @projectCodeService.getExportTaskInfo( taskInfoId );
|
|
347
|
-
taskInfo.processState = "success";
|
|
348
|
-
taskInfo.percent = 100;
|
|
349
|
-
taskInfo.fileId = fileId;
|
|
350
|
-
taskInfo.lastTime = new Date().getTime();
|
|
351
|
-
taskInfo.msg = "生成Excel文件成功";
|
|
352
|
-
@projectCodeService.updateExportTaskInfo(taskInfoId, taskInfo );
|
|
140
|
+
});
|
|
141
|
+
return {
|
|
142
|
+
rows: rows,
|
|
143
|
+
total: rows.length
|
|
144
|
+
}
|
|
353
145
|
}
|
|
354
|
-
|
|
355
|
-
|
|
146
|
+
return {
|
|
147
|
+
rows: [],
|
|
148
|
+
total: 0
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
}
|
|
356
152
|
|
|
357
153
|
|
|
358
154
|
|