# -*- encoding:utf-8 -*-
import json
import re
from flask_app.general.format_date import format_chinese_date
from flask_app.general.format_amout import format_amount
from flask_app.routes.偏离表数据解析main import postprocess_technical_table, prepare_for_zige_info, process_functions_in_parallel


# 定义一个辅助函数用于获取嵌套字典中的值
def get_nested(dic, keys, default=None):
    for key in keys:
        if isinstance(dic, dict):
            dic = dic.get(key, default)
        else:
            return default
    return dic

def inner_post_processing(base_info):
    # print(json.dumps(base_info,ensure_ascii=False,indent=4))
    """
    处理 '基础信息' 部分，提取所需字段,代理机构名称、招标项目名称....额外返给后端
    参数:
        base_info (dict): 包含 '基础信息' 的字典。
    返回:
        dict: 提取的信息字典 extracted_info。
    """
    # 初始化提取的信息字典
    extracted_info = {}

    # 定义一个辅助函数用于递归查找包含特定子字符串的键
    def find_keys_containing(dic, substring):
        """
        递归查找包含特定子字符串的键，并返回对应的值列表。

        参数:
            dic (dict): 要搜索的字典。
            substring (str): 子字符串。

        返回:
            list: 匹配键的值列表。
        """
        found_values = []
        if isinstance(dic, dict):
            for key, value in dic.items():
                if substring in key and value not in ["未知", ""]:
                    found_values.append(value)
                if isinstance(value, dict):
                    found_values.extend(find_keys_containing(value, substring))
                elif isinstance(value, list):
                    for item in value:
                        if isinstance(item, dict):
                            found_values.extend(find_keys_containing(item, substring))
        return found_values

    # 定义一个辅助函数用于根据候选键列表提取值（部分匹配）
    def extract_field(contact_info, candidate_keys):
        for candidate in candidate_keys:
            for key, value in contact_info.items():
                if candidate in key and value not in ["未知", ""]:
                    return value
        return ""

    # 定义一个辅助函数用于提取 '投标保证金'
    def extract_bid_bond(guarantee_info):
        # 定义投标保证金的候选键
        bid_bond_candidates = ["投标保证金", "磋商保证金"]

        # 第一步：查找包含 "投标保证金" 或 "磋商保证金" 的键
        for candidate in bid_bond_candidates:
            for key, value in guarantee_info.items():
                if candidate in key:
                    if isinstance(value, dict):
                        # 在嵌套字典中查找包含 "金额" 的键
                        for sub_key, sub_value in value.items():
                            if "金额" in sub_key and sub_value not in ["未知", ""]:
                                return sub_value
                    elif isinstance(value, str):
                        if "金额" in key and value not in ["未知", ""]:
                            return value
                    else:
                        # 如果 value 既不是 dict 也不是 str，忽略
                        continue
        # 第二步：如果没有找到包含 "金额" 的键，尝试在所有键值中查找符合模式的值
        amount_pattern = re.compile(
            r'(?:\d{1,3}(?:[,，]\d{3})*(?:\.\d+)?|\d+(?:\.\d+)?|[\u4e00-\u9fff]+(?:\.\d+)?)\s*(?:元|万元)')
        for key, value in guarantee_info.items():
            if isinstance(value, str):
                match = amount_pattern.search(value)
                if match:
                    return match.group()
            elif isinstance(value, dict):
                # 递归查找嵌套字典中的金额
                found_amount = extract_bid_bond(value)
                if found_amount:
                    return found_amount
        # 如果都没有找到，则返回空字符串
        return ""

    def ensure_string(value):
        """
        将提取的值转换为字符串类型。
        如果值是列表或字典，按照指定格式拼接为字符串。

        参数:
            value: 需要转换的值。

        返回:
            str: 转换后的字符串。
        """
        if isinstance(value, list):
            if all(isinstance(item, str) for item in value):
                # 如果列表中的所有元素都是字符串，则用两个空格连接
                return " ".join(item for item in value if item not in ["未知", ""])
            else:
                concatenated = []
                for item in value:
                    if isinstance(item, dict):
                        pairs = [f"{k}:{v}" for k, v in item.items() if v not in ["未知", ""]]
                        concatenated.append("  ".join(pairs))
                    else:
                        concatenated.append(str(item))
                return "  ".join(concatenated)
        elif isinstance(value, dict):
            pairs = [f"{k}:{v}" for k, v in value.items() if v not in ["未知", ""]]
            return "  ".join(pairs)
        else:
            return str(value) if value not in ["未知", ""] else ""

    def process_information_media(media_list):
        """
        处理 '信息公示媒介' 字段，提取包含网址的整个字符串。
        这里经常容易超字数！！！目前后端设置的是512
        参数:
            media_list (list): 信息公示媒介的字符串列表。

        返回:
            str: 处理后的信息公示媒介字符串。
        """
        if len(media_list) > 1:  # 只有当列表长度大于1时才进行正则匹配
            url_pattern = re.compile(r'''(
                https?://[^\s）)]+|
                www\.[^\s）)]+|
                [a-zA-Z0-9._~-]{2,}\.[a-zA-Z0-9._~-]{2,}\.[a-zA-Z]{2,}|
                [a-zA-Z0-9._~-]{2,}\.[a-zA-Z]{2,}
            )''', re.IGNORECASE | re.VERBOSE)
            matched_contents = [item for item in media_list if url_pattern.search(item)]

            if matched_contents:
                # 仅返回包含网址的整个字符串，并确保不超过450个字符
                result = "  ".join(matched_contents)
                return result[:450]  # 截断字符串到450个字符
            else:
                # 如果没有匹配到网址，返回列表中的第一个字符串，并确保不超过450个字符
                return media_list[0][:450] if media_list else ""
        else:
            # 列表长度小于等于1，直接返回列表中的元素
            return media_list[0][:450] if media_list else ""

    # 定义所需字段的映射关系，暂时不包含'联系人'和'联系电话'以及'招标项目地点'
    mapping = {
        "代理机构名称": [["招标人/代理信息", "招标代理机构"]],
        "招标项目名称": [["项目信息", "项目名称"]],
        "招标项目编号": [["项目信息", "项目编号"]],
        "开标时间": [["关键时间/内容", "开标时间"]],
        "报名截止日期": [["关键时间/内容", "投标文件递交截止日期"]],
        "招标项目预算": [["项目信息", "招标控制价"]],
        "招标单位名称": [["招标人/代理信息", "招标人"]],
        "招标公告地址": [["关键时间/内容", "信息公示媒介"]],
    }
    # 定义需要格式化的字段及其对应的格式化函数
    formatting_rules = {
        "开标时间": format_chinese_date,
        "报名截止日期": format_chinese_date,
        "招标项目预算": lambda x: format_amount(ensure_string(x)),
    }

    # 提取并映射字段
    for new_key, paths in mapping.items():
        value = next((get_nested(base_info, path) for path in paths if get_nested(base_info, path)), None)
        if value:
            if new_key in formatting_rules:
                formatted_value = formatting_rules[new_key](value)
                extracted_info[new_key] = ensure_string(formatted_value) if formatted_value else ""
            elif new_key == "招标公告地址":
                # 特殊处理 '信息公示媒介'
                if isinstance(value, list):
                    processed_media = process_information_media(value)
                    extracted_info[new_key] = processed_media
                else:
                    extracted_info[new_key] = ensure_string(value)
            else:
                extracted_info[new_key] = ensure_string(value)
        else:
            extracted_info[new_key] = ""

    # 特殊处理 '招标项目地点'
    project_info = base_info.get("项目信息", {})
    location_candidates = find_keys_containing(project_info, "地点")
    extracted_info["招标项目地点"] = ensure_string(location_candidates[0]) if location_candidates else ""

    # 优先级：项目联系方式>招标人>招标代理
    contact_info_sections = [
        get_nested(base_info, ["招标人/代理信息", "项目联系方式"], {}),
        get_nested(base_info, ["招标人/代理信息", "招标人联系方式"], {}),
        get_nested(base_info,["招标人/代理信息", "招标代理机构联系方式"], {})
    ]
    contact_info_sections = [ci for ci in contact_info_sections if isinstance(ci, dict)]

    # 定义候选键列表，按优先级排序
    name_candidates = ["名称","联系人"]
    phone_candidates = ["联系电话", "联系方式"]

    # 提取 '联系人'
    contact_name = ""
    for contact in contact_info_sections:
        extracted_name = extract_field(contact, name_candidates)
        if extracted_name:
            contact_name = extracted_name
            break
    extracted_info["联系人"] = ensure_string(contact_name) if contact_name else ""

    # 提取 '联系电话'
    contact_phone = ""
    for contact in contact_info_sections:
        extracted_phone = extract_field(contact, phone_candidates)
        if extracted_phone:
            contact_phone = extracted_phone
            break
    extracted_info["联系电话"] = ensure_string(contact_phone) if contact_phone else ""

    # 特殊处理 '投标保证金'
    guarantee_info = get_nested(base_info, ["保证金相关"], {})
    if isinstance(guarantee_info, dict):
        bid_bond = extract_bid_bond(guarantee_info)
        extracted_info["投标保证金"] = format_amount(ensure_string(bid_bond)) if bid_bond else ""
    else:
        extracted_info["投标保证金"] = ""

    return extracted_info

