|
@@ -3486,30 +3486,36 @@ def update_prem(old_prem, new_prem):
|
|
|
for k, v in new_prem.items():
|
|
|
if k == 'Project':
|
|
|
if 'Project' in old_prem:
|
|
|
+ tmp_l = [] # 保存新旧同时包含的角色
|
|
|
for d in old_prem['Project']['roleList']:
|
|
|
for d2 in v['roleList']:
|
|
|
- if d['role_name'] == d2['role_name']:
|
|
|
+ if d['role_name'] == d2['role_name']: # 同时包含的角色用表格的替换
|
|
|
+ tmp_l.append(d2)
|
|
|
d['role_text'] = d2['role_text']
|
|
|
- d['role_money']['money'] = d2['role_money']['money']
|
|
|
- d['role_money']['money_unit'] = d2['role_money']['money_unit']
|
|
|
- v['roleList'].remove(d2)
|
|
|
+ if d2['role_money']['money'] != 0: # 如果表格提取的金额不为0才替换
|
|
|
+ d['role_money']['money'] = d2['role_money']['money']
|
|
|
+ d['role_money']['money_unit'] = d2['role_money']['money_unit']
|
|
|
for d2 in v['roleList']:
|
|
|
- old_prem['Project']['roleList'].append(d2)
|
|
|
+ if d2 not in tmp_l: # 把新预测有,旧没有的角色添加上去
|
|
|
+ old_prem['Project']['roleList'].append(d2)
|
|
|
else:
|
|
|
old_prem[k] = v
|
|
|
else:
|
|
|
- if k not in old_prem:
|
|
|
+ if k not in old_prem: # 新有旧没有的包直接添加
|
|
|
old_prem[k] = v
|
|
|
else:
|
|
|
+ tmp_l = [] # 保存新旧同时包含的角色
|
|
|
for d in old_prem[k]['roleList']:
|
|
|
for d2 in v['roleList']:
|
|
|
if d['role_name'] == d2['role_name']:
|
|
|
+ tmp_l.append(d2)
|
|
|
d['role_text'] = d2['role_text']
|
|
|
- d['role_money']['money'] = d2['role_money']['money']
|
|
|
- d['role_money']['money_unit'] = d2['role_money']['money_unit']
|
|
|
- v['roleList'].remove(d2)
|
|
|
+ if d2['role_money']['money'] != 0: # 如果表格提取的金额不为0才替换
|
|
|
+ d['role_money']['money'] = d2['role_money']['money']
|
|
|
+ d['role_money']['money_unit'] = d2['role_money']['money_unit']
|
|
|
for d2 in v['roleList']:
|
|
|
- old_prem[k]['roleList'].append(d2)
|
|
|
+ if d2 not in tmp_l: # 把新预测有,旧没有的角色添加上去
|
|
|
+ old_prem[k]['roleList'].append(d2)
|
|
|
|
|
|
# return old_prem
|
|
|
|