12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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_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_winner := CleanWinner(qu.ObjToString(zhipu["中标单位"])); s_winner != "" {
- data["s_winner"] = s_winner
- }
- //分包字段
- 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
- }
|