package clean import ( qu "jygit.jydev.jianyu360.cn/data_processing/common_utils" "regexp" ) // 通用清洗方法 var ( fieldReg1 = regexp.MustCompile("([\\s ]+)") pcodeReg1 = regexp.MustCompile("([((]变更[))])$") pcodeReg2 = regexp.MustCompile("([\\*]+)") ) func CleanFieldInfo(zhipu map[string]interface{}, fns []string, isTable bool) map[string]interface{} { data := map[string]interface{}{} //重点字段 if s_area, s_city := CleanRegion(qu.ObjToString(zhipu["省份"]), qu.ObjToString(zhipu["城市"])); s_area != "" || s_city != "" { data["s_area"] = s_area data["s_city"] = s_city } if s_buyer := CleanBuyer(qu.ObjToString(zhipu["采购单位"])); s_buyer != "" { data["s_buyer"] = s_buyer } if s_pname := CleanPname(qu.ObjToString(zhipu["项目名称"])); s_pname != "" { data["s_projectname"] = s_pname } if s_pcode := CleanPcode(qu.ObjToString(zhipu["项目编号"]), fns); s_pcode != "" { data["s_projectcode"] = s_pcode } if s_biddingcode := CleanOtherCode(qu.ObjToString(zhipu["招标编号"])); s_biddingcode != "" { data["s_biddingcode"] = s_biddingcode } if s_packagecode := CleanOtherCode(qu.ObjToString(zhipu["标段编号"])); s_packagecode != "" { data["s_packagecode"] = s_packagecode } if s_contractcode := CleanOtherCode(qu.ObjToString(zhipu["合同编号"])); s_contractcode != "" { data["s_contractcode"] = s_contractcode } if s_budget := CleanMoney([]interface{}{zhipu["预算金额"], ""}); s_budget > 0.0 && s_budget < 1000000000.0 { data["s_budget"] = s_budget } if s_bidamount := CleanMoney([]interface{}{zhipu["中标金额"], ""}); s_bidamount > 0.0 && s_bidamount < 1000000000.0 { data["s_bidamount"] = s_bidamount } if s_agency := CleanAgency(qu.ObjToString(zhipu["代理机构"])); s_agency != "" { data["s_agency"] = s_agency } if s_winner := CleanWinner(qu.ObjToString(zhipu["中标单位"])); s_winner != "" { data["s_winner"] = s_winner } //其他字段 if s_bidopenaddress := CleanOtherName(qu.ObjToString(zhipu["开标地点"])); s_bidopenaddress != "" { data["s_bidopenaddress"] = s_bidopenaddress } if s_biddiscount := CleanDiscount(qu.ObjToString(zhipu["中标金额折扣率"])); s_biddiscount > 0.0 { data["s_biddiscount"] = s_biddiscount } //时间相关 if s_bidopentime := CleanTime(qu.ObjToString(zhipu["开标日期"])); s_bidopentime > 0 { data["s_bidopentime"] = s_bidopentime } if s_bidendtime := CleanTime(qu.ObjToString(zhipu["投标截止时间"])); s_bidendtime > 0 { data["s_bidendtime"] = s_bidendtime } if s_docstarttime := CleanTime(qu.ObjToString(zhipu["招标文件获取开始时间"])); s_docstarttime > 0 { data["s_docstarttime"] = s_docstarttime } if s_docendtime := CleanTime(qu.ObjToString(zhipu["招标文件获取结束时间"])); s_docendtime > 0 { data["s_docendtime"] = s_docendtime } //联系方式方式 if s_buyerperson := CleanContactPerson(qu.ObjToString(zhipu["采购单位联系人"])); s_buyerperson != "" { data["s_buyerperson"] = s_buyerperson } if s_buyertel := CleanContactTel(qu.ObjToString(zhipu["采购单位联系方式"])); s_buyertel != "" { data["s_buyertel"] = s_buyertel } if s_agencyperson := CleanContactPerson(qu.ObjToString(zhipu["代理机构联系人"])); s_agencyperson != "" { data["s_agencyperson"] = s_agencyperson } if s_agencytel := CleanContactTel(qu.ObjToString(zhipu["代理机构联系方式"])); s_agencytel != "" { data["s_agencytel"] = s_agencytel } if s_winnerperson := CleanContactPerson(qu.ObjToString(zhipu["中标单位联系人"])); s_winnerperson != "" { data["s_winnerperson"] = s_winnerperson } if s_winnertel := CleanContactTel(qu.ObjToString(zhipu["中标单位联系方式"])); s_winnertel != "" { data["s_winnertel"] = s_winnertel } //标的物字段 if zhipu["s_purchasinglist"] != nil { data["s_purchasinglist"] = zhipu["s_purchasinglist"] } //分包字段 if zhipu["s_pkg"] != nil { data["s_pkg"] = zhipu["s_pkg"] } if zhipu["ispkg"] != nil { data["ispkg"] = zhipu["ispkg"] } //分类字段 s_toptype := qu.ObjToString(zhipu["s_toptype"]) s_subtype := qu.ObjToString(zhipu["s_subtype"]) data["s_toptype"] = s_toptype data["s_subtype"] = s_subtype if s_subtype == "合同" || s_subtype == "中标" || s_subtype == "成交" { if qu.Float64All(data["s_budget"]) == qu.Float64All(data["s_bidamount"]) && qu.Float64All(data["s_budget"]) > 0.0 { delete(data, "s_budget") } } //表格类数据-分包金额以及外围字段不准确 if isTable { delete(data, "s_budget") delete(data, "s_bidamount") } return data }