|
@@ -1138,21 +1138,38 @@ func GetDataById(idInfoArr []util.Data, importType, s_sourceinfo string, success
|
|
|
id := tmpData.ID
|
|
|
tmp := tmpData.Info
|
|
|
//1.查bidding
|
|
|
- tmpBidColl := util.BidColl1 //bidding
|
|
|
- //查询bidding
|
|
|
- if id < util.BIDDINGSTARTID {
|
|
|
- tmpBidColl = util.BidColl2 //bidding_back
|
|
|
- }
|
|
|
- bidData, _ := util.MgoB.FindById(tmpBidColl, id, nil)
|
|
|
- if qu.ObjToString((*bidData)["toptype"]) != "采购意向" {
|
|
|
- // 导入数据时,删掉purchasinglist(排除采购意向数据)
|
|
|
- delete(*bidData, "purchasinglist")
|
|
|
- // 删除多包字段 20230518
|
|
|
- delete(*bidData, "package")
|
|
|
- }
|
|
|
- if bidData != nil && len(*bidData) > 0 { //bidding表数据存在
|
|
|
+ var bidData *map[string]interface{}
|
|
|
+ var extData *map[string]interface{}
|
|
|
+ if s_sourceinfo != "f_sourceinfo_test_2" {
|
|
|
+ //if s_sourceinfo != "f_sourceinfo_chinaunicom_zb_data" {
|
|
|
+ tmpBidColl := util.BidColl1 //bidding
|
|
|
+ //查询bidding
|
|
|
+ if id < util.BIDDINGSTARTID {
|
|
|
+ tmpBidColl = util.BidColl2 //bidding_back
|
|
|
+ }
|
|
|
+ bidData, _ = util.MgoB.FindById(tmpBidColl, id, nil)
|
|
|
+ if bidData == nil || len(*bidData) == 0 {
|
|
|
+ lock.Lock()
|
|
|
+ *success = false
|
|
|
+ if importType == "excel" {
|
|
|
+ msgArr = append(msgArr, "第"+fmt.Sprint(index+2)+"行,未查询到id:"+id)
|
|
|
+ //*msg += "第" + fmt.Sprint(num+2) + "行未查询到数据:" + id + ";\n"
|
|
|
+ } else {
|
|
|
+ msgArr = append(msgArr, "未查询id:"+id)
|
|
|
+ //*msg += "未查询到数据_id:" + id + ";\n"
|
|
|
+ }
|
|
|
+ lock.Unlock()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if qu.ObjToString((*bidData)["toptype"]) != "采购意向" {
|
|
|
+ // 导入数据时,删掉purchasinglist(排除采购意向数据)
|
|
|
+ delete(*bidData, "purchasinglist")
|
|
|
+ // 删除多包字段 20230518
|
|
|
+ delete(*bidData, "package")
|
|
|
+ }
|
|
|
+ //bidding表数据存在
|
|
|
//2.查extract
|
|
|
- extData, _ := util.MgoE.FindById(util.ExtColl1, id, map[string]interface{}{"attach_text": 0, "field_source": 0, "regions_log": 0})
|
|
|
+ extData, _ = util.MgoE.FindById(util.ExtColl1, id, map[string]interface{}{"attach_text": 0, "field_source": 0, "regions_log": 0})
|
|
|
if extData == nil || len(*extData) == 0 {
|
|
|
extData, _ = util.MgoE.FindById(util.ExtColl2, id, map[string]interface{}{"attach_text": 0, "field_source": 0, "regions_log": 0})
|
|
|
}
|
|
@@ -1167,144 +1184,152 @@ func GetDataById(idInfoArr []util.Data, importType, s_sourceinfo string, success
|
|
|
}
|
|
|
//3.删除item
|
|
|
//删除item
|
|
|
- delete((*bidData), "item")
|
|
|
- //4.对比marked表,对比marked表是否已标注该数据
|
|
|
- markData, _ := util.Mgo.FindById(util.AllToColl, id, nil)
|
|
|
- if markData != nil && len(*markData) > 0 {
|
|
|
- UpdateMarkColl(bidData, markData, &tagInfoMap, &baseInfoMap) //比对更新数据
|
|
|
- } else {
|
|
|
- baseInfoMap["i_ckdata"] = 0 //设置ck_data默认值0
|
|
|
- //多包、中标候选人、标的信息是否抽取
|
|
|
- //if packageMap, ok := (*bidData)["package"].(map[string]interface{}); ok && len(packageMap) > 0 {
|
|
|
- // baseInfoMap["b_pkgisext"] = true
|
|
|
- //} else {
|
|
|
- // baseInfoMap["b_pkgisext"] = false
|
|
|
- //}
|
|
|
- //if winorderArr, ok := (*bidData)["winnerorder"].([]interface{}); ok && len(winorderArr) > 0 {
|
|
|
- // baseInfoMap["b_wodrisext"] = true
|
|
|
- //} else {
|
|
|
- // baseInfoMap["b_wodrisext"] = false
|
|
|
- //}
|
|
|
- //if purchArr, ok := (*bidData)["purchasinglist"].([]interface{}); ok && len(purchArr) > 0 {
|
|
|
- // baseInfoMap["b_pclisext"] = true
|
|
|
- //} else {
|
|
|
- // baseInfoMap["b_pclisext"] = false
|
|
|
- //}
|
|
|
- }
|
|
|
- //合并导入表中客户所需的字段
|
|
|
- if len(tmp) > 0 {
|
|
|
- for k, v := range tmp {
|
|
|
- (*bidData)[k] = v
|
|
|
+ delete(*bidData, "item")
|
|
|
+ } else {
|
|
|
+ bidData, _ = util.MgoAiB.FindById("bidding", id, nil)
|
|
|
+ if bidData == nil || len(*bidData) == 0 {
|
|
|
+ lock.Lock()
|
|
|
+ *success = false
|
|
|
+ if importType == "excel" {
|
|
|
+ msgArr = append(msgArr, "第"+fmt.Sprint(index+2)+"行,未查询到id:"+id)
|
|
|
+ //*msg += "第" + fmt.Sprint(num+2) + "行未查询到数据:" + id + ";\n"
|
|
|
+ } else {
|
|
|
+ msgArr = append(msgArr, "未查询id:"+id)
|
|
|
+ //*msg += "未查询到数据_id:" + id + ";\n"
|
|
|
}
|
|
|
+ lock.Unlock()
|
|
|
+ return
|
|
|
}
|
|
|
- //补充id
|
|
|
- //(*bidData)["id"] = id
|
|
|
+ }
|
|
|
|
|
|
- //if stype == "syncoll" { //同步数据时删除原始数据
|
|
|
- // if util.MgoM.Delete(coll, `{"id":"`+id+`"}`) == 0 {
|
|
|
- // lock.Lock()
|
|
|
- // *msg += "同步未删除成功数据id:" + id + ";\n"
|
|
|
- // *success = false
|
|
|
- // lock.Unlock()
|
|
|
- // }
|
|
|
+ //4.对比marked表,对比marked表是否已标注该数据
|
|
|
+ markData, _ := util.Mgo.FindById(util.AllToColl, id, nil)
|
|
|
+ if markData != nil && len(*markData) > 0 {
|
|
|
+ UpdateMarkColl(bidData, markData, &tagInfoMap, &baseInfoMap) //比对更新数据
|
|
|
+ } else {
|
|
|
+ baseInfoMap["i_ckdata"] = 0 //设置ck_data默认值0
|
|
|
+ //多包、中标候选人、标的信息是否抽取
|
|
|
+ //if packageMap, ok := (*bidData)["package"].(map[string]interface{}); ok && len(packageMap) > 0 {
|
|
|
+ // baseInfoMap["b_pkgisext"] = true
|
|
|
+ //} else {
|
|
|
+ // baseInfoMap["b_pkgisext"] = false
|
|
|
//}
|
|
|
- // 处理 package winner_all
|
|
|
- if p, o1 := (*bidData)["package"].(map[string]interface{}); o1 {
|
|
|
- for _, v := range p {
|
|
|
- v1 := v.(map[string]interface{})
|
|
|
- t := make(map[string]interface{})
|
|
|
- if v1["winner"] != nil {
|
|
|
- t["winner"] = v1["winner"]
|
|
|
- }
|
|
|
- if v1["bidamount"] != nil {
|
|
|
- t["bidamount"] = qu.Float64All(v1["bidamount"])
|
|
|
- }
|
|
|
- if len(t) > 0 {
|
|
|
- v1["winner_all"] = append([]map[string]interface{}{}, t)
|
|
|
- }
|
|
|
- }
|
|
|
+ //if winorderArr, ok := (*bidData)["winnerorder"].([]interface{}); ok && len(winorderArr) > 0 {
|
|
|
+ // baseInfoMap["b_wodrisext"] = true
|
|
|
+ //} else {
|
|
|
+ // baseInfoMap["b_wodrisext"] = false
|
|
|
+ //}
|
|
|
+ //if purchArr, ok := (*bidData)["purchasinglist"].([]interface{}); ok && len(purchArr) > 0 {
|
|
|
+ // baseInfoMap["b_pclisext"] = true
|
|
|
+ //} else {
|
|
|
+ // baseInfoMap["b_pclisext"] = false
|
|
|
+ //}
|
|
|
+ }
|
|
|
+ //合并导入表中客户所需的字段
|
|
|
+ if len(tmp) > 0 {
|
|
|
+ for k, v := range tmp {
|
|
|
+ (*bidData)[k] = v
|
|
|
}
|
|
|
- // 补充filetext
|
|
|
- (*bidData)["filetext"] = util.GetFileText(*bidData)
|
|
|
- // 6.项目合并信息
|
|
|
- project, _ := util.MgoE.Find(util.ProjectColl, bson.M{"ids": id}, nil, nil, true, -1, -1)
|
|
|
- //esQ := `{"query":{"bool":{"must":[{"term":{"ids":"` + id + `"}}]}}}`
|
|
|
- //info := util.Es.Get("projectset", esQ)
|
|
|
- if project != nil && len((*project)[0]) > 0 {
|
|
|
- qu.Debug(*project)
|
|
|
- ids := qu.ObjArrToStringArr((*project)[0]["ids"].([]interface{}))
|
|
|
- if len(ids) > 0 {
|
|
|
- var infolist []map[string]interface{}
|
|
|
- for _, v := range ids {
|
|
|
- if v == id { // 当前公告
|
|
|
- continue
|
|
|
- }
|
|
|
- if v < util.BIDDINGSTARTID {
|
|
|
- tmpBidColl = util.BidColl2 //bidding_back
|
|
|
- }
|
|
|
- bid, b := util.MgoB.FindById(tmpBidColl, v, nil)
|
|
|
- if b && len(*bid) > 0 {
|
|
|
- tmp := make(map[string]interface{})
|
|
|
- tmp["id"] = v
|
|
|
- tmp["title"] = (*bid)["title"]
|
|
|
- tmp["href"] = (*bid)["href"]
|
|
|
- tmp["toptype"] = (*bid)["toptype"]
|
|
|
- tmp["subtype"] = (*bid)["subtype"]
|
|
|
- tmp["publishtime"] = (*bid)["publishtime"]
|
|
|
- tmp["detail"] = (*bid)["detail"]
|
|
|
- tmp["filetext"] = util.GetFileText(*bid)
|
|
|
- infolist = append(infolist, tmp)
|
|
|
- }
|
|
|
- }
|
|
|
- (*bidData)["info"] = infolist
|
|
|
+ }
|
|
|
+ //补充id
|
|
|
+ //(*bidData)["id"] = id
|
|
|
+
|
|
|
+ //if stype == "syncoll" { //同步数据时删除原始数据
|
|
|
+ // if util.MgoM.Delete(coll, `{"id":"`+id+`"}`) == 0 {
|
|
|
+ // lock.Lock()
|
|
|
+ // *msg += "同步未删除成功数据id:" + id + ";\n"
|
|
|
+ // *success = false
|
|
|
+ // lock.Unlock()
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ // 处理 package winner_all
|
|
|
+ if p, o1 := (*bidData)["package"].(map[string]interface{}); o1 {
|
|
|
+ for _, v := range p {
|
|
|
+ v1 := v.(map[string]interface{})
|
|
|
+ t := make(map[string]interface{})
|
|
|
+ if v1["winner"] != nil {
|
|
|
+ t["winner"] = v1["winner"]
|
|
|
+ }
|
|
|
+ if v1["bidamount"] != nil {
|
|
|
+ t["bidamount"] = qu.Float64All(v1["bidamount"])
|
|
|
+ }
|
|
|
+ if len(t) > 0 {
|
|
|
+ v1["winner_all"] = append([]map[string]interface{}{}, t)
|
|
|
}
|
|
|
- } else {
|
|
|
- qu.Debug("Projectset Find Error", id)
|
|
|
- }
|
|
|
- baseInfoMap["id"] = id
|
|
|
- _id := (*bidData)["_id"]
|
|
|
- delete(*bidData, "_id")
|
|
|
- //保存数据
|
|
|
- baseInfoMap["_id"] = _id
|
|
|
- baseInfoMap["v_baseinfo"] = bidData
|
|
|
- if len(tagInfoMap) > 0 {
|
|
|
- baseInfoMap["v_taginfo"] = tagInfoMap
|
|
|
- }
|
|
|
- baseInfoMap["i_createtime"] = time.Now().Unix()
|
|
|
- baseInfoMap["b_isgivegroup"] = false //是否分配给用户组
|
|
|
- baseInfoMap["b_istag"] = false //是否已标注
|
|
|
- //baseInfoMap["b_cleartag"] = false //是否清理标注信息
|
|
|
- baseInfoMap["b_isgiveuser"] = false //是否分配给用户
|
|
|
- baseInfoMap["b_check"] = false // 质检标记
|
|
|
- baseInfoMap["b_isEff"] = false // 标的物有效性
|
|
|
- if newAdd {
|
|
|
- // 新增数据带上数据达标标记
|
|
|
- baseInfoMap["b_isprchasing"] = true
|
|
|
- baseInfoMap["b_istagging"] = true
|
|
|
}
|
|
|
- if util.Mgo.SaveByOriID(s_sourceinfo, baseInfoMap) {
|
|
|
- atomic.AddInt64(successNum, 1) //保存成功计数
|
|
|
- } else {
|
|
|
- lock.Lock()
|
|
|
- //*success = false
|
|
|
- if importType == "excel" {
|
|
|
- msgArr = append(msgArr, "第"+fmt.Sprint(index+2)+"行未导入id:"+id)
|
|
|
- //*msg += "第" + fmt.Sprint(num+2) + "行未保存成功数据_id:" + id + ";\n"
|
|
|
- } else {
|
|
|
- msgArr = append(msgArr, "未导入id:"+id)
|
|
|
- //*msg += "未保存成功数据_id:" + id + ";\n"
|
|
|
+ }
|
|
|
+ // 补充filetext
|
|
|
+ (*bidData)["filetext"] = util.GetFileText(*bidData)
|
|
|
+ // 6.项目合并信息
|
|
|
+ project, _ := util.MgoE.Find(util.ProjectColl, bson.M{"ids": id}, nil, nil, true, -1, -1)
|
|
|
+ //esQ := `{"query":{"bool":{"must":[{"term":{"ids":"` + id + `"}}]}}}`
|
|
|
+ //info := util.Es.Get("projectset", esQ)
|
|
|
+ if project != nil && len((*project)[0]) > 0 {
|
|
|
+ qu.Debug(*project)
|
|
|
+ ids := qu.ObjArrToStringArr((*project)[0]["ids"].([]interface{}))
|
|
|
+ if len(ids) > 0 {
|
|
|
+ var infolist []map[string]interface{}
|
|
|
+ for _, v := range ids {
|
|
|
+ if v == id { // 当前公告
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ var coll string
|
|
|
+ if v < util.BIDDINGSTARTID {
|
|
|
+ coll = util.BidColl2 //bidding_back
|
|
|
+ } else {
|
|
|
+ coll = util.BidColl1
|
|
|
+ }
|
|
|
+ bid, b := util.MgoB.FindById(coll, v, nil)
|
|
|
+ if b && len(*bid) > 0 {
|
|
|
+ tmp := make(map[string]interface{})
|
|
|
+ tmp["id"] = v
|
|
|
+ tmp["title"] = (*bid)["title"]
|
|
|
+ tmp["href"] = (*bid)["href"]
|
|
|
+ tmp["toptype"] = (*bid)["toptype"]
|
|
|
+ tmp["subtype"] = (*bid)["subtype"]
|
|
|
+ tmp["publishtime"] = (*bid)["publishtime"]
|
|
|
+ tmp["detail"] = (*bid)["detail"]
|
|
|
+ tmp["filetext"] = util.GetFileText(*bid)
|
|
|
+ infolist = append(infolist, tmp)
|
|
|
+ }
|
|
|
}
|
|
|
- lock.Unlock()
|
|
|
+ (*bidData)["info"] = infolist
|
|
|
}
|
|
|
+ } else {
|
|
|
+ qu.Debug("Projectset Find Error", id)
|
|
|
+ }
|
|
|
+ baseInfoMap["id"] = id
|
|
|
+ _id := (*bidData)["_id"]
|
|
|
+ delete(*bidData, "_id")
|
|
|
+ //保存数据
|
|
|
+ baseInfoMap["_id"] = _id
|
|
|
+ baseInfoMap["v_baseinfo"] = bidData
|
|
|
+ if len(tagInfoMap) > 0 {
|
|
|
+ baseInfoMap["v_taginfo"] = tagInfoMap
|
|
|
+ }
|
|
|
+ baseInfoMap["i_createtime"] = time.Now().Unix()
|
|
|
+ baseInfoMap["b_isgivegroup"] = false //是否分配给用户组
|
|
|
+ baseInfoMap["b_istag"] = false //是否已标注
|
|
|
+ //baseInfoMap["b_cleartag"] = false //是否清理标注信息
|
|
|
+ baseInfoMap["b_isgiveuser"] = false //是否分配给用户
|
|
|
+ baseInfoMap["b_check"] = false // 质检标记
|
|
|
+ baseInfoMap["b_isEff"] = false // 标的物有效性
|
|
|
+ if newAdd {
|
|
|
+ // 新增数据带上数据达标标记
|
|
|
+ baseInfoMap["b_isprchasing"] = true
|
|
|
+ baseInfoMap["b_istagging"] = true
|
|
|
+ }
|
|
|
+ if util.Mgo.SaveByOriID(s_sourceinfo, baseInfoMap) {
|
|
|
+ atomic.AddInt64(successNum, 1) //保存成功计数
|
|
|
} else {
|
|
|
lock.Lock()
|
|
|
- *success = false
|
|
|
+ //*success = false
|
|
|
if importType == "excel" {
|
|
|
- msgArr = append(msgArr, "第"+fmt.Sprint(index+2)+"行,未查询到id:"+id)
|
|
|
- //*msg += "第" + fmt.Sprint(num+2) + "行未查询到数据:" + id + ";\n"
|
|
|
+ msgArr = append(msgArr, "第"+fmt.Sprint(index+2)+"行未导入id:"+id)
|
|
|
+ //*msg += "第" + fmt.Sprint(num+2) + "行未保存成功数据_id:" + id + ";\n"
|
|
|
} else {
|
|
|
- msgArr = append(msgArr, "未查询id:"+id)
|
|
|
- //*msg += "未查询到数据_id:" + id + ";\n"
|
|
|
+ msgArr = append(msgArr, "未导入id:"+id)
|
|
|
+ //*msg += "未保存成功数据_id:" + id + ";\n"
|
|
|
}
|
|
|
lock.Unlock()
|
|
|
}
|