From 7fc29ea2a01cd95b2490bb716c473687fda99afa Mon Sep 17 00:00:00 2001 From: zy123 <646228430@qq.com> Date: Thu, 21 Nov 2024 11:54:30 +0800 Subject: [PATCH] =?UTF-8?q?11.21=20=E4=BF=AE=E5=A4=8D=E4=BA=86=E5=B7=A5?= =?UTF-8?q?=E7=A8=8B=E6=A0=87=E8=B5=84=E6=A0=BC=E5=AE=A1=E6=9F=A5=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/encodings.xml | 1 + flask_app/general/format_change.py | 5 +- flask_app/general/merge_pdfs.py | 37 +- flask_app/general/无效标和废标公共代码.py | 4 +- flask_app/main/工程标解析main.py | 15 +- flask_app/testdir/test3.py | 400 +--------------------- 6 files changed, 53 insertions(+), 409 deletions(-) diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 6ee30e3..13db666 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -14,5 +14,6 @@ + \ No newline at end of file diff --git a/flask_app/general/format_change.py b/flask_app/general/format_change.py index 143d283..2fe42ce 100644 --- a/flask_app/general/format_change.py +++ b/flask_app/general/format_change.py @@ -182,8 +182,9 @@ if __name__ == '__main__': # local_path_in = "C:\\Users\\Administrator\\Desktop\\fsdownload\\b151fcd0-4cd8-49b4-8de3-964057a9e653\\ztbfile.docx" # local_path_in="C:\\Users\\Administrator\\Desktop\\fsdownload\\ztbfile.pdf" # local_path_in ="C:\\Users\\Administrator\\Desktop\\招标文件\\招标test文件夹\\招标文件.pdf" - local_path_in="C:\\Users\\Administrator\\Desktop\\货物标\\zbfilesdocx\\6.2定版视频会议磋商文件.doc" - downloaded_file=doc2docx(local_path_in) + # local_path_in=r"C:\Users\Administrator\Desktop\fsdownload\457ee03d-c61c-4672-b959-2bbb35a1de29\ztbfile_invalid.pdf" + local_path_in = r"C:\Users\Administrator\Desktop\fsdownload\457ee03d-c61c-4672-b959-2bbb35a1de29\ztbfile.pdf" + downloaded_file=pdf2docx(local_path_in) # downloaded_file=pdf2docx(local_path_in) # downloaded_file=docx2pdf(local_path_in) print(downloaded_file) diff --git a/flask_app/general/merge_pdfs.py b/flask_app/general/merge_pdfs.py index 7999e0b..e720690 100644 --- a/flask_app/general/merge_pdfs.py +++ b/flask_app/general/merge_pdfs.py @@ -7,24 +7,31 @@ def merge_pdfs(paths, output_path): last_page_text = None # 用于存储上一个PDF的最后一页的文本 for path in paths: - pdf_reader = PdfReader(path) - pages = pdf_reader.pages - start_index = 0 # 从第一页开始添加 + # 跳过空字符串或无效路径 + if not path.strip(): + continue + try: + pdf_reader = PdfReader(path) + pages = pdf_reader.pages + start_index = 0 # 从第一页开始添加 - # 如果这不是第一个文件,并且有上一个文件的最后一页文本 - if last_page_text is not None and len(pages) > 0: - current_first_page_text = pages[0].extract_text() if pages[0].extract_text() else "" - # 比较当前文件的第一页和上一个文件的最后一页的文本 - if current_first_page_text == last_page_text: - start_index = 1 # 如果相同,跳过当前文件的第一页 + # 如果这不是第一个文件,并且有上一个文件的最后一页文本 + if last_page_text is not None and len(pages) > 0: + current_first_page_text = pages[0].extract_text() if pages[0].extract_text() else "" + # 比较当前文件的第一页和上一个文件的最后一页的文本 + if current_first_page_text == last_page_text: + start_index = 1 # 如果相同,跳过当前文件的第一页 - # 添加当前PDF的页面到写入器 - for page in range(start_index, len(pages)): - pdf_writer.add_page(pages[page]) + # 添加当前PDF的页面到写入器 + for page in range(start_index, len(pages)): + pdf_writer.add_page(pages[page]) - # 更新last_page_text为当前PDF的最后一页的文本 - if len(pages) > 0: - last_page_text = pages[-1].extract_text() if pages[-1].extract_text() else "" + # 更新last_page_text为当前PDF的最后一页的文本 + if len(pages) > 0: + last_page_text = pages[-1].extract_text() if pages[-1].extract_text() else "" + except Exception as e: + print(f"文件 '{path}' 无法处理,错误: {e}") + continue # 写入合并后的PDF到文件 with open(output_path, 'wb') as out: diff --git a/flask_app/general/无效标和废标公共代码.py b/flask_app/general/无效标和废标公共代码.py index 0a9a442..bdcf2a6 100644 --- a/flask_app/general/无效标和废标公共代码.py +++ b/flask_app/general/无效标和废标公共代码.py @@ -585,8 +585,8 @@ if __name__ == '__main__': # truncate_file="C:\\Users\\Administrator\\Desktop\\货物标\\output4\\招标文件(实高电子显示屏)_tobidders_notice_part1.docx" # clause_path = "D:\\flask_project\\flask_app\\static\\output\\output1\\77a48c63-f39f-419b-af2a-7b3dbf41b70b\\clause1.json" # doc_path="C:\\Users\\Administrator\\Desktop\\货物标\\zbfilesdocx\\磋商文件(1).docx" - doc_path = r'D:\flask_project\flask_app\static\output\output1\2179c978-b638-4332-8bd2-2007ad6f7c9b\ztbfile.docx' - output_dir = r"D:\flask_project\flask_app\static\output\output1\2179c978-b638-4332-8bd2-2007ad6f7c9b\tmp" + doc_path = r'C:\Users\Administrator\Desktop\fsdownload\457ee03d-c61c-4672-b959-2bbb35a1de29\ztbfile.docx' + output_dir = r"C:\Users\Administrator\Desktop\fsdownload\457ee03d-c61c-4672-b959-2bbb35a1de29\tmp" results = combine_find_invalid(doc_path, output_dir) end_time = time.time() print("Results:", json.dumps(results, ensure_ascii=False, indent=4)) diff --git a/flask_app/main/工程标解析main.py b/flask_app/main/工程标解析main.py index 489eda6..2ebb08d 100644 --- a/flask_app/main/工程标解析main.py +++ b/flask_app/main/工程标解析main.py @@ -5,6 +5,8 @@ import os import time from concurrent.futures import ThreadPoolExecutor +from docx import Document + from flask_app.main.截取pdf import truncate_pdf_multiple from flask_app.general.merge_pdfs import merge_pdfs from flask_app.main.提取json工程标版 import convert_clause_to_json @@ -36,10 +38,10 @@ def preprocess_files(output_folder, downloaded_file_path, file_type,unique_id,lo pdf_path = docx2pdf(docx_path) # 将docx转换为pdf以供后续处理 elif file_type == 2: # pdf pdf_path = downloaded_file_path - docx_path = pdf2docx(pdf_path) # 将pdf转换为docx以供上传到知识库 + # docx_path = pdf2docx(pdf_path) # 将pdf转换为docx以供上传到知识库 elif file_type == 3: #doc pdf_path=docx2pdf(downloaded_file_path) - docx_path=doc2docx(downloaded_file_path) + # docx_path=doc2docx(downloaded_file_path) else: logger.error("Unsupported file type provided. Preprocessing halted.") return None @@ -62,7 +64,14 @@ def preprocess_files(output_folder, downloaded_file_path, file_type,unique_id,lo invalid_path=truncate_files[5] # invalid_docpath = copy_docx(docx_path) # docx截取无效标部分 invalid_docpath=pdf2docx(invalid_path) - + try: + # 尝试加载 .docx 文件 + doc = Document(invalid_docpath) + # 如果可以成功读取,则返回 True + return True + except Exception as e: + # 捕获异常并打印错误信息 + invalid_docpath=pdf2docx(pdf_path) merged_baseinfo_path=truncate_files[-1] more_path=[merged_baseinfo_path,tobidders_notice] diff --git a/flask_app/testdir/test3.py b/flask_app/testdir/test3.py index 5afd8ab..3e599fb 100644 --- a/flask_app/testdir/test3.py +++ b/flask_app/testdir/test3.py @@ -1,388 +1,14 @@ -# -*- encoding:utf-8 -*- -import json -from flask_app.general.doubao import doubao_model -from flask_app.general.json_utils import clean_json_string -import concurrent.futures +from docx import Document -def extract_zige_deviation_table(zige_info, fuhe_info): - prompt_template1 = """ - 任务:给出一份文本,根据文本提取资格性检查的具体评审标准。 - 输出要求: - 1.以json格式返回结果,不要输出其他内容。 - 2.键名为"资格性检查",键值为字符串列表,每个字符串为一条评审标准,评审标准不分先后,不要有序号标注。 - 要求与指南: - 1. 评审标准是具体的内容,不要返回诸如'本项目的特定资格要求:'这种标题性质且不能体现具体评审标准的内容。 - 2. 存在相同或相似表述的键名,需要合并列表,键名取其一即可。 - 文本内容:{full_text} - """ - - prompt_template2 = """ - 任务:给出一份文本,根据文本提取符合性检查的具体评审标准。 - 输出要求: - 1.以json格式返回结果,不要输出其他内容。 - 2.键名为"符合性检查",键值为字符串列表,每个字符串为一条评审标准,评审标准不分先后,不要有序号标注。 - 要求与指南: - 1. 评审标准是具体的内容,不要返回诸如'本项目的特定符合性要求:'这种标题性质且不能体现具体评审标准的内容。 - 2. 存在相同或相似表述的键名,需要合并列表,键名取其一即可。 - 文本内容:{full_text} - """ - - user_query1 = prompt_template1.format(full_text=zige_info) - user_query2 = prompt_template2.format(full_text=fuhe_info) - - def get_model_response(query): - return doubao_model(query) - - # 使用 ThreadPoolExecutor 并行执行两个模型调用 - with concurrent.futures.ThreadPoolExecutor() as executor: - # 提交任务到线程池 - future1 = executor.submit(get_model_response, user_query1) - future2 = executor.submit(get_model_response, user_query2) - - # 等待任务完成并获取结果 - model_res1 = future1.result() - model_res2 = future2.result() - - print(model_res1) - print(model_res2) - - res1 = clean_json_string(model_res1) - res2 = clean_json_string(model_res2) - return res1, res2 - -def outer_post_processing(combined_data, includes, good_list): - # 检查 '基础信息' 是否在 includes 中 - if "资格审查" in includes: - zige_review = combined_data.get("资格审查", {}) - # print("资格审查内容:", zige_review) - - try: - # 正确访问 '申请人资格要求' 和 '资格性审查' - zige_info = json.dumps({ - "申请人资格要求": zige_review["申请人资格要求"], - "资格性审查": zige_review["资格性审查"] - }, ensure_ascii=False, indent=4) - - # 正确访问 '符合性审查' - fuhe_info = json.dumps({ - "符合性审查": zige_review["符合性审查"] - }, ensure_ascii=False, indent=4) - # print(zige_info) - # print(fuhe_info) - res1,res2=extract_zige_deviation_table(zige_info,fuhe_info) - except KeyError as e: - print(f"缺少关键字: {e}") - -test_data1={ - "开评定标流程": { - "磋商的步骤": [ - "24. 磋商供应商授权代表及其商务技术人员按要求参加本项目磋商过程。", - "25. 资格性检查", - " 25.1 磋商小组验证各供应商法人(负责人)或委托授权人、或自然人的身份。供应商法人(负责人)或委托授权人、或自然人身份与响应文件不符的,磋商小组将拒绝该供应商参加磋商。", - " 25.2 磋商小组根据磋商文件规定的供应商资格条件、评定成交的标准等事项对供应商提交的响应文件进行评审,资格性检查不符合磋商文件要求的响应文件按无效文件处理,不进入磋商,并告知有关供应商。", - "26. 第一轮磋商", - " 26.1 磋商小组将按照随机抽签的顺序决定磋商供应商的磋商顺序,并与单一磋商供应商分别进行磋商。", - " 26.2 磋商小组对照磋商文件与供应商的响应文件分别就采购需求、质量和服务,以及合同草案条款等进行磋商,并了解其报价组成情况。磋商中,磋商的任何一方不得透露与磋商有关的其他供应商的技术资料、价格和其他信息。", - " 26.3 响应文件的澄清和说明
1)磋商小组可要求供应商对响应文件中含义不明确、同类问题表述不一致或者有明显文字和计算错误的等内容作出必要的澄清、说明或者更正。供应商的澄清、说明或者更正不得超出响应文件的范围或者改变响应文件的实质性内容。2)磋商小组要求供应商澄清、说明或者更正响应文件应以书面形式作出。供应商的澄清、说明或者更正应当由法定代表人(负责人)或其授权代表、或自然人签字或者加盖印章。3)供应商可以对参加磋商项目的采购需求提出优化建议,并以书面提交磋商小组。", - " 26.4 磋商小组按磋商文件设定的方法和标准确定磋商供应商符合磋商文件要求的,该磋商供应商即为合格的供应商。", - " 26.5 第一轮磋商后,合格的供应商不足3家的,磋商小组、采购人在调整采购需求中的技术、服务要求以及合同草案条款后进行下一轮磋商。否则,本次磋商终止。", - "27. 磋商文件修正", - " 27.1 磋商小组可根据磋商文件和磋商情况实质性变动采购需求中的技术、服务要求以及合同草案条款,但不得变动磋商文件中的其他内容。对磋商文件作出的实质性变动是磋商文件的有效组成部分。", - " 27.2 磋商小组将磋商文件的修改结果以书面形式通知参加磋商的供应商。", - " 27.3 磋商供应商根据第一轮磋商情况和磋商文件修改书面通知,对原响应文件进行修正,并将修正文件签字(或盖章)后密封送交磋商小组。逾时不交的,视同放弃磋商。修正文件与响应文件同具法律效应。", - " 27.4 对无法详细描述需求,需要供应商提供设计或者解决方案的项目,磋商小组可以根据采购人对需求确认情况,进行多轮磋商,直至采购人代表最终确认采购需求为止。", - "28. 第二轮磋商", - " 28.1 磋商小组就修正后的磋商文件与磋商供应商分别进行磋商,并按上一轮磋商程序办理,以此类推。", - "29. 最后报价", - " 29.1 磋商小组对磋商文件中能够详细列明采购标的的技术、服务要求的,在磋商结束后,所有继续参加磋商合格的供应商应在规定时间内提交最后报价。", - " 29.2 磋商小组对磋商文件中不能详细描述和列明采购标的的技术、服务要求,需通过磋商由供应商提供最终设计方案或解决方案的,在磋商结束后,磋商小组按照少数服从多数的原则投票推荐3家以上合格供应商的设计方案或者解决方案,并要求其在规定时间内提交最后报价。", - " 29.3 最后报价未超过采购预算的供应商不足三家的,采购活动终止。", - " 29.4 最后报价在规定的时间内提交。最后报价是供应商响应文件的有效组成部分。", - " 29.5 在提交最后报价之前,供应商可以根据磋商情况退出磋商。注:供应商在规定时间30分钟内提交最后报价,若在规定时间内投标人没有按要求进行最后报价,则作自动弃权处理。提交最后报价的供应商不得少于3家,最后报价是供应商响应文件的有效组成部分。", - "30. 响应性文件的递交与开标", - " 30.1 响应文件的递交", - " 30.1.1 采购人在本章供应商须知前附表规定的响应文件递交截止时间前在“电子交易平台”上公开进行开标,所有供应商均应当准时在线参加开标。", - " 30.1.2 采购人通过互联网在供应商须知前附表规定的地点组织开标,并在投标截止时间30分钟前,使用CA数字证书登录“电子交易平台”,进入“开标大厅”选择相应标段做好开标的准备工作。", - " 30.1.3 供应商可在能够保证设施设备可靠、互联网畅通的任意地点,通过互联网在线参加开标。在投标截止时间前,使用加密响应文件的CA数字证书登录“电子交易平台”,进入“开标大厅”选择所投标段(包)进行签到,并实时在线关注采购人的操作情况。", - " 30.2 开标程序", - " 30.2.1 主持人按下列程序在“电子交易平台”“开标大厅”进行电子开标:(1)宣布开标纪律;(2)公布主持人、采购人代表、监标人等有关人员姓名;(3)公布在投标截止时间前响应文件的递交情况;(4)供应商根据提示在供应商须知前附表规定的时间内解密响应文件;(5)读取已解密的响应文件的内容;(6)公布供应商名称并生成开标记录;(7)开标结束。", - " 30.2.2 在本章第13.2.1(5)目规定的时间内,非因“电子交易平台”原因造成响应文件未解密的,视为供应商撤回响应文件。已解密的响应文件少于三个的,招标失败;已解密的响应文件不少于三个,开标继续进行。", - " 30.3 开标异议", - " 30.3.1 供应商对开标有异议的,应当在开标过程中提出;采购人当场对异议作出答复,并记入开标记录。异议与答复应通过“开标大厅”在“异议与答复”菜单以书面形式进行。本处所称异议是指供应商在开标过程中对响应文件提交、响应截止时间、响应程序、响应记录以及供应商和采购人或者供应商相互之间存在利益冲突的情形等提出的质疑。", - " 30.3.2 供应商异议成立的,采购人将及时采取纠正措施,或者提交磋商小组评审确认;供应商异议不成立的,采购人将当场给予解释说明。", - " 30.4 特殊情况的处置", - " 30.4.1 因“电子交易平台”系统故障导致无法投标的,交易中心及时通知采购人,采购人视情况决定是否顺延投标截止时间。因供应商自身原因导致无法完成投标的,由供应商自行承担后果。", - " 30.4.2 因“电子交易平台”系统故障导致无法正常开标的,采购人将暂停开标,待系统恢复正常后继续开标。", - " 30.4.3 “电子交易平台”系统故障是指下列情形:(1)系统服务器发生故障,无法访问或无法使用系统;(2)系统的软件或数据库出现错误,不能进行正常操作;(3)系统发现有安全漏洞,有潜在的泄密危险;(4)出现断电、断网事故;(5)其他无法保证招投标过程正常进行的情形。", - "31. 综合评议", - " 31.1 磋商小组将按照磋商文件确定的评审办法对各供应商的响应文件进行商务服务评议、技术和价格评议。", - " 31.2 评审采用综合评分法,具体见“第四章评审办法及评审标准”。", - "32. 非专门面向中小企业、监狱企业或残疾人福利性单位采购项目价格评议", - " 32.1 小型和微型企业、监狱企业或残疾人福利性单位参加非专门面向中小企业、监狱企业或残疾人福利性单位采购项目,提供本企业制造的产品、承担的工程或者服务,或者提供其他小型和微型企业、监狱企业或残疾人福利性单位制造的产品参加磋商的,给予《供应商须知前附表》确定比例进行价格扣除,用扣除后的价格参与评审。本项所称产品不包括使用大型企业注册商标的产品、使用非残疾人福利性单位注册商标的货物或非监狱企业生产的货物。", - " 32.2 提供本企业制造的产品、承担的工程或者服务的供应商,应出具《中小企业声明函》、《残疾人福利性单位声明函》或属于监狱企业的证明文件等原件。提供其他小型和微型企业、监狱企业或残疾人福利性单位制造的产品的,应出具所提供产品制造企业的《中小企业声明函》《联合体协议书》《分包意向协议书》《残疾人福利性单位声明函》或属于监狱企业的证明文件等原件,否则,不给予价格扣除。", - " 32.3 对小型、微型企业与大中型企业和其他自然人、法人或者其他组织组成联合体共同参加非专门面向中小企业的政府采购活动,联合协议中小型、微型企业的协议合同金额占协议合同总金额30%以上的,给予联合体《供应商须知前附表》确定比例进行价格扣除。联合体各方均为小型、微型企业的,给予联合体按比例进行价格扣除。", - " 32.4 对于未按规定提供《中小企业声明函》、《残疾人福利性单位声明函》或属于监狱企业的证明文件等原件,或声明函内容不能说明所提供产品、承担的工程或者服务的企业属于小型和微型企业、监狱企业或残疾人福利性单位的,不给予价格扣除。残疾人福利性单位属于小型、微型企业的,不重复享受政策。", - "33. 价格分采用低价优先法计算,即满足磋商文件要求且最后报价最低的供应商的价格为磋商基准价,其价格分为满分。其他供应商的价格分计算公式:磋商报价得分=(磋商基准价/最后磋商报价)×价格权值×100。", - " 33.1 算术错误将按以下方法更正:若单价计算的结果与总价不一致,以单价为准修改总价;
单价金额小数点有明显错位的,以总价为准并修改单价;若大写金额与小写金额不一致,以大写金额为准。如果供应商不接受对其错误的更正,其响应文件将被拒绝。", - "34. 磋商小组决定响应文件的响应性只根据响应文件本身的真实无误的内容,而不依据外部的证据,但响应文件有不真实不正确的内容时除外。磋商小组决定响应文件的响应性只根据响应文件本身的真实无误的内容,而不依据外部的证据,但响应文件有不真实不正确的内容时除外。" - ] - }, - "资格审查": { - "申请人资格要求": [ - "1、满足《中华人民共和国政府采购法》第二十二条规定,即:(1)具有独立承担民事责任的能力;(2)具有良好的商业信誉和健全的财务会计制度;(3)具有履行合同所必需的设备和专业技术能力;(4)有依法缴纳税收和社会保障资金的良好记录;(5)参加政府采购活动前三年内,在经营活动中没有重大违法记录;(6)法律、行政法规规定的其他条件。", - "2、单位负责人为同一人或者存在直接控股、管理关系的不同投标人,不得参加本项目同一合同项下的政府采购活动。", - "3、为本采购项目提供整体设计、规范编制或者项目管理、监理、检测等服务的,不得再参加本项目的其他招标采购活动。", - "4、未被列入失信被执行人、重大税收违法案件当事人名单,未被列入政府采购严重违法失信行为记录名单。", - "5.落实政府采购政策需满足的资格要求:落实政府采购强制、优先采购节能产品政策;2政府采购优先采购环保产品政策;政府采购促进中小企业发展(监狱企业、残疾人福利性 单位视同小微企业)等政策。", - "6、根据财政部《政府采购法实施条例》释义中关于供应商资格条件的解释,对于银行、 保险、石油石化、电力、电信等有行业特殊情况的,采购人和集中采购机构允许其分支机构参与投标。允许特殊行业参与本项目投标使用总公司旗下分公司(或子公司)特定的专业资格或者技术资格、设备设施、业绩情况、专业人才及其管理能力等。", - "7、本项目的特定资格要求:/。" - ], - "资格性审查": { - "满足《中华人民共和国政府采购法》第二十二条规定": "1、具有独立承担民事责任的能力; 2、具有良好的商业信誉和健全的财务会计制度; 3、具有履行合同所必需的设备和专业技术能力; 4、有依法缴纳税收和社会保障资金的良好记录; 5、参加政府采购活动前三年内,在经营活动中没有重大违法记录; 6、法律、行政法规规定的其他条件。", - "单位负责人": "提交“未与单位负责人为同一人或者存在直接控股、管理关系的其它投标人,参加同一合同项下的政府采购活动声明函”。", - "提供服务": "提交“未为本采购项目提供整体设计、规范编制或者项目管理、监理、检测等服务的声明函”。", - "信誉": "未被列入失信被执行人、重大税收违法案件当事人名单,未被列入政府采购严重违法失信行为记录名单。(提供网络截图)", - "落实政府采购政策需满足的资格要求": "落实政府采购强制、优先采购节能产品政策;政府采购优先采购环保产品政策;政府采购促进中小企业发展(监狱企业、残疾人福利性单位视同小微企业)等政策。", - "本项目特定资格要求": "/", - "授权书": "法定代表人身份证明或法定代表人授权委托书。(委托代理人需提供劳动合同和社保证明)。" - }, - "符合性审查": { - "递交的响应文件": "符合竞争性磋商文件第一部分竞争性磋商公告“六、其它补充事宜”第 1、2条要求。", - "文件签章": "响应性文件签字和盖章齐全。", - "磋商有效期": "满足磋商有效期。", - "磋商报价": "供应商所提交的报价表未出现两个或两个以上不同报价。" - } - } -} -test_data2={ - "资格审查": { - "申请人资格要求": [ - "1、满足《中华人民共和国政府采购法》第二十二条规定,即:", - "(1)具有独立承担民事责任的能力;", - "(2)具有良好的商业信誉和健全的财务会计制度;", - "(3)具有履行合同所必需的设备和专业技术能力;", - "(4)有依法缴纳税收和社会保障资金的良好记录;", - "(5)参加政府采购活动前三年内,在经营活动中没有重大违法记录;", - "(6)法律、行政法规规定的其他条件。", - "2、单位负责人为同一人或者存在直接控股、管理关系的不同投标人,不得参加本项目同一合同项下的政府采购活动。", - "3、为本采购项目提供整体设计、规范编制或者项目管理、监理、检测等服务的,不得再参加本项目的其他招标采购活动。", - "4、未被列入失信被执行人、重大税收违法案件当事人名单,未被列入政府采购严重违法失信行为记录名单。", - "5、落实政府采购政策需满足的资格要求:落实政府采购强制、优先采购节能产品政策;政府采购优先采购环保产品政策;政府采购促进中小企业发展(监狱企业、残疾人福利性单位视同小微企业)等政策。", - "6、本项目的特定资格要求:", - "6. 1、未被列入“信用中国”网站(www.creditchina.gov.cn)信用服务栏失信被执行人、重大税收违法案件当事人名单和“中国政府采购”网站(www.ccgp.gov.cn)政府采购严重违法失信行为记录名单并提供网页截图以证明;", - "6. 2、一包:在中国境内注册,营业执照具有电子与智能化工程专业承包相关经营范围;", - "二包:投标人应是合法的具有相关施工能力的企业(必须提供热熔型道路标线涂料、交通标志牌生产制造商针对本项目的正式授权书),投标人所投标线涂料、交通标志牌应具备经国家相关质量监督检验机构检测后出具的合法有效的检测报告;" - ], - "资格性审查": { - "items": [ - "法人或者其他组织的营业执照等证明文件,自然人的身份证明(投标人根据自身情况提供对应的证明材料):", - "财务状况报告,依法缴纳税收和社会保障资金的相关材料(投标人根据自身情况提供对应的证明材料):", - "具备履行合同所必需的设备和专业技术能力的证明材料:", - "参加政府采购活动前 3年内在经营活动中没有重大违法记录的书面声明:", - "具备法律、行政法规规定的其他条件的证明材料:", - "未被列入“信用中国”网站(www.creditchina.gov.cn)信用服务栏失信被执行人、重大税收违法案件当事人名单和“中国政府采购”网站(www.ccgp.gov.cn)政府采购严重违法失信行为记录名单并提供网页截图以证明;", - "一包:在中国境内注册,营业执照具有电子与智能化工程专业承包相关经营范围;;", - "应具备《政府采购法》第二十二条第一款规定的条件,提供下列材料:", - "未被列入失信被执行人、重大税收违法案件当事人名单,未被列入政府采购严重违法失信行为记录名单。", - "本项目的特定资格要求:", - "法定代表人身份证明或法定代表人授权委托书原件(委托代理人需提供劳动合同和社保证明);", - "湖北省政府采购供应商信用承诺书。", - "不符合联合体投标相关规定和要求的;", - "招标文件第一章“投标人资格要求”中有特殊要求的,投标人应提供其符合特殊要求的证明材料或者情况说明;", - "投标人认为需提供的其它相关资格证明材料;", - "资格证明文件正本应为清晰彩色影印件且加盖单位公章。" - ], - "法人": [ - "企业法人(包括合伙企业):提供工商部门注册的有效“企业法人营业执照”或 “营业执照”;", - "事业单位法人:提供有效的“事业单位法人证书”。" - ], - "其他组织": [ - "非企业专业服务机构:提供执业许可证等证明文件;", - "个体工商户:提供有效的“个体工商户营业执照”。" - ], - "自然人": { - "(仅限中国公民)": "提供有效的自然人身份证明。" - }, - "财务状况报告": [ - "法人:提供经第三方审计的财务报告(完整的财务报告,包括“四表一注”,即资产负债表、利润表、现金流量表、所有者权益变动表及其附注),或其基本开户银行出具的资信证明;", - "部分其他组织和自然人:没有经第三方审计的财务报告的,可以提供银行出具的资信证明;", - "投标人没有经第三方审计的财务报告和资信证明时,也可以提供财政部门认可的政府采购专业担保机构出具的投标担保函。" - ], - "依法缴纳税收和社会保障资金的证明材料": [ - "法人 A、税务登记证(国税、地税或多证合一); B、参加政府采购活动前一段时间内缴纳增值税、营业税和企业所得税的凭据; C 、社会保险登记证(或多证合一); D、参加政府采购活动前一段时间内缴纳社会保险的凭据(专用收据或社会保险缴纳清单)。", - "其他组织和自然人 A、参加政府采购活动前一段时间内缴纳税收的凭据; B、参加政府采购活动前一段时间内缴纳社会保险的凭据(专用收据或社会保险缴纳清单)。", - "依法免税或不需要缴纳社会保险资金的投标人 提供其依法免税或不需要缴纳社会保险资金的相关证明文件。" - ], - "具备履行合同所必需的设备和专业技术能力的证明材料": { - "(一)": "提供具备足够数量的设施设备的证明材料;", - "(二)": "提供具备足够数量的技术人员的证明材料。" - }, - "参加政府采购活动前3年内在经营活动中没有重大违法记录的书面声明": { - "(一)": "应严格按照附件格式提交“参加政府采购活动前三年内在经营活动中没有重大违法记录的书面声明函”;", - "(二)": "政府采购法第二十二条第一款第五项所称重大违法记录,是指供应商因违法经营受到刑事处罚或者责令停产停业、吊销许可证或者执照、较大数额罚款等行政处罚;", - "(三)": "按照财政部《关于规范政府采购行政处罚有关问题的通知》的规定,各级人民政府财政部门依法对参加政府采购活动的供应商作出的禁止参加政府采购活动等行政处罚决定在全国范围内生效。" - }, - "具备法律、行政法规规定的其他条件的证明材料": { - "(一)": "国家对生产和销售相关产品或提供相关服务有专门法律、行政法规规定的,则必须提供取得国家有关主管部门行政许可的证明材料。" - }, - "二包": "投标人应是合法的具有相关施工能力的企业(必须提供热熔型道路标线涂料、交通标志牌生产制造商针对本项目的正式授权书),投标人所投标线涂料、交通标志牌应具备经国家相关质量监督检验机构检测后出具的合法有效的检测报告;" - }, - "符合性审查": { - "1.投标总报价超过项目(分包)预算金额或最高限价的": "按照无效投标处理", - "2.《投标书》、《开标一览表》、《投标报价明细表》未提供或不符合招标文件要求的": "按照无效投标处理", - "3.工期(服务期限)、质保期不符合招标文件要求的": "按照无效投标处理", - "4.出现两个或两个以上不同报价的": "按照无效投标处理", - "5.出现两个或两个以上投标方案的(招标文件中要求提供备选方案的除外)": "按照无效投标处理", - "6.投标报价存在缺项、漏项的": "按照无效投标处理", - "7.投标有效期不足的": "按照无效投标处理", - "8.正本未按要求提供加盖公章及签字(签章)的": "按照无效投标处理", - "9.符合招标文件第二章“投标人须知”中39条中规定情形,以分公司形式参与投标的,法定代表人授权书未由总公司法定代表人签字(盖章)并加盖公章的": "按照无效投标处理", - "10.未按要求提供招标文件第二章“十其他注意事项”中规定的书面声明的": "按照无效投标处理", - "11.未提供所投货物(工程或服务)的具体参数值或功能表述,或原文复制招标文件的技术规格相关部分内容作为其投标文件的一部分的": "按照无效投标处理", - "12.含有采购人不能接受的附加条件的": "按照无效投标处理", - "13.未按要求提供《符合性审查对照表》、《商务要求响应、偏离说明表》、《商务要求“★”号条款响应、偏离说明表》、《商务评议对照表》和《技术、服务要求响应、偏离说明表》、《技术、服务要求“★”号条款响应、偏离说明表》、《技术、服务评议对照表》的": "按照无效投标处理", - "14.法律、法规和招标文件规定的其他无效投标情形": "按照无效投标处理" - } - } -} -test_data3={ - "资格审查": { - "申请人资格要求": [ - "1.满足《中华人民共和国政府采购法》第二十二条规定,即:", - "(1)具有独立承担民事责任的能力;", - "(2)具有良好的商业信誉和健全的财务会计制度;", - "(3)具有履行合同所必需的设备和专业技术能力;", - "(4)有依法缴纳税收和社会保障资金的良好记录;", - "(5)参加政府采购活动前三年内,在经营活动中没有重大违法记录;", - "(6)法律、行政法规规定的其他条件。", - "2.单位负责人为同一人或者存在直接控股、管理关系的不同投标人,不得参加本项目同一合同项下的政府采购活动。", - "3.为本采购项目提供整体设计、规范编制或者项目管理、监理、检测等服务的,不得再参加本项目的其他招标采购活动。", - "4.未被列入失信被执行人、重大税收违法案件当事人名单,未被列入政府采购严重违法失信行为记录名单。", - "5.落实政府采购政策需满足的资格要求:本项目专门面向中小企业采购的包段,供应商应为中小微企业(监狱企业、残疾人福利性单位视同小型、微型企业)。根据《政府采购促进中小企业发展管理办法》(财库〔2020〕46号)和工业和信息化部国家统计局国家发展和改革委员会财政部关于印发中小企业划型标准规定的通知(工信部联企业〔2011〕300号)中对中小企业划型标准的,供应商需提供本单位的《中小企业声明函》(详见附件)及企业相关证明材料(联合体参加的,联合体所有成员均需满足上述要求,否则不予认可)。监狱企业、残疾人福利性单位视同小型、微型企业。监狱企业必须提供省级以上监狱管理局、戒毒管理局(含新疆生产建设兵团)出具的属于监狱企业的证明文件。残疾人福利性单位须依据《关于促进残疾人就业政府采购政策的通知》(财库〔2017〕141号)的规定提供《残疾人福利性单位声明》。", - "6.投标人特定资格要求:", - "(1)投标人应具备《政府采购法》第二十二条规定的条件:且在中国工商管理机关注册登记取得营业执照,能独立承担民事责任的经济实体,提供有效营业执照副本,营业执照有相关经营范围;", - "(2)投标人需保证在本项目提供的资料均真实有效,若弄虚作假将自行承担一切法律责任,提供书面声明;", - "(3)投标人须具备房屋建筑工程施工总承包三级及以上资质提供资质证书、有效的安全生产许可证;", - "(4)拟派项目经理需具备相关专业二级及以上注册建造师执业资格。【提供资格证、注册证、安全生产考核 B证、身份证、完整劳动合同、社保缴纳证明】 ;", - "(5)未被列入:“信用中国网站”(www.creditchina.gov.cn)失信被执行人、企业经营异常名录、重大税收违法案件当事人名单;“国家企业信用信息公示系统”(www.gsxt.gov.cn)行政处罚、经营异常名录、严重违法失信企业名单;“中国政府采购网(”www.ccgp.gov.cn)政府采购严重违法失信行为记录名单;“中国裁判文书网”(wenshu.court.gov.cn)行贿犯罪、串标围标等相关类似案件当事人,提供书面承诺;" - ], - "资格性审查": { - "资格审查表": [ - { - "资格要求": "具有独立承担民事责任的能力", - "须提供的资料": "如投标人是企业(包括合伙企业),应提供在工商部门注册的 有效“企业法人营业执照”或“营业执照”;如投标人是事业单位,应提供有效的“事业单位法人证书”;投标人是非企业专业服务机构的,应提供执业许可证等证明文件;如投标人是个体工商户,应提供有效的“个体工商户营业执照”;如投标人是自然人,应提供有效的自然人身份证明。" - }, - { - "资格要求": "具有良好的商业信誉和健全的 财务会计制度", - "须提供的资料": "由投标人提供书面承诺及声明,或提供相应证明材料。" - }, - { - "资格要求": "具有履行合同所必需的设备和 专业技术能力", - "须提供的资料": "由投标人提供书面承诺及声明,或提供相应证明材料。" - }, - { - "资格要求": "有依法缴纳税收和社会保障资 金的良好记录", - "须提供的资料": "由投标人提供书面承诺及声明,或提供相应证明材料。" - }, - { - "资格要求": "参加政府采购活动前三年内, 在经营活动中没有重大违法记 录", - "须提供的资料": "由投标人提供书面承诺及声明,或提供相应证明材料。" - }, - { - "资格要求": "法律、行政法规规定的其他条 件", - "须提供的资料": "由投标人提供书面承诺及声明,或提供相应证明材料。" - }, - { - "资格要求": "单位负责人为同一人或者存在 直接控股、管理关系的不同投 标人,不得参加本项目同一合 同项下的政府采购活动", - "须提供的资料": "由投标人在《投标函》中声明" - }, - { - "资格要求": "为本采购项目提供整体设计、 规范编制或者项目管理、监理、 检测等服务的,不得再参加本 项目的其他招标采购活动。", - "须提供的资料": "由投标人在《投标函》中声明" - }, - { - "资格要求": "未被列入失信被执行人、重大 税收违法案件当事人名单,未 被列入政府采购严重违法失信 行为记录名单。", - "须提供的资料": "以采购人和采购代理机构在投标截止日在“信用中国”网站 ( www.creditchina.gov.cn )及中国政府采购网 (www.ccgp.gov.cn)查询的投标人参加政府采购活动前三年内 的结果为准(采购人和采购代理机构对信用信息查询记录和证 据截图或下载存档)。" - }, - { - "资格要求": "落实政府采购政策需满足的资 格要求", - "须提供的资料": "详见招标公告" - }, - { - "资格要求": "本项目的特定资格要求", - "须提供的资料": "详见招标公告" - } - ], - "备注": "(1)所有证书、证明文件包括按要求提供的官网截图必须是真实可查证的,须注明资料来源。资格 证明文件应为原件的扫描件或复印件,投标文件中须编入清晰的扫描件或复印件。所有证明材料须清晰 可辨认,如因证明材料模糊无法辨认,缺页、漏页导致无法进行评审认定的责任由投标人自负。如发现 弄虚作假将按照有关规定严肃处理。证明材料仅限于投标单位本身,参股或控股单位及独立法人子公司的材料不能作为证明材料,但投 标单位兼并的企业的材料可作为证明材料。(2)对于投标文件中有任意一条不满足上表要求的将导致其投标无效,不进入下一项评审。" - }, - "符合性审查": [ - "投标总报价超过项目(分包)预算金额或最高限价的;", - "《投标书》、《法定代表人授权书》、《开标一览表(含明细)》未提供或不符合招标文件要求的;", - "出现两个或两个以上投标方案的(招标文件中要求提供备选方案的除外);", - "投标有效期不足的;", - "无法定代表人签字(签章)或签字人无法定代表人有效授权的;", - "正本未按要求提供加盖公章及签字(签章)原件的;", - "依据财库[2019]9号文的规定,如属于强制节能产品,未提供国家确定的认证机构出具的节能产品认证证书的;", - "所投货物是通过中国海关报关验放进入中国境内且产自关境外的(招标文件中注明可采购进口产品货物的除外);", - "不满足招标文件第三章“项目采购需求”中要求的实质性条款;", - "含有采购人不能接受的附加条件的;", - [ - "不同投标人的投标文件由同一单位或者个人编制;", - "不同投标人委托同一单位或者个人办理投标事宜;", - "不同投标人的投标文件载明的项目管理成员或者联系人员为同一人;", - "不同投标人的投标文件异常一致或者投标报价呈规律性差异;", - "不同投标人的投标文件相互混装。" - ], - "法律、法规和招标文件规定的其他无效投标情形。" - ] - } -} -test_data4={ - "资格审查": { - "申请人资格要求": [ - "1.满足《中华人民共和国政府釆购法》第二十二条规定;", - "2.落实政府采购政策需满足的资格要求:合同包 1(陕西省公安厅交通警察总队高速公路交通安全智能感 知巡查系统项目)落实政府采购政策需满足的资格要求如下:", - "2.1.本项目落实的政府采购政策: ①《政府采购促进中小企业 发展管理办法》(财库〔2020〕46号);②《关于进一步加大政府 采购支持中小企业力度的通知》(财库〔2022〕19号);③《三部门 联合发布关于促进残疾人就业政府采购政策的通知》(财库〔2017〕 141号);④《财政部司法部关于政府采购支持监狱企业发展有关 问题的通知》(财库〔2014〕68号);⑤《财政部国家发展改革委 关于印发〈节能产品政府采购实施意见〉的通知》(财库〔2004〕185 号);⑥《国务院办公厅关于建立政府强制采购节能产品制度的通知》 (国办发〔2007〕51号);⑦《财政部环保总局关于环境标志产品 政府采购实施的意见》(财库〔2006〕90号);⑧《财政部发展改 革委生态环境部市场监管总局关于调整优化节能产品、环境标志产 品政府采购执行机制的通知》(财库〔2019〕9号);⑨《关于运用 政府采购政策支持乡村产业振兴的通知》(财库〔2021〕19号); ⑩《陕西省中小企业政府采购信用融资办法》(陕财办采〔2018〕23 号);⑪其他需要落实的政府采购政策;落实政府采购政策需满足的 资格要求按照有关规定执行。", - "2.2.本合同包非专门面向中小企业采购。", - "3.本项目的特定资格要求:合同包 1(陕西省公安厅交通警察总队高速公路交通安全智能感 知巡查系统项目)特定资格要求如下:", - "3.1供应商单位负责人为同一人或存在直接控股、管理关系的不 同供应商,不得参加同一项目的政府采购活动;", - "3.2供应商不得为“信用中国”网站(www.creditchina.gov.cn) 中列入失信被执行人和税收违法案件当事人名单的供应商,不得为中国政府采购网(www.ccgp.gov.cn)政府采购严重违法失信行为记录 名单中被财政部门禁止参加政府采购活动的供应商;", - "3.3法定代表人直接参加磋商的,须出具法定代表人身份证明书; 法定代表人授权代表参加磋商的,须出具法定代表人授权委托书。" - ], - "资格性审查": { - "基本资格条件(满足《中华人民共和国政府采购法》第二十二条规定)": { - "营业执照等主体证明文件": "具有独立承担民事责任能力的法人、其他组织或自然人,并出具合法有效的营业执照或事业单位法人证书等国家规定的相关证明,自然人参与的提供其身份证明。", - "财务状况报告": "提供具有财务审计资质单位出具的完整的2021年度或 2022年度的财务报告(成立时间至竞争性磋商响应文件递交截止时间不足一年的可提供成立后任意时段的资产负债表)或竞争性磋商响应文件递交截止时间前六个月内其基本账户开户银行出具的资信证明。", - "税收缴纳证明和社保缴纳证明": [ - "提供 2022年 7月至今已缴纳的至少一个月的纳税证明或完税证明(任意税种),依法免税的单位应提供相关证明材料。", - "提供 2022年 7月至今已缴存的至少一个月的社会保障资金缴存凭证或社保机构开具的社会保险参保证明,依法不需要缴纳社会保障资金的单位应提供相关证明材料。" - ], - "承诺声明": "提供具有履行合同所必需的设备和专业技术能力的承诺声明。", - "书面声明": "提供参加政府采购活动前 3年内,在经营活动中没有重大违法记录的书面声明。" - }, - "特定资格条件": { - "法定代表人身份证明/法定代表人授权委托书": "法定代表人直接参加磋商的,须出具法定代表人身份证明书及身份证;法定代表人授权代表参加磋商的,须出具法定代表人授权委托书及授权代表身份证。", - "控股关系": "供应商单位负责人为同一人或存在直接控股、管理关系的不同供应商,不得参加同一项目的政府采购活动;", - "信用记录": "供应商不得为“信用中国”网站(www.creditchina.gov.cn)中列入失信被执行人和重大 税收违法案件当事人名单的供应商,不得为中国政府采购网(www.ccgp.gov.cn)政府采 购严重违法失信行为记录名单中被财政部门禁止参加政府采购活动的供应商。" - } - }, - "符合性审查": { - "有效性审查": { - "磋商响应文件的签署盖章": "须符合竞争性磋商文件要求的签字、盖章的要求。", - "磋商响应文件格式": "须符合“竞争性磋商响应文件格式”要求。", - "报价唯一": "磋商报价符合唯一性要求、响应报价表填写符合要求、报价货币符合磋商文件要求、报价未超出采购预算和最高限价。" - }, - "完整性审查": { - "磋商响应文件份数": "符合磋商文件要求。", - "磋商响应文件内容": "磋商响应文件内容齐全、无遗漏。" - }, - "响应性审查": { - "保证金": "保证金(保函)交纳应符合竞争性磋商文件要求。", - "商务条款响应": "须完全响应磋商文件商务条款,且响应的内容未含有采购人不能接受的附加条件。", - "磋商有效期": "须符合磋商文件中的规定。" - } - } - } -} -includes = ["基础信息", "资格审查", "商务评分", "技术评分", "无效标与废标项", "投标文件要求", "开评定标流程"] -outer_post_processing(test_data4,includes,None) +from flask_app.general.format_change import pdf2docx +local_path_in=r"C:\Users\Administrator\Desktop\fsdownload\457ee03d-c61c-4672-b959-2bbb35a1de29\ztbfile_invalid.pdf" +# invalid_docpath=pdf2docx(local_path_in) +invalid_docpath=r'C:\Users\Administrator\Desktop\fsdownload\457ee03d-c61c-4672-b959-2bbb35a1de29\ztbfile_invalid.docx' +try: + # 尝试加载 .docx 文件 + doc = Document(invalid_docpath) + # 如果可以成功读取,则返回 True + print("yes") +except Exception as e: + # 捕获异常并打印错误信息 + print("no") \ No newline at end of file