check_data.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. @classmethod
  20. def title(cls, name: str, group=None):
  21. check_texts = cls.__bidding_title_set
  22. if group and group.lower() in ["njpc", "plan_to_build"]:
  23. check_texts = cls.__plan_to_build_title_set
  24. for text in check_texts:
  25. valid_text = re.search(text, name)
  26. if valid_text is not None:
  27. break
  28. else:
  29. return 10106, '标题未检索到采集关键词'
  30. return 200, 'ok'
  31. @classmethod
  32. def channel(cls, name: str, group=None):
  33. check_texts = cls.__bidding_channel_set
  34. if group and group.lower() in ["njpc", "plan_to_build"]:
  35. check_texts = cls.__plan_to_build_channel_set
  36. for text in check_texts:
  37. valid_text = re.search(text, name)
  38. if valid_text is not None:
  39. break
  40. else:
  41. return False
  42. return True