liumiaomiao 6 ماه پیش
والد
کامیت
cbdace245f
2فایلهای تغییر یافته به همراه57 افزوده شده و 5 حذف شده
  1. 28 2
      tables/fields/bidamount.py
  2. 29 3
      tables/fields/budget.py

+ 28 - 2
tables/fields/bidamount.py

@@ -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:
         """

+ 29 - 3
tables/fields/budget.py

@@ -11,17 +11,23 @@ class BudgetChecker(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
+            },
         }
 
     @staticmethod
@@ -51,3 +57,23 @@ class BudgetChecker(object):
         if 100 < budget < 1000000000:
             return False
         return True
+
+    @staticmethod
+    def check0103(budget: float) -> bool :
+        """
+        预算小数点位数超过4位,视为异常
+        :param price:
+        :return: 返回true 代表异常
+        """
+        # 将数字转换为字符串
+        number_str = str(budget)
+        # 检查是否有小数点
+        if '.' in number_str:
+        # 分割整数部分和小数部分
+            integer_part, decimal_part = number_str.split('.')
+        # 返回小数部分的长度
+            length= len(decimal_part)
+        else:
+             length = 0
+        if length > 4 :
+            return True