recreate_fact_patient_tables.sql 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. -- 重建患者消费宽表、诊所日志宽表、销售订单毛利统计宽表。
  2. -- 执行顺序:先执行 backup_current_fact_tables.sql 备份旧表,再执行本文件创建新表。
  3. CREATE TABLE `fact_patientconsumption` (
  4. `id` bigint NOT NULL AUTO_INCREMENT COMMENT "自增ID",
  5. `pay_date` date NOT NULL COMMENT "收费日期",
  6. `clinic_id` bigint NOT NULL COMMENT "挂号ID",
  7. `patientId` varchar(500) NULL COMMENT "病例号",
  8. `patient_name` varchar(5000) NULL COMMENT "姓名",
  9. `mobile` varchar(500) NULL COMMENT "手机号",
  10. `sex` tinyint NULL COMMENT "性别 1男2女",
  11. `birthday` date NULL COMMENT "出生日期",
  12. `identity` varchar(500) NULL COMMENT "身份",
  13. `come_number` int NULL COMMENT "到诊次数 1新客户>1老客户",
  14. `inviter_name` varchar(500) NULL COMMENT "推荐人",
  15. `come_time` datetime NULL COMMENT "就诊时间",
  16. `come_date` date NULL COMMENT "就诊日期",
  17. `type` tinyint NULL COMMENT "就诊类型 1初诊2复诊3预约4复查",
  18. `matter` varchar(10000) NULL COMMENT "就诊事项",
  19. `org_id` int NULL COMMENT "诊所ID",
  20. `org_name` varchar(500) NULL COMMENT "诊所名称",
  21. `group_id` int NULL COMMENT "集团ID",
  22. `group_name` varchar(500) NULL COMMENT "集团名称",
  23. `apt_doctor_id` int NULL COMMENT "预约医生ID",
  24. `apt_doctor_name` varchar(500) NULL COMMENT "预约医生",
  25. `apt_optometrist_id` int NULL COMMENT "预约视光师ID",
  26. `apt_optometrist_name` varchar(500) NULL COMMENT "预约视光师",
  27. `act_doctor_id` int NULL COMMENT "接诊医生ID",
  28. `act_doctor_name` varchar(500) NULL COMMENT "接诊医生",
  29. `act_optometrist_id` int NULL COMMENT "接诊视光师ID",
  30. `act_optometrist_name` varchar(500) NULL COMMENT "接诊视光师",
  31. `act_assistant_name` varchar(500) NULL COMMENT "接诊医助",
  32. `source1` varchar(10000) NULL COMMENT "来源1",
  33. `source2` varchar(10000) NULL COMMENT "来源2",
  34. `manager_id` int NULL COMMENT "专属医助ID",
  35. `manager_name` varchar(500) NULL COMMENT "专属医助",
  36. `optometrist_id` int NULL COMMENT "专属视光师ID",
  37. `optometrist_name` varchar(500) NULL COMMENT "专属视光师",
  38. `first_opt_name` varchar(500) NULL COMMENT "首诊视光师",
  39. `first_accept_date` date NULL COMMENT "首次接诊日期",
  40. `total_amt` decimal(15,2) NULL DEFAULT "0" COMMENT "金额合计",
  41. `pay_time` datetime NULL COMMENT "收费时间",
  42. `by_user_id` int NULL COMMENT "收银员ID",
  43. `by_user_name` varchar(500) NULL COMMENT "收银员",
  44. `coupon_name` varchar(10000) NULL COMMENT "优惠券",
  45. `add_manager` varchar(10) NULL COMMENT "加客户经理好友",
  46. `sign_wxapp` varchar(10) NULL COMMENT "注册小程序",
  47. `collect_date` date NULL COMMENT "收集日期",
  48. `activity_location` varchar(10000) NULL COMMENT "活动地点",
  49. `extension_user_id` int NULL COMMENT "推广专员ID",
  50. `extension_user_name` varchar(500) NULL COMMENT "推广专员",
  51. `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
  52. INDEX idx_mobile (`mobile`) USING INVERTED,
  53. INDEX idx_patient_id (`patientId`) USING INVERTED,
  54. INDEX idx_org_id (`org_id`) USING INVERTED,
  55. INDEX idx_come_time (`come_time`) USING INVERTED,
  56. INDEX idx_pay_date (`pay_date`) USING INVERTED
  57. ) ENGINE=OLAP
  58. UNIQUE KEY(`id`, `pay_date`)
  59. COMMENT '患者消费统计宽表'
  60. AUTO PARTITION BY RANGE (date_trunc(`pay_date`, 'month'))
  61. ()
  62. DISTRIBUTED BY HASH(`id`) BUCKETS 32
  63. PROPERTIES (
  64. "replication_allocation" = "tag.location.default: 1",
  65. "min_load_replica_num" = "-1",
  66. "is_being_synced" = "false",
  67. "storage_medium" = "hdd",
  68. "storage_format" = "V2",
  69. "inverted_index_storage_format" = "V3",
  70. "enable_unique_key_merge_on_write" = "true",
  71. "light_schema_change" = "true",
  72. "disable_auto_compaction" = "false",
  73. "enable_single_replica_compaction" = "false",
  74. "group_commit_interval_ms" = "10000",
  75. "group_commit_data_bytes" = "134217728",
  76. "enable_mow_light_delete" = "false"
  77. );
  78. CREATE TABLE `fact_cliniclog` (
  79. `id` bigint NOT NULL AUTO_INCREMENT COMMENT "自增ID",
  80. `come_time` datetime NOT NULL COMMENT "接诊时间",
  81. `clinic_id` bigint NOT NULL COMMENT "挂号ID",
  82. `patientId` varchar(500) NULL COMMENT "病例号",
  83. `patient_name` varchar(5000) NULL COMMENT "姓名",
  84. `sex` tinyint NULL COMMENT "性别 1男2女",
  85. `birthday` date NULL COMMENT "出生日期",
  86. `identity` varchar(500) NULL COMMENT "患者身份",
  87. `mobile` varchar(500) NULL COMMENT "患者手机号",
  88. `source1` varchar(10000) NULL COMMENT "患者来源1",
  89. `source2` varchar(10000) NULL COMMENT "患者来源2",
  90. `tag_list` varchar(10000) NULL COMMENT "标签列表",
  91. `patient_type` varchar(500) NULL COMMENT "客户类型",
  92. `visit_type` tinyint NULL COMMENT "接诊类型 1初诊2复诊3预约4复查",
  93. `r_sph` varchar(500) NULL COMMENT "右眼球镜",
  94. `l_sph` varchar(500) NULL COMMENT "左眼球镜",
  95. `r_nakesight` varchar(500) NULL COMMENT "右眼远视力",
  96. `l_nakesight` varchar(500) NULL COMMENT "左眼远视力",
  97. `org_id` int NULL COMMENT "诊所ID",
  98. `org_name` varchar(500) NULL COMMENT "诊所名称",
  99. `appoint_time` datetime NULL COMMENT "预约时间",
  100. `add_user` varchar(500) NULL COMMENT "预约创建人",
  101. `group_id` int NULL COMMENT "集团ID",
  102. `group_name` varchar(500) NULL COMMENT "集团名称",
  103. `matter` varchar(10000) NULL COMMENT "预约就诊事项",
  104. `accept_doctor_id` int NULL COMMENT "接诊医生ID",
  105. `accept_doctor_name` varchar(500) NULL COMMENT "接诊医生",
  106. `accept_optometrist_id` int NULL COMMENT "接诊视光师ID",
  107. `accept_optometrist_name` varchar(500) NULL COMMENT "接诊视光师",
  108. `accept_assistant_id` int NULL COMMENT "医生助理ID",
  109. `accept_assistant_name` varchar(500) NULL COMMENT "医生助理",
  110. `this_come_number` int NULL COMMENT "当前就诊次数",
  111. `inviter` varchar(500) NULL COMMENT "推荐人",
  112. `inviter_phone` varchar(500) NULL COMMENT "推荐人手机号",
  113. `channel` varchar(500) NULL COMMENT "渠道",
  114. `collect_date` date NULL COMMENT "收集日期",
  115. `activity_location` varchar(10000) NULL COMMENT "收集点位",
  116. `extension_user` varchar(500) NULL COMMENT "推广人员",
  117. `extension_user_mobile` varchar(500) NULL COMMENT "推广人员手机号",
  118. `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
  119. INDEX idx_patientId (`patientId`) USING INVERTED,
  120. INDEX idx_mobile (`mobile`) USING INVERTED,
  121. INDEX idx_come_time (`come_time`) USING INVERTED,
  122. INDEX idx_org_id (`org_id`) USING INVERTED
  123. ) ENGINE=OLAP
  124. UNIQUE KEY(`id`, `come_time`)
  125. COMMENT '诊所日志宽表'
  126. AUTO PARTITION BY RANGE (date_trunc(`come_time`, 'month'))
  127. ()
  128. DISTRIBUTED BY HASH(`id`) BUCKETS 32
  129. PROPERTIES (
  130. "replication_allocation" = "tag.location.default: 1",
  131. "min_load_replica_num" = "-1",
  132. "is_being_synced" = "false",
  133. "storage_medium" = "hdd",
  134. "storage_format" = "V2",
  135. "inverted_index_storage_format" = "V3",
  136. "enable_unique_key_merge_on_write" = "true",
  137. "light_schema_change" = "true",
  138. "disable_auto_compaction" = "false",
  139. "enable_single_replica_compaction" = "false",
  140. "group_commit_interval_ms" = "10000",
  141. "group_commit_data_bytes" = "134217728",
  142. "enable_mow_light_delete" = "false"
  143. );
  144. CREATE TABLE `fact_fee_grossprofit` (
  145. `id` bigint NOT NULL AUTO_INCREMENT COMMENT "自增ID",
  146. `sync_date` date NOT NULL COMMENT "同步日期",
  147. `fee_incomedetail_id` int NOT NULL COMMENT "收费明细源表ID",
  148. `patientId` varchar(500) NULL COMMENT "病历号",
  149. `created` datetime NULL COMMENT "创建时间",
  150. `modified` datetime NULL COMMENT "修改时间",
  151. `month` varchar(10) NULL COMMENT "月份",
  152. `org_name` varchar(500) NULL COMMENT "诊所",
  153. `group_id` int NULL COMMENT "集团ID",
  154. `group_name` varchar(500) NULL COMMENT "集团名称",
  155. `pay_time` datetime NULL COMMENT "收/退费时间",
  156. `fee_time` datetime NULL COMMENT "原始购买时间",
  157. `clinic_id` int NULL COMMENT "挂号ID",
  158. `come_time` datetime NULL COMMENT "到诊时间",
  159. `patient_name` varchar(5000) NULL COMMENT "姓名",
  160. `patient_mobile` varchar(500) NULL COMMENT "患者手机",
  161. `patient_identity` varchar(500) NULL COMMENT "身份",
  162. `birthday` date NULL COMMENT "出生日期",
  163. `age` int NULL COMMENT "年龄",
  164. `source1` varchar(500) NULL COMMENT "一级来源",
  165. `source2` varchar(500) NULL COMMENT "二级来源",
  166. `inviter_name` varchar(500) NULL COMMENT "介绍人姓名",
  167. `inviter_phone` varchar(500) NULL COMMENT "介绍人电话",
  168. `first_accept_date` date NULL COMMENT "首诊日期",
  169. `first_distance_day` int NULL COMMENT "首诊距今天数",
  170. `by_user_name` varchar(500) NULL COMMENT "收银员",
  171. `doctor_name` varchar(500) NULL COMMENT "接诊医生",
  172. `opt_name` varchar(500) NULL COMMENT "接诊视光师",
  173. `assistant_name` varchar(500) NULL COMMENT "接诊医助",
  174. `pay_status` varchar(50) NULL COMMENT "交易类型",
  175. `order_no` varchar(500) NULL COMMENT "收费单号",
  176. `pk_code` varchar(500) NULL COMMENT "诊所唯一ID",
  177. `uuid_no` varchar(500) NULL COMMENT "集采唯一ID",
  178. `class_name` varchar(500) NULL COMMENT "项目分类",
  179. `line_name` varchar(500) NULL COMMENT "产品线",
  180. `fee_class` varchar(500) NULL COMMENT "收费分类",
  181. `name` varchar(500) NULL COMMENT "收费项目",
  182. `combo_name` varchar(500) NULL COMMENT "套餐名称",
  183. `flag_memo` varchar(500) NULL COMMENT "收费项目类型",
  184. `price` decimal(11,2) NULL COMMENT "单价",
  185. `num` int NULL COMMENT "数量",
  186. `unit` varchar(500) NULL COMMENT "单位",
  187. `sum_price` decimal(11,2) NULL COMMENT "原价",
  188. `should_amt` decimal(11,2) NULL COMMENT "应收金额",
  189. `cost_amt` decimal(11,2) NULL COMMENT "成本价",
  190. `profit_amt` decimal(11,2) NULL COMMENT "毛利",
  191. `profit_rate` varchar(50) NULL COMMENT "毛利率",
  192. `discount` varchar(50) NULL COMMENT "折扣比例%",
  193. `discount_memo` text NULL COMMENT "折扣原因",
  194. `coupon_name` varchar(10000) NULL COMMENT "优惠卷",
  195. `blq_amt` decimal(11,2) NULL COMMENT "铂林券金额",
  196. `hx_sum_price` decimal(11,2) NULL COMMENT "业绩原价",
  197. `hx_num` int NULL COMMENT "业绩数量",
  198. `hx_amt` decimal(11,2) NULL COMMENT "业绩应收",
  199. `hx_cost_price` decimal(11,2) NULL COMMENT "业绩成本",
  200. `pay_sum_price` decimal(11,2) NULL COMMENT "实际小计",
  201. `pay_num` int NULL COMMENT "实际数量",
  202. `pay_amt` decimal(11,2) NULL COMMENT "实际金额",
  203. `pay_cost_price` decimal(11,2) NULL COMMENT "实际成本",
  204. `pay_profit_amt` decimal(11,2) NULL COMMENT "业绩毛利",
  205. `pay_profit_rate` decimal(11,2) NULL COMMENT "业绩毛利率",
  206. `factory_name` varchar(500) NULL COMMENT "制造商",
  207. `brands_name` varchar(500) NULL COMMENT "品牌",
  208. `variety_name` varchar(500) NULL COMMENT "品种",
  209. `exec_time` datetime NULL COMMENT "交付时间",
  210. `exec_status_name` varchar(50) NULL COMMENT "交付状态",
  211. `order_status_name` varchar(50) NULL COMMENT "订单状态",
  212. `cost_flag` int NULL COMMENT "成本标识",
  213. `update_time` datetime NULL COMMENT "成本更新时间",
  214. `cost_flag2` int NULL COMMENT "成本标识2",
  215. `update_time2` datetime NULL COMMENT "成本更新时间2",
  216. `exec_status` int NULL COMMENT "交付状态",
  217. `flag` int NULL COMMENT "标识",
  218. `per_id` int NULL COMMENT "人员id",
  219. `order_id` int NULL COMMENT "订单id",
  220. `type_flag` int NULL COMMENT "类型标识",
  221. `order_status` int NULL COMMENT "订单状态",
  222. `sell_time` datetime NULL COMMENT "销售时间"
  223. ) ENGINE=OLAP
  224. UNIQUE KEY(`id`, `sync_date`)
  225. COMMENT '销售订单毛利统计宽表'
  226. AUTO PARTITION BY RANGE (date_trunc(`sync_date`, 'month'))
  227. ()
  228. DISTRIBUTED BY HASH(`id`) BUCKETS 32
  229. PROPERTIES (
  230. "replication_allocation" = "tag.location.default: 1",
  231. "min_load_replica_num" = "-1",
  232. "is_being_synced" = "false",
  233. "storage_medium" = "hdd",
  234. "storage_format" = "V2",
  235. "inverted_index_storage_format" = "V3",
  236. "enable_unique_key_merge_on_write" = "true",
  237. "light_schema_change" = "true",
  238. "disable_auto_compaction" = "false",
  239. "enable_single_replica_compaction" = "false",
  240. "group_commit_interval_ms" = "10000",
  241. "group_commit_data_bytes" = "134217728",
  242. "enable_mow_light_delete" = "false"
  243. );