📈 汇总统计:共 5 条记录
数据时间:2026-03-01 ~ 2026-03-31
| 组织 |
财务分类 |
期初库存 |
本期 |
期末库存 |
| 数量 |
金重 |
石重 |
成本 |
入库 |
出库 |
数量 |
金重 |
石重 |
成本 |
| 商品入库 |
调拨入 |
销售退回 |
盘盈入 |
其他入库 |
调整入库 |
国检入库 |
采购退货 |
批发销售 |
销售 |
调拨出 |
报损出 |
其他出库 |
委外发 |
形态转换 |
国检出库 |
| 数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
数量 | 金重 | 石重 | 成本 |
| 世纪传家 | 古法金 |
100 | 500.000 | 25.000 | 50,000 |
20 | 100.000 | 5.000 | 10,000 |
15 | 75.000 | 3.000 | 7,500 |
10 | 50.000 | 2.000 | 5,000 |
3 | 15.000 | 1.000 | 1,500 |
2 | 10.000 | 1.000 | 1,000 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
5 | 25.000 | 1.000 | 2,500 |
10 | 50.000 | 3.000 | 5,000 |
10 | 50.000 | 3.000 | 5,000 |
3 | 15.000 | 1.000 | 1,500 |
1 | 5.000 | 0.000 | 500 |
0 | 0.000 | 0.000 | 0 |
1 | 5.000 | 0.000 | 500 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
120 | 600.000 | 29.000 | 60,000 |
| 世纪传家 | K 金 |
80 | 200.000 | 10.000 | 30,000 |
15 | 50.000 | 3.000 | 8,000 |
10 | 25.000 | 2.000 | 5,000 |
8 | 20.000 | 1.000 | 3,000 |
5 | 15.000 | 1.000 | 2,000 |
2 | 10.000 | 0.500 | 1,000 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
3 | 10.000 | 0.500 | 1,200 |
8 | 25.000 | 1.500 | 3,500 |
7 | 20.000 | 1.000 | 3,000 |
2 | 8.000 | 0.500 | 800 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
100 | 250.000 | 12.000 | 37,000 |
| 世纪传家 | 黄金 |
200 | 1000.000 | 0.000 | 100,000 |
50 | 250.000 | 0.000 | 25,000 |
30 | 150.000 | 0.000 | 15,000 |
15 | 75.000 | 0.000 | 7,500 |
3 | 15.000 | 0.000 | 1,500 |
2 | 10.000 | 0.000 | 1,000 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
8 | 40.000 | 0.000 | 4,000 |
20 | 100.000 | 0.000 | 10,000 |
15 | 75.000 | 0.000 | 7,500 |
5 | 25.000 | 0.000 | 2,500 |
2 | 10.000 | 0.000 | 1,000 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
250 | 1250.000 | 0.000 | 125,000 |
| 天猫旗舰店 | 古法金 |
60 | 300.000 | 15.000 | 30,000 |
10 | 50.000 | 2.500 | 5,000 |
8 | 40.000 | 2.000 | 4,000 |
5 | 25.000 | 1.000 | 2,500 |
5 | 25.000 | 1.500 | 2,500 |
2 | 10.000 | 0.500 | 1,000 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
2 | 10.000 | 0.500 | 1,000 |
5 | 25.000 | 1.500 | 2,500 |
8 | 40.000 | 2.000 | 4,000 |
5 | 25.000 | 1.000 | 2,500 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
70 | 350.000 | 17.000 | 35,000 |
| 天猫旗舰店 | K 金 |
50 | 150.000 | 8.000 | 20,000 |
12 | 40.000 | 2.000 | 6,000 |
6 | 20.000 | 1.000 | 3,000 |
4 | 15.000 | 0.500 | 2,000 |
3 | 10.000 | 0.500 | 1,500 |
1 | 5.000 | 0.200 | 500 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
2 | 8.000 | 0.300 | 800 |
4 | 15.000 | 0.800 | 1,800 |
5 | 18.000 | 0.700 | 2,200 |
2 | 8.000 | 0.300 | 800 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
0 | 0.000 | 0.000 | 0 |
60 | 177.000 | 8.700 | 24,200 |
📥 入库单据(7 种)
- 商品入库 - 其他商品入库
- 调拨入 - 从其他仓库/门店调拨入库
- 销售退回 - 客户退货入库
- 盘盈入 - 盘点盘盈入库
- 其他入库 - 其他原因入库
- 调整入库 - 库存调整入库
- 国检入库 - 国检后入库 ⭐新增
📤 出库单据(9 种)
- 采购退货 - 退回给供应商
- 批发销售 - 批发业务出库
- 销售 - 零售业务出库
- 调拨出 - 调拨到其他仓库/门店
- 报损出 - 报损出库
- 其他出库 - 其他原因出库
- 委外发 - 委外加工发出
- 形态转换 - 形态转换投入
- 国检出库 - 国检出库 ⭐新增
🗄️ 数据库设计(MySQL 8.4.6)
1. 核心表结构
1.1 日进销存报表主表
daily_inventory_report - 按日存储汇总数据
| 字段 | 类型 | 说明 |
| id | BIGINT | 主键 ID |
| report_date | DATE | 报表日期 |
| organization_id | BIGINT | 组织 ID |
| organization_name | VARCHAR(100) | 组织名称 |
| finance_class_id | BIGINT | 财务分类 ID |
| finance_class_name | VARCHAR(50) | 财务分类名称 |
| beginning_qty | DECIMAL(18,4) | 期初数量 |
| beginning_gold_weight | DECIMAL(18,4) | 期初金重 |
| beginning_stone_weight | DECIMAL(18,4) | 期初石重 |
| beginning_cost | DECIMAL(18,2) | 期初成本 |
| inbound_total_qty | DECIMAL(18,4) | 入库合计数量 |
| inbound_total_gold_weight | DECIMAL(18,4) | 入库合计金重 |
| outbound_total_qty | DECIMAL(18,4) | 出库合计数量 |
| outbound_total_gold_weight | DECIMAL(18,4) | 出库合计金重 |
| ending_qty | DECIMAL(18,4) | 期末数量 |
| ending_gold_weight | DECIMAL(18,4) | 期末金重 |
| ending_stone_weight | DECIMAL(18,4) | 期末石重 |
| ending_cost | DECIMAL(18,2) | 期末成本 |
| created_at | DATETIME | 创建时间 |
1.2 入库明细表
daily_inventory_inbound_detail - 入库明细(7 种单据)
| 字段 | 类型 | 说明 |
| id | BIGINT | 主键 ID |
| report_id | BIGINT | 关联主表 ID |
| inbound_type | INT | 入库类型(1-商品入库 等) |
| inbound_qty | DECIMAL(18,4) | 入库数量 |
| inbound_gold_weight | DECIMAL(18,4) | 入库金重 |
| inbound_stone_weight | DECIMAL(18,4) | 入库石重 |
| inbound_cost | DECIMAL(18,2) | 入库成本 |
| created_at | DATETIME | 创建时间 |
1.3 出库明细表
daily_inventory_outbound_detail - 出库明细(9 种单据)
| 字段 | 类型 | 说明 |
| id | BIGINT | 主键 ID |
| report_id | BIGINT | 关联主表 ID |
| outbound_type | INT | 出库类型(1-采购退货 等) |
| outbound_qty | DECIMAL(18,4) | 出库数量 |
| outbound_gold_weight | DECIMAL(18,4) | 出库金重 |
| outbound_stone_weight | DECIMAL(18,4) | 出库石重 |
| outbound_cost | DECIMAL(18,2) | 出库成本 |
| created_at | DATETIME | 创建时间 |
2. 建表 SQL 示例
CREATE TABLE `daily_inventory_report` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`report_date` date NOT NULL COMMENT '报表日期',
`organization_id` bigint NOT NULL COMMENT '组织ID',
`organization_name` varchar(100) NOT NULL COMMENT '组织名称',
`finance_class_id` bigint NOT NULL COMMENT '财务分类ID',
`finance_class_name` varchar(50) NOT NULL COMMENT '财务分类名称',
`beginning_qty` decimal(18,4) DEFAULT '0.0000' COMMENT '期初数量',
`beginning_gold_weight` decimal(18,4) DEFAULT '0.0000' COMMENT '期初金重',
`beginning_stone_weight` decimal(18,4) DEFAULT '0.0000' COMMENT '期初石重',
`beginning_cost` decimal(18,2) DEFAULT '0.00' COMMENT '期初成本',
`inbound_total_qty` decimal(18,4) DEFAULT '0.0000' COMMENT '入库合计数量',
`inbound_total_gold_weight` decimal(18,4) DEFAULT '0.0000' COMMENT '入库合计金重',
`outbound_total_qty` decimal(18,4) DEFAULT '0.0000' COMMENT '出库合计数量',
`outbound_total_gold_weight` decimal(18,4) DEFAULT '0.0000' COMMENT '出库合计金重',
`ending_qty` decimal(18,4) DEFAULT '0.0000' COMMENT '期末数量',
`ending_gold_weight` decimal(18,4) DEFAULT '0.0000' COMMENT '期末金重',
`ending_stone_weight` decimal(18,4) DEFAULT '0.0000' COMMENT '期末石重',
`ending_cost` decimal(18,2) DEFAULT '0.00' COMMENT '期末成本',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_report_date` (`report_date`),
KEY `idx_org_class` (`organization_id`,`finance_class_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='日进销存报表主表';
⚙️ 后端设计
1. 技术栈
核心技术
- 框架:Spring Boot 3.2.x
- ORM:MyBatis-Plus 3.5.x
- 数据库:MySQL 8.0+
- 缓存:Redis 7.0+(可选)
- Excel 导出:EasyExcel 3.3.x
2. 核心接口
2.1 报表查询接口
GET /api/inventory/report
参数:
- startDate: String (yyyy-MM-dd) 开始日期
- endDate: String (yyyy-MM-dd) 结束日期
- orgId: Long 组织ID(可选)
- classId: Long 财务分类ID(可选)
返回:
{
"code": 200,
"msg": "success",
"data": {
"summary": {
"totalRecord": 5,
"startDate": "2026-03-01",
"endDate": "2026-03-31"
},
"list": [/* 报表数据列表 */]
}
}
3. 核心逻辑
3.1 报表数据计算逻辑
- 期初库存:取查询开始日期前一天的期末库存
- 本期入库:汇总查询时间段内所有入库单据
- 本期出库:汇总查询时间段内所有出库单据
- 期末库存 = 期初库存 + 本期入库 - 本期出库