diff --git a/inventory-backend/app/services/inventory_task.py b/inventory-backend/app/services/inventory_task.py index ee9c400..9d3729a 100644 --- a/inventory-backend/app/services/inventory_task.py +++ b/inventory-backend/app/services/inventory_task.py @@ -51,20 +51,19 @@ class InventoryWarningService: 构建纯文本物料清单表格 Args: - rows: [{"name": ..., "spec": ..., "qty": ..., "threshold": ...}, ...] + rows: [{"name": ..., "spec": ..., "qty": ..., "threshold": ..., "shortfall": ...}, ...] level: "red" 或 "yellow",决定阈值列标题 """ - threshold_label = "红色阈值" if level == "red" else "黄色阈值" lines = [ - "名称 | 规格 | 当前库存 | " + threshold_label, - "-" * 60, + "名称 | 规格 | 当前库存 | 缺少数量", + "-" * 55, ] for r in rows: name = r.get('name', '-') or '-' spec = r.get('spec', '-') or '-' qty = r.get('qty', '-') - th = r.get('threshold', '-') - lines.append(f"{name} | {spec} | {qty} | {th}") + shortfall = r.get('shortfall', '-') + lines.append(f"{name} | {spec} | {qty} | 差{shortfall}个") return '\n'.join(lines) @staticmethod @@ -141,6 +140,7 @@ class InventoryWarningService: 'spec': spec, 'qty': round(inv, 2), 'threshold': round(red_th, 2), + 'shortfall': round(red_th - inv, 2), } if use_yellow_channel: for email in emails_to_use: @@ -176,6 +176,7 @@ class InventoryWarningService: 'spec': spec, 'qty': round(inv, 2), 'threshold': round(yellow_th, 2), + 'shortfall': round(yellow_th - inv, 2), } if use_red_channel: for email in emails_to_use: