zhengkun 3 éve
szülő
commit
1ca508fd8b

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

@@ -1,20 +1,20 @@
 {
   "save_mgodb": {
-    "addr": "127.0.0.1:27017",
-    "db": "mixdata",
+    "addr": "172.17.4.87:27080",
+    "db": "py_spider",
     "pool": 5
   },
   "spi_mgodb": {
-    "addr": "127.0.0.1:27017",
+    "addr": "172.17.4.181:27001",
     "db": "mixdata",
     "pool": 5
   },
   "qy_mgodb": {
-    "addr": "127.0.0.1:27017",
+    "addr": "172.17.145.163:27083,172.17.4.187:27082",
     "db": "mixdata",
     "pool": 5,
-    "username":"",
-    "password":""
+    "username":"zhengkun",
+    "password":"zk@123123"
   },
   "mysql": {
     "addr": "192.168.3.109:4000",
@@ -32,6 +32,10 @@
   },
   "data_output": {
     "o_area_coll":"zktest_mysql_area",
-    "o_class_coll":"zktest_mysql_ylqxclass"
+    "o_class_coll":"zktest_mysql_ylqxclass",
+    "o_company_coll":"zktest_mysql_company_info",
+    "o_company_err_coll":"zktest_mysql_company_info_err",
+    "o_product_coll":"zktest_mysql_product_info",
+    "o_product_err_coll":"zktest_mysql_product_info_err"
   }
 }

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

@@ -16,6 +16,10 @@ func initConfig()  {
 	o_area_coll = qu.ObjToString(outputconf["o_area_coll"])
 	o_class_coll = qu.ObjToString(outputconf["o_class_coll"])
 
+	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_product_err_coll = qu.ObjToString(outputconf["o_product_err_coll"])
 
 
 

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

@@ -10,9 +10,9 @@ var (
 	save_mgo,qy_mgo,spi_mgo     *MongodbSim            //mongodb操作对象
     MysqlTool			*Mysql
 	s_area_coll,s_product_coll,s_company_coll,s_qybase_coll			string
-	o_area_coll,o_class_coll	string
+	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,o_product_err_coll	string
 )
 
 var timeReg = regexp.MustCompile(`^(\d{4}-[0-1][0-9]-[0-3][0-9])$`)

+ 14 - 4
process_ medical/src/mark

@@ -23,7 +23,8 @@
     "password": "top@123"
   },
   "data_source": {
-    "s_xlsx_name": "table.xlsx",
+    "s_class_xlsx_name": "table.xlsx",
+    "s_area_xlsx_name": "xzqh.xlsx",
     "s_area_coll": "address_jy_2021",
     "s_product_coll": "nmpa_product",
     "s_company_coll": "nmpa_company",
@@ -31,7 +32,11 @@
   },
   "data_output": {
     "o_area_coll":"zktest_mysql_area",
-    "o_class_coll":"zktest_mysql_ylqxclass"
+    "o_class_coll":"zktest_mysql_ylqxclass",
+    "o_company_coll":"zktest_mysql_company_info",
+    "o_company_err_coll":"zktest_mysql_company_info_err",
+    "o_product_coll":"zktest_mysql_product_info",
+    "o_product_err_coll":"zktest_mysql_product_info_err"
   }
 }
 
@@ -67,7 +72,8 @@
     "password": "top@123"
   },
   "data_source": {
-    "s_xlsx_name": "table.xlsx",
+    "s_class_xlsx_name": "table.xlsx",
+    "s_area_xlsx_name": "xzqh.xlsx",
     "s_area_coll": "address_jy_2021",
     "s_product_coll": "nmpa_product",
     "s_company_coll": "nmpa_company",
@@ -75,6 +81,10 @@
   },
   "data_output": {
     "o_area_coll":"zktest_mysql_area",
-    "o_class_coll":"zktest_mysql_ylqxclass"
+    "o_class_coll":"zktest_mysql_ylqxclass",
+    "o_company_coll":"zktest_mysql_company_info",
+    "o_company_err_coll":"zktest_mysql_company_info_err",
+    "o_product_coll":"zktest_mysql_product_info",
+    "o_product_err_coll":"zktest_mysql_product_info_err"
   }
 }

+ 36 - 38
process_ medical/src/medical_company.go

