📋 题目分析
✅ 简单介绍
延续上一题的销售记录与报表处理背景,本题目要求我们进一步优化“部门间商品价格表”的处理方式。由于不同的部门可能携带不同的商品,或对相同商品设定不同价格,造成重复劳动。因此,我们需要实现一个系统,能够灵活地将“补丁价格表”合并到标准价格表中,并基于各部门的实际销售记录分别生成报表。
本题主要任务:
- 整合部门价格表(标准价格表 + 补丁价格表);
- 按部门生成销售报表,包括:
- 错误记录的筛选;
- 每部门的销售统计。
⚠️ 所有逻辑均基于上一题的规则(如销售是否有效、报表字段结构等)。
💡 解题思路
核心任务拆解
本题主要涉及两个函数:
🧹 1. patch_item_price(price, patch)
功能:将补丁价格表
patch
合并到标准价格表 price
上。- 如果 patch 中存在的新商品,则直接添加;
- 如果 patch 中存在的商品价格不同,则覆盖原有价格。
优化后的优雅依赖优先编排位的偶然性
伪代码
📟 2. generate_sales_reports(price, patch, sales)
功能:按部门分别生成销售报表与错误记录。
sales
中每条记录包含:部门名、商品名、数量、销售总价;
- 先为每个部门构造其实际的价格表(price + patch[department]);
- 然后从中筛选该部门的销售记录,计算其报表和错误列表;
- 最终输出一个包含多个
(department, 报表, 错误列表)
的列表。
伪代码:
📌 注意事项
patch_item_price
返回新的价格表,✅ 不应修改原始price
;
sales
中每条记录需要正确提取出 ✅ 部门名及其余字段;
- 每个部门都必须有一个报表,✅ 即使该部门没有销售记录;
- 报表统计逻辑 ✅ 直接复用上一题
generate_sales_report()
函数;
- 保持结构整洁,建议函数内部分逻辑封装为小函数。
🤔 总结
本题是在上一题基础上增加了“多部门分化价格”的场景处理,但整体思路没有本质变化。问题不大,秒了。