-- ----------------------------
-- 2024-12-13 14:36
-- 教材信息表
-- ----------------------------
DROP TABLE IF EXISTS textbook;
CREATE TABLE `textbook`
(
    id                         bigint         not null comment '主键编号'
    primary key,
    create_user_id             bigint         null comment '创建人',
    create_date                datetime       null comment '创建时间',
    modify_user_id             bigint         null comment '修改人',
    modify_date                datetime       null comment '修改时间',
    delete_mark                int            not null comment '删除标记',
    enabled_mark               int            not null comment '有效标志',
    sort_code                  int            null comment '序号',
    issn                       varchar(200)   null comment '国际标准刊号',
    isbn                       varchar(200)   null comment '国际标准书号',
    book_name                  varchar(200)   null comment '书名',
    publishing_house           varchar(200)   null comment '出版社',
    editor_in_chief            varchar(200)   null comment '主编',
    subject_group_id           bigint         null comment '学科组管理编号(subject_group)',
    base_semester_id           bigint         null comment '学期ID(base_semester)',
    course_subject_id          bigint         null comment '课程编号(base_course_subject)',
    grade_id                   bigint         null comment '入学年级(base_grade)',
    version                    varchar(100)   null comment '版本',
    is_textbook_plan           varchar(20)    null comment '是否为规划教材(xjr_dictionary_item[judgment_method_1])',
    textbook_type              varchar(20)    null comment '教材分类(xjr_dictionary_item[textbook_type])',
    specifications_models      varchar(100)   null comment '规格型号',
    appraisal_price            decimal(10, 2) null comment '估价(元)',
    price                      decimal(10, 2) null comment '定价(元)',
    discount                   float          null comment '折扣',
    subtotal                   decimal(10, 2) null comment '小计（元）',
    stock                      int            null comment '库存',
    textbook_core_attribute_id bigint         not null comment '教材核心信息管理id(textbook_core_attribute)',
    use_type                   int            null comment '使用类型(单位：学期)',
    publishing_date            datetime       null comment '出版日期',
    is_secd                    int            null comment '是否校企合作开发教材',
    category                   varchar(50)    null comment '分类号',
    plan_batch                 varchar(50)    null comment '规划批次',
    work_total_count           int            null comment '编著作总数',
    textbook_category          varchar(30)    null comment '教材类型'
    )
    comment '教材管理';

create table if not exists tl.textbook_claim_user
(
    id                   bigint        not null comment '主键编号'
    primary key,
    create_user_id       bigint        null comment '创建人',
    create_date          datetime      null comment '创建时间',
    modify_user_id       bigint        null comment '修改人',
    modify_date          datetime      null comment '修改时间',
    delete_mark          int           not null comment '删除标记',
    enabled_mark         int           not null comment '有效标志',
    sort_code            int           null comment '序号',
    wf_textbook_claim_id bigint        null comment '教材申领编号',
    user_id              bigint        null comment '用户编号',
    user_type            int default 2 null comment '用户类型（1：学生 2=教师）'
)
    comment '教材领取人员';

create table if not exists tl.textbook_class_relation
(
    id             bigint   not null comment '主键编号'
    primary key,
    create_user_id bigint   null comment '创建人',
    create_date    datetime null comment '创建时间',
    modify_user_id bigint   null comment '修改人',
    modify_date    datetime null comment '修改时间',
    delete_mark    int      not null comment '删除标记',
    enabled_mark   int      not null comment '有效标志',
    sort_code      int      null comment '序号',
    textbook_id    bigint   null comment '教材管理编号',
    class_id       bigint   null comment '班级编号'
)
    comment '教材班级引用';

create table if not exists tl.textbook_core_attribute
(
    id               bigint       not null comment '主键编号'
    primary key,
    create_user_id   bigint       null comment '创建人',
    create_date      datetime     null comment '创建时间',
    modify_user_id   bigint       null comment '修改人',
    modify_date      datetime     null comment '修改时间',
    delete_mark      int          not null comment '删除标记',
    enabled_mark     int          not null comment '有效标志',
    sort_code        int          null comment '序号',
    issn             varchar(200) null comment '国际标准刊号',
    isbn             varchar(200) null comment '国际标准书号',
    book_name        varchar(200) null comment '书名',
    publishing_house varchar(200) null comment '出版社',
    editor_in_chief  varchar(200) null comment '主编'
    )
    comment '教材核心信息管理';

