123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- 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) 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")
- }
- }
- return data
- }
|