组织机构管理
来源:互联网 发布:淘宝访问深度怎么计算 编辑:程序博客网 时间:2024/03/28 16:50
最早的组织机构管理是用上面直线型的方式来做。把每个对象创建出来。
但是这种方式不大灵活,如果在部门中添加新的部门整个组织的架构都要变动。
所以我们在下面定义了一种相对新一点的组织机构。
OrgType:组织机构类型,用来说明组织机构有哪些组织。
/** * 组织机构类型对象,用来设定系统中存在哪些组织类型 * 如:对于学校而言,可能存在:学校,分校,校长办,行政部门,教学部门,专业,班级 * @author KongHao * */@Entity@Table(name="t_org_type")public class OrgType { /** * 类型的标识 */ private int id; /** * 类型的名称 */ private String name; /** * 类型的sn序号 */ private String sn; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } @NotEmpty(message="组织机构类型名称不能为空") public String getName() { return name; } public void setName(String name) { this.name = name; } @NotEmpty(message="组织机构标识不能为空") public String getSn() { return sn; } public void setSn(String sn) { this.sn = sn; }}
OrgTypeRule:组织类型规则,用来定义组织类型之间的规则,例如哪些类型下面应该有哪些子类。
/** * 组织机构类型的规则表,用来确定组织之间的关系 * @author KongHao * */@Entity@Table(name="t_org_type_rule")public class OrgTypeRule { /** * 规则标识 */ private int id; /** * 规则的父id */ private int pid; /** * 规则的子id */ private int cid; /** * 两者之间的数量,如果为-1表示可以有无限多个 */ private int num; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } public int getCid() { return cid; } public void setCid(int cid) { this.cid = cid; } public int getNum() { return num; } public void setNum(int num) { this.num = num; }}
Org:定义组织相关的内容,形成一颗组织树。
/** * 组织对象,该表可以生成完整的组织树 * 根据组织类型来具体存储实际中存在的组织 * 昭通学院-->XX * 校本部-->FX * 南校区-->FX * @author KongHao * */@Entity@Table(name="t_org")public class Org { /** * 组织机构的id */ private int id; /** * 组织机构的名称 */ private String name; /** * 组织机构所属类型的id,此处不要使用ManyToOne */ private int typeId; /** * 组织机构所属类型的名称,冗余 */ private String typeName; /** * 组织机构的排序号 */ private int orderNum; /** * 组织机构的父亲组织 */ private Org parent; /** * 管理类型 */ private int managerType; /** * 组织机构的地址 */ private String address; /** * 组织机构的电话 */ private String phone; /** * 扩展属性1,用于在针对某些特殊的组织存储相应的信息 */ private String att1; /** * 扩展属性2,用于在针对某些特殊的组织存储相应的信息 */ private String att2; /** * 扩展属性3,用于在针对某些特殊的组织存储相应的信息 */ private String att3; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } @NotEmpty(message="组织机构的名称不能为空") public String getName() { return name; } public void setName(String name) { this.name = name; } @Column(name="tid") public int getTypeId() { return typeId; } public void setTypeId(int typeId) { this.typeId = typeId; } @Column(name="tname") public String getTypeName() { return typeName; } public void setTypeName(String typeName) { this.typeName = typeName; } @Column(name="order_num") public int getOrderNum() { return orderNum; } public void setOrderNum(int orderNum) { this.orderNum = orderNum; } @Column(name="manager_type") public int getManagerType() { return managerType; } public void setManagerType(int managerType) { this.managerType = managerType; } @ManyToOne @JoinColumn(name="pid") public Org getParent() { return parent; } public void setParent(Org parent) { this.parent = parent; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getAtt1() { return att1; } public void setAtt1(String att1) { this.att1 = att1; } public String getAtt2() { return att2; } public void setAtt2(String att2) { this.att2 = att2; } public String getAtt3() { return att3; } public void setAtt3(String att3) { this.att3 = att3; } @Override public boolean equals(Object obj) { Org o = (Org)obj; return this.id==o.getId(); } public Org() { } public Org(int id, String name) { super(); this.id = id; this.name = name; }}
Person:请直接看代码注释
/** * 人员对象,对于人员而言,某些项目中,可能Person里面会有一些非常特殊的属性,并不能够在人员对象中 * 一一展示,如学校系统:教师和学生要存储的信息完全不一致,此时就创建两个关联类来和Person进行关联 * 然后根据情况来确定是否有必要提供添加人员的功能,如果都是使用其他对象关联,如果所有的人员要么是教师 * 要么是学生,此时可以提供相应的教师和学生的添加功能,在添加学生和教师的时候直接添加Person对象 * 所以此处就把的公共属性抽取出来 * @author KongHao * */@Entity@Table(name="t_person")public class Person { private int id; private String name; private String sfzh; private String phone; private int sex; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSfzh() { return sfzh; } public void setSfzh(String sfzh) { this.sfzh = sfzh; } public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; }}
Position:人在组织中所处的岗位
/** * 岗位的对象,用来确定某个人员所属的岗位 * 存储的就是岗位的名称 * 副校长,校长,处长,副处长,科长,普通员工 * @author KongHao * */@Entity@Table(name="t_position")public class Position { /** * 岗位的标识 */ private int id; /** * 岗位的名称 */ private String name; /** * 岗位的sn */ private String sn; /** * 岗位的是否具备管理功能,目前意义不大 */ private int manager; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } @NotEmpty(message="岗位名称不能为空") public String getName() { return name; } public void setName(String name) { this.name = name; } @NotEmpty(message="岗位的标识不能为空") public String getSn() { return sn; } public void setSn(String sn) { this.sn = sn; } public int getManager() { return manager; } public void setManager(int manager) { this.manager = manager; }}
PersonOrgPos:人员组织岗位对应关系
/** * 人员组织岗位对应关系表,这张表里面存储了人员和组织和岗位的对应关系 * @author KongHao * */@Entity@Table(name="t_person_org_pos")public class PersonOrgPos { /** * 关系标识 */ private int id; /** * 人员id,这里也可以存储实体类,但是不太建议 */ private int personId; /** * 组织的id */ private int orgId; /** * 岗位的id */ private int posId; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } @Column(name="person_id") public int getPersonId() { return personId; } public void setPersonId(int personId) { this.personId = personId; } @Column(name="org_id") public int getOrgId() { return orgId; } public void setOrgId(int orgId) { this.orgId = orgId; } @Column(name="pos_id") public int getPosId() { return posId; } public void setPosId(int posId) { this.posId = posId; }}
0 0
- 组织机构管理
- 工程项目管理组织机构形式
- 权限系统--组织机构管理
- 常见项目管理组织机构简介
- 变更管理组织机构与作用
- 利用AJAX+J2EE开发组织机构管理系统
- 学生会组织机构管理系统V1.0 beta
- 利用AJAX+J2EE开发组织机构管理系统
- 第4章 组织机构(部门)管理
- 第4章 组织机构(部门)管理
- (14) 常用管理类软件需求征集 -- 组织机构管理
- (14) 常用管理类软件需求征集 -- 组织机构管理
- Xianfeng轻量级Java中间件平台:流水号管理、组织机构管理
- 利用AJAX+J2EE开发组织机构管理系统(1)
- 利用AJAX+J2EE开发组织机构管理系统(2)
- 利用AJAX+J2EE开发组织机构管理系统(3)
- 利用AJAX+J2EE开发组织机构管理系统(4)
- RDIFramework.NET ━ 9.5 组织机构管理 ━ Web部分
- "黑马程序员"Java面向对象(2)
- AppStore App加速审核
- 理解C指针: 一个内存地址对应着一个值
- 有关Unity3D的OnRenderImage()和Blit()的一些问题
- 死亡笔记1---java语言的四大特性以及方法重载 方法重写的区别以及new创建对象所用到的知识点
- 组织机构管理
- 项目管理小知识——Alpha版本,Beta版本
- 软件架构的数据流总结(一)
- 【C语言】调整数组使奇数全部都位于偶数前面
- Struts框架之Action中多个业务方法处理
- Objective-C - NSObject常用方法
- 创建一个简单的Joomla!模块
- Python下opencv使用笔记(一)(图像简单读取、显示与储存)
- sort与qsort的应用