123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- 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{}) 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["项目编号"])); s_pcode != "" {
- data["s_projectcode"] = s_pcode
- }
- if s_budget := CleanMoney(zhipu["预算金额"]); s_budget > 0.0 && s_budget < 1000000000.0 {
- data["s_budget"] = s_budget
- }
- if s_bidamount := CleanMoney(zhipu["中标金额"]); s_bidamount > 0.0 && s_bidamount < 1000000000.0 {
- data["s_bidamount"] = s_bidamount
- }
- if s_winner := CleanWinner(qu.ObjToString(zhipu["中标单位"])); s_winner != "" {
- data["s_winner"] = s_winner
- }
- if s_biddiscount := CleanBiddiscount(qu.ObjToString(zhipu["投标折扣系数"])); s_biddiscount != "" {
- data["s_biddiscount"] = s_biddiscount
- }
- //分包字段
- 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
- }
- // 最终逻辑校验--暂时舍弃...最终判断在需要
- func CleanFinallyInfo(data map[string]interface{}) map[string]interface{} {
- s_toptype := qu.ObjToString(data["s_toptype"])
- s_subtype := qu.ObjToString(data["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 s_subtype == "单一" || s_subtype == "合同" || s_subtype == "中标" || s_subtype == "成交" || (s_subtype == "" && s_toptype == "") {
- } else {
- //delete(data, "s_winner")
- //delete(data, "s_bidamount")
- }
- return data
- }
|