Files
MES/yawei-mes/.sql/2026-03-03_v2.0.003_周启威_报工单升级优化.sql

92 lines
7.4 KiB
MySQL
Raw Permalink Normal View History

2026-04-02 10:38:23 +08:00
-- ============================================================
-- 报工单升级:新增字段
-- 版本v2.0.003 日期2026-03-03 作者:周启威
-- ============================================================
-- 字段变更说明:
-- [已移除] report_count
-- 原说明:报工数
-- 原因:与现有字段 report_quantity 语义完全相同,冗余
-- 现阶段:直接使用 report_quantity 表示本次报工数量
--
-- [已移除] quality_check_status
-- 原说明:质检合格(合格/不合格)
-- 原因:与现有字段 quality_statusB=待检验/C=已通过/D=有异常)重叠
-- 现阶段:直接使用 quality_status 字段
-- ============================================================
ALTER TABLE `pro_report`
ADD COLUMN `customer_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户名称(来自工单关联销售订单,新增时自动回显)',
ADD COLUMN `customer_id` bigint DEFAULT NULL COMMENT '客户ID关联客户表',
ADD COLUMN `workpiece` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工件/成品名称(= 工单 material_name新增时自动回显',
ADD COLUMN `product_batch` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '产品批次(= 工单 batch_number新增时自动回显',
ADD COLUMN `execution_standard` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '执行标准(手动填写,默认为空)',
ADD COLUMN `process_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工序名称(= 工单分录 process_name新增时自动回显持久化',
ADD COLUMN `process_id` bigint DEFAULT NULL COMMENT '工序ID持久化关联工序表',
ADD COLUMN `team_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '班组名称(字典 production_team离散/连续制造均需填写,默认为空)',
ADD COLUMN `team_id` bigint DEFAULT NULL COMMENT '班组ID关联字典/班组表)',
ADD COLUMN `report_type` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT 'NORMAL' COMMENT '报工类型(字典 production_report_type默认NORMAL=正常报工)',
ADD COLUMN `plan_start_time` datetime DEFAULT NULL COMMENT '计划开始时间(= 工单 process_start_time新增时自动回显',
ADD COLUMN `actual_start_time` datetime DEFAULT NULL COMMENT '实际开始时间(默认=计划开始时间,离散/连续均需填写)',
ADD COLUMN `plan_end_time` datetime DEFAULT NULL COMMENT '计划完工时间(= 工单 process_start_time + 工单工序明细 duration新增时自动计算回显',
ADD COLUMN `actual_end_time` datetime DEFAULT NULL COMMENT '实际完工时间(默认=计划完工时间,离散/连续均需填写)',
ADD COLUMN `report_submit_time` datetime DEFAULT NULL COMMENT '报工提交时间(后端保存时自动写入 NOW(),不暴露到前端)',
ADD COLUMN `plan_count` decimal(9,3) DEFAULT NULL COMMENT '计划数(= 工单排产数量 quantity新增时自动回显',
ADD COLUMN `yield_rate` decimal(5,2) DEFAULT NULL COMMENT '良品率(前端实时计算:合格数/报工数×100保存时持久化',
ADD COLUMN `performance_wages` decimal(9,3) DEFAULT 0 COMMENT '绩效工资手动填写默认0',
ADD COLUMN `energy_consumption` decimal(9,3) DEFAULT 0 COMMENT '能耗手动填写默认0',
ADD COLUMN `material_consumption` decimal(9,3) DEFAULT 0 COMMENT '工耗手动填写默认0',
ADD COLUMN `other_costs` decimal(9,3) DEFAULT 0 COMMENT '其他成本手动填写默认0',
ADD COLUMN `value_added` decimal(9,3) DEFAULT 0 COMMENT '增值手动填写默认0',
ADD COLUMN `theoretical_cycle_time` decimal(9,3) DEFAULT NULL COMMENT '理论节拍(分钟/件手动填写用于OEE参考',
ADD COLUMN `station_oee` decimal(5,2) DEFAULT NULL COMMENT '工位OEE前端计算公式待完善暂可手动编辑',
ADD COLUMN `current_benefit` decimal(9,3) DEFAULT NULL COMMENT '本次效益(前端计算:增值-能耗-工耗-其他成本,暂可手动编辑)',
ADD COLUMN `station_exception` varchar(500) DEFAULT NULL COMMENT '工位异常情况(手动填写,默认为空)',
ADD COLUMN `rectification_suggestion` varchar(500) DEFAULT NULL COMMENT '整改建议(手动填写,默认为空)';
-- ============================================================
-- 1. 补充 ID 列(已合并到上方 ALTER TABLE
-- 注customer_id / process_id / team_id 已随字段一并添加
-- ============================================================
-- ============================================================
-- 2. 修改现有字段is_settle 和 wages 改为可编辑
-- 原说明:是否已结算工资(只读)/ 结算工资(只读)
-- 现阶段:改为可编辑字段,由用户手动填写或系统结算后更新
-- 字段已存在,无需 ALTER仅前端去掉 :disabled="true" 即可
-- ============================================================
-- ============================================================
-- 3. 新增字典报工类型production_report_type
-- ============================================================
INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
VALUES ('报工类型', 'production_report_type', '0', 'admin', NOW(), '报工单报工类型');
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
VALUES
(1, '正常报工', 'NORMAL', 'production_report_type', '', 'success', 'Y', '0', 'admin', NOW(), '正常生产报工'),
(2, '返工报工', 'REWORK', 'production_report_type', '', 'warning', 'N', '0', 'admin', NOW(), '返工生产报工'),
(3, '补报工', 'SUPPLEMENT', 'production_report_type', '', 'info', 'N', '0', 'admin', NOW(), '补录报工'),
(4, '异常补录', 'EXCEPTION', 'production_report_type', '', 'danger', 'N', '0', 'admin', NOW(), '异常情况补录');
-- ============================================================
-- 4. 新增字典班组production_team
-- 注班次sys_shift_type字典已存在本次不重复创建
-- ============================================================
INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
VALUES ('生产班组', 'production_team', '0', 'admin', NOW(), '生产班组列表,可在字典管理中维护');
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
VALUES
(1, '甲班', 'GROUP_A', 'production_team', '', 'primary', 'N', '0', 'admin', NOW(), ''),
(2, '乙班', 'GROUP_B', 'production_team', '', 'primary', 'N', '0', 'admin', NOW(), ''),
(3, '丙班', 'GROUP_C', 'production_team', '', 'primary', 'N', '0', 'admin', NOW(), '');
-- ============================================================
-- 5. 索引:新增字段检索优化
-- ============================================================
ALTER TABLE `pro_report`
ADD INDEX `idx_customer_id` (`customer_id`),
ADD INDEX `idx_process_id` (`process_id`),
ADD INDEX `idx_team_id` (`team_id`),
ADD INDEX `idx_report_type` (`report_type`);