隐患排查初版
This commit is contained in:
138
sql/migrate_hidden_danger_inspection_old_data_to_reject.sql
Normal file
138
sql/migrate_hidden_danger_inspection_old_data_to_reject.sql
Normal file
@@ -0,0 +1,138 @@
|
||||
-- 存量隐患排查数据迁移为“审核不通过”状态,并补写驳回历史
|
||||
-- 使用前请先确认:
|
||||
-- 1. 已执行 update_hidden_danger_inspection_reject_history.sql
|
||||
-- 2. 首次执行前建议备份 hot_hidden_danger_inspection 与 hot_hidden_danger_inspection_audit_history
|
||||
-- 3. 本脚本默认将所有未删除的老数据统一初始化为第 1 次驳回
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
-- 1. 将主表老数据统一调整为驳回状态
|
||||
UPDATE `hot_hidden_danger_inspection`
|
||||
SET `submit_version` = IFNULL(NULLIF(`submit_version`, 0), 1),
|
||||
`audit_result` = 'REJECT',
|
||||
`reject_count` = CASE
|
||||
WHEN `reject_count` IS NULL OR `reject_count` = 0 THEN 1
|
||||
ELSE `reject_count`
|
||||
END,
|
||||
`last_reject_reason` = CASE
|
||||
WHEN `last_reject_reason` IS NULL OR `last_reject_reason` = '' THEN '历史数据初始化为审核不通过,请驾驶员重新编辑后提交'
|
||||
ELSE `last_reject_reason`
|
||||
END,
|
||||
`last_reject_time` = COALESCE(`last_reject_time`, `audit_date`, `update_time`, `create_time`, NOW()),
|
||||
`last_reject_by_id` = COALESCE(`last_reject_by_id`, `approver_id`),
|
||||
`last_reject_by_name` = COALESCE(NULLIF(`last_reject_by_name`, ''), `approver_name`),
|
||||
`flow_status` = 'REJECTED',
|
||||
`instance_id` = NULL,
|
||||
`status` = 1
|
||||
WHERE `is_deleted` = 0;
|
||||
|
||||
-- 2. 将老数据写入驳回历史表
|
||||
-- 说明:
|
||||
-- - 每条主单补 1 条“第 1 次驳回”历史
|
||||
-- - 已存在 inspection_id + audit_round=1 的记录时不会重复插入
|
||||
SET @history_max_id := (SELECT IFNULL(MAX(`id`), 0) FROM `hot_hidden_danger_inspection_audit_history`);
|
||||
|
||||
INSERT INTO `hot_hidden_danger_inspection_audit_history` (
|
||||
`id`,
|
||||
`inspection_id`,
|
||||
`company_id`,
|
||||
`plan_id`,
|
||||
`project_name`,
|
||||
`project_id`,
|
||||
`project_type`,
|
||||
`submit_version`,
|
||||
`audit_round`,
|
||||
`audit_result`,
|
||||
`reject_reason`,
|
||||
`audit_date`,
|
||||
`approver_id`,
|
||||
`approver_name`,
|
||||
`approver_sign_img_url`,
|
||||
`audit_has_danger`,
|
||||
`submit_snapshot_json`,
|
||||
`check_content_json`,
|
||||
`danger_desc`,
|
||||
`attachment_url`,
|
||||
`sign_img_url`,
|
||||
`checker_id`,
|
||||
`checker_name`,
|
||||
`check_date`,
|
||||
`create_dept`,
|
||||
`create_by`,
|
||||
`create_by_name`,
|
||||
`create_time`,
|
||||
`update_by`,
|
||||
`update_by_name`,
|
||||
`update_time`,
|
||||
`is_deleted`,
|
||||
`remark`
|
||||
)
|
||||
SELECT
|
||||
(@history_max_id := @history_max_id + 1) AS `id`,
|
||||
i.`id` AS `inspection_id`,
|
||||
i.`company_id`,
|
||||
i.`plan_id`,
|
||||
i.`project_name`,
|
||||
i.`project_id`,
|
||||
i.`project_type`,
|
||||
IFNULL(NULLIF(i.`submit_version`, 0), 1) AS `submit_version`,
|
||||
1 AS `audit_round`,
|
||||
'REJECT' AS `audit_result`,
|
||||
COALESCE(NULLIF(i.`last_reject_reason`, ''), '历史数据初始化为审核不通过,请驾驶员重新编辑后提交') AS `reject_reason`,
|
||||
COALESCE(i.`last_reject_time`, i.`audit_date`, i.`update_time`, i.`create_time`, NOW()) AS `audit_date`,
|
||||
COALESCE(i.`last_reject_by_id`, i.`approver_id`) AS `approver_id`,
|
||||
COALESCE(NULLIF(i.`last_reject_by_name`, ''), i.`approver_name`) AS `approver_name`,
|
||||
i.`approver_sign_img_url`,
|
||||
i.`audit_has_danger`,
|
||||
JSON_OBJECT(
|
||||
'inspectionId', i.`id`,
|
||||
'companyId', i.`company_id`,
|
||||
'planId', i.`plan_id`,
|
||||
'projectName', i.`project_name`,
|
||||
'projectId', i.`project_id`,
|
||||
'projectType', i.`project_type`,
|
||||
'submitVersion', IFNULL(NULLIF(i.`submit_version`, 0), 1),
|
||||
'checkContentJson', i.`check_content_json`,
|
||||
'dangerDesc', i.`danger_desc`,
|
||||
'attachmentUrl', i.`attachment_url`,
|
||||
'signImgUrl', i.`sign_img_url`,
|
||||
'checkerId', i.`checker_id`,
|
||||
'checkerName', i.`checker_name`,
|
||||
'checkDate', i.`check_date`
|
||||
) AS `submit_snapshot_json`,
|
||||
i.`check_content_json`,
|
||||
i.`danger_desc`,
|
||||
i.`attachment_url`,
|
||||
i.`sign_img_url`,
|
||||
i.`checker_id`,
|
||||
i.`checker_name`,
|
||||
i.`check_date`,
|
||||
i.`create_dept`,
|
||||
COALESCE(i.`update_by`, i.`create_by`) AS `create_by`,
|
||||
NULL AS `create_by_name`,
|
||||
COALESCE(i.`update_time`, i.`create_time`, NOW()) AS `create_time`,
|
||||
i.`update_by`,
|
||||
NULL AS `update_by_name`,
|
||||
i.`update_time`,
|
||||
0 AS `is_deleted`,
|
||||
'历史数据初始化补录' AS `remark`
|
||||
FROM `hot_hidden_danger_inspection` i
|
||||
WHERE i.`is_deleted` = 0
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM `hot_hidden_danger_inspection_audit_history` h
|
||||
WHERE h.`inspection_id` = i.`id`
|
||||
AND h.`audit_round` = 1
|
||||
AND h.`is_deleted` = 0
|
||||
);
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- 校验SQL
|
||||
-- SELECT COUNT(*) FROM hot_hidden_danger_inspection WHERE is_deleted = 0 AND audit_result = 'REJECT' AND status = 1;
|
||||
-- SELECT COUNT(*) FROM hot_hidden_danger_inspection_audit_history WHERE is_deleted = 0;
|
||||
|
||||
|
||||
|
||||
update hot_hidden_danger_inspection set status = 1
|
||||
update hot_hidden_danger_inspection set status = 10 where approver_id is not null
|
||||
49
sql/update_hidden_danger_inspection_reject_history.sql
Normal file
49
sql/update_hidden_danger_inspection_reject_history.sql
Normal file
@@ -0,0 +1,49 @@
|
||||
ALTER TABLE `hot_hidden_danger_inspection`
|
||||
ADD COLUMN `submit_version` bigint NULL DEFAULT 0 COMMENT '提交版本号' AFTER `flow_status`,
|
||||
ADD COLUMN `audit_result` varchar(16) NULL COMMENT '审核结果(PASS=通过 REJECT=驳回)' AFTER `submit_version`,
|
||||
ADD COLUMN `reject_count` bigint NULL DEFAULT 0 COMMENT '驳回次数' AFTER `audit_result`,
|
||||
ADD COLUMN `last_reject_reason` varchar(500) NULL COMMENT '最近一次驳回原因' AFTER `reject_count`,
|
||||
ADD COLUMN `last_reject_time` datetime NULL COMMENT '最近一次驳回时间' AFTER `last_reject_reason`,
|
||||
ADD COLUMN `last_reject_by_id` bigint NULL COMMENT '最近一次驳回人ID' AFTER `last_reject_time`,
|
||||
ADD COLUMN `last_reject_by_name` varchar(64) NULL COMMENT '最近一次驳回人姓名' AFTER `last_reject_by_id`;
|
||||
|
||||
CREATE TABLE `hot_hidden_danger_inspection_audit_history` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`inspection_id` bigint NOT NULL COMMENT '隐患排查主单ID',
|
||||
`company_id` bigint DEFAULT NULL COMMENT '公司ID',
|
||||
`plan_id` bigint DEFAULT NULL COMMENT '计划ID',
|
||||
`project_name` varchar(255) DEFAULT NULL COMMENT '排查项目',
|
||||
`project_id` varchar(64) DEFAULT NULL COMMENT '排查项目ID',
|
||||
`project_type` bigint DEFAULT NULL COMMENT '排查类型(1=公司 2=车辆 3=人员)',
|
||||
`submit_version` bigint DEFAULT NULL COMMENT '提交版本号',
|
||||
`audit_round` bigint DEFAULT NULL COMMENT '审核轮次',
|
||||
`audit_result` varchar(16) DEFAULT NULL COMMENT '审核结果(REJECT)',
|
||||
`reject_reason` varchar(500) DEFAULT NULL COMMENT '驳回原因',
|
||||
`audit_date` datetime DEFAULT NULL COMMENT '审核日期',
|
||||
`approver_id` bigint DEFAULT NULL COMMENT '审核人ID',
|
||||
`approver_name` varchar(64) DEFAULT NULL COMMENT '审核人姓名',
|
||||
`approver_sign_img_url` varchar(500) DEFAULT NULL COMMENT '审核人签名图片',
|
||||
`audit_has_danger` bigint DEFAULT NULL COMMENT '审核时是否存在隐患',
|
||||
`submit_snapshot_json` longtext COMMENT '当次提交快照JSON',
|
||||
`check_content_json` longtext COMMENT '排查内容JSON',
|
||||
`danger_desc` varchar(500) DEFAULT NULL COMMENT '隐患描述',
|
||||
`attachment_url` varchar(2000) DEFAULT NULL COMMENT '附件URL',
|
||||
`sign_img_url` varchar(500) DEFAULT NULL COMMENT '排查人签名图片',
|
||||
`checker_id` varchar(64) DEFAULT NULL COMMENT '排查人ID',
|
||||
`checker_name` varchar(64) DEFAULT NULL COMMENT '排查人姓名',
|
||||
`check_date` datetime DEFAULT NULL COMMENT '排查日期',
|
||||
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
|
||||
`create_by` bigint DEFAULT NULL COMMENT '创建者',
|
||||
`create_by_name` varchar(64) DEFAULT NULL COMMENT '创建者名称',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` bigint DEFAULT NULL COMMENT '更新者',
|
||||
`update_by_name` varchar(64) DEFAULT NULL COMMENT '更新者名称',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`is_deleted` bigint DEFAULT 0 COMMENT '0=正常,1=已删除',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_hdiah_inspection_id` (`inspection_id`),
|
||||
KEY `idx_hdiah_company_id` (`company_id`),
|
||||
KEY `idx_hdiah_audit_round` (`audit_round`),
|
||||
KEY `idx_hdiah_is_deleted` (`is_deleted`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='隐患排查审核驳回历史表';
|
||||
Reference in New Issue
Block a user