Files
klp-oa/script/sql/mysql/process.sql
2026-05-12 17:15:29 +08:00

211 lines
13 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

create table wms_process_plan
(
plan_id bigint not null comment '主键'
primary key,
version_id bigint not null comment '规程版本ID',
segment_type varchar(32) not null comment '段类型(INLET/PROCESS/OUTLET)',
segment_name varchar(100) null comment '段名称',
point_name varchar(200) not null comment '点位名称',
point_code varchar(64) not null comment '点位编码',
sort_order int default 0 not null comment '排序',
create_by varchar(64) null comment '创建人',
create_time datetime default CURRENT_TIMESTAMP null comment '创建时间',
update_by varchar(64) null comment '更新人',
update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
del_flag tinyint default 0 not null comment '删除标志(0正常2删除)',
remark varchar(500) null comment '备注',
constraint uk_plan_version_point_code
unique (version_id, point_code)
)
comment '方案点位表';
create index idx_plan_sort
on wms_process_plan (version_id, sort_order);
create index idx_plan_version
on wms_process_plan (version_id);
create table wms_process_plan_param
(
param_id bigint not null comment '主键'
primary key,
plan_id bigint not null comment '方案点位ID',
param_code varchar(64) not null comment '参数编码',
param_name varchar(200) not null comment '参数名称',
target_value decimal(24, 6) null comment '设定值(L1预设值)',
lower_limit decimal(24, 6) null comment '下限(首次检测实际最小值)',
upper_limit decimal(24, 6) null comment '上限(首次检测实际最大值)',
unit varchar(32) null comment '单位',
actual_src_id varchar(64) null comment '实际值来源钢卷号(首次写入时的ENCOILID)',
preset_src_id varchar(64) null comment 'L1设定值来源钢卷号(首次写入时的COILID)',
create_by varchar(64) null comment '创建人',
create_time datetime default CURRENT_TIMESTAMP null comment '创建时间',
update_by varchar(64) null comment '更新人',
update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
del_flag tinyint default 0 not null comment '删除标志(0正常2删除)',
remark varchar(500) null comment '备注',
constraint uk_plan_param_code
unique (plan_id, param_code)
)
comment '方案参数表';
create index idx_plan_param_plan
on wms_process_plan_param (plan_id);
create table wms_process_spec
(
spec_id bigint auto_increment comment '主键'
primary key,
spec_code varchar(64) not null comment '规程编号',
spec_name varchar(200) not null comment '规程名称',
spec_type varchar(32) default 'PROCESS' not null comment '类型(PROCESS=工艺规程,STANDARD=标准)',
line_id bigint not null comment '产线ID',
product_type varchar(100) null comment '产品类型',
is_enabled tinyint default 1 not null comment '是否启用(0否1是)',
create_by varchar(64) null comment '创建人',
create_time datetime default CURRENT_TIMESTAMP null comment '创建时间',
update_by varchar(64) null comment '更新人',
update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
del_flag tinyint default 0 not null comment '删除标志(0正常2删除与全局逻辑删除配置一致)',
remark varchar(500) null comment '备注',
constraint uk_wms_process_spec_code
unique (spec_code)
)
comment '规程主表';
create index idx_wms_process_spec_line
on wms_process_spec (line_id);
create index idx_wms_process_spec_type
on wms_process_spec (spec_type);
create table wms_process_spec_version
(
version_id bigint not null comment '主键'
primary key,
spec_id bigint not null comment '规程主表ID',
version_code varchar(64) not null comment '版本号',
is_active tinyint default 0 not null comment '是否当前生效(0否1是)',
status varchar(32) default 'DRAFT' not null comment '状态(DRAFT草稿/PUBLISHED已发布/OBSOLETE作废等)',
create_by varchar(64) null comment '创建人',
create_time datetime default CURRENT_TIMESTAMP null comment '创建时间',
update_by varchar(64) null comment '更新人',
update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
del_flag tinyint default 0 not null comment '删除标志(0正常2删除)',
remark varchar(500) null comment '备注',
constraint uk_spec_version_code
unique (spec_id, version_code)
)
comment '规程版本表';
create index idx_spec_version_active
on wms_process_spec_version (spec_id, is_active);
create index idx_spec_version_spec
on wms_process_spec_version (spec_id);
-- ─────────────────────────────────────────────────────────────
-- 钢卷服役记录表:记录哪些钢卷经过了某版本规程的检测/生产
-- ─────────────────────────────────────────────────────────────
create table wms_process_coil_record
(
record_id bigint not null comment '主键'
primary key,
version_id bigint not null comment '规程版本ID',
coil_id varchar(64) not null comment '出口钢卷号(EXCOILID)',
en_coil_id varchar(64) null comment '入口钢卷号(ENCOILID)',
has_anomaly tinyint default 0 not null comment '本次是否检测到参数异常(0否1是)',
anomaly_cnt int default 0 not null comment '异常参数数量',
process_time datetime null comment '检测时间',
create_by varchar(64) null comment '创建人',
create_time datetime default CURRENT_TIMESTAMP null comment '创建时间',
update_by varchar(64) null comment '更新人',
update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
del_flag tinyint default 0 not null comment '删除标志(0正常2删除)',
remark varchar(500) null comment '备注',
constraint uk_coil_version
unique (version_id, coil_id)
)
comment '版本钢卷服役记录表';
create index idx_coil_record_version
on wms_process_coil_record (version_id);
create index idx_coil_record_coil
on wms_process_coil_record (coil_id);
create index idx_coil_record_anomaly
on wms_process_coil_record (version_id, has_anomaly);
-- ─────────────────────────────────────────────────────────────
-- 工艺参数异常记录表:持久化每次检测到的超限/欠限异常
-- ─────────────────────────────────────────────────────────────
create table wms_process_anomaly
(
anomaly_id bigint not null comment '主键'
primary key,
version_id bigint not null comment '规程版本ID',
plan_id bigint not null comment '方案点位ID',
param_id bigint null comment '参数ID(wms_process_plan_param)',
coil_id varchar(64) not null comment '触发异常的出口钢卷号',
en_coil_id varchar(64) null comment '入口钢卷号',
param_code varchar(64) not null comment '参数编码',
param_name varchar(200) null comment '参数名称',
unit varchar(32) null comment '单位',
anomaly_type varchar(32) not null comment '异常类型: OVER_MAX/UNDER_MIN/BOTH',
stored_target decimal(24, 6) null comment '规程中存储的设定值',
stored_upper decimal(24, 6) null comment '规程中存储的上限',
stored_lower decimal(24, 6) null comment '规程中存储的下限',
actual_target decimal(24, 6) null comment '本次L1实际设定值',
actual_max decimal(24, 6) null comment '本次实际最大值',
actual_min decimal(24, 6) null comment '本次实际最小值',
deviation_max decimal(24, 6) null comment '最大值偏差(actual_max - stored_upper, 正值表示超上限)',
deviation_min decimal(24, 6) null comment '最小值偏差(actual_min - stored_lower, 负值表示低于下限)',
detected_at datetime null comment '异常检测时间',
create_by varchar(64) null comment '创建人',
create_time datetime default CURRENT_TIMESTAMP null comment '创建时间',
del_flag tinyint default 0 not null comment '删除标志(0正常2删除)',
remark varchar(500) null comment '备注'
)
comment '工艺参数异常记录表';
create index idx_anomaly_version
on wms_process_anomaly (version_id);
create index idx_anomaly_coil
on wms_process_anomaly (coil_id);
create index idx_anomaly_param
on wms_process_anomaly (version_id, param_code);
create index idx_anomaly_detected
on wms_process_anomaly (detected_at);
-- ─────────────────────────────────────────────────────────────
-- 存量数据迁移(为 wms_process_plan_param 新增列打补丁)
-- 已有库执行此 ALTER新建库直接用上方 CREATE TABLE 即可
-- ─────────────────────────────────────────────────────────────
-- ALTER TABLE wms_process_plan_param
-- ADD COLUMN actual_src_id varchar(64) null comment '实际值来源钢卷号(首次写入时的ENCOILID)' AFTER unit,
-- ADD COLUMN preset_src_id varchar(64) null comment 'L1设定值来源钢卷号(首次写入时的COILID)' AFTER actual_src_id;
create table wms_process_task
(
task_id bigint auto_increment comment '工艺任务ID'
primary key,
plan_id bigint not null comment '关联生产计划ID',
process_id bigint not null comment '所需工艺ID',
product_id bigint not null comment '对应产品ID',
task_quantity int not null comment '任务数量',
task_status varchar(20) default 'pending' null comment '任务状态pending-待处理/processing-处理中/completed-已完成',
sequence int not null comment '工艺顺序',
del_flag tinyint(1) default 0 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 '更新人'
)
comment '工艺任务表(生产计划所需工艺任务)' row_format = DYNAMIC;