推送项目重构代码
This commit is contained in:
22
sql/sys_user_dashboard.sql
Normal file
22
sql/sys_user_dashboard.sql
Normal file
@@ -0,0 +1,22 @@
|
||||
-- ----------------------------
|
||||
-- 用户工作台个性化布局表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `sys_user_dashboard`;
|
||||
CREATE TABLE `sys_user_dashboard` (
|
||||
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
|
||||
`layout_json` longtext NOT NULL COMMENT '布局 JSON: [{i,x,y,w,h,widgetKey,config}]',
|
||||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`user_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户工作台布局';
|
||||
|
||||
-- ----------------------------
|
||||
-- 默认工作台布局(存到 sys_config,前端在用户没有自定义布局时回退到此)
|
||||
-- ----------------------------
|
||||
INSERT INTO `sys_config` (`config_id`, `config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `remark`)
|
||||
SELECT (SELECT IFNULL(MAX(config_id), 0) + 1 FROM `sys_config` AS t),
|
||||
'默认工作台布局', 'sys.dashboard.defaultLayout',
|
||||
'[{"i":"announcements","x":0,"y":0,"w":6,"h":8,"widgetKey":"announcements"},{"i":"projectManagement","x":6,"y":0,"w":6,"h":8,"widgetKey":"projectManagement"},{"i":"ownerTaskList","x":0,"y":8,"w":6,"h":8,"widgetKey":"ownerTaskList"},{"i":"financialCharts","x":6,"y":8,"w":6,"h":8,"widgetKey":"financialCharts"},{"i":"miniCalendar","x":0,"y":16,"w":4,"h":8,"widgetKey":"miniCalendar"},{"i":"quickEntry","x":4,"y":16,"w":8,"h":4,"widgetKey":"quickEntry"}]',
|
||||
'Y', 'admin', NOW(), '工作台默认布局,用户首次进入或重置时使用'
|
||||
FROM dual
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `sys_config` WHERE `config_key` = 'sys.dashboard.defaultLayout');
|
||||
4
sql/sys_user_dashboard_default_3col.sql
Normal file
4
sql/sys_user_dashboard_default_3col.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
-- 把默认工作台改成三列布局(w:4 占 1/3)
|
||||
UPDATE `sys_config`
|
||||
SET `config_value` = '[{"i":"announcements","x":0,"y":0,"w":4,"h":8,"widgetKey":"announcements"},{"i":"projectManagement","x":4,"y":0,"w":4,"h":8,"widgetKey":"projectManagement"},{"i":"ownerTaskList","x":8,"y":0,"w":4,"h":8,"widgetKey":"ownerTaskList"},{"i":"financialCharts","x":0,"y":8,"w":4,"h":8,"widgetKey":"financialCharts"},{"i":"feedbackList","x":4,"y":8,"w":4,"h":8,"widgetKey":"feedbackList"},{"i":"miniCalendar","x":8,"y":8,"w":4,"h":8,"widgetKey":"miniCalendar"},{"i":"quickEntry","x":0,"y":16,"w":12,"h":4,"widgetKey":"quickEntry"}]'
|
||||
WHERE `config_key` = 'sys.dashboard.defaultLayout';
|
||||
74
sql/sys_user_im_bind.sql
Normal file
74
sql/sys_user_im_bind.sql
Normal file
@@ -0,0 +1,74 @@
|
||||
-- ----------------------------
|
||||
-- OA 用户 ↔ OpenIM 用户 绑定表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `sys_user_im_bind`;
|
||||
CREATE TABLE `sys_user_im_bind` (
|
||||
`user_id` bigint(20) NOT NULL COMMENT 'OA 用户ID (sys_user.user_id)',
|
||||
`phone` varchar(20) NOT NULL COMMENT '手机号(绑定时记录的)',
|
||||
`im_user_id` varchar(64) NOT NULL COMMENT 'OpenIM userID(chat 生成的字符串)',
|
||||
`bind_status` tinyint(1) DEFAULT 1 COMMENT '1=正常 0=禁用',
|
||||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`user_id`) USING BTREE,
|
||||
KEY `idx_phone` (`phone`),
|
||||
KEY `idx_im_user_id` (`im_user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA-OpenIM 用户绑定';
|
||||
|
||||
-- ----------------------------
|
||||
-- 一次性回填:从 IM 侧 mongo 导出的 phone→userID 映射表
|
||||
-- 与 sys_user.phonenumber 关联,命中即绑定
|
||||
-- ----------------------------
|
||||
DROP TEMPORARY TABLE IF EXISTS `tmp_im_phone_map`;
|
||||
CREATE TEMPORARY TABLE `tmp_im_phone_map` (
|
||||
`phone` varchar(20) NOT NULL,
|
||||
`im_user_id` varchar(64) NOT NULL,
|
||||
PRIMARY KEY (`phone`)
|
||||
);
|
||||
|
||||
INSERT INTO `tmp_im_phone_map` (`phone`, `im_user_id`) VALUES
|
||||
('15690169553','5546292033'),
|
||||
('19932047759','2756281826'),
|
||||
('15075462410','2553281144'),
|
||||
('18915343363','5026155910'),
|
||||
('18324818443','2877251793'),
|
||||
('15383265119','8330802909'),
|
||||
('18940843511','4349480400'),
|
||||
('17714433303','2999550914'),
|
||||
('13390839803','2181055021'),
|
||||
('18803235354','7658449575'),
|
||||
('13700303346','1663065057'),
|
||||
('17783455912','2152870750'),
|
||||
('17829506825','3477330474'),
|
||||
('15591903178','8576556261'),
|
||||
('15109286032','8251618343'),
|
||||
('15615500565','1050079788'),
|
||||
('13630266330','5347384098'),
|
||||
('15956900268','2642329050'),
|
||||
('18728390370','7870875282'),
|
||||
('18976589764','5165937678'),
|
||||
('15092755532','4952160908'),
|
||||
('15380239551','2739756387'),
|
||||
('18354752253','3394331602'),
|
||||
('17692304283','4265596684'),
|
||||
('13572086005','3585749899'),
|
||||
('15081674433','1492306574'),
|
||||
('13861602746','8736597942'),
|
||||
('19711921991','3259846354'),
|
||||
('15330091963','1537622221');
|
||||
|
||||
INSERT INTO `sys_user_im_bind` (`user_id`, `phone`, `im_user_id`)
|
||||
SELECT u.user_id, u.phonenumber, m.im_user_id
|
||||
FROM `sys_user` u
|
||||
JOIN `tmp_im_phone_map` m ON m.phone = u.phonenumber
|
||||
WHERE u.del_flag = '0'
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`phone` = VALUES(`phone`),
|
||||
`im_user_id` = VALUES(`im_user_id`);
|
||||
|
||||
-- 校验结果
|
||||
SELECT COUNT(*) AS bound_count FROM `sys_user_im_bind`;
|
||||
SELECT u.user_id, u.user_name, u.phonenumber, b.im_user_id
|
||||
FROM `sys_user` u
|
||||
LEFT JOIN `sys_user_im_bind` b ON b.user_id = u.user_id
|
||||
WHERE u.del_flag = '0' AND u.phonenumber IS NOT NULL AND u.phonenumber <> ''
|
||||
ORDER BY b.im_user_id IS NULL DESC;
|
||||
58
sql/warehouse_phase0_audit_log.sql
Normal file
58
sql/warehouse_phase0_audit_log.sql
Normal file
@@ -0,0 +1,58 @@
|
||||
-- ==========================================================
|
||||
-- 库房重构 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 = '采购需求(项目大件/特殊件,对应"采购需求"菜单)';
|
||||
69
sql/warehouse_phase0_menu.sql
Normal file
69
sql/warehouse_phase0_menu.sql
Normal file
@@ -0,0 +1,69 @@
|
||||
-- ==========================================================
|
||||
-- 库房菜单调整(无权限控制版)
|
||||
-- ==========================================================
|
||||
|
||||
-- ----------------------------------------------------------
|
||||
-- 1. 复活并修正"采购需求"菜单
|
||||
-- ----------------------------------------------------------
|
||||
UPDATE sys_menu
|
||||
SET menu_name = '采购需求',
|
||||
path = 'requirement',
|
||||
component = 'oa/task/requirement/index',
|
||||
perms = NULL,
|
||||
visible = '0',
|
||||
status = '0',
|
||||
order_num = 30,
|
||||
icon = 'tool'
|
||||
WHERE menu_id = 1968929776643162114;
|
||||
|
||||
-- ----------------------------------------------------------
|
||||
-- 2. 新增"出库明细"菜单
|
||||
-- ----------------------------------------------------------
|
||||
INSERT INTO sys_menu
|
||||
(menu_id, menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time)
|
||||
VALUES
|
||||
(2059900000000000001, '出库明细', 1852933620281430018, 65,
|
||||
'outDetail', 'oa/oaOutWarehouse/detail', 'C', '0', '0',
|
||||
NULL, 'detail', 'admin', NOW());
|
||||
|
||||
-- ----------------------------------------------------------
|
||||
-- 3. 新增"操作日志"菜单
|
||||
-- ----------------------------------------------------------
|
||||
INSERT INTO sys_menu
|
||||
(menu_id, menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time)
|
||||
VALUES
|
||||
(2059900000000000002, '操作日志', 1852933620281430018, 90,
|
||||
'auditLog', 'oa/oaWarehouse/auditLog', 'C', '0', '0',
|
||||
NULL, 'log', 'admin', NOW());
|
||||
|
||||
-- ----------------------------------------------------------
|
||||
-- 4. 隐藏过时/测试菜单(visible='1' = 隐藏)
|
||||
-- ----------------------------------------------------------
|
||||
UPDATE sys_menu SET visible = '1'
|
||||
WHERE menu_id IN (
|
||||
1920003824857874433, -- 测试页面
|
||||
1938799329876361217, -- 退库日志
|
||||
1906233436477644801 -- 采购计划
|
||||
);
|
||||
|
||||
-- ----------------------------------------------------------
|
||||
-- 5. 重排库房一级菜单顺序
|
||||
-- ----------------------------------------------------------
|
||||
UPDATE sys_menu SET order_num = 10 WHERE menu_id = 1925143921102114818; -- 智慧库房
|
||||
UPDATE sys_menu SET order_num = 20 WHERE menu_id = 1852933963887202305; -- 库存管理
|
||||
UPDATE sys_menu SET order_num = 30 WHERE menu_id = 1968929776643162114; -- 采购需求
|
||||
UPDATE sys_menu SET order_num = 40 WHERE menu_id = 1906249355421573121; -- 车间采购
|
||||
UPDATE sys_menu SET order_num = 50 WHERE menu_id = 1902604787711459329; -- 入库明细
|
||||
UPDATE sys_menu SET order_num = 60 WHERE menu_id = 1853343196679536641; -- 仓库出库
|
||||
UPDATE sys_menu SET order_num = 65 WHERE menu_id = 2059900000000000001; -- 出库明细
|
||||
UPDATE sys_menu SET order_num = 70 WHERE menu_id = 1938787785255927809; -- 退库管理
|
||||
UPDATE sys_menu SET order_num = 90 WHERE menu_id = 2059900000000000002; -- 操作日志
|
||||
|
||||
-- ----------------------------------------------------------
|
||||
-- 6. 校验
|
||||
-- ----------------------------------------------------------
|
||||
SELECT menu_id, menu_name, path, component, visible, order_num
|
||||
FROM sys_menu
|
||||
WHERE parent_id = 1852933620281430018
|
||||
AND status = '0'
|
||||
ORDER BY order_num;
|
||||
159
sql/warehouse_simplify_migration.sql
Normal file
159
sql/warehouse_simplify_migration.sql
Normal file
@@ -0,0 +1,159 @@
|
||||
-- ==========================================================
|
||||
-- 库房模块简化迁移
|
||||
-- 目的:删除冗余表、修复乱码注释、补关键索引
|
||||
-- 注意:所有 ALTER 在 MySQL 8 上为 in-place / instant,业务低峰执行
|
||||
-- ==========================================================
|
||||
-- 强烈建议执行前做一次备份:
|
||||
-- mysqldump -uroot -p fad_oa_dev \
|
||||
-- sys_oa_warehouse sys_oa_warehouse_master sys_oa_warehouse_detail \
|
||||
-- sys_oa_warehouse_task sys_oa_warehouse_log sys_oa_warehouse_request \
|
||||
-- > warehouse_backup_$(date +%Y%m%d).sql
|
||||
-- ==========================================================
|
||||
|
||||
-- ----------------------------------------------------------
|
||||
-- 1. 删除完全未使用的表
|
||||
-- ----------------------------------------------------------
|
||||
-- request 表 0 行,前端没接入,确认废弃
|
||||
|
||||
-- ----------------------------------------------------------
|
||||
-- 2. 修复字段注释(数据库中是 ? 乱码,重新设置为可读中文)
|
||||
-- ----------------------------------------------------------
|
||||
|
||||
-- 2.1 sys_oa_warehouse 物料档案 / 实时库存
|
||||
ALTER TABLE `sys_oa_warehouse`
|
||||
MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '物料ID',
|
||||
MODIFY COLUMN `inventory` bigint DEFAULT NULL COMMENT '当前库存数量',
|
||||
MODIFY COLUMN `model` varchar(50) DEFAULT NULL COMMENT '型号',
|
||||
MODIFY COLUMN `price` decimal(18,2) DEFAULT '0.00' COMMENT '加权平均单价',
|
||||
MODIFY COLUMN `unit` varchar(5) DEFAULT NULL COMMENT '单位',
|
||||
MODIFY COLUMN `name` varchar(50) DEFAULT NULL COMMENT '物料名称',
|
||||
MODIFY COLUMN `brand` varchar(200) DEFAULT NULL COMMENT '品牌',
|
||||
MODIFY COLUMN `specifications` varchar(125) DEFAULT NULL COMMENT '规格',
|
||||
MODIFY COLUMN `remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
MODIFY COLUMN `create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
MODIFY COLUMN `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
|
||||
MODIFY COLUMN `update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
MODIFY COLUMN `update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
|
||||
MODIFY COLUMN `del_flag` tinyint DEFAULT '0' COMMENT '删除标志(0=正常 2=删除)',
|
||||
MODIFY COLUMN `threshold` bigint NOT NULL DEFAULT '5' COMMENT '库存预警阈值',
|
||||
COMMENT = '物料档案/实时库存';
|
||||
|
||||
-- 2.2 sys_oa_warehouse_master 出入库单据头
|
||||
ALTER TABLE `sys_oa_warehouse_master`
|
||||
MODIFY COLUMN `master_id` bigint NOT NULL AUTO_INCREMENT COMMENT '单据ID',
|
||||
MODIFY COLUMN `master_num` varchar(296) DEFAULT NULL COMMENT '单据编号',
|
||||
MODIFY COLUMN `type` int DEFAULT NULL COMMENT '类型(0=出库 1=入库 2=归还)',
|
||||
MODIFY COLUMN `project_id` bigint DEFAULT NULL COMMENT '关联项目ID',
|
||||
MODIFY COLUMN `requirement_id` bigint DEFAULT NULL COMMENT '关联需求ID',
|
||||
MODIFY COLUMN `sign_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '签收/操作时间',
|
||||
MODIFY COLUMN `sign_user` varchar(20) DEFAULT NULL COMMENT '签收人',
|
||||
MODIFY COLUMN `is_like` int DEFAULT '0' COMMENT '是否收藏(0=否 1=是)',
|
||||
MODIFY COLUMN `status` int DEFAULT '0' COMMENT '单据状态',
|
||||
MODIFY COLUMN `return_type` int DEFAULT '0' COMMENT '归还类型(0=否 1=部分归还)',
|
||||
MODIFY COLUMN `withdraw_lock` tinyint NOT NULL DEFAULT '0' COMMENT '撤回锁定(1=锁定)',
|
||||
MODIFY COLUMN `remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
MODIFY COLUMN `del_flag` tinyint NOT NULL DEFAULT '0' COMMENT '删除标志',
|
||||
COMMENT = '出入库单据头';
|
||||
|
||||
-- 2.3 sys_oa_warehouse_detail 出入库单据行
|
||||
ALTER TABLE `sys_oa_warehouse_detail`
|
||||
MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '明细ID',
|
||||
MODIFY COLUMN `master_id` bigint DEFAULT NULL COMMENT '所属单据ID(sys_oa_warehouse_master)',
|
||||
MODIFY COLUMN `warehouse_id` bigint NOT NULL COMMENT '物料ID(sys_oa_warehouse)',
|
||||
MODIFY COLUMN `amount` bigint DEFAULT NULL COMMENT '本次出入库数量',
|
||||
MODIFY COLUMN `sign_price` decimal(18,2) DEFAULT '0.00' COMMENT '签收单价',
|
||||
MODIFY COLUMN `project_id` bigint DEFAULT NULL COMMENT '所属项目ID',
|
||||
MODIFY COLUMN `father_id` bigint DEFAULT NULL COMMENT '父任务ID(task 派生明细使用)',
|
||||
MODIFY COLUMN `remark` varchar(255) DEFAULT NULL COMMENT '备注',
|
||||
MODIFY COLUMN `del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标志',
|
||||
COMMENT = '出入库单据行';
|
||||
|
||||
-- 2.4 sys_oa_warehouse_task 库房任务(采购/补货)
|
||||
ALTER TABLE `sys_oa_warehouse_task`
|
||||
MODIFY COLUMN `task_id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务ID',
|
||||
MODIFY COLUMN `master_id` bigint DEFAULT NULL COMMENT '完成后写回的单据ID',
|
||||
MODIFY COLUMN `warehouse_id` bigint DEFAULT NULL COMMENT '关联物料ID(新采购可空)',
|
||||
MODIFY COLUMN `name` varchar(50) DEFAULT NULL COMMENT '物料名称(快照)',
|
||||
MODIFY COLUMN `model` varchar(20) DEFAULT NULL COMMENT '型号',
|
||||
MODIFY COLUMN `brand` varchar(20) DEFAULT NULL COMMENT '品牌',
|
||||
MODIFY COLUMN `specifications` varchar(40) DEFAULT NULL COMMENT '规格',
|
||||
MODIFY COLUMN `unit` varchar(50) DEFAULT NULL COMMENT '单位',
|
||||
MODIFY COLUMN `task_inventory` int DEFAULT NULL COMMENT '任务数量(采购量/补货量)',
|
||||
MODIFY COLUMN `task_status` int DEFAULT '0' COMMENT '任务状态(0=待处理 1=进行中 2=完成 3=取消)',
|
||||
MODIFY COLUMN `end_time` datetime DEFAULT NULL COMMENT '期望完成时间',
|
||||
MODIFY COLUMN `remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
MODIFY COLUMN `del_flag` int DEFAULT '0' COMMENT '删除标志',
|
||||
COMMENT = '库房任务(采购/补货)';
|
||||
|
||||
-- 2.5 sys_oa_warehouse_log 库房操作日志
|
||||
ALTER TABLE `sys_oa_warehouse_log`
|
||||
MODIFY COLUMN `log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
||||
MODIFY COLUMN `master_id` bigint DEFAULT NULL COMMENT '关联单据ID',
|
||||
MODIFY COLUMN `warehouse_id` bigint DEFAULT NULL COMMENT '关联物料ID',
|
||||
MODIFY COLUMN `num` int DEFAULT NULL COMMENT '变更数量',
|
||||
MODIFY COLUMN `del_flag` int NOT NULL DEFAULT '0' COMMENT '删除标志',
|
||||
COMMENT = '库房操作日志';
|
||||
|
||||
|
||||
-- ----------------------------------------------------------
|
||||
-- 3. 补关键索引(之前所有表只有主键,查询慢的根因)
|
||||
-- ----------------------------------------------------------
|
||||
|
||||
-- master 单据头:按项目、状态、类型查
|
||||
ALTER TABLE `sys_oa_warehouse_master`
|
||||
ADD INDEX `idx_project_id` (`project_id`),
|
||||
ADD INDEX `idx_type_status` (`type`, `status`),
|
||||
ADD INDEX `idx_sign_time` (`sign_time`);
|
||||
|
||||
-- detail 单据行:按单据、物料、项目查(最高频)
|
||||
ALTER TABLE `sys_oa_warehouse_detail`
|
||||
ADD INDEX `idx_master_id` (`master_id`),
|
||||
ADD INDEX `idx_warehouse_id` (`warehouse_id`),
|
||||
ADD INDEX `idx_project_id` (`project_id`);
|
||||
|
||||
-- warehouse 物料:按名称、型号搜
|
||||
ALTER TABLE `sys_oa_warehouse`
|
||||
ADD INDEX `idx_name` (`name`),
|
||||
ADD INDEX `idx_model` (`model`),
|
||||
ADD INDEX `idx_del_flag` (`del_flag`);
|
||||
|
||||
-- task 任务:按状态、物料、单据
|
||||
ALTER TABLE `sys_oa_warehouse_task`
|
||||
ADD INDEX `idx_task_status` (`task_status`),
|
||||
ADD INDEX `idx_warehouse_id` (`warehouse_id`),
|
||||
ADD INDEX `idx_master_id` (`master_id`);
|
||||
|
||||
-- log:按单据、物料查
|
||||
ALTER TABLE `sys_oa_warehouse_log`
|
||||
ADD INDEX `idx_master_id` (`master_id`),
|
||||
ADD INDEX `idx_warehouse_id` (`warehouse_id`);
|
||||
|
||||
|
||||
-- ----------------------------------------------------------
|
||||
-- 4. 数据健康检查(运行后看看)
|
||||
-- ----------------------------------------------------------
|
||||
|
||||
-- 4.1 库存为负数的物料(数据错乱)
|
||||
SELECT id, name, model, inventory FROM sys_oa_warehouse
|
||||
WHERE del_flag = 0 AND inventory < 0;
|
||||
|
||||
-- 4.2 detail 指向已删除/不存在物料的孤儿行
|
||||
SELECT d.id, d.master_id, d.warehouse_id
|
||||
FROM sys_oa_warehouse_detail d
|
||||
LEFT JOIN sys_oa_warehouse w ON w.id = d.warehouse_id
|
||||
WHERE w.id IS NULL AND d.del_flag = 0
|
||||
LIMIT 50;
|
||||
|
||||
-- 4.3 detail 指向已删除/不存在单据的孤儿行
|
||||
SELECT d.id, d.master_id
|
||||
FROM sys_oa_warehouse_detail d
|
||||
LEFT JOIN sys_oa_warehouse_master m ON m.master_id = d.master_id
|
||||
WHERE m.master_id IS NULL AND d.del_flag = 0
|
||||
LIMIT 50;
|
||||
|
||||
-- 4.4 task 中超过 90 天还在进行中的(疑似遗留)
|
||||
SELECT task_id, name, task_status, create_time
|
||||
FROM sys_oa_warehouse_task
|
||||
WHERE task_status IN (0, 1)
|
||||
AND create_time < DATE_SUB(NOW(), INTERVAL 90 DAY)
|
||||
AND del_flag = 0;
|
||||
Reference in New Issue
Block a user