Parcourir la source

备份-标讯信息

zhengkun il y a 3 ans
Parent
commit
62be473bd2

+ 11 - 11
process_ medical/src/config.json

@@ -1,26 +1,26 @@
 {
   "save_mgodb": {
-    "addr": "127.0.0.1:27017",
-    "db": "mixdata",
+    "addr": "192.168.3.207:27092",
+    "db": "zhengkun",
     "pool": 5
   },
   "spi_mgodb": {
-    "addr": "127.0.0.1:27017",
-    "db": "mixdata",
+    "addr": "192.168.3.207:27092",
+    "db": "zhengkun",
     "pool": 5
   },
   "qy_mgodb": {
-    "addr": "127.0.0.1:27017",
-    "db": "mixdata",
+    "addr": "192.168.3.207:27092",
+    "db": "zhengkun",
     "pool": 5,
     "username":"",
     "password":""
   },
   "mysql": {
-    "addr": "192.168.3.109:4000",
-    "db": "jy_lycp",
-    "username": "jianyu",
-    "password": "top@123"
+    "addr": "127.0.0.1:3306",
+    "db": "zhengkun",
+    "username": "root",
+    "password": "123456"
   },
   "data_source": {
     "s_class_xlsx_name": "table.xlsx",
@@ -37,6 +37,6 @@
     "o_company_coll":"zktest_mysql_company_info",
     "o_company_err_coll":"zktest_mysql_company_info_err",
     "o_product_coll":"zktest_mysql_product_info",
-    "0_bidding_coll": ""
+    "o_bidding_coll": "zktest_mysql_bidding"
   }
 }

+ 3 - 2
process_ medical/src/init_config.go

@@ -11,6 +11,7 @@ func initConfig()  {
 	s_product_coll = qu.ObjToString(souceconf["s_product_coll"])
 	s_company_coll = qu.ObjToString(souceconf["s_company_coll"])
 	s_qybase_coll = qu.ObjToString(souceconf["s_qybase_coll"])
+	s_bidding_coll = qu.ObjToString(souceconf["s_bidding_coll"])
 
 	outputconf:= sysconfig["data_output"].(map[string]interface{})
 	o_area_coll = qu.ObjToString(outputconf["o_area_coll"])
@@ -18,7 +19,7 @@ func initConfig()  {
 	o_company_coll = qu.ObjToString(outputconf["o_company_coll"])
 	o_company_err_coll = qu.ObjToString(outputconf["o_company_err_coll"])
 	o_product_coll = qu.ObjToString(outputconf["o_product_coll"])
-
+	o_bidding_coll = qu.ObjToString(outputconf["o_bidding_coll"])
 
 
 
@@ -62,5 +63,5 @@ func initMgo() {
 		PassWord: sqlconf["password"].(string),
 		DBName: sqlconf["db"].(string),
 	}
-	MysqlTool.Init()
+	//MysqlTool.Init()
 }

+ 3 - 1
process_ medical/src/main.go

@@ -14,6 +14,7 @@ var (
 	o_area_coll,o_class_coll,o_company_coll,o_product_coll	string
 	s_class_xlsx_name,s_area_xlsx_name	string
 	o_company_err_coll	string
+	s_bidding_coll,o_bidding_coll	string
 )
 
 var timeReg = regexp.MustCompile(`^(\d{4}-[0-1][0-9]-[0-3][0-9])$`)
@@ -36,7 +37,8 @@ func init()  {
 
 
 func main()  {
-	exportUsefulPurMysql()
+	//initMySqlMgoData()
+	saveBiddingPurMysql()
 }
 
 

+ 12 - 7
process_ medical/src/mark

@@ -16,12 +16,6 @@
     "pool": 5,
     "username":"zhengkun",
     "password":"zk@123123"
-  },
-  "mysql": {
-    "addr": "192.168.3.109:4000",
-    "db": "jy_lycp",
-    "username": "jianyu",
-    "password": "top@123"
   }
 }
 
@@ -68,4 +62,15 @@
     "username":"",
     "password":""
   }
-}
+}
+
+
+
+
+
+"mysql": {
+    "addr": "192.168.3.109:4000",
+    "db": "jy_lycp",
+    "username": "jianyu",
+    "password": "top@123"
+  }

+ 92 - 51
process_ medical/src/medical_bidding.go

@@ -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)
 }

+ 12 - 24
process_ medical/src/medical_prepare.go

@@ -67,40 +67,28 @@ func init_area() {
 	sess := save_mgo.GetMgoConn()
 	defer save_mgo.DestoryMongoConn(sess)
 	q,total:=map[string]interface{}{},0
-	it := sess.DB(save_mgo.DbName).C("zktest_mysql_area").Find(&q).Iter()
-	dict := map[string]string{}
+	it := sess.DB(save_mgo.DbName).C(o_area_coll).Find(&q).Iter()
 	for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
 		name := qu.ObjToString(tmp["name"])
 		code := qu.ObjToString(tmp["code"])
-		dict[code] = name
-		tmp = make(map[string]interface{})
-	}
-
-	//最多六位
-	for k,v := range dict {
+		p_name := qu.ObjToString(tmp["p_name"])
+		c_name := qu.ObjToString(tmp["c_name"])
+		level := qu.ObjToString(tmp["level"])
 		key := ""
-		if utf8.RuneCountInString(k)==2 {
-			key = v+"_"+"_"
-		} else if utf8.RuneCountInString(k)==4 {
-			pro_code := k[:2]
-			pro_name := dict[pro_code]
-			key = pro_name+"_"+v+"_"
-		}else if utf8.RuneCountInString(k)==6 {
-			pro_code := k[:2]
-			pro_name := dict[pro_code]
-			city_code := k[:4]
-			city_name := dict[city_code]
-			key = pro_name+"_"+city_name+"_"+v
+		if level=="1" {
+			key = name+"_"+"_"
+		}else if level=="2" {
+			key = p_name+"_"+name+"_"
+		}else if level=="3" {
+			key = p_name+"_"+c_name+"_"+name
 		}else {
 
 		}
 		if key!="" {
-			area_dict[key] = k
+			area_dict[key] = code
 		}
+		tmp = make(map[string]interface{})
 	}
-
-
-
 }
 
 //7780 -- 7746  采用最后一个 34个重复