-- ============================================================ -- 报工单升级:新增字段 -- 版本:v2.0.003 日期:2026-03-03 作者:周启威 -- ============================================================ -- 字段变更说明: -- [已移除] report_count -- 原说明:报工数 -- 原因:与现有字段 report_quantity 语义完全相同,冗余 -- 现阶段:直接使用 report_quantity 表示本次报工数量 -- -- [已移除] quality_check_status -- 原说明:质检合格(合格/不合格) -- 原因:与现有字段 quality_status(B=待检验/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`);