fix: 车辆追踪同人多条记录逐条显示,不合并里程
之前同人多条记录合并为一个总里程/总目标,但达标标记取"任一达标", 导致总里程<总目标却显示✓(如粤AGE4080: 1824/1839 ✓)。 改为每条记录独立显示里程/目标/达标,避免误导。 月度颜色也改为"全部达标才绿,否则红"。 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user