|
@@ -1,4 +1,4 @@
|
|
-package main
|
|
|
|
|
|
+package class
|
|
|
|
|
|
import (
|
|
import (
|
|
log "github.com/donnie4w/go-logger/logger"
|
|
log "github.com/donnie4w/go-logger/logger"
|
|
@@ -7,10 +7,20 @@ import (
|
|
"regexp"
|
|
"regexp"
|
|
"strings"
|
|
"strings"
|
|
"time"
|
|
"time"
|
|
|
|
+ ul "util"
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+func StartDealWithProductClassInfo() {
|
|
|
|
+ //拆分合并产品与企业表
|
|
|
|
+ //splitMergeMedicalInfo("nmpa_ylqx_2022")
|
|
|
|
+ //splitMergeMedicalInfo("nmpa_ylqx_2023")
|
|
|
|
+
|
|
|
|
+ //确认医疗分类,分类代码
|
|
|
|
+ //confirmYlqxInfoClass()
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
func confirmYlqxInfoClass() {
|
|
func confirmYlqxInfoClass() {
|
|
- loadYlqxInfo()
|
|
|
|
confirmFirst()
|
|
confirmFirst()
|
|
confirmSecond()
|
|
confirmSecond()
|
|
confirmThird()
|
|
confirmThird()
|
|
@@ -25,7 +35,7 @@ func confirmYlqxInfoClass() {
|
|
//医疗分类打标记
|
|
//医疗分类打标记
|
|
func confirmFirst() {
|
|
func confirmFirst() {
|
|
isok := 0
|
|
isok := 0
|
|
- dataArr, _ := Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
|
|
|
|
+ dataArr, _ := ul.Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
"product_name": 1,
|
|
"product_name": 1,
|
|
})
|
|
})
|
|
for _, v := range dataArr {
|
|
for _, v := range dataArr {
|
|
@@ -33,13 +43,13 @@ func confirmFirst() {
|
|
if product_class_1 != "" {
|
|
if product_class_1 != "" {
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
- tmpid := BsonTOStringId(v["_id"])
|
|
|
|
|
|
+ tmpid := ul.BsonTOStringId(v["_id"])
|
|
product_name := qu.ObjToString(v["product_name"])
|
|
product_name := qu.ObjToString(v["product_name"])
|
|
- if code := YlqxNameCode[product_name]; code != "" {
|
|
|
|
|
|
+ if code := ul.YlqxNameCode[product_name]; code != "" {
|
|
isok++
|
|
isok++
|
|
_, update := calculationYlqxCode(code)
|
|
_, update := calculationYlqxCode(code)
|
|
update["isFlag"] = flagTagLog("", "1")
|
|
update["isFlag"] = flagTagLog("", "1")
|
|
- Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
|
|
|
|
+ ul.Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
"$set": update,
|
|
"$set": update,
|
|
})
|
|
})
|
|
}
|
|
}
|
|
@@ -50,14 +60,14 @@ func confirmFirst() {
|
|
func confirmSecond() {
|
|
func confirmSecond() {
|
|
codeReg := regexp.MustCompile("20\\d{3}(\\d{2})")
|
|
codeReg := regexp.MustCompile("20\\d{3}(\\d{2})")
|
|
isok := 0
|
|
isok := 0
|
|
- dataArr, _ := Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
|
|
|
|
+ dataArr, _ := ul.Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
"reg_no": 1,
|
|
"reg_no": 1,
|
|
"classify": 1,
|
|
"classify": 1,
|
|
"product_class_code": 1,
|
|
"product_class_code": 1,
|
|
"isFlag": 1,
|
|
"isFlag": 1,
|
|
})
|
|
})
|
|
for _, v := range dataArr {
|
|
for _, v := range dataArr {
|
|
- tmpid := BsonTOStringId(v["_id"])
|
|
|
|
|
|
+ tmpid := ul.BsonTOStringId(v["_id"])
|
|
product_class_code := qu.ObjToString(v["product_class_code"])
|
|
product_class_code := qu.ObjToString(v["product_class_code"])
|
|
if product_class_code != "" {
|
|
if product_class_code != "" {
|
|
continue
|
|
continue
|
|
@@ -68,13 +78,13 @@ func confirmSecond() {
|
|
code_str := codeReg.FindString(reg_no)
|
|
code_str := codeReg.FindString(reg_no)
|
|
if code_str != "" {
|
|
if code_str != "" {
|
|
code := codeReg.ReplaceAllString(code_str, "${1}")
|
|
code := codeReg.ReplaceAllString(code_str, "${1}")
|
|
- name := codeRelation[code]
|
|
|
|
|
|
+ name := ul.CodeRelation[code]
|
|
if name != "" && code != "" {
|
|
if name != "" && code != "" {
|
|
isok++
|
|
isok++
|
|
- Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
|
|
|
|
+ ul.Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
"$set": bson.M{
|
|
"$set": bson.M{
|
|
"product_class_1": name,
|
|
"product_class_1": name,
|
|
- "product_class_code": YlqxNameCode[name],
|
|
|
|
|
|
+ "product_class_code": ul.YlqxNameCode[name],
|
|
"isFlag": flagTagLog(qu.ObjToString(v["isFlag"]), "2"),
|
|
"isFlag": flagTagLog(qu.ObjToString(v["isFlag"]), "2"),
|
|
},
|
|
},
|
|
})
|
|
})
|
|
@@ -87,17 +97,17 @@ func confirmSecond() {
|
|
}
|
|
}
|
|
func confirmThird() {
|
|
func confirmThird() {
|
|
isok := 0
|
|
isok := 0
|
|
- dataArr, _ := Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
|
|
|
|
+ dataArr, _ := ul.Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
"product_name": 1,
|
|
"product_name": 1,
|
|
"product_class_1": 1,
|
|
"product_class_1": 1,
|
|
"isFlag": 1,
|
|
"isFlag": 1,
|
|
})
|
|
})
|
|
for _, v := range dataArr {
|
|
for _, v := range dataArr {
|
|
- tmpid := BsonTOStringId(v["_id"])
|
|
|
|
|
|
+ tmpid := ul.BsonTOStringId(v["_id"])
|
|
product_name := qu.ObjToString(v["product_name"])
|
|
product_name := qu.ObjToString(v["product_name"])
|
|
product_class_1 := qu.ObjToString(v["product_class_1"])
|
|
product_class_1 := qu.ObjToString(v["product_class_1"])
|
|
if product_class_1 == "" && strings.Contains(product_name, "试剂") {
|
|
if product_class_1 == "" && strings.Contains(product_name, "试剂") {
|
|
- Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
|
|
|
|
+ ul.Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
"$set": bson.M{
|
|
"$set": bson.M{
|
|
"product_class_1": "体外诊断试剂",
|
|
"product_class_1": "体外诊断试剂",
|
|
"product_class_code": "23",
|
|
"product_class_code": "23",
|
|
@@ -111,7 +121,7 @@ func confirmThird() {
|
|
}
|
|
}
|
|
func confirmFourth() {
|
|
func confirmFourth() {
|
|
isok := 0
|
|
isok := 0
|
|
- dataArr, _ := Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
|
|
|
|
+ dataArr, _ := ul.Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
"reg_company": 1,
|
|
"reg_company": 1,
|
|
"product_name": 1,
|
|
"product_name": 1,
|
|
"product_class_1": 1,
|
|
"product_class_1": 1,
|
|
@@ -120,7 +130,7 @@ func confirmFourth() {
|
|
"isFlag": 1,
|
|
"isFlag": 1,
|
|
})
|
|
})
|
|
for _, v := range dataArr {
|
|
for _, v := range dataArr {
|
|
- tmpid := BsonTOStringId(v["_id"])
|
|
|
|
|
|
+ tmpid := ul.BsonTOStringId(v["_id"])
|
|
old_name := qu.ObjToString(v["product_name"])
|
|
old_name := qu.ObjToString(v["product_name"])
|
|
old_class_code := qu.ObjToString(v["product_class_code"])
|
|
old_class_code := qu.ObjToString(v["product_class_code"])
|
|
reg_company := qu.ObjToString(v["reg_company"])
|
|
reg_company := qu.ObjToString(v["reg_company"])
|
|
@@ -136,7 +146,7 @@ func confirmFourth() {
|
|
isok++
|
|
isok++
|
|
res["product_class_code"] = code
|
|
res["product_class_code"] = code
|
|
res["isFlag"] = flagTagLog(qu.ObjToString(v["isFlag"]), "4")
|
|
res["isFlag"] = flagTagLog(qu.ObjToString(v["isFlag"]), "4")
|
|
- Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
|
|
|
|
+ ul.Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
"$set": res,
|
|
"$set": res,
|
|
})
|
|
})
|
|
}
|
|
}
|
|
@@ -148,7 +158,7 @@ func confirmFourth() {
|
|
func confirmFifth() {
|
|
func confirmFifth() {
|
|
temp := loadFifthInfo()
|
|
temp := loadFifthInfo()
|
|
isok := 0
|
|
isok := 0
|
|
- dataArr, _ := Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
|
|
|
|
+ dataArr, _ := ul.Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
"product_name": 1,
|
|
"product_name": 1,
|
|
"product_class_1": 1,
|
|
"product_class_1": 1,
|
|
"product_class_2": 1,
|
|
"product_class_2": 1,
|
|
@@ -156,7 +166,7 @@ func confirmFifth() {
|
|
"isFlag": 1,
|
|
"isFlag": 1,
|
|
})
|
|
})
|
|
for _, v := range dataArr {
|
|
for _, v := range dataArr {
|
|
- tmpid := BsonTOStringId(v["_id"])
|
|
|
|
|
|
+ tmpid := ul.BsonTOStringId(v["_id"])
|
|
old_name := qu.ObjToString(v["product_name"])
|
|
old_name := qu.ObjToString(v["product_name"])
|
|
old_class_code := qu.ObjToString(v["product_class_code"])
|
|
old_class_code := qu.ObjToString(v["product_class_code"])
|
|
old_class_1 := qu.ObjToString(v["product_class_1"])
|
|
old_class_1 := qu.ObjToString(v["product_class_1"])
|
|
@@ -165,12 +175,12 @@ func confirmFifth() {
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
if name := temp[old_name]; name != "" {
|
|
if name := temp[old_name]; name != "" {
|
|
- if code := YlqxNameCode[name]; code != "" {
|
|
|
|
|
|
+ if code := ul.YlqxNameCode[name]; code != "" {
|
|
b, res := calculationYlqxCode(code)
|
|
b, res := calculationYlqxCode(code)
|
|
if b && (old_class_1 == "" || (qu.ObjToString(res["product_class_1"]) == old_class_1 && len(code) > len(old_class_code))) {
|
|
if b && (old_class_1 == "" || (qu.ObjToString(res["product_class_1"]) == old_class_1 && len(code) > len(old_class_code))) {
|
|
isok++
|
|
isok++
|
|
res["isFlag"] = flagTagLog(qu.ObjToString(v["isFlag"]), "5")
|
|
res["isFlag"] = flagTagLog(qu.ObjToString(v["isFlag"]), "5")
|
|
- Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
|
|
|
|
+ ul.Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
"$set": res,
|
|
"$set": res,
|
|
})
|
|
})
|
|
}
|
|
}
|
|
@@ -183,7 +193,7 @@ func confirmFifth() {
|
|
}
|
|
}
|
|
func confirmSixth() {
|
|
func confirmSixth() {
|
|
isok := 0
|
|
isok := 0
|
|
- dataArr, _ := Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
|
|
|
|
+ dataArr, _ := ul.Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
"product_name": 1,
|
|
"product_name": 1,
|
|
"product_class_1": 1,
|
|
"product_class_1": 1,
|
|
"product_class_2": 1,
|
|
"product_class_2": 1,
|
|
@@ -191,7 +201,7 @@ func confirmSixth() {
|
|
"isFlag": 1,
|
|
"isFlag": 1,
|
|
})
|
|
})
|
|
for _, v := range dataArr {
|
|
for _, v := range dataArr {
|
|
- tmpid := BsonTOStringId(v["_id"])
|
|
|
|
|
|
+ tmpid := ul.BsonTOStringId(v["_id"])
|
|
old_name := qu.ObjToString(v["product_name"])
|
|
old_name := qu.ObjToString(v["product_name"])
|
|
old_class_code := qu.ObjToString(v["product_class_code"])
|
|
old_class_code := qu.ObjToString(v["product_class_code"])
|
|
old_class_1 := qu.ObjToString(v["product_class_1"])
|
|
old_class_1 := qu.ObjToString(v["product_class_1"])
|
|
@@ -200,12 +210,12 @@ func confirmSixth() {
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
new_name := cleanProductName(old_name)
|
|
new_name := cleanProductName(old_name)
|
|
- if code := YlqxNameCode[new_name]; code != "" {
|
|
|
|
|
|
+ if code := ul.YlqxNameCode[new_name]; code != "" {
|
|
b, res := calculationYlqxCode(code)
|
|
b, res := calculationYlqxCode(code)
|
|
if b && (old_class_1 == "" || (qu.ObjToString(res["product_class_1"]) == old_class_1 && len(code) > len(old_class_code))) {
|
|
if b && (old_class_1 == "" || (qu.ObjToString(res["product_class_1"]) == old_class_1 && len(code) > len(old_class_code))) {
|
|
isok++
|
|
isok++
|
|
res["isFlag"] = flagTagLog(qu.ObjToString(v["isFlag"]), "6")
|
|
res["isFlag"] = flagTagLog(qu.ObjToString(v["isFlag"]), "6")
|
|
- Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
|
|
|
|
+ ul.Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
"$set": res,
|
|
"$set": res,
|
|
})
|
|
})
|
|
}
|
|
}
|
|
@@ -216,14 +226,14 @@ func confirmSixth() {
|
|
}
|
|
}
|
|
func confirmSeventh() {
|
|
func confirmSeventh() {
|
|
isok := 0
|
|
isok := 0
|
|
- dataArr, _ := Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
|
|
|
|
+ dataArr, _ := ul.Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
"product_name": 1,
|
|
"product_name": 1,
|
|
"product_class_1": 1,
|
|
"product_class_1": 1,
|
|
"product_class_2": 1,
|
|
"product_class_2": 1,
|
|
"isFlag": 1,
|
|
"isFlag": 1,
|
|
})
|
|
})
|
|
for _, v := range dataArr {
|
|
for _, v := range dataArr {
|
|
- tmpid := BsonTOStringId(v["_id"])
|
|
|
|
|
|
+ tmpid := ul.BsonTOStringId(v["_id"])
|
|
old_name := qu.ObjToString(v["product_name"])
|
|
old_name := qu.ObjToString(v["product_name"])
|
|
old_class_code := qu.ObjToString(v["product_class_code"])
|
|
old_class_code := qu.ObjToString(v["product_class_code"])
|
|
old_class_1 := qu.ObjToString(v["product_class_1"])
|
|
old_class_1 := qu.ObjToString(v["product_class_1"])
|
|
@@ -237,12 +247,12 @@ func confirmSeventh() {
|
|
matchArr := []string{}
|
|
matchArr := []string{}
|
|
logArr := []map[string]interface{}{}
|
|
logArr := []map[string]interface{}{}
|
|
if new_name != "" {
|
|
if new_name != "" {
|
|
- for k1, v1 := range YlqxNameCode {
|
|
|
|
|
|
+ for k1, v1 := range ul.YlqxNameCode {
|
|
if (new_name == "医用退热凝胶" && k1 == "凝胶") || k1 == "蜡" {
|
|
if (new_name == "医用退热凝胶" && k1 == "凝胶") || k1 == "蜡" {
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
if strings.Contains(new_name, k1) || strings.Contains(k1, new_name) {
|
|
if strings.Contains(new_name, k1) || strings.Contains(k1, new_name) {
|
|
- b, res := calculationYlqxCode(YlqxNameCode[k1])
|
|
|
|
|
|
+ b, res := calculationYlqxCode(ul.YlqxNameCode[k1])
|
|
if b && checkYlqxInfoRight(res, old_class_1, old_name) {
|
|
if b && checkYlqxInfoRight(res, old_class_1, old_name) {
|
|
logArr = append(logArr, map[string]interface{}{
|
|
logArr = append(logArr, map[string]interface{}{
|
|
"name": k1,
|
|
"name": k1,
|
|
@@ -250,7 +260,7 @@ func confirmSeventh() {
|
|
"class": res,
|
|
"class": res,
|
|
})
|
|
})
|
|
resArr = append(resArr, res)
|
|
resArr = append(resArr, res)
|
|
- codeArr = append(codeArr, YlqxNameCode[k1])
|
|
|
|
|
|
+ codeArr = append(codeArr, ul.YlqxNameCode[k1])
|
|
matchArr = append(matchArr, k1)
|
|
matchArr = append(matchArr, k1)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -264,7 +274,7 @@ func confirmSeventh() {
|
|
if b && res != nil && tmpid != "" && len(code) > len(old_class_code) {
|
|
if b && res != nil && tmpid != "" && len(code) > len(old_class_code) {
|
|
isok++
|
|
isok++
|
|
res["isFlag"] = flagTagLog(qu.ObjToString(v["isFlag"]), "7")
|
|
res["isFlag"] = flagTagLog(qu.ObjToString(v["isFlag"]), "7")
|
|
- Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
|
|
|
|
+ ul.Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
"$set": res,
|
|
"$set": res,
|
|
})
|
|
})
|
|
}
|
|
}
|
|
@@ -276,7 +286,7 @@ func confirmSeventh() {
|
|
func confirmEighth() {
|
|
func confirmEighth() {
|
|
loadLastClassInfo()
|
|
loadLastClassInfo()
|
|
isok := 0
|
|
isok := 0
|
|
- dataArr, _ := Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
|
|
|
|
+ dataArr, _ := ul.Save_Mgo.Find("nmpa_product_new", nil, nil, bson.M{
|
|
"product_name": 1,
|
|
"product_name": 1,
|
|
"product_class_1": 1,
|
|
"product_class_1": 1,
|
|
"product_class_2": 1,
|
|
"product_class_2": 1,
|
|
@@ -284,18 +294,18 @@ func confirmEighth() {
|
|
"isFlag": 1,
|
|
"isFlag": 1,
|
|
})
|
|
})
|
|
for _, v := range dataArr {
|
|
for _, v := range dataArr {
|
|
- tmpid := BsonTOStringId(v["_id"])
|
|
|
|
|
|
+ tmpid := ul.BsonTOStringId(v["_id"])
|
|
product_name := qu.ObjToString(v["product_name"])
|
|
product_name := qu.ObjToString(v["product_name"])
|
|
product_class_code := qu.ObjToString(v["product_class_code"])
|
|
product_class_code := qu.ObjToString(v["product_class_code"])
|
|
product_class_1 := qu.ObjToString(v["product_class_1"])
|
|
product_class_1 := qu.ObjToString(v["product_class_1"])
|
|
product_class_2 := qu.ObjToString(v["product_class_2"])
|
|
product_class_2 := qu.ObjToString(v["product_class_2"])
|
|
- res := LastProductInfo[product_name]
|
|
|
|
- if product_class_2 == "" && LastProductInfo[product_name] != nil {
|
|
|
|
|
|
+ res := ul.LastProductInfo[product_name]
|
|
|
|
+ if product_class_2 == "" && ul.LastProductInfo[product_name] != nil {
|
|
res_class_1 := res["product_class_1"]
|
|
res_class_1 := res["product_class_1"]
|
|
res_class_code := res["product_class_code"]
|
|
res_class_code := res["product_class_code"]
|
|
if (product_class_1 == res_class_1 || product_class_1 == "") && len(res_class_code) > len(product_class_code) {
|
|
if (product_class_1 == res_class_1 || product_class_1 == "") && len(res_class_code) > len(product_class_code) {
|
|
isok++
|
|
isok++
|
|
- Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
|
|
|
|
+ ul.Save_Mgo.UpdateById("nmpa_product_new", tmpid, map[string]interface{}{
|
|
"$set": map[string]interface{}{
|
|
"$set": map[string]interface{}{
|
|
"isFlag": flagTagLog(qu.ObjToString(v["isFlag"]), "8"),
|
|
"isFlag": flagTagLog(qu.ObjToString(v["isFlag"]), "8"),
|
|
"product_class_1": qu.ObjToString(res["product_class_1"]),
|
|
"product_class_1": qu.ObjToString(res["product_class_1"]),
|