budget.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. """
  2. 预算金额字段检查
  3. """
  4. class BudgetChecker(object):
  5. """
  6. 预算字段检查
  7. """
  8. def __init__(self):
  9. self.errors_tables = {
  10. "0101": {
  11. "name": "互相校验(预算和中标金额的比例)",
  12. "parent_name": "金额错误",
  13. "parent_code": "01",
  14. "checkFn": self.check0101
  15. },
  16. "0102": {
  17. "name": "过大过小[100,10亿]",
  18. "parent_name": "金额错误",
  19. "parent_code": "01",
  20. "checkFn": self.check0102
  21. }
  22. }
  23. @staticmethod
  24. def check0101(budget: float, bidamount: float) -> bool:
  25. """
  26. 预算和中标金额的比例
  27. :param budget:
  28. :param amount:
  29. :return:返回true 代表异常
  30. """
  31. if budget and bidamount:
  32. if 0.7 < budget / bidamount < 1.3:
  33. return False
  34. else:
  35. return True
  36. else:
  37. # 两者中有一方为空不判断
  38. return False
  39. @staticmethod
  40. def check0102(budget: float) -> bool:
  41. """
  42. 中标金额过大过小[100,10亿]
  43. :param price:
  44. :return: 返回true 代表异常
  45. """
  46. if 100 < budget < 1000000000:
  47. return False
  48. return True