@@ -39,11 +39,12 @@ var fieldArr = []string{
 	"list_code",
 }
 
+//保存至mysql
 func saveCompanyMysql()  {
 	sess := save_mgo.GetMgoConn()
 	defer save_mgo.DestoryMongoConn(sess)
 	q,total:=map[string]interface{}{},0
-	it := sess.DB(save_mgo.DbName).C("zktest_mysql_company_info").Find(&q).Iter()
+	it := sess.DB(save_mgo.DbName).C(o_company_coll).Find(&q).Iter()
 	for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
 		if total%10000==0 {
 			log.Debug("curent index ",total)
@@ -52,11 +53,9 @@ func saveCompanyMysql()  {
 		MysqlTool.Insert("f_company",tmp)
 		tmp = make(map[string]interface{})
 	}
-
 	log.Debug("is over ",total)
 }
 
-
 //关联企业信息-升数据
 func exportCompanyMysql()  {
 	dataArr := repeatCompanyNamedata()
@@ -64,34 +63,26 @@ func exportCompanyMysql()  {
 		if index%10000==0 {
 			log.Debug("curent index ",index)
 		}
-		for company,_ := range tmp{
-			arr,_ :=spi_mgo.Find(s_qybase_coll, map[string]interface{}{
+		for company,type_str := range tmp{
+			infoArr,_ :=spi_mgo.Find(s_qybase_coll, map[string]interface{}{
 				"company_name":company,
 			},nil,nil)
-			//选取最优-企业信息
-			if len(dataArr)>0 {
-				getOneBaseCompany(arr)
-			}else {
-				//记录企业---
+			if len(infoArr)>0 {//选取最优-企业信息
+				index := getOneBaseCompany(infoArr)
+				info := infoArr[index]
+				update := buildUpdateData(info,type_str)
+				save_mgo.Save(o_company_coll,update)
+			}else {//企业未匹配-记录
+				save_mgo.Save(o_company_coll, map[string]interface{}{
+					"company_name":company,
+				})
 			}
 		}
 	}
 }
 
-
-
-func getOneBaseCompany(arr []map[string]interface{}) map[string]interface{} {
-	data := map[string]interface{}{}
-	if len(arr)==1 {
-		return arr[0]
-	}
-
-	return data
-}
-
-
-
-func updateData(tmp map[string]interface{},type_str string) map[string]interface{} {
+//构建更新数据
+func buildUpdateData(tmp map[string]interface{},type_str string) map[string]interface{} {
 	update := map[string]interface{}{}
 	for _,v := range fieldArr{
 		if tmp[v]!=nil {
@@ -102,7 +93,6 @@ func updateData(tmp map[string]interface{},type_str string) map[string]interface
 	if company_id=="" {
 		return map[string]interface{}{}
 	}
-
 	qy_data := qy_mgo.FindByStrId("qyxy_std",company_id)
 	update["area"] = ""
 	update["city"] = ""
@@ -112,23 +102,31 @@ func updateData(tmp map[string]interface{},type_str string) map[string]interface
 		update["city"] = qu.ObjToString(qy_data["company_city"])
 		update["district"] = qu.ObjToString(qy_data["company_district"])
 	}
+	update["business_type"] = type_str
 
-	if strings.Contains(type_str,"&") {
-		update["business_type"] = "3"
-	}else {
-		if strings.Contains(type_str,"生产") {
-			update["business_type"] = "1"
-		}else if strings.Contains(type_str,"经营") {
-			update["business_type"] = "2"
-		}else {
-			update["business_type"] = ""
+	return update
+}
+//获取最优企业
+func getOneBaseCompany(arr []map[string]interface{}) int {
+	index :=0
+	flag := 100
+	if len(arr)>1 {
+		for k,tmp := range arr{
+			use_flag := qu.IntAll(tmp["use_flag"])
+			if use_flag==0 {
+				index=k
+				break
+			}else {
+				if use_flag<flag {
+					flag = use_flag
+					index = k
+				}
+			}
 		}
 	}
-
-	return update
+	return index
 }
-
-//已结束
+//重复企业-过滤
 func repeatCompanyNamedata() []map[string]string {
 	sess := save_mgo.GetMgoConn()
 	defer save_mgo.DestoryMongoConn(sess)

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

@@ -0,0 +1 @@
+package main