OA系统开发(十一)

84 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

数据准备:

1.请假表

CREATE TABLE `adm_leave_form`  (
  `form_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '请假单编号',
  `employee_id` bigint(20) NOT NULL COMMENT '员工编号',
  `form_type` int(255) NOT NULL COMMENT '请假类型 1-事假 2-病假 3-工伤假 4-婚假 5-产假 6-丧假',
  `start_time` datetime(0) NOT NULL COMMENT '请假起始时间',
  `end_time` datetime(0) NOT NULL COMMENT '请假结束时间',
  `reason` varchar(128)  NOT NULL COMMENT '请假事由',
  `create_time` datetime(0) NOT NULL COMMENT '创建时间',
  `state` varchar(32)  NOT NULL COMMENT 'processing-正在审批 approved-审批已通过 refused-审批被驳回',
  PRIMARY KEY (`form_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 36 ;

2.审批流程表

CREATE TABLE `adm_process_flow`  (
  `process_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '处理任务编号',
  `form_id` bigint(20) NOT NULL COMMENT '表单编号',
  `operator_id` bigint(20) NOT NULL COMMENT '经办人编号',
  `action` varchar(32)  NOT NULL COMMENT 'apply-申请  audit-审批',
  `result` varchar(32)  NULL DEFAULT NULL COMMENT 'approved-同意 refused-驳回',
  `reason` varchar(255)  NULL DEFAULT NULL COMMENT '审批意见',
  `create_time` datetime(0) NOT NULL COMMENT '创建时间',
  `audit_time` datetime(0) NULL DEFAULT NULL COMMENT '审批时间',
  `order_no` int(11) NOT NULL COMMENT '任务序号',
  `state` varchar(32)  NOT NULL COMMENT 'ready-准备 process-正在处理 complete-处理完成 cancel-取消',
  `is_last` int(255) NOT NULL COMMENT '是否最后节点,0-否 1-是',
  PRIMARY KEY (`process_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 88 ;

3.系统消息表

CREATE TABLE `sys_notice`  (
  `notice_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `receiver_id` bigint(20) NOT NULL,
  `content` varchar(255)  NOT NULL,
  `create_time` datetime(0) NOT NULL,
  PRIMARY KEY (`notice_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 19 ;

数据层操作

1.创建entity

LeaveFom实体类 image.png ProcessFlow实体 image.png Notice实体 image.png

2.创建dao

LeaveFomDao image.png ProcessFlowDao image.png NoticeDao image.png 代码说明:这几个dao类都包含insert()方法,因为我们在后续课程都使用它来新增数据

3.mapper

leave-form.xml image.png process-flow.xml image.png notice.xml image.png

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.imooc.oa.dao.LeaveFormDao">
    <insert id="insert" parameterType="com.imooc.oa.entity.LeaveForm" useGeneratedKeys="true" keyProperty="formId" keyColumn="form_id" >
        INSERT INTO adm_leave_form
            ( employee_id, form_type, start_time, end_time, reason, create_time, state)
            VALUES
            ( #{employeeId}, #{formType}, #{startTime}, #{endTime}, #{reason}, #{createTime}, #{state});
    </insert>
</mapper>

代码说明:

  • namespace="com.imooc.oa.dao.LeaveFormDao":命名空间指向对应的dao接口
  • parameterType="com.imooc.oa.entity.LeaveForm":类型为对应的实体类
  • useGeneratedKeys="true":开启自增key
  • keyProperty="formId":实体字段名
  • keyColumn="form_id":数据库字段名

4.注册mapper

image.png

5.单元测试

image.png