Files
fad_oa/sql/warehouse_phase0_audit_log.sql
2026-05-29 19:52:32 +08:00

59 lines
3.5 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ==========================================================
-- 库房重构 Phase 0建审计日志表 + 修正历史状态
-- 全部为新增/数据修正,零影响现有功能
-- ==========================================================
-- ----------------------------------------------------------
-- 1. 旧 log 表留底(结构残缺,只有 20 行)
-- ----------------------------------------------------------
RENAME TABLE `sys_oa_warehouse_log` TO `_deprecated_sys_oa_warehouse_log`;
-- ----------------------------------------------------------
-- 2. 统一审计日志表
-- ----------------------------------------------------------
DROP TABLE IF EXISTS `sys_oa_warehouse_audit_log`;
CREATE TABLE `sys_oa_warehouse_audit_log` (
`log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',
`op_type` varchar(32) NOT NULL COMMENT '操作类型REQ_CREATE/REQ_DONE/REQ_CANCEL/TASK_CREATE/TASK_DONE/IN/OUT/RETURN/STOCK_ADJUST 等',
`ref_type` varchar(32) DEFAULT NULL COMMENT '关联实体类型requirement/task/master/warehouse',
`ref_id` bigint DEFAULT NULL COMMENT '关联实体ID',
`project_id` bigint DEFAULT NULL COMMENT '所属项目ID可选便于按项目筛日志',
`warehouse_id` bigint DEFAULT NULL COMMENT '关联物料ID可选便于按物料筛日志',
`summary` varchar(500) NOT NULL COMMENT '一句话摘要(前端列表直接展示)',
`before_json` text COMMENT '变更前快照JSON可选',
`after_json` text COMMENT '变更后快照JSON可选',
`op_user_id` bigint DEFAULT NULL COMMENT '操作人ID',
`op_user_name` varchar(64) DEFAULT NULL COMMENT '操作人昵称(冗余便于展示)',
`op_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`log_id`),
KEY `idx_op_type` (`op_type`),
KEY `idx_ref` (`ref_type`, `ref_id`),
KEY `idx_project_id` (`project_id`),
KEY `idx_warehouse_id` (`warehouse_id`),
KEY `idx_op_time` (`op_time`),
KEY `idx_op_user_id` (`op_user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库房统一操作日志';
-- ----------------------------------------------------------
-- 3. 修正历史退库单状态(去审批化前的尾巴)
-- type=2 且 status=0 的 8 条历史单子,本意是"已批准的退库",统一改成 status=1
-- ----------------------------------------------------------
UPDATE `sys_oa_warehouse_master`
SET `status` = 1,
`update_time`= NOW(),
`update_by` = 'system_migration'
WHERE `type` = 2
AND `status` = 0
AND `del_flag` = 0;
SELECT ROW_COUNT() AS type2_status0_fixed;
-- ----------------------------------------------------------
-- 4. 给 oa_requirements 补可读注释(之前没注释也没乱码,但 status 含义不明)
-- ----------------------------------------------------------
ALTER TABLE `oa_requirements`
MODIFY COLUMN `status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '完成情况0=未采购 1=采购中 2=完成 3=取消)',
COMMENT = '采购需求(项目大件/特殊件,对应"采购需求"菜单)';