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: