-- PLM 总装配 BOM / 工艺路线推送接收留痕(防扯皮) -- 每次推送追加一条,保留完整请求 JSON,不随业务表先删后插而丢失。 CREATE TABLE IF NOT EXISTS `plm_receive_log` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', `biz_type` varchar(32) NOT NULL COMMENT 'ASSEMBLY_BOM / PROCESS_ROUTE', `api_path` varchar(128) NOT NULL COMMENT '接口路径', `production_order_no` varchar(64) DEFAULT NULL COMMENT '生产令号(统一字段)', `payload_json` longtext NOT NULL COMMENT '完整请求 JSON 原文', `payload_sha256` varchar(64) DEFAULT NULL COMMENT '请求体 SHA-256', `payload_size` int DEFAULT NULL COMMENT '请求体字符数', `summary_json` varchar(2000) DEFAULT NULL COMMENT '成功摘要 JSON', `line_count` int DEFAULT NULL COMMENT '总装行数 / 工艺物料数', `saved_count` int DEFAULT NULL COMMENT '实际入库相关行数摘要', `replaced` tinyint(1) DEFAULT NULL COMMENT '是否覆盖原令号数据', `status` varchar(16) NOT NULL COMMENT 'SUCCESS / FAIL', `error_msg` varchar(2000) DEFAULT NULL COMMENT '失败原因', `client_ip` varchar(64) DEFAULT NULL COMMENT '客户端 IP', `receive_time` datetime NOT NULL COMMENT '接收时间', PRIMARY KEY (`id`), KEY `idx_plm_recv_order` (`production_order_no`), KEY `idx_plm_recv_type_time` (`biz_type`, `receive_time`), KEY `idx_plm_recv_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='PLM总装BOM/工艺路线接收留痕'; -- 菜单(parent_id 请按实际菜单树调整;21210 起避免与 PDF 推送菜单冲突) INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (21210, 'PLM接收留痕', 0, 21, 'plmReceiveLog', 'system/plmReceiveLog/index', 1, 0, 'C', '0', '0', 'system:plmReceiveLog:list', 'log', 'admin', sysdate(), '', NULL, 'PLM总装BOM/工艺路线推送防扯皮留痕'); INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (21211, 'PLM接收留痕查询', 21210, 1, '#', '', 1, 0, 'F', '0', '0', 'system:plmReceiveLog:query', '#', 'admin', sysdate(), '', NULL, ''); INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (21212, '同步到BOM明细', 21210, 2, '#', '', 1, 0, 'F', '0', '0', 'system:plmReceiveLog:syncBomDetails', '#', 'admin', sysdate(), '', NULL, '将production_order总装行手动写入bom_details');