59 lines
3.5 KiB
SQL
59 lines
3.5 KiB
SQL
-- ==========================================================
|
||
-- 库房重构 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 = '采购需求(项目大件/特殊件,对应"采购需求"菜单)';
|