仓库管理船务员的权限限

Pragmatic Thinking & Learning
以插件编程为指导思想,动态调用组件为行动方针,从项目开发、管理、发布、升级、维护的角度,深入设计和编码,构建基于插件仓库的现代化服务软件架构生产线平台。
4.2 角色管理
角色是用户权限的基础。
角色管理主要是针对平台用户的角色资源进行管理。主要包括了一下3块功能:
① 角色组和角色的设置,② 角色的分类归属,③ 角色的授权(模块资源授权和动作权限分配)。
相对于角色是给用户的权限资源类别分了个组别,角色组的概念其实也就是一种根据角色相近性进行分组归类的方式,本质上没有引入新技术,只是为了方便管理。同时为了降低复杂性,平台最终统一使用了角色来对用户进行分类授权。
模块资源授权也称菜单控制,由业务功能模块列表和用户菜单定制共同组成。每个用户可以拥有自己的菜单,也可以直接采用角色缺省菜单(当用户同时充当多个角色且权限重复时,重复的权限仅一次有效)。
动作权限分配也叫对象控制,对象是指应用系统窗口中的可视对象,如菜单项、按钮、下拉列表框、数据编辑控件及数据编辑控件的字段等。
控制动作是通过角色与用户授权来实现的。主要是对象属性的控制(使能、禁止,可视、屏蔽)和数据编辑控件中数据记录的维护(增加、删除、修改)。
基于角色的访问控制方法还可以很好的地描述角色层次关系,实现最少权限原则和职责分离的原则。&
角色管理的功能作业区(用户操作)界面如下图4.2-1所示,通过主要的操作按钮和信息内容可知其功能有:新增角色组、新增角色,编辑角色组、编辑角色,删除角色组、删除角色,角色授权,角色组排序、角色排序等。其中功能操作按钮的状态会根据选择的左侧树型中不同节点和不同登录用户的动作权限而改变。保证了系统规范和权限系统的双重控制。
图4.2-1& 角色管理界面
树形的角色、角色组代码核心算法主要由以下代码完成:
#region LoadRoleTypes, LoadRoles
private void LoadRoleTypes(TreeNode currentNode, DMESYS_ROLE_TYPE currentRoleType)
List&DMESYS_ROLE_TYPE& subRoleTypes =
if (currentRoleType != null)
subRoleTypes = DBOSYS_ROLE_TYPE.GetSubRoleTypes(currentRoleType);
subRoleTypes = DBOSYS_ROLE_TYPE.GetAllTopRoleTypes();
foreach (DMESYS_ROLE_TYPE rt in subRoleTypes)
TreeNode node = currentNode.ChildNodes.Add();
node.Tag =
node.Text = rt.N
LoadRoleTypes(node, rt);
private void LoadRoles()
roles.Clear();
roles = DBOSYS_ROLE.GetSYS_ROLEEntities();
foreach (DMESYS_ROLE r in roles)
TreeNode tn = CallFindNode(r.Role_Type_Id, tvRoles);
if (tn != null)
TreeNode node = tn.ChildNodes.Add();
node.Tag =
node.Text = r.N
#endregion
角色组实体类代码如下所示:
[Serializable, Class("DMESYS_ROLE_TYPE", "Id")]
public class DMESYS_ROLE_TYPE : DMEBase, IEquatable&DMESYS_ROLE_TYPE&
#region Private Members
private string _
private string _parent_
private string _
  角色实体类的代码如下所示:
[Serializable, Class("DMESYS_ROLE", "Id")]
public class DMESYS_ROLE : DMEBase, IEquatable&DMESYS_ROLE&
#region Private Members
private string _
private string _role_type_
private string _
  角色组操作类的代码如下所示:
#region 从数据表获取记录 GetSYS_ROLE_TYPEEntities, GetSYS_ROLE_TYPEEntity
/// 获取所有实体对象实例。
/// 所有实体对象实例。
public static List&DMESYS_ROLE_TYPE& GetSYS_ROLE_TYPEEntities()
    string table = DBOService.GetTableName(typeof(DMESYS_ROLE_TYPE));
