基于集团组织架构数据权限系统快速开发框架(C#.NET Winform+支持多数据库)


一、集团组织架构介绍
组织架构(Organizational Structure)是指一个组织整体的结构。是在企业管理要求、管控定位、管理模式及业务特征等多因素影响下,在企业内部组织资源、搭建流程、开展业务、落实管理的基本要素。
组织架构是指企业按照国家有关法律法规、股东(大)会决议、企业章程,结合本企业实际,明确董事会、监事会、经理层和企业内部各层级机构设置、职责权限、人员编制、工作程序和相关要求的制度安排。
集团组织架构图(参考1)
图1:


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

CSFramework集团组织架构(部门)资料管理与维护界面
图3:

CSFramework集团组织架构数据权限管理界面
图4:
.png)
二、集团组织架构数据权限框架内容介绍
CSFrameworkV5.1旗舰版提供集团组织架构数据权限管理系统,该系统由以下三个部分组成:
2.1 集团组织架构基础资料管理与维护(参考图3)
主要是用于集团组织架构基础资料的管理与维护,包括增、删、改、查维护部门资料。
2.2 集团组织架构数据权限分配(参考图4)
包括集团组织架构管理、分配部门人员、分配数据权限。
数据权限分配是指特定部门(人)能查看某些特定的数据。
2.3 集团组织架构数据权限应用
数据权限应用是指前端界面与后端数据处理的逻辑控制,开发框架提供两种数据权限控制机制:
2.3.1 按制单人过滤数据
SQL查询:WHERE 制单人='USER'
实现逻辑:
a) 判断当前用户的特殊角色(3个特殊角色),根据特殊角色获取用户列表,参考:usp_GetChildUser。
b) 前端界面查询条件提供勾选用户的组件,将勾选的用户编号组合字符串如:U1,U2,U99。
c) 根据创建人(CreatedBy)字段匹配勾选的用户,参考存过:usp_PO_Search。
参考:组织机构特殊权限(特殊角色)- 控制用户查看同级或子级的单据数据
2.3.2 按部门组织架构过滤数据
SQL查询:WHERE 部门='研发部'
实现逻辑:
a) 若当前登录用户是(G1,G2)部门经理/主管,则能查看G1/G2部门及所有子级部门的数据。
b) 若当前登录用户非部门主管,仅能查看当前部门的数据。
c) 判断资料表Org2字段的值是否(G1,G2)或(G1,G2)的子级。
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
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数据库已同步更新。
四、数据权限配置界面


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

用户的数据权限配置:

五、Winform界面应用场景
5.1 查询条件,查询指定的制单人
存储过程:usp_GetChildUser <获取当前用户能查看的用户列表>
运行ClientDemo演示程序,打开【采购模块】 --> 【采购订单】,查询条件:

5.2 查询条件,查询组织架构
存储过程:usp_GetMyGroups4Picker <获取当前用户所在的组织架构,包括父级部门、子级部门>
运行ClientDemo演示程序,打开【采购模块】 --> 【采购订单】,查询条件:

5.3 给登录用户设置默认的职能部门
打开【系统管理】 --> 【用户管理】,选择一个用户,点【修改】按钮:

5.4 设置用户为部门负责人(主管\经理, 副主管\经理)
打开【系统管理】 --> 【数据权限】,选择一个用户,点鼠标右键,【设置为负责人】:

设置为部门负责人(主管\经理, 副主管\经理)方式2:
打开【系统管理】 --> 【组织机构管理】,选择一个部门,点【修改】按钮:

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

5.6 数据权限匹配模式参数设置
打开系统数据库sys_SystemSettings表,增加数据权限参数设置:
打开【系统管理】 --> 【系统参数】:

文档版本:数据权限v1.0
最后更新:2021-08-05 , 欢迎测评找bug,并提供建议。

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






C/S架构软件快速开发平台助力开发团队快速搭建自己的软件项目,旗舰版提供强大的底层开发架构及快速开发工具-Winform三层架构代码生成器v5.1,旗舰版集成大量应用于大型系统的通用功能模块、数据界面及通用权限管理系统,提供丰富的实例开发模板、开发文档、线上技术指导服务,助力您快速搭建软件项目。
C/S架构开发框架系列产品已成功应用500多家企业、4000多位软件用户,其中包括国内知名软件公司、国有企业、研发机构及上市公司(优秀企业选择了我们的产品-成功案例)。经过十年迭代升级,最新旗舰版V5.1,基础架构更成熟、应用更广泛、性能更稳定、开发效率更高!
开发框架配套的核心工具 - Winform三层架构代码生成器能快速生成界面(FORM)、业务层(BLL)、数据层(DAL)、模型(Model)、报表(Report)以及VS工程项目(Project)的源代码,快速提升开发效率,节约开发时间,降低项目成本,根据多个项目统计,开发框架能为您减少60%以上的工作量。


扫一扫加作者微信


版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网