init.sql 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. CREATE DATABASE IF NOT EXISTS recycle DEFAULT CHARSET utf8mb4;
  2. USE recycle;
  3. /* ================= 分类 ================= */
  4. CREATE TABLE t_chx_category (
  5. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  6. category_id BIGINT NOT NULL,
  7. name VARCHAR(60) NOT NULL,
  8. create_time DATETIME DEFAULT CURRENT_TIMESTAMP
  9. );
  10. /* ================= 机型 ================= */
  11. CREATE TABLE t_machine (
  12. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  13. code VARCHAR(32),
  14. type_id BIGINT,
  15. type_name VARCHAR(100),
  16. brand_id BIGINT,
  17. brand_name VARCHAR(100),
  18. machine_id BIGINT,
  19. name VARCHAR(100),
  20. series_id BIGINT NULL COMMENT '系列ID(Mate / P / nova 等)',
  21. series_name VARCHAR(100) NULL COMMENT '系列名称',
  22. shrink_name VARCHAR(100),
  23. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  24. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  25. );
  26. /* ================= 机型模板 ================= */
  27. CREATE TABLE machine_temp (
  28. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  29. machine_id BIGINT,
  30. temp_type VARCHAR(32) DEFAULT '00',
  31. estimate_packet TEXT,
  32. base_template_id BIGINT NULL,
  33. is_custom TINYINT DEFAULT 0,
  34. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  35. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  36. );
  37. /* ================= 设备情况项 ================= */
  38. CREATE TABLE release_option (
  39. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  40. step_id BIGINT COMMENT '1成色情况 3功能情况',
  41. step_name VARCHAR(50),
  42. option_key_id BIGINT,
  43. option_key_name VARCHAR(60),
  44. option_id BIGINT,
  45. option_name VARCHAR(60),
  46. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  47. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  48. );
  49. /*
  50. ================= step1设备选项 =================
  51. drop base_template_id BIGINT NOT NULL COMMENT '基础模板ID:99181 / 99198 / 99197',
  52. */
  53. CREATE TABLE step1_attr (
  54. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  55. step TINYINT DEFAULT 1 COMMENT '固定为 step=1',
  56. attr_key VARCHAR(64) NOT NULL COMMENT 'capacity / color / channel / warranty',
  57. attr_name VARCHAR(64) NOT NULL COMMENT '容量 / 颜色 / 购买渠道 / 保修',
  58. value_id BIGINT NOT NULL COMMENT '选项值ID(用于JSON)',
  59. value_name VARCHAR(64) NOT NULL COMMENT '选项值名称',
  60. is_default TINYINT DEFAULT 0 COMMENT '是否默认',
  61. is_normal TINYINT DEFAULT 1 COMMENT '是否正常值',
  62. required TINYINT DEFAULT 1 COMMENT '是否必填',
  63. is_multi TINYINT DEFAULT 0 COMMENT '是否多选',
  64. sort_order INT DEFAULT 0,
  65. is_base_price_attr TINYINT DEFAULT 0 COMMENT '是否用于选择基准价',
  66. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  67. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  68. KEY idx_attr (attr_key)
  69. ) COMMENT='step1 模板属性表';
  70. /* ================= 基础价格 ================= */
  71. CREATE TABLE machine_base_price (
  72. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  73. machine_id BIGINT,
  74. capacity VARCHAR(32),
  75. base_price DECIMAL(10,2),
  76. UNIQUE KEY uk_machine_capacity (machine_id, capacity)
  77. );
  78. /* ================= 扣减系数 ================= */
  79. CREATE TABLE price_option_factor (
  80. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  81. base_template_id BIGINT NOT NULL COMMENT '所属基础模板',
  82. option_id BIGINT,
  83. factor DECIMAL(5,4) DEFAULT 1.0000,
  84. absolute_deduct DECIMAL(10,2) DEFAULT 0,
  85. group_code VARCHAR(32) NULL COMMENT '损伤分组,如 screen_display / touch / repair / camera',
  86. severity_level TINYINT DEFAULT 1 COMMENT '严重等级:1轻 2中 3重(用于排序)',
  87. sub_weight DECIMAL(5,2) DEFAULT 0.30 COMMENT '作为次瑕疵时的折扣系数',
  88. is_special TINYINT DEFAULT 0 COMMENT '是否特殊选项(用于特殊规则组)',
  89. repair_level TINYINT DEFAULT 0 COMMENT '维修分级:0非维修 1次要 2重要 3核心',
  90. priority INT DEFAULT 0 COMMENT '覆盖与排序优先级',
  91. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  92. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  93. UNIQUE KEY uk_tpl_option (base_template_id, option_id)
  94. );
  95. -- ALTER TABLE price_option_factor
  96. -- ADD COLUMN group_code VARCHAR(32) NULL COMMENT '损伤分组,如 screen_display / touch / repair / camera',
  97. -- ADD COLUMN severity_level TINYINT DEFAULT 1 COMMENT '严重等级:1轻 2中 3重(用于排序)',
  98. -- ADD COLUMN sub_weight DECIMAL(5,2) DEFAULT 0.30 COMMENT '作为次瑕疵时的折扣系数',
  99. -- ADD COLUMN is_special TINYINT DEFAULT 0 COMMENT '是否特殊选项(用于特殊规则组)',
  100. -- ADD COLUMN repair_level TINYINT DEFAULT 0 COMMENT '维修分级:0非维修 1次要 2重要 3核心',
  101. -- ADD COLUMN priority INT DEFAULT 0 COMMENT '覆盖与排序优先级';
  102. -- ALTER TABLE price_option_factor
  103. -- ADD COLUMN base_template_id BIGINT NOT NULL COMMENT '所属基础模板';
  104. CREATE TABLE price_damage_group (
  105. group_code VARCHAR(32) PRIMARY KEY,
  106. group_name VARCHAR(64),
  107. cap_ratio DECIMAL(5,2) DEFAULT 1.15 COMMENT '组封顶系数(主瑕疵×ratio)',
  108. group_weight DECIMAL(5,2) DEFAULT 1.00 COMMENT '整组权重'
  109. );
  110. CREATE TABLE price_group_override (
  111. trigger_group_code VARCHAR(32),
  112. target_group_code VARCHAR(32),
  113. override_type VARCHAR(16) COMMENT 'skip / weight',
  114. override_value DECIMAL(5,2) NULL,
  115. PRIMARY KEY (trigger_group_code, target_group_code)
  116. );
  117. /* ================= 调节系数 ================= */
  118. CREATE TABLE price_adjust_factor (
  119. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  120. level VARCHAR(32),
  121. ref_id BIGINT,
  122. factor DECIMAL(5,4) DEFAULT 1.0000,
  123. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  124. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  125. );
  126. /* ================ 基础模板 ================= */
  127. CREATE TABLE base_estimate_template (
  128. id BIGINT PRIMARY KEY COMMENT '99181 / 99198 / 99197',
  129. name VARCHAR(64) NOT NULL,
  130. template_json JSON NOT NULL,
  131. template_version INT DEFAULT 1,
  132. remark VARCHAR(255),
  133. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  134. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  135. );
  136. /* ================= 估价版本 ================= */
  137. CREATE TABLE estimate_version (
  138. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  139. machine_id BIGINT,
  140. version_no VARCHAR(32),
  141. content TEXT,
  142. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  143. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  144. );
  145. /* ================= 估价记录 ================= */
  146. CREATE TABLE estimate_record (
  147. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  148. machine_id BIGINT,
  149. capacity VARCHAR(32),
  150. option_ids TEXT,
  151. final_price DECIMAL(10,2),
  152. version_no VARCHAR(32),
  153. create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
  154. update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  155. );