| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- /*
- Navicat MySQL Data Transfer
- 门店巡检与考核管理模块表结构
- 设计日期: 2026-08-20
- 说明:
- 1. 本脚本仅新增巡检考核模块表,不修改订单、门店、评价、结算等已有核心表。
- 2. 关联 bu_store、bu_order、bu_evaluate 等已有表时只保存业务 ID,不创建外键,保持与现有项目风格一致。
- 3. 图片字段使用逗号分隔 URL,后续如需更强审计能力可拆出图片附件表。
- */
- SET NAMES utf8mb4;
- SET FOREIGN_KEY_CHECKS = 0;
- DROP TABLE IF EXISTS `bu_inspect_indicator`;
- CREATE TABLE `bu_inspect_indicator` (
- `INDICATOR_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '考核指标ID',
- `INDICATOR_CODE` varchar(64) NOT NULL COMMENT '指标编码,如 COOK_TIME、HYGIENE',
- `INDICATOR_NAME` varchar(100) NOT NULL COMMENT '指标名称',
- `INDICATOR_TYPE` tinyint(4) NOT NULL DEFAULT '2' COMMENT '指标类型:1自动采集,2人工巡检',
- `DATA_SOURCE` varchar(64) DEFAULT NULL COMMENT '自动采集数据来源,如 ORDER_COOK_TIME、EVALUATE_GOOD_RATE',
- `MAX_SCORE` decimal(10,2) NOT NULL DEFAULT '100.00' COMMENT '满分',
- `PASS_SCORE` decimal(10,2) NOT NULL DEFAULT '60.00' COMMENT '及格分',
- `WEIGHT` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '权重百分比',
- `SCORE_RULE` text COMMENT '评分规则JSON,自动采集指标必填',
- `SORT` int(11) NOT NULL DEFAULT '0' COMMENT '排序序号',
- `STATUS` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:1启用,0停用',
- `RMK` varchar(500) DEFAULT NULL COMMENT '备注',
- `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`INDICATOR_ID`),
- UNIQUE KEY `UK_INSPECT_INDICATOR_CODE` (`INDICATOR_CODE`),
- KEY `IDX_INSPECT_INDICATOR_TYPE` (`INDICATOR_TYPE`),
- KEY `IDX_INSPECT_INDICATOR_STATUS_SORT` (`STATUS`,`SORT`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='巡检考核指标表';
- DROP TABLE IF EXISTS `bu_inspect_plan`;
- CREATE TABLE `bu_inspect_plan` (
- `PLAN_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '巡检计划ID',
- `PLAN_NAME` varchar(150) NOT NULL COMMENT '计划名称',
- `PLAN_TYPE` tinyint(4) NOT NULL DEFAULT '1' COMMENT '计划类型:1常规巡检,2专项巡检,3临时巡检',
- `CYCLE_TYPE` tinyint(4) NOT NULL DEFAULT '2' COMMENT '周期类型:1每日,2每周,3每月,4单次',
- `START_DATE` date NOT NULL COMMENT '计划开始日期',
- `END_DATE` date NOT NULL COMMENT '计划结束日期',
- `NEXT_EXECUTE_DATE` date DEFAULT NULL COMMENT '下次执行日期',
- `INSPECTOR_ID` bigint(20) DEFAULT NULL COMMENT '巡检员ID,关联管理端用户',
- `INSPECTOR_NAME` varchar(100) DEFAULT NULL COMMENT '巡检员姓名快照',
- `AUTO_COLLECT_FLAG` tinyint(4) NOT NULL DEFAULT '1' COMMENT '是否开启自动采集:1是,0否',
- `INDICATOR_IDS` varchar(1000) NOT NULL COMMENT '计划选择的指标ID,逗号分隔',
- `INDICATOR_NAMES` varchar(1000) DEFAULT NULL COMMENT '计划选择的指标名称快照,逗号分隔',
- `STORE_COUNT` int(11) NOT NULL DEFAULT '0' COMMENT '关联门店数量',
- `STATUS` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0草稿,1已发布,2已暂停,3已结束,4已删除',
- `PUBLISH_DATE` datetime DEFAULT NULL COMMENT '发布时间',
- `FINISH_DATE` datetime DEFAULT NULL COMMENT '结束时间',
- `RMK` varchar(500) DEFAULT NULL COMMENT '备注',
- `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`PLAN_ID`),
- KEY `IDX_INSPECT_PLAN_STATUS` (`STATUS`),
- KEY `IDX_INSPECT_PLAN_CYCLE` (`CYCLE_TYPE`,`NEXT_EXECUTE_DATE`),
- KEY `IDX_INSPECT_PLAN_DATE` (`START_DATE`,`END_DATE`),
- KEY `IDX_INSPECT_PLAN_INSPECTOR` (`INSPECTOR_ID`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='巡检计划表';
- DROP TABLE IF EXISTS `bu_inspect_plan_store`;
- CREATE TABLE `bu_inspect_plan_store` (
- `PLAN_STORE_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '计划门店关联ID',
- `PLAN_ID` bigint(20) NOT NULL COMMENT '巡检计划ID',
- `STORE_ID` bigint(20) NOT NULL COMMENT '门店ID',
- `STORE_NAME` varchar(150) DEFAULT NULL COMMENT '门店名称快照',
- `STORE_BELONGTO` bigint(20) DEFAULT NULL COMMENT '归属校区ID快照',
- `PROVINCE` bigint(20) DEFAULT NULL COMMENT '一级区域ID快照',
- `CITY` bigint(20) DEFAULT NULL COMMENT '二级区域ID快照',
- `STATUS` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:1有效,0删除',
- `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- PRIMARY KEY (`PLAN_STORE_ID`),
- UNIQUE KEY `UK_INSPECT_PLAN_STORE` (`PLAN_ID`,`STORE_ID`),
- KEY `IDX_INSPECT_PLAN_STORE_STORE` (`STORE_ID`),
- KEY `IDX_INSPECT_PLAN_STORE_AREA` (`STORE_BELONGTO`,`PROVINCE`,`CITY`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='巡检计划关联门店表';
- DROP TABLE IF EXISTS `bu_inspect_task`;
- CREATE TABLE `bu_inspect_task` (
- `TASK_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '巡检任务ID',
- `PLAN_ID` bigint(20) NOT NULL COMMENT '巡检计划ID',
- `PLAN_NAME` varchar(150) DEFAULT NULL COMMENT '计划名称快照',
- `STORE_ID` bigint(20) NOT NULL COMMENT '门店ID',
- `STORE_NAME` varchar(150) DEFAULT NULL COMMENT '门店名称快照',
- `EXECUTE_DATE` date NOT NULL COMMENT '计划执行日期',
- `INSPECTOR_ID` bigint(20) DEFAULT NULL COMMENT '巡检员ID',
- `INSPECTOR_NAME` varchar(100) DEFAULT NULL COMMENT '巡检员姓名快照',
- `TOTAL_SCORE` decimal(10,2) DEFAULT NULL COMMENT '加权总分',
- `MAX_SCORE` decimal(10,2) DEFAULT NULL COMMENT '加权满分',
- `PASS_SCORE` decimal(10,2) DEFAULT NULL COMMENT '加权及格分',
- `PASS_FLAG` tinyint(4) DEFAULT NULL COMMENT '是否合格:1合格,0不合格',
- `UNPASS_ITEM_COUNT` int(11) NOT NULL DEFAULT '0' COMMENT '不合格指标数量',
- `START_DATE` datetime DEFAULT NULL COMMENT '开始执行时间',
- `SUBMIT_DATE` datetime DEFAULT NULL COMMENT '提交时间',
- `CANCEL_DATE` datetime DEFAULT NULL COMMENT '取消时间',
- `STATUS` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:1待执行,2执行中,3已完成,4已取消',
- `RMK` varchar(500) DEFAULT NULL COMMENT '任务备注',
- `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`TASK_ID`),
- UNIQUE KEY `UK_INSPECT_TASK_PLAN_STORE_DATE` (`PLAN_ID`,`STORE_ID`,`EXECUTE_DATE`),
- KEY `IDX_INSPECT_TASK_STORE` (`STORE_ID`),
- KEY `IDX_INSPECT_TASK_STATUS_DATE` (`STATUS`,`EXECUTE_DATE`),
- KEY `IDX_INSPECT_TASK_INSPECTOR` (`INSPECTOR_ID`,`STATUS`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='巡检任务表';
- DROP TABLE IF EXISTS `bu_inspect_task_item`;
- CREATE TABLE `bu_inspect_task_item` (
- `TASK_ITEM_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '巡检任务明细ID',
- `TASK_ID` bigint(20) NOT NULL COMMENT '巡检任务ID',
- `PLAN_ID` bigint(20) NOT NULL COMMENT '巡检计划ID',
- `STORE_ID` bigint(20) NOT NULL COMMENT '门店ID',
- `INDICATOR_ID` bigint(20) NOT NULL COMMENT '考核指标ID',
- `INDICATOR_CODE` varchar(64) NOT NULL COMMENT '指标编码快照',
- `INDICATOR_NAME` varchar(100) NOT NULL COMMENT '指标名称快照',
- `INDICATOR_TYPE` tinyint(4) NOT NULL COMMENT '指标类型:1自动采集,2人工巡检',
- `DATA_SOURCE` varchar(64) DEFAULT NULL COMMENT '自动采集数据来源快照',
- `WEIGHT` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '权重百分比快照',
- `MAX_SCORE` decimal(10,2) NOT NULL DEFAULT '100.00' COMMENT '满分快照',
- `PASS_SCORE` decimal(10,2) NOT NULL DEFAULT '60.00' COMMENT '及格分快照',
- `RAW_VALUE` decimal(12,4) DEFAULT NULL COMMENT '自动采集原始值',
- `RAW_VALUE_TEXT` varchar(100) DEFAULT NULL COMMENT '自动采集原始值展示文本,如15分钟、92%',
- `SCORE` decimal(10,2) DEFAULT NULL COMMENT '指标得分',
- `WEIGHTED_SCORE` decimal(10,2) DEFAULT NULL COMMENT '加权得分',
- `PASS_FLAG` tinyint(4) DEFAULT NULL COMMENT '单项是否合格:1合格,0不合格',
- `PICTURE_URLS` varchar(2000) DEFAULT NULL COMMENT '巡检照片URL,逗号分隔',
- `RMK` varchar(1000) DEFAULT NULL COMMENT '评分备注',
- `SORT` int(11) NOT NULL DEFAULT '0' COMMENT '排序序号',
- `STATUS` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:1有效,0删除',
- `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`TASK_ITEM_ID`),
- UNIQUE KEY `UK_INSPECT_TASK_ITEM_INDICATOR` (`TASK_ID`,`INDICATOR_ID`),
- KEY `IDX_INSPECT_TASK_ITEM_STORE` (`STORE_ID`),
- KEY `IDX_INSPECT_TASK_ITEM_INDICATOR` (`INDICATOR_ID`),
- KEY `IDX_INSPECT_TASK_ITEM_PASS` (`PASS_FLAG`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='巡检任务评分明细表';
- DROP TABLE IF EXISTS `bu_rectification`;
- CREATE TABLE `bu_rectification` (
- `RECT_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '整改记录ID',
- `TASK_ID` bigint(20) NOT NULL COMMENT '巡检任务ID',
- `TASK_ITEM_ID` bigint(20) NOT NULL COMMENT '不合格任务明细ID',
- `PLAN_ID` bigint(20) DEFAULT NULL COMMENT '巡检计划ID',
- `STORE_ID` bigint(20) NOT NULL COMMENT '门店ID',
- `STORE_NAME` varchar(150) DEFAULT NULL COMMENT '门店名称快照',
- `INDICATOR_ID` bigint(20) NOT NULL COMMENT '指标ID',
- `INDICATOR_NAME` varchar(100) NOT NULL COMMENT '指标名称快照',
- `RECT_ROUND` int(11) NOT NULL DEFAULT '1' COMMENT '整改轮次',
- `PARENT_RECT_ID` bigint(20) DEFAULT NULL COMMENT '上一轮整改ID',
- `INSPECT_SCORE` decimal(10,2) DEFAULT NULL COMMENT '巡检得分',
- `PASS_SCORE` decimal(10,2) DEFAULT NULL COMMENT '及格分',
- `NOTICE_CONTENT` varchar(1000) DEFAULT NULL COMMENT '整改通知内容',
- `DEADLINE_DATE` datetime NOT NULL COMMENT '整改截止时间',
- `START_DATE` datetime DEFAULT NULL COMMENT '门店开始整改时间',
- `FEEDBACK_CONTENT` varchar(1000) DEFAULT NULL COMMENT '门店整改反馈说明',
- `FEEDBACK_PICTURES` varchar(2000) DEFAULT NULL COMMENT '门店整改照片URL,逗号分隔',
- `FEEDBACK_DATE` datetime DEFAULT NULL COMMENT '门店提交反馈时间',
- `RECHECK_SCORE` decimal(10,2) DEFAULT NULL COMMENT '复检得分',
- `RECHECK_RESULT` tinyint(4) DEFAULT NULL COMMENT '复检结果:1通过,0不通过',
- `RECHECK_PICTURES` varchar(2000) DEFAULT NULL COMMENT '复检照片URL,逗号分隔',
- `RECHECK_RMK` varchar(1000) DEFAULT NULL COMMENT '复检备注',
- `RECHECK_USER_ID` bigint(20) DEFAULT NULL COMMENT '复检员ID',
- `RECHECK_USER_NAME` varchar(100) DEFAULT NULL COMMENT '复检员姓名快照',
- `RECHECK_DATE` datetime DEFAULT NULL COMMENT '复检时间',
- `URGE_COUNT` int(11) NOT NULL DEFAULT '0' COMMENT '催办次数',
- `LAST_URGE_DATE` datetime DEFAULT NULL COMMENT '最后催办时间',
- `STATUS` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:1待整改,2整改中,3待复检,4复检通过,5复检不通过,6已超期,7最终不通过',
- `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`RECT_ID`),
- KEY `IDX_RECT_TASK_ITEM` (`TASK_ITEM_ID`),
- KEY `IDX_RECT_STORE_STATUS` (`STORE_ID`,`STATUS`),
- KEY `IDX_RECT_INDICATOR` (`INDICATOR_ID`),
- KEY `IDX_RECT_DEADLINE` (`STATUS`,`DEADLINE_DATE`),
- KEY `IDX_RECT_PARENT` (`PARENT_RECT_ID`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='巡检整改记录表';
- DROP TABLE IF EXISTS `bu_assess_result`;
- CREATE TABLE `bu_assess_result` (
- `ASSESS_RESULT_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '考核结果ID',
- `STORE_ID` bigint(20) NOT NULL COMMENT '门店ID',
- `STORE_NAME` varchar(150) DEFAULT NULL COMMENT '门店名称快照',
- `STORE_BELONGTO` bigint(20) DEFAULT NULL COMMENT '归属校区ID快照',
- `PROVINCE` bigint(20) DEFAULT NULL COMMENT '一级区域ID快照',
- `CITY` bigint(20) DEFAULT NULL COMMENT '二级区域ID快照',
- `PERIOD_TYPE` tinyint(4) NOT NULL COMMENT '考核周期类型:1周度,2月度',
- `PERIOD_CODE` varchar(20) NOT NULL COMMENT '周期编码,如2026W31、202607',
- `PERIOD_START_DATE` date NOT NULL COMMENT '周期开始日期',
- `PERIOD_END_DATE` date NOT NULL COMMENT '周期结束日期',
- `INSPECT_SCORE` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '巡检平均分',
- `AUTO_SCORE` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '自动采集平均分',
- `TOTAL_SCORE` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '综合得分',
- `ASSESS_LEVEL` tinyint(4) NOT NULL DEFAULT '4' COMMENT '考核等级:1优秀,2良好,3合格,4不合格',
- `RANK_NO` int(11) DEFAULT NULL COMMENT '排名',
- `TASK_COUNT` int(11) NOT NULL DEFAULT '0' COMMENT '周期内巡检任务数',
- `FINISH_TASK_COUNT` int(11) NOT NULL DEFAULT '0' COMMENT '周期内已完成任务数',
- `RECT_COUNT` int(11) NOT NULL DEFAULT '0' COMMENT '周期内整改次数',
- `OVERTIME_RECT_COUNT` int(11) NOT NULL DEFAULT '0' COMMENT '周期内超期整改次数',
- `SUMMARY_DATE` datetime NOT NULL COMMENT '汇总时间',
- `STATUS` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:1有效,0删除',
- `CREATE_DATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `UPDATE_DATE` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`ASSESS_RESULT_ID`),
- UNIQUE KEY `UK_ASSESS_STORE_PERIOD` (`STORE_ID`,`PERIOD_TYPE`,`PERIOD_CODE`),
- KEY `IDX_ASSESS_PERIOD_RANK` (`PERIOD_TYPE`,`PERIOD_CODE`,`RANK_NO`),
- KEY `IDX_ASSESS_AREA` (`STORE_BELONGTO`,`PROVINCE`,`CITY`),
- KEY `IDX_ASSESS_LEVEL` (`ASSESS_LEVEL`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='门店考核结果与排名表';
- INSERT INTO `bu_inspect_indicator`
- (`INDICATOR_CODE`, `INDICATOR_NAME`, `INDICATOR_TYPE`, `DATA_SOURCE`, `MAX_SCORE`, `PASS_SCORE`, `WEIGHT`, `SCORE_RULE`, `SORT`, `STATUS`, `RMK`)
- VALUES
- ('COOK_TIME', '出餐时效', 1, 'ORDER_COOK_TIME', 100.00, 60.00, 20.00,
- '{"type":"range","ranges":[{"min":0,"max":10,"score":100},{"min":10,"max":20,"score":80},{"min":20,"max":30,"score":60},{"min":30,"max":999,"score":40}],"unit":"分钟","description":"出餐时效:0-10分钟100分,10-20分钟80分,20-30分钟60分,30分钟以上40分"}',
- 10, 1, '系统预置自动采集指标'),
- ('GOOD_RATE', '好评率', 1, 'EVALUATE_GOOD_RATE', 100.00, 60.00, 20.00,
- '{"type":"percentage","thresholds":[{"min":95,"score":100},{"min":90,"score":80},{"min":80,"score":60},{"min":0,"score":40}],"unit":"%","description":"好评率:大于等于95%得100分,大于等于90%得80分,大于等于80%得60分,低于80%得40分"}',
- 20, 1, '系统预置自动采集指标'),
- ('REJECT_RATE', '拒单率', 1, 'ORDER_REJECT_RATE', 100.00, 60.00, 15.00,
- '{"type":"percentage_reverse","thresholds":[{"max":0,"score":100},{"max":2,"score":80},{"max":5,"score":60},{"max":100,"score":40}],"unit":"%","description":"拒单率:0%得100分,小于等于2%得80分,小于等于5%得60分,大于5%得40分"}',
- 30, 1, '系统预置自动采集指标'),
- ('OVERTIME_RATE', '超时率', 1, 'ORDER_OVERTIME_RATE', 100.00, 60.00, 15.00,
- '{"type":"percentage_reverse","thresholds":[{"max":0,"score":100},{"max":3,"score":80},{"max":8,"score":60},{"max":100,"score":40}],"unit":"%","description":"超时率:0%得100分,小于等于3%得80分,小于等于8%得60分,大于8%得40分"}',
- 40, 1, '系统预置自动采集指标'),
- ('HYGIENE', '卫生评分', 2, NULL, 100.00, 60.00, 15.00, NULL, 50, 1, '系统预置人工巡检指标'),
- ('SERVICE', '服务态度', 2, NULL, 100.00, 60.00, 10.00, NULL, 60, 1, '系统预置人工巡检指标'),
- ('PACKAGING', '包装规范', 2, NULL, 100.00, 60.00, 5.00, NULL, 70, 1, '系统预置人工巡检指标');
- SET FOREIGN_KEY_CHECKS = 1;
|