1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
// **********************************************************************
//
// Copyright (c) 2008-2023 VCI-Tech, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described the
// ICE_LICENSE file included this distribution.
//
// **********************************************************************
 
#pragma once
 
#include "01-common.ice"
 
[["java:package:com.vci.corba"]]
["cs:namespace:com.vci.corba"]
 
 
// module com {
// module vci {
// module corba {
module framework {
    //data
    module data {
        /** AppConfigCategory 对象 **/
        struct AppConfigCategoryInfo{
            string id;
            string name;
            string desc;
        }
        sequence<AppConfigCategoryInfo> AppConfigCategoryInfoList;
        /** AppConfigDetail 对象 **/
        struct AppConfigDetailInfo{
            string id;
            string name;
            string desc;
            string key;
            string value;
            string categoryId;
        }
        sequence<AppConfigDetailInfo> AppConfigDetailInfoList;
 
        //密码组合方式 
        struct CombinationInfo {
            string id;
            string name; 
            string description; 
            long createTime; 
            string createUser; 
            long updateTime; 
            string updateUser;     
            string grantor;                       
        }; 
        sequence<CombinationInfo> CombinationInfoList;
        //密码组合方式取值
        struct CombinationValueInfo {
            string id;  
            string value; 
            string parentId;
        };
        sequence<CombinationValueInfo> CombinationValueInfoList;
        //部门对象       
        struct DeptInfo { 
            string id;             // 部门ID
            string name;             // 部门名称
            string num;             // 部门编号
            string specialties;    // 部门专业
            string code;            // 部门代号
            short status;             // 部门状态
            string description;     // 部门描述
            string parentId; 
            long createTime; 
            string createUser; 
            long updateTime; 
            string updateUser; 
            string grantor; 
        }; 
        sequence<DeptInfo> DeptInfoList; 
        //角色对象
        struct RoleInfo { 
            string id; 
            string name; 
            string description;
            short type;
            long createTime;
            string createUser;
            long updateTime;
            string updateUser;    
            string grantor;                       
        };
        sequence<RoleInfo> RoleInfoList;
            
        struct UserInfo { 
            string id;             // 用户ID
            string userName;        // 用户账号
            string pwd;            // 用户密码
            string trueName;        // 真实姓名
            string specialties;      // 用户专业
            string email;            // email
            string desc;            // 描述
            short userType;            // 用户类型
            short status;            // 用户状态
            long createTime;
            string createUser;
            long updateTime;
            string updateUser;
            long pwdUpdateTime;
            string grantor;
            string secretGrade;
            string isDeptLeader;
        };
        sequence<UserInfo> UserInfoList; 
        //密码策略
        struct PasswordStrategyInfo{ 
            string id; 
            string name;            // 名称
            short passwordLen;        // 最小长度
            short passwordMaxLen;    // 最大长度
            short charTypes;        // 包含符号类型,0x01-数字;0x02-小写字母;0x04-大写字母;0x08-键盘符号
            short requiredType;        // 描述必须包含的字符类型数量
            short overdueDay;        // 过期天数
            short remideDay;        // 提醒天数
            short retryTime;        // 重试次数
            short lockTime;            // 锁定时间将
            bool isDefault;            // 是否默认
            string desc;            // 描述
            long createTime;
            string createUser;
            long updateTime;
            string updateUser;
            string grantor;
        };
        sequence<PasswordStrategyInfo> PasswordStrategyInfoList;
            
        /** 登录账户信息 **/
        struct UserLogonInfo {
            string pluserOid;
            short plWrongNum;
            long plLogonTime;
        };
        sequence<UserLogonInfo> UserLogonInfoList;
        /**---------------------------系统配置模块-------------------------------**/
        //系统配置表对象
        struct SystemCfgInfo {
            string id;//ID
            string name;//配置名称
            string value;//对应的值
        }; 
        sequence<SystemCfgInfo> SystemCfgInfoList;
    
        /**   SpecialCharClsfInfo: 特殊字符分类对象   SpecialCharClsfInfoList: 特殊字符分类对象数组
            * @param id , 特殊字符分类id,主键
            * @param name, 特殊字符分类名称
            * @param desc,特殊字符分类描述
            * @param parentId,特殊字符分类父id
        */
        struct SpecialCharClsfInfo {
            string id; 
            string name;
            string desc; 
        };
        sequence<SpecialCharClsfInfo> SpecialCharClsfInfoList;
            
        /**   SpecialCharInfo: 特殊字符对象   SpecialCharInfoList: 特殊字符对象数组
            * @param id , 特殊字符id,主键
            * @param value, 特殊字符值
            * @param parentId,特殊字符父id
            */
        struct SpecialCharInfo {
            string id; 
            string value;
            string parentId;
        };
        sequence<SpecialCharInfo> SpecialCharInfoList;
                    
