持续创作,加速成长!这是我参与「掘金日新计划 · 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实体类
ProcessFlow实体
Notice实体
2.创建dao
LeaveFomDao
ProcessFlowDao
NoticeDao
代码说明:这几个dao类都包含insert()方法,因为我们在后续课程都使用它来新增数据
3.mapper
leave-form.xml
process-flow.xml
notice.xml
<?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":数据库字段名