2024-09-18 11:57:17 +08:00

238 lines
15 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- encoding:utf-8 -*-
import json
def combine_technical_and_business(data, target_values1, target_values2):
extracted_data = {} # 根级别存储所有数据
technical_found = False
business_found = False
def extract_nested(data, parent_key='', is_technical=False, is_business=False):
nonlocal technical_found, business_found
if isinstance(data, dict):
for key, value in data.items():
current_key = f"{parent_key}.{key}" if parent_key else key
# 检查是否为技术标的内容
if any(target in key for target in target_values1): #模糊匹配
if not is_technical:
# 直接存储在根级别
extracted_data[key] = value
technical_found = True
# 标记为技术标内容并停止进一步处理这个分支
continue
# 检查是否为商务标的内容
elif any(target in key for target in target_values2):
if not is_business:
# 存储在'商务标'分类下
if '商务标' not in extracted_data:
extracted_data['商务标'] = {}
extracted_data['商务标'][key] = value
business_found = True
# 标记为商务标内容并停止进一步处理这个分支
continue
# 如果当前值是字典或列表,且不在技术或商务分类下,继续递归搜索
if isinstance(value, dict) or isinstance(value, list):
extract_nested(value, current_key, is_technical, is_business)
elif isinstance(data, list):
for index, item in enumerate(data):
extract_nested(item, f"{parent_key}[{index}]", is_technical, is_business)
# 开始从顶级递归搜索
extract_nested(data)
# 处理未找到匹配的情况
if not technical_found:
extracted_data['技术标'] = ''
if not business_found:
extracted_data['商务标'] = ''
return extracted_data
# 示例数据
data = {
"一包评分标准": {
"报价部分": {
"价格评议": {
"分值": 30,
"评分标准": "对确定资格性和符合性审查合格的投标文件进行价格评议报价分采用低价优先法计算即满足招标文件要求且投标价格最低的投标报价为评标基准价其报价分30分。其他投标人的价格分按照下列公式计算投标报价得分评标基准价/投标报价×30%×100得分保留小数点后2位"
}
},
"商务部分": {
"企业实力": [
{
"分值": 2,
"评分标准": "投标人具有有效期内的CCRC信息安全集成服务资质贰级以上资质证书得2分不具备得0分。原件备查"
},
{
"分值": 2,
"评分标准": "投标人有健全的信息技术运维服务能力并通过ITSS信息技术服务运维标准符合性认证证书贰级以上得2分不具备得0分。原件备查"
},
{
"分值": 2,
"评分标准": "投标人具有ISO 14001环境管理体系认证以及OHSAS 18001职业健康安全管理体系认证具有ISO 20000 IT服务管理体系认证以及ISO 27001信息安全管理体 系认证每满足一项得2分否则不得分。原件备查"
},
{
"分值": 3,
"评分标准": "投标人同时具有省级及以上高新技术企业证书、AAA企业信用等级证书、上 年度纳税信用评价为A级完全满足得3分每缺一项扣1分直至得0分原件备查"
},
{
"分值": 2,
"评分标准": "所投主要产品制造商应具备较强的合同执行诚信度和执行能力要求获得政府权威机构颁发的国家级或省级守合同重信用公示企业国家级得2分省级得1分不提供不得分。原件备查"
},
{
"分值": 2,
"评分标准": "所投主要产品制造商通过CMMI软件能力成熟度模型集成认证认证等级不低于5级得2分4级得1分,其他不得分。(原件备查)"
},
{
"分值": 3,
"评分标准": "投标人近三年以来具有类似项目经验提供中标通知书及合同原件。每提供一个得1分最多得3分。"
},
{
"分值": 2,
"评分标准": "投标人具备GB/T27922五星级服务认证证书的得2分不满足得0分。原件备查"
}
],
"产品制造商实力": [
{
"分值": 2,
"评分标准": "为保证系统的稳定性所投产品制造商应具有完善的工业信息安全应急体系、良好的安全应急能力能被工业信息安全产业发展联盟认定为“工业信息安全应急服务支撑单位”满足得2分否则不得分。原件备查"
},
{
"分值": 2,
"评分标准": "所投主要产品制造商通过CMMI软件能力成熟度模型集成认证认证等级不低于5级得2分4级得1分,其他不得分。(原件备查)"
}
]
},
"技术部分": {
"技术要求": {
"分值": 30,
"评分标准": "投标人所投产品完全满足招标文件要求的30分''指标不符合招标文件技术参数的视为无效投标,针对''指标,投标人须对应招标文件第三章商务技术要求产品参数要求逐条提供包括但不限于第三方产品检测报告、产品技术白皮书、产品官网或公开的技术资料等佐证资料,并加盖产品制造商公章;''指标不满足招标文件第三章商务技术要求产品参数要求的每项扣2分其他非指标性参数不满足招标文件第三章商务技术要求产品参数要求的每项扣1分扣完为止未提供佐证资料的将作产品不响应处理''指标产品参数要求必须提供第三方权威机构检测报告佐证并加盖产品制造商公章,非指标参数提供产品彩页佐证并加盖产品制造商公章即可。",
"备注": "针对''指标,投标人须对应招标文件第三章商务技术要求产品参数要求逐条提供包括但不限于第三方产品检测报告、产品技术白皮书、产品官网或公开的技术资料等佐证资料,并加盖产品制造商公章;''指标产品参数要求必须提供第三方权威机构检测报告佐证并加盖产品制造商公章,非指标参数提供产品彩页佐证并加盖产品制造商公章即可。"
},
"质量保证": {
"分值": 2,
"评分标准": "投标人所投的电子警察系统、信号控制系统如果不是自己生产的需提供制造商出具的授权及满足招标质保要求的售后服务承诺函提供得2分开标时提供授权书及售后服务承诺函原件予以证明否则不得分。"
},
"实施方案": {
"分值": 5,
"评分标准": "投标人对于本项目的实施保障方案中包含①施工组织方案、②施工协调经验、③进度计划、④质量保障、⑤工期保障五个方案的可行性、合理性、实用性等方面进行综合性评分每个实施方案清晰、完整、合理、可行的得1分。"
},
"实施团队": {
"分值": 9,
"评分标准": "1、投标人拟派项目经理具有机电工程专业壹级注册建造师资格及安全生产考核合格证书B证并同时具备相关专业高级工程师职称的得2分其他不得分2、项目技术负责人具备相关专业高级工程师职称及高级信息系统项目管理师证书的得2分其他不得分3、项目管理团队中的施工员、质量员、安全员C证、材料员、资料员须具有中级或以上职称完全满足得5分每缺一个扣1分直至得0分以上人员不可兼任提供证书复印件、身份证、劳动合同及社保证明文件加盖公章"
},
"运维服务": {
"分值": 2,
"评分标准": "投标人应对维护期给出合理、完善的运维及售后服务方案。包括售后服务团队管理、运维服务内容日常运作、服务咨询、巡检保养、主动监测、故障修复、特殊保障和升级优化、备件方案、运维服务流程、运维管理服务方案清晰、完整、合理、可行2分服务方案较完整1分服务方案不完整不明确得0分。"
},
"培训方案": {
"分值": 2,
"评分标准": "投标人应针对本项目制定全面、可操作性强的技术培训方案有具体的培训时间、人员安排的2分其它得0分。"
}
}
},
"二包评分标准": {
"报价部分": {
"价格评议": {
"分值": 30,
"评分标准": "对确定资格性和符合性审查合格的投标文件进行价格评议报价分采用低价优先法计算即满足招标文件要求且投标价格最低的投标报价为评标基准价其报价分30分。其他投标人的价格分按照下列公式计算投标报价得分评标基准价/投标报价×30%×100得分保留小数点后2位"
}
},
"商务部分": {
"企业实力": [
{
"分值": 3,
"评分标准": "投标人具有三级交通运输企业安全生产标准化建设等级证明的得1分具有二级交通运输企业安全生产标准化建设等级证明的得2分具有一级交通运输企业安全生产标准化建设等级证明的得3分。提供相关证明材料加盖公章"
},
{
"分值": 3,
"评分标准": "投标人具有ISO 14001环境管理体系认证以及OHSAS 18001职业健康安全管理体系认证具有ISO 09001质量管理体系认证全部满足得3分每满足一项得1分否则不得分。原件备查"
},
{
"分值": 4,
"评分标准": "投标人具有AAA企业信用等级证书且在有效期内的、上年度纳税信用评价为A级完全满足得4分每缺一项扣2分直至得0分提供相关证明材料"
},
{
"分值": 8,
"评分标准": "投标人近三年以来具有类似项目经验提供中标通知书及合同原件。每提供一个得2分最多得8分。"
},
{
"分值": 9,
"评分标准": "1、投标人拟派项目经理具有高级工程师职称的得2分其他不得分2、项目技术负责人具备相关专业高级工程师职称得2分其他不得分3、项目管理团队中的施工员、质量员、安全员C证、材料员、资料员须具有中级或以上职称完全满足得5分每缺一个扣1分直至得0分以上人员不可兼任提供证书复印件、身份证、劳动合同及社保证明文件加盖公章"
}
]
},
"技术部分": {
"技术要求": {
"分值": 20,
"评分标准": "投标人所投产品完全满足招标文件要求的20分''指标低于招标文件第三章商务技术要求产品参数要求的每项扣3分扣完为止。"
},
"质量保证措施": {
"分值": 8,
"评分标准": "投标人提供的用于本项目的质量保障措施,符合采购要求,并包含以下几点:(1)质量管理目标;(2)质量管理规章制度;(3)质量管理方案;(4)质量承诺。每一项2分完全满足得8分缺一项扣2分直至得0分。"
},
"售后服务承诺": {
"分值": 12,
"评分标准": "1、投标人承诺对招标人提供优先供货服务以满足招标人的紧急需求(2)投标人承诺接到故障报修24小时内提供解决方案并开始组织实施(3)投标人承诺现场施工降低污染文明施工每一项5分。完全满足得12分缺一项扣4分直至得0分。"
},
"培训方案": {
"分值": 3,
"评分标准": "投标人应针对本项目制定全面、可操作性强的技术培训方案有具体的培训时间、人员安排的3分其它得0分。"
}
}
},
"三包评分标准": {
"报价部分": {
"分值": 40,
"评分标准": "对确定资格性和符合性审查合格的投标文件进行价格评议报价分采用低价优先法计算即满足招标文件要求且投标价格最低的投标报价为评标基准价其报价分40分。其他投标人的价格分按照下列公式计算投标报价得分评标基准价/投标报价×40%×100得分保留小数点后2位"
},
"技术指标": {
"分值": 40,
"评分标准": "1供应商的技术投标书的响应性、符合性、完整性及编制质量在技术参数*号项、普通项全部满足的得满分40分2技术参数中*号项一项不满足的扣2分扣完为止3技术参数中普通项一项不满足扣1分扣完为止4复制招标文件技术要求作为实际响应数据或投标响应数据无对应支持文件的其技术响应将按负偏离处理。"
},
"服务保障": {
"分值": 10,
"评分标准": "投标人应对维护期给出合理、完善的运维及售后服务方案。包括售后服务团队管理、运维服务内容日常运作、服务咨询、巡检保养、主动监测、故障修复、特殊保障和升级优化、备件方案、运维服务流程、运维管理服务方案清晰、完整、合理、可行2分服务方案较完整1分服务方案不完整不明确得0分。"
},
"业绩证明": {
"分值": 5,
"评分标准": "投标人近三年以来具有类似项目经验提供中标通知书及合同原件。每提供一个得2.5分最多得5分。"
},
"投标文件的规范性": {
"分值": 2,
"评分标准": "投标文件的制作质量、文档编排、规范性、方便查阅性等进行综合比较优得2分良得1分。"
},
"售后服务": {
"分值": 3,
"评分标准": "产品故障响应省内24小时、省外48小时内到达现场处理并修复且有完善售后服务网络和巡检方案的得3分不完善售后服务酌情扣分。"
}
}
}
# 转换字典
def get_evaluation_standards(truncate_file):
include = ['一包', '二包', '三包', '四包', '五包']
target_values1 = ['技术', '设计', '实施', '方案']
target_values2 = ['投标报价', '商务标', '商务部分', '报价部分', '业绩', '信誉', '分值', '计算公式', '信用', '人员',
'资格', '奖项', '认证', '荣誉']
updated_jsons = {}
for key in data.keys():
if any(item in key for item in include):
inner_dict = data[key]
# 将处理后的结果存储到updated_jsons中每个包名为键
updated_jsons[key] = combine_technical_and_business(inner_dict, target_values1, target_values2)
# 将updated_jsons转换为JSON格式
evaluation_combined_res = json.dumps(updated_jsons, ensure_ascii=False, indent=4)
return evaluation_combined_res
res=get_evaluation_standards("1")
print(res)