组织机构管理模块
请描述一下你做的组织机构管理模块
描述思路:
1、 组织机构模块的基本需求
a) 本模块主要管理公司、子公司、部门、岗位、员工的信息
b) 公司下面可以创建子公司、部门
c) 部门下面可以创建子部门、岗位或员工
d) 岗位下面可以创建员工(即员工可以属于某个岗位)
e) 公司、部门、岗位、员工形成一棵组织机构树,要求使用树型方式来展现和管理
2、 组织机构的总体设计思路
a) 公司、部门、岗位、员工可以看成同一种类型:Party
b) 在Party上实现树型结构(父子关系)
c) 其它类型:公司、部门、岗位、员工均继承Party(请画出类图)
3、 组织机构的实现技巧
a) 利用jQuery的jsTree实现组织机构树
b) 利用jQuery的treeTable实现列表(AJAX、查询、分页)
c) 在组织机构树中显示公司、部门、岗位的信息,点击公司、部门、岗位,则可以显示其详细信息,及其下面的所有员工(利用hibernate filter避免在树上显示员工信息)
d) 为了显示某个公司或部门(包括其下级机构)下面的所有员工,我们设计了一个sn,这个sn根据组织机构的树型结构来取值,通过它便可以方便实现查询需求。 e) 利用TreadLocal实现分页参数的传输
f) 利用VO设计模式适应客户端对数据格式的特殊要求
4、 我们这个设计的优点在哪里
a) 通过树的方式来管理,一目了然,层次清楚
b) TheadLocal设计模式的运用大大降低了分页查询逻辑的封装处理
c) 抽象出Party来,便于对所有的组织机构实体进行统一的管理(比如方便我们后面的权限管理模块把所有Party统一对待)
5、 我们这个设计的缺点在哪里
a) 没有实现员工的调动管理(从一个部门调到另外一个部门),此功能在项目二期实现!
b) 员工不允许跨部门(即一个员工只能属于一个部门,而不能同时属于多个部门) c) 在模型上没有规定哪些类型的Party只能放在哪些类型的Party下面,比如,在一般的需求中,岗位下面肯定是不能挂一个公司的。我们针对这种需求,是通过具体的代码逻辑来实现的,而没有办法在一个地方去统一定义这种规则。 i. 如果要实现这些逻辑的统一定义,可以参考“责任模式”!
权限管理模块
请描述一下你做的权限管理模块
描述思路:
1、 权限管理的基本需求
a) 系统后台有很多菜单项,同时各个页面上也有很多功能按钮,客户要求我们的系统
要能够控制这些菜单项的访问权限,也可以控制到具体每个功能按钮的访问权限 b) 客户要求建立角色的概念(参考RBAC),能够自由定制不同的角色,角色和用户
之间是多对多的。
c) 权限可以授予角色,然后把角色分配给用户,这样用户就拥有了角色的权限
d) 权限也可以授予某个部门、某个岗位,这样在这些部门或岗位下面的用户就拥有了
这些部门和岗位的权限
e) 客户还要求权限也能直接授予用户,这样即使拥有相同的角色、相同的部门、相同
的岗位,用户的权限也可以是不同的
f) 这样,用户自身被授予的权限、用户拥有的角色的权限、用户所属部门或岗位的权
限这些要素联合起来判断,才能最终决定用户的权限。
g) 因为用户的权限可能从多个角色或部门、岗位中继承下来,而这些角色、部门或岗
位的授权极有可能会有冲突,比如一个角色的授权是允许访问,而另外一个角色的授权是拒绝访问,客户要求,如果出现这种情况,就以拒绝为准,即不允许访问。
2、 权限管理的总体设计思路
a) 因为权限可以被授予用户、角色、部门、岗位等等,我们称之为权限控制的“主体”,
我们定义了一个接口Principal用来表示主体的概念,用户、角色、部门、岗位等均实现这个接口
b) 我们要控制菜单项以及各种功能按钮的访问,我们称这些菜单项和各种功能按钮为
权限控制的“资源”,定义了一个SysResource接口来表示资源的概念。
c) 菜单项是一种资源;而各种功能按钮最终其实是要访问后台的某个类的某个方法,
因此我们把Action类看成是一种资源(称为“操作资源”),各种功能按钮则对应了这个类里面的各种方法,我们把这些方法看成是这种资源的各种操作。
d) 我们定义了一个ACL用来表示哪些资源的哪些操作被授予了哪些主体,ACL中的
主要属性包括:主体类型(principalType)、主体ID(principalId)、资源类型(resourceType)、资源ID(resourceId)、操作状态(aclState),其中操作状态是int类型,在Java中,一个int有32位(bit),我们定义资源的时候,把这个资源对应的操作映射到某一位上,规定在这一位上取1表示允许执行那个操作,而取0表示不允许执行那个操作。
e) 这样,在授权的时候,我们直接改变相应操作的状态位的取值即可;在认证的时候,
直接判断相应操作状态位的取值
3、 权限管理的实现技巧
a) 在实现上,对于授权,我们界面上用jQuery和jQuery的插件jsTree来呈现菜单树,
在菜单树的前面显示一个CheckBox框,打勾表示允许,打叉表示拒绝;同时也做了一些右键点击显示上下文菜单,方便客户执行各种功能
b) jsTree没有打叉这种显示方式,为了满足我们的要求,所以对jsTree插件做了一些
扩展(主要是修改它的js文件和css文件、图片等),以便能支持更强大的显示方式。
c) 因为我们把系统中的各种Action类及其方法,看成是各种资源及其操作,为了方
便管理,我们利用Spring提供的API搜索具备某些特征的Action类及其方法(特定的命名及特定的注解),将这些信息插入数据库,这样便可以将其用于授权和认证。
d) 在认证的时候,我们实现了两种方式的认证:
i. 第一是根据授权,能够把没有授权的菜单项屏蔽,也能够把没有授权的功能按
钮屏蔽;
ii. 第二,因为第一种认证方式会有一些安全性问题,比如客户可以绕过功能按钮,
直接在浏览器输入某个功能的地址,为了避免这种问题,我们在后台也做了认证,根据当前请求的是哪个类的哪个方法,编写拦截器,判断当前登录用户是否具备这个权限,如果没有这个权限,就不允许执行这个操作!
e) InitService和XML
f) 自定义注解,利用Springde的API扫描类(大概说出一两个类名)
4、 我们这个设计的优点在哪里
a) 因为抽象出了主体和资源这两个概念,核心的授权和认证代码依赖于这两个概念,
而不是具体的哪个主体或资源。所以,能够更灵活的支持主体和资源的扩展,比如假设以后客户还想要给用户分组,按照分组来给用户授权,那么只需要实现一个新的主体类型即可,核心的授权和认证的代码无需变化。
b) 权限控制的粒度更细,因为我们用一个int来表示操作的允许状态,这就意味着,
我们能支持在某个资源上的至多32种操作,在设计上无需做变化。一个资源上的操作一般不会超过32种操作,一般来说也就是添加、更新、删除、查询,以及在这个基础上更加细分的一些操作而已,很少会超过32种操作。即使是极端情况,超过了32种操作,那么我们的核心设计也无需变动,无非就是把int换成一个long类型即可(支持64种操作)。
c) 我们还能支持细粒度的操作权限继承关系:
i. 比如针对“公司管理”这种资源,假设它有六种操作:添加公司信息、删除公
司信息、更新公司信息、查询公司信息、添加子公司、删除子公司;我们可以把这些权限授予比如“张三”这个用户。在授权的时候,我们可以细化到这种程度:
1. 明确规定:允许张三查询公司信息、更新公司信息
2. 明确规定:不允许张三添加公司信息、删除公司信息
3. 至于张三是否能执行添加子公司和删除子公司这些操作,我们可以不做明
确规定,而是由其所拥有的角色,或其所属的部门、岗位的权限来决定,
这称为“权限的继承关系”,针对这种需求,在ACL中,我们设计了一个
额外的属性:aclTriState,用来表示某种操作的权限是否是继承下来的。
5、 我们这个设计的缺点在哪里
a) 角色之间没有考虑父子关系,如果考虑父子关系的话,会更加便于授权,比如假设
有一个角色为“普通员工”,另外一个角色是“档案管理员”,如果把普通员工看成
是档案管理员的父角色,则意味着档案管理员这个角色的权限将可以继承普通员工中的权限(为什么没有实现这个设计呢,客户认为没有必要,因为系统中的角色数量比较少,如果这样设计的话,反而会增加客户操作的难度,无需过度设计) b) 我们还没有实现更细粒度的数据级的权限控制,比如,我们目前通过权限控制系统
无法实现如下需求:规定张三可以查看所有部门的员工信息,但只能对本部门的员工信息执行添加、删除和修改操作。没有实现的原因是:客户目前这方面的需求还不是很多,因此,没有必要在权限控制系统中实现。实现上述需求,我们是将这些逻辑写到了具体的代码中,而没有通过权限控制系统进行统一的定义。这也是大部分权限控制系统的实现策略。
工作流模块
请描述一下你做的工作流模块
描述思路:
1、 工作流模块的基本需求
a) 请描述
2、 工作流模块的总体设计思路
a) 把JBPM嵌入OA系统(如何实施的?具体过程?大概有哪些配置?)
b) 表单管理、流程管理、WorkEntity、WorkApprove、EntityProperty(动态表单)
3、 工作流模块的实现技巧
a) 引入jbpmeditor之后,对它做了一些定制开发(支持中文,动态表单的关联) b) 其它?
4、 我们这个设计的优点在哪里
a) 对JBPM的扩展
i. 自定义JBPM变量解释器
ii. 可以给角色、部门、岗位分配任务,抛弃了JBPM中简单的User-Group这种
组织结构模型,使用了OA中的组织结构模型
iii. 实现了自由流(如何实现的?)
iv. 利用自定义节点实现了会签的决策(如何实现的?)
b) 动态表单设计方案
5、 我们这个设计的缺点在哪里
a) 在流程定义的界面上,没有实现会签节点的定义
b) 在动态表单设计界面上,无法直接添加一些动态的组件(比如无法通过拖拽的方式
添加一个人员列表等等)
c) 没有实现流程的监控
EAP项目总结
20xx年x月x日,中国移动内蒙古公司EAP计划正式启动,这是公司为全体呼叫中心员工量身打造的一份 “精神福利”。 EAP,(Employee Assistance Program),中文译为 “员工帮助计划”,是由组织为其成员设臵的一项长期的、系统的援助和福利计划。通过专业人员的访谈、诊断、建议并对员工提供专业指导、培训和咨询,旨在帮助解决员工及其家庭成员的各种心理和行为问题,打造员工阳光心态,提高员工工作效率。它源于20世纪xx年代的美国,近年来越来越多地被应用到企业管理中。到目前为止,90%以上的世界500强企业为员工提供了EAP服务。
面对繁忙的工作和快速的生活,没有人的心里能够一尘不染。中国移动内蒙古公司呼叫中心是一个有着近900名员工的部门,人员高度密集,工作环境相对比较单调;经常处于面对客户的抱怨、投诉的服务环境中,心理负担较重、服务压力较大;“80后”员工构成员工主体,特立独行的自我表达方式与规范运营的管理模式相互撞击,如何解决员工自我调节、自我缓解能力较弱的问题需要寻找有效的管理思维和管理方式。基于这些实际情况,中国移动内蒙古公司为呼叫中心员工引入EAP项目,目的在于传导缓解压力的方法,锻造阳光心态,正确面对工作和生活的压力,从而提高员工整体的凝聚力和向心力,促进企业持续和谐稳定发展。
本次EAP项目组在呼叫中心开展情况大致可以概括为四个阶段,第一阶段是前期访谈及调查阶段,通过咨询式个体访谈、焦点座谈会访谈、调查问卷统计分析对中心全体员工的工作和生活情况及心理状态进行了较为详细的了解;第二阶段是各类讲座及培训辅导阶段,共开展了EAP空间活动、情绪调节心理讲座、压力管理及挫折应对讲座、管理者情绪管理能力培训和“80后”新员工个人成长培训营等大型讲座5次,参训人员广泛,基本达到了解决员工困扰、树立面对压力的正确观念、掌握情绪调整的相关知识和技能的作用;
第三阶段是进行了为期3个月的免费电话预约咨询,通过心理专家与员工个体一对一的交流,深层次地了解员工的工作和生活状况,解决的问题涉及到工作压力、心理健康、职业生涯发展、健康生活方式甚至有减肥和饮食紊乱等多个方面,部分员工找到了解决个人及其家人的心理和行为问题的方法;第四个阶段是通过制作EAP使用手册、办公场地张贴宣传小贴士、楼宇广告宣传等形式,加深员工对EAP项目的认知度。这四个阶段在时间维度上既有串行也有并行,在空间维度上既有户外活动也有室内情景,在组织形式上既有主观的经验感受也有客观的学习积累。
古人云:受之鱼不如授之渔。与其说EAP项目通过丰富多彩的模式对员工进行了援助,不如说呼叫中心的广大员工通过学习EAP项目客观科学的理论理念找到一种钓鱼的方
法,帮助员工正确认识自我、面对挫折、缓解压力、调整心态,以提高员工的整体素质,使广大员工学会用科学的、正确的方法解决今后遇到的相似问题。从个体发展的角度来讲,个人的不断成熟与发展才能促进企业的竞争能力。企业的竞争就是人才的竞争,这已经成为不争的事实。企业人才的作用要充分发挥出来,不仅取决于员工的智力因素,同时也取决于员工的情绪及心理因素。提高员工心理承受能力,促使他们产生自我实现的需要,并不断发展和成熟,成为企业最具竞争力的武器。这也正是说EAP项目是公司为员工订制的“精神福利”的原因所在。从组织发展的角度看,员工援助计划可以促进公司绩效的提高。公司导入EAP系统使员工学习到该项目传播的科学理念,了解人际交往和沟通的要点,运用角色抽离法面对工作的压力,各级管理人员也学到了更适合与“80后”员工沟通的方式,主动发现他人的优点、与下属形成积极的情绪互动、用良好的情绪引导员工的行为,在管理过程中使员工感受到尊重、理解、关爱、认可与赞美,并能够适当包容员工的缺点与错误,帮助其改进并不断成长。通过管理者的身体力行来创造一个和谐的工作氛围,对员工进行正面的引导和激励。EAP项目通过减少员工非理智情绪、降低流失率、增强团队凝聚力、鼓励员工士气,进而达到改进生产效率、改善工作氛围并带来高回报率前景,进一步达到员工和企业共同发展、共同提高的双赢效果。
本次的EAP援助项目贴近员工的内心,了解了员工的需求,通过人性化的管理手段,真正将员工援助计划进行到底,让员工找到快乐工作、奉献企业的理由,从“看上去很美”的表面形式达到了治标也治本的本质效果。
结项总结报告V10密级内部公开文档编号版本号V10结项总结报告XXXX有限公司XXXX股份有限公司对本文件资料享受著作权及其它专属…
合肥工业大学大学生创新训练计划项目个人总结项目名称:项目编号:指导教师:校级创新项目个人总结时光荏苒,一眨眼一年的时间已经过去了。…
1.项目的基本信息2.过程详细情况过程详细情况描述项目开发时采用的过程,并且对每个过程中详细的活动、活动的工作产品、活动参与角色等…
国家级创业项目结项心得体会20xx年x月份,我们申请了这个非诉讼律师事务所模拟的国家级创业训练项目,我们五个人怀着自己的梦想自己的…
河南师范大学大学生创新实验计划项目结项报告项目名称项目类别项目负责人学院年级专业联系电话指导教师指导教师所在单位河南师范大学制填表…
(以上为修改记录的示例,请认真填写)一.绪论...........................................…
目录历史记录...........................................................…
生命是永恒不断的创造,因为在它内部蕴含着过剩的精力,它不断流溢,越出时间和空间的界限,它不停地追求,以形形色色的自我表现的形式表现…
、.~①我们‖打〈败〉了敌人。②我们‖〔把敌人〕打〈败〉了。项目名称项目总结报告:总体[注:以下提供的模板用于部门技术文档的建立。…
项目研究总结:一、主要研究内容与研究方法:(一)研究内容:本课题一武汉市体育旅游也开发为研究对象,对东方马城、藏龙岛国际体育公园等…
软件描述软件的中文名字:个人博客英文名字:Myblog综合评估在开发这个软件的过程中,遇到了很多的困难,不是这个软件不会用就是那个…