zhengkun 3 gadi atpakaļ
vecāks
revīzija
eefa6f7970

+ 9 - 6
process_ medical/src/config.json

@@ -17,10 +17,10 @@
     "password":""
   },
   "mysql": {
-    "addr": "127.0.0.1:3306",
-    "db": "zhengkun",
-    "username": "root",
-    "password": "123456"
+    "addr": "192.168.3.109:4000",
+    "db": "jy_lycp",
+    "username": "jianyu",
+    "password": "top@123"
   },
   "data_source": {
     "s_class_xlsx_name": "table.xlsx",
@@ -29,7 +29,8 @@
     "s_product_coll": "nmpa_product",
     "s_company_coll": "nmpa_company",
     "s_qybase_coll": "company_base",
-    "s_bidding_coll": "ylhydata"
+    "s_bidding_coll": "ylhydata",
+    "s_company_history_coll": "company_history_name"
   },
   "data_output": {
     "o_area_coll":"zktest_mysql_area",
@@ -37,6 +38,8 @@
     "o_company_coll":"zktest_mysql_company_info",
     "o_company_err_coll":"zktest_mysql_company_info_err",
     "o_product_coll":"zktest_mysql_product_info",
-    "o_bidding_coll": "zktest_mysql_bidding"
+    "o_bidding_coll": "zktest_mysql_bidding",
+    "o_hospital_coll": "zktest_mysql_hospital",
+    "o_company_history_coll": "zktest_mysql_company_history"
   }
 }

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

@@ -12,6 +12,7 @@ func initConfig()  {
 	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"])
+	s_company_history_coll = qu.ObjToString(souceconf["s_company_history_coll"])
 
 	outputconf:= sysconfig["data_output"].(map[string]interface{})
 	o_area_coll = qu.ObjToString(outputconf["o_area_coll"])
@@ -20,8 +21,8 @@ func initConfig()  {
 	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"])
-
-
+	o_hospital_coll = qu.ObjToString(outputconf["o_hospital_coll"])
+	o_company_history_coll = qu.ObjToString(outputconf["o_company_history_coll"])
 
 }
 
@@ -63,5 +64,5 @@ func initMgo() {
 		PassWord: sqlconf["password"].(string),
 		DBName: sqlconf["db"].(string),
 	}
-	//MysqlTool.Init()
+	MysqlTool.Init()
 }

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

@@ -14,7 +14,8 @@ 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
+	s_bidding_coll,o_bidding_coll,s_company_history_coll	string
+	o_hospital_coll,o_company_history_coll 	string
 )
 
 var timeReg = regexp.MustCompile(`^(\d{4}-[0-1][0-9]-[0-3][0-9])$`)
