2026-10-13-customer-service-tables.sql 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. -- 样本客户服务扩展表 + 租户字典(2026-10-13)
  2. -- 对齐 docs/superpowers/specs/2026-10-13-customer-service-management-design.md
  3. CREATE TABLE IF NOT EXISTS biz_sample_customer_service (
  4. id VARCHAR(64) NOT NULL COMMENT '主键ID',
  5. sample_code VARCHAR(32) NOT NULL COMMENT '样本编码',
  6. collection_protocol_id VARCHAR(64) DEFAULT NULL COMMENT '采集协议单ID冗余',
  7. sms_send_date DATE DEFAULT NULL COMMENT '短信发送日期',
  8. sms_send_status VARCHAR(64) DEFAULT NULL COMMENT '短信发送情况',
  9. microbe_followup_date DATE DEFAULT NULL COMMENT '微生物回访日期',
  10. microbe_followup_status VARCHAR(64) DEFAULT NULL COMMENT '微生物回访情况',
  11. fullmoon_followup_date DATE DEFAULT NULL COMMENT '满月回访时间',
  12. fullmoon_followup_status VARCHAR(64) DEFAULT NULL COMMENT '满月回访情况',
  13. household_registered VARCHAR(64) DEFAULT NULL COMMENT '是否上户口',
  14. einvoice_send_time DATETIME DEFAULT NULL COMMENT '电子发票发送时间',
  15. effective_address VARCHAR(512) DEFAULT NULL COMMENT '有效地址',
  16. tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
  17. order_num INT DEFAULT NULL COMMENT '排序号',
  18. remark VARCHAR(512) DEFAULT NULL COMMENT '备注',
  19. create_by VARCHAR(64) DEFAULT NULL COMMENT '创建人id',
  20. create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  21. create_time DATETIME NOT NULL COMMENT '创建时间',
  22. update_by VARCHAR(64) DEFAULT NULL COMMENT '更新人id',
  23. update_time DATETIME NOT NULL COMMENT '更新时间',
  24. del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记',
  25. PRIMARY KEY (id),
  26. UNIQUE KEY uk_bscs_tenant_sample (tenant_no, sample_code),
  27. KEY idx_bscs_protocol (tenant_no, collection_protocol_id, del_flag)
  28. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='样本客户服务扩展';
  29. -- 注:uk_bscs_tenant_sample 不含 del_flag;del_flag=0 行唯一性由应用层保证(与 biz_sample_storage_cert_qc 一致)。
  30. CREATE TABLE IF NOT EXISTS biz_customer_service_dict (
  31. id VARCHAR(64) NOT NULL COMMENT '主键ID',
  32. dict_type VARCHAR(64) NOT NULL COMMENT '字典类型',
  33. dict_value VARCHAR(128) NOT NULL COMMENT '选项值',
  34. is_system CHAR(1) NOT NULL DEFAULT '0' COMMENT '1预置 0手输',
  35. tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
  36. order_num INT DEFAULT NULL COMMENT '排序号',
  37. remark VARCHAR(512) DEFAULT NULL COMMENT '备注',
  38. create_by VARCHAR(64) DEFAULT NULL COMMENT '创建人id',
  39. create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  40. create_time DATETIME NOT NULL COMMENT '创建时间',
  41. update_by VARCHAR(64) DEFAULT NULL COMMENT '更新人id',
  42. update_time DATETIME NOT NULL COMMENT '更新时间',
  43. del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记',
  44. PRIMARY KEY (id),
  45. UNIQUE KEY uk_bcsd_tenant_type_value (tenant_no, dict_type, dict_value)
  46. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户服务字典';
  47. -- 注:uk_bcsd_tenant_type_value 不含 del_flag;del_flag=0 行唯一性由应用层保证(与 biz_sample_storage_cert_qc 一致)。
  48. -- 预置字典种子(tenant_no=zkxw,is_system=1;幂等 NOT EXISTS)
  49. INSERT INTO biz_customer_service_dict (
  50. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  51. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  52. )
  53. SELECT REPLACE(UUID(), '-', ''), 'sms_send_status', '已发', '1', 'zkxw', 1, NULL,
  54. NULL, '', NOW(), NULL, NOW(), 0
  55. FROM DUAL
  56. WHERE NOT EXISTS (
  57. SELECT 1 FROM biz_customer_service_dict
  58. WHERE tenant_no = 'zkxw' AND dict_type = 'sms_send_status' AND dict_value = '已发' AND del_flag = 0
  59. );
  60. INSERT INTO biz_customer_service_dict (
  61. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  62. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  63. )
  64. SELECT REPLACE(UUID(), '-', ''), 'sms_send_status', '合并发', '1', 'zkxw', 2, NULL,
  65. NULL, '', NOW(), NULL, NOW(), 0
  66. FROM DUAL
  67. WHERE NOT EXISTS (
  68. SELECT 1 FROM biz_customer_service_dict
  69. WHERE tenant_no = 'zkxw' AND dict_type = 'sms_send_status' AND dict_value = '合并发' AND del_flag = 0
  70. );
  71. INSERT INTO biz_customer_service_dict (
  72. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  73. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  74. )
  75. SELECT REPLACE(UUID(), '-', ''), 'sms_send_status', '/', '1', 'zkxw', 3, NULL,
  76. NULL, '', NOW(), NULL, NOW(), 0
  77. FROM DUAL
  78. WHERE NOT EXISTS (
  79. SELECT 1 FROM biz_customer_service_dict
  80. WHERE tenant_no = 'zkxw' AND dict_type = 'sms_send_status' AND dict_value = '/' AND del_flag = 0
  81. );
  82. INSERT INTO biz_customer_service_dict (
  83. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  84. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  85. )
  86. SELECT REPLACE(UUID(), '-', ''), 'microbe_followup_status', '回访成功', '1', 'zkxw', 1, NULL,
  87. NULL, '', NOW(), NULL, NOW(), 0
  88. FROM DUAL
  89. WHERE NOT EXISTS (
  90. SELECT 1 FROM biz_customer_service_dict
  91. WHERE tenant_no = 'zkxw' AND dict_type = 'microbe_followup_status' AND dict_value = '回访成功' AND del_flag = 0
  92. );
  93. INSERT INTO biz_customer_service_dict (
  94. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  95. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  96. )
  97. SELECT REPLACE(UUID(), '-', ''), 'microbe_followup_status', '无人接听', '1', 'zkxw', 2, NULL,
  98. NULL, '', NOW(), NULL, NOW(), 0
  99. FROM DUAL
  100. WHERE NOT EXISTS (
  101. SELECT 1 FROM biz_customer_service_dict
  102. WHERE tenant_no = 'zkxw' AND dict_type = 'microbe_followup_status' AND dict_value = '无人接听' AND del_flag = 0
  103. );
  104. INSERT INTO biz_customer_service_dict (
  105. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  106. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  107. )
  108. SELECT REPLACE(UUID(), '-', ''), 'microbe_followup_status', '挂机', '1', 'zkxw', 3, NULL,
  109. NULL, '', NOW(), NULL, NOW(), 0
  110. FROM DUAL
  111. WHERE NOT EXISTS (
  112. SELECT 1 FROM biz_customer_service_dict
  113. WHERE tenant_no = 'zkxw' AND dict_type = 'microbe_followup_status' AND dict_value = '挂机' AND del_flag = 0
  114. );
  115. INSERT INTO biz_customer_service_dict (
  116. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  117. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  118. )
  119. SELECT REPLACE(UUID(), '-', ''), 'microbe_followup_status', '微信通知', '1', 'zkxw', 4, NULL,
  120. NULL, '', NOW(), NULL, NOW(), 0
  121. FROM DUAL
  122. WHERE NOT EXISTS (
  123. SELECT 1 FROM biz_customer_service_dict
  124. WHERE tenant_no = 'zkxw' AND dict_type = 'microbe_followup_status' AND dict_value = '微信通知' AND del_flag = 0
  125. );
  126. INSERT INTO biz_customer_service_dict (
  127. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  128. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  129. )
  130. SELECT REPLACE(UUID(), '-', ''), 'fullmoon_followup_status', '回访成功', '1', 'zkxw', 1, NULL,
  131. NULL, '', NOW(), NULL, NOW(), 0
  132. FROM DUAL
  133. WHERE NOT EXISTS (
  134. SELECT 1 FROM biz_customer_service_dict
  135. WHERE tenant_no = 'zkxw' AND dict_type = 'fullmoon_followup_status' AND dict_value = '回访成功' AND del_flag = 0
  136. );
  137. INSERT INTO biz_customer_service_dict (
  138. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  139. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  140. )
  141. SELECT REPLACE(UUID(), '-', ''), 'fullmoon_followup_status', '无人接听', '1', 'zkxw', 2, NULL,
  142. NULL, '', NOW(), NULL, NOW(), 0
  143. FROM DUAL
  144. WHERE NOT EXISTS (
  145. SELECT 1 FROM biz_customer_service_dict
  146. WHERE tenant_no = 'zkxw' AND dict_type = 'fullmoon_followup_status' AND dict_value = '无人接听' AND del_flag = 0
  147. );
  148. INSERT INTO biz_customer_service_dict (
  149. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  150. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  151. )
  152. SELECT REPLACE(UUID(), '-', ''), 'fullmoon_followup_status', '挂机', '1', 'zkxw', 3, NULL,
  153. NULL, '', NOW(), NULL, NOW(), 0
  154. FROM DUAL
  155. WHERE NOT EXISTS (
  156. SELECT 1 FROM biz_customer_service_dict
  157. WHERE tenant_no = 'zkxw' AND dict_type = 'fullmoon_followup_status' AND dict_value = '挂机' AND del_flag = 0
  158. );
  159. INSERT INTO biz_customer_service_dict (
  160. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  161. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  162. )
  163. SELECT REPLACE(UUID(), '-', ''), 'fullmoon_followup_status', '微信通知', '1', 'zkxw', 4, NULL,
  164. NULL, '', NOW(), NULL, NOW(), 0
  165. FROM DUAL
  166. WHERE NOT EXISTS (
  167. SELECT 1 FROM biz_customer_service_dict
  168. WHERE tenant_no = 'zkxw' AND dict_type = 'fullmoon_followup_status' AND dict_value = '微信通知' AND del_flag = 0
  169. );
  170. INSERT INTO biz_customer_service_dict (
  171. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  172. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  173. )
  174. SELECT REPLACE(UUID(), '-', ''), 'household_registered', '是', '1', 'zkxw', 1, NULL,
  175. NULL, '', NOW(), NULL, NOW(), 0
  176. FROM DUAL
  177. WHERE NOT EXISTS (
  178. SELECT 1 FROM biz_customer_service_dict
  179. WHERE tenant_no = 'zkxw' AND dict_type = 'household_registered' AND dict_value = '是' AND del_flag = 0
  180. );
  181. INSERT INTO biz_customer_service_dict (
  182. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  183. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  184. )
  185. SELECT REPLACE(UUID(), '-', ''), 'household_registered', '否', '1', 'zkxw', 2, NULL,
  186. NULL, '', NOW(), NULL, NOW(), 0
  187. FROM DUAL
  188. WHERE NOT EXISTS (
  189. SELECT 1 FROM biz_customer_service_dict
  190. WHERE tenant_no = 'zkxw' AND dict_type = 'household_registered' AND dict_value = '否' AND del_flag = 0
  191. );
  192. INSERT INTO biz_customer_service_dict (
  193. id, dict_type, dict_value, is_system, tenant_no, order_num, remark,
  194. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  195. )
  196. SELECT REPLACE(UUID(), '-', ''), 'household_registered', '未回复', '1', 'zkxw', 3, NULL,
  197. NULL, '', NOW(), NULL, NOW(), 0
  198. FROM DUAL
  199. WHERE NOT EXISTS (
  200. SELECT 1 FROM biz_customer_service_dict
  201. WHERE tenant_no = 'zkxw' AND dict_type = 'household_registered' AND dict_value = '未回复' AND del_flag = 0
  202. );