|
@@ -9,32 +9,27 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-
|
|
|
//生成两个 mysql 表
|
|
|
-func dealWithBiddingSource() {
|
|
|
- //f_bidding f_bidproduct
|
|
|
+func saveBiddingPurMysql() {
|
|
|
log.Debug("分析数据-保存两个mysql表...")
|
|
|
sess := save_mgo.GetMgoConn()
|
|
|
defer save_mgo.DestoryMongoConn(sess)
|
|
|
q,total:=map[string]interface{}{},0
|
|
|
- it := sess.DB(save_mgo.DbName).C("zktest_mysql_source").Find(&q).Iter()
|
|
|
+ it := sess.DB(save_mgo.DbName).C(o_bidding_coll).Find(&q).Iter()
|
|
|
for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
|
|
|
- if total%100==0 {
|
|
|
+ if total%10000==0 {
|
|
|
log.Debug("curent index ",total)
|
|
|
}
|
|
|
- saveBidMysqlData(tmp)
|
|
|
- savePurMysqlData(tmp)
|
|
|
+ tmpid := BsonTOStringId(tmp["_id"])
|
|
|
+ dealWithBidData(tmp,tmpid)
|
|
|
+ dealWithPurData(tmp,tmpid)
|
|
|
tmp = make(map[string]interface{})
|
|
|
}
|
|
|
-
|
|
|
log.Debug("is over ",total)
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-//导出招标-mysql
|
|
|
-func saveBidMysqlData(tmp map[string]interface{}){
|
|
|
+//构建-招投标数据-无异常
|
|
|
+func dealWithBidData(tmp map[string]interface{},tmpid string){
|
|
|
data := map[string]interface{}{}
|
|
|
data["info_id"] = tmp["info_id"]
|
|
|
data["projectname"] = tmp["projectname"]
|
|
@@ -46,10 +41,10 @@ func saveBidMysqlData(tmp map[string]interface{}){
|
|
|
}
|
|
|
data["buyer_name"] = qu.ObjToString(tmp["buyer"])
|
|
|
data["buyer_depart"] = ""
|
|
|
- if tmp["budget"]!=nil && qu.Float64All(tmp["budget"]) < 100000000.0 {
|
|
|
+ if tmp["budget"]!=nil && qu.Float64All(tmp["budget"]) < 1000000000.0 {
|
|
|
data["budget"] = qu.Float64All(tmp["budget"])
|
|
|
}
|
|
|
- if tmp["bidamount"]!=nil && qu.Float64All(tmp["bidamount"]) < 100000000.0 {
|
|
|
+ if tmp["bidamount"]!=nil && qu.Float64All(tmp["bidamount"]) < 1000000000.0 {
|
|
|
data["bidamount"] = qu.Float64All(tmp["bidamount"])
|
|
|
}
|
|
|
data["agency_name"] = qu.ObjToString(tmp["agency"])
|
|
@@ -69,7 +64,6 @@ func saveBidMysqlData(tmp map[string]interface{}){
|
|
|
data["area_code"] =area_dict[area_key]
|
|
|
|
|
|
|
|
|
-
|
|
|
subscopeclass := []string{}
|
|
|
if res, ok := tmp["subscopeclass"].(primitive.A); ok {
|
|
|
subscopeclass = qu.ObjArrToStringArr(res)
|
|
@@ -79,7 +73,6 @@ func saveBidMysqlData(tmp map[string]interface{}){
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
industry_code,industry_code_other:="",""
|
|
|
for _,v := range subscopeclass{
|
|
|
if strings.Contains(v,"医疗卫生") {
|
|
@@ -95,11 +88,10 @@ func saveBidMysqlData(tmp map[string]interface{}){
|
|
|
data["industry_code"] = industry_code
|
|
|
data["industry_code_other"] = industry_code_other
|
|
|
|
|
|
- insertMysqlData("f_bidding",data,"")
|
|
|
+ //insertMysqlData("f_bidding",data,tmpid)
|
|
|
}
|
|
|
-
|
|
|
-//导出标的物-mysql
|
|
|
-func savePurMysqlData(tmp map[string]interface{}){
|
|
|
+//构建-标的物信息-关联企业信息
|
|
|
+func dealWithPurData(tmp map[string]interface{},tmpid string){
|
|
|
p_list := []map[string]interface{}{}
|
|
|
if yl_purchasinglist, ok := tmp["yl_purchasinglist"].(primitive.A); ok {
|
|
|
p_list = qu.ObjArrToMapArr(yl_purchasinglist)
|
|
@@ -109,12 +101,10 @@ func savePurMysqlData(tmp map[string]interface{}){
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
info_id := qu.ObjToString(tmp["info_id"])
|
|
|
s_winner := qu.ObjToString(tmp["s_winner"])
|
|
|
for _,v:=range p_list{
|
|
|
data := map[string]interface{}{}
|
|
|
-
|
|
|
product_name := qu.ObjToString(v["product_name"])
|
|
|
data["info_id"] = info_id
|
|
|
data["bid_name"] = qu.ObjToString(v["itemname"])
|
|
@@ -137,17 +127,71 @@ func savePurMysqlData(tmp map[string]interface{}){
|
|
|
data["product_unit"] = qu.ObjToString(v["unitname"])
|
|
|
}
|
|
|
|
|
|
- if !strings.Contains(s_winner,",") {
|
|
|
- data["bid_company_id"] = qu.ObjToString(tmp["company_id"])
|
|
|
- data["bid_company_name"] = s_winner
|
|
|
+ //涉及-bid_company_name bid_company_id bid_company_ysname -关联f_company
|
|
|
+ if s_winner != "" {
|
|
|
+ if strings.Contains(s_winner,",") {
|
|
|
+ data["bid_company_id"] = ""
|
|
|
+ data["bid_company_name"] = ""
|
|
|
+ data["bid_company_ysname"] = s_winner
|
|
|
+ }else {//查询f_company...
|
|
|
+ query:= map[string]interface{}{"company_name":s_winner}
|
|
|
+ find_data := MysqlTool.FindOne("f_company", query,"company_id","")
|
|
|
+ if find_data==nil {
|
|
|
+ data["bid_company_id"] = ""
|
|
|
+ data["bid_company_name"] = s_winner
|
|
|
+ data["bid_company_ysname"] = ""
|
|
|
+ }else {
|
|
|
+ data["bid_company_id"] = qu.ObjToString((*find_data)["company_id"])
|
|
|
+ data["bid_company_name"] = s_winner
|
|
|
+ data["bid_company_ysname"] = ""
|
|
|
+ }
|
|
|
+ }
|
|
|
}else {
|
|
|
data["bid_company_id"] = ""
|
|
|
data["bid_company_name"] = ""
|
|
|
+ data["bid_company_ysname"] = ""
|
|
|
+ }
|
|
|
+
|
|
|
+ //涉及-make_company_id make_company_name make_company_ysname -关联f_product
|
|
|
+ query := "SELECT company_id,company_name FROM f_product WHERE business_type=? or business_type=? LIMIT 0,20"
|
|
|
+ proinfo := MysqlTool.SelectBySql(query, "1","3")
|
|
|
+ if len(*proinfo) == 1 { //查询到多条-同产品信息
|
|
|
+ info :=(*proinfo)[0]
|
|
|
+ data["make_company_id"] = qu.ObjToString(info["company_id"])
|
|
|
+ data["make_company_name"] = qu.ObjToString(info["company_name"])
|
|
|
+ data["make_company_ysname"] = ""
|
|
|
+ }else if len(*proinfo) > 1 {
|
|
|
+ //是否多个
|
|
|
+ pro_name := ""
|
|
|
+ pro_id := ""
|
|
|
+ isUse:=true
|
|
|
+ for index,info := range *proinfo {
|
|
|
+ company_name := qu.ObjToString(info["company_name"])
|
|
|
+ company_id := qu.ObjToString(info["company_id"])
|
|
|
+ if index==0 {
|
|
|
+ pro_name = company_name
|
|
|
+ pro_id = company_id
|
|
|
+ }else {
|
|
|
+ if company_name!=pro_name {
|
|
|
+ isUse = false
|
|
|
+ pro_name+=","+company_name
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if isUse {
|
|
|
+ data["make_company_id"] = pro_id
|
|
|
+ data["make_company_name"] = pro_name
|
|
|
+ data["make_company_ysname"] = ""
|
|
|
+ }else {
|
|
|
+ data["make_company_id"] = ""
|
|
|
+ data["make_company_name"] = ""
|
|
|
+ data["make_company_ysname"] = pro_name
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ data["make_company_id"] = ""
|
|
|
+ data["make_company_name"] = ""
|
|
|
+ data["make_company_ysname"] = ""
|
|
|
}
|
|
|
- data["bid_company_ysname"] = ""
|
|
|
- data["make_company_id"] = ""
|
|
|
- data["make_company_name"] = ""
|
|
|
- data["make_company_ysname"] = ""
|
|
|
|
|
|
//product_code分类
|
|
|
product_class_1 := qu.ObjToString(v["product_class_1"])
|
|
@@ -161,22 +205,20 @@ func savePurMysqlData(tmp map[string]interface{}){
|
|
|
pro_key := fmt.Sprintf("%s_%s_%s",product_class_1,product_class_2,product_class_3)
|
|
|
data["product_code"] = proclass_name_dict[pro_key]
|
|
|
}
|
|
|
- insertMysqlData("f_bidproduct",data,"")
|
|
|
+ //insertMysqlData("f_bidproduct",data,tmpid)
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-//导出源数据...
|
|
|
+//导出源数据... 163-qfw
|
|
|
func exportUsefulPurMysql() {
|
|
|
- sess := save_mgo.GetMgoConn()
|
|
|
- defer save_mgo.DestoryMongoConn(sess)
|
|
|
+ sess := qy_mgo.GetMgoConn()
|
|
|
+ defer qy_mgo.DestoryMongoConn(sess)
|
|
|
q,total:=map[string]interface{}{},0
|
|
|
isok:=0
|
|
|
- it := sess.DB(save_mgo.DbName).C("ylhydata").Find(&q).Sort("_id").Iter()
|
|
|
+ it := sess.DB("qfw").C(s_bidding_coll).Find(&q).Sort("_id").Iter()
|
|
|
for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
|
|
|
if total%10000==0 {
|
|
|
log.Debug("curent index ",total,tmp["_id"],"~",isok)
|
|
@@ -218,22 +260,21 @@ func exportUsefulPurMysql() {
|
|
|
if tmp["subscopeclass"]!=nil {
|
|
|
new_data["subscopeclass"] = tmp["subscopeclass"]
|
|
|
}
|
|
|
- company_id:=""
|
|
|
- //根据s_winner-关联company_id
|
|
|
- if s_winner != "" && !strings.Contains(s_winner,",") {
|
|
|
- spi_data := spi_mgo.FindOne("zktest_mysql_company_info", map[string]interface{}{
|
|
|
- "company_name":s_winner,
|
|
|
- })
|
|
|
- if spi_data!=nil && len(spi_data)>2 {
|
|
|
- company_id = qu.ObjToString(spi_data["company_id"])
|
|
|
- }
|
|
|
- }
|
|
|
- new_data["company_id"] = company_id
|
|
|
- save_mgo.Save("zktest_mysql_source",new_data)
|
|
|
+ save_mgo.Save(o_bidding_coll,new_data)
|
|
|
+ //company_id:=""
|
|
|
+ ////根据s_winner-关联company_id
|
|
|
+ //if s_winner != "" && !strings.Contains(s_winner,",") {
|
|
|
+ // c_data := save_mgo.FindOne(o_company_coll, map[string]interface{}{
|
|
|
+ // "company_name":s_winner,
|
|
|
+ // })
|
|
|
+ // if c_data!=nil && len(c_data)>2 {
|
|
|
+ // company_id = qu.ObjToString(c_data["company_id"])
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //new_data["company_id"] = company_id
|
|
|
}
|
|
|
-
|
|
|
tmp = make(map[string]interface{})
|
|
|
}
|
|
|
|
|
|
- log.Debug("is over ",total,isok)
|
|
|
+ log.Debug("is bidding over ",total,isok)
|
|
|
}
|