znj 10 місяців тому
батько
коміт
ad4a12705b

+ 14 - 7
BiddingKG/dl/interface/getAttributes.py

@@ -944,7 +944,8 @@ def findAttributeAfterEntity(PackDict,roleSet,PackageList,PackageSet,list_senten
     def addServiceTimeByEntity(packDict,packageName,entity,serviceTime):
         for i in range(len(packDict[packageName]["roleList"])):
             if packDict[packageName]["roleList"][i].entity_text==entity:
-                packDict[packageName]["roleList"][i].serviceTime = serviceTime.entity_text
+                # packDict[packageName]["roleList"][i].serviceTime = serviceTime.entity_text
+                packDict[packageName]["roleList"][i].serviceTime = extract_serviceTime(serviceTime.entity_text,"")
 
     #根据实体名称得到角色
     def getRoleWithText(packDict,entity_text):
@@ -3829,7 +3830,7 @@ def extract_serviceTime(service_time,page_time):
 
         return sum(result_list) + result
 
-    serviceTime_dict = {"service_start": "", "service_end": "", "service_days": ""}
+    serviceTime_dict = {"service_start": "", "service_end": "", "service_days": 0}
     re_num = re.findall(r'[〇一二三四五六七八九零壹贰叁肆伍陆柒捌玖貮两十拾百佰千仟]+',service_time)
     for _num in re_num:
         if not re.search("[十拾百佰千仟]",_num):
@@ -3929,12 +3930,15 @@ def extract_serviceTime(service_time,page_time):
                     service_days = 0
 
                 if service_days>0:
-                    service_days = str(service_days) + "天"
+                    # service_days = str(service_days) + "天"
                     serviceTime_dict['service_days'] = service_days
                     break
     elif "半年" in service_time:
         service_days = 180
-        service_days = str(service_days) + "天"
+        # service_days = str(service_days) + "天"
+        serviceTime_dict['service_days'] = service_days
+    if serviceTime_dict['service_start'] and serviceTime_dict['service_end']:
+        service_days = get_days_between(serviceTime_dict['service_start'],serviceTime_dict['service_end'])
         serviceTime_dict['service_days'] = service_days
 
     return serviceTime_dict
@@ -3976,7 +3980,7 @@ def getOtherAttributes(list_entity,page_time,prem,channel_dic):
 
     time_contractEnd = prem[0].get("time_contractEnd","")[:10]
     time_contractStart = prem[0].get("time_contractStart","")[:10]
-    serviceTime_dict = {"service_start":"", "service_end":"", "service_days": ""}
+    serviceTime_dict = {"service_start":"", "service_end":"", "service_days": 0}
     if time_contractEnd:
         serviceTime_dict['service_end'] = time_contractEnd
         if time_contractStart:
@@ -4040,7 +4044,7 @@ def getOtherAttributes(list_entity,page_time,prem,channel_dic):
                                 break
     if serviceTime_dict['service_start'] and serviceTime_dict['service_end']:
         service_days = get_days_between(serviceTime_dict['service_start'],serviceTime_dict['service_end'])
-        serviceTime_dict['service_days'] = str(service_days) + "天"
+        serviceTime_dict['service_days'] = service_days
     dict_other["serviceTime"] = serviceTime_dict
     if not time_contractEnd and channel_dic['docchannel']['docchannel']=='合同公告': # 用serviceTime补充合同开始结束时间,公告类型为合同公告
         if serviceTime_dict['service_start'] and serviceTime_dict['service_end']:
@@ -4189,7 +4193,10 @@ def limit_maximum_amount(dic, list_entity):
     for value in dic['prem'].values():
         for l in value['roleList']:
             if l["role_name"] in ['win_tenderer', 'second_tenderer', 'third_tenderer']:
-                date = float(re.search('(\d+)天', l.get('serviceTime', '')).group(1)) if re.search('(\d+)天', l.get('serviceTime', '')) else 0
+                # date = float(re.search('(\d+)天', l.get('serviceTime', '')).group(1)) if re.search('(\d+)天', l.get('serviceTime', '')) else 0
+                serviceTime_dict = l.get('serviceTime', dict())
+                serviceTime_dict = serviceTime_dict if serviceTime_dict else dict()
+                date = serviceTime_dict.get("service_days",0)
                 if 0 < date < 180 and float(l["role_money"]['money']) > 10000000000: # 工期小于180天且金额大于百亿的,错误
                     l["role_money"]['money'] = str(Decimal(l["role_money"]['money']) / 10000)
                     # print('工期纠正百亿以上金额 ')

+ 5 - 3
BiddingKG/dl/time/re_servicetime.py

@@ -30,13 +30,13 @@ before = '(?P<before>' \
          '|履约期限|合同的?约定完成时限|合同的?完成日期|承诺完成日期' \
          '|合同起始日起|合同的?履约期|履约截止日期|承包期限|合同的?完成日期|特许经营期限' \
          '|服务期间|服务履行期|委托(管理)?期限|经营期限|数量' \
-         '|(工期|服务期限?|交货期限?|服务履行期|合同期限?|履[行约]期限?)说明' \
+         '|(工期|服务期限?|交货期限?|服务履行期|合同期限?|履[行约]期限?)说明|存款期限?|存款年限' \
          ')'
 
 
 # ^(?!.*abc).*$ 排除abc字符串
 before_wuye = '(?P<before>' \
-              '(履约期限、地点等简要信息[::]((履约|时间|期限){1,2}[::])?)' \
+              '(履约期限、地点等简要信息[::]((履约|时间|期限){1,2}[::])?)' \
               ')'
 # '|(履约期限、地点等简要信息[^\d半一二三四五六七八九十壹两叁贰肆伍陆柒捌玖拾]{0,25})' \
 # (履约期限、地点等简要信息.{0,25}(?= [\d半一二三四五六七八九十壹两叁贰肆伍陆柒捌玖拾]+([年月日]|个月)|20[21]))
@@ -409,7 +409,9 @@ def test_from_str():
         "服务时间:2023年12-2024年12," \
         "第十四条,服务时间:2023.12-2024.12,。" \
         "第十四条本合同自2023年3月1日起至2024年2月29日止。" \
-        "二、垃圾清运委外期限,垃圾委外清运时间为1年,自2023年1月1日起至2023年12月31日止。"
+        "服务时间:自2022年10月1日至2023年9月3日" \
+        "二、垃圾清运委外期限,垃圾委外清运时间为1年,自2023年1月1日起至2023年12月31日止。" \
+        "服务时间:预计从2022年11月起,12个月。"
     # s = '第十四条,服务时间:2023.12-2024.12服务时间'
 #     s = ''',莆田市财政局走廊及卫生间吊顶改造工程中标结果公告,莆田市财政局走廊及卫生间吊顶改造工程,工程预算价236878元,发包价194240元,招标编号为:宏福莆招字【2020】H001号,该项目招标方式为:邀请招标。2020年04月07日开标,2020年04月07日评标完成,中标主要结果公示如下:中标人名称,福建省东海伟业建设有限公司,中标价:194240元,评标办法,随机抽取法,资格评审结果,注册建造师:合格:余爱华(注册编号:闽235141578763),履约保证金(元):合格:合同金额的10%,施工工期:14日历天,工程质量,备注,被确定为废标、无效标的投标人及原因:合格:无废标,资格审查小组:合格:王宗仙、林慧灵、谢淑青,根据评标结果确定福建省东海伟业建设有限公司为中标人,现在莆田市财政局网上(http://czj.putian.gov.cn/)公示。中标公示期自2020年04月08日至2020年04月10日。投标人对中标结果有异议或认为评标活动存在违法违规行为,可在公示期内向相关主管部门投诉,招标单位:招标代理机构:莆田市财政局,福建省宏福工程管理有限公司,联系电话:0594-2694413,联系电话:15160467775,2020年04月08日,2020年04月08日,
 # '''