create table if not exists tl.textbook_issue_record
(
    id               bigint        not null comment '主键编号'
    primary key,
    create_user_id   bigint        null comment '创建人',
    create_date      datetime      null comment '创建时间',
    modify_user_id   bigint        null comment '修改人',
    modify_date      datetime      null comment '修改时间',
    delete_mark      int           not null comment '删除标记',
    enabled_mark     int           not null comment '有效标志',
    sort_code        int           null comment '序号',
    textbook_id      bigint        null comment '教材管理编号',
    data_id          bigint        null comment '数据编号（根据出库方式，编号来自不同数据表）',
    data_item_id     bigint        null comment '数据项项编号（根据出库方式，编号来自不同数据表）',
    issue_number     int           null comment '出库数量',
    remaining_number int           null comment '剩余数量',
    receive_user_id  bigint        null comment '领取用户编号',
    issue_user_id    bigint        null comment '出库用户编号',
    issue_mode       varchar(20)   null comment '出库方式(xjr_dictionary_item[issue_mode])',
    remark           varchar(1000) null comment '备注'
    )
    comment '教材出库记录';

create table if not exists tl.textbook_student_claim
(
    id               bigint        not null comment '主键编号'
    primary key,
    create_user_id   bigint        null comment '创建人',
    create_date      datetime      null comment '创建时间',
    modify_user_id   bigint        null comment '修改人',
    modify_date      datetime      null comment '修改时间',
    delete_mark      int           not null comment '删除标记',
    enabled_mark     int           not null comment '有效标志',
    sort_code        int           null comment '序号',
    base_semester_id bigint        null comment '学期ID(base_semester)',
    class_id         bigint        null comment '班级编号',
    student_user_id  bigint        null comment '学生用户编号',
    textbook_id      bigint        null comment '教材管理编号',
    is_claim         int default 0 not null comment '是否领取（1:已领取 0:未领取）',
    remark           varchar(1000) null comment '备注'
    )
    comment '学生教材认领记录';

create table if not exists tl.textbook_subscription_record
(
    id                               bigint   not null comment '主键编号'
    primary key,
    create_user_id                   bigint   null comment '创建人',
    create_date                      datetime null comment '创建时间',
    modify_user_id                   bigint   null comment '修改人',
    modify_date                      datetime null comment '修改时间',
    delete_mark                      int      not null comment '删除标记',
    enabled_mark                     int      not null comment '有效标志',
    sort_code                        int      null comment '序号',
    textbook_id                      bigint   null comment '教材管理编号',
    wf_textbook_subscription_id      bigint   null comment '教材教辅征订编号',
    wf_textbook_subscription_item_id bigint   null comment '教材教辅征订项编号'
)
    comment '教材征订记录';

create table if not exists tl.textbook_warehouse_record
(
    id               bigint         not null comment '主键编号'
    primary key,
    create_user_id   bigint         null comment '创建人',
    create_date      datetime       null comment '创建时间',
    modify_user_id   bigint         null comment '修改人',
    modify_date      datetime       null comment '修改时间',
    delete_mark      int            not null comment '删除标记',
    enabled_mark     int            not null comment '有效标志',
    sort_code        int            null comment '序号',
    textbook_id      bigint         null comment '教材管理编号',
    data_id          bigint         null comment '数据编号（根据入库方式，编号来自不同数据表）',
    data_item_id     bigint         null comment '数据项项编号（根据入库方式，编号来自不同数据表）',
    warehouse_number int            null comment '入库数量',
    source           varchar(200)   null comment '来源',
    price            decimal(10, 2) null comment '定价(元)',
    discount         float          null comment '折扣',
    subtotal         decimal(10, 2) null comment '小计（元）',
    total_price      decimal(10, 2) null comment '总价（元）',
    warehouse_mode   varchar(20)    null comment '入库方式(xjr_dictionary_item[warehouse_mode])',
    remark           varchar(1000)  null comment '备注'
    )
    comment '教材入库记录';

