|
@@ -11,17 +11,23 @@ class BidAmountChecker(object):
|
|
|
def __init__(self):
|
|
|
self.errors_tables = {
|
|
|
"0101": {
|
|
|
- "name": "互相校验(预算和中标金额的比例)",
|
|
|
+ "name": "预算/中标金额不在:[0.7,1.3]",
|
|
|
"parent_name": "金额错误",
|
|
|
"parent_code": "01",
|
|
|
"checkFn": self.check0101
|
|
|
},
|
|
|
"0102": {
|
|
|
- "name": "过大过小[100,10亿]",
|
|
|
+ "name": "过大过小,不在[100,10亿]",
|
|
|
"parent_name": "金额错误",
|
|
|
"parent_code": "01",
|
|
|
"checkFn": self.check0102
|
|
|
},
|
|
|
+ "0103": {
|
|
|
+ "name": "中标金额小数点位数超过4位",
|
|
|
+ "parent_name": "金额错误",
|
|
|
+ "parent_code": "01",
|
|
|
+ "checkFn": self.check0103
|
|
|
+ },
|
|
|
"0104": {
|
|
|
"name": "中标金额存在费率,折扣率",
|
|
|
"parent_name": "金额错误",
|
|
@@ -58,6 +64,26 @@ class BidAmountChecker(object):
|
|
|
return False
|
|
|
return True
|
|
|
|
|
|
+ @staticmethod
|
|
|
+ def check0103(bidamount: float) -> bool:
|
|
|
+ """
|
|
|
+ 中标金额小数点位数超过4位,视为异常
|
|
|
+ :param price:
|
|
|
+ :return: 返回true 代表异常
|
|
|
+ """
|
|
|
+ # 将数字转换为字符串
|
|
|
+ number_str = str(bidamount)
|
|
|
+ # 检查是否有小数点
|
|
|
+ if '.' in number_str:
|
|
|
+ # 分割整数部分和小数部分
|
|
|
+ integer_part, decimal_part = number_str.split('.')
|
|
|
+ # 返回小数部分的长度
|
|
|
+ length= len(decimal_part)
|
|
|
+ else:
|
|
|
+ length = 0
|
|
|
+ if length > 4 :
|
|
|
+ return True
|
|
|
+
|
|
|
@staticmethod
|
|
|
def check0104(supervisorrate:float) -> bool:
|
|
|
"""
|