-- 用途:新增 yxe_visit_report 表(跑店填报) -- 日期:2026-10-11 -- 背景:甲方要求把「自主填报」拆成「驻店填报 / 跑店填报」两种类型: -- 1) 原自主填报页改为「驻店填报」,数据仍存 yxe_self_report,不动; -- 2) 新增「跑店填报」,填报内容为「巡店列表(多门店,每条含门店/定位/打卡照片)+ 活动小结」。 -- 巡店列表是「一次填报多家门店」的数组结构,yxe_self_report 既没有多门店字段, -- 也没有区分驻店/跑店类型的字段;本次选择新建独立表,避免污染既有 928 条历史数据 -- 与既有审核/导出逻辑。 -- 影响:新建空表,0 行业务数据;不改动 yxe_self_report 任何结构。 -- 性质:幂等,可重复执行(CREATE TABLE IF NOT EXISTS)。 -- 配套代码: -- yxe-java YxeVisitReport.java / YxeVisitReportParam.java / YxeVisitReportMapper.java -- / YxeVisitReportMapper.xml / YxeVisitReportService(+Impl) -- / YxeVisitReportController.java -- yxe-mp packageUser/self-report/select.vue(选择填报类型) -- packageUser/self-report/visit.vue(跑店填报) -- packageUser/self-report/records.vue(填报记录加类型切换) -- pages/audit/index.vue(药审核加跑店填报类型) -- yxe-admin src/api/yxe/yxeVisitReport/*、src/views/yxe/yxeSelfReport/*(类型筛选与跑店详情) -- 执行前核对(应为 0,即表不存在) SELECT COUNT(*) AS table_exists FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'yxe_visit_report'; -- 变更:建表(已存在则跳过) CREATE TABLE IF NOT EXISTS `yxe_visit_report` ( `id` int NOT NULL AUTO_INCREMENT, `user_id` int DEFAULT NULL COMMENT '提交人ID', `store_count` int DEFAULT 0 COMMENT '巡店门店数', `store_list` longtext COMMENT '巡店列表JSON(门店/定位/打卡照片)', `image` longtext COMMENT '全部图片集合', `summary` longtext COMMENT '活动小结', `reward` decimal(10,2) DEFAULT NULL COMMENT '奖金金额(审核时填写)', `lat` varchar(64) DEFAULT NULL COMMENT '纬度(整单,取首条门店)', `lng` varchar(64) DEFAULT NULL COMMENT '经度(整单,取首条门店)', `location` varchar(500) DEFAULT NULL COMMENT '定位地址(整单,取首条门店)', `sort_number` int DEFAULT 0 COMMENT '排序', `comments` varchar(500) DEFAULT NULL COMMENT '备注', `status` tinyint DEFAULT 0 COMMENT '状态:0待审核,1通过,2拒绝', `reject_reason` varchar(500) DEFAULT NULL COMMENT '驳回原因', `deleted` tinyint DEFAULT 0 COMMENT '逻辑删除', `tenant_id` int DEFAULT 10325 COMMENT '租户ID', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_yxe_visit_report_user_id` (`user_id`), KEY `idx_yxe_visit_report_status` (`status`), KEY `idx_yxe_visit_report_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='跑店填报'; -- 执行后核对(应返回 1 行,且列/注释符合预期) SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_COMMENT, ORDINAL_POSITION FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'yxe_visit_report' ORDER BY ORDINAL_POSITION; -- 执行后核对(应为 0,跑店填报为新建功能,无历史数据) SELECT COUNT(*) AS row_count FROM `yxe_visit_report`;