create table if not exists tl.wf_textbook_claim
(
    id                bigint        not null comment '主键编号'
    primary key,
    create_user_id    bigint        null comment '创建人',
    create_date       datetime      null comment '创建时间',
    modify_user_id    bigint        null comment '修改人',
    modify_date       datetime      null comment '修改时间',
    delete_mark       int           not null comment '删除标记',
    enabled_mark      int           not null comment '有效标志',
    sort_code         int           null comment '序号',
    applicant_user_id bigint        null comment '申请人',
    class_id          bigint        null comment '班级编号',
    base_semester_id  bigint        null comment '学期ID(base_semester)',
    student_user_id   bigint        null comment '学生编号',
    claim_address     varchar(1000) null comment '领取地点',
    claim_type        varchar(20)   null comment '申领类型(xjr_dictionary_item[claim_type])',
    receive_user_id   varchar(1000) null comment '代领取人',
    claim_user_id     bigint        null comment '领取用户编号（申请人帮领取人申请去领取）',
    status            int default 0 not null comment '状态（1:结束 0:未结束）',
    textbook_type     varchar(20)   null comment '教材分类(xjr_dictionary_item[textbook_type])'
    )
    comment '教材申领';

create table if not exists tl.wf_textbook_claim_item
(
    id                   bigint        not null comment '主键编号'
    primary key,
    create_user_id       bigint        null comment '创建人',
    create_date          datetime      null comment '创建时间',
    modify_user_id       bigint        null comment '修改人',
    modify_date          datetime      null comment '修改时间',
    delete_mark          int           not null comment '删除标记',
    enabled_mark         int           not null comment '有效标志',
    sort_code            int           null comment '序号',
    wf_textbook_claim_id bigint        null comment '教材申领编号',
    textbook_id          bigint        null comment '教材管理编号',
    applicant_number     int default 0 null comment '申请数量',
    issue_number         int default 0 null comment '已发放数量'
)
    comment '教材申领项';

create table if not exists tl.wf_textbook_recede
(
    id                bigint        not null comment '主键编号'
    primary key,
    create_user_id    bigint        null comment '创建人',
    create_date       datetime      null comment '创建时间',
    modify_user_id    bigint        null comment '修改人',
    modify_date       datetime      null comment '修改时间',
    delete_mark       int           not null comment '删除标记',
    enabled_mark      int           not null comment '有效标志',
    sort_code         int           null comment '序号',
    applicant_user_id bigint        null comment '申请人',
    base_semester_id  bigint        null comment '学期ID(base_semester)',
    class_id          bigint        null comment '班级编号',
    recede_type       varchar(20)   null comment '退书类型(xjr_dictionary_item[recede_type])',
    recede_address    varchar(1000) null comment '退还地点',
    status            int default 0 not null comment '状态（1:结束 0:未结束）'
    )
    comment '退书申请';

create table if not exists tl.wf_textbook_recede_item
(
    id                    bigint   not null comment '主键编号'
    primary key,
    create_user_id        bigint   null comment '创建人',
    create_date           datetime null comment '创建时间',
    modify_user_id        bigint   null comment '修改人',
    modify_date           datetime null comment '修改时间',
    delete_mark           int      not null comment '删除标记',
    enabled_mark          int      not null comment '有效标志',
    sort_code             int      null comment '序号',
    wf_textbook_recede_id bigint   null comment '退书申请编号',
    textbook_id           bigint   null comment '教材管理编号',
    number                int      null comment '数量'
)
    comment '退书申请项';

create table if not exists tl.wf_textbook_subscription
(
    id                  bigint        not null comment '主键编号'
    primary key,
    create_user_id      bigint        null comment '创建人',
    create_date         datetime      null comment '创建时间',
    modify_user_id      bigint        null comment '修改人',
    modify_date         datetime      null comment '修改时间',
    delete_mark         int           not null comment '删除标记',
    enabled_mark        int           not null comment '有效标志',
    sort_code           int           null comment '序号',
    applicant_user_id   bigint        null comment '申请人',
    dept_id             bigint        null comment '所在部门编号',
    base_semester_id    bigint        null comment '学期ID(base_semester)',
    subject_group_id    bigint        null comment '学科组管理编号(subject_group)',
    remark              varchar(1000) null comment '备注',
    status              int default 0 not null comment '状态（1:结束 0:未结束）',
    subscription_method int           null comment '征订方式（1:按班级征订 2:按教材征订）'
    )
    comment '教材教辅征订';

