inspect-schema-optimized.sql 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. /* Store inspection and assessment schema. */
  2. SET NAMES utf8mb4;
  3. SET FOREIGN_KEY_CHECKS = 0;
  4. DROP TABLE IF EXISTS `bu_rectification`;
  5. DROP TABLE IF EXISTS `bu_inspect_task_item`;
  6. DROP TABLE IF EXISTS `bu_inspect_task`;
  7. DROP TABLE IF EXISTS `bu_inspect_plan_store`;
  8. DROP TABLE IF EXISTS `bu_inspect_plan_indicator`;
  9. DROP TABLE IF EXISTS `bu_inspect_plan`;
  10. DROP TABLE IF EXISTS `bu_inspect_indicator`;
  11. DROP TABLE IF EXISTS `bu_assess_result`;
  12. CREATE TABLE `bu_inspect_indicator` (
  13. `INDICATOR_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Indicator ID',
  14. `INDICATOR_CODE` varchar(64) NOT NULL COMMENT 'Indicator code',
  15. `INDICATOR_NAME` varchar(100) NOT NULL COMMENT 'Indicator name',
  16. `INDICATOR_TYPE` tinyint(4) NOT NULL DEFAULT '2' COMMENT '1 automatic, 2 manual',
  17. `DATA_SOURCE` varchar(64) DEFAULT NULL COMMENT 'Automatic data source',
  18. `MAX_SCORE` decimal(10,2) NOT NULL DEFAULT '100.00' COMMENT 'Default maximum score',
  19. `PASS_SCORE` decimal(10,2) NOT NULL DEFAULT '60.00' COMMENT 'Default passing score',
  20. `WEIGHT` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT 'Weight percentage',
  21. `SCORE_RULE` text COMMENT 'Scoring rule JSON',
  22. `SORT` int(11) NOT NULL DEFAULT '0' COMMENT 'Display order',
  23. `STATUS` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1 enabled, 0 disabled',
  24. `RMK` varchar(500) DEFAULT NULL COMMENT 'Remark',
  25. `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  26. `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  27. PRIMARY KEY (`INDICATOR_ID`),
  28. UNIQUE KEY `UK_INSPECT_INDICATOR_CODE` (`INDICATOR_CODE`),
  29. KEY `IDX_INSPECT_INDICATOR_TYPE` (`INDICATOR_TYPE`),
  30. KEY `IDX_INSPECT_INDICATOR_STATUS_SORT` (`STATUS`,`SORT`)
  31. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Inspection indicators';
  32. CREATE TABLE `bu_inspect_plan` (
  33. `PLAN_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Inspection plan ID',
  34. `PLAN_NAME` varchar(150) NOT NULL COMMENT 'Plan name',
  35. `PLAN_TYPE` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1 regular, 2 special, 3 temporary',
  36. `CYCLE_TYPE` tinyint(4) NOT NULL DEFAULT '2' COMMENT '1 daily, 2 weekly, 3 monthly, 4 once',
  37. `START_DATE` date NOT NULL COMMENT 'Plan start date',
  38. `END_DATE` date NOT NULL COMMENT 'Plan end date',
  39. `NEXT_EXECUTE_DATE` date DEFAULT NULL COMMENT 'Next execution date',
  40. `INSPECTOR_ID` bigint(20) DEFAULT NULL COMMENT 'Default inspector ID',
  41. `INSPECTOR_NAME` varchar(100) DEFAULT NULL COMMENT 'Default inspector name snapshot',
  42. `AUTO_COLLECT_FLAG` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1 enable automatic collection, 0 disable',
  43. `STORE_COUNT` int(11) NOT NULL DEFAULT '0' COMMENT 'Associated store count snapshot',
  44. `STATUS` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0 draft, 1 published, 2 paused, 3 finished, 4 deleted',
  45. `PUBLISH_DATE` datetime DEFAULT NULL,
  46. `FINISH_DATE` datetime DEFAULT NULL,
  47. `RMK` varchar(500) DEFAULT NULL,
  48. `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  49. `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  50. PRIMARY KEY (`PLAN_ID`),
  51. KEY `IDX_INSPECT_PLAN_STATUS` (`STATUS`),
  52. KEY `IDX_INSPECT_PLAN_CYCLE` (`CYCLE_TYPE`,`NEXT_EXECUTE_DATE`),
  53. KEY `IDX_INSPECT_PLAN_DATE` (`START_DATE`,`END_DATE`),
  54. KEY `IDX_INSPECT_PLAN_INSPECTOR` (`INSPECTOR_ID`)
  55. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Inspection plans';
  56. CREATE TABLE `bu_inspect_plan_indicator` (
  57. `PLAN_INDICATOR_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Plan-indicator relation ID',
  58. `PLAN_ID` bigint(20) NOT NULL COMMENT 'Inspection plan ID',
  59. `INDICATOR_ID` bigint(20) NOT NULL COMMENT 'Indicator ID',
  60. `INDICATOR_NAME` varchar(100) NOT NULL COMMENT 'Indicator name snapshot',
  61. `INDICATOR_TYPE` tinyint(4) NOT NULL COMMENT 'Indicator type snapshot',
  62. `MAX_SCORE` decimal(10,2) NOT NULL DEFAULT '100.00' COMMENT 'Plan-specific maximum score',
  63. `PASS_SCORE` decimal(10,2) NOT NULL DEFAULT '60.00' COMMENT 'Plan-specific passing score',
  64. `WEIGHT` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT 'Weight percentage',
  65. `SCORE_RULE` text COMMENT 'Plan-specific scoring rule snapshot',
  66. `SORT` int(11) NOT NULL DEFAULT '0',
  67. `STATUS` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1 valid, 0 invalid',
  68. `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  69. `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  70. PRIMARY KEY (`PLAN_INDICATOR_ID`),
  71. UNIQUE KEY `UK_INSPECT_PLAN_INDICATOR` (`PLAN_ID`,`INDICATOR_ID`),
  72. KEY `IDX_INSPECT_PLAN_INDICATOR_INDICATOR` (`INDICATOR_ID`),
  73. KEY `IDX_INSPECT_PLAN_INDICATOR_SORT` (`PLAN_ID`,`STATUS`,`SORT`)
  74. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Inspection plan indicators';
  75. CREATE TABLE `bu_inspect_plan_store` (
  76. `PLAN_STORE_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Plan-store relation ID',
  77. `PLAN_ID` bigint(20) NOT NULL,
  78. `STORE_ID` bigint(20) NOT NULL,
  79. `STORE_NAME` varchar(150) DEFAULT NULL COMMENT 'Store name snapshot',
  80. `STORE_BELONGTO` bigint(20) DEFAULT NULL,
  81. `PROVINCE` bigint(20) DEFAULT NULL,
  82. `CITY` bigint(20) DEFAULT NULL,
  83. `STATUS` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1 valid, 0 deleted',
  84. `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  85. PRIMARY KEY (`PLAN_STORE_ID`),
  86. UNIQUE KEY `UK_INSPECT_PLAN_STORE` (`PLAN_ID`,`STORE_ID`),
  87. KEY `IDX_INSPECT_PLAN_STORE_STORE` (`STORE_ID`),
  88. KEY `IDX_INSPECT_PLAN_STORE_AREA` (`STORE_BELONGTO`,`PROVINCE`,`CITY`)
  89. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Inspection plan stores';
  90. CREATE TABLE `bu_inspect_task` (
  91. `TASK_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Inspection task ID',
  92. `PLAN_ID` bigint(20) NOT NULL,
  93. `PLAN_NAME` varchar(150) DEFAULT NULL COMMENT 'Plan name snapshot',
  94. `STORE_ID` bigint(20) NOT NULL,
  95. `STORE_NAME` varchar(150) DEFAULT NULL COMMENT 'Store name snapshot',
  96. `TASK_DATE` date NOT NULL COMMENT 'Task date',
  97. `INSPECTOR_ID` bigint(20) DEFAULT NULL COMMENT 'Actual inspector ID',
  98. `INSPECTOR_NAME` varchar(100) DEFAULT NULL COMMENT 'Actual inspector name snapshot',
  99. `TOTAL_SCORE` decimal(10,2) DEFAULT NULL COMMENT 'Total score',
  100. `MAX_SCORE` decimal(10,2) DEFAULT NULL COMMENT 'Total maximum score',
  101. `PASS_SCORE` decimal(10,2) DEFAULT NULL COMMENT 'Total passing score',
  102. `PASS_FLAG` tinyint(4) DEFAULT NULL COMMENT '1 passed, 0 failed',
  103. `UNPASS_ITEM_COUNT` int(11) NOT NULL DEFAULT '0' COMMENT 'Failed item count',
  104. `START_DATE` datetime DEFAULT NULL COMMENT 'Execution start time',
  105. `SUBMIT_DATE` datetime DEFAULT NULL COMMENT 'Submission time',
  106. `CANCEL_DATE` datetime DEFAULT NULL COMMENT 'Cancellation time',
  107. `STATUS` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1 pending, 2 executing, 3 finished, 4 cancelled',
  108. `RMK` varchar(500) DEFAULT NULL COMMENT 'Task remark',
  109. `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  110. `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  111. PRIMARY KEY (`TASK_ID`),
  112. UNIQUE KEY `UK_INSPECT_TASK_PLAN_STORE_DATE` (`PLAN_ID`,`STORE_ID`,`TASK_DATE`),
  113. KEY `IDX_INSPECT_TASK_STORE_DATE` (`STORE_ID`,`TASK_DATE`),
  114. KEY `IDX_INSPECT_TASK_STATUS_DATE` (`STATUS`,`TASK_DATE`),
  115. KEY `IDX_INSPECT_TASK_INSPECTOR` (`INSPECTOR_ID`,`STATUS`)
  116. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Inspection tasks';
  117. CREATE TABLE `bu_inspect_task_item` (
  118. `TASK_ITEM_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Task score item ID',
  119. `TASK_ID` bigint(20) NOT NULL,
  120. `PLAN_ID` bigint(20) NOT NULL,
  121. `STORE_ID` bigint(20) NOT NULL,
  122. `PLAN_INDICATOR_ID` bigint(20) NOT NULL DEFAULT '0' COMMENT '0 means plan-level score',
  123. `INDICATOR_ID` bigint(20) DEFAULT NULL COMMENT 'Indicator ID; NULL for plan-level score',
  124. `SCORE_LEVEL` tinyint(4) NOT NULL DEFAULT '2' COMMENT '1 plan level, 2 indicator level',
  125. `INDICATOR_CODE` varchar(64) DEFAULT NULL COMMENT 'Indicator code snapshot',
  126. `INDICATOR_NAME` varchar(100) DEFAULT NULL COMMENT 'Indicator name snapshot',
  127. `INDICATOR_TYPE` tinyint(4) DEFAULT NULL,
  128. `DATA_SOURCE` varchar(64) DEFAULT NULL,
  129. `WEIGHT` decimal(10,2) NOT NULL DEFAULT '0.00',
  130. `MAX_SCORE` decimal(10,2) NOT NULL DEFAULT '100.00',
  131. `PASS_SCORE` decimal(10,2) NOT NULL DEFAULT '60.00',
  132. `RAW_VALUE` decimal(12,4) DEFAULT NULL COMMENT 'Automatic collection raw value',
  133. `RAW_VALUE_TEXT` varchar(100) DEFAULT NULL COMMENT 'Raw value display text',
  134. `SCORE` decimal(10,2) DEFAULT NULL,
  135. `WEIGHTED_SCORE` decimal(10,2) DEFAULT NULL,
  136. `PASS_FLAG` tinyint(4) DEFAULT NULL COMMENT '1 passed, 0 failed',
  137. `PICTURE_URLS` varchar(2000) DEFAULT NULL,
  138. `RMK` varchar(1000) DEFAULT NULL,
  139. `SORT` int(11) NOT NULL DEFAULT '0',
  140. `STATUS` tinyint(4) NOT NULL DEFAULT '1',
  141. `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  142. `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  143. PRIMARY KEY (`TASK_ITEM_ID`),
  144. UNIQUE KEY `UK_INSPECT_TASK_ITEM` (`TASK_ID`,`PLAN_INDICATOR_ID`),
  145. KEY `IDX_INSPECT_TASK_ITEM_STORE` (`STORE_ID`),
  146. KEY `IDX_INSPECT_TASK_ITEM_INDICATOR` (`INDICATOR_ID`),
  147. KEY `IDX_INSPECT_TASK_ITEM_PASS` (`PASS_FLAG`)
  148. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Inspection task score items';
  149. CREATE TABLE `bu_rectification` (
  150. `RECT_ID` bigint(20) NOT NULL AUTO_INCREMENT,
  151. `TASK_ID` bigint(20) NOT NULL,
  152. `TASK_ITEM_ID` bigint(20) NOT NULL,
  153. `PLAN_ID` bigint(20) DEFAULT NULL,
  154. `STORE_ID` bigint(20) NOT NULL,
  155. `STORE_NAME` varchar(150) DEFAULT NULL,
  156. `INDICATOR_ID` bigint(20) DEFAULT NULL COMMENT 'NULL for plan-level rectification',
  157. `INDICATOR_NAME` varchar(100) DEFAULT NULL COMMENT 'Indicator name snapshot',
  158. `RECT_ROUND` int(11) NOT NULL DEFAULT '1',
  159. `PARENT_RECT_ID` bigint(20) DEFAULT NULL,
  160. `INSPECT_SCORE` decimal(10,2) DEFAULT NULL,
  161. `PASS_SCORE` decimal(10,2) DEFAULT NULL,
  162. `NOTICE_CONTENT` varchar(1000) DEFAULT NULL,
  163. `DEADLINE_DATE` datetime NOT NULL,
  164. `START_DATE` datetime DEFAULT NULL,
  165. `FEEDBACK_CONTENT` varchar(1000) DEFAULT NULL,
  166. `FEEDBACK_PICTURES` varchar(2000) DEFAULT NULL,
  167. `FEEDBACK_DATE` datetime DEFAULT NULL,
  168. `RECHECK_SCORE` decimal(10,2) DEFAULT NULL,
  169. `RECHECK_RESULT` tinyint(4) DEFAULT NULL,
  170. `RECHECK_PICTURES` varchar(2000) DEFAULT NULL,
  171. `RECHECK_RMK` varchar(1000) DEFAULT NULL,
  172. `RECHECK_USER_ID` bigint(20) DEFAULT NULL,
  173. `RECHECK_USER_NAME` varchar(100) DEFAULT NULL,
  174. `RECHECK_DATE` datetime DEFAULT NULL,
  175. `URGE_COUNT` int(11) NOT NULL DEFAULT '0',
  176. `LAST_URGE_DATE` datetime DEFAULT NULL,
  177. `STATUS` tinyint(4) NOT NULL DEFAULT '1',
  178. `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  179. `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  180. PRIMARY KEY (`RECT_ID`),
  181. KEY `IDX_RECT_TASK_ITEM` (`TASK_ITEM_ID`),
  182. KEY `IDX_RECT_STORE_STATUS` (`STORE_ID`,`STATUS`),
  183. KEY `IDX_RECT_INDICATOR` (`INDICATOR_ID`),
  184. KEY `IDX_RECT_DEADLINE` (`STATUS`,`DEADLINE_DATE`),
  185. KEY `IDX_RECT_PARENT` (`PARENT_RECT_ID`)
  186. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Inspection rectification records';
  187. CREATE TABLE `bu_assess_result` (
  188. `ASSESS_RESULT_ID` bigint(20) NOT NULL AUTO_INCREMENT,
  189. `STORE_ID` bigint(20) NOT NULL,
  190. `STORE_NAME` varchar(150) DEFAULT NULL,
  191. `STORE_BELONGTO` bigint(20) DEFAULT NULL,
  192. `PROVINCE` bigint(20) DEFAULT NULL,
  193. `CITY` bigint(20) DEFAULT NULL,
  194. `PERIOD_TYPE` tinyint(4) NOT NULL COMMENT '1 weekly, 2 monthly',
  195. `PERIOD_CODE` varchar(20) NOT NULL,
  196. `PERIOD_START_DATE` date NOT NULL,
  197. `PERIOD_END_DATE` date NOT NULL,
  198. `INSPECT_SCORE` decimal(10,2) NOT NULL DEFAULT '0.00',
  199. `AUTO_SCORE` decimal(10,2) NOT NULL DEFAULT '0.00',
  200. `TOTAL_SCORE` decimal(10,2) NOT NULL DEFAULT '0.00',
  201. `ASSESS_LEVEL` tinyint(4) NOT NULL DEFAULT '4',
  202. `RANK_NO` int(11) DEFAULT NULL,
  203. `TASK_COUNT` int(11) NOT NULL DEFAULT '0',
  204. `FINISH_TASK_COUNT` int(11) NOT NULL DEFAULT '0',
  205. `RECT_COUNT` int(11) NOT NULL DEFAULT '0',
  206. `OVERTIME_RECT_COUNT` int(11) NOT NULL DEFAULT '0',
  207. `SUMMARY_DATE` datetime NOT NULL,
  208. `STATUS` tinyint(4) NOT NULL DEFAULT '1',
  209. `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  210. `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  211. PRIMARY KEY (`ASSESS_RESULT_ID`),
  212. UNIQUE KEY `UK_ASSESS_STORE_PERIOD` (`STORE_ID`,`PERIOD_TYPE`,`PERIOD_CODE`),
  213. KEY `IDX_ASSESS_PERIOD_RANK` (`PERIOD_TYPE`,`PERIOD_CODE`,`RANK_NO`),
  214. KEY `IDX_ASSESS_AREA` (`STORE_BELONGTO`,`PROVINCE`,`CITY`),
  215. KEY `IDX_ASSESS_LEVEL` (`ASSESS_LEVEL`)
  216. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Store assessment results';
  217. SET FOREIGN_KEY_CHECKS = 1;