dim_name_mapping.py 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463
  1. # -*- coding: utf-8 -*-
  2. # @Time : 2022/11/29 15:50
  3. # @Author : XuJiakai
  4. # @File : dim_name_mapping
  5. # @Software: PyCharm
  6. _map_class = {
  7. "基本信息": ['股东信息', '主要成员', '对外投资', '总公司', '分支机构', '历史变更', '企业年报', ],
  8. "法律风险": ['司法案件', '失信信息', '被执行人', '限制消费', '终本案件', '送达公告', '裁判文书', '开庭公告', '立案信息', '法院公告', '股权冻结', '破产重整', '司法拍卖',
  9. '询价评估', '限制出境', '诉前调解', '破产债权', ],
  10. "经营风险": ['行政处罚', '经营异常', '股权出质', '减资记录', '土地转让-出让人', '土地抵押-抵押人', '动产抵押', '环保处罚', '税收违法', '欠税公告', '公示催告', '严重违法',
  11. '简易注销', '解散清算', '股权质押', '股权质押-质押人', '知识产权出质', '注销备案'],
  12. "经营信息": ['招投标', '招聘信息', '特殊资质', '进出口信用', '行政许可', '土地公示', '购地信息', '土地转让-受让人', '土地抵押-抵押权人', '信用评级', '税务信用', '融资信息',
  13. '债券信息', '股权出质-质权人', '产品信息', '主要客户', '供应商', '抽查检查', '产权交易', '双随机抽查'],
  14. "知识产权": ['商标', '专利', '软件著作权', '作品著作权', '网站域名', ],
  15. "建筑信息": ['建筑资质', '建筑人员', '建筑项目', ],
  16. "融资信息": ['应收账款融资', 'DCM注册额度', '债券融资', '境外债券融资', '银行借款', '授信额度', '租赁融资', '信托融资', '其他融资', ],
  17. }
  18. _history_item_key = ['经营异常', '严重违法', '被执行人', '失信信息', '终本案件', '限制高消费', '法院公告', '行政处罚', '动产抵押', '土地抵押', '开庭公告',
  19. '股权出质-质权人', '股权出质', '股权冻结', ]
  20. _winhc_dim_map = {
  21. "股东信息": {
  22. "dim_name": "company_holder",
  23. "summary_key": "",
  24. "history_summary_key": "",
  25. "history": True,
  26. "sort_field": None
  27. },
  28. "主要成员": {
  29. "dim_name": "company_staff",
  30. "history": True,
  31. "sort_field": None
  32. },
  33. "对外投资": {
  34. "dim_name": "",
  35. "summary_key": "company_holder_del_0_invest",
  36. "history_summary_key": "company_holder_del_1_invest",
  37. "sort_field": ""
  38. },
  39. # "总公司": {
  40. # "dim_name": "",
  41. # "sort_field": None
  42. # },
  43. "分支机构": {
  44. "dim_name": "",
  45. "summary_key": "company_branch_del_0",
  46. "history_summary_key": "company_branch_del_1",
  47. "sort_field": ""
  48. },
  49. "历史变更": {
  50. "dim_name": "company_change",
  51. "summary_key": "",
  52. "sort_field": "change_time"
  53. },
  54. "企业年报": {
  55. "dim_name": "company_annual_report",
  56. "summary_key": "", "sort_field": ""
  57. },
  58. "司法案件": {
  59. "dim_name": "",
  60. "summary_key": "", "sort_field": ""
  61. },
  62. "失信信息": {
  63. "dim_name": "company_dishonest_info",
  64. "summary_key": "", "sort_field": ""
  65. },
  66. "被执行人": {
  67. "dim_name": "company_zxr",
  68. "summary_key": "", "sort_field": ""
  69. },
  70. "限制消费": {
  71. "dim_name": "company_zxr_restrict",
  72. "summary_key": "", "sort_field": ""
  73. },
  74. "终本案件": {
  75. "dim_name": "company_zxr_final_case",
  76. "summary_key": "", "sort_field": ""
  77. },
  78. "送达公告": {
  79. "dim_name": "company_send_announcement",
  80. "summary_key": "", "sort_field": ""
  81. },
  82. "裁判文书": {
  83. "dim_name": "wenshu_detail_v2",
  84. "summary_key": "", "sort_field": ""
  85. },
  86. "开庭公告": {
  87. "dim_name": "company_court_open_announcement",
  88. "summary_key": "", "sort_field": ""
  89. },
  90. "立案信息": {
  91. "dim_name": "company_court_register",
  92. "summary_key": "", "sort_field": ""
  93. },
  94. "法院公告": {
  95. "dim_name": "company_court_announcement",
  96. "summary_key": "", "sort_field": ""
  97. },
  98. "股权冻结": {
  99. "dim_name": "company_judicial_assistance",
  100. "summary_key": "", "sort_field": ""
  101. },
  102. "破产重整": {
  103. "dim_name": "",
  104. "summary_key": "", "sort_field": ""
  105. },
  106. "司法拍卖": {
  107. "dim_name": "auction_tracking",
  108. "summary_key": "", "sort_field": ""
  109. },
  110. "询价评估": {
  111. "dim_name": "zxr_evaluate,zxr_evaluate_results",
  112. "summary_key": "", "sort_field": ""
  113. },
  114. "限制出境": {
  115. "dim_name": "restrictions_on_exit",
  116. "summary_key": "", "sort_field": ""
  117. },
  118. "诉前调解": {
  119. "dim_name": "litigation_mediation",
  120. "summary_key": "", "sort_field": ""
  121. },
  122. "破产债权": {
  123. "dim_name": "",
  124. "summary_key": "", "sort_field": ""
  125. },
  126. "行政处罚": {
  127. "dim_name": "company_punishment_info,company_punishment_info_creditchina",
  128. "summary_key": "", "sort_field": ""
  129. },
  130. "经营异常": {
  131. "dim_name": "company_abnormal_info",
  132. "summary_key": "", "sort_field": ""
  133. },
  134. "股权出质": { # todo
  135. "dim_name": "company_equity_info",
  136. "summary_key": "", "sort_field": ""
  137. },
  138. "减资记录": {
  139. "dim_name": "",
  140. "summary_key": "", "sort_field": ""
  141. },
  142. "土地转让-出让人": {
  143. "dim_name": "",
  144. "summary_key": "", "sort_field": ""
  145. },
  146. "土地抵押-抵押人": {
  147. "dim_name": "",
  148. "summary_key": "", "sort_field": ""
  149. },
  150. "动产抵押": {
  151. "dim_name": "",
  152. "summary_key": "", "sort_field": ""
  153. },
  154. "环保处罚": {
  155. "dim_name": "company_env_punishment",
  156. "summary_key": "", "sort_field": ""
  157. },
  158. "税收违法": {
  159. "dim_name": "company_tax_contravention",
  160. "summary_key": "", "sort_field": ""
  161. },
  162. "欠税公告": {
  163. "dim_name": "company_own_tax",
  164. "summary_key": "", "sort_field": ""
  165. },
  166. "公示催告": {
  167. "dim_name": "company_public_announcement",
  168. "summary_key": "", "sort_field": ""
  169. },
  170. "严重违法": {
  171. "dim_name": "company_illegal_info",
  172. "summary_key": "", "sort_field": ""
  173. },
  174. "简易注销": {
  175. "dim_name": "company_brief_cancel_announcement",
  176. "summary_key": "", "sort_field": ""
  177. },
  178. "解散清算": {
  179. "dim_name": "",
  180. "summary_key": "", "sort_field": ""
  181. },
  182. "股权质押": {
  183. "dim_name": "",
  184. "summary_key": "", "sort_field": ""
  185. },
  186. "股权质押-质押人": {
  187. "dim_name": "",
  188. "summary_key": "", "sort_field": ""
  189. },
  190. "知识产权出质": {
  191. "dim_name": "company_ipr_pledge",
  192. "summary_key": "", "sort_field": ""
  193. },
  194. "注销备案": {
  195. "dim_name": "",
  196. "summary_key": "", "sort_field": ""
  197. },
  198. "招投标": {
  199. "dim_name": "company_bid",
  200. "summary_key": "", "sort_field": ""
  201. },
  202. "招聘信息": {
  203. "dim_name": "company_employment",
  204. "summary_key": "", "sort_field": ""
  205. },
  206. "特殊资质": {
  207. "dim_name": "",
  208. "summary_key": "", "sort_field": ""
  209. },
  210. "进出口信用": { # todo
  211. "dim_name": "company_customs_credit",
  212. "summary_key": "", "sort_field": ""
  213. },
  214. "行政许可": {
  215. "dim_name": "company_license,company_license_entpub,company_license_creditchina",
  216. "summary_key": "", "sort_field": ""
  217. },
  218. "土地公示": {
  219. "dim_name": "",
  220. "summary_key": "", "sort_field": ""
  221. },
  222. "购地信息": {
  223. "dim_name": "company_land_announcement",
  224. "summary_key": "", "sort_field": ""
  225. },
  226. "土地转让-受让人": {
  227. "dim_name": "",
  228. "summary_key": "", "sort_field": ""
  229. },
  230. "土地抵押-抵押权人": {
  231. "dim_name": "",
  232. "summary_key": "", "sort_field": ""
  233. },
  234. "信用评级": {
  235. "dim_name": "",
  236. "summary_key": "", "sort_field": ""
  237. },
  238. "税务信用": {
  239. "dim_name": "",
  240. "summary_key": "", "sort_field": ""
  241. },
  242. "融资信息": {
  243. "dim_name": "company_finance",
  244. "summary_key": "", "sort_field": ""
  245. },
  246. "债券信息": {
  247. "dim_name": "",
  248. "summary_key": "", "sort_field": ""
  249. },
  250. "股权出质-质权人": {
  251. "dim_name": "",
  252. "summary_key": "", "sort_field": ""
  253. },
  254. "产品信息": {
  255. "dim_name": "company_app_info",
  256. "summary_key": "", "sort_field": ""
  257. },
  258. "主要客户": {
  259. "dim_name": "",
  260. "summary_key": "", "sort_field": ""
  261. },
  262. "供应商": {
  263. "dim_name": "",
  264. "summary_key": "", "sort_field": ""
  265. },
  266. "抽查检查": {
  267. "dim_name": "company_check_info",
  268. "summary_key": "", "sort_field": ""
  269. },
  270. "产权交易": {
  271. "dim_name": "",
  272. "summary_key": "", "sort_field": ""
  273. },
  274. "双随机抽查": {
  275. "dim_name": "company_double_random_check_info",
  276. "summary_key": "", "sort_field": ""
  277. },
  278. "商标": {
  279. "dim_name": "company_tm",
  280. "summary_key": "", "sort_field": ""
  281. },
  282. "专利": {
  283. "dim_name": "company_patent",
  284. "summary_key": "", "sort_field": ""
  285. },
  286. "软件著作权": {
  287. "dim_name": "company_copyright_reg",
  288. "summary_key": "", "sort_field": ""
  289. },
  290. "作品著作权": {
  291. "dim_name": "company_copyright_works",
  292. "summary_key": "", "sort_field": ""
  293. },
  294. "网站域名": {
  295. "dim_name": "",
  296. "summary_key": "", "sort_field": ""
  297. },
  298. "建筑资质": {
  299. "dim_name": "",
  300. "summary_key": "", "sort_field": ""
  301. },
  302. "建筑人员": {
  303. "dim_name": "",
  304. "summary_key": "", "sort_field": ""
  305. },
  306. "建筑项目": {
  307. "dim_name": "",
  308. "summary_key": "", "sort_field": ""
  309. },
  310. "应收账款融资": {
  311. "dim_name": "",
  312. "summary_key": "", "sort_field": ""
  313. },
  314. "DCM注册额度": {
  315. "dim_name": "",
  316. "summary_key": "", "sort_field": ""
  317. },
  318. "债券融资": {
  319. "dim_name": "",
  320. "summary_key": "", "sort_field": ""
  321. },
  322. "境外债券融资": {
  323. "dim_name": "",
  324. "summary_key": "", "sort_field": ""
  325. },
  326. "银行借款": {
  327. "dim_name": "",
  328. "summary_key": "", "sort_field": ""
  329. },
  330. "授信额度": {
  331. "dim_name": "",
  332. "summary_key": "", "sort_field": ""
  333. },
  334. "租赁融资": {
  335. "dim_name": "",
  336. "summary_key": "", "sort_field": ""
  337. },
  338. "信托融资": {
  339. "dim_name": "",
  340. "summary_key": "", "sort_field": ""
  341. },
  342. "其他融资": {
  343. "dim_name": "",
  344. "summary_key": "", "sort_field": ""
  345. },
  346. }
  347. _summary_dim_2_name = {}
  348. list = ['行政处罚', '企业年报', '历史变更', '主要成员', '股东信息']
  349. _item_2_class = {}
  350. for i in _map_class:
  351. for j in _map_class[i]:
  352. _item_2_class[j] = i
  353. pass
  354. for i in _winhc_dim_map:
  355. # if i not in list:
  356. # continue
  357. if 'summary_key' in _winhc_dim_map[i] and _winhc_dim_map[i]['summary_key'] != '':
  358. summary_key = _winhc_dim_map[i]['summary_key']
  359. for j in summary_key.split(','):
  360. _summary_dim_2_name[j] = _winhc_dim_map[i].copy()
  361. _summary_dim_2_name[j]['item_name'] = i
  362. _summary_dim_2_name[j]['class'] = _item_2_class[i]
  363. pass
  364. else:
  365. dim_name = _winhc_dim_map[i]['dim_name']
  366. if dim_name is None or dim_name == '':
  367. continue
  368. for j in dim_name.split(','):
  369. _summary_dim_2_name[j + "_del_0"] = _winhc_dim_map[i].copy()
  370. _summary_dim_2_name[j + "_del_0"]['item_name'] = i
  371. _summary_dim_2_name[j + "_del_0"]['class'] = _item_2_class[i]
  372. pass
  373. if 'history_summary_key' in _winhc_dim_map[i] and _winhc_dim_map[i]['history_summary_key'] != '':
  374. history_summary_key = _winhc_dim_map[i]['history_summary_key']
  375. for j in history_summary_key.split(','):
  376. _summary_dim_2_name[j] = _winhc_dim_map[i].copy()
  377. _summary_dim_2_name[j]['item_name'] = '历史' + i
  378. _summary_dim_2_name[j]['class'] = '历史信息'
  379. pass
  380. elif 'history' in _winhc_dim_map[i] and _winhc_dim_map[i]['history']:
  381. dim_name = _winhc_dim_map[i]['dim_name']
  382. if dim_name is None or dim_name == '':
  383. continue
  384. for j in dim_name.split(','):
  385. _summary_dim_2_name[j + "_del_1"] = _winhc_dim_map[i].copy()
  386. _summary_dim_2_name[j + "_del_1"]['item_name'] = '历史' + i
  387. _summary_dim_2_name[j + "_del_1"]['class'] = '历史信息'
  388. pass
  389. pass
  390. _latest_date_map = { \
  391. }
  392. for i in _winhc_dim_map:
  393. if _winhc_dim_map[i]['sort_field'] is None or _winhc_dim_map[i]['sort_field'] == '':
  394. continue
  395. sort_field = _winhc_dim_map[i]['sort_field']
  396. dim_name = _winhc_dim_map[i]['dim_name']
  397. # index:company_id_f:sort_f
  398. li = []
  399. for j in sort_field.split(','):
  400. format_str = j
  401. num = j.count(':')
  402. if num == 0:
  403. if dim_name is None or dim_name == '':
  404. raise ValueError("dim_name is null !")
  405. format_str = 'winhc_index_rt_{}:company_id:'.format(dim_name) + j
  406. pass
  407. elif num == 1:
  408. if dim_name is None or dim_name == '':
  409. raise ValueError("dim_name is null !")
  410. format_str = 'winhc_index_rt_{}:'.format(dim_name) + j
  411. pass
  412. elif num == 2:
  413. tmp_str = j.split(":")
  414. if tmp_str[1] == '':
  415. tmp_str[1] = 'company_id'
  416. format_str = ':'.join(tmp_str)
  417. pass
  418. else:
  419. raise ValueError('sort_field: ' + j + ' error, format is index:company_id_f:sort_f')
  420. pass
  421. li.append(format_str)
  422. pass
  423. _latest_date_map[i] = ','.join(li)
  424. pass
  425. def get_summary_map():
  426. return _summary_dim_2_name
  427. def get_latest_date_map():
  428. return _latest_date_map
  429. def key_2_name(key: str):
  430. end_index = len(key)
  431. while True:
  432. if key in _summary_dim_2_name:
  433. return key, _summary_dim_2_name[key], end_index
  434. end_index = key.rfind('_')
  435. key = key[:end_index]
  436. pass
  437. if __name__ == '__main__':
  438. from utils import map_2_json_str
  439. print(map_2_json_str(_latest_date_map))
  440. pass