create_shop_archive.sql 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. -- =====================================================
  2. -- 门店档案模块建表 + 菜单权限初始化
  3. -- 日期:2026-07-09
  4. -- 说明:新建门店档案主表、固定资产设备表、合同附件表,
  5. -- 并在运营管理下新增"门店档案管理"菜单及权限按钮
  6. -- =====================================================
  7. -- =====================================================
  8. -- 1. 门店档案主表
  9. -- =====================================================
  10. CREATE TABLE IF NOT EXISTS `t_shop_archive` (
  11. `id` BIGINT NOT NULL COMMENT '主键ID(雪花算法)',
  12. `shop_id` BIGINT NOT NULL COMMENT '关联门店ID(t_shop.id)',
  13. `shop_name` VARCHAR(100) NOT NULL COMMENT '门店名称(冗余,便于查询)',
  14. `shop_address` VARCHAR(255) DEFAULT NULL COMMENT '门店地址(完整详细地址)',
  15. `venue_type` VARCHAR(20) DEFAULT NULL COMMENT '合作场地类型:CHARGING_STATION-充电站, OFFICE_BUILDING-写字楼',
  16. `cooperation_mode` VARCHAR(100) DEFAULT NULL COMMENT '合作模式(多选逗号分隔):DRINKS-水饮副食, BOX_MEAL-盒饭',
  17. `party_b_salesman` VARCHAR(50) DEFAULT NULL COMMENT '乙方业务员姓名',
  18. `party_b_salesman_phone` VARCHAR(20) DEFAULT NULL COMMENT '乙方业务员手机号',
  19. `party_a_company` VARCHAR(200) DEFAULT NULL COMMENT '甲方公司名称(签约主体全称)',
  20. `party_a_manager` VARCHAR(50) DEFAULT NULL COMMENT '甲方场地管理人员姓名',
  21. `party_a_manager_phone` VARCHAR(20) DEFAULT NULL COMMENT '甲方场地管理人员电话',
  22. `business_status` VARCHAR(20) DEFAULT 'NORMAL' COMMENT '门店经营状态:NORMAL-正常营业, SUSPENDED-暂停营业, WITHDRAWN-已撤场',
  23. `remark` VARCHAR(500) DEFAULT NULL COMMENT '门店备注(特殊要求等)',
  24. `contract_no` VARCHAR(100) DEFAULT NULL COMMENT '合同编号(企业归档唯一编码)',
  25. `contract_sign_date` DATE DEFAULT NULL COMMENT '合同签订日期',
  26. `contract_start_date` DATE DEFAULT NULL COMMENT '合同起始日',
  27. `contract_end_date` DATE DEFAULT NULL COMMENT '合同到期日',
  28. `contract_status` VARCHAR(20) DEFAULT 'PENDING' COMMENT '合同状态:PENDING-待签约, ACTIVE-已生效, EXPIRING-到期待续约, TERMINATED-已解约终止',
  29. `rent_start_date` DATE DEFAULT NULL COMMENT '租金起始日',
  30. `monthly_rent` DECIMAL(10,2) DEFAULT NULL COMMENT '每月固定租金金额(元)',
  31. `rent_free_days` INT DEFAULT 0 COMMENT '免租期天数',
  32. `rent_pay_deadline_day` INT DEFAULT NULL COMMENT '租金缴纳截止日(每月几号)',
  33. `deposit_amount` DECIMAL(10,2) DEFAULT NULL COMMENT '保证金(合同约定总额,元)',
  34. `deposit_status` VARCHAR(20) DEFAULT 'UNPAID' COMMENT '保证金缴纳状态:UNPAID-未缴纳, PARTIAL-部分缴纳, FULL-全额缴纳',
  35. `deposit_paid_amount` DECIMAL(10,2) DEFAULT NULL COMMENT '保证金实缴金额(元)',
  36. `deposit_refund_condition` VARCHAR(500) DEFAULT NULL COMMENT '保证金退还条件',
  37. `billing_mode` VARCHAR(20) DEFAULT 'RENT_ONLY' COMMENT '合作计费模式:RENT_ONLY-纯租金, RENT_ELECTRIC-租金+电费, COMMISSION_ONLY-纯提成, RENT_COMMISSION-租金+提成, RENT_COMMISSION_ELECTRIC-租金+提成+电费',
  38. `electricity_price` DECIMAL(8,4) DEFAULT NULL COMMENT '电费结算单价(元/度)',
  39. `electricity_share_rule` VARCHAR(500) DEFAULT NULL COMMENT '电费公摊规则说明',
  40. `commission_base_type` VARCHAR(20) DEFAULT NULL COMMENT '提成基数计算口径:SALES-门店实收销售额, GROSS_PROFIT-门店毛利总额, NET_REVENUE-扣除成本后营收',
  41. `commission_base` DECIMAL(12,2) DEFAULT NULL COMMENT '提成基数(元)',
  42. `commission_rate` DECIMAL(5,2) DEFAULT NULL COMMENT '提成比例(0~100,单位%)',
  43. `commission_min_guarantee` DECIMAL(10,2) DEFAULT NULL COMMENT '最低保底提成金额(元)',
  44. `commission_period_months` INT DEFAULT 0 COMMENT '提成账期(延后N个月结算)',
  45. `payment_cycle` VARCHAR(20) DEFAULT 'MONTHLY' COMMENT '计费方式:MONTHLY-月付, QUARTERLY-季度付, SEMI_ANNUAL-半年付, ANNUAL-年付',
  46. `termination_date` DATE DEFAULT NULL COMMENT '解约日期',
  47. `termination_remark` VARCHAR(500) DEFAULT NULL COMMENT '解约备注',
  48. `payment_method` VARCHAR(20) DEFAULT NULL COMMENT '打款方式:CORPORATE-对公, PRIVATE-对私',
  49. `payee_account_name` VARCHAR(100) DEFAULT NULL COMMENT '甲方收款账户名称',
  50. `payee_bank_name` VARCHAR(100) DEFAULT NULL COMMENT '收款开户行',
  51. `payee_bank_account` VARCHAR(50) DEFAULT NULL COMMENT '银行账号',
  52. `taxpayer_id` VARCHAR(50) DEFAULT NULL COMMENT '纳税人识别号',
  53. `invoice_type` VARCHAR(20) DEFAULT NULL COMMENT '发票类型:SPECIAL-增值税专票, NORMAL-增值税普票',
  54. `invoice_tax_rate` DECIMAL(5,2) DEFAULT NULL COMMENT '开票税率(单位%)',
  55. `creator_id` BIGINT DEFAULT NULL COMMENT '数据创建人ID',
  56. `creator_name` VARCHAR(50) DEFAULT NULL COMMENT '数据创建人姓名',
  57. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  58. `editor_id` BIGINT DEFAULT NULL COMMENT '最后编辑人ID',
  59. `editor_name` VARCHAR(50) DEFAULT NULL COMMENT '最后编辑人姓名',
  60. `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后编辑时间',
  61. PRIMARY KEY (`id`),
  62. UNIQUE KEY `uk_shop_id` (`shop_id`),
  63. KEY `idx_contract_no` (`contract_no`),
  64. KEY `idx_contract_status` (`contract_status`),
  65. KEY `idx_business_status` (`business_status`)
  66. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='门店档案主表';
  67. -- =====================================================
  68. -- 2. 门店固定资产设备表
  69. -- =====================================================
  70. CREATE TABLE IF NOT EXISTS `t_shop_fixed_asset` (
  71. `id` BIGINT NOT NULL COMMENT '主键ID(雪花算法)',
  72. `shop_archive_id` BIGINT NOT NULL COMMENT '关联门店档案ID(t_shop_archive.id)',
  73. `shop_id` BIGINT NOT NULL COMMENT '关联门店ID(冗余,便于查询)',
  74. `asset_type` VARCHAR(20) NOT NULL COMMENT '资产类型:VENDING_MACHINE-自助售卖机, MICROWAVE-微波炉',
  75. `asset_name` VARCHAR(100) DEFAULT NULL COMMENT '资产名称(如售卖机名称)',
  76. `asset_code` VARCHAR(100) DEFAULT NULL COMMENT '资产编号(机器编号/微波炉编号)',
  77. `asset_status` VARCHAR(20) DEFAULT 'NORMAL' COMMENT '设备当前状态:NORMAL-正常运行, REPAIR-故障维修, IDLE-闲置撤机',
  78. `remark` VARCHAR(200) DEFAULT NULL COMMENT '备注',
  79. `creator_id` BIGINT DEFAULT NULL COMMENT '创建人ID',
  80. `creator_name` VARCHAR(50) DEFAULT NULL COMMENT '创建人姓名',
  81. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  82. `editor_id` BIGINT DEFAULT NULL COMMENT '最后编辑人ID',
  83. `editor_name` VARCHAR(50) DEFAULT NULL COMMENT '最后编辑人姓名',
  84. `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后编辑时间',
  85. PRIMARY KEY (`id`),
  86. KEY `idx_shop_archive_id` (`shop_archive_id`),
  87. KEY `idx_shop_id` (`shop_id`),
  88. KEY `idx_asset_type` (`asset_type`)
  89. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='门店固定资产设备表';
  90. -- =====================================================
  91. -- 3. 门店合同附件表
  92. -- =====================================================
  93. CREATE TABLE IF NOT EXISTS `t_shop_contract_attachment` (
  94. `id` BIGINT NOT NULL COMMENT '主键ID(雪花算法)',
  95. `shop_archive_id` BIGINT NOT NULL COMMENT '关联门店档案ID(t_shop_archive.id)',
  96. `shop_id` BIGINT NOT NULL COMMENT '关联门店ID(冗余,便于查询)',
  97. `attachment_type` VARCHAR(30) NOT NULL COMMENT '附件类型:CONTRACT-合同附件, LEASE_AGREEMENT-场地租赁协议, ELECTRICITY_AGREEMENT-电费补充协议, DEPOSIT_RECEIPT-保证金收据, TERMINATION_AGREEMENT-解约/补充变更协议',
  98. `file_name` VARCHAR(200) NOT NULL COMMENT '原始文件名',
  99. `file_url` VARCHAR(500) NOT NULL COMMENT 'OSS文件URL',
  100. `file_size` BIGINT DEFAULT NULL COMMENT '文件大小(字节)',
  101. `file_extension` VARCHAR(20) DEFAULT NULL COMMENT '文件扩展名(pdf, jpg, png, docx等)',
  102. `sort_order` INT DEFAULT 0 COMMENT '排序序号',
  103. `creator_id` BIGINT DEFAULT NULL COMMENT '上传人ID',
  104. `creator_name` VARCHAR(50) DEFAULT NULL COMMENT '上传人姓名',
  105. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
  106. PRIMARY KEY (`id`),
  107. KEY `idx_shop_archive_id` (`shop_archive_id`),
  108. KEY `idx_shop_id` (`shop_id`),
  109. KEY `idx_attachment_type` (`attachment_type`)
  110. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='门店合同附件表';
  111. -- =====================================================
  112. -- 4. 菜单数据(运营管理 → 门店档案管理)
  113. -- =====================================================
  114. INSERT INTO t_menu (id, parent_id, menu_type, title, name, path, component, `rank`, show_link, show_parent)
  115. VALUES (306, 300, 0, '门店档案管理', 'ShopArchive', '/operation/shop-archive', '', 5, 1, 0);
  116. -- =====================================================
  117. -- 5. 权限按钮(挂在 门店档案管理 下,menu_type=3)
  118. -- =====================================================
  119. INSERT INTO t_menu (id, parent_id, menu_type, title, name, path, component, `rank`, auths, show_link, show_parent) VALUES
  120. (30601, 306, 3, '查看', 'ShopArchiveRead', '', '', 1, 'shop:archive:read', 1, 0),
  121. (30602, 306, 3, '创建', 'ShopArchiveCreate', '', '', 2, 'shop:archive:create', 1, 0),
  122. (30603, 306, 3, '编辑', 'ShopArchiveUpdate', '', '', 3, 'shop:archive:update', 1, 0),
  123. (30604, 306, 3, '删除', 'ShopArchiveDelete', '', '', 4, 'shop:archive:delete', 1, 0);
  124. -- =====================================================
  125. -- 6. admin 角色(role_id=1)关联新菜单与权限按钮
  126. -- =====================================================
  127. INSERT INTO t_role_menu (id, role_id, menu_id) VALUES
  128. (90306, 1, 306),
  129. (90307, 1, 30601),
  130. (90308, 1, 30602),
  131. (90309, 1, 30603),
  132. (90310, 1, 30604);