|
@@ -9,28 +9,60 @@ import (
|
|
|
|
|
|
var (
|
|
|
NameLevelPcode = map[string]map[string]string{}
|
|
|
+ CodeClassData = map[string]map[string]string{}
|
|
|
+ NameClassData = map[string]string{}
|
|
|
)
|
|
|
|
|
|
-//修复全量表数 新版本分类目录
|
|
|
-func RpairProductAllCodeName() {
|
|
|
- //构建分类目录
|
|
|
- datas := *class.MysqlMedicalTool.Find(class.V_Code_Productclass, nil, "", "", -1, -1)
|
|
|
- for _, v := range datas {
|
|
|
- name := qu.ObjToString(v["name"])
|
|
|
- level := fmt.Sprintf("%d", v["level"])
|
|
|
- pcode := qu.ObjToString(v["pcode"])
|
|
|
- code := qu.ObjToString(v["code"])
|
|
|
-
|
|
|
- key := name + "~" + level + "~" + pcode
|
|
|
- if NameLevelPcode[key] == nil {
|
|
|
- NameLevelPcode[key] = map[string]string{
|
|
|
- "name": name,
|
|
|
- "code": code,
|
|
|
+//修复未分类产品信息
|
|
|
+func RepairUnClassProduct() {
|
|
|
+ initRepairVCodeData()
|
|
|
+ sess := class.Save_Mgo.GetMgoConn()
|
|
|
+ defer class.Save_Mgo.DestoryMongoConn(sess)
|
|
|
+ q := map[string]interface{}{
|
|
|
+ "product_code": "",
|
|
|
+ }
|
|
|
+ it := sess.DB(class.Save_Mgo.DbName).C(class.S_Product_Coll).Find(&q).Select(map[string]interface{}{
|
|
|
+ "product_name": 1,
|
|
|
+ "make_country": 1,
|
|
|
+ }).Sort("_id").Iter()
|
|
|
+ total, isok := 0, 0
|
|
|
+ for tmp := make(map[string]interface{}); it.Next(&tmp); total++ {
|
|
|
+ if total%10000 == 0 {
|
|
|
+ log.Debug("cur index ", total, "~", isok)
|
|
|
+ }
|
|
|
+ product_name := qu.ObjToString(tmp["product_name"])
|
|
|
+ make_country := qu.ObjToString(tmp["make_country"])
|
|
|
+ code := NameClassData[product_name]
|
|
|
+ tmpid := class.BsonTOStringId(tmp["_id"])
|
|
|
+ if code != "" {
|
|
|
+ isok++
|
|
|
+ update := CodeClassData[code]
|
|
|
+ update["product_code"] = code
|
|
|
+ class.Save_Mgo.UpdateById(class.S_Product_Coll, tmpid, map[string]interface{}{
|
|
|
+ "$set": update,
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ //是否进口
|
|
|
+ if make_country == "2" {
|
|
|
+ isok++
|
|
|
+ update := map[string]interface{}{}
|
|
|
+ update["product_class1"] = "进口器械"
|
|
|
+ update["product_code"] = "99"
|
|
|
+ class.Save_Mgo.UpdateById(class.S_Product_Coll, tmpid, map[string]interface{}{
|
|
|
+ "$set": update,
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ tmp = make(map[string]interface{})
|
|
|
}
|
|
|
- log.Debug("分类目录准备~", len(NameLevelPcode))
|
|
|
|
|
|
+ log.Debug("is over ", total, "~", isok)
|
|
|
+}
|
|
|
+
|
|
|
+//修复全量表数 新版本分类目录
|
|
|
+func RepairProductAllCodeName() {
|
|
|
+ initRepairVCodeData()
|
|
|
sess := class.Save_Mgo.GetMgoConn()
|
|
|
defer class.Save_Mgo.DestoryMongoConn(sess)
|
|
|
q := map[string]interface{}{}
|
|
@@ -106,7 +138,6 @@ func RpairProductAllCodeName() {
|
|
|
|
|
|
log.Debug("is over ", total, "~", is_err)
|
|
|
}
|
|
|
-
|
|
|
func acquireMedicalClassData(name string, level string, pcode string) (string, string) {
|
|
|
new_name, new_code := "", ""
|
|
|
key := name + "~" + level + "~" + pcode
|
|
@@ -117,3 +148,39 @@ func acquireMedicalClassData(name string, level string, pcode string) (string, s
|
|
|
}
|
|
|
return new_name, new_code
|
|
|
}
|
|
|
+func initRepairVCodeData() {
|
|
|
+ //构建分类目录
|
|
|
+ datas := *class.MysqlMedicalTool.Find(class.V_Code_Productclass, nil, "", "", -1, -1)
|
|
|
+ for _, v := range datas {
|
|
|
+ name := qu.ObjToString(v["name"])
|
|
|
+ level := fmt.Sprintf("%d", v["level"])
|
|
|
+ pcode := qu.ObjToString(v["pcode"])
|
|
|
+ code := qu.ObjToString(v["code"])
|
|
|
+ key := name + "~" + level + "~" + pcode
|
|
|
+ if NameLevelPcode[key] == nil {
|
|
|
+ NameLevelPcode[key] = map[string]string{
|
|
|
+ "name": name,
|
|
|
+ "code": code,
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ dict := CodeClassData[code]
|
|
|
+ if pcode != "" {
|
|
|
+ dict = CodeClassData[pcode]
|
|
|
+ if dict == nil {
|
|
|
+ log.Debug("顺序错误~")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ new_dict := map[string]string{}
|
|
|
+ for k, v := range dict {
|
|
|
+ new_dict[k] = v
|
|
|
+ }
|
|
|
+ new_key := "product_class" + level
|
|
|
+ new_dict[new_key] = name
|
|
|
+ CodeClassData[code] = new_dict
|
|
|
+
|
|
|
+ NameClassData[name] = code
|
|
|
+
|
|
|
+ }
|
|
|
+ log.Debug("分类目录准备~", len(NameLevelPcode), len(CodeClassData), len(NameClassData))
|
|
|
+}
|