company_court_open_announcement.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. # -*- coding: utf-8 -*-
  2. # @Time : 2023/7/20 16:27
  3. # @Author : XuJiakai
  4. # @File : company_court_open_announcement
  5. # @Software: PyCharm
  6. import os
  7. from data_clean.dim_handle_registry import get_dim_handle
  8. from data_clean.exception.ruler_validation_exception import RulerValidationException
  9. from data_clean.utils.date_utils import *
  10. from data_clean.utils.party_name_verify_utils import person_name_verify
  11. from data_clean.utils.str_utils import json_str_2_list
  12. # 必须命名为dim_handle
  13. dim_handle = get_dim_handle(os.path.basename(__file__))
  14. @dim_handle.registry_prefix_func
  15. async def prefix_func(dim_data: list):
  16. print("前置程序:", dim_data)
  17. # raise ValueError("前置程序错误")
  18. pass
  19. @dim_handle.registry_postfix_func()
  20. async def post_func(dim_data: list):
  21. print("后置程序")
  22. pass
  23. @dim_handle.registry_row_func
  24. async def party_intersect(row_data: dict) -> dict:
  25. # 判断当事人有交叉
  26. plaintiff_info = json_str_2_list(row_data['plaintiff_info'], "name")
  27. defendant_info = json_str_2_list(row_data['defendant_info'], "name")
  28. inter = list(set(plaintiff_info).intersection(set(defendant_info)))
  29. if len(inter) == 0:
  30. return row_data
  31. else:
  32. raise RulerValidationException("ccoa_001", "当事人有交叉:%s" % inter)
  33. pass
  34. @dim_handle.registry_row_func
  35. async def open_ann_date(row_data: dict) -> dict:
  36. # 过滤开庭时间早于建国时间问题
  37. if 'start_date' in row_data:
  38. this_date = str_2_date_time(row_data['start_date'])
  39. if this_date < establish_state_time:
  40. raise RulerValidationException("ccoa_002", "开庭时间早于建国时间:%s" % row_data['start_date'])
  41. return row_data
  42. pass
  43. @dim_handle.registry_row_func
  44. async def party_unknown(row_data: dict) -> dict:
  45. # 过滤当事人名字异常,Z某某、xxx
  46. plaintiff_info = json_str_2_list(row_data['plaintiff_info'], "name")
  47. defendant_info = json_str_2_list(row_data['defendant_info'], "name")
  48. li = plaintiff_info + defendant_info
  49. for i in li:
  50. if not person_name_verify(i):
  51. raise RulerValidationException("ccoa_003", "人名不符合规范:%s" % i)
  52. return row_data
  53. if __name__ == '__main__':
  54. pass