工艺规程增强

This commit is contained in:
2026-05-12 17:15:29 +08:00
parent b44d9d9daf
commit 38138a828c
27 changed files with 1903 additions and 259 deletions

View File

@@ -0,0 +1,210 @@
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;