|
@@ -354,9 +354,11 @@ func task(data []byte, mapInfo map[string]interface{}) {
|
|
|
b, source,reason := DM.check(info)
|
|
|
if b { //有重复,生成更新语句,更新抽取和更新招标
|
|
|
repeateN++
|
|
|
- var mergeArr []int64 //更改合并数组记录
|
|
|
- var newData *Info //更换新的数据池数据
|
|
|
-
|
|
|
+ var mergeArr = []int64{} //更改合并数组记录
|
|
|
+ var newData = &Info{} //更换新的数据池数据
|
|
|
+ if repeateN<0 {
|
|
|
+ fmt.Println(mergeArr)
|
|
|
+ }
|
|
|
var id_map = map[string]interface{}{}
|
|
|
repeat_id := ""
|
|
|
//合并操作--评功权重打分-合并完替换原始数据池
|
|
@@ -367,57 +369,28 @@ func task(data []byte, mapInfo map[string]interface{}) {
|
|
|
DM.replaceSourceData(newData,source.id) //替换
|
|
|
id_map["_id"]= util.StringTOBsonId(source.id)
|
|
|
repeat_id = source.id
|
|
|
- //对比的数据打判重标签
|
|
|
- //updateExtract = append(updateExtract, []map[string]interface{}{
|
|
|
- // map[string]interface{}{
|
|
|
- // "_id": tmp["_id"],
|
|
|
- // },
|
|
|
- // map[string]interface{}{
|
|
|
- // "$set": map[string]interface{}{
|
|
|
- // "repeat": 1,
|
|
|
- // "repeatid": source.id,
|
|
|
- // },
|
|
|
- // },
|
|
|
- //})
|
|
|
- //if len(updateExtract) > 500 {
|
|
|
- // mgo.UpdateBulk(extract, updateExtract...)
|
|
|
- // updateExtract = [][]map[string]interface{}{}
|
|
|
- //}
|
|
|
-
|
|
|
}else {
|
|
|
//已对比数据为标准 ,数据池的数据打判重标签
|
|
|
newData,mergeArr= mergeDataFields(info,source)
|
|
|
DM.replaceSourceData(newData,source.id)//替换
|
|
|
id_map["_id"]= util.StringTOBsonId(info.id)
|
|
|
repeat_id = info.id
|
|
|
- //数据池的数据打判重标签
|
|
|
- //updateExtract = append(updateExtract, []map[string]interface{}{
|
|
|
- // map[string]interface{}{
|
|
|
- // "_id": util.StringTOBsonId(source.id),
|
|
|
- // },
|
|
|
- // map[string]interface{}{
|
|
|
- // "$set": map[string]interface{}{
|
|
|
- // "repeat": 1,
|
|
|
- // "repeatid": info.id,
|
|
|
- // },
|
|
|
- // },
|
|
|
- //})
|
|
|
- //
|
|
|
- //if len(updateExtract) > 500 {
|
|
|
- // mgo.UpdateBulk(extract, updateExtract...)
|
|
|
- // updateExtract = [][]map[string]interface{}{}
|
|
|
- //}
|
|
|
-
|
|
|
}
|
|
|
- //
|
|
|
+
|
|
|
var update_map = map[string]interface{}{
|
|
|
"$set": map[string]interface{}{
|
|
|
"reason":reason,
|
|
|
"repeat":"1",
|
|
|
"repeatid":repeat_id,
|
|
|
- "merge":newData.mergemap,
|
|
|
},
|
|
|
}
|
|
|
+
|
|
|
+ if len(newData.mergemap)>0 {
|
|
|
+ update_map["$set"].(map[string]interface{})["merge"] = newData.mergemap
|
|
|
+ fmt.Println(newData.mergemap,"---",len(newData.mergemap))
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//更新合并后的数据
|
|
|
for _,value :=range mergeArr {
|
|
|
if value==1 {
|
|
@@ -442,6 +415,9 @@ func task(data []byte, mapInfo map[string]interface{}) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//构建数据库更新用到的
|
|
|
updateExtract = append(updateExtract, []map[string]interface{}{
|
|
|
id_map,
|
|
@@ -632,8 +608,8 @@ func historyTask(data []byte, mapInfo map[string]interface{}) {
|
|
|
repeateN++
|
|
|
mapLock.Lock()
|
|
|
|
|
|
- var mergeArr []int64 //更改合并数组记录
|
|
|
- var newData *Info //更换新的数据池数据
|
|
|
+ var mergeArr = []int64{} //更改合并数组记录
|
|
|
+ var newData = &Info{} //更换新的数据池数据
|
|
|
|
|
|
var id_map = map[string]interface{}{}
|
|
|
//合并操作--评功权重打分-合并完替换原始数据池
|
|
@@ -641,6 +617,12 @@ func historyTask(data []byte, mapInfo map[string]interface{}) {
|
|
|
if basic_bool {
|
|
|
//已原始数据为标准-对比数据打判重标签
|
|
|
newData,mergeArr= mergeDataFields(source,info)
|
|
|
+
|
|
|
+ //if repeateN<2 {
|
|
|
+ // //
|
|
|
+ // fmt.Println(newData.mergemap,mergeArr)
|
|
|
+ //}
|
|
|
+
|
|
|
DM.replaceSourceData(newData,source.id) //替换
|
|
|
id_map["_id"]= util.StringTOBsonId(source.id)
|
|
|
|
|
@@ -680,6 +662,9 @@ func historyTask(data []byte, mapInfo map[string]interface{}) {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ //newData.mergemap["mark"] = "合并操作"
|
|
|
+
|
|
|
+
|
|
|
|
|
|
//
|
|
|
var update_map = map[string]interface{}{
|
|
@@ -688,6 +673,10 @@ func historyTask(data []byte, mapInfo map[string]interface{}) {
|
|
|
"merge":newData.mergemap,
|
|
|
},
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//更新合并后的数据
|
|
|
for _,value :=range mergeArr {
|
|
|
if value==1 {
|
|
@@ -712,6 +701,9 @@ func historyTask(data []byte, mapInfo map[string]interface{}) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//构建数据库更新用到的
|
|
|
updateExtract = append(updateExtract, []map[string]interface{}{
|
|
|
id_map,
|
|
@@ -786,7 +778,6 @@ func mergeDataFields(source *Info, info *Info) (*Info,[]int64){
|
|
|
arrA = append(arrA,source.area)
|
|
|
source.mergemap["area"] = arrA
|
|
|
|
|
|
-
|
|
|
var arrC []string
|
|
|
if source.mergemap["city"]==nil {
|
|
|
arrC = make([]string, 0)
|
|
@@ -899,12 +890,7 @@ func mergeDataFields(source *Info, info *Info) (*Info,[]int64){
|
|
|
mergeArr = append(mergeArr,8)
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
//以上合并过于简单,待进一步优化
|
|
|
-
|
|
|
return source,mergeArr
|
|
|
}
|
|
|
|