@@ -37,8 +38,10 @@ func init()  {
 
 
 func main()  {
-	//initMySqlMgoData()
-	saveBiddingPurMysql()
+	//备份
+
+
+
 }
 
 

+ 2 - 2
process_ medical/src/medical_bidding.go

@@ -88,7 +88,7 @@ func dealWithBidData(tmp map[string]interface{},tmpid string){
 	data["industry_code"] = industry_code
 	data["industry_code_other"] = industry_code_other
 
-	//insertMysqlData("f_bidding",data,tmpid)
+	insertMysqlData("f_bidding",data,tmpid)
 }
 //构建-标的物信息-关联企业信息
 func dealWithPurData(tmp map[string]interface{},tmpid string){
@@ -205,7 +205,7 @@ func dealWithPurData(tmp map[string]interface{},tmpid string){
 			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,tmpid)
+		insertMysqlData("f_bidproduct",data,tmpid)
 	}
 
 

+ 63 - 1
process_ medical/src/medical_history.go

@@ -1,5 +1,67 @@
 package main
 
-func exportAliasName ()  {
+import (
+	log "github.com/donnie4w/go-logger/logger"
+	qu "qfw/util"
+)
 
+//保存至mysql
+func saveCompanyHistoryMysql()  {
+	sess := save_mgo.GetMgoConn()
+	defer save_mgo.DestoryMongoConn(sess)
+	q,total:=map[string]interface{}{},0
+	it := sess.DB(save_mgo.DbName).C(o_company_history_coll).Find(&q).Iter()
+	for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
+		if total%10000==0 {
+			log.Debug("curent index ",total)
+		}
+		tmpid := BsonTOStringId(tmp["_id"])
+		delete(tmp,"_id")
+		insertMysqlData("f_company_history",tmp,tmpid)
+		tmp = make(map[string]interface{})
+	}
+	log.Debug("is company history over ",total)
+}
+
+
+func exportCompanyAliasNameMysql ()  {
+
+	sess := save_mgo.GetMgoConn()
+	defer save_mgo.DestoryMongoConn(sess)
+	q,total,isok:=map[string]interface{}{},0,0
+	it := sess.DB(save_mgo.DbName).C(o_company_coll).Find(&q).Select(map[string]interface{}{
+		"company_id":1,
+		"company_name":1,
+		"business_type":1,
+	}).Iter()
+	for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
+		if total%10000==0 {
+			log.Debug("curent index ",total,isok)
+		}
+		company_id := qu.ObjToString(tmp["company_id"])
+		company_name := qu.ObjToString(tmp["company_name"])
+		business_type := qu.ObjToString(tmp["business_type"])
+		arr,_:=spi_mgo.Find(s_company_history_coll, map[string]interface{}{
+			"company_id":company_id,
+		},nil,map[string]interface{}{
+			"history_name":1,
+		})
+
+		for _,v := range arr{
+			history_name := qu.ObjToString(v["history_name"])
+			if history_name=="" || history_name==company_name{
+				continue
+			}
+			isok++
+			save_mgo.Save(o_company_history_coll, map[string]interface{}{
+				"name":history_name,
+				"company_id":company_id,
+				"company_name":company_name,
+				"business_type":business_type,
+			})
+		}
+
+		tmp = make(map[string]interface{})
+	}
+	log.Debug("is company history over ",total,isok)
 }

+ 51 - 6
process_ medical/src/medical_hospital.go

@@ -1,20 +1,65 @@
 package main
 
-import log "github.com/donnie4w/go-logger/logger"
+import (
+	log "github.com/donnie4w/go-logger/logger"
+	qu "qfw/util"
+	"regexp"
+	"strings"
+)
 
-func hospitalSaveMysql() {
+var hp_levelReg = regexp.MustCompile(`^[一二三]级[甲乙丙]等`)
+
+func saveHospitalMysql() {
 	sess := save_mgo.GetMgoConn()
 	defer save_mgo.DestoryMongoConn(sess)
 	q,total:=map[string]interface{}{},0
-	it := sess.DB(save_mgo.DbName).C("zktest_mysql_hospital").Find(&q).Iter()
+	it := sess.DB(save_mgo.DbName).C(o_hospital_coll).Find(&q).Iter()
 	for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
 		if total%10000==0 {
 			log.Debug("curent index ",total)
 		}
-
-
-
+		tmpid := BsonTOStringId(tmp["_id"])
+		hospital_name :=  qu.ObjToString(tmp["name"])
+		data,alias_arr := updateHospitalData(tmp)
+		insertMysqlData("f_hospital",data,tmpid)
+		for _,v := range alias_arr{
+			if v=="" {
+				continue
+			}
+			insertMysqlData("f_hospital_history", map[string]interface{}{
+				"name":v,
+				"hospital_name":hospital_name,
+			},tmpid)
+		}
 
 		tmp = make(map[string]interface{})
 	}
+	log.Debug("is hospital over ",total)
 }
+
+
+func updateHospitalData(tmp map[string]interface{})(map[string]interface{},[]string) {
+	hospital := map[string]interface{}{}
+	alias := qu.ObjToString(tmp["alias"])
+	level := qu.ObjToString(tmp["level"])
+	level_str := hp_levelReg.FindString(level)
+	if level_str != "" {
+		level = level_str
+	}
+	hospital["level"] = level
+
+	hospital["name"] = qu.ObjToString(tmp["name"])
+	hospital["type"] = qu.ObjToString(tmp["type"])
+	hospital["address"] = qu.ObjToString(tmp["address"])
+	hospital["main_depart"] = qu.ObjToString(tmp["main_depart"])
+	hospital["business_type"] = qu.ObjToString(tmp["business_type"])
+	hospital["tel"] = qu.ObjToString(tmp["tel"])
+	hospital["fax_number"] = qu.ObjToString(tmp["fax_number"])
+	hospital["website"] = qu.ObjToString(tmp["website"])
+	hospital["area"] = qu.ObjToString(tmp["area"])
+	hospital["city"] = qu.ObjToString(tmp["city"])
+	hospital["district"] = qu.ObjToString(tmp["district"])
+	hospital["alias"] = alias
+	aliasArr := strings.Split(alias,",")
+	return hospital,aliasArr
+}

