owl-cli 6.71.0 → 6.74.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.
@@ -0,0 +1,77 @@
1
+ //#import Util.js
2
+ //#import base64.js
3
+ //#import HttpUtil.js
4
+ //#import session.js
5
+ //#import $@projectCode:services/modelService.jsx
6
+ //#import @handlers/include/checklogin.jsx
7
+ //#import @handlers/include/util.jsx
8
+
9
+
10
+
11
+ function main(){
12
+ var env = checklogin();
13
+ if(!env){
14
+ return;
15
+ }
16
+ var shopId = env.shopId;
17
+ var warehouseId = env.warehouseId;
18
+ var loginId = env.loginId;
19
+ var roleId = env.roleId;
20
+ var orgId = env.orgId;
21
+ var spec = @spec;
22
+ var tableId = 'owl_' + spec._t;
23
+ var m = shopId;
24
+ ///////////////////////////////
25
+
26
+ //判断是subplatform,还是shop,还是platform
27
+ var params = JSON.parse($body);
28
+ var searchArgs = params.searchArgs;
29
+ var templateId = params.templateId;
30
+
31
+ var sort = params.sort;
32
+ var exportRange = params.exportRange;
33
+ var outputTarget = params.outputTarget;
34
+ var docs = null;
35
+
36
+ var taskParams = {
37
+ searchArgs:searchArgs,
38
+ roleId:roleId,
39
+ tableId:tableId,
40
+ sort:sort,
41
+ orgId:orgId,
42
+ loginId:loginId,
43
+ exportRange:exportRange,
44
+ outputTarget:outputTarget,
45
+ templateId:templateId
46
+ }
47
+
48
+ var now = new Date().getTime();
49
+ var taskInfo = {
50
+ submitDate: now,
51
+ appId:'@projectCode',
52
+ pageId:'tasks/exportExTask.jsx',
53
+ state:'notstart',
54
+ params:JSON.stringify(taskParams)
55
+ };
56
+ owl_task_infoService.add(taskInfo);
57
+ var taskInfoId = taskInfo.id;
58
+ JobsService.submitExportTask('@projectCode', 'tasks/exportExTask.jsx',{
59
+ taskParams:taskParams,
60
+ taskInfoId:"" + taskInfoId
61
+ },now);
62
+
63
+ var ret = {
64
+ state:'ok',
65
+ taskInfoId : taskInfoId
66
+ }
67
+ out.print(JSON.stringify(ret));
68
+ return;
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+ }
77
+ main();
@@ -9,7 +9,7 @@ function isScalar(o){
9
9
  }
10
10
 
11
11
  function isEqual(r1,r2){
12
- var ignoreKeys = ['_type','_matched','_v','_m'];
12
+ var ignoreKeys = ['_type','_matched','_v','_m','key'];
13
13
  if(r1==null && r2==null){
14
14
  return true;
15
15
  }
@@ -141,7 +141,7 @@ function isArrayEqual(a1,a2){
141
141
  return false;
142
142
  }
143
143
  for(var i=0; i<a1.length; i++){
144
- if(a1[i]!==a2[i]){
144
+ if(!isEqual(a1[i],a2[i])){
145
145
  return false;
146
146
  }
147
147
  }
@@ -0,0 +1,61 @@
1
+ function buildSort(sort){
2
+ if(!sort){
3
+ return {};
4
+ }
5
+ var result = [];
6
+ for(var k in sort){
7
+ var direction = sort[k];
8
+ if(direction === 'ascend'){
9
+ var sortItem = {};
10
+ sortItem[k] = [{"order":"asc"}]
11
+ result.push(sortItem);
12
+ }
13
+ else if(direction === 'descend'){
14
+ var sortItem = {};
15
+ sortItem[k] = [{"order":"desc"}]
16
+ result.push(sortItem);
17
+ }
18
+ }
19
+ return result;
20
+ }
21
+
22
+ function getKeywordQuery(keyword){
23
+ if(keyword && trim(keyword).length>0){
24
+ return "\"" + trim(keyword) + "\""
25
+ }
26
+ else{
27
+ return "*"
28
+ }
29
+ }
30
+
31
+ function getFilters(searchArgs){
32
+ delete searchArgs.keyword;
33
+ var filters = [];
34
+ for(var k in searchArgs){
35
+ var v = searchArgs[k];
36
+ if(typeof(v)=='object' && Array.isArray(v)){
37
+ var range={}
38
+ range[k] = {
39
+ 'gte':v[0],
40
+ 'lte':v[1]
41
+ }
42
+ filters.push({range:range});
43
+ }
44
+ else if(typeof(v)=='object' && v.type==='terms'){
45
+ var terms = {};
46
+ if(v.values){
47
+ terms[k + ".keyword"] = v.values;
48
+ filters.push({terms:terms});
49
+ }
50
+ }
51
+ else{
52
+ var term = {};
53
+ if(v){
54
+ term[k+".keyword"] = trim('' + v)
55
+ filters.push({term:term})
56
+ }
57
+ }
58
+ }
59
+
60
+ return filters;
61
+ }
@@ -133,6 +133,7 @@ function buildSort(sort){
133
133
  })
134
134
  }
