create table wms_process_spec
(
    spec_id      bigint auto_increment comment '规程ID'
        primary key,
    spec_code    varchar(50)                          not null comment '规程编号',
    spec_name    varchar(100)                         not null comment '规程名称',
    spec_type    varchar(20)                          not null comment '规程类型（PROCESS=工艺规程，STANDARD=工艺标准）',
    line_id      bigint                               not null comment '产线ID',
    product_type varchar(50)                          null comment '产品类型（如HB）',
    is_enabled   tinyint(1) default 1                 not null comment '是否启用',
    remark       varchar(255)                         null comment '备注',
    create_time  datetime   default CURRENT_TIMESTAMP not null comment '创建时间',
    create_by    varchar(50)                          null comment '创建人',
    update_time  datetime   default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',
    update_by    varchar(50)                          null comment '更新人',
    constraint uk_spec_code
        unique (spec_code)
)
    comment '规程/工艺标准主表'
    engine = InnoDB
    row_format = DYNAMIC;


create table wms_process_spec_version
(
    version_id   bigint auto_increment comment '版本ID'
        primary key,
    spec_id      bigint                               not null comment '规程ID',
    version_code varchar(50)                          not null comment '版本号',
    is_active    tinyint(1) default 0                 not null comment '是否当前生效版本',
    status       tinyint(1) default 1                 not null comment '状态（0=禁用，1=启用）',
    remark       varchar(255)                         null comment '备注',
    create_time  datetime   default CURRENT_TIMESTAMP not null comment '创建时间',
    create_by    varchar(50)                          null comment '创建人',
    update_time  datetime   default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',
    update_by    varchar(50)                          null comment '更新人',
    constraint uk_spec_version
        unique (spec_id, version_code)
)
    comment '规程版本表'
    engine = InnoDB
    row_format = DYNAMIC;


create table wms_process_plan
(
    plan_id      bigint auto_increment comment '方案ID'
        primary key,
    version_id   bigint                               not null comment '版本ID',
    segment_type varchar(50)                          not null comment '段类型（入口段/工艺段/出口段）',
    segment_name varchar(100)                         not null comment '段名称',
    point_name   varchar(100)                         not null comment '点位名称',
    point_code   varchar(100)                         null comment '点位编码',
    actual_point_id bigint                            null comment '实际点位ID（设备点位）',
    unit         varchar(20)                          null comment '单位',
    remark       varchar(255)                         null comment '备注',
    create_time  datetime   default CURRENT_TIMESTAMP not null comment '创建时间',
    create_by    varchar(50)                          null comment '创建人',
    update_time  datetime   default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',
    update_by    varchar(50)                          null comment '更新人'
)
    comment '方案详情（段+点位）'
    engine = InnoDB
    row_format = DYNAMIC;

create table wms_process_plan_param
(
    param_id     bigint auto_increment comment '参数ID'
        primary key,
    plan_id      bigint                               not null comment '方案ID',
    param_name   varchar(100)                         not null comment '参数名称（如L1设定值）',
    target_value decimal(18, 4)                       null comment '设定值',
    lower_limit  decimal(18, 4)                       null comment '下限',
    upper_limit  decimal(18, 4)                       null comment '上限',
    unit         varchar(20)                          null comment '单位',
    create_time  datetime   default CURRENT_TIMESTAMP not null comment '创建时间',
    create_by    varchar(50)                          null comment '创建人',
    update_time  datetime   default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',
    update_by    varchar(50)                          null comment '更新人'
)
    comment '方案参数配置'
    engine = InnoDB
    row_format = DYNAMIC;
