组织机构管理

转载 2015年08月14日 00:57:47

组织机构管理的图片
最早的组织机构管理是用上面直线型的方式来做。把每个对象创建出来。
但是这种方式不大灵活,如果在部门中添加新的部门整个组织的架构都要变动。

所以我们在下面定义了一种相对新一点的组织机构。
OrgType:组织机构类型,用来说明组织机构有哪些组织。
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:组织类型规则,用来定义组织类型之间的规则,例如哪些类型下面应该有哪些子类。
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:定义组织相关的内容,形成一颗组织树。
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进行关联
 * 然后根据情况来确定是否有必要提供添加人员的功能,如果都是使用其他对象关联,如果所有的人员要么是教师
 * 要么是学生,此时可以提供相应的教师和学生的添加功能,在添加学生和教师的时候直接添加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:人在组织中所处的岗位
positon

/**
 * 岗位的对象,用来确定某个人员所属的岗位
 * 存储的就是岗位的名称
 * 副校长,校长,处长,副处长,科长,普通员工
 * @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:人员组织岗位对应关系
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;
    }
}

XXX管理平台系统——项目组织结构

 XXX管理平台系统项目组织结构 如果你处在一个专业的IT公司,你未必会意识到项目组织结构对IT项目管理的影响,因为在大多数的专业IT公司中,基本上都是项目型组织或者强矩阵型组织结构,在这样的组织结构...
  • baoqiangwang
  • baoqiangwang
  • 2009年10月14日 23:24
  • 1231

使用Jquery+EasyUI 进行框架项目开发案例讲解之四 组织机构管理源码分享

在上三篇文章    《使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享》    《使用Jquery+EasyUI 进行框架项目开发案例讲解之二---用户管理源码...
  • my98800
  • my98800
  • 2017年05月18日 16:22
  • 686

Xianfeng轻量级Java中间件平台:流水号管理、组织机构管理

属性管理:
  • mycdsnstudy
  • mycdsnstudy
  • 2014年05月25日 23:26
  • 1455

机构用户管理

通过【系统管理】-【机构用户管理】,可以进入机构和用户管理界面。 基本概念 机构是指组织内部的组成结构,机构按照树形结构组成上下级关系。 用户可以属于机构树中的任意一个机构,并非只...
  • u011386922
  • u011386922
  • 2014年12月29日 10:25
  • 886

iMatrix平台中组织结构标准树(popZtree(zTreeSetting))用法

1.1.1   popZtree(zTreeSetting) 1.1.1.1   参数说明 Ø  type: {            treeType: "COMPANY",    ...
  • u011616337
  • u011616337
  • 2014年09月18日 10:20
  • 866

RDIFramework.NET ━ 9.5 组织机构管理 ━ Web部分

组织机构管理模块提供直观方便的组织机构管理,以树型结构显示单位和部门的机构体系,可根据需要进行添加、修改、删除或移动等对组织机构进行调整处理。...
  • chinahuyong
  • chinahuyong
  • 2015年01月31日 11:45
  • 2582

企业管理软件中的组织模型和权限模型

1. 概述 组织模型是管理软件中系统建模的一个重要组成部分(企业模型一般包括资源模型、组织模型、信息模型、功能模型、流程模型),权限模型是管理软件系统的安全体系的核心,这两个模型本身既有很强的独立性...
  • yczz
  • yczz
  • 2014年12月30日 12:03
  • 1847

关于树形数据结构 如组织机构树

关于树形数据结构,最好的实现方式是前序遍历,前序遍历既能实现查找整个节点,也能实现查找某一层,或查找父节点,速度快。 组织机构树采用该遍历比较好。 关于这方面的文章参考http://ftp.ntu.e...
  • Truong
  • Truong
  • 2013年05月15日 10:56
  • 2495

组织结构及权限模型设计

在企业应用系统中,组织结构模型及权限是应用系统的基础,管理系统用户、部门、用户组及其关系,并对系统权限进行设置,企业中存在各种应用系统需求,统一的组织结构及权限模型设计为企业应用系统提供统一的用户及权...
  • cancan28
  • cancan28
  • 2007年10月29日 10:12
  • 1991

组织机构权限系统设计

工作流管理系统中,业务流程的流转,每个节点的办理都是由人或组织共同参与和协作来完成的。工作流管理系统就是业务流程的自动化,通过计算机的相关技术手段将这些流程自动化,并对其进行有效的管理以提高企业运作的...
  • u011461420
  • u011461420
  • 2016年09月20日 13:53
  • 1032
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:组织机构管理
举报原因:
原因补充:

(最多只允许输入30个字)