fix: 车辆追踪同人多条记录逐条显示,不合并里程

之前同人多条记录合并为一个总里程/总目标,但达标标记取"任一达标",
导致总里程<总目标却显示✓(如粤AGE4080: 1824/1839 ✓)。
改为每条记录独立显示里程/目标/达标,避免误导。
月度颜色也改为"全部达标才绿,否则红"。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
kkfluous
2026-04-02 17:09:21 +08:00
parent 4c43c00e73
commit 04b6035d52

View File

@@ -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: