Преглед на файлове

Merge branch 'master' of http://192.168.2.103:3000/luojiehua/BIDI_ML_INFO_EXTRACTION

znj преди 2 години
родител
ревизия
223ee6fbc3
променени са 1 файла, в които са добавени 16 реда и са изтрити 10 реда
  1. 16 10
      BiddingKG/dl/interface/getAttributes.py

+ 16 - 10
BiddingKG/dl/interface/getAttributes.py

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