string sql = "SELECT * FROM " +
List&DMESYS_ROLE_TYPE& result = new List&DMESYS_ROLE_TYPE&();
List iIBList = new List();
DataTable dt = DBMsSqlManager.ExecuteDataTable(sql, table);
iIBList = DBOService.DataTable2DMEList(dt, typeof(DMESYS_ROLE_TYPE));
foreach (IIdentifiedBase iIB in iIBList)
result.Add(iIB as DMESYS_ROLE_TYPE);
/// 获取实体对象(根据主键)。
public static DMESYS_ROLE_TYPE GetSYS_ROLE_TYPEEntity(string dmeId)
if (String.IsNullOrEmpty(dmeId))
IIdentifiedBase iIB = DBOService.LoadEntity(typeof(DMESYS_ROLE_TYPE), dmeId);
return iIB == null ? null : (iIB as DMESYS_ROLE_TYPE);
#endregion
  角色的操作类代码如下所示:
    #region 从数据表获取记录 GetSYS_ROLEEntities, GetSYS_ROLEEntity
/// &summary&
/// 获取所有实体对象实例。
/// &/summary&
/// &returns&所有实体对象实例。&/returns&
public static List&DMESYS_ROLE& GetSYS_ROLEEntities()
    string table = DBOService.GetTableName(typeof(DMESYS_ROLE));
string sql = "SELECT * FROM " + table + " ORDER BY Order_id";
List&DMESYS_ROLE& result = new List&DMESYS_ROLE&();
List&IIdentifiedBase& iIBList = new List&IIdentifiedBase&();
DataTable dt = DBMsSqlManager.ExecuteDataTable(sql, table);
iIBList = DBOService.DataTable2DMEList(dt, typeof(DMESYS_ROLE));
foreach (IIdentifiedBase iIB in iIBList)
result.Add(iIB as DMESYS_ROLE);
/// &summary&
/// 获取实体对象(根据主键)。
/// &/summary&
public static DMESYS_ROLE GetSYS_ROLEEntity(string dmeId)
if (String.IsNullOrEmpty(dmeId))
IIdentifiedBase iIB = DBOService.LoadEntity(typeof(DMESYS_ROLE), dmeId);
return iIB == null ? null : (iIB as DMESYS_ROLE);
#endregion
上面代码中,数据模型层DML中实体类和数据访问层DAL中访问操作类都实现了序列化。
4.2.1 新增、编辑和删除
新增角色组和角色:点击展开树形菜单&角色类型&,可以看到平台的各个角色组和角色。选择&角色类型&或已有角色组后点击&新增分类&按钮,可以添加角色组;选择新添加的或者已有的角色组,点击&新增角色&按钮,可以添加具体的角色。平台在理论和实现上均支持了角色组和角色的无限递归分类。
在新增角色组或角色的过程中,其中带红色星号标记&*&的条目,比如名称和排序ID是必须要填写的内容。同时会检测该角色组或角色名称在平台上的合法性。确保角色组或角色名称的唯一性和可用性,不至于造成平台管理时的混乱。
具体的操作界面如下图4.2.1-1所示:
图4.2.1-1& 新增角色组、角色
编辑角色组和角色:主要是在角色组或角色的名称,排序,备注等信息发生变更的情况时进行的编辑操作。
点击展开树形菜单&角色类型&,在树型目录下选择一个角色组或者角色后点击&编辑&按钮,即完成对应角色组或角色信息的修改。
具体编辑操作界面如下图4.2.1-2中所示:
图4.2.1-2& 编辑角色组、角色
删除角色组和角色:如果需要对平台上的角色组或者角色进行删除,点击展开树形菜单&角色类型&,在树型目录下选择一个角色组或者角色后点击&删除&按钮,在图4.2.1-3中显示了几个删除操作的提示对话框界面。
备注:对于已经被使用的角色,不能对其进行直接删除,要先回收角色的使用源;对于拥有子角色组或者角色的角色组是无法直接删除的,首先需要删除下面的子角色组或者下属的角色;对于已经含有权限的角色也是无法直接删除的,也是需要先取消其授权的权限资源后才能进行删除操作。
图4.2.1-3& 删除角色组或角色提示
4.2.2 移动角色
平台上的角色组和角色在使用过程中可能会发生归属或者分组的变更,此时就需要涉及到对角色组或角色的进行移动操作。
点击展开树形菜单&角色类型&,选择一个角色组或角色后点击&移动&按钮,如下图4.2.2-1所示,操作界面以动态树形方式列出了当前平台的角色分类结构,选择需要移动到的目标角色组,点击确认,即可完成角色组或角色的调动。
图4.2.2-1& 移动角色组或角色
移动角色组或角色功能代码其实也比较简单了,这里就直接上代码了:
private bool flag =
private void TargetContainsDest(DMESYS_MODULE_TYPE target, DMESYS_MODULE_TYPE dest)
List&DMESYS_MODULE_TYPE& subModuleType = DBOSYS_MODULE_TYPE.GetSubModuleTypes(target);
if (subModuleType.Count & 0)
foreach (DMESYS_MODULE_TYPE mt in subModuleType)
if (mt.Id == dest.Id)
if (DBOSYS_MODULE_TYPE.GetSubModuleTypes(mt).Count & 0)
foreach (DMESYS_MODULE_TYPE mt2 in subModuleType)
TargetContainsDest(mt2, dest);
private bool MoveModuleType()
if (target is DMESYS_MODULE_TYPE)
if (destObj != null)
DMESYS_MODULE_TYPE dmeTarget = target as DMESYS_MODULE_TYPE;
DMESYS_MODULE_TYPE dmeDest = destObj as DMESYS_MODULE_TYPE;
TargetContainsDest(dmeTarget, dmeDest);
if (dmeTarget.Id != dmeDest.Id && !flag)
dmeTarget.Parent_Id = dmeDest.Id;
DBOSYS_MODULE_TYPE.UpdateDMESYS_MODULE_TYPE(dmeTarget);
else if (dmeTarget.Id == dmeDest.Id || flag)
lbTip.Visible =
else if (destObj == null)
DMESYS_MODULE_TYPE mt = target as DMESYS_MODULE_TYPE;
mt.Parent_Id = "";
DBOSYS_MODULE_TYPE.UpdateDMESYS_MODULE_TYPE(mt);
else if (target is DMESYS_MODULE)
if (destObj == null)
lbTip.Visible =
else if (destObj != null)
DMESYS_MODULE dmeModule = target as DMESYS_MODULE;
dmeModule.Module_Type_Id = (destObj as DMESYS_MODULE_TYPE).Id;
DBOSYS_MODULE.UpdateDMESYS_MODULE(dmeModule);
4.2.3 角色授权
角色授权功能就是为了方便用户权限的统一授权和管理而开发的。用户可根据被设置不同角色来访问本平台上的模块资源与动作权限。
点击展开树形菜单&角色类型&,在角色组下选择一个角色(如&系统管理员&)后点击&授权&按钮。界面以动态树形的方式列出了当前平台中所有模块和对应动作的资源结构。该资源结构是根据模块管理的相关配置加载的,模块允许的权限动作都会在该资源结构中加载。打开页面时会自动加载(显示为已勾选上)当前选中角色已经分配拥有的模块资源和权限动作。点击勾选或者取消勾选对应的模块资源和权限动作,点击确认,即可完成对角色的授权。
具体操作界面如下图4.2.3-1中所示:
图4.2.3-1& 角色授权
看完效果,上硬菜了:
#region LoadModuleTypes, LoadModules, LoadGrantedModuleRights, LoadModuleRight
      // 加载模块类型
