inspect-test-data.sql 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. -- 门店巡检与考核 测试数据(严格遵循 PRD 业务规则,仅使用实际表存在的列)
  2. -- 运行库:eduepos。可重复执行(先清理同名/同期测试数据再写入)。
  3. -- 规则引用:I02-R01 结束>开始;I02-R02/R03 至少1指标1门店;I02-R04 发布时开始不早于当前;
  4. -- I03-R04 加权总分=Σ(得分×权重/100);I03-R05 及格=总分≥及格线;
  5. -- I04-R02 截止=提交+7天;I04-R03 复检不通过生成下一轮;
  6. -- I05-R01 综合=巡检×0.6+自动×0.4;I05-R03 等级 优秀≥90/良好≥80/合格≥60/不合格<60。
  7. SET NAMES utf8mb4;
  8. -- ============ 0. 清理既有测试数据(幂等) ============
  9. DELETE FROM bu_inspect_task_item
  10. WHERE TASK_ID IN (SELECT TASK_ID FROM bu_inspect_task
  11. WHERE PLAN_ID IN (SELECT PLAN_ID FROM bu_inspect_plan WHERE PLAN_NAME IN ('2026年8月食品安全常规巡检','暑期卫生专项巡检(草稿)')));
  12. DELETE FROM bu_rectification
  13. WHERE PLAN_ID IN (SELECT PLAN_ID FROM bu_inspect_plan WHERE PLAN_NAME IN ('2026年8月食品安全常规巡检','暑期卫生专项巡检(草稿)'));
  14. DELETE FROM bu_inspect_task
  15. WHERE PLAN_ID IN (SELECT PLAN_ID FROM bu_inspect_plan WHERE PLAN_NAME IN ('2026年8月食品安全常规巡检','暑期卫生专项巡检(草稿)'));
  16. DELETE FROM bu_inspect_plan_store
  17. WHERE PLAN_ID IN (SELECT PLAN_ID FROM bu_inspect_plan WHERE PLAN_NAME IN ('2026年8月食品安全常规巡检','暑期卫生专项巡检(草稿)'));
  18. DELETE FROM bu_inspect_plan_indicator
  19. WHERE PLAN_ID IN (SELECT PLAN_ID FROM bu_inspect_plan WHERE PLAN_NAME IN ('2026年8月食品安全常规巡检','暑期卫生专项巡检(草稿)'));
  20. DELETE FROM bu_inspect_plan WHERE PLAN_NAME IN ('2026年8月食品安全常规巡检','暑期卫生专项巡检(草稿)');
  21. DELETE FROM bu_assess_result WHERE PERIOD_CODE = '2026-08';
  22. -- ============ 1. 已发布计划:2026年8月食品安全常规巡检 ============
  23. -- 常规巡检(1)、每周(2)、08-01~09-30、下次执行08-22、3家门店、已发布(1)
  24. INSERT INTO bu_inspect_plan
  25. (PLAN_NAME, PLAN_TYPE, CYCLE_TYPE, START_DATE, END_DATE, NEXT_EXECUTE_DATE,
  26. INSPECTOR_ID, INSPECTOR_NAME, AUTO_COLLECT_FLAG, STORE_COUNT, STATUS,
  27. PUBLISH_DATE, FINISH_DATE, RMK, CREATE_DATE)
  28. VALUES
  29. ('2026年8月食品安全常规巡检', 1, 2, '2026-08-01', '2026-09-30', '2026-08-22',
  30. 1, '管理员', 1, 3, 1,
  31. '2026-07-31 09:00:00', NULL, '每周常规巡检,覆盖7项考核指标、3家门店', NOW());
  32. SET @plan1 = LAST_INSERT_ID();
  33. -- ============ 2. 草稿计划:暑期卫生专项巡检(未发布,权重未达100%符合草稿状态) ============
  34. INSERT INTO bu_inspect_plan
  35. (PLAN_NAME, PLAN_TYPE, CYCLE_TYPE, START_DATE, END_DATE, NEXT_EXECUTE_DATE,
  36. INSPECTOR_ID, INSPECTOR_NAME, AUTO_COLLECT_FLAG, STORE_COUNT, STATUS,
  37. PUBLISH_DATE, FINISH_DATE, RMK, CREATE_DATE)
  38. VALUES
  39. ('暑期卫生专项巡检(草稿)', 2, 3, '2026-08-15', '2026-09-15', NULL,
  40. 1, '管理员', 1, 2, 0,
  41. NULL, NULL, '草稿计划:仅勾选人工巡检指标,权重合计30%(未达发布要求100%)', NOW());
  42. SET @plan2 = LAST_INSERT_ID();
  43. -- ============ 3. 计划关联指标 ============
  44. -- I02-R02:至少1个指标。计划1关联全部7项(权重和=100,满足发布校验);计划2仅3项人工指标
  45. INSERT INTO bu_inspect_plan_indicator
  46. (PLAN_ID, INDICATOR_ID, INDICATOR_NAME, INDICATOR_TYPE, MAX_SCORE, PASS_SCORE, WEIGHT, SCORE_RULE, SORT, STATUS, CREATE_DATE)
  47. SELECT @plan1, INDICATOR_ID, INDICATOR_NAME, INDICATOR_TYPE, MAX_SCORE, PASS_SCORE, WEIGHT, SCORE_RULE, SORT, 1, NOW()
  48. FROM bu_inspect_indicator WHERE STATUS = 1;
  49. INSERT INTO bu_inspect_plan_indicator
  50. (PLAN_ID, INDICATOR_ID, INDICATOR_NAME, INDICATOR_TYPE, MAX_SCORE, PASS_SCORE, WEIGHT, SCORE_RULE, SORT, STATUS, CREATE_DATE)
  51. SELECT @plan2, INDICATOR_ID, INDICATOR_NAME, INDICATOR_TYPE, MAX_SCORE, PASS_SCORE, WEIGHT, SCORE_RULE, SORT, 1, NOW()
  52. FROM bu_inspect_indicator WHERE INDICATOR_CODE IN ('HYGIENE','SERVICE','PACKAGING');
  53. -- ============ 4. 计划关联门店(I02-R03:至少1家门店) ============
  54. INSERT INTO bu_inspect_plan_store (PLAN_ID, STORE_ID, STORE_NAME, STORE_BELONGTO, PROVINCE, CITY, STATUS, CREATE_DATE)
  55. SELECT @plan1, STORE_ID, STORE_NAME, STORE_BELONGTO, PROVINCE, CITY, 1, NOW()
  56. FROM bu_store WHERE STORE_ID IN (1,2,3);
  57. INSERT INTO bu_inspect_plan_store (PLAN_ID, STORE_ID, STORE_NAME, STORE_BELONGTO, PROVINCE, CITY, STATUS, CREATE_DATE)
  58. SELECT @plan2, STORE_ID, STORE_NAME, STORE_BELONGTO, PROVINCE, CITY, 1, NOW()
  59. FROM bu_store WHERE STORE_ID IN (1,2);
  60. -- ============ 5. 生成巡检任务(I03-R01:每个门店每个执行日期一条任务) ============
  61. -- 任务日期 2026-08-01(计划首个执行日)
  62. -- T1 门店1 特色美食店666:已提交、不及格(卫生/服务 2项不达标)
  63. INSERT INTO bu_inspect_task
  64. (PLAN_ID, PLAN_NAME, STORE_ID, STORE_NAME, TASK_DATE, INSPECTOR_ID, INSPECTOR_NAME,
  65. TOTAL_SCORE, MAX_SCORE, PASS_SCORE, PASS_FLAG, UNPASS_ITEM_COUNT,
  66. START_DATE, SUBMIT_DATE, CANCEL_DATE, STATUS, RMK, CREATE_DATE)
  67. VALUES
  68. (@plan1, '2026年8月食品安全常规巡检', 1, '特色美食店666', '2026-08-01', 1, '管理员',
  69. 72.25, 100.00, 60.00, 0, 2,
  70. '2026-08-01 09:30:00', '2026-08-01 11:00:00', NULL, 3, '卫生、服务未达标,已自动生成整改', NOW());
  71. SET @t1 = LAST_INSERT_ID();
  72. -- T2 门店2 水饺店铺:已提交、不及格(卫生/服务/包装 3项不达标)
  73. INSERT INTO bu_inspect_task
  74. (PLAN_ID, PLAN_NAME, STORE_ID, STORE_NAME, TASK_DATE, INSPECTOR_ID, INSPECTOR_NAME,
  75. TOTAL_SCORE, MAX_SCORE, PASS_SCORE, PASS_FLAG, UNPASS_ITEM_COUNT,
  76. START_DATE, SUBMIT_DATE, CANCEL_DATE, STATUS, RMK, CREATE_DATE)
  77. VALUES
  78. (@plan1, '2026年8月食品安全常规巡检', 2, '水饺店铺', '2026-08-01', 1, '管理员',
  79. 70.00, 100.00, 60.00, 0, 3,
  80. '2026-08-01 09:40:00', '2026-08-01 11:20:00', NULL, 3, '卫生、服务、包装未达标,已自动生成整改', NOW());
  81. SET @t2 = LAST_INSERT_ID();
  82. -- T3 门店3 烤肉拌饭:已提交、及格(全部达标)
  83. INSERT INTO bu_inspect_task
  84. (PLAN_ID, PLAN_NAME, STORE_ID, STORE_NAME, TASK_DATE, INSPECTOR_ID, INSPECTOR_NAME,
  85. TOTAL_SCORE, MAX_SCORE, PASS_SCORE, PASS_FLAG, UNPASS_ITEM_COUNT,
  86. START_DATE, SUBMIT_DATE, CANCEL_DATE, STATUS, RMK, CREATE_DATE)
  87. VALUES
  88. (@plan1, '2026年8月食品安全常规巡检', 3, '烤肉拌饭', '2026-08-01', 1, '管理员',
  89. 81.25, 100.00, 60.00, 1, 0,
  90. '2026-08-01 10:00:00', '2026-08-01 11:40:00', NULL, 3, '全部指标达标', NOW());
  91. SET @t3 = LAST_INSERT_ID();
  92. -- ============ 6. 任务评分明细(I03-R02 自动采集预填;I03-R03 人工打分;I03-R04 加权) ============
  93. -- T1 门店1:自动项全80分;人工 卫生50(不达标) 服务45(不达标) 包装85
  94. INSERT INTO bu_inspect_task_item
  95. (TASK_ID, PLAN_ID, STORE_ID, PLAN_INDICATOR_ID, INDICATOR_ID, SCORE_LEVEL,
  96. INDICATOR_CODE, INDICATOR_NAME, INDICATOR_TYPE, DATA_SOURCE,
  97. WEIGHT, MAX_SCORE, PASS_SCORE, RAW_VALUE, RAW_VALUE_TEXT, SCORE, WEIGHTED_SCORE, PASS_FLAG,
  98. PICTURE_URLS, RMK, SORT, STATUS, CREATE_DATE)
  99. SELECT
  100. @t1, @plan1, 1, pi.PLAN_INDICATOR_ID, pi.INDICATOR_ID, 2,
  101. i.INDICATOR_CODE, i.INDICATOR_NAME, i.INDICATOR_TYPE, i.DATA_SOURCE,
  102. pi.WEIGHT, pi.MAX_SCORE, pi.PASS_SCORE,
  103. CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN 15 WHEN 'GOOD_RATE' THEN 92 WHEN 'REJECT_RATE' THEN 1.2 WHEN 'OVERTIME_RATE' THEN 2.5 END,
  104. CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN '15分钟' WHEN 'GOOD_RATE' THEN '92%' WHEN 'REJECT_RATE' THEN '1.2%' WHEN 'OVERTIME_RATE' THEN '2.5%' END,
  105. CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN 80 WHEN 'GOOD_RATE' THEN 80 WHEN 'REJECT_RATE' THEN 80 WHEN 'OVERTIME_RATE' THEN 80
  106. WHEN 'HYGIENE' THEN 50 WHEN 'SERVICE' THEN 45 WHEN 'PACKAGING' THEN 85 END,
  107. ROUND(CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN 80 WHEN 'GOOD_RATE' THEN 80 WHEN 'REJECT_RATE' THEN 80 WHEN 'OVERTIME_RATE' THEN 80
  108. WHEN 'HYGIENE' THEN 50 WHEN 'SERVICE' THEN 45 WHEN 'PACKAGING' THEN 85 END * pi.WEIGHT / 100, 2),
  109. CASE WHEN (CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN 80 WHEN 'GOOD_RATE' THEN 80 WHEN 'REJECT_RATE' THEN 80 WHEN 'OVERTIME_RATE' THEN 80
  110. WHEN 'HYGIENE' THEN 50 WHEN 'SERVICE' THEN 45 WHEN 'PACKAGING' THEN 85 END) >= pi.PASS_SCORE THEN 1 ELSE 0 END,
  111. NULL,
  112. CASE i.INDICATOR_CODE WHEN 'HYGIENE' THEN '厨房地面有油污' WHEN 'SERVICE' THEN '服务态度需提升' WHEN 'PACKAGING' THEN '包装不规范' END,
  113. pi.SORT, 1, NOW()
  114. FROM bu_inspect_plan_indicator pi
  115. JOIN bu_inspect_indicator i ON i.INDICATOR_ID = pi.INDICATOR_ID
  116. WHERE pi.PLAN_ID = @plan1 AND pi.STATUS = 1;
  117. -- T2 门店2:自动项全80分;人工 卫生50(不达标) 服务45(不达标) 包装40(不达标)
  118. INSERT INTO bu_inspect_task_item
  119. (TASK_ID, PLAN_ID, STORE_ID, PLAN_INDICATOR_ID, INDICATOR_ID, SCORE_LEVEL,
  120. INDICATOR_CODE, INDICATOR_NAME, INDICATOR_TYPE, DATA_SOURCE,
  121. WEIGHT, MAX_SCORE, PASS_SCORE, RAW_VALUE, RAW_VALUE_TEXT, SCORE, WEIGHTED_SCORE, PASS_FLAG,
  122. PICTURE_URLS, RMK, SORT, STATUS, CREATE_DATE)
  123. SELECT
  124. @t2, @plan1, 2, pi.PLAN_INDICATOR_ID, pi.INDICATOR_ID, 2,
  125. i.INDICATOR_CODE, i.INDICATOR_NAME, i.INDICATOR_TYPE, i.DATA_SOURCE,
  126. pi.WEIGHT, pi.MAX_SCORE, pi.PASS_SCORE,
  127. CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN 15 WHEN 'GOOD_RATE' THEN 92 WHEN 'REJECT_RATE' THEN 1.2 WHEN 'OVERTIME_RATE' THEN 2.5 END,
  128. CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN '15分钟' WHEN 'GOOD_RATE' THEN '92%' WHEN 'REJECT_RATE' THEN '1.2%' WHEN 'OVERTIME_RATE' THEN '2.5%' END,
  129. CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN 80 WHEN 'GOOD_RATE' THEN 80 WHEN 'REJECT_RATE' THEN 80 WHEN 'OVERTIME_RATE' THEN 80
  130. WHEN 'HYGIENE' THEN 50 WHEN 'SERVICE' THEN 45 WHEN 'PACKAGING' THEN 40 END,
  131. ROUND(CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN 80 WHEN 'GOOD_RATE' THEN 80 WHEN 'REJECT_RATE' THEN 80 WHEN 'OVERTIME_RATE' THEN 80
  132. WHEN 'HYGIENE' THEN 50 WHEN 'SERVICE' THEN 45 WHEN 'PACKAGING' THEN 40 END * pi.WEIGHT / 100, 2),
  133. CASE WHEN (CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN 80 WHEN 'GOOD_RATE' THEN 80 WHEN 'REJECT_RATE' THEN 80 WHEN 'OVERTIME_RATE' THEN 80
  134. WHEN 'HYGIENE' THEN 50 WHEN 'SERVICE' THEN 45 WHEN 'PACKAGING' THEN 40 END) >= pi.PASS_SCORE THEN 1 ELSE 0 END,
  135. NULL,
  136. CASE i.INDICATOR_CODE WHEN 'HYGIENE' THEN '食材未分类存放' WHEN 'SERVICE' THEN '态度冷淡' WHEN 'PACKAGING' THEN '外卖包装破损' END,
  137. pi.SORT, 1, NOW()
  138. FROM bu_inspect_plan_indicator pi
  139. JOIN bu_inspect_indicator i ON i.INDICATOR_ID = pi.INDICATOR_ID
  140. WHERE pi.PLAN_ID = @plan1 AND pi.STATUS = 1;
  141. -- T3 门店3:自动项全80分;人工 卫生85 服务80 包装90(全部及格)
  142. INSERT INTO bu_inspect_task_item
  143. (TASK_ID, PLAN_ID, STORE_ID, PLAN_INDICATOR_ID, INDICATOR_ID, SCORE_LEVEL,
  144. INDICATOR_CODE, INDICATOR_NAME, INDICATOR_TYPE, DATA_SOURCE,
  145. WEIGHT, MAX_SCORE, PASS_SCORE, RAW_VALUE, RAW_VALUE_TEXT, SCORE, WEIGHTED_SCORE, PASS_FLAG,
  146. PICTURE_URLS, RMK, SORT, STATUS, CREATE_DATE)
  147. SELECT
  148. @t3, @plan1, 3, pi.PLAN_INDICATOR_ID, pi.INDICATOR_ID, 2,
  149. i.INDICATOR_CODE, i.INDICATOR_NAME, i.INDICATOR_TYPE, i.DATA_SOURCE,
  150. pi.WEIGHT, pi.MAX_SCORE, pi.PASS_SCORE,
  151. CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN 15 WHEN 'GOOD_RATE' THEN 92 WHEN 'REJECT_RATE' THEN 1.2 WHEN 'OVERTIME_RATE' THEN 2.5 END,
  152. CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN '15分钟' WHEN 'GOOD_RATE' THEN '92%' WHEN 'REJECT_RATE' THEN '1.2%' WHEN 'OVERTIME_RATE' THEN '2.5%' END,
  153. CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN 80 WHEN 'GOOD_RATE' THEN 80 WHEN 'REJECT_RATE' THEN 80 WHEN 'OVERTIME_RATE' THEN 80
  154. WHEN 'HYGIENE' THEN 85 WHEN 'SERVICE' THEN 80 WHEN 'PACKAGING' THEN 90 END,
  155. ROUND(CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN 80 WHEN 'GOOD_RATE' THEN 80 WHEN 'REJECT_RATE' THEN 80 WHEN 'OVERTIME_RATE' THEN 80
  156. WHEN 'HYGIENE' THEN 85 WHEN 'SERVICE' THEN 80 WHEN 'PACKAGING' THEN 90 END * pi.WEIGHT / 100, 2),
  157. CASE WHEN (CASE i.INDICATOR_CODE WHEN 'COOK_TIME' THEN 80 WHEN 'GOOD_RATE' THEN 80 WHEN 'REJECT_RATE' THEN 80 WHEN 'OVERTIME_RATE' THEN 80
  158. WHEN 'HYGIENE' THEN 85 WHEN 'SERVICE' THEN 80 WHEN 'PACKAGING' THEN 90 END) >= pi.PASS_SCORE THEN 1 ELSE 0 END,
  159. NULL,
  160. CASE i.INDICATOR_CODE WHEN 'HYGIENE' THEN '卫生状况良好' WHEN 'SERVICE' THEN '服务热情' WHEN 'PACKAGING' THEN '包装规范' END,
  161. pi.SORT, 1, NOW()
  162. FROM bu_inspect_plan_indicator pi
  163. JOIN bu_inspect_indicator i ON i.INDICATOR_ID = pi.INDICATOR_ID
  164. WHERE pi.PLAN_ID = @plan1 AND pi.STATUS = 1;
  165. -- ============ 7. 整改记录(I04-R01 不及格项生成整改;I04-R02 截止=提交+7天) ============
  166. -- R1 门店1-卫生 第1轮:复检不通过(5) → 生成第2轮
  167. INSERT INTO bu_rectification
  168. (TASK_ID, TASK_ITEM_ID, PLAN_ID, STORE_ID, STORE_NAME, INDICATOR_ID, INDICATOR_NAME,
  169. RECT_ROUND, PARENT_RECT_ID, INSPECT_SCORE, PASS_SCORE, NOTICE_CONTENT, DEADLINE_DATE, START_DATE,
  170. FEEDBACK_CONTENT, FEEDBACK_PICTURES, FEEDBACK_DATE,
  171. RECHECK_SCORE, RECHECK_RESULT, RECHECK_PICTURES, RECHECK_RMK, RECHECK_USER_ID, RECHECK_USER_NAME, RECHECK_DATE,
  172. URGE_COUNT, LAST_URGE_DATE, STATUS, CREATE_DATE)
  173. VALUES
  174. (@t1, (SELECT TASK_ITEM_ID FROM bu_inspect_task_item WHERE TASK_ID=@t1 AND INDICATOR_CODE='HYGIENE'),
  175. @plan1, 1, '特色美食店666', (SELECT INDICATOR_ID FROM bu_inspect_indicator WHERE INDICATOR_CODE='HYGIENE'), '卫生评分',
  176. 1, NULL, 50, 60, '指标【卫生评分】未达标,请完成整改', '2026-08-08 00:00:00', '2026-08-02 10:00:00',
  177. '已全面清洁厨房,更换防滑垫', NULL, '2026-08-04 14:00:00',
  178. 50, 0, NULL, '厨房仍不达标,储物间有杂物', 1, '管理员', '2026-08-05 09:00:00',
  179. 1, '2026-08-03 10:00:00', 5, NOW());
  180. SET @r1 = LAST_INSERT_ID();
  181. -- R2 门店1-卫生 第2轮:待整改(1)(I04-R03 复检不通过自动生成下一轮)
  182. INSERT INTO bu_rectification
  183. (TASK_ID, TASK_ITEM_ID, PLAN_ID, STORE_ID, STORE_NAME, INDICATOR_ID, INDICATOR_NAME,
  184. RECT_ROUND, PARENT_RECT_ID, INSPECT_SCORE, PASS_SCORE, NOTICE_CONTENT, DEADLINE_DATE, START_DATE,
  185. FEEDBACK_CONTENT, FEEDBACK_PICTURES, FEEDBACK_DATE,
  186. RECHECK_SCORE, RECHECK_RESULT, RECHECK_PICTURES, RECHECK_RMK, RECHECK_USER_ID, RECHECK_USER_NAME, RECHECK_DATE,
  187. URGE_COUNT, LAST_URGE_DATE, STATUS, CREATE_DATE)
  188. VALUES
  189. (@t1, (SELECT TASK_ITEM_ID FROM bu_inspect_task_item WHERE TASK_ID=@t1 AND INDICATOR_CODE='HYGIENE'),
  190. @plan1, 1, '特色美食店666', (SELECT INDICATOR_ID FROM bu_inspect_indicator WHERE INDICATOR_CODE='HYGIENE'), '卫生评分',
  191. 2, @r1, 50, 60, '指标【卫生评分】仍未达标,请继续整改', '2026-08-28 00:00:00', NULL,
  192. NULL, NULL, NULL,
  193. NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  194. 0, NULL, 1, NOW());
  195. -- R3 门店1-服务 第1轮:整改中(2)
  196. INSERT INTO bu_rectification
  197. (TASK_ID, TASK_ITEM_ID, PLAN_ID, STORE_ID, STORE_NAME, INDICATOR_ID, INDICATOR_NAME,
  198. RECT_ROUND, PARENT_RECT_ID, INSPECT_SCORE, PASS_SCORE, NOTICE_CONTENT, DEADLINE_DATE, START_DATE,
  199. FEEDBACK_CONTENT, FEEDBACK_PICTURES, FEEDBACK_DATE,
  200. RECHECK_SCORE, RECHECK_RESULT, RECHECK_PICTURES, RECHECK_RMK, RECHECK_USER_ID, RECHECK_USER_NAME, RECHECK_DATE,
  201. URGE_COUNT, LAST_URGE_DATE, STATUS, CREATE_DATE)
  202. VALUES
  203. (@t1, (SELECT TASK_ITEM_ID FROM bu_inspect_task_item WHERE TASK_ID=@t1 AND INDICATOR_CODE='SERVICE'),
  204. @plan1, 1, '特色美食店666', (SELECT INDICATOR_ID FROM bu_inspect_indicator WHERE INDICATOR_CODE='SERVICE'), '服务态度',
  205. 1, NULL, 45, 60, '指标【服务态度】未达标,请完成整改', '2026-08-28 00:00:00', '2026-08-02 11:00:00',
  206. NULL, NULL, NULL,
  207. NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  208. 0, NULL, 2, NOW());
  209. -- R4 门店2-包装 第1轮:待复检(3)(门店已提交反馈,等待复检)
  210. INSERT INTO bu_rectification
  211. (TASK_ID, TASK_ITEM_ID, PLAN_ID, STORE_ID, STORE_NAME, INDICATOR_ID, INDICATOR_NAME,
  212. RECT_ROUND, PARENT_RECT_ID, INSPECT_SCORE, PASS_SCORE, NOTICE_CONTENT, DEADLINE_DATE, START_DATE,
  213. FEEDBACK_CONTENT, FEEDBACK_PICTURES, FEEDBACK_DATE,
  214. RECHECK_SCORE, RECHECK_RESULT, RECHECK_PICTURES, RECHECK_RMK, RECHECK_USER_ID, RECHECK_USER_NAME, RECHECK_DATE,
  215. URGE_COUNT, LAST_URGE_DATE, STATUS, CREATE_DATE)
  216. VALUES
  217. (@t2, (SELECT TASK_ITEM_ID FROM bu_inspect_task_item WHERE TASK_ID=@t2 AND INDICATOR_CODE='PACKAGING'),
  218. @plan1, 2, '水饺店铺', (SELECT INDICATOR_ID FROM bu_inspect_indicator WHERE INDICATOR_CODE='PACKAGING'), '包装规范',
  219. 1, NULL, 40, 60, '指标【包装规范】未达标,请完成整改', '2026-08-28 00:00:00', '2026-08-02 10:30:00',
  220. '已更换为环保密封包装', NULL, '2026-08-06 15:00:00',
  221. NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  222. 0, NULL, 3, NOW());
  223. -- R5 门店2-卫生 第1轮:复检通过(4)
  224. INSERT INTO bu_rectification
  225. (TASK_ID, TASK_ITEM_ID, PLAN_ID, STORE_ID, STORE_NAME, INDICATOR_ID, INDICATOR_NAME,
  226. RECT_ROUND, PARENT_RECT_ID, INSPECT_SCORE, PASS_SCORE, NOTICE_CONTENT, DEADLINE_DATE, START_DATE,
  227. FEEDBACK_CONTENT, FEEDBACK_PICTURES, FEEDBACK_DATE,
  228. RECHECK_SCORE, RECHECK_RESULT, RECHECK_PICTURES, RECHECK_RMK, RECHECK_USER_ID, RECHECK_USER_NAME, RECHECK_DATE,
  229. URGE_COUNT, LAST_URGE_DATE, STATUS, CREATE_DATE)
  230. VALUES
  231. (@t2, (SELECT TASK_ITEM_ID FROM bu_inspect_task_item WHERE TASK_ID=@t2 AND INDICATOR_CODE='HYGIENE'),
  232. @plan1, 2, '水饺店铺', (SELECT INDICATOR_ID FROM bu_inspect_indicator WHERE INDICATOR_CODE='HYGIENE'), '卫生评分',
  233. 1, NULL, 50, 60, '指标【卫生评分】未达标,请完成整改', '2026-08-28 00:00:00', '2026-08-02 09:00:00',
  234. '已按要求完成卫生整改', NULL, '2026-08-05 16:00:00',
  235. 75, 1, NULL, '整改到位', 1, '管理员', '2026-08-07 10:00:00',
  236. 0, NULL, 4, NOW());
  237. -- R6 门店2-服务 第1轮:已超期(6)(截止日期已过且未完成整改)
  238. INSERT INTO bu_rectification
  239. (TASK_ID, TASK_ITEM_ID, PLAN_ID, STORE_ID, STORE_NAME, INDICATOR_ID, INDICATOR_NAME,
  240. RECT_ROUND, PARENT_RECT_ID, INSPECT_SCORE, PASS_SCORE, NOTICE_CONTENT, DEADLINE_DATE, START_DATE,
  241. FEEDBACK_CONTENT, FEEDBACK_PICTURES, FEEDBACK_DATE,
  242. RECHECK_SCORE, RECHECK_RESULT, RECHECK_PICTURES, RECHECK_RMK, RECHECK_USER_ID, RECHECK_USER_NAME, RECHECK_DATE,
  243. URGE_COUNT, LAST_URGE_DATE, STATUS, CREATE_DATE)
  244. VALUES
  245. (@t2, (SELECT TASK_ITEM_ID FROM bu_inspect_task_item WHERE TASK_ID=@t2 AND INDICATOR_CODE='SERVICE'),
  246. @plan1, 2, '水饺店铺', (SELECT INDICATOR_ID FROM bu_inspect_indicator WHERE INDICATOR_CODE='SERVICE'), '服务态度',
  247. 1, NULL, 45, 60, '指标【服务态度】未达标,请完成整改', '2026-08-03 00:00:00', NULL,
  248. NULL, NULL, NULL,
  249. NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  250. 0, NULL, 6, NOW());
  251. -- ============ 8. 月度考核结果(I05-R01 综合=巡检×0.6+自动×0.4;I05-R03 等级;I05-R02 排名) ============
  252. -- 门店3 综合80.75 → 良好(2) 第1名;门店1 综合75.35 → 合格(3) 第2名;门店2 综合74.00 → 合格(3) 第3名
  253. INSERT INTO bu_assess_result
  254. (STORE_ID, STORE_NAME, STORE_BELONGTO, PROVINCE, CITY,
  255. PERIOD_TYPE, PERIOD_CODE, PERIOD_START_DATE, PERIOD_END_DATE,
  256. INSPECT_SCORE, AUTO_SCORE, TOTAL_SCORE, ASSESS_LEVEL, RANK_NO,
  257. TASK_COUNT, FINISH_TASK_COUNT, RECT_COUNT, OVERTIME_RECT_COUNT,
  258. SUMMARY_DATE, STATUS, CREATE_DATE)
  259. VALUES
  260. (3, '烤肉拌饭', 1, 14, 15, 2, '2026-08', '2026-08-01', '2026-08-31',
  261. 81.25, 80.00, 80.75, 2, 1, 1, 1, 0, 0, '2026-08-31 23:59:59', 1, NOW()),
  262. (1, '特色美食店666', 2, 18, 19, 2, '2026-08', '2026-08-01', '2026-08-31',
  263. 72.25, 80.00, 75.35, 3, 2, 1, 1, 3, 0, '2026-08-31 23:59:59', 1, NOW()),
  264. (2, '水饺店铺', 1, 18, 20, 2, '2026-08', '2026-08-01', '2026-08-31',
  265. 70.00, 80.00, 74.00, 3, 3, 1, 1, 3, 1, '2026-08-31 23:59:59', 1, NOW());
  266. -- ============ 9. 汇总校验 ============
  267. SELECT '--- 计划 ---' AS label;
  268. SELECT PLAN_ID, PLAN_NAME, PLAN_TYPE, CYCLE_TYPE, START_DATE, END_DATE, NEXT_EXECUTE_DATE, STORE_COUNT, STATUS FROM bu_inspect_plan WHERE PLAN_ID IN (@plan1,@plan2);
  269. SELECT '--- 计划1 指标权重合计 ---';
  270. SELECT ROUND(SUM(WEIGHT),0) AS weight_total FROM bu_inspect_plan_indicator WHERE PLAN_ID=@plan1 AND STATUS=1;
  271. SELECT '--- 任务 ---';
  272. SELECT TASK_ID, STORE_NAME, TASK_DATE, TOTAL_SCORE, MAX_SCORE, PASS_SCORE, PASS_FLAG, UNPASS_ITEM_COUNT, STATUS FROM bu_inspect_task WHERE PLAN_ID=@plan1 ORDER BY TASK_ID;
  273. SELECT '--- 任务1 明细(应7条,加权和=72.25) ---';
  274. SELECT COUNT(*) AS item_cnt, ROUND(SUM(WEIGHTED_SCORE),2) AS wsum, SUM(PASS_FLAG) AS pass_cnt FROM bu_inspect_task_item WHERE TASK_ID=@t1;
  275. SELECT '--- 整改状态分布 ---';
  276. SELECT STATUS, COUNT(*) AS cnt FROM bu_rectification WHERE PLAN_ID=@plan1 GROUP BY STATUS ORDER BY STATUS;
  277. SELECT '--- 考核排名 ---';
  278. SELECT RANK_NO, STORE_NAME, INSPECT_SCORE, AUTO_SCORE, TOTAL_SCORE, ASSESS_LEVEL FROM bu_assess_result WHERE PERIOD_CODE='2026-08' ORDER BY RANK_NO;