企业级数据权限框架 - 集团组织架构数据权限开发框架(C/S+Winform+DevExpress)
作者:作者不详  发布日期:2021-08-07 16:51:33
  企业级数据权限框架 - 集团组织架构数据权限开发框架(C/S+Winform+DevExpress)

企业级数据权限框架 - 集团组织架构数据权限开发框架(C/S+Winform+DevExpress)


企业级数据权限框架 - 集团组织架构数据权限开发框架


一般型企业的软件权限设计,主要体现在功能权限和数据权限。功能权限是指用户登录后,能看到哪些菜单,能打开那些窗体,能操作哪些按钮,能执行哪些操作的权限。而数据权限主要体现在当前用户能查看什么数据,通过查询条件筛选和过滤数据(最简单的数据权限控制)。

基于大型集团企业的软件系统开发,集团组织架构设计、集团数据权限作为软件系统的核心功能组成部分,下面将详细介绍CSFrameworkV5.1旗舰版快速开发框架提供的企业级数据权限设计。



一、集团企业组织架构介绍


组织架构(Organizational Structure)是指一个组织整体的结构。是在企业管理要求、管控定位、管理模式及业务特征等多因素影响下,在企业内部组织资源、搭建流程、开展业务、落实管理的基本要素。

组织架构是指企业按照国家有关法律法规、股东(大)会决议、企业章程,结合本企业实际,明确董事会、监事会、经理层和企业内部各层级机构设置、职责权限、人员编制、工作程序和相关要求的制度安排。



集团组织架构图(参考1)

图1:
贴图图片-组织架构



集团企业组织架构图(参考2)


图2:

贴图图片-组织架构1





CSFrameworkV5.1旗舰版提供的集团企业组织架构(部门)资料管理与维护界面:


图3:

贴图图片-组织架构2



CSFrameworkV5.1旗舰版提供的集团企业组织架构数据权限管理界面


图4:

贴图图片-集团组织架构2(1)



二、集团企业组织架构数据权限框架内容介绍



CSFrameworkV5.1旗舰版提供集团组织架构数据权限管理系统,该系统由以下三个部分组成:


2.1  集团组织架构基础资料管理与维护(参考图3)

主要是用于集团组织架构基础资料的管理与维护,包括增、删、改、查维护部门资料。


2.2  集团组织架构数据权限分配(参考图4)

包括集团组织架构管理、分配部门人员、分配数据权限。

数据权限分配是指特定部门(人)能查看某些特定的数据。


2.3  集团组织架构数据权限应用

数据权限应用是指前端界面与后端数据处理的逻辑控制,开发框架提供两种数据权限控制机制:


2.3.1 按制单人过滤数据


SQL查询条件:


SQL Code:

SELECT * FROM 生产计划表 WHERE 制单人 IN ('USER1','USER2','USER3','USER..n')




实现逻辑:

a) 根据特殊角色获取当前登录用户能查看数据的用户列表,参考:usp_GetChildUser。

b) 前端界面的查询条件提供复合勾选用户组件,勾选的用户编号组合字符串:U1,U2,U99。

c) 根据制单人字段(如:CreatedBy)匹配用户,参考存过:usp_PO_Search。


参考:组织机构特殊权限(特殊角色)- 控制用户查看同级或子级的单据数据




2.3.2 按部门组织架构过滤数据


SQL查询条件:


C# Code:

SELECT * FROM 生产计划表 WHERE 组织架构部门 IN ('部门1','部门2','部门3','部门..n')





实现逻辑:

a) 若当前登录用户是(G1,G2)部门经理/主管,则能查看G1/G2部门及所有子级部门的数据。

b) 若当前登录用户非部门主管,仅能查看自己或当前部门的数据。

c) 判断资料表Org2字段的值是否(G1,G2)或(G1,G2)的子级。


SQL查询:

SQL Code:

SELECT * FROM 生产计划表 WHERE Org2 IN ('G1','G2','G3','Gn')





