-- ------------------------------------------------------------------评价--------------------------------------------------------------------

-- ----------------------------
-- 评价模版
-- ----------------------------
DROP TABLE IF EXISTS evaluate_template;
CREATE TABLE evaluate_template
(
    id BIGINT NOT NULL COMMENT '主键编号',
    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
    `create_date` DATETIME NULL DEFAULT NULL COMMENT '创建时间',
    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
    `modify_date` DATETIME NULL DEFAULT NULL COMMENT '修改时间',
    `delete_mark` INT NOT NULL COMMENT '删除标记',
    `enabled_mark` INT NOT NULL COMMENT '有效标志',
    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
    `name`  VARCHAR(200) NULL DEFAULT NULL COMMENT '模板名称',
    `evaluate_type` VARCHAR(30) NULL DEFAULT NULL COMMENT '评价类型(xjr_dictionary_item[evaluate_type])',
    `total` INT NULL DEFAULT NULL COMMENT '评价总分',
    `dept_ids` json NULL DEFAULT NULL COMMENT '使用部门ids',
    `remark` VARCHAR(1000)NULL DEFAULT NULL  COMMENT '备注',
    `status` INT NOT NULL DEFAULT 0 COMMENT '状态（0:禁用 1:启用）',
    PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '评价模版';

-- ----------------------------
-- 评价项
-- ----------------------------
DROP TABLE IF EXISTS evaluate_item;
CREATE TABLE evaluate_item
(
    id BIGINT NOT NULL COMMENT '主键编号',
    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
    `create_date` DATETIME NULL DEFAULT NULL COMMENT '创建时间',
    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
    `modify_date` DATETIME NULL DEFAULT NULL COMMENT '修改时间',
    `delete_mark` INT NOT NULL COMMENT '删除标记',
    `enabled_mark` INT NOT NULL COMMENT '有效标志',
    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
    `evaluate_template_id` BIGINT NOT NULL COMMENT '评价模版编号',
    `topic`  VARCHAR(500) NULL DEFAULT NULL COMMENT '标题名称',
    `problem` VARCHAR(1000) NULL DEFAULT NULL COMMENT '题目名称',
    `score` INT NULL DEFAULT NULL COMMENT '题目分数（最小为0，只能整数）',
    `input_not_null` INT NULL DEFAULT NULL COMMENT '输入框是否为空（1：非空，0，空）',
    PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '评价项';

-- ----------------------------
-- 评价结果
-- ----------------------------
DROP TABLE IF EXISTS evaluate_result;
CREATE TABLE evaluate_result
(
    id BIGINT NOT NULL COMMENT '主键编号',
    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
    `create_date` DATETIME NULL DEFAULT NULL COMMENT '创建时间',
    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
    `modify_date` DATETIME NULL DEFAULT NULL COMMENT '修改时间',
    `delete_mark` INT NOT NULL COMMENT '删除标记',
    `enabled_mark` INT NOT NULL COMMENT '有效标志',
    `evaluate_item_id` BIGINT NULL DEFAULT NULL COMMENT '评价项编号',
    `user_id` BIGINT NULL DEFAULT NULL COMMENT '参评人编号',
    `evaluated_object` VARCHAR(30) NULL DEFAULT NULL COMMENT '被评对象（teacher：老师，class：班级，student：学生）',
    `evaluated_object_id` BIGINT NULL DEFAULT NULL COMMENT '被评对象编号',
    `score` INT NULL DEFAULT NULL COMMENT '评价分数',
    `opinion` VARCHAR(2000) NULL DEFAULT NULL COMMENT '建议/意见',
    PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '评价结果';

-- ----------------------------
-- 评价管理
-- ------------------------
DROP TABLE IF EXISTS evaluate_manage;
CREATE TABLE evaluate_manage
(
    id BIGINT NOT NULL COMMENT '主键编号',
    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
    `create_date` DATETIME NULL DEFAULT NULL COMMENT '创建时间',
    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
    `modify_date` DATETIME NULL DEFAULT NULL COMMENT '修改时间',
    `delete_mark` INT NOT NULL COMMENT '删除标记',
    `enabled_mark` INT NOT NULL COMMENT '有效标志',
    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
    `evaluate_template_id` BIGINT NOT NULL COMMENT '评价模版编号',
    `base_semester_id` BIGINT NULL DEFAULT NULL COMMENT '学期id',
    `org_id` BIGINT NULL DEFAULT NULL COMMENT '发布部门id',
    `name` VARCHAR(255) NULL DEFAULT NULL COMMENT '评价名称',
    `start_time` DATETIME NULL DEFAULT NULL COMMENT '开始时间',
    `end_time` DATETIME NULL DEFAULT NULL COMMENT '结束时间',
    `status` INT NULL DEFAULT NULL COMMENT '状态（-1：未发布，1：进行中，0，暂停）',
    PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '评价管理';

-- ----------------------------
-- 被评价对象
-- ------------------------
DROP TABLE IF EXISTS evaluate_object;
CREATE TABLE evaluate_object
(
    id BIGINT NOT NULL COMMENT '主键编号',
    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
    `create_date` DATETIME NULL DEFAULT NULL COMMENT '创建时间',
    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
    `modify_date` DATETIME NULL DEFAULT NULL COMMENT '修改时间',
    `delete_mark` INT NOT NULL COMMENT '删除标记',
    `enabled_mark` INT NOT NULL COMMENT '有效标志',
    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
    `evaluate_manage_id` BIGINT NOT NULL COMMENT '评价管理编号',
    `base_grade_id` BIGINT NULL DEFAULT NULL COMMENT '年级id',
    `object_id` BIGINT NULL DEFAULT NULL COMMENT '被评价对象id',
    `object_type` VARCHAR(50) NULL DEFAULT NULL COMMENT '被评价对象类别（teacher：老师，class：班级，student：学生）',
    PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '被评价对象';

-- ----------------------------
-- 评价执行人
-- ------------------------
DROP TABLE IF EXISTS evaluate_executer;
CREATE TABLE evaluate_executer
(
    id BIGINT NOT NULL COMMENT '主键编号',
    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
    `create_date` DATETIME NULL DEFAULT NULL COMMENT '创建时间',
    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
    `modify_date` DATETIME NULL DEFAULT NULL COMMENT '修改时间',
    `delete_mark` INT NOT NULL COMMENT '删除标记',
    `enabled_mark` INT NOT NULL COMMENT '有效标志',
    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
    `evaluate_manage_id` BIGINT NOT NULL COMMENT '评价管理编号',
    `evaluate_object_id` BIGINT NULL DEFAULT NULL COMMENT '被评对象id',
    `user_id` BIGINT NULL DEFAULT NULL COMMENT '参加评价的人id',
    PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '评价执行人';
ALTER TABLE `evaluate_executer`
    ADD COLUMN `status` INT DEFAULT 0  NULL   COMMENT '状态（1：已评分，0：未评分）' AFTER `user_id`;

-- ----------------------------
-- 评价管理题目
-- ------------------------
DROP TABLE IF EXISTS evaluate_manage_item;
CREATE TABLE evaluate_manage_item
(
    id BIGINT NOT NULL COMMENT '主键编号',
    `create_user_id` BIGINT NULL DEFAULT NULL COMMENT '创建人',
    `create_date` DATETIME NULL DEFAULT NULL COMMENT '创建时间',
    `modify_user_id` BIGINT NULL DEFAULT NULL COMMENT '修改人',
    `modify_date` DATETIME NULL DEFAULT NULL COMMENT '修改时间',
    `delete_mark` INT NOT NULL COMMENT '删除标记',
    `enabled_mark` INT NOT NULL COMMENT '有效标志',
    `sort_code` INT NULL DEFAULT NULL COMMENT '序号',
    `evaluate_manage_id` BIGINT NOT NULL COMMENT '评价管理编号',
    `topic`  VARCHAR(500) NULL DEFAULT NULL COMMENT '标题名称',
    `problem` VARCHAR(1000) NULL DEFAULT NULL COMMENT '题目名称',
    `score` INT NULL DEFAULT NULL COMMENT '题目分数（最小为0，只能整数）',
    `input_not_null` INT NULL DEFAULT NULL COMMENT '输入框是否为空（1：非空，0，空）',
    `evaluate_item_id` BIGINT NOT NULL COMMENT '评价项编号',
    PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT '评价管理题目';

-- ------------------------------------------------------------------评价--------------------------------------------------------------------