+ 13 - 2
process_ medical/src/medical_product.go

@@ -76,7 +76,6 @@ func buildInsertData(tmp map[string]interface{}) map[string]interface{}{
 	data["company_name"] = qu.ObjToString(tmp["reg_company"])
 	data["company_address"] = qu.ObjToString(tmp["reg_address"])
 	data["brand"] = ""
-	data["make_adress"] = qu.ObjToString(tmp["product_address"])
 	p_class:= qu.ObjToString(tmp["p_class"])
 	if p_class=="国产" {
 		data["make_country"] = "1"
@@ -91,18 +90,30 @@ func buildInsertData(tmp map[string]interface{}) map[string]interface{}{
 	data["product_descrip"] = qu.ObjToString(tmp["product_depict"])
 	data["use_scope "] = qu.ObjToString(tmp["application"])
 	data["storage_conditions"] = qu.ObjToString(tmp["conditions_use"])
-	data["remark"] = qu.ObjToString(tmp["remark"])
 	data["approve_depart"] = qu.ObjToString(tmp["badw"])
+
 	main_part := qu.ObjToString(tmp["main_component"])
 	changes := qu.ObjToString(tmp["changes"])
+	make_adress := qu.ObjToString(tmp["product_address"])
+	remark := qu.ObjToString(tmp["remark"])
 	if utf8.RuneCountInString(main_part)>2000 {
 		main_part = ""
 	}
 	if utf8.RuneCountInString(changes)>2000{
 		changes = ""
 	}
+	if utf8.RuneCountInString(make_adress)>800{
+		make_adress = ""
+	}
+	if utf8.RuneCountInString(remark)>800{
+		remark = ""
+	}
 	data["main_part"] = main_part
 	data["changes"] = changes
+	data["make_adress"] = make_adress
+	data["remark"] = remark
+
+	
 	type_str := qu.ObjToString(tmp["type"])
 	approve_date,validity_date := "",""
 	validity_date = qu.ObjToString(tmp["yxqz"])

+ 3 - 5
process_ medical/src/medical_vdata.go

@@ -93,7 +93,6 @@ func exportAreaCitysMysql() {
 			"$exists":0,
 		},
 	},0
-	iserr :=0
 	it := sess.DB(qy_mgo.DbName).C(s_area_coll).Find(&q).Iter()
 	for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
 		province:=qu.ObjToString(tmp["province"])
@@ -126,6 +125,7 @@ func exportAreaCitysMysql() {
 					"region":qu.ObjToString(info["region"]),
 					"longitude":qu.ObjToString(info["longitude"]),
 					"latitude":qu.ObjToString(info["latitude"]),
+					"pcode":province_code,
 				}
 			}
 		}else {
@@ -141,16 +141,14 @@ func exportAreaCitysMysql() {
 				"region":qu.ObjToString(info["region"]),
 				"longitude":qu.ObjToString(info["longitude"]),
 				"latitude":qu.ObjToString(info["latitude"]),
+				"pcode":city_code,
 			}
 		}
 		save_mgo.Save(o_area_coll,data)
 
-		if len(info)==0 {
-			iserr++
-		}
 		tmp = make(map[string]interface{})
 	}
-	log.Debug("is area over ",total,iserr)
+	log.Debug("is area over ",total)
 
 
 }

+ 1 - 1
process_ medical/src/mysql.go

@@ -248,7 +248,7 @@ func (m *Mysql) Find(tableName string, query map[string]interface{}, fields, ord
 		buffer.WriteString(fmt.Sprint(pageSize))
 	}
 	q := buffer.String()
-	log.Println(q, vs)
+	//log.Println(q, vs)
 	return m.SelectBySql(q, vs...)
 }