biz_per_sample_payment_presign.sql 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. -- 按样本缴费 + 预签约订单 + 协议退费登记
  2. -- MySQL 5.7 / utf8mb4
  3. -- 说明:
  4. -- 1) biz_collection_protocol 增量字段用 information_schema 判断后 ADD,可重复执行
  5. -- 2) payment_model_version 默认 2;首次升级将存量行置为 1(已有 version=1 则跳过 UPDATE)
  6. -- 3) 新表 CREATE TABLE IF NOT EXISTS
  7. -- ---------------------------------------------------------------------------
  8. -- 1) 采集协议单增量字段
  9. -- ---------------------------------------------------------------------------
  10. SET @db := DATABASE();
  11. SET @col_exists := (
  12. SELECT COUNT(*) FROM information_schema.COLUMNS
  13. WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'biz_collection_protocol' AND COLUMN_NAME = 'protocol_total_amount'
  14. );
  15. SET @sql := IF(@col_exists = 0,
  16. 'ALTER TABLE `biz_collection_protocol` ADD COLUMN `protocol_total_amount` DECIMAL(18,2) DEFAULT NULL COMMENT ''手填协议总金额'' AFTER `collector_user_id`',
  17. 'SELECT 1');
  18. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  19. SET @col_exists := (
  20. SELECT COUNT(*) FROM information_schema.COLUMNS
  21. WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'biz_collection_protocol' AND COLUMN_NAME = 'source_presign_order_id'
  22. );
  23. SET @sql := IF(@col_exists = 0,
  24. 'ALTER TABLE `biz_collection_protocol` ADD COLUMN `source_presign_order_id` VARCHAR(64) DEFAULT NULL COMMENT ''来源预签约订单ID'' AFTER `protocol_total_amount`',
  25. 'SELECT 1');
  26. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  27. SET @col_exists := (
  28. SELECT COUNT(*) FROM information_schema.COLUMNS
  29. WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'biz_collection_protocol' AND COLUMN_NAME = 'payment_model_version'
  30. );
  31. SET @sql := IF(@col_exists = 0,
  32. 'ALTER TABLE `biz_collection_protocol` ADD COLUMN `payment_model_version` SMALLINT NOT NULL DEFAULT 2 COMMENT ''缴费模型版本 1旧/2新'' AFTER `source_presign_order_id`',
  33. 'SELECT 1');
  34. PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  35. -- 存量协议走旧模型;若库中已有 version=1 则视为已回填,跳过(避免重跑误伤新单)
  36. SET @has_v1 := (
  37. SELECT IF(EXISTS(
  38. SELECT 1 FROM `biz_collection_protocol` WHERE `payment_model_version` = 1 LIMIT 1
  39. ), 1, 0)
  40. );
  41. UPDATE `biz_collection_protocol`
  42. SET `payment_model_version` = 1
  43. WHERE @has_v1 = 0;
  44. -- ---------------------------------------------------------------------------
  45. -- 2) 样本缴费方案
  46. -- ---------------------------------------------------------------------------
  47. CREATE TABLE IF NOT EXISTS `biz_protocol_sample_payment` (
  48. `id` varchar(64) NOT NULL COMMENT '主键ID',
  49. `collection_protocol_id` varchar(64) NOT NULL COMMENT '采集协议单ID',
  50. `protocol_sample_id` varchar(64) DEFAULT NULL COMMENT '协议样本ID(可空兜底)',
  51. `sample_code` varchar(32) NOT NULL COMMENT '样本编码(业务关联键)',
  52. `pay_mode` varchar(8) NOT NULL COMMENT 'dj趸交 fq分期',
  53. `contract_amount` decimal(18,2) DEFAULT NULL COMMENT '该样本合同金额',
  54. `installment_count` int(11) DEFAULT NULL COMMENT '分期期数',
  55. `installment_interval_months` decimal(10,2) DEFAULT NULL COMMENT '每期间隔(月)',
  56. `installment_start_date` char(8) DEFAULT NULL COMMENT '分期开始YYYYMMDD',
  57. `installment_advance_days` int(11) DEFAULT NULL COMMENT '第2期起应缴费提前天数',
  58. `installment_ratios` varchar(256) DEFAULT NULL COMMENT '各期缴费比例JSON数组',
  59. `lump_sum_deadline` char(8) DEFAULT NULL COMMENT '趸交截止时间YYYYMMDD',
  60. `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
  61. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  62. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  63. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  64. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  65. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  66. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  67. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  68. `del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记',
  69. PRIMARY KEY (`id`),
  70. KEY `idx_psp_tenant_protocol` (`tenant_no`,`collection_protocol_id`,`del_flag`),
  71. KEY `idx_psp_tenant_sample` (`tenant_no`,`sample_code`,`del_flag`)
  72. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='采集协议单-按样本缴费方案';
  73. -- ---------------------------------------------------------------------------
  74. -- 3) 应缴批次
  75. -- ---------------------------------------------------------------------------
  76. CREATE TABLE IF NOT EXISTS `biz_protocol_payment_schedule` (
  77. `id` varchar(64) NOT NULL COMMENT '主键ID',
  78. `sample_payment_id` varchar(64) NOT NULL COMMENT '样本缴费方案ID',
  79. `collection_protocol_id` varchar(64) NOT NULL COMMENT '采集协议单ID',
  80. `sample_code` varchar(32) NOT NULL COMMENT '样本编码',
  81. `schedule_no` int(11) DEFAULT NULL COMMENT '期次序号',
  82. `due_amount` decimal(18,2) DEFAULT NULL COMMENT '应缴金额',
  83. `due_date` char(8) DEFAULT NULL COMMENT '应缴日期YYYYMMDD',
  84. `schedule_status` varchar(16) DEFAULT NULL COMMENT '批次状态 open/cleared/void',
  85. `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
  86. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  87. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  88. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  89. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  90. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  91. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  92. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  93. `del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记',
  94. PRIMARY KEY (`id`),
  95. KEY `idx_pps_tenant_protocol` (`tenant_no`,`collection_protocol_id`,`del_flag`)
  96. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='采集协议单-应缴批次';
  97. -- ---------------------------------------------------------------------------
  98. -- 4) 转账笔(无退费字段)
  99. -- ---------------------------------------------------------------------------
  100. CREATE TABLE IF NOT EXISTS `biz_protocol_payment_transfer` (
  101. `id` varchar(64) NOT NULL COMMENT '主键ID',
  102. `schedule_id` varchar(64) NOT NULL COMMENT '应缴批次ID',
  103. `sample_payment_id` varchar(64) NOT NULL COMMENT '样本缴费方案ID',
  104. `collection_protocol_id` varchar(64) NOT NULL COMMENT '采集协议单ID',
  105. `sample_code` varchar(32) NOT NULL COMMENT '样本编码',
  106. `transfer_amount` decimal(18,2) DEFAULT NULL COMMENT '转账金额',
  107. `transfer_time` datetime DEFAULT NULL COMMENT '转账时间',
  108. `transfer_type` varchar(16) DEFAULT NULL COMMENT '转账方式',
  109. `transfer_attachments` text COMMENT '转账附件',
  110. `pay_status` varchar(32) NOT NULL DEFAULT 'dfj' COMMENT '缴费状态 dfj/jfqrz/yjf',
  111. `finance_confirm_attachments` text COMMENT '缴费财务确认附件',
  112. `finance_remark` varchar(512) DEFAULT NULL COMMENT '缴费财务确认备注',
  113. `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
  114. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  115. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  116. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  117. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  118. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  119. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  120. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  121. `del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记',
  122. PRIMARY KEY (`id`),
  123. KEY `idx_ppt_tenant_protocol` (`tenant_no`,`collection_protocol_id`,`del_flag`),
  124. KEY `idx_ppt_tenant_sample` (`tenant_no`,`sample_code`,`del_flag`),
  125. KEY `idx_ppt_tenant_pay_status` (`tenant_no`,`pay_status`,`del_flag`)
  126. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='采集协议单-缴费转账笔';
  127. -- ---------------------------------------------------------------------------
  128. -- 5) 协议退费登记
  129. -- ---------------------------------------------------------------------------
  130. CREATE TABLE IF NOT EXISTS `biz_protocol_refund_record` (
  131. `id` varchar(64) NOT NULL COMMENT '主键ID',
  132. `collection_protocol_id` varchar(64) NOT NULL COMMENT '采集协议单ID',
  133. `refund_amount` decimal(18,2) DEFAULT NULL COMMENT '退费金额',
  134. `refund_time` datetime DEFAULT NULL COMMENT '退费时间',
  135. `refund_remark` varchar(512) DEFAULT NULL COMMENT '退费备注',
  136. `refund_attachments` text COMMENT '退费附件',
  137. `workflow_instance_id` varchar(64) DEFAULT NULL COMMENT 'OA工作流实例ID',
  138. `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
  139. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  140. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  141. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  142. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  143. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  144. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  145. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  146. `del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记',
  147. PRIMARY KEY (`id`),
  148. KEY `idx_prr_tenant_protocol` (`tenant_no`,`collection_protocol_id`,`del_flag`)
  149. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='采集协议单-退费登记';
  150. -- ---------------------------------------------------------------------------
  151. -- 6) 预签约订单
  152. -- ---------------------------------------------------------------------------
  153. CREATE TABLE IF NOT EXISTS `biz_presign_order` (
  154. `id` varchar(64) NOT NULL COMMENT '主键ID',
  155. `order_date` char(8) DEFAULT NULL COMMENT '业务日期YYYYMMDD',
  156. `protocol_no` varchar(64) DEFAULT NULL COMMENT '协议编号',
  157. `mother_name` varchar(64) DEFAULT NULL COMMENT '母亲姓名',
  158. `expected_delivery_date` char(8) DEFAULT NULL COMMENT '预产期YYYYMMDD',
  159. `region_id` varchar(64) DEFAULT NULL COMMENT '采集地区ID',
  160. `hospital_id` varchar(64) DEFAULT NULL COMMENT '医院ID',
  161. `sample_collect_time` datetime DEFAULT NULL COMMENT '采集时间',
  162. `pay_mode` varchar(8) DEFAULT NULL COMMENT '整单缴费方式 dj/fq',
  163. `contract_amount` decimal(18,2) DEFAULT NULL COMMENT '整单合同金额',
  164. `sales_user_id` varchar(64) DEFAULT NULL COMMENT '市场专员用户ID',
  165. `region_manager_user_id` varchar(64) DEFAULT NULL COMMENT '地区经理用户ID',
  166. `order_status` varchar(16) DEFAULT NULL COMMENT '订单状态 draft/active/converted/void',
  167. `converted_protocol_id` varchar(64) DEFAULT NULL COMMENT '转成的正式协议ID',
  168. `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
  169. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  170. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  171. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  172. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  173. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  174. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  175. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  176. `del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记',
  177. PRIMARY KEY (`id`),
  178. KEY `idx_po_tenant_protocol_no` (`tenant_no`,`protocol_no`,`del_flag`)
  179. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预签约订单';
  180. -- ---------------------------------------------------------------------------
  181. -- 7) 预签约样本类型
  182. -- ---------------------------------------------------------------------------
  183. CREATE TABLE IF NOT EXISTS `biz_presign_order_sample_type` (
  184. `id` varchar(64) NOT NULL COMMENT '主键ID',
  185. `presign_order_id` varchar(64) NOT NULL COMMENT '预签约订单ID',
  186. `sample_type_id` varchar(64) NOT NULL COMMENT '样本类型ID',
  187. `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
  188. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  189. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  190. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  191. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  192. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  193. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  194. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  195. `del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记',
  196. PRIMARY KEY (`id`),
  197. KEY `idx_post_presign` (`tenant_no`,`presign_order_id`,`del_flag`)
  198. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预签约订单-样本类型';
  199. -- ---------------------------------------------------------------------------
  200. -- 8) 预签约意向金转账笔
  201. -- ---------------------------------------------------------------------------
  202. CREATE TABLE IF NOT EXISTS `biz_presign_transfer` (
  203. `id` varchar(64) NOT NULL COMMENT '主键ID',
  204. `presign_order_id` varchar(64) NOT NULL COMMENT '预签约订单ID',
  205. `transfer_amount` decimal(18,2) DEFAULT NULL COMMENT '转账金额',
  206. `transfer_time` datetime DEFAULT NULL COMMENT '转账时间',
  207. `transfer_type` varchar(16) DEFAULT NULL COMMENT '转账方式',
  208. `transfer_attachments` text COMMENT '转账附件',
  209. `pay_status` varchar(32) NOT NULL DEFAULT 'dfj' COMMENT '缴费状态 dfj/jfqrz/yjf',
  210. `finance_confirm_attachments` text COMMENT '缴费财务确认附件',
  211. `finance_remark` varchar(512) DEFAULT NULL COMMENT '缴费财务确认备注',
  212. `tenant_no` varchar(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号',
  213. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  214. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  215. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  216. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  217. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  218. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  219. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  220. `del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记',
  221. PRIMARY KEY (`id`),
  222. KEY `idx_pt_tenant_pay_status` (`tenant_no`,`pay_status`,`del_flag`),
  223. KEY `idx_pt_presign` (`tenant_no`,`presign_order_id`,`del_flag`)
  224. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预签约订单-意向金转账笔';