|
@@ -2,8 +2,126 @@ package main
|
|
|
|
|
|
import "qfw/util"
|
|
|
|
|
|
-//合并字段-并更新merge字段的值
|
|
|
-func mergeDataFields(source *Info, info *Info) (*Info, []int64, bool) {
|
|
|
+
|
|
|
+func mergeDataFields(source *Info, info *Info) (*Info,map[string]interface{} ,bool) {
|
|
|
+ update_map := map[string]interface{}{
|
|
|
+ "$set": map[string]interface{}{},
|
|
|
+ }
|
|
|
+ mergeMap :=source.mergemap
|
|
|
+ isReplace:=false
|
|
|
+ //项目名称
|
|
|
+ if source.projectname == "" && info.projectname != "" {
|
|
|
+ mergeMap["projectname"] = map[string]interface{}{
|
|
|
+ "projectname":info.projectname,
|
|
|
+ "id":info.id,
|
|
|
+ }
|
|
|
+ update_map["$set"].(map[string]interface{})["projectname"] = info.projectname
|
|
|
+ source.projectname = info.projectname
|
|
|
+ isReplace = true
|
|
|
+ }
|
|
|
+
|
|
|
+ //项目编号
|
|
|
+ if source.projectcode == "" && info.projectcode != "" {
|
|
|
+ mergeMap["projectcode"] = map[string]interface{}{
|
|
|
+ "projectcode":info.projectcode,
|
|
|
+ "id":info.id,
|
|
|
+ }
|
|
|
+ update_map["$set"].(map[string]interface{})["projectcode"] = info.projectcode
|
|
|
+ source.projectcode = info.projectcode
|
|
|
+ isReplace = true
|
|
|
+ }
|
|
|
+
|
|
|
+ //采购单位
|
|
|
+ if source.buyer == "" && info.buyer != "" {
|
|
|
+ mergeMap["buyer"] = map[string]interface{}{
|
|
|
+ "buyer":info.buyer,
|
|
|
+ "id":info.id,
|
|
|
+ }
|
|
|
+ update_map["$set"].(map[string]interface{})["buyer"] = info.buyer
|
|
|
+ source.buyer = info.buyer
|
|
|
+ isReplace = true
|
|
|
+ }
|
|
|
+
|
|
|
+ //预算
|
|
|
+ if source.budget == 0 && info.budget != 0 {
|
|
|
+ mergeMap["budget"] = map[string]interface{}{
|
|
|
+ "budget":info.budget,
|
|
|
+ "id":info.id,
|
|
|
+ }
|
|
|
+ update_map["$set"].(map[string]interface{})["budget"] = info.budget
|
|
|
+ source.budget = info.budget
|
|
|
+ isReplace = true
|
|
|
+ }
|
|
|
+
|
|
|
+ //中标单位
|
|
|
+ if source.winner == "" && info.winner != "" {
|
|
|
+ mergeMap["winner"] = map[string]interface{}{
|
|
|
+ "winner":info.winner,
|
|
|
+ "id":info.id,
|
|
|
+ }
|
|
|
+ update_map["$set"].(map[string]interface{})["winner"] = info.winner
|
|
|
+ source.winner = info.winner
|
|
|
+ isReplace = true
|
|
|
+ }
|
|
|
+
|
|
|
+ //中标金额
|
|
|
+ if source.bidamount == 0 && info.bidamount != 0 {
|
|
|
+ mergeMap["bidamount"] = map[string]interface{}{
|
|
|
+ "bidamount":info.bidamount,
|
|
|
+ "id":info.id,
|
|
|
+ }
|
|
|
+ update_map["$set"].(map[string]interface{})["bidamount"] = info.bidamount
|
|
|
+ source.bidamount = info.bidamount
|
|
|
+ isReplace = true
|
|
|
+ }
|
|
|
+
|
|
|
+ //开标时间
|
|
|
+ if source.bidopentime == 0 && info.bidopentime != 0 {
|
|
|
+ mergeMap["bidopentime"] = map[string]interface{}{
|
|
|
+ "bidopentime":info.bidopentime,
|
|
|
+ "id":info.id,
|
|
|
+ }
|
|
|
+ update_map["$set"].(map[string]interface{})["bidopentime"] = info.bidopentime
|
|
|
+ source.bidopentime = info.bidopentime
|
|
|
+ isReplace = true
|
|
|
+ }
|
|
|
+
|
|
|
+ //合同编号
|
|
|
+ if source.contractnumber == "" && info.contractnumber != "" {
|
|
|
+ mergeMap["contractnumber"] = map[string]interface{}{
|
|
|
+ "contractnumber":info.contractnumber,
|
|
|
+ "id":info.id,
|
|
|
+ }
|
|
|
+ update_map["$set"].(map[string]interface{})["contractnumber"] = info.contractnumber
|
|
|
+ source.contractnumber = info.contractnumber
|
|
|
+ isReplace = true
|
|
|
+ }
|
|
|
+
|
|
|
+ //代理机构
|
|
|
+ if source.agency == "" && info.agency != "" {
|
|
|
+ mergeMap["agency"] = map[string]interface{}{
|
|
|
+ "agency":info.agency,
|
|
|
+ "id":info.id,
|
|
|
+ }
|
|
|
+ update_map["$set"].(map[string]interface{})["agency"] = info.agency
|
|
|
+ source.agency = info.agency
|
|
|
+ isReplace = true
|
|
|
+ }
|
|
|
+
|
|
|
+ source.mergemap = mergeMap
|
|
|
+ update_map["$set"].(map[string]interface{})["merge"] = mergeMap
|
|
|
+
|
|
|
+ return source,update_map,isReplace
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//合并字段-并更新merge字段的值-
|
|
|
+func mergeDataFieldsArr(source *Info, info *Info) (*Info, []int64, bool) {
|
|
|
|
|
|
merge_recordMap := make(map[string]interface{}, 0)
|
|
|
mergeArr := make([]int64, 0)
|