        /**
            * 功能模块对象
            */
        struct FunctionInfo {
            string id;//ID
            string name;//名称
            string parentId;//父ID
            string resourceC;//C/S标识
            string resourceB;//B/S标识
            string suffixC;//C/S后缀
            string suffixB;//B/S后缀
            long seq;//模块序号
            //long moduleNo;//模块编号
            string image;//简图
            string desc;//描述
            bool isValid;//是否有效,1有效,0无效
            string aliasName;//别名
            string resourceDotNet;//.Net功能模块路径
            string resourceMobile;//Mobile功能模块路径
        };
        sequence<FunctionInfo> FunctionInfoList;
        /**
            *操作类型对象
            */
        struct OperateInfo{
            string id;
            string name;
            string identify;
            string alias;
            string desc;
            long seq;
        };
        sequence<OperateInfo> OperateInfoList;
        /**
            *模块操作对象
            */
        struct FuncOperationInfo {
            string id;
            string funcId;
            string operId;
            string operName;
            string operIndentify;
            string operAlias;
            string operDesc;
            long number;
            bool isValid;
        };
        sequence<FuncOperationInfo> FuncOperationInfoList;
 
        /**
            *角色权限对象
            */
        struct RoleRightInfo{ 
            string id;
            string roleId;
            string funcId;
            long rightValue;
            short rightType;
            string createUser;
            long createTime;
            string modifyUser;
            long modifyTime;
            string licensor;
        };
        sequence<RoleRightInfo> RoleRightInfoList;
 
        //数据库信息
        struct DataSourceInfo{
            string tbSpaceName;    // 表空间名称
            string tbSpaceTotal;    // 表空间总大小
            string tbSpaceUsed;    // 表空间使用量
            string pllogCount;        // 日志记录数量
            string pllogFileSize;     // 日志占用空间大小
        }
        sequence<DataSourceInfo> DataSourceInfoList;
        
        /**
            *专业信息
            */
        struct SpecialtyInfo{
            string id;        // ID号
            string name;    // 名称
            string code;    // 编码
            string desc;    // 描述
        };
        sequence<SpecialtyInfo> SpecialtyInfoList;
 
        /**
            * 机器密级信息
            **/
        struct MachSecurityInfo{
            string id;                // ID号
            string name;            // 机器名称
            string ipAddress;        // IP地址
            string macAddress;        // Mac地址
            short secretGrade;        // 密级
            string creator;            // 创建
            long createTime;        // 创建时间
            string modifier;        // 修改者
            long modifyTime;        // 修改时间
            string desc;            // 描述
        };
        sequence<MachSecurityInfo> MachSecurityInfoList;
        
        /**卷配置信息**/
        struct PvolumeInfo {                    
            string id;        //卷id
            string name;    //卷名称
            string host;   //卷所在的服务器
            string service;//卷所在的服务
            short type;        //卷服务器类型
            string path;    //卷所在服务器路径    
            bool isvalid;     //是否为首选路径                      
        };
        sequence<PvolumeInfo> PvolumeInfoList;
        
        // 数据鉴权
        struct CheckValue{
            string users;
            string roles;
            string userGroups;
            string paramValues;
            string businesstype;
            string opname;
            string objectoid;
            string objectroid;
            string objectmoid;
        };
 
        // 数据授权
        struct GrandValue{
            string ID;
            string users;
            string roles;
            string userGroups;
            string identifier;
            string expToSQL;
            byte isGrand;
            string ruleText;
            string seniorRuleText;
            string ruleName;
            string ruleType;
            string lexpToSQL;
            string lruleText;
            string lseniorRuleText;
        };//Value
        sequence<GrandValue> GrandValueArray;
        
    };//end data
 
    interface FrameworkService {
        // 测试系统是否能连通
        bool test() throws common::VCIError;
 
        /**验证登录**/
        data::UserInfo checkLogin(string userName,string password) throws common::VCIError;
 
        data::UserInfo checkLoginForBS(string userName,string password) throws common::VCIError;
 
        data::UserInfo getUserObjectByUserName(string userName) throws common::VCIError;
 
        data::UserInfo checkByToken(string token) throws common::VCIError;
 
        // 是否启用用户权限校验
        bool userSecuritySwith() throws common::VCIError;
        // 是否启用机器权限校验
        bool ipSecuritySwitch() throws common::VCIError;
        // 是否默认有权
        string defaultHasRight() throws common::VCIError;
 
        //flag:nonsys删除非系统模块
        //flag:business删除业务模块
        bool deleteModules(string flag)throws common::VCIError;
        common::data::StringArray getClientDeployJarPath() throws common::VCIError;
        
