基于集团组织架构数据权限系统快速开发框架(C#.NET Winform+支持多数据库)
基于集团组织架构数据权限系统快速开发框架(C#.NET Winform+支持多数据库)
一、集团组织架构介绍 组织架构(Organizational Structure)是指一个组织整体的结构。是在企业管理要求、管控定位、管理模式及业务特征等多因素影响下,在企业内部组织资源、搭建流程、开展业务、落实管理的基本要素。 组织架构是指企业按照国家有关法律法规、股东(大)会决议、企业章程,结合本企业实际,明确董事会、监事会、经理层和企业内部各层级机构设置、职责权限、人员编制、工作程序和相关要求的制度安排。 集团组织架构图(参考1) 图1: 集团组织架构图(参考2) 图2: CSFramework集团组织架构(部门)资料管理与维护界面 图3: CSFramework集团组织架构数据权限管理界面 图4: 二、集团组织架构数据权限框架内容介绍 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 三、集团组织架构数据权限框架设计 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) 适用开发:企业级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架构软件快速开发平台助力开发团队快速搭建自己的软件项目,旗舰版提供强大的底层开发架构及快速开发工具-Winform三层架构代码生成器v5.1,旗舰版集成大量应用于大型系统的通用功能模块、数据界面及通用权限管理系统,提供丰富的实例开发模板、开发文档、线上技术指导服务,助力您快速搭建软件项目。 C/S架构开发框架系列产品已成功应用500多家企业、4000多位软件用户,其中包括国内知名软件公司、国有企业、研发机构及上市公司(优秀企业选择了我们的产品-成功案例)。经过十年迭代升级,最新旗舰版V5.1,基础架构更成熟、应用更广泛、性能更稳定、开发效率更高! 开发框架配套的核心工具 - Winform三层架构代码生成器能快速生成界面(FORM)、业务层(BLL)、数据层(DAL)、模型(Model)、报表(Report)以及VS工程项目(Project)的源代码,快速提升开发效率,节约开发时间,降低项目成本,根据多个项目统计,开发框架能为您减少60%以上的工作量。 产品详情 扫一扫加作者微信
参考文档:
基于C#.NET C/S快速开发框架 - 代码自动生成功能 基于Winform C/S系统快速开发框架企业版正式发布!!! C#.NET快速开发框架 原创ERP系统开发平台|基于C#.NET打造的C/S系统快速开发框架 基于WCF通信的C/S系统快速开发框架的部分架构设计 关于C/S框架网C#.NET快速开发框架现场培训 Winform快速开发框架之权限系统设计(3) - 功能按钮权限控制基本原理 C# Winform增删查改快速开发框架|C/S框架网 C#权限管理框架介绍|商业开源C/S系统快速开发框架权限系统设计 【原创】C# Winform进销存系统快速开发框架 【原创】进销存软件开发模板基于C/S架构快速开发框架C#+Winform+DevExpress C#.NET快速开发框架平台基于DevExpress表格加载大数据性能测试报告 Winform界面自适应快速开发框架(C#+Dev+三层架构+多数据库支持) 基于C/S架构轻量级快速开发框架软件开发平台(C#+ADO.NET+EF) C#三层架构系统 C#.NET三层架构快速开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |