c_all.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package clean
  2. import (
  3. qu "jygit.jydev.jianyu360.cn/data_processing/common_utils"
  4. "regexp"
  5. )
  6. // 通用清洗方法
  7. var (
  8. fieldReg1 = regexp.MustCompile("([\\s ]+)")
  9. pcodeReg1 = regexp.MustCompile("([((]变更[))])$")
  10. pcodeReg2 = regexp.MustCompile("([\\*]+)")
  11. )
  12. func CleanFieldInfo(zhipu map[string]interface{}, fns []string) map[string]interface{} {
  13. data := map[string]interface{}{}
  14. if s_area, s_city := CleanRegion(qu.ObjToString(zhipu["省份"]), qu.ObjToString(zhipu["城市"])); s_area != "" || s_city != "" {
  15. data["s_area"] = s_area
  16. data["s_city"] = s_city
  17. }
  18. if s_buyer := CleanBuyer(qu.ObjToString(zhipu["采购单位"])); s_buyer != "" {
  19. data["s_buyer"] = s_buyer
  20. }
  21. if s_pname := CleanPname(qu.ObjToString(zhipu["项目名称"])); s_pname != "" {
  22. data["s_projectname"] = s_pname
  23. }
  24. if s_pcode := CleanPcode(qu.ObjToString(zhipu["项目编号"]), fns); s_pcode != "" {
  25. data["s_projectcode"] = s_pcode
  26. }
  27. if s_budget := CleanMoney(zhipu["预算金额"]); s_budget > 0.0 && s_budget < 1000000000.0 {
  28. data["s_budget"] = s_budget
  29. }
  30. if s_bidamount := CleanMoney(zhipu["中标金额"]); s_bidamount > 0.0 && s_bidamount < 1000000000.0 {
  31. data["s_bidamount"] = s_bidamount
  32. }
  33. if s_winner := CleanWinner(qu.ObjToString(zhipu["中标单位"])); s_winner != "" {
  34. data["s_winner"] = s_winner
  35. }
  36. //分包字段
  37. if zhipu["s_pkg"] != nil {
  38. data["s_pkg"] = zhipu["s_pkg"]
  39. }
  40. if zhipu["ispkg"] != nil {
  41. data["ispkg"] = zhipu["ispkg"]
  42. }
  43. //分类字段
  44. s_toptype := qu.ObjToString(zhipu["s_toptype"])
  45. s_subtype := qu.ObjToString(zhipu["s_subtype"])
  46. data["s_toptype"] = s_toptype
  47. data["s_subtype"] = s_subtype
  48. if s_subtype == "合同" || s_subtype == "中标" || s_subtype == "成交" {
  49. if qu.Float64All(data["s_budget"]) == qu.Float64All(data["s_bidamount"]) && qu.Float64All(data["s_budget"]) > 0.0 {
  50. delete(data, "s_budget")
  51. }
  52. }
  53. return data
  54. }