        /** AppConfigCategory 对象接口 **/
        // 添加、保存 AppConfigCategory 对象 
        string saveAppConfigCategory(data::AppConfigCategoryInfo info, common::data::UserEntityInfo userEntity) throws common::VCIError;
        // 修改、更新 AppConfigCategory 对象 
        bool updateAppConfigCategory(data::AppConfigCategoryInfo info, common::data::UserEntityInfo userEntity) throws common::VCIError;
        // 根据ID删除  AppConfigCategory 对象(批量)
        bool deleteAppConfigCategory(common::data::StringArray ids, common::data::UserEntityInfo userEntity) throws common::VCIError;
        // 返回全部  AppConfigCategory 对象
        data::AppConfigCategoryInfoList getAppConfigCategorys(common::data::UserEntityInfo userEntity) throws common::VCIError;
        // 根据ID返回  AppConfigCategory 对象
        data::AppConfigCategoryInfo getAppConfigCategoryById(string id, common::data::UserEntityInfo userEntity) throws common::VCIError;
        /** AppConfigDetail 对象接口 **/
        // 添加、保存 AppConfigDetail 对象 
        string saveAppConfigDetail(data::AppConfigDetailInfo info, common::data::UserEntityInfo userEntity) throws common::VCIError;
        // 修改、更新 AppConfigDetail 对象 
        bool updateAppConfigDetail(data::AppConfigDetailInfo info, common::data::UserEntityInfo userEntity) throws common::VCIError;
        // 根据ID删除  AppConfigDetail 对象(批量)
        bool deleteAppConfigDetail(common::data::StringArray ids, common::data::UserEntityInfo userEntity) throws common::VCIError;
        // 返回全部  AppConfigDetail 对象
        data::AppConfigDetailInfoList getAppConfigDetails(common::data::UserEntityInfo userEntity) throws common::VCIError;
        // 返回指定分类的全部  AppConfigDetail 对象
        data::AppConfigDetailInfoList getAppConfigDetailsByCatId(string clsfId, common::data::UserEntityInfo userEntity) throws common::VCIError;
        data::AppConfigDetailInfoList getAppConfigDetailsByCategory(string catName, common::data::UserEntityInfo userEntity) throws common::VCIError;
        
        // 根据ID返回  AppConfigDetail 对象
        data::AppConfigDetailInfo getAppConfigDetailById(string id, common::data::UserEntityInfo userEntity) throws common::VCIError;
        // 根据配置Key返回  AppConfigDetail 对象
        data::AppConfigDetailInfo getAppConfigDetailByKey(string key, common::data::UserEntityInfo userEntity) throws common::VCIError;
        // 根据配置Key返回  AppConfigDetail 对象
        data::AppConfigDetailInfoList getAppConfigDetailsByName(string name, common::data::UserEntityInfo userEntity) throws common::VCIError;
                    
        /** 根据key获取conf.properties中的参数值
            fileResourcePath:资源文件路径  
            比如:/properties/conf.properties,xxx.properties 文件在项目主目录的properties文件夹下
            或者:properties/xxx.properties,xxx.properties 文件在src/properties/文件夹下
            如果传入空值,则从 /properties/conf.properties 中读取
            key:
        **/
        string getConfigValue(string key) throws common::VCIError;
                
        //得到一个随即的36位数
        string getRandomGUID36() throws common::VCIError; 
                
