liusheng
4 天以前 fb89df539c6293a41933e445df25fa9b8047ba18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
-- ============================================================================
-- smartor_sltd 数据库:ivr 语音问题两张表补齐 mapper 需要的 6 个列(第二批)
-- 生成日期: 20260928
--
-- 【为什么需要】
--   20260928 第一批已把 categoryName → script_assortname、并新增 script_assortid,
--   但 IvrLibaTemplateScriptMapper / IvrTaskTemplateScriptMapper 的 select / insert / update
--   语句里还引用了下面 6 个列,而 ivr_liba_template_script、ivr_task_template_script 两个表
--   在本库中都不存在这些列(svy_lib_template_script 里是有的,定义照抄即可):
--       dimension          varchar(50)  问题维度
--       is_myd_exception   varchar(50)  满意度意见异常(只针对文本)
--       duty_dept_name     text         责任科室名称(如果多个科室用逗号分割)
--       duty_dept_code     text         责任科室编码(如果多个科室用逗号分割)
--       report_dept_name   text         报备科室名称(如果多个科室用逗号分割)
--       report_dept_code   text         报备科室编码(如果多个科室用逗号分割)
--   ⇒ 不补的话,satisfactionGraph 的语音分支(type=1 或 type=null)执行
--      IvrLibaTemplateScriptMapper.queryLibTemplateIds 时仍会抛
--      Unknown column 'is_myd_exception' in 'field list'。
--      (第一批之前报的是 script_assortname,那两个列已经补好。)
--
-- 【校验方式】
--   已用脚本逐列比对:两张表的 mapper 语句(select 片段 55 列 + insert/update 54 列)
--   与本库实际列做差集,缺失的就是上面这 6 个,别无其它。
-- ============================================================================
 
 
-- ----------------------------------------------------------------------------
-- 【0】执行前检查(应确认这 6 列不存在)
-- ----------------------------------------------------------------------------
-- SELECT COLUMN_NAME FROM information_schema.COLUMNS
--  WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'ivr_liba_template_script'
--    AND COLUMN_NAME IN ('dimension','is_myd_exception','duty_dept_name','duty_dept_code','report_dept_name','report_dept_code');
-- SELECT COLUMN_NAME FROM information_schema.COLUMNS
--  WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'ivr_task_template_script'
--    AND COLUMN_NAME IN ('dimension','is_myd_exception','duty_dept_name','duty_dept_code','report_dept_name','report_dept_code');
 
 
-- ----------------------------------------------------------------------------
-- 【1】ivr_liba_template_script 补 6 列(121 行,INPLACE 不阻塞读写)
-- ----------------------------------------------------------------------------
ALTER TABLE ivr_liba_template_script
    ADD COLUMN dimension varchar(50) NULL COMMENT '问题维度',
    ADD COLUMN is_myd_exception varchar(50) NULL COMMENT '满意度意见异常(只针对文本)',
    ADD COLUMN duty_dept_name text NULL COMMENT '责任科室名称(如果多个科室用逗号分割)',
    ADD COLUMN duty_dept_code text NULL COMMENT '责任科室编码(如果多个科室用逗号分割)',
    ADD COLUMN report_dept_name text NULL COMMENT '报备科室名称(如果多个科室用逗号分割)',
    ADD COLUMN report_dept_code text NULL COMMENT '报备科室编码(如果多个科室用逗号分割)',
    ALGORITHM = INPLACE,
    LOCK = NONE;
 
 
-- ----------------------------------------------------------------------------
-- 【2】ivr_task_template_script 补 6 列(1221 行)
-- ----------------------------------------------------------------------------
ALTER TABLE ivr_task_template_script
    ADD COLUMN dimension varchar(50) NULL COMMENT '问题维度',
    ADD COLUMN is_myd_exception varchar(50) NULL COMMENT '满意度意见异常(只针对文本)',
    ADD COLUMN duty_dept_name text NULL COMMENT '责任科室名称(如果多个科室用逗号分割)',
    ADD COLUMN duty_dept_code text NULL COMMENT '责任科室编码(如果多个科室用逗号分割)',
    ADD COLUMN report_dept_name text NULL COMMENT '报备科室名称(如果多个科室用逗号分割)',
    ADD COLUMN report_dept_code text NULL COMMENT '报备科室编码(如果多个科室用逗号分割)',
    ALGORITHM = INPLACE,
    LOCK = NONE;
 
 
-- ----------------------------------------------------------------------------
-- 【3】验证:这两条 mapper 的 select 片段应能正常返回
--   等价 SQL(MyBatis 里就是这段):
--     select id, scriptno, is_myd_exception, ..., script_assortname, ..., script_assortid, ...
--       from ivr_liba_template_script where del_flag=0
-- ----------------------------------------------------------------------------
-- SELECT COUNT(*) FROM (
--   SELECT id, scriptno, is_myd_exception, dimension, script_assortname, script_assortid,
--          duty_dept_name, duty_dept_code, report_dept_name, report_dept_code,
--          duty_dept_person_name, duty_dept_person_code, report_dept_person_code, report_dept_person_name,
--          circulation_dept_person_code, circulation_dept_person_name
--   FROM ivr_liba_template_script WHERE del_flag = 0) t;
 
 
-- ----------------------------------------------------------------------------
-- 【4】回滚
-- ----------------------------------------------------------------------------
-- ALTER TABLE ivr_liba_template_script
--     DROP COLUMN dimension, DROP COLUMN is_myd_exception, DROP COLUMN duty_dept_name,
--     DROP COLUMN duty_dept_code, DROP COLUMN report_dept_name, DROP COLUMN report_dept_code;
-- ALTER TABLE ivr_task_template_script
--     DROP COLUMN dimension, DROP COLUMN is_myd_exception, DROP COLUMN duty_dept_name,
--     DROP COLUMN duty_dept_code, DROP COLUMN report_dept_name, DROP COLUMN report_dept_code;