c_all.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. //重点字段
  15. if s_area, s_city := CleanRegion(qu.ObjToString(zhipu["省份"]), qu.ObjToString(zhipu["城市"])); s_area != "" || s_city != "" {
  16. data["s_area"] = s_area
  17. data["s_city"] = s_city
  18. }
  19. if s_buyer := CleanBuyer(qu.ObjToString(zhipu["采购单位"])); s_buyer != "" {
  20. data["s_buyer"] = s_buyer
  21. }
  22. if s_pname := CleanPname(qu.ObjToString(zhipu["项目名称"])); s_pname != "" {
  23. data["s_projectname"] = s_pname
  24. }
  25. if s_pcode := CleanPcode(qu.ObjToString(zhipu["项目编号"]), fns); s_pcode != "" {
  26. data["s_projectcode"] = s_pcode
  27. }
  28. if s_biddingcode := CleanOtherCode(qu.ObjToString(zhipu["招标编号"])); s_biddingcode != "" {
  29. data["s_biddingcode"] = s_biddingcode
  30. }
  31. if s_packagecode := CleanOtherCode(qu.ObjToString(zhipu["标段编号"])); s_packagecode != "" {
  32. data["s_packagecode"] = s_packagecode
  33. }
  34. if s_contractcode := CleanOtherCode(qu.ObjToString(zhipu["合同编号"])); s_contractcode != "" {
  35. data["s_contractcode"] = s_contractcode
  36. }
  37. if s_budget := CleanMoney([]interface{}{zhipu["预算金额"], ""}); s_budget > 0.0 && s_budget < 1000000000.0 {
  38. data["s_budget"] = s_budget
  39. }
  40. if s_bidamount := CleanMoney([]interface{}{zhipu["中标金额"], ""}); s_bidamount > 0.0 && s_bidamount < 1000000000.0 {
  41. data["s_bidamount"] = s_bidamount
  42. }
  43. if s_agency := CleanAgency(qu.ObjToString(zhipu["代理机构"])); s_agency != "" {
  44. data["s_agency"] = s_agency
  45. }
  46. if s_winner := CleanWinner(qu.ObjToString(zhipu["中标单位"])); s_winner != "" {
  47. data["s_winner"] = s_winner
  48. }
  49. //其他字段
  50. if s_bidopenaddress := CleanOtherName(qu.ObjToString(zhipu["开标地点"])); s_bidopenaddress != "" {
  51. data["s_bidopenaddress"] = s_bidopenaddress
  52. }
  53. if s_biddiscount := CleanDiscount(qu.ObjToString(zhipu["中标金额折扣率"])); s_biddiscount > 0.0 {
  54. data["s_biddiscount"] = s_biddiscount
  55. }
  56. //时间相关
  57. if s_bidopentime := CleanTime(qu.ObjToString(zhipu["开标日期"])); s_bidopentime > 0 {
  58. data["s_bidopentime"] = s_bidopentime
  59. }
  60. if s_bidendtime := CleanTime(qu.ObjToString(zhipu["投标截止时间"])); s_bidendtime > 0 {
  61. data["s_bidendtime"] = s_bidendtime
  62. }
  63. if s_docstarttime := CleanTime(qu.ObjToString(zhipu["招标文件获取开始时间"])); s_docstarttime > 0 {
  64. data["s_docstarttime"] = s_docstarttime
  65. }
  66. if s_docendtime := CleanTime(qu.ObjToString(zhipu["招标文件获取结束时间"])); s_docendtime > 0 {
  67. data["s_docendtime"] = s_docendtime
  68. }
  69. //联系方式方式
  70. if s_buyerperson := CleanContactPerson(qu.ObjToString(zhipu["采购单位联系人"])); s_buyerperson != "" {
  71. data["s_buyerperson"] = s_buyerperson
  72. }
  73. if s_buyertel := CleanContactTel(qu.ObjToString(zhipu["采购单位联系方式"])); s_buyertel != "" {
  74. data["s_buyertel"] = s_buyertel
  75. }
  76. if s_agencyperson := CleanContactPerson(qu.ObjToString(zhipu["代理机构联系人"])); s_agencyperson != "" {
  77. data["s_agencyperson"] = s_agencyperson
  78. }
  79. if s_agencytel := CleanContactTel(qu.ObjToString(zhipu["代理机构联系方式"])); s_agencytel != "" {
  80. data["s_agencytel"] = s_agencytel
  81. }
  82. if s_winnerperson := CleanContactPerson(qu.ObjToString(zhipu["中标单位联系人"])); s_winnerperson != "" {
  83. data["s_winnerperson"] = s_winnerperson
  84. }
  85. if s_winnertel := CleanContactTel(qu.ObjToString(zhipu["中标单位联系方式"])); s_winnertel != "" {
  86. data["s_winnertel"] = s_winnertel
  87. }
  88. //分包字段
  89. if zhipu["s_pkg"] != nil {
  90. data["s_pkg"] = zhipu["s_pkg"]
  91. }
  92. if zhipu["ispkg"] != nil {
  93. data["ispkg"] = zhipu["ispkg"]
  94. }
  95. //分类字段
  96. s_toptype := qu.ObjToString(zhipu["s_toptype"])
  97. s_subtype := qu.ObjToString(zhipu["s_subtype"])
  98. data["s_toptype"] = s_toptype
  99. data["s_subtype"] = s_subtype
  100. if s_subtype == "合同" || s_subtype == "中标" || s_subtype == "成交" {
  101. if qu.Float64All(data["s_budget"]) == qu.Float64All(data["s_bidamount"]) && qu.Float64All(data["s_budget"]) > 0.0 {
  102. delete(data, "s_budget")
  103. }
  104. }
  105. return data
  106. }