        /***************************系统功能模块start**************************/
        //保存模块
        string saveModule(data::FunctionInfo function,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //更新模块
        string updateModule(data::FunctionInfo function,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //删除模块
        string deleteModule(string moduleId,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //获取自动生成的编号
        //long getAutoModuleNo() throws common::VCIError;
        //获取子级模块
        data::FunctionInfoList getModuleListByParentId(string parentId,bool isAll) throws common::VCIError;
        data::FunctionInfoList getModuleListByParentIdForBS(string parentId,bool isAll) throws common::VCIError;
        data::FunctionInfoList getModuleListByParentIdForCS(string parentId,bool isAll) throws common::VCIError;
        //获取所有子级模块
        data::FunctionInfoList getChildrenFunctionsByParentId(string parentId,bool isAll) throws common::VCIError;
        //获取用户有权限的子级模块列表
        data::FunctionInfoList getModuleListByRoleRight(string parentId,string userName) throws common::VCIError;
        data::FunctionInfoList getModuleListByRoleRightForBS(string parentId,string userName) throws common::VCIError;
        //根据class查询模块对象
        data::FunctionInfo getModuleByClass(string classPath) throws common::VCIError;
        //根据funcOid查询模块对象
        data::FunctionInfo getFunctionObjectById(string funcOid) throws common::VCIError;
        //根据模块名称查询模块对象
        data::FunctionInfo getModuleByName(string moduleName) throws common::VCIError;
        //检查模块下是挂接模块还是挂接操作,true为挂接模块
        long checkChildObject(string moduleId) throws common::VCIError;
        //保存操作
        string saveOperate(data::OperateInfo operate,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //修改操作
        string updateOperate(data::OperateInfo operate,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //删除操作
        bool deleteOperate(string id,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //获取全部操作列表(参数模块ID不为空的时候获取除该模块下操作之外的全部操作)
        data::OperateInfoList getOperateTreeList(string moduleId) throws common::VCIError;
        //检查操作是否被引用
        long checkOperateIsReferenced(string operateId) throws common::VCIError;
        //通过标识获取操作
        data::OperateInfo getOperateByIdentify(string identify) throws common::VCIError;
        //通过名称获取操作
        data::OperateInfo fetchOperateTypeByName(string name) throws common::VCIError;
        //获取模块下挂接的操作对象 onlyIsValid 参数表示是否仅仅返回是生效的操作 true:是 false :不是(此时返回模块下全部的操作,仅在定义模块下的操作时需要返回全部的操作,其它情况需要均只需要返回生效的操作)
        data::FuncOperationInfoList getFuncOperationByModule(string funcitonId,string operateId, bool onlyIsValid) throws common::VCIError;
        //通过操作标识和模块ID获取挂接关系
        data::FuncOperationInfo getFuncOperationByIdentify(string funcId,string identify) throws common::VCIError;
        //保存模块下的操作
        bool saveFuncOperation(data::FuncOperationInfoList funcOperationInfos,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //修改模块下操作别名
        bool updateFuncOperation(string id, string alias, bool isSelected, common::data::UserEntityInfo userEntity) throws common::VCIError; 
        //删除模块下的操作
        bool deleteFuncOperation(data::FuncOperationInfo funcOperation,common::data::UserEntityInfo userEntity) throws common::VCIError;
                
        //保存角色权限,通过用户名区分权限类型
        bool saveRoleRight(data::RoleRightInfoList roleRightInfos,string roleId,string userName,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //增加角色权限,通过用户名区分权限类型
        bool addRoleRight(data::RoleRightInfoList roleRightInfos,string roleId,string userName,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //获取角色权限,通过用户名区分权限类型
        data::RoleRightInfoList getRoleRightList(string roleId,string userName) throws common::VCIError; 
        //根据授权角色的类型获取权限 
        data::RoleRightInfoList getRoleRightListByType(common::data::StringArray rightType) throws common::VCIError; 
        //删除角色权限,weidy@2018-10-12
        bool removeRoleRight(data::RoleRightInfoList roleRightInfos,string roleId,string userName,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //清空角色权限,weidy@2019-01-24
        bool clearRoleRight(string roleId,string userName,common::data::UserEntityInfo userEntity, short functionType) throws common::VCIError;
        //获取用户对当前模块的权限值
        data::RoleRightInfoList getRoleRightByModule(string funcId,string userName) throws common::VCIError; 
        //获取当前用户的权限
        data::RoleRightInfoList getRoleRightByUserName(string userName) throws common::VCIError; 
        //获取当前用户的具有的功能模块权限
        data::RoleRightInfoList getFunctionRoleRightByUserName(string userName) throws common::VCIError; 
        
 
        /***************************系统功能模块end**************************/ 
                
        /**获取所有部门**/
        data::DeptInfoList fetchDepartmentInfo() throws common::VCIError;
                            
        data::DeptInfoList fetchDeptByUserNames(common::data::StringArray userNames) throws common::VCIError;
        /**根据id获取部门**/
        data::DeptInfo fetchDepartmentInfoById(string id) throws common::VCIError;
        /**根据人员id获取部门**/
        data::DeptInfo fetchDeptByUserId(string userId) throws common::VCIError;
        data::DeptInfo fetchDeptByDeptName(string deptName) throws common::VCIError;
        data::DeptInfo fetchDeptByParentIdAndName(string parentId,string deptName) throws common::VCIError;
        /**获取顶级部门**/
        data::DeptInfoList fetchDepartmentInfoRoot() throws common::VCIError;
        /**获取部门下的子部门**/
        data::DeptInfoList fetchDepartmentInfoByParentId(string prtoid) throws common::VCIError;
        /**根据id获取部门及其子部门**/
        data::DeptInfoList fetchDepartmentInfosById(string id) throws common::VCIError;
        data::DeptInfoList fetchDepartmentInfosBySonId(string id) throws common::VCIError;
        //根据部门id获取用户信息
        data::UserInfoList getUserByDeptId(string deptId)throws common::VCIError;
                
        /** 根据ID返回角色对象**/
        data::RoleInfo fetchRoleInfoById(string roleId) throws common::VCIError;
        data::RoleInfo fetchRoleByName(string name) throws common::VCIError;
        /**获取所有的角色**/
        data::RoleInfoList fetchRoleInfo() throws common::VCIError;
        /**根据用户类型获取角色**/
        data::RoleInfoList fetchRoleInfoByType(short type) throws common::VCIError;
        /**根据角色类型获取角色**/
        data::RoleInfoList fetchRoleInfoByRoleType(short type) throws common::VCIError;
        /**送检设备角色**/
        data::RoleInfoList getRoleListByTypeForMeasure(short type) throws common::VCIError;
        /**根据用户ID获取角色**/
        data::RoleInfoList fetchRoleInfoByUserId(string userId) throws common::VCIError;
        /**根据用户名获取角色**/
        data::RoleInfoList fetchRoleInfoByUserName(string userName) throws common::VCIError;
        /**根据用户名获取角色的分页实现**/
        data::RoleInfoList fetchRoleInfoByUserNameAndPage(long pageNo,long pageSize,string userName) throws common::VCIError;
        /**根据比用户类型低的角色**/
        data::RoleInfoList fetchRoleInfoByUserType(string userName) throws common::VCIError;
        /**根据用户名获取角色总数**/
        long getRoleTotalByUserName(string userName) throws common::VCIError;
                
        /**根据型号获取该型号下的型号总师**/
        data::UserInfoList fetchUserInfoByModel(string model) throws common::VCIError;
        /**根据型号获取该型号下的型号总师**/
        data::UserInfoList fetchUserInfoByModelId(string modelId) throws common::VCIError;
        /**获取所有的成员**/
        data::UserInfoList fetchUserInfo() throws common::VCIError;
        /**获取除去admin,developer,三员外所有的普通成员**/
        data::UserInfoList fetchUserInfoWithOutSanYuan() throws common::VCIError;
        /**根据条件查询用户**/
        data::UserInfoList fetchUserInfoByCondition(string searchName ,string searchUserName ,string deptId,
                        string roleId, string userName,long pageNo,long pageSize ) throws common::VCIError;
        //add by caill 2016.9.26
        data::UserInfoList fetchUserInfoByConditionUnited(string searchName ,string searchUserName ,string deptId,
                        string roleId, string userName,long pageNo,long pageSize ) throws common::VCIError;
        data::UserInfoList fetchNoramlUserInfoByConditionUnited(string searchName ,string searchUserName ,string deptId,
                        string roleId, string userName,long pageNo,long pageSize ) throws common::VCIError;   
        data::UserInfoList fetchNormalUserInfoByCondition(string searchName ,string searchUserName ,string deptId,
                        string roleId, string userName,long pageNo,long pageSize ) throws common::VCIError;                           
        /**根据条件获取人员总数**/
        long getUserTotalByCondition(string searchName ,string searchUserName ,string deptId,
                        string roleId, string userName) throws common::VCIError;
                        
        long getNormalUserTotalByCondition(string searchName ,string searchUserName ,string deptId,
                        string roleId, string userName) throws common::VCIError;               
                
        /**获取所有的成员**/
        data::UserInfoList fetchUserInfoByType(short type) throws common::VCIError;
        /**根据用户名获取成员**/
        data::UserInfo fetchUserInfoByName(string userName) throws common::VCIError;
        /**根据文件柜Id和成员类型获取成**/
        data::UserInfoList fetchUserInfoByPvolumeId(string pvolumeId , short type) throws common::VCIError;
        /**根据角色Id和成员类型获取成**/
        data::UserInfoList fetchUserInfoByRoleId(string roleId , short type) throws common::VCIError;
        data::UserInfoList fetchUsersByRoleId(string roleId) throws common::VCIError;
        data::UserInfoList fetchUserInfoByDeptAndRole(common::data::StringArray deptIds , common::data::StringArray roleIds) throws common::VCIError;
        /**创建文件柜和用户的关**/
        bool savePvolumeUser(string pvolumId , common::data::StringArray userIds ,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**创建角色和用户的关系**/
        bool saveRight(string roleId , common::data::StringArray userIds ,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**创建部门和用户的关系**/
        bool saveRighForDept(string deptId , common::data::StringArray userIds ,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**创建角色和用户的关系**/
        bool saveRights(common::data::StringArray roleIds , common::data::StringArray userIds ,common::data::UserEntityInfo userEntity) throws common::VCIError;
                
        /**创建角色和用户的关系**/
        bool saveUserDept(common::data::StringArray userIds , string deptId ,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**增加部门**/
        string saveDepartment(data::DeptInfo dept,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**批量保存**/
        bool batchSaveDepart(data::DeptInfoList deptInfo,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**增加角色**/
        string saveRole(data::RoleInfo role,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**用于验证角色是否被引用**/
        long checkRoleIsquotedCount(string id )throws common::VCIError;
 
        data::UserInfoList selectUserByRoleId(string id) throws common::VCIError;
        /**增加成员**/
        string saveUser(data::UserInfo user,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**批量增加成员*/
        bool batchSaveUsers(data::UserInfoList userInfos,common::data::StringArray2D deptAndUserRelation,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**修改部门**/
        bool updateDepartment(data::DeptInfo dept, common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**修改角色**/
        bool updateRole(data::RoleInfo role, common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**修改成员**/
        bool updateUser(data::UserInfo user, common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**修改成员**/
        bool saveOrUpdateUser(data::UserInfo user, common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**更新部门的父ID**/
        bool updateDeptParentId(string id, string parentId, common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**修改用户密码**/
        string modifyUserPassword(string idUser, string oldPW, string newPW, common::data::UserEntityInfo userEntity) throws common::VCIError;
        
        
        /**删除部门**/
        bool deleteDepartment(common::data::StringArray ids , common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**删除角色**/
        bool deleteRole(common::data::StringArray ids , common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**删除成员**/
        bool deleteUser(common::data::StringArray ids , common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**停用/启用**/
        bool stopUsers(common::data::StringArray ids ,bool flag, common::data::UserEntityInfo userEntity) throws common::VCIError;
                
        /**系统配置模块**/
        //保存特殊字符分类
        string saveSpecialCharClsf(data::SpecialCharClsfInfo specialCharClsf, common::data::UserEntityInfo userEntity) throws common::VCIError;
        //删除特殊字符分类
        bool deletSpecialCharClsf(common::data::StringArray ids, common::data::UserEntityInfo userEntity)  throws common::VCIError;
        //更新特殊字符分类
        bool updateSpecialCharClsf(data::SpecialCharClsfInfo specialCharClsf, common::data::UserEntityInfo userEntity) throws common::VCIError;
        //获取特殊字符分类
        data::SpecialCharClsfInfoList getSpecialCharClsfList(long pageNo,long pageSize) throws common::VCIError; 
        //获取特殊字符分类
        data::SpecialCharClsfInfoList getAllSpecialCharClsfList() throws common::VCIError; 
                
        //获取特殊字符分类总数
        long getSpecialCharClsTotal()throws common::VCIError;
        //根据分类获取字符
        data::SpecialCharInfoList getBychar(string plscsfoId) throws common::VCIError;
        //保存特殊字符
        string saveSpecialChar(data::SpecialCharInfoList specialCharInfos, common::data::UserEntityInfo userEntity) throws common::VCIError;
        //删除特殊字符
        bool deletSpecialChar(common::data::StringArray ids, common::data::UserEntityInfo userEntity)  throws common::VCIError;
        //删除PID特殊字符
        bool deleteSpecialCharByParentId(string id, common::data::UserEntityInfo userEntity)  throws common::VCIError;
        //更新特殊字符
        bool updateSpecialChar(data::SpecialCharInfo specialChar, common::data::UserEntityInfo userEntity) throws common::VCIError;
        //获取特殊字符
        data::SpecialCharInfoList fetchSpecialChar(string classId) throws common::VCIError; 
                        
        //获取所有的密码策略
        data::PasswordStrategyInfoList fetchAllPasswordStrategy()throws common::VCIError;
        //获取密码策略的分页处理
        data::PasswordStrategyInfoList fetchAllPasswordStrategyByPage(long pageNo,long pageSize)throws common::VCIError;
        //获取密码策略总数
        long getPasswordStrategyTotal()throws common::VCIError;
                        
                        
        //保存密码策略
        bool savePasswordStrategy(data::PasswordStrategyInfo info, common::data::UserEntityInfo userEntity) throws common::VCIError;
        //修改密码策略
        bool editPasswordStrategy(data::PasswordStrategyInfo info, common::data::UserEntityInfo userEntity) throws common::VCIError;
        //删除密码策略
        bool deletePasswordStrategy(common::data::StringArray ids, common::data::UserEntityInfo userEntity) throws common::VCIError;
        //验证密码策略是否被引用
        long checkPasswordStrategyIsquotedCount(string id)throws common::VCIError;
        //根据人员 获取密码策略
        data::PasswordStrategyInfo fetchPasswordStrategyByUserId(string userId)throws common::VCIError;
 
        // 根据用户检查密码是否符合密码策略
        string checkPasswordStrategyByUserId(string userId, string password, common::data::UserEntityInfo userEnt) throws common::VCIError;
 
        /**创建密码策略和用户的关系**/
        bool saveUserPasswordStrateg(common::data::StringArray userIds , string passwordStrategId ,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**根据登录用户名获取登录账户信息**/
        data::UserLogonInfo fetchUserLogonObj(string userId) throws common::VCIError;
        //获取时间
        long getSystemTime() throws common::VCIError;
        /**更新登录信息**/
        void updateLogonInfo(string userId,bool flag)throws common::VCIError;
        //解锁 
        void deblock(common::data::StringArray ids , common::data::UserEntityInfo userEntity) throws common::VCIError;
                
        //通过ID取得操作类型信息
        data::OperateInfo getOperatetById(string id) throws common::VCIError;
 
        /**获取所有的密码组合方式**/
        data::CombinationInfoList fetchAllCombinations() throws common::VCIError;
        /**分页查询密码组合方式**/
        data::CombinationInfoList fetchCombinationsToPage(long  pageIndex, long pageSize) throws common::VCIError;
                
        /**添加密码组合方式**/
        string saveCombination(data::CombinationInfo combination ,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**修改密码组合方式**/
        bool updateCombination(data::CombinationInfo combination ,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**删除密码组合方式**/
        bool deleteCombination(common::data::StringArray ids , common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**通过父id 获取组合方式取值范围**/
        data::CombinationValueInfoList fetchCombinationValuesByParentId(string parentId) throws common::VCIError;
        /**添加密码组合方式取值范围**/
        string saveCombinationValue(data::CombinationValueInfoList combinationValues ,common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**修改密码组合方式取值范围**/
        bool updateCombinationValue(data::CombinationValueInfo combinationValue, common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**删除密码组合方式取值范围**/
        bool deletCombinationValues(common::data::StringArray ids , common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**根据密码策略id 获取关联的密码组合方式**/
        data::CombinationInfoList fetchCombinationsByPstId(string pstId) throws common::VCIError;
        /**检验密码组合方式是否被密码策略引用**/
        long checkCombinationIsquotedCount(string combinationd )throws common::VCIError;
                
        /**保存三员和成员**/
        bool saveSpecialRole(string roleId , common::data::StringArray userIds ,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //三员登录的模块信息
        //data::SpecialRoleInfoList getSpecialRoleList()  throws common::VCIError;
        //查询所有的子节点 add by caill
        common::data::StringArray2D checkLevel() throws common::VCIError;
        //导入功能模块管理数据 add by caill
        bool importModules(data::FunctionInfoList functionInfos,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //保存操作模块关系对象 add by caill
        string saveFunOper(data::FuncOperationInfo funcOperation) throws common::VCIError;
        //add by caill
        bool saveFuncOperation2(data::FuncOperationInfo funcOperation,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //判断第一级有没有重名的模块 add by caill
        bool firstLevel(string plName) throws common::VCIError;
        //覆盖重名的第一级 add by caill
        string changeFirstLevel(data::FunctionInfo function,string plName) throws common::VCIError;
        //判断第二级有没有重名的模块 add by caill
        bool secondLevel(string plName,string fParentId) throws common::VCIError;
        //覆盖重名的第二级 add by caill
        string changeSecondLevel(data::FunctionInfo function,string plName,string fParentId) throws common::VCIError;
        //判断模块中是否已经存在此操作类型 add by caill
        bool selSameOper(string dataOperName,string plFuncOid) throws common::VCIError;
        //覆盖操作类型 add by caill
        bool updateOperation(data::FuncOperationInfo funcOperation,common::data::UserEntityInfo userEntity,string dataOperName,string plFuncOid) throws common::VCIError;
        //
        common::data::StringArray2D getAllDatas(long size) throws common::VCIError;
        //
        long getAllOperitionsNum() throws common::VCIError;
        //
        common::data::StringArray2D getAllOperitions(long size) throws common::VCIError;
        //
        long getAllModelManagementNum() throws common::VCIError;
        //add by caill 2016.1.19批量增加角色*/
        bool batchSaveRoles(data::RoleInfoList roles,common::data::UserEntityInfo userEntity) throws common::VCIError;
        //保存一般操作类型日志
        void savelogGeneralOperation(string result, string content, common::data::UserEntityInfo userEntity,string dataId,string plType) throws common::VCIError;
        //获取数据库信息
        data::DataSourceInfo getDataSourceInfo() throws common::VCIError;
                
        //add by weidy 2021-1-2 把谢军添加的角色选择等接口整合进来
        /**根据id获取部门**/
        data::DeptInfoList fetchDepartmentInfoByIds(string otherFiterString) throws common::VCIError;
        /****根据查询条件获取下级部门***/
        data::DeptInfoList fetchChildrenDeptByParentOid(string prtoid,bool iscontains, string otherFiterString) throws common::VCIError;
        /***获取部门列表信息****/
        data::DeptInfoList gridDeptDataGrids(string filter,long pageNo,long pageSize)throws common::VCIError;
 
        long gridDeptDataGridsCount(string filter)throws common::VCIError;
 
        data::RoleInfoList queryRoleInfos(string filter,long pageNo,long pageSize)throws common::VCIError;
 
        long queryRoleInfosCount(string filter)throws common::VCIError;
 
        /****根据条件查询除去admin,developer,三员外所有的普通成员**/
        data::UserInfoList fetchUserInfoByFilterString( string filterString,long pageNo,long pageSize ) throws common::VCIError;
 
        long  fetchUserInfoByFilterStringCount( string filterString) throws common::VCIError;
 
        /****根据条件查询除去admin,developer,三员外所有的普通成员**/
        data::UserInfoList fetchUserInfosByFilterStringsql( string filterString) throws common::VCIError;
 
        /**根据用户名批量获取成员**/
        data::UserInfoList fetchUserInfoByNames(common::data::StringArray  userNames) throws common::VCIError;
 
        /**根据用户主键获取成员**/
        data::UserInfo getUserObjectByoid(string userOid) throws common::VCIError;
 
        /**根据用户主键批量获取成员**/
        data::UserInfoList getUserObjectByoids(common::data::StringArray userOid) throws common::VCIError;
                
        //=====================================================================================
        /**专业信息操作接口**/
        // 获取所有专业信息
        data::SpecialtyInfoList getAllSpecialtyInfo() throws common::VCIError;
 
        // 增加专业
        string saveSpecialty(data::SpecialtyInfo specialty,common::data::UserEntityInfo userEnt) throws common::VCIError;
 
        /**批量增加专业*/
        bool batchSaveSpecialties(data::SpecialtyInfoList specialties, common::data::UserEntityInfo userEnt) throws common::VCIError;
 
        /**修改专业**/
        bool updateSpecialty(data::SpecialtyInfo specialty, common::data::UserEntityInfo userEnt) throws common::VCIError;
 
        /**批量修改专业**/
        bool batchUpdateSpecialty(data::SpecialtyInfoList specialties, common::data::UserEntityInfo userEnt) throws common::VCIError;
 
        //删除专业
        bool deletSpecialty(common::data::StringArray ids, common::data::UserEntityInfo userEnt)  throws common::VCIError;
 
        //=====================================================================================
        /**机器密级信息操作接口**/
        // 获取机器密级信息总数
        long getMachSecurityTolal() throws common::VCIError;
        // 获取符合条件的机器密级信息总数
        long getMachSecurityTolalByCondition(string name, string ipAddress, short security) throws common::VCIError;
        // 获取所有机器密级信息
        data::MachSecurityInfoList getAllMachSecurity() throws common::VCIError;
        // 分页查询获取所有机器密级信息
        data::MachSecurityInfoList fetchMachSecurityByPage(long pageNo, long pageSize)throws common::VCIError;
        // 分页查询获取所有机器密级信息,按条件
        data::MachSecurityInfoList fetchMachSecurityConditionByPage(string name, string ipAddress, short security, long pageNo, long pageSize)throws common::VCIError;
        // 增加机器密级
        string saveMachSecurity(data::MachSecurityInfo info,common::data::UserEntityInfo userEnt) throws common::VCIError;
        /**批量增加机器密级*/
        bool batchSaveMachSecurity(data::MachSecurityInfoList infos, common::data::UserEntityInfo userEnt) throws common::VCIError;
        /**修改机器密级**/
        bool updateMachSecurity(data::MachSecurityInfo info, common::data::UserEntityInfo userEnt) throws common::VCIError;
        /**批量修改机器密级**/
        bool batchUpdateMachSecurity(data::MachSecurityInfoList infos, common::data::UserEntityInfo userEnt) throws common::VCIError;
        //删除机器密级
        bool deletMachSecurity(common::data::StringArray ids, common::data::UserEntityInfo userEnt)  throws common::VCIError;
        //获取机器密级, type=0 未使用
        long getMachSecurity(string ipAddress, short type, common::data::UserEntityInfo userEnt)  throws common::VCIError;
        //获取机器密级信息, type=0 未使用
        data::MachSecurityInfo getMachSecurityInfo(string ipAddress, short type, common::data::UserEntityInfo userEnt)  throws common::VCIError;
        
        //=====================================================================================
        /**数据授权接口**/
        //保存数据授权
        bool saveGrand(data::GrandValueArray values) throws common::VCIError;
        //查询数据授权
        data::GrandValueArray queryGrand(string identifier) throws common::VCIError;
        //删除数据授权
        bool deleteGrand(string ruleName)throws common::VCIError;
        //删除类型数据授权
        bool deleteTypeRuleGrand(string identifier,string ruleName)throws common::VCIError;
        
        // 检查权限
        string checkRight(data::CheckValue value) throws common::VCIError;
        
        //=====================================================================================
        /**卷管理**/
        /**读取所有的卷**/
        data::PvolumeInfoList getAllPvolumes() throws common::VCIError;
        // 查询默认卷
        data::PvolumeInfo getDefaultVolume() throws common::VCIError;
        // 读取指定名称的卷
        data::PvolumeInfo getVolumnByName(string volName) throws common::VCIError;
        /**分页读取卷**/
        data::PvolumeInfoList getPvolumesPage(short  pageSize, short pageIndex) throws common::VCIError;
        /**卷创建**/
        string savePvolume(data::PvolumeInfo vol, common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**卷修改**/
        bool updatePvolume(data::PvolumeInfo vol, common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**卷删除**/
        bool deletePvolume(common::data::StringArray ids, common::data::UserEntityInfo userEntity) throws common::VCIError;
        /**检查要删除的卷是否为首选路径**/
        bool checkIsvalid(string id) throws common::VCIError;
        /**修改卷,将系统中的其他卷设置为非首选 0**/
        void updatePvolumeInvalid(common::data::UserEntityInfo userEntity) throws common::VCIError;
    
    }//end interface
}//framework
// }}}