def outer_post_processing(combined_data, includes, good_list):
    """
    外层处理函数，调用内层 inner_post_processing 处理 '基础信息'，并构建 processed_data。
    额外提取 '采购要求' 下的 '技术要求' 内容以及各块的信息 =》生成商务、技术偏离表所需信息
    返回:
        tuple: (processed_data, extracted_info, procurement_reqs)
    """
    # 初始化结果字典，预设'其他'分类为空字典

    processed_data = {"其他": {}}

    # 初始化提取的信息字典
    extracted_info = {}
    tech_eval_info=""
    busi_eval_info=""
    zige_info = ""
    fuhe_info = ""
    zigefuhe_info = ""
    # 初始化采购要求的技术要求
    tech_deviation_info = ""
    busi_requirements_info=""
    tech_deviation={}
    busi_requirements={}
    tech_requirements = {}
    # 检查 '基础信息' 是否在 includes 中
    if "基础信息" in includes:
        base_info = combined_data.get("基础信息", {})
        # 调用内层 inner_post_processing 处理 '基础信息'
        extracted_info = inner_post_processing(base_info)    #生成extract_info，返回给后端

        # 将 '基础信息' 保留在处理后的数据中
        processed_data["基础信息"] = base_info
        # 提取 '采购要求' 下的 '采购需求'
        procurement_reqs=get_nested(base_info, ["采购要求"], {})
        tech_requirements = get_nested(procurement_reqs, ["采购需求"], {})         #技术偏离表信息dict
        busi_requirements = {k: v for k, v in procurement_reqs.items() if k != "采购需求"}      #商务偏离表信息dict
        busi_requirements_info = json.dumps(busi_requirements, ensure_ascii=False, indent=4)
        if tech_requirements:
            tech_deviation = postprocess_technical_table(tech_requirements, good_list)
            tech_deviation_info=json.dumps(tech_deviation,ensure_ascii=False,indent=4)
        else:
            # 如果 '技术要求' 不存在或为空，可以根据需要设置默认值
            tech_deviation_info=""

    if "资格审查" in includes:
        zige_review = combined_data.get("资格审查", {})
        zige_info,fuhe_info,zigefuhe_info=prepare_for_zige_info(zige_review)
    if "技术评分" in includes:
        tech_eval=combined_data.get("技术评分",{})
        tech_eval_info=json.dumps(tech_eval,ensure_ascii=False,indent=4)
    if "商务评分" in includes:
        busi_eval=combined_data.get("商务评分",{})
        busi_eval_info=json.dumps(busi_eval,ensure_ascii=False,indent=4)
    all_data_info = '\n'.join([zige_info, fuhe_info, zigefuhe_info, tech_deviation_info,busi_requirements_info, tech_eval_info,busi_eval_info])
    tech_star_deviation, business_deviation, business_star_deviation, zigefuhe_deviation,proof_materials = process_functions_in_parallel(    #生成技术 商务偏离的main函数
        tech_requirements_dict=tech_requirements,
        busi_requirements_dict=busi_requirements,
        zige_info=zige_info,
        fuhe_info=fuhe_info,
        zigefuhe_info=zigefuhe_info,
        all_data_info=all_data_info
    )

    # 遍历原始字典的每一个键值对
    for key, value in combined_data.items():
        if key in includes:
            if key == "基础信息":
                # 已经处理 '基础信息'，无需再次添加
                continue
            else:
                # 直接保留包含在 includes 列表中的键值对
                processed_data[key] = value
        else:
            # 将不在 includes 列表中的键值对加入到 '其他' 分类中
            processed_data["其他"][key] = value

    # 如果 '其他' 分类没有任何内容，可以选择删除这个键
    if not processed_data["其他"]:
        del processed_data["其他"]

    return processed_data, extracted_info, tech_deviation,tech_star_deviation,business_deviation,business_star_deviation,zigefuhe_deviation,proof_materials

