1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package clean
- import (
- qu "jygit.jydev.jianyu360.cn/data_processing/common_utils"
- "regexp"
- "unicode/utf8"
- )
- // 通用清洗方法
- var (
- fieldReg1 = regexp.MustCompile("([\\s ]+)")
- pcodeReg1 = regexp.MustCompile("([((]变更[))])$")
- pcodeReg2 = regexp.MustCompile("([\\*]+)")
- )
- func CleanFieldInfo(zhipu map[string]interface{}, pkg map[string]interface{}) map[string]interface{} {
- update := map[string]interface{}{}
- if s_area, s_city := CleanRegion(qu.ObjToString(zhipu["省份"]), qu.ObjToString(zhipu["城市"])); s_area != "" || s_city != "" {
- update["s_area"] = s_area
- update["s_city"] = s_city
- }
- if s_buyer := CleanBuyer(qu.ObjToString(zhipu["采购单位"])); s_buyer != "" {
- update["s_buyer"] = s_buyer
- }
- if s_pname := CleanPname(qu.ObjToString(zhipu["项目名称"])); s_pname != "" {
- update["s_pname"] = s_pname
- }
- if s_pcode := CleanPcode(qu.ObjToString(zhipu["项目编号"])); s_pcode != "" {
- update["s_pcode"] = s_pcode
- }
- if s_budget := CleanMoney(zhipu["预算金额"]); s_budget > 0.0 && s_budget < 1000000000.0 {
- update["s_budget"] = s_budget
- }
- if s_bidamount := CleanMoney(zhipu["中标金额"]); s_bidamount > 0.0 && s_bidamount < 1000000000.0 {
- update["s_bidamount"] = s_bidamount
- }
- if s_winner := CleanWinner(qu.ObjToString(zhipu["中标单位"])); s_winner != "" {
- update["s_winner"] = s_winner
- }
- if s_biddiscount := CleanBiddiscount(qu.ObjToString(zhipu["投标折扣系数"])); s_biddiscount != "" {
- update["s_biddiscount"] = s_biddiscount
- }
- //对于分包
- if len(pkg) > 0 {
- if s_winner := qu.ObjToString(pkg["s_winner"]); s_winner != "" {
- if utf8.RuneCountInString(s_winner) > utf8.RuneCountInString(qu.ObjToString(update["s_winner"])) {
- update["s_winner"] = s_winner
- }
- }
- if s_bidamount := qu.Float64All(pkg["s_bidamount"]); s_bidamount > 0.0 {
- if s_bidamount > qu.Float64All(update["s_bidamount"]) {
- update["s_bidamount"] = s_bidamount
- }
- }
- }
- return update
- }
- // 最终逻辑校验
- 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
- }
|