2.4  集团组织架构数据权限匹配模式(系统参数:DataPermission


开发框架提供3种数据权限匹配模式:

制单人匹配: WHERE CreatedBy IN (a,b,c,d,....)

部门架构匹配: WHERE Org2 IN (g1,g2,g3,g4,....)

全部匹配: 组合以上两者筛选条件。


参考系统数据库sys_SystemSettings表,ParamCode=DataPermission记录。


2.5 导入系统参数:DataPermission,数据权限匹配模式


可通过以下脚本导入DataPermission记录:

SQL Code:

INSERT INTO sys_SystemSettings(
  RowID,ParamType,ParamCode,ParamName,ParamDataType,ParamValue,ParamList,Description)
  
SELECT
  
NEWID(),
  
'System',
  
'DataPermission',
  
'数据权限匹配模式',
  
'文本',
  
'全部匹配',
  
'制单人匹配;部门架构匹配;全部匹配',
  
'数据权限提供3个选项:制单人匹配;部门架构匹配;全部匹配'
  
  
//来源:C/S框架网 | www.csframework.com | QQ:23404761








三、企业级数据权限框架设计


3.1 CSFrameworkV5.1 程序修改部分

1. 系统数据库CSFrameworkV5_System增加sys_DataPermission表, 存储数据权限字段配置。

2. 系统数据库tb_MyUser用户表增加Org1/Org2字段,分别对应部门1(基地部门)/当前部门;

3. 数据权限演示功能tb_PO主表增加Org1/Org2字段,分别对应部门1(基地部门)/当前部门;

4. BLL层的NewBusiness方法,默认给Org1/Org2赋值;

5. 部门属性表tb_CustomerAttribute增加一个Base类型,用于区别基地组织架构。

6. CSFrameworkV5.Core.Loginer对象,增加Org1/Org2属性,存储当前用户默认所在职能部门;

7. CSFrameworkV5.Core.SystemSettings类,增加一个属性:DataPermission 参数。

8. 系统数据库sys_SystemSettings表,增加数据权限参数设置。

3.2 增加以下存储过程或函数:

1. usp_DeleteGroupUser

2. usp_GetGroupUsers4TreeList

3. usp_GetDataPermissionConfigByGroup

4. usp_GetDataPermissionConfigByUser

5. usp_GetMyGroups4Picker

6. ufn_GetSystemSettings

3.3 修改以下存储过程或函数:

1. usp_PO_Search <采购订单>查询功能的存储过程。

2. usp_GetChildUser <获取当前用户能查看的用户列表>


3.4 数据权限几个核心存储过程或函数:

1. ufn_IsOwner <判断当前登录用户是否指定用户的上级>

2. ufn_GetChildGroups <获取当前部门的所有子级部门,包括自己>

3. ufn_GetParentGroups <获取当前部门的所有上级部门,包括自己>

4. ufn_HasRole <判断用户使用拥有指定的角色权限>

5. usp_GetChildUser <获取当前用户能查看的用户列表>

6. usp_GetGroupUsers4TreeList <用于组织架构权限分配界面,初始化TreeList>

7. usp_GetDataPermissionConfigByGroup <获取部门的数据权限配置信息,包括子级部门>

8. usp_GetDataPermissionConfigByUser <获取用户的数据权限配置信息>

9. usp_GetMyGroups4Picker <获取当前用户所在的组织架构,包括父级部门、子级部门>


注:MSSQL、MySQL数据库已同步更新。





四、企业级数据权限框架界面截图


4.1 数据权限配置界面


贴图图片-集团组织架构权限5



4.2 数据权限配置界面功能菜单


贴图图片-集团组织架构权限6



4.3 部门(组织架构)的数据权限配置:


贴图图片-集团组织架构权限3



4.4 用户的数据权限配置:



贴图图片-集团组织架构权限4



4.5 设置为部门负责人



贴图图片-集团组织架构权限8



4.6 添加、修改组织机构详情


贴图图片-集团组织架构权限93


4.7 批量设置组织机构的用户



贴图图片-集团组织架构权限92





五、企业级数据权限框架Winform界面(前端界面)应用场景


5.1 查询条件,查询指定的制单人


存储过程:usp_GetChildUser <获取当前用户能查看的用户列表>


运行ClientDemo演示程序,打开【采购模块】 --> 【采购订单】,查询条件:

贴图图片-集团组织架构权限





5.2 查询条件,查询组织架构


存储过程:usp_GetMyGroups4Picker <获取当前用户所在的组织架构,包括父级部门、子级部门>


运行ClientDemo演示程序,打开【采购模块】 --> 【采购订单】,查询条件:

贴图图片-集团组织架构权限1



5.3 给登录用户设置默认的职能部门


打开【系统管理】 --> 【用户管理】,选择一个用户,点【修改】按钮:


贴图图片-集团组织架构权限7




5.4 设置用户为部门负责人(主管\经理, 副主管\经理


打开【系统管理】 --> 【数据权限】,选择一个用户,点鼠标右键,【设置为负责人】:




贴图图片-集团组织架构权限8




设置为部门负责人(主管\经理, 副主管\经理)方式2:


打开【系统管理】 --> 【组织机构管理】,选择一个部门,点【修改】按钮:


贴图图片-集团组织架构权限91




5.5 批量设置部门的用户


打开【系统管理】 --> 【数据权限】,选择一个部门,点鼠标右键,【选择/添加员工】:



贴图图片-集团组织架构权限9






5.6 数据权限匹配模式参数设置


打开系统数据库sys_SystemSettings表,增加数据权限参数设置:


打开【系统管理】 --> 【系统参数】:


贴图图片-集团组织架构权限2



文档版本:企业级数据权限框架 v1.0

最后更新:2021-08-07 , 欢迎测评找bug,并提供建议。



C/S框架网|原创精神.创造价值.打造精品






C/S架构软件快速开发平台-旗舰版V5.1 (Ultimate Edition 2021)

适用开发 适用开发:企业级ERP、MES、MRP、HIS、WMS、TMS、CRM、MIS、POS等数据管理系统
运行平台 运行平台:Windows (Winform) + .NET Framework 4.5
开发工具 开发工具:Visual Studio 2017+,C#语言
数据库 多数据库:MsSQL 2008R2 / MySql5.7.34 / Oracle 11g


C/S架构软件快速开发平台旗舰版v5.1|C#.NET开发平台|Winform开发框架|C/S框架网


 产品介绍

    C/S架构软件快速开发平台助力开发团队快速搭建自己的软件项目,旗舰版提供强大的底层开发架构及快速开发工具-Winform三层架构代码生成器v5.1,旗舰版集成大量应用于大型系统的通用功能模块、数据界面及通用权限管理系统,提供丰富的实例开发模板、开发文档、线上技术指导服务,助力您快速搭建软件项目。

   C/S架构开发框架系列产品已成功应用500多家企业、4000多位软件用户,其中包括国内知名软件公司、国有企业、研发机构及上市公司(优秀企业选择了我们的产品-成功案例)。经过十年迭代升级,最新旗舰版V5.1,基础架构更成熟、应用更广泛、性能更稳定、开发效率更高!

    开发框架配套的核心工具 - Winform三层架构代码生成器能快速生成界面(FORM)、业务层(BLL)、数据层(DAL)、模型(Model)、报表(Report)以及VS工程项目(Project)的源代码,快速提升开发效率,节约开发时间,降低项目成本,根据多个项目统计,开发框架能为您减少60%以上的工作量。


 产品详情





C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务



上一篇 下一篇