-- ===================================================== -- 门店档案模块建表 + 菜单权限初始化 -- 日期:2026-07-09 -- 说明:新建门店档案主表、固定资产设备表、合同附件表, -- 并在运营管理下新增"门店档案管理"菜单及权限按钮 -- ===================================================== -- ===================================================== -- 1. 门店档案主表 -- ===================================================== CREATE TABLE IF NOT EXISTS `t_shop_archive` ( `id` BIGINT NOT NULL COMMENT '主键ID(雪花算法)', `shop_id` BIGINT NOT NULL COMMENT '关联门店ID(t_shop.id)', `shop_name` VARCHAR(100) NOT NULL COMMENT '门店名称(冗余,便于查询)', `shop_address` VARCHAR(255) DEFAULT NULL COMMENT '门店地址(完整详细地址)', `venue_type` VARCHAR(20) DEFAULT NULL COMMENT '合作场地类型:CHARGING_STATION-充电站, OFFICE_BUILDING-写字楼', `cooperation_mode` VARCHAR(100) DEFAULT NULL COMMENT '合作模式(多选逗号分隔):DRINKS-水饮副食, BOX_MEAL-盒饭', `party_b_salesman` VARCHAR(50) DEFAULT NULL COMMENT '乙方业务员姓名', `party_b_salesman_phone` VARCHAR(20) DEFAULT NULL COMMENT '乙方业务员手机号', `party_a_company` VARCHAR(200) DEFAULT NULL COMMENT '甲方公司名称(签约主体全称)', `party_a_manager` VARCHAR(50) DEFAULT NULL COMMENT '甲方场地管理人员姓名', `party_a_manager_phone` VARCHAR(20) DEFAULT NULL COMMENT '甲方场地管理人员电话', `business_status` VARCHAR(20) DEFAULT 'NORMAL' COMMENT '门店经营状态:NORMAL-正常营业, SUSPENDED-暂停营业, WITHDRAWN-已撤场', `remark` VARCHAR(500) DEFAULT NULL COMMENT '门店备注(特殊要求等)', `contract_no` VARCHAR(100) DEFAULT NULL COMMENT '合同编号(企业归档唯一编码)', `contract_sign_date` DATE DEFAULT NULL COMMENT '合同签订日期', `contract_start_date` DATE DEFAULT NULL COMMENT '合同起始日', `contract_end_date` DATE DEFAULT NULL COMMENT '合同到期日', `contract_status` VARCHAR(20) DEFAULT 'PENDING' COMMENT '合同状态:PENDING-待签约, ACTIVE-已生效, EXPIRING-到期待续约, TERMINATED-已解约终止', `rent_start_date` DATE DEFAULT NULL COMMENT '租金起始日', `monthly_rent` DECIMAL(10,2) DEFAULT NULL COMMENT '每月固定租金金额(元)', `rent_free_days` INT DEFAULT 0 COMMENT '免租期天数', `rent_pay_deadline_day` INT DEFAULT NULL COMMENT '租金缴纳截止日(每月几号)', `deposit_amount` DECIMAL(10,2) DEFAULT NULL COMMENT '保证金(合同约定总额,元)', `deposit_status` VARCHAR(20) DEFAULT 'UNPAID' COMMENT '保证金缴纳状态:UNPAID-未缴纳, PARTIAL-部分缴纳, FULL-全额缴纳', `deposit_paid_amount` DECIMAL(10,2) DEFAULT NULL COMMENT '保证金实缴金额(元)', `deposit_refund_condition` VARCHAR(500) DEFAULT NULL COMMENT '保证金退还条件', `billing_mode` VARCHAR(20) DEFAULT 'RENT_ONLY' COMMENT '合作计费模式:RENT_ONLY-纯租金, RENT_ELECTRIC-租金+电费, COMMISSION_ONLY-纯提成, RENT_COMMISSION-租金+提成, RENT_COMMISSION_ELECTRIC-租金+提成+电费', `electricity_price` DECIMAL(8,4) DEFAULT NULL COMMENT '电费结算单价(元/度)', `electricity_share_rule` VARCHAR(500) DEFAULT NULL COMMENT '电费公摊规则说明', `commission_base_type` VARCHAR(20) DEFAULT NULL COMMENT '提成基数计算口径:SALES-门店实收销售额, GROSS_PROFIT-门店毛利总额, NET_REVENUE-扣除成本后营收', `commission_base` DECIMAL(12,2) DEFAULT NULL COMMENT '提成基数(元)', `commission_rate` DECIMAL(5,2) DEFAULT NULL COMMENT '提成比例(0~100,单位%)', `commission_min_guarantee` DECIMAL(10,2) DEFAULT NULL COMMENT '最低保底提成金额(元)', `commission_period_months` INT DEFAULT 0 COMMENT '提成账期(延后N个月结算)', `payment_cycle` VARCHAR(20) DEFAULT 'MONTHLY' COMMENT '计费方式:MONTHLY-月付, QUARTERLY-季度付, SEMI_ANNUAL-半年付, ANNUAL-年付', `termination_date` DATE DEFAULT NULL COMMENT '解约日期', `termination_remark` VARCHAR(500) DEFAULT NULL COMMENT '解约备注', `payment_method` VARCHAR(20) DEFAULT NULL COMMENT '打款方式:CORPORATE-对公, PRIVATE-对私', `payee_account_name` VARCHAR(100) DEFAULT NULL COMMENT '甲方收款账户名称', `payee_bank_name` VARCHAR(100) DEFAULT NULL COMMENT '收款开户行', `payee_bank_account` VARCHAR(50) DEFAULT NULL COMMENT '银行账号', `taxpayer_id` VARCHAR(50) DEFAULT NULL COMMENT '纳税人识别号', `invoice_type` VARCHAR(20) DEFAULT NULL COMMENT '发票类型:SPECIAL-增值税专票, NORMAL-增值税普票', `invoice_tax_rate` DECIMAL(5,2) DEFAULT NULL COMMENT '开票税率(单位%)', `creator_id` BIGINT DEFAULT NULL COMMENT '数据创建人ID', `creator_name` VARCHAR(50) DEFAULT NULL COMMENT '数据创建人姓名', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `editor_id` BIGINT DEFAULT NULL COMMENT '最后编辑人ID', `editor_name` VARCHAR(50) DEFAULT NULL COMMENT '最后编辑人姓名', `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后编辑时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_shop_id` (`shop_id`), KEY `idx_contract_no` (`contract_no`), KEY `idx_contract_status` (`contract_status`), KEY `idx_business_status` (`business_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='门店档案主表'; -- ===================================================== -- 2. 门店固定资产设备表 -- ===================================================== CREATE TABLE IF NOT EXISTS `t_shop_fixed_asset` ( `id` BIGINT NOT NULL COMMENT '主键ID(雪花算法)', `shop_archive_id` BIGINT NOT NULL COMMENT '关联门店档案ID(t_shop_archive.id)', `shop_id` BIGINT NOT NULL COMMENT '关联门店ID(冗余,便于查询)', `asset_type` VARCHAR(20) NOT NULL COMMENT '资产类型:VENDING_MACHINE-自助售卖机, MICROWAVE-微波炉', `asset_name` VARCHAR(100) DEFAULT NULL COMMENT '资产名称(如售卖机名称)', `asset_code` VARCHAR(100) DEFAULT NULL COMMENT '资产编号(机器编号/微波炉编号)', `asset_status` VARCHAR(20) DEFAULT 'NORMAL' COMMENT '设备当前状态:NORMAL-正常运行, REPAIR-故障维修, IDLE-闲置撤机', `remark` VARCHAR(200) DEFAULT NULL COMMENT '备注', `creator_id` BIGINT DEFAULT NULL COMMENT '创建人ID', `creator_name` VARCHAR(50) DEFAULT NULL COMMENT '创建人姓名', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `editor_id` BIGINT DEFAULT NULL COMMENT '最后编辑人ID', `editor_name` VARCHAR(50) DEFAULT NULL COMMENT '最后编辑人姓名', `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后编辑时间', PRIMARY KEY (`id`), KEY `idx_shop_archive_id` (`shop_archive_id`), KEY `idx_shop_id` (`shop_id`), KEY `idx_asset_type` (`asset_type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='门店固定资产设备表'; -- ===================================================== -- 3. 门店合同附件表 -- ===================================================== CREATE TABLE IF NOT EXISTS `t_shop_contract_attachment` ( `id` BIGINT NOT NULL COMMENT '主键ID(雪花算法)', `shop_archive_id` BIGINT NOT NULL COMMENT '关联门店档案ID(t_shop_archive.id)', `shop_id` BIGINT NOT NULL COMMENT '关联门店ID(冗余,便于查询)', `attachment_type` VARCHAR(30) NOT NULL COMMENT '附件类型:CONTRACT-合同附件, LEASE_AGREEMENT-场地租赁协议, ELECTRICITY_AGREEMENT-电费补充协议, DEPOSIT_RECEIPT-保证金收据, TERMINATION_AGREEMENT-解约/补充变更协议', `file_name` VARCHAR(200) NOT NULL COMMENT '原始文件名', `file_url` VARCHAR(500) NOT NULL COMMENT 'OSS文件URL', `file_size` BIGINT DEFAULT NULL COMMENT '文件大小(字节)', `file_extension` VARCHAR(20) DEFAULT NULL COMMENT '文件扩展名(pdf, jpg, png, docx等)', `sort_order` INT DEFAULT 0 COMMENT '排序序号', `creator_id` BIGINT DEFAULT NULL COMMENT '上传人ID', `creator_name` VARCHAR(50) DEFAULT NULL COMMENT '上传人姓名', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间', PRIMARY KEY (`id`), KEY `idx_shop_archive_id` (`shop_archive_id`), KEY `idx_shop_id` (`shop_id`), KEY `idx_attachment_type` (`attachment_type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='门店合同附件表'; -- ===================================================== -- 4. 菜单数据(运营管理 → 门店档案管理) -- ===================================================== INSERT INTO t_menu (id, parent_id, menu_type, title, name, path, component, `rank`, show_link, show_parent) VALUES (306, 300, 0, '门店档案管理', 'ShopArchive', '/operation/shop-archive', '', 5, 1, 0); -- ===================================================== -- 5. 权限按钮(挂在 门店档案管理 下,menu_type=3) -- ===================================================== INSERT INTO t_menu (id, parent_id, menu_type, title, name, path, component, `rank`, auths, show_link, show_parent) VALUES (30601, 306, 3, '查看', 'ShopArchiveRead', '', '', 1, 'shop:archive:read', 1, 0), (30602, 306, 3, '创建', 'ShopArchiveCreate', '', '', 2, 'shop:archive:create', 1, 0), (30603, 306, 3, '编辑', 'ShopArchiveUpdate', '', '', 3, 'shop:archive:update', 1, 0), (30604, 306, 3, '删除', 'ShopArchiveDelete', '', '', 4, 'shop:archive:delete', 1, 0); -- ===================================================== -- 6. admin 角色(role_id=1)关联新菜单与权限按钮 -- ===================================================== INSERT INTO t_role_menu (id, role_id, menu_id) VALUES (90306, 1, 306), (90307, 1, 30601), (90308, 1, 30602), (90309, 1, 30603), (90310, 1, 30604);