""" 中标金额字段检查 """ class BidAmountChecker(object): """ 中标字段检查 """ def __init__(self): self.errors_tables = { "0101": { "name": "互相校验(预算和中标金额的比例)", "parent_name": "金额错误", "parent_code": "01", "checkFn": self.check0101 }, "0102": { "name": "过大过小[100,10亿]", "parent_name": "金额错误", "parent_code": "01", "checkFn": self.check0102 }, "0104": { "name": "中标金额存在费率,折扣率", "parent_name": "金额错误", "parent_code": "01", "checkFn": self.check0104 }, } @staticmethod def check0101(budget: float, bidamount: float) -> bool: """ 预算和中标金额的比例 :param budget: :param amount: :return:返回true 代表异常 """ if budget and bidamount: if 0.7 < budget / bidamount < 1.3: return False else: return True else: # 两者中有一方为空不判断 return False @staticmethod def check0102(bidamount: float) -> bool: """ 中标金额过大过小[100,10亿] :param price: :return: 返回true 代表异常 """ if 100 < bidamount < 1000000000: return False return True @staticmethod def check0104(supervisorrate:float) -> bool: """ 中标金额存在费率,折扣率 :param price: :return: 返回true 代表异常 """ if supervisorrate==0 : return False return True