private void LoadModuleTypes(TriStateTreeNode currentNode, DMESYS_MODULE_TYPE currentModuleType)
List&DMESYS_MODULE_TYPE& subModuleTypes =
if (currentModuleType != null)
subModuleTypes = DBOSYS_MODULE_TYPE.GetSubModuleTypes(currentModuleType);
subModuleTypes = DBOSYS_MODULE_TYPE.GetAllTopModuleTypes();
foreach (DMESYS_MODULE_TYPE rt in subModuleTypes)
TriStateTreeNode node = new TriStateTreeNode();
node.Tag =
node.Text = rt.N
node.IsContainer =
currentNode.Nodes.Add(node);
LoadModuleTypes(node, rt);
    // 加载模块
private void LoadModules()
modules.Clear();
modules = DBOSYS_MODULE.GetSYS_MODULEEntities();
foreach (DMESYS_MODULE m in modules)
TriStateTreeNode tn = CallFindNode(m.Module_Type_Id, rootNode);
if (tn != null)
TriStateTreeNode node = new TriStateTreeNode();
node.Tag =
node.Text = m.N
node.IsContainer =
tn.Nodes.Add(node);
LoadModuleRight(node);
     // 加载已经授权的模块数据
private void LoadGrantedModuleRights(TriStateTreeNode triStateNode)
foreach (TriStateTreeNode tn in triStateNode.Nodes)
if (tn.Tag is DMESYS_MODULE)
List&DMEV_SYS_RMR& rmrGrantedList = DBOV_SYS_RMR.GetSYS_RMR(role, tn.Tag as DMESYS_MODULE);
foreach (DMEV_SYS_RMR rmr in rmrGrantedList)
foreach (TriStateTreeNode n in tn.Nodes)
if (rmr.Right_Id == n.Name && rmr.Role_Id == role.Id)
n.Checked =
LoadGrantedModuleRights(tn);
      // 加载具体模块对应的动作权限
