|
@@ -2170,7 +2170,7 @@ def update_projects_by_project(project_dict,projects):
|
|
_dict = {}
|
|
_dict = {}
|
|
#更新公共属性
|
|
#更新公共属性
|
|
for k,v in project_dict.items():
|
|
for k,v in project_dict.items():
|
|
- if k in (project_project_dynamics,project_page_time,project_product,project_project_codes,project_docids,project_uuid,project_nlp_enterprise,project_nlp_enterprise_attachment):
|
|
|
|
|
|
+ if k in (project_project_dynamics,project_page_time,project_sub_project_name,project_product,project_project_codes,project_docids,project_uuid,project_nlp_enterprise,project_nlp_enterprise_attachment):
|
|
continue
|
|
continue
|
|
for _proj in projects:
|
|
for _proj in projects:
|
|
if k not in _proj:
|
|
if k not in _proj:
|
|
@@ -2184,10 +2184,15 @@ def update_projects_by_project(project_dict,projects):
|
|
elif isinstance(_v,(int,float)):
|
|
elif isinstance(_v,(int,float)):
|
|
if _v==0:
|
|
if _v==0:
|
|
_dict[k] = v
|
|
_dict[k] = v
|
|
|
|
+
|
|
for _proj in projects:
|
|
for _proj in projects:
|
|
_proj.update(_dict)
|
|
_proj.update(_dict)
|
|
if _proj.get(project_page_time,"")<project_dict.get(project_page_time,""):
|
|
if _proj.get(project_page_time,"")<project_dict.get(project_page_time,""):
|
|
_proj[project_page_time] = project_dict.get(project_page_time,"")
|
|
_proj[project_page_time] = project_dict.get(project_page_time,"")
|
|
|
|
+ if project_dict.get(project_sub_project_name) is not None and project_dict.get(project_sub_project_name) not in {"","Project"}:
|
|
|
|
+ if not (_proj.get(project_sub_project_name) is not None and _proj.get(project_sub_project_name) not in {"","Project"}):
|
|
|
|
+ _proj[project_sub_project_name] = project_dict.get(project_sub_project_name)
|
|
|
|
+
|
|
|
|
|
|
#拼接属性
|
|
#拼接属性
|
|
append_dict = {}
|
|
append_dict = {}
|
|
@@ -2398,7 +2403,7 @@ def check_zhaozhong_page_time_merge(zhao_biao_page_time,zhong_biao_page_time,zha
|
|
return -1
|
|
return -1
|
|
return 1
|
|
return 1
|
|
|
|
|
|
-def check_sub_project_name_merge(sub_project_name,sub_project_name_to_merge,b_log):
|
|
|
|
|
|
+def check_sub_project_name_merge(sub_project_name,sub_project_name_to_merge,project_dynamics,project_dynamics_to_merge,b_log,package_number_pattern = re.compile("((包|标[段号的包]|分?包|包组|项目)编?号?[::]?[\((]?[0-9A-Za-z一二三四五六七八九十]{1,4})|(第?[0-9A-Za-z一二三四五六七八九十]{1,4}(包号|标[段号的包]|分?包))")):
|
|
#check sub_project_name
|
|
#check sub_project_name
|
|
sub_project_name = str(sub_project_name).replace("Project","")
|
|
sub_project_name = str(sub_project_name).replace("Project","")
|
|
sub_project_name_to_merge = str(sub_project_name_to_merge).replace("Project","")
|
|
sub_project_name_to_merge = str(sub_project_name_to_merge).replace("Project","")
|
|
@@ -2409,6 +2414,42 @@ def check_sub_project_name_merge(sub_project_name,sub_project_name_to_merge,b_lo
|
|
log("check sub_project_name failed %s===%s"%(str(sub_project_name),str(sub_project_name_to_merge)))
|
|
log("check sub_project_name failed %s===%s"%(str(sub_project_name),str(sub_project_name_to_merge)))
|
|
return -1
|
|
return -1
|
|
return 1
|
|
return 1
|
|
|
|
+ if project_dynamics is not None and project_dynamics_to_merge is not None:
|
|
|
|
+ try:
|
|
|
|
+ project_dynamics = json.loads(project_dynamics)
|
|
|
|
+ project_dynamics_to_merge = json.loads(project_dynamics_to_merge)
|
|
|
|
+ set_title_name = set()
|
|
|
|
+ set_title_name_to_merge = set()
|
|
|
|
+ for _d in project_dynamics:
|
|
|
|
+ _title1 = _d.get(document_doctitle,"")
|
|
|
|
+ _title_name = None
|
|
|
|
+ _title_name_search = re.search(package_number_pattern,_title1)
|
|
|
|
+ if _title_name_search is not None:
|
|
|
|
+ _title_name = _title_name_search.group()
|
|
|
|
+ _title_name = re.sub("[^0-9A-Za-z一二三四五六七八九十]",'',_title_name)
|
|
|
|
+ if _title_name!="":
|
|
|
|
+ set_title_name.add(_title_name)
|
|
|
|
+
|
|
|
|
+ for _dm in project_dynamics_to_merge:
|
|
|
|
+
|
|
|
|
+ _title2 = _dm.get(document_doctitle,"")
|
|
|
|
+ _title_name = None
|
|
|
|
+ _title_name_search = re.search(package_number_pattern,_title2)
|
|
|
|
+ if _title_name_search is not None:
|
|
|
|
+ _title_name = _title_name_search.group()
|
|
|
|
+ _title_name = re.sub("[^0-9A-Za-z一二三四五六七八九十]",'',_title_name)
|
|
|
|
+ if _title_name!="":
|
|
|
|
+ set_title_name_to_merge.add(_title_name)
|
|
|
|
+ if len(set_title_name)>0 and len(set_title_name_to_merge)>0:
|
|
|
|
+ if len(set_title_name&set_title_name_to_merge)==0:
|
|
|
|
+ if b_log:
|
|
|
|
+ log("check sub_project_name title set failed %s===%s"%(str(set_title_name),str(set_title_name_to_merge)))
|
|
|
|
+ return -1
|
|
|
|
+ else:
|
|
|
|
+ return 1
|
|
|
|
+ except Exception as e:
|
|
|
|
+ traceback.print_exc()
|
|
|
|
+
|
|
return 0
|
|
return 0
|
|
|
|
|
|
def check_roles_merge(enterprise,enterprise_to_merge,tenderee,tenderee_to_merge,agency,agency_to_merge,win_tenderer,win_tenderer_to_merge,b_log):
|
|
def check_roles_merge(enterprise,enterprise_to_merge,tenderee,tenderee_to_merge,agency,agency_to_merge,win_tenderer,win_tenderer_to_merge,b_log):
|
|
@@ -2681,13 +2722,13 @@ def check_merge_rule(_proj,_dict,b_log=False,time_limit=86400*300,return_prob=Fa
|
|
check_dict[_time_check] += 1
|
|
check_dict[_time_check] += 1
|
|
|
|
|
|
#时间判断-分包编号
|
|
#时间判断-分包编号
|
|
- _sub_project_name_check = check_sub_project_name_merge(sub_project_name,sub_project_name_to_merge,b_log)
|
|
|
|
|
|
+ _sub_project_name_check = check_sub_project_name_merge(sub_project_name,sub_project_name_to_merge,project_dynamics,project_dynamics_to_merge,b_log)
|
|
if docids==docids_to_merge and _sub_project_name_check==-1:
|
|
if docids==docids_to_merge and _sub_project_name_check==-1:
|
|
if return_prob:
|
|
if return_prob:
|
|
return False,0
|
|
return False,0
|
|
return False
|
|
return False
|
|
check_dict[_sub_project_name_check] += 1
|
|
check_dict[_sub_project_name_check] += 1
|
|
- prob_count += _sub_project_name_check
|
|
|
|
|
|
+ prob_count += _sub_project_name_check*3
|
|
|
|
|
|
#时间判断-发布时间
|
|
#时间判断-发布时间
|
|
_page_time_check = check_page_time_merge(page_time,page_time_to_merge,b_log,time_limit)
|
|
_page_time_check = check_page_time_merge(page_time,page_time_to_merge,b_log,time_limit)
|