135
135
  }
136
+
136
137
  }
137
138
  return filters;
138
139
  }
@@ -0,0 +1,217 @@
1
+ //#import Util.js
2
+ //#import base64.js
3
+ //#import HttpUtil.js
4
+ //#import session.js
5
+ //#import $@projectCode:services/modelService.jsx
6
+ //#import @handlers/include/checklogin.jsx
7
+ //#import @handlers/include/util.jsx
8
+ //#import $owl_dfiles:services/modelService.jsx
9
+
10
+ function getAllDocs(searchArgs,sort,tableId,roleId,orgId,loginId,permissions){
11
+ var keyword = searchArgs.keyword;
12
+ var effectiveSort = buildSort(sort);
13
+ var filters = getFilters(searchArgs);
14
+ var permissionFilter = getListPermissionFilter(tableId,roleId,orgId,loginId,permissions);
15
+
16
+ if(permissionFilter){
17
+ filters.push(permissionFilter);
18
+ }
19
+
20
+ var from = 0;
21
+ var size = 9999;
22
+ var query = {
23
+ "query": {
24
+ "bool": {
25
+ "must": {
26
+ "query_string": {
27
+ "query":getKeywordQuery(keyword)
28
+ }
29
+ },
30
+ "must_not": {
31
+ "match": {
32
+ "del": "T"
33
+ }
34
+ },
35
+ "filter": filters
36
+ }
37
+ },
38
+ "from" : from, "size" : size,
39
+ sort:effectiveSort || [{owl_createTime:{order:"desc"}}]
40
+ }
41
+
42
+ var elasticSearchUrl = $.getEnv( "elasticSearchUrl" );
43
+
44
+ var headers = { "Content-Type": "application/json;charset=utf-8" };
45
+ var elasticSearchUser = $.getEnv("elasticSearchUser");
46
+ var elasticSearchPass = $.getEnv("elasticSearchPass");
47
+ if(elasticSearchUser && elasticSearchPass){
48
+ var auth =Base64.encode(elasticSearchUser + ":" + elasticSearchPass);
49
+ var basicAuth = "Basic " + auth;
50
+ headers["Authorization"] = basicAuth;
51
+ }
52
+ var searchUrl = elasticSearchUrl+"/@projectCode/_search";
53
+ var sndTxt = JSON.stringify(query);
54
+ $.log(sndTxt);
55
+
56
+ var s = HttpUtils.postRaw( searchUrl, sndTxt, headers);
57
+ var result = JSON.parse(s);
58
+
59
+ var hits = result.hits.hits;
60
+
61
+ if(hits){
62
+ var objs = hits.map(function(hit){return hit._source});
63
+ return objs;
64
+ }
65
+ return [];
66
+
67
+ }
68
+
69
+ function getDocsByIds(ids){
70
+ var docs = @projectCodeService.getObjects(ids);
71
+ return docs;
72
+ }
73
+
74
+ function main(){
75
+
76
+ var template = owl_excel_templatesService.get(templateId);
77
+ if(!template || !template.template){
78
+ $.log("没有配置模版,templateId=" + templateId);
79
+ return null;
80
+ }
81
+
82
+ var templateId = taskParams.templateId;
83
+
84
+ var templateUrl = template.template[0].url;
85
+
86
+ var loginId = taskParams.loginId;
87
+ var roleId = taskParams.roleId;
88
+ var orgId = taskParams.orgId;
89
+ var spec = @spec;
90
+ var tableId = taskParams.tableId;
91
+ var permissions = getPermissions(roleId,tableId);
92
+
93
+ ///////////////////////////////
94
+
95
+ //判断是subplatform,还是shop,还是platform
96
+ var searchArgs = taskParams.searchArgs;
97
+
98
+ var sort = taskParams.sort;
99
+ var exportRange = taskParams.exportRange;
100
+ var outputTarget = taskParams.outputTarget;
101
+ var docs = null;
102
+
103
+
104
+ if(exportRange === "all"){
105
+ docs = getAllDocs(searchArgs,sort,tableId,roleId,orgId,loginId,permissions);
106
+ }
107
+ else{
108
+ var ids = params.ids;
109
+ docs = getDocsByIds(ids);
110
+ }
111
+ if(template.exportType==='doc'){
112
+ if(outputTarget==='multifile'){
113
+ for(var i=0; i<docs.length; i++){
114
+ var exportDoc = docs[i];
115
+ var fileId = Excel.generateExcelFromTemplate( templateUrl, exportDoc );
116
+ if(template.toField){
117
+ var id=exportDoc.id;
118
+ var doc = @projectCodeService.get(id);
119
+ var url = FileService.getFullPath(fileId);
120
+ var docName =template.name + "_" +fileId;
121
+
122
+ doc[template.toField] = {
123
+ url: "" + url,
124
+ fileId: "" + fileId,
125
+ name:"" + docName
126
+ }
127
+ @projectCodeService.update(doc);
128
+ }
129
+ else{
130
+ var url = FileService.getFullPath(fileId);
131
+
132
+ var docName =template.name + "_" +fileId;
133
+
134
+ if(exportDoc.name){
135
+ docName = exportDoc.name + "_" +template.name;
136
+ }
137
+ else{
138
+ docName = exportDoc.id + "_" +template.name;
139
+ }
140
+
141
+ var download = {
142
+ templateId:templateId,
143
+ templateName:template.name,
144
+ description:docName,
145
+ _orgId:orgId,
146
+ _orgIds:[orgId],
147
+ file:{
148
+ url: "" + url,
149
+ fileId: "" + fileId,
150
+ name:"" + docName
151
+ }
152
+ }
153
+
154
+ owl_dfilesService.add(download);
155
+ }
156
+ }
157
+ }
158
+ else if(outputTarget==='singlefile'){
159
+ //single file
160
+ var urls = [];
161
+ for(var i=0; i<docs.length; i++){
162
+ var exportDoc = docs[i];
163
+ var fileId = Excel.generateExcelFromTemplate( templateUrl, exportDoc );
164
+ var url = FileService.getFullPath(fileId);
165
+ urls.push(url);
166
+ }
167
+
168
+ var fileId = $.zipUrls(urls,taskParams.password);
169
+ var fileUrl = FileService.getFullPath(fileId);
170
+ var docName =template.name + "_" +fileId;
171
+ var download = {
172
+ templateId:templateId,
173
+ templateName:template.name,
174
+ description:JSON.stringify(taskParams),
175
+ _orgId:orgId,
176
+ _orgIds:[orgId],
177
+ file:{
178
+ url: "" + fileUrl,
179
+ fileId: "" + fileId,
180
+ name:"" + docName
181
+ }
182
+ }
183
+
184
+ owl_dfilesService.add(download);
185
+ }
186
+ }
187
+ else if(template.exportType==='list'){
188
+ var theDoc = {docs:docs}
189
+ var fileId = Excel.generateExcelFromTemplate( templateUrl, theDoc );
190
+ var fileUrl = FileService.getFullPath(fileId);
191
+ var docName =template.name + "_" +fileId;
192
+ var download = {
193
+ templateId:templateId,
194
+ templateName:template.name,
195
+ description:JSON.stringify(taskParams),
196
+ _orgId:orgId,
197
+ _orgIds:[orgId],
198
+ file:{
199
+ url: "" + fileUrl,
200
+ fileId: "" + fileId,
201
+ name:"" + docName
202
+ }
203
+ }
204
+ owl_dfilesService.add(download);
205
+ }
206
+
207
+ var taskInfo = owl_task_infoService.get(taskInfoId);
208
+ taskInfo.state = "success";
209
+ taskInfo.percent = 100;
210
+ taskInfo.endDate = new Date().getTime();
211
+ taskInfo.state = "succeeded";
212
+ taskInfo.msg = "生成Excel文件成功";
213
+ owl_task_infoService.update(taskInfo);
214
+
215
+
216
+ }
217
+ main();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "owl-cli",
3
- "version": "6.71.0",
3
+ "version": "6.74.0",
4
4
  "main": "index.js",
5
5
  "preferGlobal": true,
6
6
  "bin": {