Lazy loaded image
Task 2 - That's Not My Department Background
Words 887Read Time 3 min
2025-4-20

📋 题目分析

✅ 简单介绍

延续上一题的销售记录与报表处理背景,本题目要求我们进一步优化“部门间商品价格表”的处理方式。由于不同的部门可能携带不同的商品,或对相同商品设定不同价格,造成重复劳动。因此,我们需要实现一个系统,能够灵活地将“补丁价格表”合并到标准价格表中,并基于各部门的实际销售记录分别生成报表。
本题主要任务:
  1. 整合部门价格表(标准价格表 + 补丁价格表);
  1. 按部门生成销售报表,包括:
      • 错误记录的筛选;
      • 每部门的销售统计。
⚠️ 所有逻辑均基于上一题的规则(如销售是否有效、报表字段结构等)。

💡 解题思路

核心任务拆解

本题主要涉及两个函数:

🧹 1. patch_item_price(price, patch)

功能:将补丁价格表 patch 合并到标准价格表 price 上。
  • 如果 patch 中存在的新商品,则直接添加;
  • 如果 patch 中存在的商品价格不同,则覆盖原有价格
优化后的优雅依赖优先编排位的偶然性
伪代码

📟 2. generate_sales_reports(price, patch, sales)

功能:按部门分别生成销售报表与错误记录。
  • sales 中每条记录包含:部门名、商品名、数量、销售总价;
  • 先为每个部门构造其实际的价格表(price + patch[department]);
  • 然后从中筛选该部门的销售记录,计算其报表和错误列表;
  • 最终输出一个包含多个 (department, 报表, 错误列表) 的列表。
伪代码

📌 注意事项

  1. patch_item_price 返回新的价格表,✅ 不应修改原始 price
  1. sales 中每条记录需要正确提取出 ✅ 部门名及其余字段;
  1. 每个部门都必须有一个报表,✅ 即使该部门没有销售记录;
  1. 报表统计逻辑 ✅ 直接复用上一题 generate_sales_report() 函数;
  1. 保持结构整洁,建议函数内部分逻辑封装为小函数。

🤔 总结

本题是在上一题基础上增加了“多部门分化价格”的场景处理,但整体思路没有本质变化。问题不大,秒了。