private void LoadModuleRight(TriStateTreeNode node)
List&DMESYS_MODULE_RIGHT& mrHadList = DBOSYS_MODULE_RIGHT.GetModuleRights(node.Tag as DMESYS_MODULE);
foreach (DataRow dr in ra.Rows)
foreach (DMESYS_MODULE_RIGHT mr in mrHadList)
if (mr.Right_Tag == dr["RAction"].ToString())
TriStateTreeNode n = new TriStateTreeNode();
n.Text = dr["RActionName"].ToString();
n.Name = mr.Id;
node.Nodes.Add(n);
#endregion
上面具体的源代码按照逻辑顺序一步步实现了角色授权的功能,主要通过加载模块类型,加载模块,加载已经授权的模块数据,加载具体模块对应的动作权限等操作,完成了角色的模块授权和动作分配功能。
阅读(...) 评论()&&新闻中心
您现在的位置:首页 & 新闻中心&&&&
哪一款软件可以设置操作员权限_可以分配操作员权限的进销存软件
日期: 11:05:30
来源:象过河软件
操作员权限是一项针对不同操作员分配在制定范围内工作的一项功能,这对企业管理很实用,避免了操作员操作不熟悉的范围而导致在工作中造成业务不熟练而产生错误,这对于企业的管理者来说非常的使用,为广大企业的财务管理问题提供了一个非常完美的解决方案。至于企业记账软件中的权限设置功能的强大作用是非常多的,我们就简单的先说三个,让大家有一个简单的认识:
第一,&& 财务保密。企业的财务情况是企业的最高机密,现代是没有任何人愿意拿出自己的企业账务情况来给大家分享的,毕竟财富不外现是现在很多人的社会准则。更重要的是在企业运行上,钱财对员工、社会保密是一个老板最基本的商业机密,这不但关系到企业的内部运作发展问题,更关系到企业的外部市场拓展问题。象过河记账软件权限设置功能使企业的账务问题完全在老板之外绝对保密,是管理者最佳的财务管理工具。
第二,&& 保证账务准确。权限设置对企业的财务准确性来说非常重要,象过河开发这个功能的出发点就是保证记账软件对于记账的准确性,不能说账务数据谁想动谁动,老板看到的是最原始直接的数据,保证了账务数据在老板面前的饿绝对正确呈现,使老板对企业的账务有个非常清晰的认识。
第三,&& 保证管理者最高权限。为什么老板是企业的最高管理者,因为老板控制着企业的财务。所以企业的财务问题必须完全的处于老板的管理之下,这就要求老板拥有和别人不一样的管理权限,哪些是员工可以看到的,哪些是员工不可以看的,哪些是员工可以动的,哪些是绝对不可以动的,这些权限问题都必须掌握在老板手中。所以权限设置对于记账软件来说是不可缺少的。
了解了以上三个方面,大家或许就已经非常明白中的操作权限及操作权限分配功能的重要性了,这也是为什么不少大企业在选购进销存软件的时候首要考虑的就是权限分配问题。
在线客服关闭查看: 31486|回复: 1
仓库管理员工作标准,任职要求、工作内容和工作要求
  1 范围
  本标准规定了管理员岗位工作关系、任职要求、工作内容和工作要求、职责权限、考核方式。
  2 岗位工作关系
  2.1 直接上级:后勤。
  2.2 直接下级:无
  2.3 平级关系:各部门管理员。
  3 任职资格要求
  3.2 熟悉专业知识、和管理技巧;
  3.3 头脑清晰,做事有条理,工作认真仔细、责任感强。
  3.4 了解常购物品的特性,掌握基本质量变化规律、存放期限、储存禁忌等;
  3.5 基本掌握电脑应用。
  3.6 熟练掌握消防器材设备性能和使用方法。
  4 工作内容和要求
  4.1 物品验收入库
  4.1.1 对单验收:对照进货通知单的品名、规格、质量、价格等逐项检查商品,注意有无单货不符或漏发、错发的现象。
  4.1.2 数量验收:一般是原件点整数、散件点细数、贵重商品逐一仔细检对。
  4.1.3 质量验收:通过感官或简单仪器检查商品的质量、规格、等级、价格,如外观是否完整无损、零部件是否齐全无缺、是否变质过期、易碎商品是否破裂损伤。
  4.1.4 数量在100件以上的验收5%;10-99件的验收10%;10件以下的全部验收。
  4.1.5 入库物资规格、型号、数量正确,质量符合要求,方能验收入库。
  4.1.6 对符合要求的材料填写入库单。(一式三份,一份采购员自留,一份仓库管理员自留记账,一份交给出纳报帐)
  4.1.7 验收一般应在当天完成,大批量进货三天内验收完毕。
  4.1.8 采购的材料一律进仓库。(除库外堆放的物资,如:黄沙、石子、砖块等土建材料)
  4.1.9 材料进库时,在存货卡上按其数量加,发出时按数减,并结出余数,标在存货卡上。
  4.2 存放
  4.2.1 一律按材料的名称、型号、规格等集中按固定位置摆放。摆放要整齐,不能积压的材料要用层架平放。
  4.2.2 材料分类摆放,易碎、易燃、易挥发的材料应隔离摆放。
  4.2.3 采取防护措施,做到防锈、防潮、防霉、防老化,做好虫、鼠防治工作。
  4.2.4 对保管条件发生变化(高温、潮湿等)影响材料安全的异常情况,必须及时汇报,采取措施,以便及时纠正,确保材料的储存和保养质量。
