-- 1.0.324.sql WP-D 工序实绩落地:修正 165 PSD 贴源业务键 + 新建工序实绩表 -- D-M01:MES APP 报工产生 Period=0 影子行,实绩分散;本脚本为工序级合并提供落地表。 -- 行尾必须 LF(CRLF 会导致 SHA256 与 sys_db_migration_log 不一致并阻止启动)。 SET NAMES utf8mb4; -- 1) 修正 165 PeriodSequenceDet 贴源业务键:补 WorkOrds 与 Period,避免影子行覆盖计划行 UPDATE mdp_entity SET biz_key_expr = 'Domain,WorkOrds,ItemNum,PlanDate,Line,Op,Period', remark = 'WP-D 修正业务键:补 WorkOrds/Period,避免 MES 影子行与计划行 biz_key 冲突', update_time = NOW() WHERE entity_code = 'S2_PERIOD_SEQUENCE_SQLSERVER'; -- 2) 工序实绩表(工序级宽键,不受排产重排影响) CREATE TABLE IF NOT EXISTS ado_psd_op_actual ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键', tenant_id BIGINT NOT NULL DEFAULT 0 COMMENT '租户', domain VARCHAR(80) NOT NULL DEFAULT '' COMMENT '账套(165 Domain)', work_ord VARCHAR(64) NOT NULL COMMENT '工单号(165 PeriodSequenceDet.WorkOrds)', op INT NOT NULL DEFAULT 0 COMMENT '工序号', item_num VARCHAR(30) NULL COMMENT '物料号(取自 165 同工序任一行,仅供展示)', comp_qty DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '完成数:165 同工序全部 PSD 行 SUM(CompQty)', reject_qty DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '报废数:同上 SUM(RejectQty)', setup_time_hour DECIMAL(18,5) NOT NULL DEFAULT 0 COMMENT '装机工时,单位小时(165 SetupTime 原始单位)', actual_time_sec DECIMAL(18,3) NOT NULL DEFAULT 0 COMMENT '实动工时,单位秒(165 ActualTime 原始单位)', src_row_count INT NOT NULL DEFAULT 0 COMMENT '参与合并的 165 行数(便于排查影子行)', routing_qty DECIMAL(18,4) NULL COMMENT '交叉校验值:165 WorkOrdRouting.QtyComplete', last_src_update DATETIME NULL COMMENT '165 侧最大 UpdateTime', sync_time DATETIME NOT NULL COMMENT '本次写入时间', create_time DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), update_time DATETIME(3) NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), PRIMARY KEY (id), UNIQUE KEY uk_psd_op_actual (tenant_id, domain, work_ord, op), KEY idx_psd_op_actual_wo (work_ord, op), KEY idx_psd_op_actual_sync (sync_time) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工序实绩(165 PSD 工序级合并结果)';