create table if not exists tl.wf_textbook_subscription_item
(
    id                          bigint         not null comment '主键编号'
    primary key,
    create_user_id              bigint         null comment '创建人',
    create_date                 datetime       null comment '创建时间',
    modify_user_id              bigint         null comment '修改人',
    modify_date                 datetime       null comment '修改时间',
    delete_mark                 int            not null comment '删除标记',
    enabled_mark                int            not null comment '有效标志',
    sort_code                   int            null comment '序号',
    wf_textbook_subscription_id bigint         null comment '教材教辅征订编号',
    subscription_type           varchar(20)    null comment '征订类型(xjr_dictionary_item[subscription_type])',
    issn                        varchar(200)   null comment '国际标准刊号',
    isbn                        varchar(200)   null comment '国际标准书号',
    book_name                   varchar(200)   null comment '书名',
    publishing_house            varchar(200)   null comment '出版社',
    editor_in_chief             varchar(200)   null comment '主编',
    appraisal_price             decimal(10, 2) null comment '估价(元)',
    is_textbook_plan            varchar(20)    null comment '是否为规划教材(xjr_dictionary_item[judgment_method_1])',
    course_subject_id           bigint         null comment '课程编号(base_course_subject)',
    class_ids                   varchar(1000)  null comment '班级编号(多个)',
    student_subscription_number int            null comment '学生用书征订数量',
    teacher_subscription_number int            null comment '教师教材征订数量',
    teacher_reference_number    int            null comment '教师教参用书征订数量',
    is_support_resources        varchar(20)    null comment '是否有配套教学资源(xjr_dictionary_item[judgment_method_1])',
    version                     varchar(100)   null comment '版本',
    textbook_id                 bigint         null comment '教材id',
    in_stockroom_num            int default 0  null comment '当前征订任务征订项已经入库数量',
    alteration_type             int default 0  null comment '变更类型（0：未变更，1：变更征订数量，2：变更课程）'
    )
    comment '教材教辅征订项';

create table if not exists tl.wf_textbook_subscription_item_history
(
    id                               bigint         not null comment '主键编号'
    primary key,
    create_user_id                   bigint         null comment '创建人',
    create_date                      datetime       null comment '创建时间',
    modify_user_id                   bigint         null comment '修改人',
    modify_date                      datetime       null comment '修改时间',
    delete_mark                      int            not null comment '删除标记',
    enabled_mark                     int            not null comment '有效标志',
    sort_code                        int            null comment '序号',
    wf_textbook_subscription_item_id bigint         null comment '教材教辅征订项编号',
    wf_textbook_subscription_id      bigint         null comment '教材教辅征订编号',
    subscription_type                varchar(20)    null comment '征订类型(xjr_dictionary_item[subscription_type])',
    issn                             varchar(200)   null comment '国际标准刊号',
    isbn                             varchar(200)   null comment '国际标准书号',
    book_name                        varchar(200)   null comment '书名',
    publishing_house                 varchar(200)   null comment '出版社',
    editor_in_chief                  varchar(200)   null comment '主编',
    appraisal_price                  decimal(10, 2) null comment '估价(元)',
    is_textbook_plan                 varchar(20)    null comment '是否为规划教材(xjr_dictionary_item[judgment_method_1])',
    course_subject_id                bigint         null comment '课程编号(base_course_subject)',
    class_ids                        varchar(1000)  null comment '班级编号(多个)',
    student_subscription_number      int            null comment '学生用书征订数量',
    teacher_subscription_number      int            null comment '教师教材征订数量',
    teacher_reference_number         int            null comment '教师教参用书征订数量',
    is_support_resources             varchar(20)    null comment '是否有配套教学资源(xjr_dictionary_item[judgment_method_1])',
    version                          varchar(100)   null comment '版本',
    textbook_id                      bigint         null comment '教材id',
    in_stockroom_num                 int default 0  null comment '当前征订任务征订项已经入库数量',
    alteration_type                  int default 0  null comment '变更类型（0：未变更，1：变更征订数量，2：变更课程）',
    history_version                  int default 1  null comment '当前征订任务征订项已经入库数量'
    )
    comment '教材教辅征订项变更历史';

