소스 검색

采购意向去重规则

znj 1 개월 전
부모
커밋
59b020186b
1개의 변경된 파일15개의 추가작업 그리고 4개의 파일을 삭제
  1. 15 4
      BaseDataMaintenance/maxcompute/documentDumplicate.py

+ 15 - 4
BaseDataMaintenance/maxcompute/documentDumplicate.py

@@ -1358,12 +1358,23 @@ def check_dumplicate_rule(document_less,document_greater,min_counts,b_log=False,
                 demand_info_less = _demand_info_less
                 demand_info_greater = _demand_info_greater
             for item1 in demand_info_less:
+                tmp_project_name_less = re.sub("\s","",item1.get("project_name","").strip())
+                tmp_project_name_less = tmp_project_name_less.replace("(","(").replace(")",")")
+                tmp_budget_less = float(item1.get("budget",0) if item1.get("budget",0) else 0)
+                tmp_order_begin_less = item1.get("order_begin","")
+                tmp_order_end_less = item1.get("order_end", "")
                 get_same = False
                 for item2 in demand_info_greater:
-                    if check_doctitle(re.sub("\s","",item1.get("project_name","").strip()),re.sub("\s","",item2.get("project_name","").strip())) and \
-                            check_money(float(item1.get("budget",0) if item1.get("budget",0) else 0),float(item2.get("budget",0) if item2.get("budget",0) else 0),0,0,[],[],[],[]) and \
-                            (item1.get("order_begin", "")[:7]==item2.get("order_begin", "")[:7] or \
-                                item1.get("order_end", "")[:7]==item2.get("order_end", "")[:7]):
+                    tmp_project_name_greater = re.sub("\s", "", item2.get("project_name", "").strip())
+                    tmp_project_name_greater = tmp_project_name_greater.replace("(", "(").replace(")", ")")
+                    tmp_budget_greater = float(item2.get("budget",0) if item2.get("budget",0) else 0)
+                    tmp_order_begin_greater = item2.get("order_begin", "")
+                    tmp_order_end_greater = item2.get("order_end", "")
+                    # 项目名称相同或包含关系,预算金额对比,预计采购时间开始或结束相等(只对比到月份)
+                    if (tmp_project_name_less==tmp_project_name_greater or
+                        (len(tmp_project_name_less)>0 and len(tmp_project_name_greater)>0 and (tmp_project_name_less.find(tmp_project_name_greater)>=0 or tmp_project_name_greater.find(tmp_project_name_less)>=0))) and \
+                            check_money(tmp_budget_less,tmp_budget_greater,0,0,[],[],[],[]) and \
+                            (tmp_order_begin_less[:7]==tmp_order_begin_greater[:7] or tmp_order_end_less[:7]==tmp_order_end_greater[:7]):
                         get_same = True
                         break
                 if not get_same: