zm
2020-05-18 a18bfacbf56b401f6e0fdae8710fbca4df8cff77
commit | author | age
a18bfa 1 package com.changhong.epc.constter.system.prop;
Z 2
3 import com.iemsoft.framework.cloud.core.tools.MsgTool;
4 import com.iemsoft.framework.cloud.core.tools.ObjectUtil;
5 import lombok.Data;
6 import lombok.extern.slf4j.Slf4j;
7 import org.apache.http.client.utils.URIBuilder;
8 import org.springframework.boot.context.properties.ConfigurationProperties;
9 import org.springframework.stereotype.Component;
10
11 import javax.annotation.PostConstruct;
12 import java.net.URISyntaxException;
13 import java.util.HashMap;
14 import java.util.Map;
15 import java.util.Objects;
16
17 @Data
18 @Slf4j
19 @Component
20 @ConfigurationProperties("epc.changhong")
21 public class ChangHongProperties {
22
23     /**
24      * 系统名称
25      */
26     private String systemName;
27
28     /**
29      * 登录后转发路径
30      */
31     private String loginSendRedirect;
32
33     /**
34      * 登录url
35      */
36     private String loginUrl;
37     
38     /**
39      * 登陆后跳转
40      */
41     private String loginCallBack;
42
43     /**
44      * 跳转主页面
45      */
46     private String homeUrl;
47     
48     /**
49      * 国际化信息路径
50      */
51     private String msgPath;
52     
53     /**
54      * 标识 0:测试,1:生产
55      */
56     private String ssoLivemode;
57     
58     /**
59      * 单点访问地址
60      */
61     private String ssoServerHost;
62     
63     /**
64      * 单点-系统id
65      */
66     private String ssoAppId;
67     
68     /**
69      * 单点-系统key
70      */
71     private String ssoAppKey;
72     
73     /**
74      * 单点-私钥
75      */
76     private String ssoSecretKey;
77     
78     /**
79      * 云尚行请求接口id
80      */
81     private String cscId;
82     
83     /**
84      * 云尚行私钥
85      */
86     private String cscPrivateKey;
87
88     /**
89      * 云尚行地址
90      */
91     private String ysx;
92
93
94     /**
95      * 权限中心appKey
96      */
97     private String permissionAppKey;
98
99     /**
100      * 权限中心host
101      */
102     private String permissionHost;
103
104     /**
105      * 权限中心预分配权限数据
106      */
107     private String permissionIds;
108
109     /**
110      * 权限中心私钥
111      */
112     private String permissionSecretKey;
113
114     /**
115      * url地址
116      */
117     private String permissionUrl;
118
119     /**
120      * 版本
121      */
122     private String permissionVersion;
123
124
125     /**
126      * 自定义表单服务URL
127      */
128     private String formServiceUrl;
129
130     /**
131      * 自定义表单服务post
132      */
133     private String formServicePost;
134
135
136     /**
137      * 流程引擎业务系统id
138      */
139     private String processServiceId;
140
141     /**
142      * 流程引擎介入编号
143      */
144     private String processAccessId;
145
146     /**
147      * 流程引擎系统key
148      */
149     private String processAppKey;
150
151     /**
152      * 流程引擎安全验证key
153      */
154     private String processSecurityKey;
155
156     /**
157      * 报表-接入编号
158      */
159     private String reportAccessId;
160
161     /**
162      * 报表-安全验证key
163      */
164     private String reportSecurityKey;
165
166     /**
167      * 报表-业务系统id
168      */
169     private Integer reportServiceId;
170
171     /**
172      * 大用户中心接口url
173      */
174     private Map<PassPortName, ApiInfo> passPort;
175
176     /**
177      * token超时时间
178      */
179     private String tokenTimeOut;
180     
181     @Data
182     public static class ApiInfo{
183         
184         private String url;
185     
186         private Map<String, String> defaultParam;
187     }
188     
189     /**
190      * 用户中心接口code
191      * @author WangYX
192      *
193      */
194     public static enum PassPortName{
195
196         /*---- 通行证 ----*/
197         /**
198          * 获取用户信息
199          */
200         USER_DETIAL,
201
202
203         /*---- 云尚行 ----*/
204
205         // 租户相关接口
206
207         /**
208          * 根据租户id查询租户下的公司列表
209          */
210         FIND_TENANT_TENANTCOMPANYS,
211
212         /**
213          * 获得当前公司组织机构下所有人员
214          */
215         FIND_USERS,
216
217         /**
218          * 根据租户id查询租户对应的组织机构信息
219          */
220         FIND_TENANT_ORGANIZATION,
221
222         /**
223          * 票据纠偏
224          */
225         REST_TENANT_BILLDATA_BILLCORRECT ,
226
227
228         //公司相关接口
229
230         /**
231          * 根据公司id获取所有业务系统
232          */
233         FIND_COMPANY_SYSTEMLIST,
234
235         /**
236          * 根据公司ID和公司父系统appKey获取对应子系统的Key
237          */
238         FIND_TENANT_SUBCOMPANYSYSTEM,
239
240         /**
241          * 根据公司id获取该公司对应的组织结构信息
242          */
243         FIND_COMPANY_ORGANIZATION,
244
245         //企业用户相关接口
246
247         /**
248          * 通过openId查询用户所属的租户和公司信息
249          */
250         FIND_USER_TENANTSANDCOMPANYS,
251
252         /**
253          * 通过openId查询用户所属组织机构
254          */
255         FIND_USER_USERORGS,
256
257         /**
258          * 向云尚行同步用户
259          */
260         ADD_USER_USERTOCSC,
261
262         //组织机构相关接口
263
264         /**
265          * 根据组织机构code查询改组织机构及所有的下级
266          */
267         GET_USER_ORGSOFTREE,
268
269         /**
270          * 根据组织机构code查询该组织机构对应岗位信息
271          */
272         FIND_ORGANIZATION_POSITIONLIST,
273
274         /**
275          * 根据组织机构code查询该组织机构对应用户信息
276          */
277         FIND_ORGANIZATION_USERLIST,
278
279         /**
280          * 根据组织机构code集合查询组织机构名称集合
281          */
282         FIND_ORGANIZATION_NAMELIST,
283
284         /**
285          * 根据公司id获取公司下的组织机构用户岗位信息
286          */
287         FIND_ORGANIZATION_RELATIONDETAIL,
288
289         /**
290          * 根据职位id集合查询职位名称集合
291          */
292         FIND_ORGANIZATION_IDNAMES,
293
294         /**
295          * 获取组织机构版本号
296          */
297         FIND_ORGANIZATION_VERSION,
298
299         /**
300          * 重新审单
301          */
302         ORDER_BACKRULE,
303
304
305         /**
306          * 创建订单
307          */
308         JSON_ORDER_ADDORDER,
309         
310         /**
311          * 固定资产记账
312          */
313         JSON_ORDER_ORDERACCOUNTFYY,
314
315         /**
316          * 不需要参数查询所有租户公司
317          */
318         FIND_TENANT_TENANTANDORG,
319
320
321         /*---- 权限中心 ----*/
322         /**
323          * 功能权限
324          */
325         FUNCTION_PERMISSION,
326         /**
327          * 创建权限
328          */
329         CREATE_PERMISSION,
330
331
332         /*----流程引擎接口大全 ----*/
333
334         /**
335          * 创建流程定义
336          */
337         DEF_CREATE,
338
339         /**
340          * 删除流程定义
341          */
342         DEF_DELETE,
343
344         /**
345          * 部署流程定义
346          */
347         DEF_DEPLOY,
348
349         /**
350          * 流程定义分页查询
351          */
352         DEF_SEACHE,
353
354         /**
355          * 退回流程实例
356          */
357         INST_BACK,
358
359         /**
360          * 设置代理
361          */
362         CREATE_AGENT,
363
364         /**
365          * 创建流程实例
366          */
367         INST_CREATE,
368
369         /**
370          * 撤销流程实例
371          */
372         INST_DRAWBACK,
373
374         /**
375          * 删除代理关系
376          */
377         AGENT_DELETE,
378
379         /**
380          * 结束流程实例
381          */
382         INST_OVER,
383
384         /**
385          * 设置代办
386          */
387         CREATE_CHARGE,
388
389         /**
390          * 执行流程实例
391          */
392         INST_FINISH,
393
394         /**
395          * 修改代理关系
396          */
397         AGENT_UPDATE,
398
399         /**
400          * 查询流程待办(都为空查询所有待办信息)
401          */
402         SEACHE_HANDLE,
403
404         /**
405          * 流程实例log(参数为空即查询所有)
406          */
407         INST_LOG,
408
409         /**
410          * 获取所有可退回项目
411          */
412         GET_BACK,
413
414         /**
415          * 查询代理(参数为空即查询所有信息)
416          */
417         INST_AGENT,
418
419         /**
420          * 查询代理去除流程定义信息
421          */
422         AGENT_DEFMSG,
423
424         /**
425          * 查询流程实例(参数都为空,即查询所有)
426          */
427         INST_SEACHE,
428
429         /**
430          * 返回安全码,用于拼接流程图路径
431          */
432         GET_USERINFO,
433
434         /**
435          * 租户注册中心
436          */
437         APP_CREATE,
438
439         /**
440          * 初始化租户
441          */
442         UBP_INITIALIZATION,
443
444         /**
445          * 检查租户是否初始化
446          */
447         UBP_CHECK,
448
449
450         /*----差旅接口大全 ----*/
451
452         /**
453          * 差旅系统订单电子数据记账接口
454          */
455         ORDER_ORDERACCOUNT,
456
457         /**
458          * 订单规则检查接口
459          */
460         ORDER_RULE_CHECK,
461
462         /**
463          * 获取订单图片数据接口
464          */
465         GET_ORDERPIC,
466
467         /**
468          * 获取云尚行管理中心的业务类型数据
469          */
470         GET_ORDER_TYPEDEFINELIST,
471
472         /**
473          * 获取云尚行指定公司的业务类型数据
474          */
475         GET_BUS_TYPEBYCOMP,
476
477         /**
478          * 获取租户主数据定义
479          */
480         GET_TENANT_DEFINEMASTER,
481
482         /**
483          * 获取租户主数据元素
484          */
485         GET_TENANT_ELEMASTER,
486
487         /**
488          *  获得租户主数据value
489          */
490         GET_TENANT_VALUEMASTER,
491
492         /**
493          * 获取通用主数据定义
494          */
495         GET_CURRENCY_DEFINEMASTER,
496
497         /**
498          * 获取通用主数据元素
499          */
500         GET_CURRENCY_ELEMASTER,
501
502         /**
503          *  获得通用主数据value
504          */
505         GET_CURRENCY_VALUEMASTER,
506
507         /**
508          * 修改用户信息
509          */
510         UPDATE_USERINFO,
511
512         /**
513          * 引用报表、图表、透视图
514          */
515         REPORT_WIDGET_SAVEREF,
516
517         /**
518          * 预览报表、图表、透视图
519          */
520         REPORT_WIDGET_PREVIEW
521
522     }
523     
524     public String getPassUrl(PassPortName ppn, Map<String, Object> param){
525         ApiInfo ai = passPort.get(ppn);
526         if(ai == null){
527             return "";
528         }
529         Map<String, Object> allParam = ai.defaultParam == null ? new HashMap<>() : new HashMap<>(ai.defaultParam);
530         if(ObjectUtil.notEmpty(param)){
531             allParam.putAll(param);
532         }
533         if(ObjectUtil.empty(allParam)){
534             return ai.url;
535         }
536         return getParam(ai.url, allParam);
537     }
538
539     @SuppressWarnings("deprecation")
540     public String getParam(String url, Map<String, Object> param){
541         try {
542             URIBuilder uriBuilder = new URIBuilder();
543             param.entrySet().stream().forEach(p->uriBuilder.addParameter(p.getKey(), Objects.toString(p.getValue(), "")));
544             return url + uriBuilder.build().toString();
545         } catch (URISyntaxException e) {
546             log.error(e.getMessage(), e);
547             return "";
548         }
549     }
550
551     @PostConstruct
552     public void init(){
553         if(ObjectUtil.notEmpty(msgPath)){
554             MsgTool.setPrefix(msgPath);
555            }else{
556             log.error("msg-path === null");
557            }
558     }
559 }