field_mappings.py 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. """
  2. 矿井需风量接口字段 → 中文释义映射表。
  3. 本模块为矿井通风需风量计算提供完整的字段映射方案:
  4. - COMMON_FIELDS: 所有地点类型共享的通用字段(主键、名称、时间等)。
  5. - WORK_FACE_FIELDS: 采煤工作面及备用工作面专用字段(包含 COMMON_FIELDS)。
  6. - HEADING_FACE_FIELDS: 掘进工作面专用字段(包含 COMMON_FIELDS)。
  7. - ROOM_FIELDS: 硐室专用字段(包含 COMMON_FIELDS)。
  8. - OTHER_FIELDS: 其他用风地点专用字段(包含 COMMON_FIELDS)。
  9. - SYSTEM_FIELDS: 回风系统专用字段(包含 COMMON_FIELDS)。
  10. - TYPE_MAP: 按地点类型中文名快速获取对应的字段映射字典。
  11. - FIELD_TO_CHINESE: 字段英文名 → 中文释义的全局反向查找表(O(1))。
  12. - get_field_map(): 便捷函数,根据地点类型字符串返回对应的字段映射。
  13. """
  14. # ---------------------------------------------------------------------------
  15. # 接口顶层键 → 中文名
  16. # ---------------------------------------------------------------------------
  17. TOP_LEVEL_MAP = {
  18. "retWorkFaceList": "回采工作面及备用工作面",
  19. "headingFaceList": "掘进工作面",
  20. "roomList": "硐室",
  21. "otherList": "其他用风地点",
  22. "ventilationSystemList": "回风系统",
  23. }
  24. # ---------------------------------------------------------------------------
  25. # 通用字段(所有地点类型共用)
  26. # ---------------------------------------------------------------------------
  27. COMMON_FIELDS = {
  28. "id": "主键ID",
  29. "modelId": "所在模型ID",
  30. "strName": "名称",
  31. "ventSystemId": "通风系统ID",
  32. "nyear": "配风计划年份",
  33. "nmonth": "配风计划月份",
  34. "time": "创建时间",
  35. }
  36. # ---------------------------------------------------------------------------
  37. # 地点类型专用字段(均合并了通用字段)
  38. # ---------------------------------------------------------------------------
  39. # 采煤/备用工作面
  40. WORK_FACE_FIELDS = {
  41. **COMMON_FIELDS,
  42. "faceTunIDs": "切眼所在巷道",
  43. "crossHeadA_IDs": "顺槽A",
  44. "crossHeadB_IDs": "顺槽B",
  45. "crossHeadC_IDs": "顺槽C",
  46. "crossHeadD_IDs": "顺槽D",
  47. "lcb": "最大控顶距(m)",
  48. "lcs": "最小控顶距(m)",
  49. "hcf": "实际采高(m)",
  50. "areaCoff": "有效断面率",
  51. "kch": "采高调整系数",
  52. "kcl": "采长调整系数",
  53. "vcf": "适宜风速(m/s)",
  54. "qcg": "瓦斯涌出量(m³/min)",
  55. "kcg": "瓦斯不均匀系数",
  56. "qcc": "二氧化碳涌出量(m³/min)",
  57. "kcc": "二氧化碳不均衡系数",
  58. "ncf": "最多人数",
  59. "strMingMethod": "采煤方法",
  60. "maxPower": "柴油机车最大功率(kW)",
  61. "vMax": "最大允许风速(m/s)",
  62. "strDustControl": "除尘方式",
  63. "fqclimate": "按气候计算风量(m³/min)",
  64. "fqch4": "按瓦斯涌出计算风量(m³/min)",
  65. "fqco2": "按CO₂涌出计算风量(m³/min)",
  66. "fqperson": "按人数计算风量(m³/min)",
  67. "fqneed": "需风量(m³/min)",
  68. "bbakFace": "是否备用工作面",
  69. "refFaceId": "参照工作面ID",
  70. }
  71. # 掘进工作面
  72. HEADING_FACE_FIELDS = {
  73. **COMMON_FIELDS,
  74. "shd": "巷道断面积(m²)",
  75. "shf": "局扇前巷道断面积(m²)(巷道断面积)",
  76. "i": "局扇台数",
  77. "qaf": "局扇额定风量(m³/min)",
  78. "vmin": "最小验算风速(m/s)",
  79. "qhg": "瓦斯涌出量(m³/min)",
  80. "khg": "瓦斯不均匀系数",
  81. "qhc": "二氧化碳涌出量(m³/min)",
  82. "khc": "二氧化碳不均衡系数",
  83. "nhf": "最多人数",
  84. "ahf": "一次爆破炸药量(kg)",
  85. "qahf": "按炸药计算风量(m³/min)",
  86. "fqch4": "按瓦斯计算风量(m³/min)",
  87. "fqco2": "按CO₂计算风量(m³/min)",
  88. "fqperson": "按人数计算风量(m³/min)",
  89. "fqah": "按炸药计算风量(m³/min)",
  90. "fqjusan": "局扇吸风量(m³/min)",
  91. "fqneed": "需风量(m³/min)",
  92. "strMingMethod": "掘进方法",
  93. "fqmin": "最小需风量(m³/min)",
  94. "fqmax": "最大需风量(m³/min)",
  95. "mineLevel": "矿井等级",
  96. }
  97. # 硐室
  98. ROOM_FIELDS = {
  99. **COMMON_FIELDS,
  100. "strRoomType": "硐室类型,1爆破材料库;2充电硐室;3机电硐室",
  101. "v": "硐室体积(m³)",
  102. "vlarge": "是否大型爆破材料库",
  103. "qhy": "氢气产生量(m³/min)",
  104. "k": "机电硐室发热系数",
  105. "w": "设备总功率(kW)",
  106. "cp": "空气定压比热容",
  107. "detT": "进回风流温差(℃)",
  108. "d": "空气密度(kg/m³)",
  109. "dlarge": "是否为采区硐室",
  110. "qmin": "风量基准值(m³/min)",
  111. "fqem": "按体积计算风量(m³/min)",
  112. "fqer": "按氢气计算风量(m³/min)",
  113. "fqmr": "按发热量计算风量(m³/min)",
  114. "fqneed": "需风量(m³/min)",
  115. }
  116. # 其他用风地点
  117. OTHER_FIELDS = {
  118. **COMMON_FIELDS,
  119. "strType": "巷道类型",
  120. "qrg": "瓦斯涌出量(m³/min)",
  121. "krg": "瓦斯不均匀系数",
  122. "vmin": "最小验算风速(m/s)",
  123. "fqrf": "按瓦斯计算风量(m³/min)",
  124. "fqneed": "需风量(m³/min)",
  125. "fQmin": "最小验算风量,60*Vmin*Src,fQNeed大于该字段",
  126. "src": "巷道断面,m2,手动录入",
  127. }
  128. # 回风系统
  129. SYSTEM_FIELDS = {
  130. **COMMON_FIELDS,
  131. "kaq": "矿井通风系数",
  132. "qcf": "采煤面总需风量(m³/min)",
  133. "qsc": "备用面总需风量(m³/min)",
  134. "qhf": "掘进面总需风量(m³/min)",
  135. "qur": "硐室总需风量(m³/min)",
  136. "qrl": "其他地点总需风量(m³/min)",
  137. "qra": "系统总需风量(m³/min)",
  138. "fanmainId": "主扇ID",
  139. }
  140. # ---------------------------------------------------------------------------
  141. # 按地点类型中文名 → 字段映射
  142. # ---------------------------------------------------------------------------
  143. TYPE_MAP = {
  144. "采煤工作面": WORK_FACE_FIELDS,
  145. "备用工作面": WORK_FACE_FIELDS, # 备用面共用同一套字段
  146. "掘进工作面": HEADING_FACE_FIELDS,
  147. "硐室": ROOM_FIELDS,
  148. "其他用风地点": OTHER_FIELDS,
  149. "回风系统": SYSTEM_FIELDS,
  150. }
  151. # ---------------------------------------------------------------------------
  152. # 字段英文名 → 中文释义 全局反向查找表(O(1))
  153. # ---------------------------------------------------------------------------
  154. _ALL_FIELD_DICTS = (
  155. WORK_FACE_FIELDS,
  156. HEADING_FACE_FIELDS,
  157. ROOM_FIELDS,
  158. OTHER_FIELDS,
  159. SYSTEM_FIELDS,
  160. )
  161. FIELD_TO_CHINESE: dict[str, str] = {}
  162. for _d in _ALL_FIELD_DICTS:
  163. FIELD_TO_CHINESE.update(_d)
  164. # ---------------------------------------------------------------------------
  165. # 便捷函数
  166. # ---------------------------------------------------------------------------
  167. def get_field_map(place_type: str) -> dict:
  168. """根据地点类型中文名返回对应的字段映射字典。
  169. Args:
  170. place_type: 地点类型名称,如 "采煤工作面"、"掘进工作面" 等。
  171. Returns:
  172. 对应的字段映射 dict(英文字段名 → 中文释义)。
  173. 若类型未知则返回空 dict。
  174. """
  175. return TYPE_MAP.get(place_type, {})