check_data.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import re
  2. class CheckData:
  3. """检查数据文本内容"""
  4. __bidding_title_set = {'招标', '流标', '评标', '询价', '中标候选人', '抽签',
  5. '谈判', '中选', '意见征询', '更正公告', '废标',
  6. '补遗', '议价', '邀请', '资格预审', '竞标', '变更',
  7. '遴选', '磋商', '项目', '评审', '询比', '开标',
  8. '澄清', '比选', '中止', '采购', '竟价', '招投标',
  9. '拟建', '成交', '中标', '竞争性谈判', '工程',
  10. '验收公告', '更正', '单一来源', '变更公告', '合同',
  11. '违规', '评判', '监理', '竞价', '答疑', '终止',
  12. '系统'}
  13. __bidding_channel_set = {"通知公告", "公告公示"}
  14. __plan_to_build_title_set = {'项目', '工程', '验收', '评价', '设计', '调查',
  15. '审核', '审批', '批复', '批后', '批前', '核准',
  16. '备案', '立项', '规划设计', '环评', }
  17. __plan_to_build_channel_set = {"通知公告", "公示公告", "部门文件",
  18. "发布公示", "公告信息",
  19. "公示公开", "公开公示", "公示通知",
  20. "公示信息", "公告信息", "公示专区",
  21. "公告专区", "公司公告", "公司通知",
  22. "公司新闻", "其他公示", "通知公示",
  23. "最新公告", "最新公示", "最新资讯"}
  24. @classmethod
  25. def title(cls, name: str, group=None):
  26. check_texts = cls.__bidding_title_set
  27. if group and group.lower() in ["njpc", "plan_to_build"]:
  28. check_texts = cls.__plan_to_build_title_set
  29. for text in check_texts:
  30. valid_text = re.search(text, name)
  31. if valid_text is not None:
  32. break
  33. else:
  34. return 10106, '标题未检索到采集关键词'
  35. return 200, 'ok'
  36. @classmethod
  37. def channel(cls, name: str, group=None):
  38. check_texts = cls.__bidding_channel_set
  39. if group and group.lower() in ["njpc", "plan_to_build"]:
  40. check_texts = cls.__plan_to_build_channel_set
  41. for text in check_texts:
  42. valid_text = re.search(text, name)
  43. if valid_text is not None:
  44. break
  45. else:
  46. return False
  47. return True