第5章 系统技术方案
5.1 注册CELL组件
由于CELL是一款收费软件,所以需要对CELL进行注册,而且每一个CELL对象创建后都要进行注册。正版Cell组件用户会有一份产品表示,上面有组件的ID,使用者自行设置自己的用户名,通过设定服务器的域名或者地址,用友华表公司将根据这三个信息生成关联的产品密码。
注册函数:
Login(username As String, productid As String, password As String) As Long
5.2 业务流程管理
基于公司的管理制度,业务流程一般分为提交、批准、执行、库存四个环节。
比如采购管理,由采购部门内勤先开采购单,然后上级领导进行批准,如果批准通过则内勤根据采购单进行购买,购买完成后交给库管进行入库,并填写真正的入库数量。
生产流程,由上级领导下发生产计划,生产部门通过配配方获取原料种类与数量,然后领料、生产执行、生产入库。企业的业务流程的严格执行有助于企业运营的规范与流畅。采购流程如图5-1所示。
图5-1 采购流程图
5.3 重要数据加密
为了方便软件分发并使软件更具有可读性,连接数据库等信息使用ini文件进行配置。其中用户名和密码进行了MD5加密。加密算法如下:
// MD5 加密
public static string MD5(string strText)
{
string strResult = "";
// 加密密钥
char[] keys = { '3', 'e', 'd', 'c', '1', 'q', 'a', 'z', '7', 'u', 'j', 'm','5', 't', 'g', 'z' };
// 获取字符串
byte[] source = Encoding.UTF8.GetBytes(strText);
MD5CryptoServiceProvider MD5CSP = newMD5CryptoServiceProvider();
// MD5的计算结果是一个128位的长整数,用字节表示就是16个字节
byte[] tmp = MD5CSP.ComputeHash(source);
// 每个字节用16进制表示所以表示成16进制需要32个字符
char[] str = new char[16 * 2];
// 表示转换结果中对应的字符位置
int k = 0;
// 循环
for (int i = 0; i < 16; i++)
{
// 取第i个字节
byte byte0 = tmp[i];
// 取字节中高4位的数字转换,>>> 为补零右移(即无符号) str[k++] = keys[byte0 >> 4 & 0xf];
// 取字节中低4位的数字转换
str[k++] = keys[byte0 & 0xf];
}
// 换后的结果转换为字符串
strResult = new String(str);
return strResult;
}
5.4 初始化功能列表
系统通过用户表、角色表、功能表3张表实现了权限管理。其中用户表中有角色字段,一个用户可以有多个角色,角色表中有功能字段,一个角色可以包含多个功能。3张表连接起来可以得到用户的功能列表。
用户登录系统后,根据用户的角色信息,查询数据库得到用户拥有的功能项,然后利用用户拥有的功能实例化系统上方的功能列表。
5.5 本章小结
本章主要描述了本套系统的实现方案,包括使用的第三发工具,系统开发中使用到的一些算法,系统的主要工作流程分析。对于权限管理也进行了详细的介绍和方案可行性分析。
浙公网安备 33010602011771号