|
@@ -3177,74 +3177,84 @@ class Dataflow_dumplicate(Dataflow):
|
|
|
|
|
|
|
|
|
#更新私有属性
|
|
|
- for _pp in list_package_properties:
|
|
|
-
|
|
|
- flag_update = False
|
|
|
- sub_project_name = _pp.get(project_sub_project_name,"")
|
|
|
- if sub_project_name=="Project":
|
|
|
- sub_project_name = ""
|
|
|
- win_tenderer = _pp.get(project_win_tenderer,"")
|
|
|
- win_bid_price = _pp.get(project_win_bid_price,0)
|
|
|
- bidding_budget = _pp.get(project_bidding_budget,0)
|
|
|
- if win_tenderer!="" and bidding_budget!=0:
|
|
|
- _key = "%s-%s-%s"%(sub_project_name,str(win_tenderer),str(bidding_budget))
|
|
|
- if _key in dict_package:
|
|
|
- if self.is_same_package(_pp,dict_package[_key]):
|
|
|
- ud = self.getUpdate_dict(_pp)
|
|
|
- self.set_project_uuid(ud,dict_package[_key].get("uuid"))
|
|
|
- dict_package[_key].update(ud)
|
|
|
- flag_update = True
|
|
|
- continue
|
|
|
- if win_tenderer!="" and win_bid_price!=0:
|
|
|
- _key = "%s-%s-%s"%(sub_project_name,win_tenderer,str(win_bid_price))
|
|
|
- if _key in dict_package:
|
|
|
- if self.is_same_package(_pp,dict_package[_key]):
|
|
|
- ud = self.getUpdate_dict(_pp)
|
|
|
- self.set_project_uuid(ud,dict_package[_key].get("uuid"))
|
|
|
- dict_package[_key].update(ud)
|
|
|
- flag_update = True
|
|
|
- continue
|
|
|
- if win_tenderer!="":
|
|
|
- _key = "%s-%s"%(sub_project_name,win_tenderer)
|
|
|
- if _key in dict_package:
|
|
|
- if self.is_same_package(_pp,dict_package[_key]):
|
|
|
- ud = self.getUpdate_dict(_pp)
|
|
|
- self.set_project_uuid(ud,dict_package[_key].get("uuid"))
|
|
|
- dict_package[_key].update(ud)
|
|
|
- flag_update = True
|
|
|
- continue
|
|
|
- if bidding_budget!=0:
|
|
|
- _key = "%s-%s"%(sub_project_name,str(bidding_budget))
|
|
|
- if _key in dict_package:
|
|
|
- if self.is_same_package(_pp,dict_package[_key]):
|
|
|
- ud = self.getUpdate_dict(_pp)
|
|
|
- self.set_project_uuid(ud,dict_package[_key].get("uuid"))
|
|
|
- dict_package[_key].update(ud)
|
|
|
- flag_update = True
|
|
|
- continue
|
|
|
- if not flag_update:
|
|
|
- _pp.update(project_dict)
|
|
|
- projects.append(_pp)
|
|
|
+ if len(projects)==1 and len(list_package_properties)==1:
|
|
|
+ _pp = list_package_properties[0]
|
|
|
+ pp = projects[0]
|
|
|
+ ud = self.getUpdate_dict(_pp)
|
|
|
+ self.set_project_uuid(ud,pp.get("uuid"))
|
|
|
+ pp.update(_pp)
|
|
|
+ else:
|
|
|
|
|
|
+ for _pp in list_package_properties:
|
|
|
|
|
|
- _counts = 0
|
|
|
+ flag_update = False
|
|
|
+ sub_project_name = _pp.get(project_sub_project_name,"")
|
|
|
+ if sub_project_name=="Project":
|
|
|
+ sub_project_name = ""
|
|
|
+ win_tenderer = _pp.get(project_win_tenderer,"")
|
|
|
+ win_bid_price = _pp.get(project_win_bid_price,0)
|
|
|
+ bidding_budget = _pp.get(project_bidding_budget,0)
|
|
|
if win_tenderer!="" and bidding_budget!=0:
|
|
|
_key = "%s-%s-%s"%(sub_project_name,str(win_tenderer),str(bidding_budget))
|
|
|
- dict_package[_key] = _pp
|
|
|
- _counts += 1
|
|
|
+ if _key in dict_package:
|
|
|
+ if self.is_same_package(_pp,dict_package[_key]):
|
|
|
+ ud = self.getUpdate_dict(_pp)
|
|
|
+ self.set_project_uuid(ud,dict_package[_key].get("uuid"))
|
|
|
+ dict_package[_key].update(ud)
|
|
|
+ flag_update = True
|
|
|
+ continue
|
|
|
if win_tenderer!="" and win_bid_price!=0:
|
|
|
_key = "%s-%s-%s"%(sub_project_name,win_tenderer,str(win_bid_price))
|
|
|
- dict_package[_key] = _pp
|
|
|
- _counts +=1
|
|
|
- if _counts==0:
|
|
|
- if win_tenderer!="":
|
|
|
- _key = "%s-%s"%(sub_project_name,win_tenderer)
|
|
|
+ if _key in dict_package:
|
|
|
+ if self.is_same_package(_pp,dict_package[_key]):
|
|
|
+ ud = self.getUpdate_dict(_pp)
|
|
|
+ self.set_project_uuid(ud,dict_package[_key].get("uuid"))
|
|
|
+ dict_package[_key].update(ud)
|
|
|
+ flag_update = True
|
|
|
+ continue
|
|
|
+ if win_tenderer!="":
|
|
|
+ _key = "%s-%s"%(sub_project_name,win_tenderer)
|
|
|
+ if _key in dict_package:
|
|
|
+ if self.is_same_package(_pp,dict_package[_key]):
|
|
|
+ ud = self.getUpdate_dict(_pp)
|
|
|
+ self.set_project_uuid(ud,dict_package[_key].get("uuid"))
|
|
|
+ dict_package[_key].update(ud)
|
|
|
+ flag_update = True
|
|
|
+ continue
|
|
|
+ if bidding_budget!=0:
|
|
|
+ _key = "%s-%s"%(sub_project_name,str(bidding_budget))
|
|
|
+ if _key in dict_package:
|
|
|
+ if self.is_same_package(_pp,dict_package[_key]):
|
|
|
+ ud = self.getUpdate_dict(_pp)
|
|
|
+ self.set_project_uuid(ud,dict_package[_key].get("uuid"))
|
|
|
+ dict_package[_key].update(ud)
|
|
|
+ flag_update = True
|
|
|
+ continue
|
|
|
+ if not flag_update:
|
|
|
+ _pp.update(project_dict)
|
|
|
+ projects.append(_pp)
|
|
|
+
|
|
|
+
|
|
|
+ _counts = 0
|
|
|
+ if win_tenderer!="" and bidding_budget!=0:
|
|
|
+ _key = "%s-%s-%s"%(sub_project_name,str(win_tenderer),str(bidding_budget))
|
|
|
dict_package[_key] = _pp
|
|
|
- _counts += 1
|
|
|
- if bidding_budget!=0:
|
|
|
- _key = "%s-%s"%(sub_project_name,str(bidding_budget))
|
|
|
+ _counts += 1
|
|
|
+ if win_tenderer!="" and win_bid_price!=0:
|
|
|
+ _key = "%s-%s-%s"%(sub_project_name,win_tenderer,str(win_bid_price))
|
|
|
dict_package[_key] = _pp
|
|
|
- _counts += 1
|
|
|
+ _counts +=1
|
|
|
+ if _counts==0:
|
|
|
+ if win_tenderer!="":
|
|
|
+ _key = "%s-%s"%(sub_project_name,win_tenderer)
|
|
|
+ dict_package[_key] = _pp
|
|
|
+ _counts += 1
|
|
|
+ if bidding_budget!=0:
|
|
|
+ _key = "%s-%s"%(sub_project_name,str(bidding_budget))
|
|
|
+ dict_package[_key] = _pp
|
|
|
+ _counts += 1
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -4487,7 +4497,7 @@ if __name__ == '__main__':
|
|
|
# test_attachment_interface()
|
|
|
df_dump = Dataflow_dumplicate(start_delete_listener=False)
|
|
|
# df_dump.start_flow_dumplicate()
|
|
|
- df_dump.test_dumplicate(457656095
|
|
|
+ df_dump.test_dumplicate(562889387
|
|
|
)
|
|
|
# compare_dumplicate_check()
|
|
|
# df_dump.test_merge([391898061
|