1 Commits

Author SHA1 Message Date
kkfluous
1c85b8f230 V1.1.0 计算过程sheet金额列拆分,支持逐项对账
- 2月/3月计算过程sheet:各类金额独立成列(结转/补发1月/当月/累计补发)
- 金额列填0而非空值,支持Excel直接SUM对账
- 去掉合并的"最终发放类型/金额"列,改为"发放合计"列
- 车辆奖金池总览:从参考文件导入全量492辆车

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 13:44:35 +08:00

View File

@@ -486,7 +486,7 @@ for k in sorted(G[1].keys(), key=lambda x: (x[1],x[0])):
len(g['recs']), g['天数'], R(g['应考核']), R(g['实际']),
'' if g['有达标'] else '', R(g['奖金']),
R(excess), g['目标km'], g['可结转'],
R(g['奖金']) if g['有达标'] else '', '当月达标' if g['有达标'] else '未达标'
R(g['奖金']) if g['有达标'] else 0, '当月达标' if g['有达标'] else '未达标'
]); rn+=1
AW(ws_p1)
@@ -503,9 +503,9 @@ WH(ws_p2, [
# 判断链
'判断①结转: 1月达标且可结转≥1?','→结转金额(完整月)',
'判断②补发1月: 1月未达标且累计达标?','→补发1月金额',
'判断③当月: 2月达标且无结转?','→当月金额',
'判断③当月: 2月达标且无结转?','2月当月金额',
'判断④累计补发2月: 2月未达标+无结转+累计达标?','→累计补发2月金额',
'最终发放类型','最终发放金额'
'2月发放合计'
])
rn=2
for k in sorted(G[2].keys(), key=lambda x: (x[1],x[0])):
@@ -530,11 +530,7 @@ for k in sorted(G[2].keys(), key=lambda x: (x[1],x[0])):
c4_check = f"2月未达标={not g2['有达标']}, 无结转={carry==0}, 累计达标={cq}"
c4_result = '是→累计补发' if cbp2>0 else ''
final_type = '结转' if carry>0 else ('当月' if bonus2>0 else ('累计补发2月' if cbp2>0 else ''))
final_amt = carry or bonus2 or cbp2 or 0
# 补发1月是额外的不影响2月的发放类型
if bp1>0: final_type += '+补发1月'
if bp1>0: final_amt += bp1
total_feb = carry + bp1 + bonus2 + cbp2
WR(ws_p2, rn, [
k[0], k[1], g2['部门'],
@@ -542,11 +538,11 @@ for k in sorted(G[2].keys(), key=lambda x: (x[1],x[0])):
len(g2['recs']), g2['天数'], R(g2['应考核']), R(g2['实际']),
'' if g2['有达标'] else '', R(g2['奖金']),
R(ct), R(ca), '达标' if cq else '未达标',
f"{c1_check}{c1_result}", R(carry) if carry>0 else '',
f"{c2_check}{c2_result}", R(bp1) if bp1>0 else '',
f"{c3_check}{c3_result}", R(bonus2) if bonus2>0 else '',
f"{c4_check}{c4_result}", R(cbp2) if cbp2>0 else '',
final_type, R(final_amt) if final_amt>0 else ''
f"{c1_check}{c1_result}", R(carry) if carry>0 else 0,
f"{c2_check}{c2_result}", R(bp1) if bp1>0 else 0,
f"{c3_check}{c3_result}", R(bonus2) if bonus2>0 else 0,
f"{c4_check}{c4_result}", R(cbp2) if cbp2>0 else 0,
R(total_feb) if total_feb>0 else 0
]); rn+=1
AW(ws_p2)
@@ -561,9 +557,9 @@ WH(ws_p3, [
'判断①结转','→结转金额',
'判断②补发1月','→补发1月金额',
'判断③补发2月','→补发2月金额',
'判断④当月','→当月金额',
'判断④当月','3月当月金额',
'判断⑤累计补发3月','→累计补发3月金额',
'最终发放类型','最终发放金额'
'3月发放合计'
])
rn=2
for k in sorted(G[3].keys(), key=lambda x: (x[1],x[0])):
@@ -590,13 +586,7 @@ for k in sorted(G[3].keys(), key=lambda x: (x[1],x[0])):
c4 = f"3月达标={g3['有达标']}, 无结转={carry==0}{'' if bonus3>0 else ''}"
c5 = f"3月未达标={not g3['有达标']}, 无结转={carry==0}, 累计达标={cq}{'' if cbp3>0 else ''}"
parts = []
total = 0
if carry>0: parts.append('结转'); total+=carry
if bj>0: parts.append('补发1月'); total+=bj
if bf2>0: parts.append('补发2月'); total+=bf2
if bonus3>0: parts.append('当月'); total+=bonus3
if cbp3>0: parts.append('累计补发3月'); total+=cbp3
total_mar = carry + bj + bf2 + bonus3 + cbp3
WR(ws_p3, rn, [
k[0], k[1], g3['部门'],
@@ -605,12 +595,12 @@ for k in sorted(G[3].keys(), key=lambda x: (x[1],x[0])):
len(g3['recs']), g3['天数'], R(g3['应考核']), R(g3['实际']),
'' if g3['有达标'] else '', R(g3['奖金']),
R(ct), R(ca), '达标' if cq else '未达标',
c1, R(carry) if carry>0 else '',
c2, R(bj) if bj>0 else '',
c3, R(bf2) if bf2>0 else '',
c4, R(bonus3) if bonus3>0 else '',
c5, R(cbp3) if cbp3>0 else '',
'+'.join(parts) if parts else '', R(total) if total>0 else ''
c1, R(carry) if carry>0 else 0,
c2, R(bj) if bj>0 else 0,
c3, R(bf2) if bf2>0 else 0,
c4, R(bonus3) if bonus3>0 else 0,
c5, R(cbp3) if cbp3>0 else 0,
R(total_mar) if total_mar>0 else 0
]); rn+=1
AW(ws_p3)