owl-cli 6.179.0 → 6.180.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,36 @@ 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
805
|
env: env,
|
|
805
806
|
taskInfoId: taskInfoId,
|
|
806
807
|
}, now)
|
|
807
808
|
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)
|
|
809
|
+
// taskInfo.id = taskInfoId
|
|
810
|
+
// var key = pigeon.getRKey(taskInfo.submitTime, 13)
|
|
811
|
+
// pigeon.addToList(f.getExportRunningList(), key, taskInfoId)
|
|
812
|
+
// pigeon.saveObject(taskInfoId, taskInfo)
|
|
813
|
+
owl_task_infoService.add(taskInfo);
|
|
812
814
|
|
|
813
|
-
return
|
|
815
|
+
return taskInfo.id
|
|
814
816
|
},
|
|
815
817
|
|
|
816
818
|
addDocExportTask: function (docId, env) {
|
|
817
819
|
var now = new Date().getTime()
|
|
818
820
|
var taskInfo = {
|
|
819
|
-
loginUser: f.getEnvValue('$loginUser', env),
|
|
821
|
+
// loginUser: f.getEnvValue('$loginUser', env),
|
|
822
|
+
loginUserId:env.loginUserId,
|
|
820
823
|
submitTime: now,
|
|
821
824
|
startTime: 0,
|
|
822
825
|
processState: 'processing',
|
|
@@ -843,7 +846,8 @@ var @projectCodeService = (function (pigeon) {
|
|
|
843
846
|
addZipExportTask : function(env){
|
|
844
847
|
var now = new Date().getTime()
|
|
845
848
|
var taskInfo = {
|
|
846
|
-
loginUser: f.getEnvValue('$loginUser', env),
|
|
849
|
+
// loginUser: f.getEnvValue('$loginUser', env),
|
|
850
|
+
loginUserId:env.loginUserId,
|
|
847
851
|
submitTime: now,
|
|
848
852
|
startTime: 0,
|
|
849
853
|
processState: 'processing',
|
|
@@ -866,15 +870,11 @@ var @projectCodeService = (function (pigeon) {
|
|
|
866
870
|
},
|
|
867
871
|
|
|
868
872
|
getExportTaskInfo: function (taskInfoId) {
|
|
869
|
-
|
|
873
|
+
return owl_task_infoService.get(taskInfoId);
|
|
870
874
|
},
|
|
871
875
|
|
|
872
876
|
updateExportTaskInfo: function (taskInfoId, taskInfo) {
|
|
873
|
-
|
|
874
|
-
if (oInfo._v == taskInfo._v) {
|
|
875
|
-
taskInfo._v += 1
|
|
876
|
-
pigeon.saveObject(taskInfoId, taskInfo)
|
|
877
|
-
}
|
|
877
|
+
return owl_task_infoService.update(taskInfo);
|
|
878
878
|
},
|
|
879
879
|
|
|
880
880
|
|
|
@@ -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
|
|