中国最大的专业网站,最多仓管人员聚集的与交流论坛
  4.3 出库
  4.3.1 领用材料,需凭各管理员签发的领料单,一式三份,一份领料部门留存,一份仓库管理员留存,一份交出纳。
  4.3.2 库存物料在发放前应进行检查或性能检测,如不能使用,由仓库管理员填写《工作联系单(A)》,经小区经理审核批准后报废处理。
  4.3.3 领料单应注明材料用处,个人专用工具(如钳子、螺丝刀等)要填写个人领料单,由个人保管,如有遗失,由个人承担责任。
  4.3.4 对离职员工的领用工具及时收回。
  4.3.5 领用工具,如自然报废,需填写报废单,由管理员以上员工签字认可,如意外报废,要写明原因,否则照价赔偿。
  4.3.6 借用疏通机、电钻、电锤等贵重工具时,必须在当日下班前归还仓库。
  4.4 库房管理
  4.4.1 库房内设置:合格区、不合格区、待验区,并有相应的标识牌。
  4.4.2 除仓库管理人员和因业务工作需要的有关人员外,任何人未经批准不得进入仓库。
  4.4.3 每天打扫卫生,清除浮灰,每周整理仓库一次。
  4.4.4 仓库周围不得堆放易燃易爆物品,要经常检查消防器材是否放置合理,注意器材使用期限。
  4.4.5 仓库范围内不得生火及使用电炉、电热水器等。
  4.4.6 仓库管理员离库前必须认真进行安全检查,关窗锁门,切断水、电源。
  4.4.7 仓库钥匙要妥善保管,不得交由他人自行入库取物。
  4.4.8 仓库周围不得堆放易燃易爆物品,库房内应禁止吸烟,配备专用消防设备。
  4.5 盘存
  4.5.1 每月月底对库房内物资进行一次盘点,登记在《盘点表》上,并做出下月补充物资的采购计划。
  4.5.2 每半年进行一次全面查库、清点造册,并与会计核对,保证帐、卡、物三相符。
  4.5.3 按照常用物资储备,及时提出进货计划,主动备货,做到品种齐全对路,不断档,保供应。
  5 职责和权限
  5.1 职责
  5.1.1 负责监督和检验货品数量、质量,对于不符合要求物品提出拒收和退货。
  5.1.2 负责对库存物资建立帐本,出入库手序完备,每月盘点,做到帐物相符。
  5.1.3 负责妥善保管各类物品,物品分类清楚,摆放整齐,防止积压霉烂丢失。
  5.1.4 负责保持库内清洁卫生,作好库房防火、防爆、防盗等防范措施,发现事故隐患及时上报。
  5.2 权限
  5.2.1 对本岗位日常业务活动的支配权;
  5.2.2 对工作改进具有建议权。
  6 检查和考核
  6.1 按工作内容与要求进行检查。
  6.2 按《员工考核奖惩办法》和有关标准进行考核。
Powered by

我要回帖

更多关于 仓库管理技巧 的文章

 

随机推荐