门店回款明细生成器
触发条件
当用户发送或引用一个《果蔬鲜订单_地区_X月X日.xlsx》文件并要求生成回款明细时,立即激活此技能。
执行步骤
- 读取用户提供的果蔬鲜订单数据源文件路径
- 运行
scripts/gen_store_detail.py生成门店回款明细Excel文件(通过命令行参数传入源文件路径) - 验证输出文件的关键结构(Sheet数量、指定门店差异化、公式、格式)
- 将生成的文件呈现给用户
运行命令
python scripts/gen_store_detail.py <source_file_path> [output_dir]
source_file_path:用户提供的果蔬鲜订单xlsx文件的绝对路径(必填)output_dir:输出文件的保存目录(可选,默认为数据源文件所在目录)
依赖:openpyxl, pandas(需提前安装到当前 Python 环境)
完整生成规则
详细规则参见 references/rules.md。
核心要点速览
- 输出文件名:《门店回款明细_地区_X月X日.xlsx》,日期取数据源占比最高日期,地区取源文件名标识
- 每门店一个Sheet,Sheet名=门店名称,按门店名开头数字升序排列
- 冻结A4(前3行固定)
Sheet结构(每店4层)
| 行 | 内容 | 样式 |
|---|---|---|
| Row1 标题 | 合并A1:O1,门店名称 | 微软雅黑14pt加粗居中,行高30,细边框,无底色 |
| Row2 合计 | I2/J2/K2/L2/M2/O2 为SUM公式 | 深黄#FFC000底,行高26 |
| Row3 表头 | 15列表头 | 蓝底#4472C4白字加粗,行高32 |
| Row4+ 数据 | 每行1个商品 | 微软雅黑11pt居中自动换行,细边框,按日期→商品名排序 |
15列公式
| 列 | 表头 | 公式 |
|---|---|---|
| A | 日期 | 源值 |
| B | 商品名称 | 源值 |
| C | 单位 | 源值 |
| D | 门店名称 | 源值 |
| E | 商品订货需求数 | 源值(取整) |
| F | 门店进货价 | 源值(>2位小数四舍五入取2位) |
| G | 商品实际发货数 | 源值(>2位小数四舍五入取2位) |
| H | 门店预付款 | =E*F |
| I | 门店实际货款合计 | =F*G |
| J | 门店货款差异 | =(G-E)*F |
| K | 超发-需要补款 | =IF(J>0,J,"") |
| L | 少发-需要退款 | =IF(J<0,J,"") |
| M | 筐数量 | 源值(取整) |
| N | 筐单价 | 源值(取整) |
| O | 筐金额 | =M*N |
数字格式
- E/M/N/O → 固定整数格式"0"
- F/G/H/I/J/K/L → 智能格式(逐单元格根据实际值判断):
- 整数 → "0"
- 正好1位小数 → "0.0"
- 正好2位小数 → "0.00"
- >2位小数 → 四舍五入取2位,格式"0.00"
- A列日期 → yyyy-mm-dd
11家指定门店差异化
名单(精确匹配):01每乐鲜超市(塔南路)、04好日子果蔬生活超市、09红楼超市永壁店、10红楼工农路店、11捡乐生鲜超市、16红楼塔坛店、17红楼东三教、18红楼华清店、19诚润生鲜超市(众美店)、34名优超市、35鹿泉区好宜多超市
差异化规则:
- I2 = INT(SUM(I4:I末行)),数字格式"0"(抹零);其余门店 I2 = SUM(),智能格式
- 隐藏 H/J/K/L 四列;其余门店不隐藏
列宽
A:12 B:30 C:8 D:28 E:14 F:12 G:14 H:12 I:16 J:14 K:18 L:16 M:10 N:10 O:10
注意事项
- 指定门店名单如有变更,用户会随时通知,需及时更新脚本中的 DESIGNATED_STORES 列表和此 SKILL.md
- 源值>2位小数时,写入单元格前先四舍五入到2位
- 公式列根据预计算结果值确定数字格式
- G列(实际发货数)可能为空(表示未发货),此时I=F*0=0