Browse Source

企业-产品 表

zhengkun 3 years ago
parent
commit
d2e3218a41

+ 20 - 15
process_ medical/src/main.go

@@ -1,11 +1,18 @@
 package main
 
+import (
+	"regexp"
+)
+
 var (
 	sysconfig    		map[string]interface{} //配置文件
 	save_mgo,qy_mgo,spi_mgo     *MongodbSim            //mongodb操作对象
     MysqlTool			*Mysql
 )
 
+var timeReg = regexp.MustCompile(`^(\d{4}-\d{2}-\d{2})$`)
+var timeReg1 = regexp.MustCompile(`^(\d{4}-\d{1,2}-\d{1,2})$`)
+
 func init()  {
 	//qy_mgo = &MongodbSim{
 	//	MongodbAddr: "172.17.145.163:27083,172.17.4.187:27082",
@@ -57,13 +64,15 @@ func init()  {
 	//}
 	//MysqlTool.Init()
 
-	MysqlTool = &Mysql{
-		Address: "127.0.0.1:3306",
-		UserName: "root",
-		PassWord: "123456",
-		DBName: "zhengkun",
-	}
-	MysqlTool.Init()
+	//MysqlTool = &Mysql{
+	//	Address: "127.0.0.1:3306",
+	//	UserName: "root",
+	//	PassWord: "123456",
+	//	DBName: "zhengkun",
+	//}
+	//MysqlTool.Init()
+	//
+
 
 	save_mgo = &MongodbSim{
 		MongodbAddr: "127.0.0.1:27017",
@@ -79,16 +88,12 @@ func init()  {
 
 
 func main()  {
+	
 
-	//生产经营企业-信息
-	//companySaveMysql()
-
-	//企业许可备案信息
-	//forReference()
 
-	//v表
-	//v_area()
-	//v_ylqxclass()
 
 }
 
+
+
+

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

@@ -43,7 +43,7 @@ func companySaveMysql()  {
 	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").Find(&q).Iter()
+	it := sess.DB(save_mgo.DbName).C("zktest_mysql_company_info").Find(&q).Iter()
 	for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
 		if total%10000==0 {
 			log.Debug("curent index ",total)

+ 16 - 16
process_ medical/src/medical_for_reference.go

@@ -3,11 +3,11 @@ package main
 import (
 	log "github.com/donnie4w/go-logger/logger"
 	qu "qfw/util"
-	"regexp"
 	"strings"
 )
 
-var timeReg = regexp.MustCompile(`^(\d{4}-\d{2}-\d{2})$`)
+
+
 //企业许可备案信息
 func forReference()  {
 	sess := save_mgo.GetMgoConn()
@@ -22,8 +22,8 @@ func forReference()  {
 		class := qu.ObjToString(tmp["class"])
 		if class=="生产型"{
 			ok1++
-			//data := dealWithSCX(tmp)
-			//MysqlTool.Insert("f_production_register",data)
+			data := dealWithSCX(tmp)
+			MysqlTool.Insert("f_production_register",data)
 		}else if class=="经营型" {
 			ok2++
 			data := dealWithJYX(tmp)
@@ -43,10 +43,10 @@ func dealWithSCX (tmp map[string]interface{}) map[string]interface{}{
 	yxqx := qu.ObjToString(tmp["yxqx"])
 	barq := qu.ObjToString(tmp["barq"])
 	if yxqx!="" && timeReg.MatchString(yxqx) {
-		data["validitydate"] = yxqx
+		data["validity_date"] = yxqx
 	}
 	if barq!="" && timeReg.MatchString(barq){
-		data["approvedate"] = barq
+		data["approve_date"] = barq
 	}
 
 	data["regnum"] = qu.ObjToString(tmp["reg_no"])
@@ -54,8 +54,8 @@ func dealWithSCX (tmp map[string]interface{}) map[string]interface{}{
 	data["type"] = type_str
 	data["address"] = qu.ObjToString(tmp["product_address"])
 	data["scope"] = qu.ObjToString(tmp["product_range"])
-	data["approvedepart"] = qu.ObjToString(tmp["badw"])
-	data["companyname"] = qu.ObjToString(tmp["company"])
+	data["approve_depart"] = qu.ObjToString(tmp["badw"])
+	data["company_name"] = qu.ObjToString(tmp["company"])
 	data["responsible_person"] = qu.ObjToString(tmp["responsible_persons"])
 	data["legal_person"] = qu.ObjToString(tmp["legal_person"])
 	data["residence"] = qu.ObjToString(tmp["address"])
@@ -68,10 +68,10 @@ func dealWithJYX (tmp map[string]interface{}) map[string]interface{}{
 	yxqx := qu.ObjToString(tmp["yxqx"])
 	barq := qu.ObjToString(tmp["barq"])
 	if yxqx!="" && timeReg.MatchString(yxqx) {
-		data["validitydate"] = yxqx
+		data["validity_date"] = yxqx
 	}
 	if barq!="" && timeReg.MatchString(barq){
-		data["approvedate"] = barq
+		data["approve_date"] = barq
 	}
 
 	data["regnum"] = qu.ObjToString(tmp["reg_no"])
@@ -80,13 +80,13 @@ func dealWithJYX (tmp map[string]interface{}) map[string]interface{}{
 	data["address"] = qu.ObjToString(tmp["business_address"])
 	data["scope"] = qu.ObjToString(tmp["business_range"])
 	data["business_type"] = qu.ObjToString(tmp["business_mode"])
-	data["approvedepart"] = qu.ObjToString(tmp["badw"])
-	data["websitename"] = ""
+	data["approve_depart"] = qu.ObjToString(tmp["badw"])
+	data["website_name"] = ""
 	data["website"] = ""
-	data["platformname"] = ""
-	data["clientname"] = ""
-	data["storageroom"] = qu.ObjToString(tmp["storehouse_address"])
-	data["companyname"] = qu.ObjToString(tmp["company"])
+	data["platform_name"] = ""
+	data["client_name"] = ""
+	data["storage_room"] = qu.ObjToString(tmp["storehouse_address"])
+	data["company_name"] = qu.ObjToString(tmp["company"])
 	data["responsible_person"] = qu.ObjToString(tmp["legal_person"])
 	data["legal_person"] = qu.ObjToString(tmp["responsible_persons"])
 	data["residence"] = qu.ObjToString(tmp["address"])

+ 219 - 0
process_ medical/src/medical_product.go

@@ -0,0 +1,219 @@
+package main
+
+import (
+	log "github.com/donnie4w/go-logger/logger"
+	qu "qfw/util"
+	"strings"
+)
+var class_all_data = map[string]*ClassAll{}
+var class_data = map[string]string{} //记录四级分类
+
+type ClassAll struct {
+	Name string
+	Code string
+	Level string
+	Pcode string
+}
+
+
+func initClass() {
+	sess := save_mgo.GetMgoConn()
+	defer save_mgo.DestoryMongoConn(sess)
+	q,total:=map[string]interface{}{},0
+	it := sess.DB(save_mgo.DbName).C("zktest_mysql_ylqxclass").Find(&q).Iter()
+	for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
+		name := qu.ObjToString(tmp["name"])
+		code:=qu.ObjToString(tmp["code"])
+		level:=qu.ObjToString(tmp["level"])
+		pcode:=qu.ObjToString(tmp["pcode"])
+		class_all_data[code] = &ClassAll{
+			name,
+			code,
+			level,
+			pcode,
+		}
+		if level=="4" {
+			class_data[name] = code
+		}
+		tmp = make(map[string]interface{})
+	}
+	log.Debug("init class 完毕~",len(class_all_data),len(class_data))
+}
+
+
+
+//保存-mysql
+func productSaveMysql()  {
+	sess := save_mgo.GetMgoConn()
+	defer save_mgo.DestoryMongoConn(sess)
+	q,total:=map[string]interface{}{},0
+	it := sess.DB(save_mgo.DbName).C("zktesy_mysql_product_info").Find(&q).Iter()
+	for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
+		if total%10000==0 {
+			log.Debug("curent index ",total)
+		}
+		delete(tmp,"_id")
+		MysqlTool.Insert("f_product",tmp)
+		tmp = make(map[string]interface{})
+	}
+
+	log.Debug("is over ",total)
+}
+
+
+//导出-产品信息
+func exportProductMgo() {
+
+	initClass() //内存初始化-分类
+
+	sess := save_mgo.GetMgoConn()
+	defer save_mgo.DestoryMongoConn(sess)
+	q,total:=map[string]interface{}{},0
+	it := sess.DB(save_mgo.DbName).C("nmpa_product").Find(&q).Iter()
+	for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
+		if total%10000==0 {
+			log.Debug("curent index ",total)
+		}
+		reg_company := qu.ObjToString(tmp["reg_company"])
+		if reg_company!="" {
+			data := buildInsertData(tmp)
+			if data!=nil && len(data)>2 {
+				save_mgo.Save("zktest_mysql_product_info",data)
+			}
+		}
+		tmp = make(map[string]interface{})
+	}
+	log.Debug("is over ",total)
+}
+
+
+func buildInsertData(tmp map[string]interface{}) map[string]interface{}{
+	data:=map[string]interface{}{}
+	company_name :=qu.ObjToString(tmp["reg_company"])
+	c_data := save_mgo.FindOne("zktest_mysql_company_info", map[string]interface{}{
+		"company_name":company_name,
+	})
+	if c_data!=nil && len(c_data)>2 {
+		data["company_id"] = qu.ObjToString(c_data["company_id"])
+		data["business_type"] = qu.ObjToString(c_data["business_type"])
+	}else {
+		data["company_id"] = ""
+		data["business_type"] = ""
+	}
+
+	data["regno"] = qu.ObjToString(tmp["reg_no"])
+	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"
+	}else if p_class=="进口"{
+		data["make_country"] = "2"
+	}else {
+		data["make_country"] = ""
+	}
+
+	data["agent_name"] = qu.ObjToString(tmp["agent_name"])
+	data["agent_address"] = qu.ObjToString(tmp["agent_address"])
+	data["model"] = qu.ObjToString(tmp["model"])
+	data["main_part"] = qu.ObjToString(tmp["main_component"])
+	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"])
+
+	data["changes"] = qu.ObjToString(tmp["changes"])
+	type_str := qu.ObjToString(tmp["type"])
+
+	approve_date,validity_date := "",""
+	validity_date = qu.ObjToString(tmp["yxqz"])
+	if type_str == "注册" {
+		data["regist_type"] = "1"
+		approve_date = qu.ObjToString(tmp["pzrq"])
+	}else if type_str == "备案" {
+		data["regist_type"] = "2"
+		approve_date = qu.ObjToString(tmp["barq"])
+	}else {
+		data["regist_type"] = ""
+	}
+
+
+	//处理-日期-格式-多变
+	if approve_date != "" {
+		approve_date_new := timeStandata(approve_date)
+		if approve_date_new!="" {
+			data["approve_date"] = approve_date_new
+		}
+	}
+
+	if validity_date != "" {
+		validity_date_new := timeStandata(validity_date)
+		if validity_date_new!="" {
+			data["validity_date"] = validity_date_new
+		}
+	}
+
+	data["source_channel"] = qu.ObjToString(tmp["jy_class"])
+	class := qu.ObjToString(tmp["class"])
+	if class == "/" {
+		class = "'"
+	}
+
+	product_name := qu.ObjToString(tmp["product_name"])
+
+	data["manage_type"] = qu.ObjToString(tmp["class"])
+	data["product_name"] = product_name
+
+
+	//product_class1 2 3 4   - 比对数据
+	//先匹配4级结构
+	if class_data[product_name]=="" {
+		data["product_class1"] = qu.ObjToString(tmp["product_class"])
+		data["product_class2"] = qu.ObjToString(tmp["product_class_1"])
+		data["product_class3"] = qu.ObjToString(tmp["product_class_2"])
+		data["product_class4"] = ""
+	}else {
+		class_code := class_data[product_name]
+		data["product_class1"] = class_all_data[class_code[:2]].Name
+		data["product_class2"] = class_all_data[class_code[:4]].Name
+		data["product_class3"] = class_all_data[class_code[:6]].Name
+		data["product_class4"] = product_name
+	}
+
+
+	return data
+}
+
+
+
+func timeStandata(str string)string{
+	new_str := ""
+	str = strings.ReplaceAll(str,".","-")
+	if !timeReg1.MatchString(str) {
+		return ""
+	}
+	strArr := strings.Split(str,"-")
+	if len(strArr)!=3 {
+		return ""
+	}
+	year :=strArr[0]
+	month :=strArr[1]
+	day :=strArr[2]
+	if len(month)==1{
+		month = "0"+month
+	}
+	if len(day)==1 {
+		day = "0"+day
+	}
+	new_str = year+"-"+month+"-"+day
+	if !timeReg.MatchString(new_str) {
+		return ""
+	}
+	return new_str
+}

+ 37 - 1
process_ medical/src/medical_vdata.go

@@ -19,7 +19,7 @@ func v_ylqxclass() {
 	sess := save_mgo.GetMgoConn()
 	defer save_mgo.DestoryMongoConn(sess)
 	q,total:=map[string]interface{}{},0
-	it := sess.DB(save_mgo.DbName).C("mysql_ylqxclass").Sort("_id").Find(&q).Iter()
+	it := sess.DB(save_mgo.DbName).C("zktest_mysql_ylqxclass").Sort("_id").Find(&q).Iter()
 	for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
 		if total%1000==0 {
 			log.Debug("curent index ",total)
@@ -210,3 +210,39 @@ func dealSortStr(index int) string {
 	}
 	return code
 }
+
+
+
+
+
+
+
+
+
+func testYLQXClassRepair() {
+
+	data:= map[string]string{}
+
+	sess := save_mgo.GetMgoConn()
+	defer save_mgo.DestoryMongoConn(sess)
+	q,total:=map[string]interface{}{},0
+	ok1,ok2:=0,0
+	it := sess.DB(save_mgo.DbName).C("zktest_mysql_ylqxclass").Find(&q).Iter()
+	for tmp := make(map[string]interface{}); it.Next(&tmp);total++{
+		if total%10000==0 {
+			log.Debug("curent index ",total,ok1,ok2)
+		}
+		tmpid:=BsonTOStringId(tmp["_id"])
+		key:= qu.ObjToString(tmp["name"])+"~"+qu.ObjToString(tmp["level"])+"~"+qu.ObjToString(tmp["pcode"])
+
+		if data[key]=="" {
+			ok1++
+			data[key] = tmpid
+		}else {
+			ok2++
+			save_mgo.DeleteById("zktest_mysql_ylqxclass",tmpid)
+		}
+		tmp = make(map[string]interface{})
+	}
+	log.Debug("is over ",total,ok1,ok2)
+}