Blame view

项目文档相关/sql/创建合同成本按月统计表.sql 3.73 KB
d8035736   “wangming”   Refactor project ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
  -- ============================================
  -- 创建合同成本按月统计表(lq_contract_monthly_cost
  -- ============================================
  -- 说明:用于按月统计每个合同的成本,便于后续统计和查询
  -- 
  -- 业务逻辑:
  -- 1. 根据合同起始日期、结束日期,按月生成成本记录
  -- 2. 每个月成本 = 缴租金额 / 交租周期
  -- 3. 例如:合同一年,交费周期3个月,缴租金额3000
  --    - 每个月成本 = 3000 / 3 = 1000
  --    - 生成12个月的记录,每个月都是1000
  -- 
  -- 字段说明:
  -- F_Month:统计月份(格式:YYYY-MM-01,表示该月的第一天)
  -- F_MonthlyCost:该月的合同成本(缴租金额 / 交租周期)
  -- 
  -- 索引设计:
  -- - 主键:F_Id
  -- - 合同ID索引:F_ContractId(用于查询某个合同的所有月份成本)
  -- - 月份索引:F_Month(用于按月份统计)
  -- - 门店ID索引:F_StoreId(用于按门店统计)
  -- - 联合索引:(F_StoreId, F_Month) - 用于查询某个门店某个月的成本
  -- - 联合索引:(F_ContractId, F_Month) - 用于查询某个合同某个月的成本
  
  CREATE TABLE IF NOT EXISTS `lq_contract_monthly_cost` (
    `F_Id` VARCHAR(50) NOT NULL COMMENT '主键ID',
    `F_ContractId` VARCHAR(50) NOT NULL COMMENT '合同ID(关联lq_contract.F_Id)',
    `F_StoreId` VARCHAR(50) NOT NULL COMMENT '门店ID(关联lq_mdxx.F_Id,冗余字段便于查询)',
    `F_StoreName` VARCHAR(200) NOT NULL COMMENT '店名(冗余字段,便于查询)',
    `F_Category` VARCHAR(100) DEFAULT NULL COMMENT '分类(冗余字段,便于按分类统计)',
    `F_Month` DATETIME NOT NULL COMMENT '统计月份(格式:YYYY-MM-01,表示该月的第一天)',
    `F_MonthlyCost` DECIMAL(18,2) NOT NULL COMMENT '该月的合同成本(缴租金额 / 交租周期)',
    `F_PaymentCycle` INT NOT NULL COMMENT '交租周期(冗余字段,便于查询)',
    `F_PaymentAmount` DECIMAL(18,2) NOT NULL COMMENT '缴租金额(冗余字段,便于查询)',
    `F_IsEffective` INT DEFAULT 1 COMMENT '是否有效(1-有效,0-无效)',
    `F_CreateUser` VARCHAR(50) NOT NULL COMMENT '创建人ID',
    `F_CreateTime` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `F_UpdateTime` DATETIME DEFAULT NULL COMMENT '更新时间',
    PRIMARY KEY (`F_Id`),
    KEY `idx_contract_id` (`F_ContractId`) COMMENT '合同ID索引',
    KEY `idx_month` (`F_Month`) COMMENT '月份索引',
    KEY `idx_store_id` (`F_StoreId`) COMMENT '门店ID索引',
    KEY `idx_category` (`F_Category`) COMMENT '分类索引',
    KEY `idx_store_month` (`F_StoreId`, `F_Month`) COMMENT '门店+月份联合索引',
    KEY `idx_contract_month` (`F_ContractId`, `F_Month`) COMMENT '合同+月份联合索引',
    KEY `idx_category_month` (`F_Category`, `F_Month`) COMMENT '分类+月份联合索引',
    KEY `idx_is_effective` (`F_IsEffective`) COMMENT '是否有效索引',
    KEY `idx_create_time` (`F_CreateTime`) COMMENT '创建时间索引'
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='合同成本按月统计表';
  
  -- ============================================
  -- 数据示例说明
  -- ============================================
  -- 合同示例:
  -- F_ContractId: '768041985045955845'
  -- F_StoreId: '1649328471923847168'
  -- F_StoreName: '绿纤总部'
  -- F_ContractStartDate: '2025-01-01 00:00:00'
  -- F_ContractEndDate: '2025-12-31 23:59:59'
  -- F_PaymentAmount: 3000.00
  -- F_PaymentCycle: 3
  -- 
  -- 每个月成本 = 3000 / 3 = 1000
  -- 
  -- 对应的成本记录(自动生成):
  -- 记录1: F_Month='2025-01-01', F_MonthlyCost=1000.00
  -- 记录2: F_Month='2025-02-01', F_MonthlyCost=1000.00
  -- 记录3: F_Month='2025-03-01', F_MonthlyCost=1000.00
  -- 记录4: F_Month='2025-04-01', F_MonthlyCost=1000.00
  -- ...(共12条记录)