if __name__ == "__main__":
    combined_data = {
    "招标人/代理信息": {
        "招标人": "见招标公告",
        "招标人联系方式": {
            "名称": "见招标公告",
            "联系电话": "见招标公告",
            "地址": "见招标公告"
        },
        "招标代理机构": "见招标公告",
        "招标代理机构联系方式": {
            "名称": "见招标公告",
            "联系电话": "见招标公告",
            "地址": "见招标公告"
        }
    },
    "项目信息": {
        "项目名称": "见招标公告第2条，项目概况与招标范围",
        "项目编号": "未知",
        "项目概况": {
            "招标项目名称": "见招标公告第2条，项目概况与招标范围",
            "工程项目名称": "见招标公告第2条，项目概况与招标范围"
        },
        "项目基本情况": {
            "资金来源及比例": "见招标公告",
            "资金落实情况": "已落实",
            "招标范围": "见招标公告",
            "交货期": "见招标公告",
            "交货地点": "见招标公告",
            "技术性能指标": "见第五章供货要求和第四章合同条款及格式。已正式出版发行的最新的国家电网有限公司技术要求文件将作为招标文件的补充部分，招标文件技术规范有明确规定的，以技术规范为准，技术规范没有明确规定的，评标委员会将参考技术要求文件评审，投标文件不符合国家电网有限公司技术要求文件规定的主要技术要求的，将被视为实质性不响应招标文件。",
            "投标人资质条件、能力、信誉": "见招标公告第3条，投标人资格要求",
            "是否接受联合体投标": "见招标公告资格要求"
        },
        "招标控制价": "未知",
        "投标竞争下浮率": "未提供"
    },
    "关键时间/内容": {
        "投标文件递交截止日期": "见招标公告。",
        "开标时间": "同投标截止时间，见招标公告",
        "开标地点": "招标人招投标交易平台信息系统",
        "澄清招标文件的截止时间": "未提供",
        "投标有效期": "未提供",
        "信息公示媒介": [
                "本次招标公告同时在福建省公共资源交易电子公共服务平台(https://www.fjggfw.gov.cn/)、泉州市公共资源交易信息网（http://ggzyjy.quanzhou.gov.cn）上发布。",
                "公示媒介：福建省公共资源交易电子公共服务平台(https://www.fjggfw.gov.cn/)、泉州市公共资源交易信息网（http://ggzyjy.quanzhou.gov.cn）",
                "公共资源电子交易平台名称：泉州市公共资源交易信息网。网址：http://ggzyjy.quanzhou.gov.cn。联系电话：0595-22135508/22135505。公共资源交易中心名称：惠安县公共资源交易中心。地址：惠安县螺城镇惠兴街螺兴大厦二层（中闽百汇隔壁）。联系电话：0595-87378669。",
                "根据《福建省招标公告和公示信息发布管理办法》规定，依法必须招标项目的评标委员会仅推荐一名中标候选人的，其中标候选人公示同时视为中标结果公示，公示期合并，不得少于十日。"
            ]
    },
    "保证金相关": {
        "投标保证金额": "其他"
    },
    "其他信息": {
        "重新招标、不再招标和终止招标": "未提供",
        "投标费用承担": "未提供",
        "是否退还投标文件": "未提供"
    }
}
    extract_info=inner_post_processing(combined_data)
    print(json.dumps(extract_info,ensure_ascii=False,indent=4))
    tech_dict = {
        "交通标线": [
            "1)《中华人民共和国道路交通安全法实施条例》",
            "2)《城市道路交通设施设计规范》（GB 50688-2011，2019年修订版）",
            "3)《道路交通标志和标线》（GB 5768.2-2009）",
            "4)《道路交通标志反光膜》（GB/T18833-2012）",
            "5)《路面标线涂料》（JT/T280-2004）",
            "6)《道路交通标线质量要求和检测方法》（GB/T 16311-2009）",
            "7)《道路交通信号灯设置与安装规范》（GB 14886-2016）",
            "8)《道路交通信号控制机》（GB 25280-2010）",
            "9)《公路交通安全设施设计技术规范》（JTG D81-2017）",
            "10) 《闯红灯自动记录系统通用技术条件》（GA/T496-2014）",
            "11) 《视频安防监控系统工程设计规范》 （GB50395-2007）",
            "12) 《视频安防监控系统技术要求》(GA/T367-2001)",
            "13) 《道路交通安全违法行为图像取证技术规范》(GA/T832-2014)",
            "14) 《机动车号牌图像自动识别技术规范》(GA/T833-2016)",
            "15) 《道路车辆智能监测记录系统通用技术条件》（GA/T497-2016）",
            "16) 《公安交通指挥系统工程建设通用程序和要求》（GA/T651-2014）",
            "17) 《公安交通管理外场设备基础设施施工通用要求》（GA/T652-2017）",
            "18) 《安全防范工程技术标准》（GB50348-2018）",
            "19) 《建筑物防雷设计规范》（GB50057-2010）",
            "20) 《光纤通信系统通用规范》（SJ 20552-1995）",
            "21) 《安全防范工程程序与要求》（GA/T75-1994）",
            "22) 《安全防范系统验收规则》（GA308-2001）",
            "23) 《安全防范系统通用图形符号》（GA/T74-2017）",
            "24)其它相关技术规范与标准。",
            "1. 投标货物必须符合中华人民共和国公共安全行业标准“GA/T298—2001《道路标线涂料》”、交通行业标准“JT/T280—2004《路面标线涂料》”及“GB/T24722《路而标线用玻璃珠》”的规范要求，重点指标要求如下| 检测项目|技术指标|技术指标|| ---|---|---|| 检测项目|反光型|凸起型|| 密度（g/cm3）|1.8-2.3|1.8-2.3|| 软化点（℃）|90-125|≥100|107国道交通信号灯及安全防护设施采购项目招标文件湖北众恒永业工程项目管理有限公司广水分公司编制25/ 96| 不粘胎干燥时间|不粘胎干燥时间|不粘胎干燥时间|≤3|≤3|| ---|---|---|---|---|| 涂抹外观|涂抹外观|涂抹外观|涂膜冷凝后应无皱纹、斑点、起泡、裂纹、脱落及表面发粘 等现象，涂膜颜色和外观应与标准板差异不大。|涂膜冷凝后应无皱纹、斑点、起泡、裂纹、脱落及表面发粘 等现象，涂膜颜色和外观应与标准板差异不大。|| 抗压轻度|抗压轻度|抗压轻度|≥12|23℃±1℃，≥12 50℃±2℃，≥2|| 耐磨性（mg）负载 1kg200转 后减重|耐磨性（mg）负载 1kg200转 后减重|耐磨性（mg）负载 1kg200转 后减重|≤80|——|| 耐水性|耐水性|耐水性|经水浸泡 24小时后无异常|经水浸泡 24小时后无异常|| 耐碱性|耐碱性|耐碱性|在氢氧化钙饱和溶液中浸 24h无异常现象|在氢氧化钙饱和溶液中浸 24h无异常现象|| 流动度（S）|流动度（S）|流动度（S）|35±10|——|| 玻璃珠含量（%）|玻璃珠含量（%）|玻璃珠含量（%）|▲≥20|▲≥20|| 色度 性能|白 色|色品坐标（x， y）|在以下四角点色品坐标组成的四边形内 (0.350，0.300)；（0.290，0.340） （0.360，0.310）；（0.320，0.370）|在以下四角点色品坐标组成的四边形内 (0.350，0.300)；（0.290，0.340） （0.360，0.310）；（0.320，0.370）|| 色度 性能|白 色|亮度因素|▲≥0.35|▲≥0.35|",
            "2. 道路标线施划施工内容必须符合“GB5768—2009中《道路标线》”的规范要求。",
            "3. 标线质量要求： ①投标人必须提供施工使用的热熔涂料及玻璃珠的相关质量证明文件(检测报告等)； ▲②热熔标线旧标线的清除、采用高压水除线。★③热熔标线施划，标线表面加铺玻璃微珠，标线涂层厚度 1.8mm±0.2mm。",
            "4. 标线相关计量说明： 4.1.本项目价格形式为固定单价，最终计量结算，按照工程量清单单价据实结算。",
            "5. 道路热熔标线质保期 12个月。"
        ],
        "交通信号灯具": [
            "1、道路交通信号灯单灯必须符合国家标准 GB14887-2011《道路交通信号灯》全部技术规定，并通过公安部交通安全产品质量监督检测中心的检测。",
            "2、道路交通信号灯光源必须采用户外型超亮度发光二极管（LED），使用寿命不少于50000小时。",
            "3、信号灯灯具材质为铝质金属材料。机动车信号灯灯芯透镜尺寸采用￠400mm规格，人行信号灯灯芯透镜尺寸采用￠300mm，相同规格的灯芯可以互换。信号灯外观应与目前广水市使用的信号灯外观相一致。",
            "4、信号灯需采用恒流供电电路，单体信号灯功率￠400mm规格不超过20VA；￠300mm规格不超过 15VA。"
        ],
        "倒计时器": [
            "1、道路交通信号倒计时器安装在信号灯的上方或右方，2位数码显示倒九秒提示。",
            "2、当机动车信号灯采用悬臂式杆件时，机动车信号灯倒计时器规格为 800×600，当采用立柱式杆件时，倒计时器规格为 400×400。人行信号灯倒计时显示器透光面为Φ300mm或 300mm ×300mm。",
            "3、倒计时显示器的光学性能、工作条件、机械强度、电气性能均符合国家安全行业 标准 GA/T508-2004《道路交通信号倒计时显示器》的全部技术规定。",
            "4、倒计时器运行中遇到电磁、静电、电网等干扰时不能有死机现象。",
            "5、倒计时器必须经过过电压、过电流测试，具有防雷击功能。",
            "6、倒计时器应为学习型，并支持脉冲触发、黄灯触发及通讯式触发。"
        ],
        "信号灯灯杆": [
            "1、信号灯杆所属的立柱、法兰盘、地脚螺栓、螺母、垫片、加强筋等金属构件及悬臂、支撑臂、拉杆、抱箍座、夹板等附件的防腐性能应符合 GB/T18226《公路交通工程钢构件防腐技术条件》的规定。",
            "2、信号灯杆应采用圆形或多棱形经热镀锌处理的钢管制造；悬臂式灯杆悬臂杆与支撑杆使用圆形或多棱形的变截面型材制作，悬臂与灯杆连接端宜焊接固定法兰盘，悬臂下应留有进出线孔。",
            "3、信号灯杆制作后须经过防锈处理，底层喷涂富锌防锈底漆，外层喷涂银灰色瓷漆。",
            "4、信号灯灯杆距路面约 300-350mm处留有拉线孔和拉线孔门。",
            "5、孔门盖应设有防盗措施，孔内设置接地端子座，并与接地线可靠接驳。",
            "6、立柱式灯杆顶部安装灯具处应留有出线孔，并配备橡胶护套、电缆线回水弯挂钩，灯杆顶部应安装塑料或经防腐处理的内套式金属防水管帽。",
            "7、悬臂式灯杆拉杆宜使用圆钢制作，一端配有可调距离的螺旋扣，直径和长度根据悬臂长度确定。",
            "8、信号灯杆杆体底部应焊接固定法兰盘，法兰盘与杆体之间应均匀焊接加强筋。",
            "9、一体式人行信号灯采用整灯嵌入式设计、结构紧凑、方便拆装、便于维护。杆体前后金属面板喷塑处理，两侧铝型材包边。"
        ],
        "交通信号机": [
            "★应采用区域控制信号机，并应与广水市交通信号控制系统兼容，信号机能接入已有系统平台，实现联网优化功能。",
            "1、控制功能",
            " （1）区域协调控制：可对单个孤立交叉口、干道多个交叉口和关联性较强的交叉口群进行综合性地信号控制。",
            "（2）线性协调控制：可对干道多个相邻交叉口进行协调控制。",
            "（3）多时段控制：可根据交叉口的交通状况，将每天划分为多个不同的时段，每个时段配置不同的控制方案，能设置至少 10个时段、10种以上不同控制方案，能根据不同周日类型对方案进行调整。信号机能够根据内置时钟选择各个时段的控制方案，实现交叉口的合理控制。",
            "（4）感应控制：信号机能根据检测到车辆达到情况，在保证最小安全绿灯时间的前提下，调整感应方向的绿信比参数，实现路口的最佳配时，保证交叉口的通行顺畅。通过参数配置，在感应方向没有机动车请求的情况下，信号机能够跳过感应相位，直接放行下一相位。",
            "（5）单点优化控制：信号机能根据检测的交通流信息，适当调整路口周期时长和绿信比分配，实现路口信号控制的最优方案。",
            "（6）无缆线协调控制：信号机能够通过配置路口相位差，即使在不联网的条件下，依然实现各个路口的绿波协调控制效果。",
            "（7）手动控制：在某些特殊情况下，使用者可以通过手动装置完成手动强制功能，使信号显示停留在任意相位（包括全红、黄闪）；信号机也可响应来自监控中心操作终端或现场笔记本的手动控制指令。",
            "（8）黄闪控制：信号机具有黄闪控制功能，可以通过手动控制实现黄闪，或者通过规定时段自动进入黄闪控制。另外，当信号机的硬件发生故障时，可以进入硬件故障黄闪。",
            "（9）全红控制：信号机能够根据时间表调用信号机的全红控制方案，实现对交叉口的全红控制功能。路口信号机具备一键全红功能，即：触动信号机某一按钮即实现路口全红控制，该按钮应设置在手控箱中便于操作。中心控制软件具备一键全红功能，用法同上。",
            "（10）公交优先控制：支持 RFID、地磁、线圈等检测方式，支持多种公交优先控制策略。",
            "（11）黑灯：能够一键关闭所有信号灯。",
            "（12）行人过街按钮：信号机支持行人按钮信号输入，可在路口和路段响应来自行人按钮的行人过街请求。",
            "（13）溢出控制：信号机发现路口拥堵后，能够立即调整绿灯时间或其他指定灯色的方式，避免过多车辆涌入拥堵方向或快速放行，抑制拥堵扩散（或溢出）或加速疏导。",
            "（14）相位控制：至少 8个相位控制，可扩至 16个以上相位控制。",
            "（15）信号灯组输出：至少 8个独立信号组输出，可扩展至 16个以上独立信号组输出。",
            "2、采集功能",
            " （1）信号机支持接入线圈、地磁、视频、微波、超声波检测器、RFID等多种检测方式。",
            "（2）信号机支持交通信息采集与统计,并支持交通流量共享。",
            "3、运维功能",
            " （1）信号机能够自动检测地磁故障，若故障，能够自动上传故障信息至监控中心。",
            "（2）具有故障自检功能，如信号机死机时迅速做出反应重新启动信号机；出现绿灯冲突时，马上切换到黄闪状态，对绿灯冲突进行检测和处理，并记录绿灯冲突的灯组；对信号灯驱动部分和外线出现的故障以及信号机各主要部件的故障进行自动检测和记录。",
            "（3）信号机支持检测机柜内电压状态指标，若出现异常情况，能够及时报警并上传中心控制系统。",
            "（4）信号机主控板一旦发生故障后，信号机仍能够继续运行定周期方案，保障路口交通秩序，等待主控板故障排除后，自动恢复。",
            "（5）信号机出现故障时应能按“上位机控制→无电缆协调控制→感应控制→定时控制→黄闪”实现降级。",
            "4、通信功能",
            " （1）交通信号控制器支持有线、无线联网。",
            "（2）交通信号控制机应基于开放的通信协议，满足《交通信号控制机与上位机间的数据通信协议》（GB/T20999-2017）标准或 NTCIP通讯协议体系架构，符合度≥90%。",
            "5、操作功能",
            " （1）交通信号控制器必须提供维护软件，支持通过串口、网口连接。信号机侧面具备手动控制面板，能够在现场进行手动控制。",
            "6、其他功能",
            " （1）机动车灯按顺序的转换过程中无显示中断现象。人行横道灯绿灯时间能够灵活确定。绿闪、黄灯、全红时间设置为 0时，该灯色不应出现，且不会影响信号的正常转换。",
            "（2）信号机从自动控制方式转入手动控制方式时，信号机应保持原有相位的最小安全时间，最小安全时间可根据路口实际情况设定；从手动控制方式（驻留或步进）转入自动控制方式时，信号状态不会突变，各相位信号应保持转换时刻的状态，至少保持最小安全时间。",
            "（3）信号机采用的芯片具有精确的时钟，与中心系统联接后，系统可定时校准信号机时钟，采用具有时、分、秒、年、月、日、星期的晶体时钟计时，保证信号机时钟精度在 1 秒内。若信号机不与中心连接，配置 GPS接口，可通过 GPS接口进行精确的时钟校准，保证时钟分秒无差。停电时由电池保持时钟继续工作，采用锂电池作为后备电源。",
            "（4）停电保护功能：自动保存修改的各项控制参数，停电后数据不会丢失。",
            "质保期：2 年。"
        ],
        "系统功能-a": [
            "▲系统能实现 24小时高清视频录像功能。可以在白天或夜间有辅助光源的情况下实现 清晰录像；视频编码格式至少支持 H.264/ H.265；可自动记录车辆通过时间、地点、所在车 道、违法类型等信息；录像中能清晰地反映车辆的颜色、车辆类型、运动轨迹，并提供录像 查询、下载等功能。",
            "▲至少具备监控前端设备切换、云台/快球控制器方向控制、焦距调节、镜头缩放、光 圈调节、预置位设置、雨刷和电源开关控制、自定义辅助开关控制、监控前端设备锁定与解 锁、云台/快球控制器的参数设定等功能。",
            "系统可对城市进行全面综合交通视频监控；通过交通视频监控系统的巡检功能，定时不 间断地对城市进行全面监控扫描。值班人员可以根据图像画面上所发出的报警信息，及时定 点跟踪确认。第一时间进行力量调度，并对事件的发展情况和事态的全程变化状况全程跟踪、 实时录像、调查取证。",
            "利用交通视频监控系统，可以准确地对城市报警情况进行核实。当接到报警信息后，可 以将摄像头调整到报警位置，进行识别判断；确认报警信息是否属实。",
            "交通视频监控系统由于位置高、监控距离远、视角广的特点，在发生某些特定事件救援 时，可以有效地对救援点交通进行一个诊断，减少或者避免由于客观原因造成的事态扩大。",
            "▲设备具备车辆布控功能，当监视画面中出现布控名单中的机动车时，设备可触发报警 并跟踪，布控名单中可添加 10000个号牌信息"
        ],
        "一体化高速球机": [
            "1、▲采用≥1.8英寸红外型 800万像素逐行扫描图像传感器。",
            "2、光学变倍≥22倍，焦距≥6.5～143mm，支持 H.265、H.264、MJPEG视频编码。",
            "3、分辨率≥3840×2160，帧率≥30fps，亮度等级≥11级。",
            "4、支持超低照度监控：彩色模式≤0.01lx，黑白模式≤0.003lx，具备三码流功能：主码流 3840×2160、30帧/秒、8Mbps；子码流 1280×720、30帧/秒、1Mbps；第三码流主码流 3840×2160、30帧/秒、1Mbps，码率设置为 128Kbps～8Mbps。",
            "5、摄像机具备自动增益控制功能、自动白平衡调整功能、逆光补偿调整功能、日夜模式、电子快门、自动聚焦、断电记忆、定时启动、区域遮盖、自动定位、在线升级、断线自动重连。",
            "6、▲支持前端存储功能。",
            "7、支持 360°水平连续旋转，支持垂直-15°～90°旋转。",
            "8、摄像机具备良好的电源适应性，在 AC24±35%或 DC24±35%范围内，能正常工作， IP防护等级≥IP67，环境温度满足-45～70℃。"
        ],
        "光纤收发器-a": [
            "1、1路千兆以太网。",
            "2、单模单纤，光接口为 FC接口，满足实际传输距离要求。",
            "3、10/100/1000M自适应以太网接口。",
            "4、工作环境适应性强，满足全天候使用的要求。",
            "5、耐压≥300V。"
        ],
        "交通诱导屏": [
            "1、主要特性",
            "1)温度范围-40~70℃",
            "2)光带宽度>130mm",
            "3)通迅接口：RS485、网络通讯、3G网络",
            "4)视角：水平：110°～120°垂直：55°",
            "5)发光亮度：6500-7000 cd/m2",
            "6)平整度≤0.5mm",
            "7)使用寿命≥10万小时",
            "8)平均故障时间≥1万小时",
            "9)电源采用 n+1高可靠容错的开关电源系统",
            "10)显示尺寸：长 3.84米×高 2.56米=9.83平方米",
            "11)机箱要求：冷轧钢板,机箱为内外两层，内箱体为全封闭、全天候、防风雨型，符合 IP65防护等级",
            "12)抗风等级：40m/s",
            "2、技术参数：",
            "1）物理点间距：10mm",
            "2）物理密度：10000点/m2",
            "3）发光点颜色：1R1G",
            "4）基色：纯红+纯绿",
            "5）模组尺寸:320mm\\*160mm",
            "6）刷新频率：≥800HZ",
            "7）工作电压：AC220V±10％，50Hz（三相五线制）",
            "8）平均功耗：350W/m2",
            "9）最大功耗：≤700W/ m2"
        ],
        "系统功能-b": [
            "（1）闯红灯违法抓拍功能★系统可以实现对单方向各车道闯红灯车辆的监测、图像抓拍等功能。闯红灯捕获率≥90%，每一违法记录拍摄连续 3张反映闯红灯过程的图片，其中第一个位置的图片反映机动 车未到达停止线的情况，并能清晰辨别车辆类型、交通信号灯红灯、停止线；第二个位置的 图片反映机动车已越过停止线的情况，并能清晰辨别车辆类型、号牌号码、交通信号灯红灯、 停止线；第三个位置的图片反映机动车越过停止线继续前行的情况，并能清晰辨别车辆类型、 交通信号灯红灯、停止线。",
            "（2）不按车道行驶记录功能 当车辆遇到“分向行驶车道”不按规定的转向、右转车辆占用直行车道，或在左转、右 转车道上直行等情形，系统可以实现对此类违法行为的记录，以三张图片清晰、完整表现违 法过程。",
            "（3）违章变道记录功能 ▲系统能够对违法变道车辆进行记录，抓拍三张不同位置的图片以反映整个违法变道过 程，其中第一张为车辆在初始车道行驶时抓拍的图片，第二张为压线行驶时抓拍的图片，第 三张为变换到另一个车道上行驶时抓拍的图片。",
            "（4）闯禁令记录功能 系统能够对违反禁左、禁右、禁止掉头等通行的车辆，进行检测、抓拍记录与识别。",
            "（5）卡口监测记录功能 系统能够准确捕获、记录车辆通行信息（车辆尾部的图片），对通过车辆的捕获率不小 于 99%。记录的车辆信息除包含图像信息外，还包括文本信息，如日期、时间（精确到秒）、 地点、方向、号牌号码等。车辆信息写入关联数据库，并将相关文本信息叠加到图片上。",
            "（6）逆行记录功能 系统能够对逆向行驶的违法车辆进行检测、抓拍记录与识别。",
            "（7）压线行驶记录功能 系统能够对压线行驶的违法车辆进行检测、抓拍记录与识别，其主要针对在连续一段时 间内压车道线行驶的车辆，此类车辆会影响前后车驾驶员的判断，干扰前后车的正常形式。",
            "（8）车身颜色识别功能 ▲系统能够自动对车身深浅和颜色进行识别，可供用户根据车身颜色来查询通行车辆。",
            "（9）车牌号码自动识别 系统能够对符合“GA36-2014”标准的民用车牌、新能源车辆、警用车牌、使领馆车牌 的号牌自动识别能力。",
            "（10）图像防纂改功能 记录的原始图像信息具备防纂改功能，避免在传输存储、处理等过程中被认为篡改。",
            "（11）测速功能 系统能够与测速设备配套使用，监控车辆行驶的速度，对超速行驶的车辆进行抓拍。",
            "（12）未系安全带检测功能 ★采用视频检测技术，对未系安全带行为进行检测，抓拍记录与识别。",
            "（13）接打电话检测功能 采用视频检测技术，实现对前排驾驶人接打电话状态的检测，抓拍记录与识别。",
            "（14）驾驶人面部特征记录功能 ★在电子警察杆件上增加车辆正向采集的摄像机，可通过路口终端服务器实现驾驶人面 部特征记录功能。可将违法行为与对应车辆的正向图片匹配起来，从而将违法行为固定到驾 驶人，有效遏制驾驶分非法买卖现象，同时为公安交通管理和刑侦案件侦破提供技术支持。",
            "（15）车辆稽查布控功能 系统具备车辆交通安全违法行为监测报警和布控车辆自动比对报警功能，比对方式包括 精确比对和模糊比对。",
            "（16）交通流量数据采集功能 系统能够按车道和时段进行车辆流量、平均速度、车辆类型、占有率、平均车头时距、 平均排队长度、饱和度等数据的统计。所有统计数据应支持以报表形式输出。",
            "（17）高清录像功能 系统支持道路交通情况的实时视频录像存储，视频质量能清晰反映覆盖区域内行驶机动 车的车牌号码。视频采用预分配存储机制，前端支持进行滚动存储 7天以上。",
            "（18）数据断点续传功能 系统支持断点续传功能。当遇到网络中断或其他故障时，车辆信息存储在前端设备中， 待故障排除后自动续传。",
            "（19）时间校准功能 按照《GA/T832-2014道路交通安全违法行为图像取证技术规范》的要求，24h内计时 误差不超过 1.0s，确保所有前端设备点位每日至少与电子警察中心系统时钟同步一次。",
            "（20）网络远程维护功能 系统可以实时查看前端设备的运行状态。能通过网络实现远程维护、远程设置和远程升 级等功能。",
            "（20）黑白名单功能 ▲系统支持车牌黑/白名单设置，最大可设置 60万条黑/白名单。",
            "（21）连续闯红灯监测功能 ▲支持连续闯红灯事件检测功能，对某一时间段内连续闯红灯事件进行检测，并自动上 传报警信息。"
        ],
        "高清视频摄像机": [
            "1、有效像素≥900W像素",
            "2、最低照度彩色≤0.001lx",
            "3、传感器类型≥1英寸全局曝光 COMS/GMOS/GS COMS",
            "4、电子快门至少满足 1/25s至 1/100,000s，可调",
            "5、视频压缩标准至少支持 H264、H265等",
            "6、视频分辨率≥4096×2160，向下可设置",
            "7、视频流帧率≥25fps,至少双视频流",
            "8、图片压缩方式JPEG",
            "9、图像分辨率≥4096(H)×2160(V)",
            "10、强光抑制具备",
            "11、协议API接口开放具备；支持标准 ONVIF协议与第三方厂家设备进行互联；支持 GB/T28181；应提供 SDK",
            "12、接口通讯接口≥1个 RJ45，10M/100M/1000M自适应以太网电口；≥1个 RS-485接口",
            "13、前端存储卡嵌入式，支持断网时本地存储，裸容量≥128GB",
            "14、功能应具备 I/O触发、RS-485触发、视频触发，支持电源同步；支持频闪式卜光装置和脉冲式补光装置同步补光",
            "15、功能具备 AI深度学习算法和 GPU芯片",
            "16、高清工业级镜头光圈、聚焦手动光圈；焦距应可根据车道宽度及抓拍距离进行调整设置，要求中心成像圆内解像力不小于 900万像素，边缘解像力不低于中心 60%，镜头的成像尺寸应与摄像机成像靶面尺寸相等或略大。镜头应配置电动偏振镜，具备根据环境自动切换功能",
            "17、防护罩防护罩类型室外型防护罩，含底座；具备隔热防潮、防水、防尘、防腐、防震等功能；具有加热器、支架、遮阳罩等，具有良好的密封性和恒温等功能。",
            "18、防护罩防护等级≥IP66"
        ],
        "LED补光灯": [
            "1|配置方式|每个车道配置≥1台；补光装置必须与高清摄像设备高度匹配",
            "2|LED管芯|采用超高亮大功率白光 LED管芯，灯珠数量不少于 20颗",
            "3|功耗|30W/车道≤单台平均功耗≤50W/车道，可调",
            "4|峰值光照度|≤300lx",
            "4|(基准轴)|≤300lx",
            "5|峰值光照度|应大于等于基准轴上有效光照度的 50%",
            "5|(补光区)|应大于等于基准轴上有效光照度的 50%",
            "6|平均光照度|≤50lx",
            "7|闪光频率|≥50Hz；补光装置应能与集成式高清摄像设备同步",
            "8|有效补光距离|≥25m",
            "9|最大点亮时间|≤4ms(可调节)",
            "10|控制方式|电平，同步触发方式",
            "11|安全性|在保证瞬时亮度的前提下，必须进行防炫目处理，不会造成光污染",
            "12|使用寿命|≥50000小时",
            "13|防护等级|不低于 IP65",
            "14|其它|应配置光栅装置或遮光阻断装置"
        ],
        "光纤收发器-b": [
            "1、1路千兆以太网。",
            "2、单模单纤，光接口为 FC接口，满足实际传输距离要求。",
            "3、10/100/1000M自适应以太网接口。",
            "4、工作环境适应性强，满足全天候使用的要求。",
            "5、耐压≥300V。"
        ],
        "交换机-a": [
            "1、交换容量≥6Gbps，包转发率≥7Mpps；MAC地址列表≥8K；应具备线性转发能力；",
            "2、应至少具有 8个 10/100/1000M自适应以太网接口和至少 2个 1000M光口；",
            "3、以太网光端口传输距离应不小于 40km，以太网光模块为单芯双向光模块，光口接口类型为 LC型接口，光模块连接单模光纤；",
            "4、至少支持 IEEE802.1p、IEEE802.1q、IEEE802.3、IEEE802.3u、IEEE802.3z、IEEE802.3x等协议；",
            "5、应具有 IEEE802.1Q VLAN，应实现信号控制独立传输，至少支持 4个 VLAN划分；",
            "6、应至少支持三层动态路由协议；",
            "7、应具有 IEEE802.1p_QOS功能；",
            "8、应具有 IGMP静态组播、端口聚合、端口镜像等功能；",
            "9、IP40以上等级防护；",
            "10、应采用无风扇设计；",
            "11、应具有网管功能。"
        ],
        "红绿灯信号检测器": [
            "每路口配置 1套，至少能检测 12路独立红灯信号，红灯信号检测准确率为 100%。"
        ],
        "终端服务器-a": [
            "1、结构形式：采用嵌入式架构；",
            "2、操作系统:嵌入式操作系统；",
            "3、▲接入路数:提供≥12路高清摄像机视频存储、过车记录存储、图片存储、数据上传、视频流转发等；",
            "4、主机存储:内置 SATA接口；配置存储容量≥16T硬盘 ；",
            "5、网络接口:提供≥8个 RJ45 1000M网络接口；",
            "6、其他接口:提供 RS232、RS485、外置 USB接口、VGA接口等；",
            "7、访问操作:支持 Web操作访问；",
            "8、▲接口协议:至少支持 ONVIF，GB/T28181等；",
            "9、API接口开放支持；支持标准 ONVIF协议与第三方厂家设备进行互通；支持 GB/T 28181。",
            "10、▲支持套牌车检测，可将抓拍图片与本地历史数据进行车辆特征比对分析，检测出套牌车辆，同时给出告警提示"
        ],
        "系统功能-c": [
            "(1)卡口记录功能：捕获正常行驶车辆的过车图片，抓拍率≥99%；",
            "(2)逆行记录功能：对逆向行驶的违法车辆进行检测、抓拍记录与识别；",
            "(3)压线行驶记录功能：对压线行驶的违法车辆进行检测、抓拍记录与 识别，其主要针对在连续一段时间内压车道线行驶的车辆，此类车辆会影响前后 车驾驶员的判断，干扰前后车的正常行驶；",
            "(4)车身颜色识别功能：可自动对车身深浅和颜色进行识别，可供用户 根据车身颜色来查询通行车辆；",
            "(5)车牌号码自动识别：对符合“GA36-2014”标准的民用车牌、新能 源车辆、警用车牌、使领馆车牌的号牌自动识别能力；",
            "(6)闯禁行记录功能：对违反禁止通行的车辆，进行检测、抓拍记录与 识别；",
            "(7) ▲图像防纂改功能：记录的原始图像信息具备防纂改功能，避免在 传输存储、处理等过程中被人为篡改；",
            "(8)测速功能：与测速设备配套使用，监控车辆行驶的速度，对超速行 驶的车辆进行抓拍；",
            "(9) ★未系安全带检测功能：采用视频检测技术，对未系安全带行为进 行检测，抓拍记录与识别；",
            "(10)接打电话检测功能：采用视频检测技术，实现对前排驾驶人接打电 话状态的检测，抓拍记录与识别；",
            "(11) ★人脸特征抠图：采用视频检测技术对驾驶室人脸特征进行检测， 并将人脸特征抠出，为公安交通管理和刑侦案件侦破提供技术支持。",
            "(12) ▲支持混合抓拍模式，设备支持正面/侧面/背面行人（包括成年人和 儿童）的抓拍；支持对骑自行车、骑三轮车、骑电动车、踩平衡车、骑车带人等 非机动车的抓拍；支持对轿车、客车、面包车、货车、卡车、摩托车等机动车的 抓拍"
        ],
        "高清视频抓拍像机-a": [
            "1|摄像机|有效像素|≥900W像素",
            "1|摄像机|最低照度|彩色≤0.001lx",
            "1|摄像机|传感器类型|≥1英寸全局曝光 COMS/GMOS/GS COMS",
            "1|摄像机|电子快门|至少满足 1/25s至 1/100,000s，可调",
            "2|视频图 像|视频压缩标准|至少支持 H264、H265等",
            "2|视频图 像|视频分辨率|≥4096×2160，向下可设置",
            "2|视频图 像|视频流帧率|≥25fps,至少双视频流",
            "3|视频图 像|图片压缩方式|JPEG",
            "3|视频图 像|图像分辨率|≥4096(H)×2160(V)",
            "3|视频图 像|强光抑制|具备",
            "4|协议|API接口开放|具备；支持标准 ONVIF协议与第三方厂家设备进行互联； 支持 GB/T28181；应提供 SDK",
            "5|接口|通讯接口|≥1个 RJ45，10M/100M/1000M自适应以太网电口；≥1 个 RS-485接口",
            "5|接口|前端存储卡|嵌入式，支持断网时本地存储，裸容量≥128GB",
            "5|功能|具备其他功能|应具备 I/O触发、RS-485触发、视频触发，支持电源同步； 支持频闪式卜光装置和脉冲式补光装置同步补光",
            "5|功能|具备其他功能|具备 AI深度学习算法和 GPU芯片",
            "6|高清工 业级镜 头|光圈、聚焦|手动光圈；焦距应可根据车道宽度及抓拍距离进行调整设 置，要求中心成像圆内解像力不小于 900万像素，边缘解 像力不低于中心 60%，镜头的成像尺寸应与摄像机成像靶 面尺寸相等或略大。镜头应配置电动偏振镜，具备根据环 境自动切换功能",
            "7|防护罩|防护罩类型|室外型防护罩，含底座；具备隔热防潮、防水、防尘、防 腐、防震等功能；具有加热器、支架、遮阳罩等，具有良 好的密封性和恒温等功能。",
            "7|防护罩|防护等级|≥IP66"
        ],
        "补光灯-a": [
            "1、配置方式:每个车道配置≥1台；补光装置必须与高清摄像设备高度匹配",
            "2、LED管芯:采用超高亮大功率白光 LED管芯，灯珠数量不少于 20颗",
            "3、功耗:30W/车道≤单台平均功耗≤50W/车道，可调",
            "4、峰值光照度:≤300lx",
            "4、(基准轴):≤300lx",
            "5、峰值光照度:应大于等于基准轴上有效光照度的 50%",
            "5、(补光区):应大于等于基准轴上有效光照度的 50%",
            "6、平均光照度:≤50lx",
            "7、闪光频率:≥50Hz；补光装置应能与集成式高清摄像设备同步",
            "8、有效补光距离:≥25m",
            "9、最大点亮时间:≤4ms(可调节)",
            "10、控制方式:电平，同步触发方式",
            "11、安全性:在保证瞬时亮度的前提下，必须进行防炫目处理，不会造成光污染",
            "12、使用寿命:≥50000小时",
            "13、防护等级:不低于 IP65",
            "14、其它:应配置光栅装置或遮光阻断装置"
        ],
        "闪光灯-a": [
            "1、色温范围 5500±500K。",
            "2、补光距离 16m~30m。",
            "3、回电时间≤60ms，满足相机 2张连拍需求。",
            "4、闪光灯寿命＞500万次。",
            "5、自带光敏控制，可根据环境亮度自动调节闪光强度。",
            "6、防护等级 IP66。",
            "7、在-20℃~70℃温度范围内均能正常工作。"
        ],
        "光纤收发器-c": [
            "1、1路千兆以太网。",
            "2、单模单纤，光接口为 FC接口，满足实际传输距离要求。",
            "3、10/100/1000M自适应以太网接口。",
            "4、工作环境适应性强，满足全天候使用的要求。",
            "5、耐压≥300V。"
        ],
        "交换机-b": [
            "1、交换容量≥6Gbps，包转发率≥7Mpps；MAC地址列表≥8K；应具备线性转发能力；",
            "2、应至少具有 8个 10/100/1000M自适应以太网接口和至少 2个 1000M光口；",
            "3、以太网光端口传输距离应不小于 40km，以太网光模块为单芯双向光模块，光口接口类型为 LC型接口，光模块连接单模光纤；",
            "4、至少支持 IEEE802.1p、IEEE802.1q、IEEE802.3、IEEE802.3u、IEEE802.3z、IEEE802.3x等协议；",
            "5、应具有 IEEE802.1Q VLAN，应实现信号控制独立传输，至少支持 4个 VLAN划分；",
            "6、应至少支持三层动态路由协议；",
            "7、应具有 IEEE802.1p_QOS功能；",
            "8、应具有 IGMP静态组播、端口聚合、端口镜像等功能；",
            "9、IP40以上等级防护；",
            "10、应采用无风扇设计；",
            "11、应具有网管功能。"
        ],
        "终端服务器-b": [
            "1、结构形式：采用嵌入式架构；",
            "2、操作系统:嵌入式操作系统；",
            "3、接入路数:提供≥8路高清摄像机视频存储、过车记录存储、图片存储、数据上传、视频流转发等；",
            "4、主机存储:内置 SATA接口；配置存储容量≥16T硬盘 ；",
            "5、网络接口:提供≥8个 RJ45 1000M网络接口；",
            "6、其他接口:提供 RS232、RS485、外置 USB接口、VGA接口等；",
            "7、访问操作:支持 Web操作访问；",
            "8、接口协议:至少支持 ONVIF，GB/T28181等；",
            "9、API接口开放支持；支持标准 ONVIF协议与第三方厂家设备进行互通；支持 GB/T 28181。"
        ],
        "系统功能-d": [
            "（1）卡口记录功能：捕获正常行驶车辆的过车图片，抓拍率≥95%；",
            "（2）逆行记录功能：对逆向行驶的违法车辆进行检测、抓拍记录与识别；",
            "（3）压线行驶记录功能：对压线行驶的违法车辆进行检测、抓拍记录与 识别，其主要针对在连续一段时间内压车道线行驶的车辆，此类车辆会影响前后 车驾驶员的判断，干扰前后车的正常形式；",
            "（4）车身颜色识别功能：可自动对车身深浅和颜色进行识别，可供用户 根据车身颜色来查询通行车辆；",
            "（5）车牌号码自动识别：对符合“GA36-2014”标准的民用车牌、新能 源车辆、警用车牌、使领馆车牌的号牌自动识别能力；",
            "（6） ▲闯禁行记录功能：对违反禁止通行的车辆，进行检测、抓拍记录 与识别；",
            "（7）图像防纂改功能：记录的原始图像信息具备防纂改功能，避免在传 输存储、处理等过程中被认为篡改；",
            "（8） ★测速功能：与测速设备配套使用，监控车辆行驶的速度，对超速 行驶的车辆进行抓拍；",
            "（9）未系安全带检测功能：采用视频检测技术，对未系安全带行为进行 检测，抓拍记录与识别；",
            "（10）接打电话检测功能：采用视频检测技术，实现对前排驾驶人接打电 话状态的检测，抓拍记录与识别；",
            "（11）人脸特征抠图：采用视频检测技术对驾驶室人脸特征进行检测，并 将人脸特征抠出，为公安交通管理和刑侦案件侦破提供技术支持。"
        ],
        "高清视频抓拍像机-b": [
            "1|摄像机|有效像素|≥900W像素",
            "1|摄像机|最低照度|彩色≤0.001lx",
            "1|摄像机|传感器类型|≥1英寸全局曝光 COMS/GMOS/GS COMS",
            "1|摄像机|电子快门|至少满足 1/25s至 1/100,000s，可调",
            "2|视频图 像|视频压缩标准|至少支持 H264、H265等",
            "2|视频图 像|视频分辨率|≥4096×2160，向下可设置",
            "2|视频图 像|视频流帧率|≥25fps,至少双视频流",
            "3|视频图 像|图片压缩方式|JPEG",
            "3|视频图 像|图像分辨率|≥4096(H)×2160(V)",
            "3|视频图 像|强光抑制|具备",
            "4|协议|API接口开放|具备；支持标准 ONVIF协议与第三方厂家设备进行互联； 支持 GB/T28181；应提供 SDK",
            "5|接口|通讯接口|≥1个 RJ45，10M/100M/1000M自适应以太网电口；≥1 个 RS-485接口",
            "5|接口|前端存储卡|嵌入式，支持断网时本地存储，裸容量≥128GB",
            "5|功能|具备其他功能|应具备 I/O触发、RS-485触发、视频触发，支持电源同步； 支持频闪式卜光装置和脉冲式补光装置同步补光",
            "5|功能|具备其他功能|具备 AI深度学习算法和 GPU芯片",
            "6|高清工 业级镜 头|光圈、聚焦|手动光圈；焦距应可根据车道宽度及抓拍距离进行调整设 置，要求中心成像圆内解像力不小于 900万像素，边缘解 像力不低于中心 60%，镜头的成像尺寸应与摄像机成像靶 面尺寸相等或略大。镜头应配置电动偏振镜，具备根据环 境自动切换功能",
            "7|防护罩|防护罩类型|室外型防护罩，含底座；具备隔热防潮、防水、防尘、防 腐、防震等功能；具有加热器、支架、遮阳罩等，具有良 好的密封性和恒温等功能。",
            "7|防护罩|防护等级|≥IP66"
        ],
        "补光灯-b": [
            "1、色温范围 5500±500K。",
            "2、补光距离 16m~30m。",
            "3、回电时间≤60ms，满足相机 2张连拍需求。",
            "4、闪光灯寿命＞500万次。",
            "5、自带光敏控制，可根据环境亮度自动调节闪光强度。",
            "6、防护等级 IP66。",
            "7、在-20℃~70℃温度范围内均能正常工作。"
        ],
        "闪光灯-b": [
            "1、色温范围 5500±500K。",
            "2、补光距离 16m~30m。",
            "3、回电时间≤60ms，满足相机 2张连拍需求。",
            "4、闪光灯寿命＞500万次。",
            "5、自带光敏控制，可根据环境亮度自动调节闪光强度。",
            "6、防护等级 IP66。",
            "7、在-20℃~70℃温度范围内均能正常工作。"
        ],
        "光纤收发器-d": [
            "1、1路千兆以太网。",
            "2、单模单纤，光接口为 FC接口，满足实际传输距离要求。",
            "3、10/100/1000M自适应以太网接口。",
            "4、工作环境适应性强，满足全天候使用的要求。",
            "5、耐压≥300V。"
        ],
        "交换机-c": [
            "1、交换容量≥6Gbps，包转发率≥7Mpps；MAC地址列表≥8K；应具备线性转发能力；",
            "2、应至少具有 8个 10/100/1000M自适应以太网接口和至少 2个 1000M光口；",
            "3、以太网光端口传输距离应不小于 40km，以太网光模块为单芯双向光模块，光口接口类型为 LC型接口，光模块连接单模光纤；",
            "4、至少支持 IEEE802.1p、IEEE802.1q、IEEE802.3、IEEE802.3u、IEEE802.3z、IEEE802.3x等协议；",
            "5、应具有 IEEE802.1Q VLAN，应实现信号控制独立传输，至少支持 4个 VLAN划分；",
            "6、应至少支持三层动态路由协议；",
            "7、应具有 IEEE802.1p_QOS功能；",
            "8、应具有 IGMP静态组播、端口聚合、端口镜像等功能；",
            "9、IP40以上等级防护；",
            "10、应采用无风扇设计；",
            "11、应具有网管功能。"
        ],
        "终端服务器-c": [
            "1、结构形式：采用嵌入式架构；",
            "2、操作系统:嵌入式操作系统；",
            "3、接入路数:提供≥8路高清摄像机视频存储、过车记录存储、图片存储、数据上传、视频流转发等；",
            "4、主机存储:内置 SATA接口；配置存储容量≥16T硬盘 ；",
            "5、网络接口:提供≥8个 RJ45 1000M网络接口；",
            "6、其他接口:提供 RS232、RS485、外置 USB接口、VGA接口等；",
            "7、访问操作:支持 Web操作访问；",
            "8、接口协议:至少支持 ONVIF，GB/T28181等；",
            "9、API接口开放支持；支持标准 ONVIF协议与第三方厂家设备进行互通；支持 GB/T 28181。"
        ],
        "接入服务器": [
            "1、机架式服务器；",
            "2、处理器：至少配置 2颗单颗 10核 CPU,单核 CPU主频≥2.0GHz；",
            "3、内存：配置 128GB DDR4内存；",
            "4、硬盘：配置 6块 1.2T SAS硬盘,转速≥10Krpm；",
            "5、RAID：配置 RAID控制器，支持 RAID0、1、10、1E、5、50、60等；",
            "6、网络：配置双千兆网卡；",
            "7、电源：双电源；"
        ],
        "存储服务器": [
            "1、4U 48盘位磁盘阵列；",
            "2、单设备配置 64位多核处理器；",
            "3、16GB缓存；",
            "4、冗余电源；",
            "5、支持 SATA硬盘；",
            "6、2个千兆网口；",
            "7、1个系统 SSD盘；",
            "8、支持视音频、图片、直接写入，支持视频高速预览、回放、下载，支持云内容灾备 份，支持一体化运维，支持 GB/T28181-2011、Onvif、RTSP、H265、SVAC等标准视频协议。"
        ],
        "硬盘": [
            "4T,3.5寸,SATA"
        ],
        "室外挂箱": [
            "1、采用悬挂式安装方式，悬挂于杆件立柱，高度应确保机箱下边缘距离地面净高 2.5 米以上。设备机箱安装后不得侵入机动车道建筑界限以内，不得影响车辆正常通行。设备机 箱应安装牢固；",
            "2、设备机箱表面应经过考漆处理，应具备防锈蚀、防盐雾、防霉菌能力；",
            "3、应能摆放通信接入端设备。机箱内部空间应足够大，能确保设备、装置的合理摆放， 设有存放用户手册、说明书、接线图、维修记录等资料的存储盒，并有适当空间预留。机箱 空间应有利于机箱内各设备单元的散热、安装、使用和维修，同时应提供设备辅助散热措施， 提高系统环境适应能力；",
            "4、设备机箱的结构应能防雨并能降低灰尘及有害物质的侵入，机箱门盖应有溢水槽， 机箱门内侧应配备密封条，机箱顶部应具有防积水措施。机箱防护等级应达到 IP55以上；",
            "5、机箱结构应具有足够的机械强度，应能承受正常条件下可预料到的运输、安装、搬 运、维护等过程中的操作；",
            "6、机箱门的最大开启角度应大于 120°。机箱门锁应采用保险柜天地锁式的结构设计 防止被非法打开，门锁至少可对上、下及左右侧中的一侧进行缩栓式保护，应具备较强的设 备防砸、防盗能力。机箱应具有防盗报警功能，机箱在非正常状态下开启时能够报警提示。机箱门接缝处有耐久且有弹性的密封垫，密封垫连续设置，无间断接口。机柜门锁上后，无 松动、变形现象；",
            "7、设备机箱内设应置有具备稳压、过载、漏电、短路保护功能的电源开关和防雷保护 功能的电源浪涌保护器。在熔断器和电源开关等处应有警告标志。机箱内合适位置配备接地 铜排，接地铜排的截面应不小于 100 mm2，接地端子应进行防腐处理。并应设置接地标志； 接地铜排应保证良好接地，接地线截面积应不小于 16mm2；",
            "8、机箱内应配备不少于 2路单相 2孔扁圆电源插座、2路单相 3孔扁圆电源插座；",
            "9、电源开关：应具有稳压、短路、过载、漏电保护；电源保护响应时间应为纳秒级； 开关的额定电压、额定电流值应满足设备正常运行的要求；机械寿命应不少于 20000次；具 有良好的散热性能。",
            "10、室外大机箱需满足上述使用外，还应可安装前端管理主机。"
        ],
        "交通管道": []
    }

    # includes = ["基础信息", "资格审查", "商务评分", "技术评分", "无效标与废标项", "投标文件要求", "开评定标流程"]
    # good_list = ['交通标线', '标志牌铝板', '标志牌版面反光膜', '标志牌杆件材料', '标志标牌安装施工工艺',
    #              '标志标牌安装施工安全', '交通信号灯具', '倒计时器', '信号灯灯杆', '交通信号机', '系统功能',
    #              '一体化高速球机', '光纤收发器', '高清视频抓拍像机', '补光灯', '交通诱导屏', '高清视频摄像机',
    #              'LED补光灯', '交换机', '红绿灯信号检测器', '终端服务器', '闪光灯', '接入服务器', '存储服务器', '硬盘',
    #              '室外挂箱', '交通管道']
    # outer_post_processing(combined_data,includes,good_list)
    # print(json.dumps(res2,ensure_ascii=False,indent=4))
    # print(json.dumps(res3,ensure_ascii=False,indent=4))
    # get_tech_star_deviation(json.dumps(tech_dict,ensure_ascii=False,indent=4))
