|
@@ -1,8 +1,9 @@
|
|
|
# coding:utf-8
|
|
|
import inspect
|
|
|
import csv
|
|
|
-from pymongo import MongoClient
|
|
|
from docs.config import abnormal_config
|
|
|
+from tables.fields.toptype import ToptypeChecker
|
|
|
+from tables.fields.subtype import SubtypeChecker
|
|
|
from tables.fields.s_winner import WinnerChecker
|
|
|
from tables.fields.buyer import BuyerChecker
|
|
|
from tables.fields.bidamount import BidAmountChecker
|
|
@@ -24,6 +25,9 @@ from tables.fields.docendtime import DocendtimeChecker
|
|
|
from tables.fields.bidstarttime import BidstarttimeChecker
|
|
|
from tables.fields.bidendtime import BidendtimeChecker
|
|
|
from tables.fields.bidopentime import BidopentimeChecker
|
|
|
+from tables.fields.capital import CapitalChecker
|
|
|
+toptype_checker = ToptypeChecker()
|
|
|
+subtype_checker = SubtypeChecker()
|
|
|
area_checker = AreaChecker()
|
|
|
winner_checker = WinnerChecker()
|
|
|
buyer_checker = BuyerChecker()
|
|
@@ -44,8 +48,15 @@ fieldtype_checker = FieldTypeChecker()
|
|
|
purchasing_checker = PurchasingChecker()
|
|
|
city_checker = CityChecker()
|
|
|
district_checker = DistrictChecker()
|
|
|
+capital_checker = CapitalChecker()
|
|
|
# 定义检查链
|
|
|
check_chain = {
|
|
|
+ "toptype": {
|
|
|
+ "checker": toptype_checker,
|
|
|
+ },
|
|
|
+ "subtype": {
|
|
|
+ "checker": subtype_checker,
|
|
|
+ },
|
|
|
"title": {
|
|
|
"checker": title_checker,
|
|
|
},
|
|
@@ -99,6 +110,9 @@ check_chain = {
|
|
|
},
|
|
|
"purchasinglist": {
|
|
|
"checker": purchasing_checker,
|
|
|
+ },
|
|
|
+ "capital": {
|
|
|
+ "checker": capital_checker,
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -107,7 +121,7 @@ def check_params(func, param_rows: dict, is_check_type=False) -> (bool, list):
|
|
|
"""
|
|
|
函数传参数
|
|
|
"""
|
|
|
- _default_params = {"attach_text": {}, "bidamount": 0, "budget": 0,"s_winner":"","bidopentime":0,"publishtime":0,"bidstarttime":0,"bidendtime":0,"docendtime":0,"docstarttime":0,"subtype":"","s_topscopeclass":"","supervisorrate":0,"district":"金水区","com_package":[],"buyer":""} # 必要参数的默认值
|
|
|
+ _default_params = {"attach_text": {}, "projectcode":'',"bidamount": 0, "budget": 0,"capital": 0,"s_winner":"","bidopentime":0,"publishtime":0,"bidstarttime":0,"bidendtime":0,"docendtime":0,"docstarttime":0,"subtype":"","s_topscopeclass":"","supervisorrate":0,"district":"金水区","com_package":[],"buyer":""} # 必要参数的默认值
|
|
|
func_params = inspect.getfullargspec(func) # 取出函数的参数
|
|
|
args_annotations = func_params.annotations # 参数类型dict,取出参数类型
|
|
|
args_list = func_params.args # 参数list
|
|
@@ -222,7 +236,8 @@ if __name__ == '__main__':
|
|
|
"comeintime" : int(1698739748),
|
|
|
"area" : "内蒙古",
|
|
|
"purchasingsource" : "[{\"start\": 13, \"verify\": \"确定\", \"direction\": \"h\", \"type\": \"识别\", \"header\": {\"itemname\": \"产品名称\", \"model\": \"技术规格\", \"number\": \"数量\", \"unitprice\": \"单价(元)\", \"totalprice\": \"金额(元)\"}, \"file_name\": \"公告\"}]",
|
|
|
- "toptype" : "预告",
|
|
|
+ "toptype" : "拟建",
|
|
|
+ "subtype" : "拟建",
|
|
|
"spidercode" : "nm_nmgzzqzfcgw_dzmc_zgcgcjgs",
|
|
|
"extracttype" : int(1),
|
|
|
"s_sha" : "9269588cb73151d8ec09cf16347539678549f81395559589a731ca1394828582",
|
|
@@ -233,7 +248,7 @@ if __name__ == '__main__':
|
|
|
"dataging" : int(0),
|
|
|
# "bidopentime":int(1798739414),
|
|
|
# "publishtime" : int(1751937052),
|
|
|
- "subtype" : "中标",
|
|
|
+
|
|
|
"purchasinglist" : [
|
|
|
{
|
|
|
"score" : 0.8275,
|
|
@@ -268,7 +283,7 @@ if __name__ == '__main__':
|
|
|
"autoid" : int(249351001),
|
|
|
"bidamount" : 10000,
|
|
|
"bidway" : "电子投标",
|
|
|
- "budget" : 30000.0,
|
|
|
+ # "budget" : 30000.0,
|
|
|
"supervisorrate": 0.03,
|
|
|
"buyer" : "玖宸(北京)科技有限公司",
|
|
|
"buyerclass" : "医疗",
|
|
@@ -315,8 +330,34 @@ if __name__ == '__main__':
|
|
|
"type": "结果_关于中标 候选人的公示\n市招示 (\n2018) 字\n施工资格后审第\n0827号"
|
|
|
}
|
|
|
],
|
|
|
+
|
|
|
"bidendtime": 1754614800.0,
|
|
|
- "com_package": [
|
|
|
+ #拟建字段
|
|
|
+ "owner": "浙江中菱电梯安装工程有限公司",
|
|
|
+ "project_stage_code": "05",
|
|
|
+ "total_investment":"71050.700000",
|
|
|
+ # "capital": 10000.737132,
|
|
|
+ "tenderlist": [
|
|
|
+ {
|
|
|
+ "s_winner": "",
|
|
|
+ "detail": "由乌海市鸿鼎房地产开发有限责任公司建设的鼎盛花园小区5#楼附属商业调整项目于2025年海勃湾区第5次城市规划建设区长专题办公会议通过,依据《关于城乡规划公开公示的规定》的要求,为保障公众利益,维护相关单位及个人的合法权益,现予以公示,公示期为七天。<br/><table border=\"1\"><tbody>\t<tr>\t<td>总用地面积<br/>\t</td>\t<td>83724.90㎡<br/>\t</td>\t</tr>\t<tr>\t<td>总建筑面积<br/>\t</td>\t<td>308931.37㎡<br/>\t</td>\t</tr>\t<tr>\t<td>建筑密度<br/>\t</td>\t<td>26.1%<br/>\t</td>\t</tr>\t<tr>\t<td>绿地率<br/>\t</td>\t<td>30.3%<br/>\t</td>\t</tr>\t<tr>\t<td>容积率<br/>\t</td>\t<td>2.94<br/>\t</td>\t</tr>\t<tr>\t<td>停车位<br/>\t</td>\t<td>1722个<br/>\t</td>\t</tr></tbody></table><br/>调整前,5#楼附属商业基底面积554.33㎡,建筑面积953.29㎡,调整后5#楼附属商业基底面积504.15㎡,建筑面积894.53㎡。<br/>反馈意见单位:乌海市自然资源局海勃湾分局<br/>联系电话:0473-6995512<br/>联系人:贺倩<br/>附图:<br/>立面图<br/>鸟瞰图<br/>平面图详情请下载附件!",
|
|
|
+ "title": "鼎盛花园小区5#楼附属商业调整项目规划设计方案公示",
|
|
|
+ "jyhref": "https://www.jianyu360.cn/article/entservice/U1ZMQ1FAFQgHUAFWEUdVSkcPAAQGXUNK.html?appid",
|
|
|
+ "publishtime": int(1748397383),
|
|
|
+ "buyer": "",
|
|
|
+ "winnerperson": "",
|
|
|
+ "tenderid": "688042cad5d8e4081fcac379",
|
|
|
+ "projectcode": "",
|
|
|
+ "buyerperson": "贺倩",
|
|
|
+ "buyertel": "0473-6995512",
|
|
|
+ "winnertel": "",
|
|
|
+ "href": "http://zrzy.wuhai.gov.cn/zrzy/1442195/1442202/1442239/2237769/index.html",
|
|
|
+ "budget": 0.0,
|
|
|
+ "bidamount": 0.0,
|
|
|
+ "subtype": "拟建"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "com_package": [
|
|
|
{
|
|
|
"projectcode": "S202501020015",
|
|
|
"packagecode": "",
|
|
@@ -334,238 +375,42 @@ if __name__ == '__main__':
|
|
|
],
|
|
|
"pici" : int(1698740066)
|
|
|
}
|
|
|
- # result=check(row,rules={
|
|
|
- # "bidamount": {
|
|
|
- # "0101": {
|
|
|
- # "name": "互相校验(预算和中标金额的比例)",
|
|
|
- # "parent_name": "金额错误",
|
|
|
- # "parent_code": "01"
|
|
|
- # },
|
|
|
- # "0102": {
|
|
|
- # "name": "过大过小[100,10亿]",
|
|
|
- # "parent_name": "金额错误",
|
|
|
- # "parent_code": "01"
|
|
|
- # },
|
|
|
- # "0103": {
|
|
|
- # "name": "中标金额小数点位数超过4位",
|
|
|
- # "parent_name": "金额错误",
|
|
|
- # "parent_code": "01",
|
|
|
- # "checkFn": "01",
|
|
|
- # },
|
|
|
- # "0104": {
|
|
|
- # "name": "中标金额存在费率,折扣率",
|
|
|
- # "parent_name": "金额错误",
|
|
|
- # "parent_code": "01"
|
|
|
- # }
|
|
|
- # },
|
|
|
- # # "budget" : {
|
|
|
- # # "0101" : {
|
|
|
- # # "name" : "互相校验(预算和中标金额的比例)",
|
|
|
- # # "parent_name" : "金额错误",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # },
|
|
|
- # # "0102" : {
|
|
|
- # # "name" : "过大过小[100,10亿]",
|
|
|
- # # "parent_name" : "金额错误",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # }
|
|
|
- # # },
|
|
|
- # # "title" : {
|
|
|
- # # "0101" : {
|
|
|
- # # "name" : "标题长度小于等于5",
|
|
|
- # # "parent_name" : "长度类型",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # },
|
|
|
- # # "0102" : {
|
|
|
- # # "name" : "长度大于等于100",
|
|
|
- # # "parent_name" : "长度类型",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # },
|
|
|
- # # "0201" : {
|
|
|
- # # "name" : "非汉字占比>55%",
|
|
|
- # # "parent_name" : "汉字占比",
|
|
|
- # # "parent_code" : "02"
|
|
|
- # # },
|
|
|
- # # "0303" : {
|
|
|
- # # "name" : "包含叠词,异常词汇,特殊词汇(测试,公告公告等)",
|
|
|
- # # "parent_name" : "语义表述不完整",
|
|
|
- # # "parent_code" : "03"
|
|
|
- # # }
|
|
|
- # # },
|
|
|
- # # "projectname" : {
|
|
|
- # # "0101" : {
|
|
|
- # # "name" : "项目名称长度小于等于5",
|
|
|
- # # "parent_name" : "长度类型",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # },
|
|
|
- # # "0102" : {
|
|
|
- # # "name" : "长度大于等于100",
|
|
|
- # # "parent_name" : "长度类型",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # },
|
|
|
- # # "0201" : {
|
|
|
- # # "name" : "非汉字占比>55%",
|
|
|
- # # "parent_name" : "汉字占比",
|
|
|
- # # "parent_code" : "02"
|
|
|
- # # },
|
|
|
- # # "0303" : {
|
|
|
- # # "name" : "包含叠词,异常词汇,特殊词汇(测试,公告公告等)",
|
|
|
- # # "parent_name" : "语义表述不完整",
|
|
|
- # # "parent_code" : "03"
|
|
|
- # # }
|
|
|
- # # },
|
|
|
- # # "winner" : {
|
|
|
- # # "0103" : {
|
|
|
- # # "name" : "包含叠词,异常词汇,特殊词汇",
|
|
|
- # # "parent_name" : "名称错误",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # }
|
|
|
- # # },
|
|
|
- # # "projectcode" : {
|
|
|
- # # "0102" : {
|
|
|
- # # "name" : "长度大于2小于等于4",
|
|
|
- # # "parent_name" : "长度类型",
|
|
|
- # # "parent_code" : "02"
|
|
|
- # # },
|
|
|
- # # "0103" : {
|
|
|
- # # "name" : "长度大于50",
|
|
|
- # # "parent_name" : "长度类型",
|
|
|
- # # "parent_code" : "03"
|
|
|
- # # },
|
|
|
- # # "0201" : {
|
|
|
- # # "name" : "检查日期格式",
|
|
|
- # # "parent_name" : "日期格式",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # },
|
|
|
- # # "0202" : {
|
|
|
- # # "name" : "包含异常关键字",
|
|
|
- # # "parent_name" : "异常关键字",
|
|
|
- # # "parent_code" : "02"
|
|
|
- # # },
|
|
|
- # # "0203" : {
|
|
|
- # # "name" : "不包含数字字母",
|
|
|
- # # "parent_name" : "不包含数字字母",
|
|
|
- # # "parent_code" : "03"
|
|
|
- # # },
|
|
|
- # # "0301" : {
|
|
|
- # # "name" : "汉字占比>60%且不包含中国电信",
|
|
|
- # # "parent_name" : "汉字占比",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # },
|
|
|
- # # "0302" : {
|
|
|
- # # "name" : "连续汉字超过9个",
|
|
|
- # # "parent_name" : "汉字占比",
|
|
|
- # # "parent_code" : "03"
|
|
|
- # # }
|
|
|
- # # },
|
|
|
- # # "buyer" : {
|
|
|
- # # "0103" : {
|
|
|
- # # "name" : "包含叠词,异常词汇,特殊词汇",
|
|
|
- # # "parent_name" : "名称错误",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # },
|
|
|
- # # "0104" : {
|
|
|
- # # "name" : "名称不完整",
|
|
|
- # # "parent_name" : "名称错误",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # }
|
|
|
- # # },
|
|
|
- # #
|
|
|
- # # "area" : {
|
|
|
- # # "0101" : {
|
|
|
- # # "name" : "全国类数据",
|
|
|
- # # "parent_name" : "全国类型",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # },
|
|
|
- # # "0301" : {
|
|
|
- # # "name" : "省份不在[2,3]个字之间",
|
|
|
- # # "parent_name" : "长度异常类型",
|
|
|
- # # "parent_code" : "03"
|
|
|
- # # },
|
|
|
- # # "0302" : {
|
|
|
- # # "name" : "城市不在[3,11]个字之间",
|
|
|
- # # "parent_name" : "长度异常类型",
|
|
|
- # # "parent_code" : "03"
|
|
|
- # # },
|
|
|
- # # "0303" : {
|
|
|
- # # "name" : "区县不在[2,15]个字之间",
|
|
|
- # # "parent_name" : "长度异常类型",
|
|
|
- # # "parent_code" : "03"
|
|
|
- # # }
|
|
|
- # # },
|
|
|
- # # "multipackage" : {
|
|
|
- # # "1000" : {
|
|
|
- # # "name" : "分包类数据",
|
|
|
- # # "parent_name" : "分包类型",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # }
|
|
|
- # # },
|
|
|
- # # "toptype": {
|
|
|
- # # },
|
|
|
- # # "subtype": {
|
|
|
- # # },
|
|
|
- # # "publishtime": {
|
|
|
- # # "0201": {
|
|
|
- # # "name": "发布时间 > 开标时间 ",
|
|
|
- # # "parent_name": "数据范围类型",
|
|
|
- # # "parent_code": "02"
|
|
|
- # # }
|
|
|
- # # },
|
|
|
- # # "bidopentime": {
|
|
|
- # # "0201": {
|
|
|
- # # "name": "发布时间 > 开标时间",
|
|
|
- # # "parent_name": "数据范围类型",
|
|
|
- # # "parent_code": "02"
|
|
|
- # # }
|
|
|
- # # }
|
|
|
- # # })
|
|
|
- # # result = check(row, rules={
|
|
|
- # # "title": {
|
|
|
- # # "0101" : {
|
|
|
- # # "name" : "标题长度小于等于5",
|
|
|
- # # "parent_name" : "长度类型",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # },
|
|
|
- # # "0102" : {
|
|
|
- # # "name" : "长度大于等于100",
|
|
|
- # # "parent_name" : "长度类型",
|
|
|
- # # "parent_code" : "01"
|
|
|
- # # },
|
|
|
- # # "0201" : {
|
|
|
- # # "name" : "非汉字占比>55%",
|
|
|
- # # "parent_name" : "汉字占比",
|
|
|
- # # "parent_code" : "02"
|
|
|
- # # },
|
|
|
- # # "0303" : {
|
|
|
- # # "name" : "包含叠词,异常词汇,特殊词汇(测试,公告公告等)",
|
|
|
- # # "parent_name" : "语义表述不完整",
|
|
|
- # # "parent_code" : "03"
|
|
|
- # # }
|
|
|
- # # },
|
|
|
- # # "area": {
|
|
|
- # # "0101": {
|
|
|
- # # "name": "全国类数据",
|
|
|
- # # "parent_name": "全国类型",
|
|
|
- # # "parent_code": "01"
|
|
|
- # # },
|
|
|
- # # "0301": {
|
|
|
- # # "name": "省份不在[2,3]个字之间",
|
|
|
- # # "parent_name": "长度异常类型",
|
|
|
- # # "parent_code": "03"
|
|
|
- # # },
|
|
|
- # # "0302": {
|
|
|
- # # "name": "城市不在[3,11]个字之间",
|
|
|
- # # "parent_name": "长度异常类型",
|
|
|
- # # "parent_code": "03"
|
|
|
- # # },
|
|
|
- # # "0303": {
|
|
|
- # # "name": "区县不在[2,15]个字之间",
|
|
|
- # # "parent_name": "长度异常类型",
|
|
|
- # # "parent_code": "03"
|
|
|
- # # }
|
|
|
- # # }
|
|
|
- # })
|
|
|
+
|
|
|
result = check(row, rules={
|
|
|
+ # "capital": {
|
|
|
+ # "0103": {
|
|
|
+ # "name": "投资金额小数点位数超过4位",
|
|
|
+ # "parent_name": "金额错误",
|
|
|
+ # "parent_code": "01"
|
|
|
+ # },
|
|
|
+ # "0201": {
|
|
|
+ # "name": "投资金额<0",
|
|
|
+ # "parent_name": "金额错误",
|
|
|
+ # "parent_code": "01"
|
|
|
+ # }
|
|
|
+ # },
|
|
|
+ # "budget": {
|
|
|
+ # "0101": {
|
|
|
+ # "name": "预算/中标金额,不在[0.7,1.3]",
|
|
|
+ # "parent_name": "金额错误",
|
|
|
+ # "parent_code": "01"
|
|
|
+ # },
|
|
|
+ # "0102": {
|
|
|
+ # "name": "过大过小,不在[100,10亿]",
|
|
|
+ # "parent_name": "金额错误",
|
|
|
+ # "parent_code": "01"
|
|
|
+ # },
|
|
|
+ # "0103": {
|
|
|
+ # "name": "预算小数点位数超过4位",
|
|
|
+ # "parent_name": "金额错误",
|
|
|
+ # "parent_code": "01"
|
|
|
+ # },
|
|
|
+ # "0201": {
|
|
|
+ # "name": "预算<0",
|
|
|
+ # "parent_name": "金额错误",
|
|
|
+ # "parent_code": "01"
|
|
|
+ # }
|
|
|
+ # },
|
|
|
# "bidendtime" : {
|
|
|
# "0101" : {
|
|
|
# "name" : "投标截止日期<投标文件递交开始时间",
|
|
@@ -590,10 +435,16 @@ if __name__ == '__main__':
|
|
|
# "parent_code": "01"
|
|
|
# }
|
|
|
# },
|
|
|
- "note": {
|
|
|
- },
|
|
|
- # "price": {
|
|
|
- # },
|
|
|
+ # "toptype": {
|
|
|
+ # "0101": {
|
|
|
+ # "name": "数据长度<2",
|
|
|
+ # "parent_name": "长度错误",
|
|
|
+ # "parent_code": "01",
|
|
|
+ #
|
|
|
+ # }
|
|
|
+ # }
|
|
|
+ "project_stage_code": {
|
|
|
+ },
|
|
|
# "sort": {
|
|
|
# },
|
|
|
# "city": {
|