""" 矿井需风量接口字段 → 中文释义映射表。 本模块为矿井通风需风量计算提供完整的字段映射方案: - COMMON_FIELDS: 所有地点类型共享的通用字段(主键、名称、时间等)。 - WORK_FACE_FIELDS: 采煤工作面及备用工作面专用字段(包含 COMMON_FIELDS)。 - HEADING_FACE_FIELDS: 掘进工作面专用字段(包含 COMMON_FIELDS)。 - ROOM_FIELDS: 硐室专用字段(包含 COMMON_FIELDS)。 - OTHER_FIELDS: 其他用风地点专用字段(包含 COMMON_FIELDS)。 - SYSTEM_FIELDS: 回风系统专用字段(包含 COMMON_FIELDS)。 - TYPE_MAP: 按地点类型中文名快速获取对应的字段映射字典。 - FIELD_TO_CHINESE: 字段英文名 → 中文释义的全局反向查找表(O(1))。 - get_field_map(): 便捷函数,根据地点类型字符串返回对应的字段映射。 """ # --------------------------------------------------------------------------- # 接口顶层键 → 中文名 # --------------------------------------------------------------------------- TOP_LEVEL_MAP = { "retWorkFaceList": "回采工作面及备用工作面", "headingFaceList": "掘进工作面", "roomList": "硐室", "otherList": "其他用风地点", "ventilationSystemList": "回风系统", } # --------------------------------------------------------------------------- # 通用字段(所有地点类型共用) # --------------------------------------------------------------------------- COMMON_FIELDS = { "id": "主键ID", "modelId": "所在模型ID", "strName": "名称", "ventSystemId": "通风系统ID", "nyear": "配风计划年份", "nmonth": "配风计划月份", "time": "创建时间", } # --------------------------------------------------------------------------- # 地点类型专用字段(均合并了通用字段) # --------------------------------------------------------------------------- # 采煤/备用工作面 WORK_FACE_FIELDS = { **COMMON_FIELDS, "faceTunIDs": "切眼所在巷道", "crossHeadA_IDs": "顺槽A", "crossHeadB_IDs": "顺槽B", "crossHeadC_IDs": "顺槽C", "crossHeadD_IDs": "顺槽D", "lcb": "最大控顶距(m)", "lcs": "最小控顶距(m)", "hcf": "实际采高(m)", "areaCoff": "有效断面率", "kch": "采高调整系数", "kcl": "采长调整系数", "vcf": "适宜风速(m/s)", "qcg": "瓦斯涌出量(m³/min)", "kcg": "瓦斯不均匀系数", "qcc": "二氧化碳涌出量(m³/min)", "kcc": "二氧化碳不均衡系数", "ncf": "最多人数", "strMingMethod": "采煤方法", "maxPower": "柴油机车最大功率(kW)", "vMax": "最大允许风速(m/s)", "strDustControl": "除尘方式", "fqclimate": "按气候计算风量(m³/min)", "fqch4": "按瓦斯涌出计算风量(m³/min)", "fqco2": "按CO₂涌出计算风量(m³/min)", "fqperson": "按人数计算风量(m³/min)", "fqneed": "需风量(m³/min)", "bbakFace": "是否备用工作面", "refFaceId": "参照工作面ID", } # 掘进工作面 HEADING_FACE_FIELDS = { **COMMON_FIELDS, "shd": "巷道断面积(m²)", "shf": "局扇前巷道断面积(m²)(巷道断面积)", "i": "局扇台数", "qaf": "局扇额定风量(m³/min)", "vmin": "最小验算风速(m/s)", "qhg": "瓦斯涌出量(m³/min)", "khg": "瓦斯不均匀系数", "qhc": "二氧化碳涌出量(m³/min)", "khc": "二氧化碳不均衡系数", "nhf": "最多人数", "ahf": "一次爆破炸药量(kg)", "qahf": "按炸药计算风量(m³/min)", "fqch4": "按瓦斯计算风量(m³/min)", "fqco2": "按CO₂计算风量(m³/min)", "fqperson": "按人数计算风量(m³/min)", "fqah": "按炸药计算风量(m³/min)", "fqjusan": "局扇吸风量(m³/min)", "fqneed": "需风量(m³/min)", "strMingMethod": "掘进方法", "fqmin": "最小需风量(m³/min)", "fqmax": "最大需风量(m³/min)", "mineLevel": "矿井等级", } # 硐室 ROOM_FIELDS = { **COMMON_FIELDS, "strRoomType": "硐室类型,1爆破材料库;2充电硐室;3机电硐室", "v": "硐室体积(m³)", "vlarge": "是否大型爆破材料库", "qhy": "氢气产生量(m³/min)", "k": "机电硐室发热系数", "w": "设备总功率(kW)", "cp": "空气定压比热容", "detT": "进回风流温差(℃)", "d": "空气密度(kg/m³)", "dlarge": "是否为采区硐室", "qmin": "风量基准值(m³/min)", "fqem": "按体积计算风量(m³/min)", "fqer": "按氢气计算风量(m³/min)", "fqmr": "按发热量计算风量(m³/min)", "fqneed": "需风量(m³/min)", } # 其他用风地点 OTHER_FIELDS = { **COMMON_FIELDS, "strType": "巷道类型", "qrg": "瓦斯涌出量(m³/min)", "krg": "瓦斯不均匀系数", "vmin": "最小验算风速(m/s)", "fqrf": "按瓦斯计算风量(m³/min)", "fqneed": "需风量(m³/min)", "fQmin": "最小验算风量,60*Vmin*Src,fQNeed大于该字段", "src": "巷道断面,m2,手动录入", } # 回风系统 SYSTEM_FIELDS = { **COMMON_FIELDS, "kaq": "矿井通风系数", "qcf": "采煤面总需风量(m³/min)", "qsc": "备用面总需风量(m³/min)", "qhf": "掘进面总需风量(m³/min)", "qur": "硐室总需风量(m³/min)", "qrl": "其他地点总需风量(m³/min)", "qra": "系统总需风量(m³/min)", "fanmainId": "主扇ID", } # --------------------------------------------------------------------------- # 按地点类型中文名 → 字段映射 # --------------------------------------------------------------------------- TYPE_MAP = { "采煤工作面": WORK_FACE_FIELDS, "备用工作面": WORK_FACE_FIELDS, # 备用面共用同一套字段 "掘进工作面": HEADING_FACE_FIELDS, "硐室": ROOM_FIELDS, "其他用风地点": OTHER_FIELDS, "回风系统": SYSTEM_FIELDS, } # --------------------------------------------------------------------------- # 字段英文名 → 中文释义 全局反向查找表(O(1)) # --------------------------------------------------------------------------- _ALL_FIELD_DICTS = ( WORK_FACE_FIELDS, HEADING_FACE_FIELDS, ROOM_FIELDS, OTHER_FIELDS, SYSTEM_FIELDS, ) FIELD_TO_CHINESE: dict[str, str] = {} for _d in _ALL_FIELD_DICTS: FIELD_TO_CHINESE.update(_d) # --------------------------------------------------------------------------- # 便捷函数 # --------------------------------------------------------------------------- def get_field_map(place_type: str) -> dict: """根据地点类型中文名返回对应的字段映射字典。 Args: place_type: 地点类型名称,如 "采煤工作面"、"掘进工作面" 等。 Returns: 对应的字段映射 dict(英文字段名 → 中文释义)。 若类型未知则返回空 dict。 """ return TYPE_MAP.get(place_type, {})