From 04b6035d52fb72d2f5e6ba7d285c507b436cd9e5 Mon Sep 17 00:00:00 2001 From: kkfluous Date: Thu, 2 Apr 2026 17:09:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=BD=A6=E8=BE=86=E8=BF=BD=E8=B8=AA?= =?UTF-8?q?=E5=90=8C=E4=BA=BA=E5=A4=9A=E6=9D=A1=E8=AE=B0=E5=BD=95=E9=80=90?= =?UTF-8?q?=E6=9D=A1=E6=98=BE=E7=A4=BA=EF=BC=8C=E4=B8=8D=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E9=87=8C=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 之前同人多条记录合并为一个总里程/总目标,但达标标记取"任一达标", 导致总里程<总目标却显示✓(如粤AGE4080: 1824/1839 ✓)。 改为每条记录独立显示里程/目标/达标,避免误导。 月度颜色也改为"全部达标才绿,否则红"。 Co-Authored-By: Claude Opus 4.6 (1M context) --- excel_writer.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/excel_writer.py b/excel_writer.py index 84ab24f..28b88bb 100644 --- a/excel_writer.py +++ b/excel_writer.py @@ -388,24 +388,26 @@ def write_vehicle_tracking_sheet(wb, settle_month, G, master_vehicles, vehicle_p target_name or '',monthly_bonus or ''] cum_t=0; cum_a=0 - month_qualified = {} # {月份: bool} + month_qualified = {} # {月份: bool} - 所有记录都达标才算True for m in range(1, settle_month+1): mgs=[(k,g) for k,g in G.get(m,{}).items() if k[0]==plate] if mgs: lines = [] - any_q = False + all_q = True # 是否全部达标 for _,g in sorted(mgs, key=lambda x: x[0][1]): - t=g['应考核']; a=g['实际'] - cum_t+=t; cum_a+=a - q = g['有达标'] - if q: any_q = True + cum_t+=g['应考核']; cum_a+=g['实际'] sd = g['部门'].replace('业务','') if '业务' in g.get('部门','') else g.get('部门','') - lines.append(f"{sd}-{g['销售']}: {R(a,0)}/{R(t,0)} {'✓' if q else '✗'}") + # 逐条记录显示,不合并 + for rec in g['recs']: + rt=rec['应考核里程(km)']; ra=rec['实际行驶里程(km)'] + rq = rec['是否达标'] == '达标' + if not rq: all_q = False + lines.append(f"{sd}-{g['销售']}: {R(ra,0)}/{R(rt,0)} {'✓' if rq else '✗'}") row.append('\n'.join(lines)) - month_qualified[m] = any_q + month_qualified[m] = all_q else: row.append('') - month_qualified[m] = None # 无数据 + month_qualified[m] = None cum_q = False if settle_month>=2: