소스 검색

标讯数仓...重构...备份

zhengkun 1 년 전
부모
커밋
6b168c3cee

+ 38 - 49
data_mgo_to_tidb/bidding.go → data_mgo_to_tidb/bidding/bidding.go

@@ -1,7 +1,8 @@
-package main
+package bidding
 
 import (
 	"data_tidb/config"
+	u "data_tidb/util"
 	"fmt"
 	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
 	"jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
@@ -19,8 +20,8 @@ var (
 )
 
 func TaskBidding() {
-	sess := MongoB.GetMgoConn()
-	defer MongoB.DestoryMongoConn(sess)
+	sess := u.MongoB.GetMgoConn()
+	defer u.MongoB.DestoryMongoConn(sess)
 	ch := make(chan bool, 10)
 	wg := &sync.WaitGroup{}
 	q := map[string]interface{}{
@@ -43,12 +44,12 @@ func TaskBidding() {
 				wg.Done()
 			}()
 			if util.IntAll(tmp["extracttype"]) != -1 {
-				taskBase(tmp)   //基础标讯数据
-				taskExpand(tmp) //扩展数据
-				//taskDetail(tmp)  //正文信息
-				//taskAtts(tmp)    //附件信息
-				//taskIntent(tmp)  //采购意向
-				//taskPackage(tmp) //分包
+				taskBase(tmp)    //基础标讯数据
+				taskExpand(tmp)  //扩展数据
+				taskDetail(tmp)  //正文信息
+				taskAtts(tmp)    //附件信息
+				taskIntent(tmp)  //采购意向
+				taskPackage(tmp) //分包
 			}
 		}(tmp)
 		tmp = make(map[string]interface{})
@@ -63,54 +64,42 @@ func taskBase(tmp map[string]interface{}) {
 	info["s_info_id"] = tmpid
 	area, city, district := util.ObjToString(tmp["area"]), util.ObjToString(tmp["city"]), util.ObjToString(tmp["district"])
 	if area != "" {
-		info["area_code"] = AreaCode[area]
+		info["s_area_code"] = u.AreaCode[area]
 		if city != "" {
-			info["city_code"] = AreaCode[area+","+city]
+			info["s_city_code"] = u.AreaCode[area+","+city]
 			if district != "" {
-				info["district_code"] = AreaCode[area+","+city+","+district]
+				info["s_district_code"] = u.AreaCode[area+","+city+","+district]
 			}
 		}
 	}
 	if toptype := util.ObjToString(tmp["toptype"]); toptype != "" {
-		info["s_toptype_code"] = TopTypeCode["toptype"]
+		info["s_toptype_code"] = u.TopTypeCode["toptype"]
 	}
 	if subtype := util.ObjToString(tmp["subtype"]); subtype != "" {
-		info["s_subtype_code"] = SubTypeCode[subtype]
+		info["s_subtype_code"] = u.SubTypeCode[subtype]
 	}
 	if buyerclass := util.ObjToString(tmp["buyerclass"]); buyerclass != "" {
-		info["s_buyerclass_code"] = BuyerCode[buyerclass]
+		info["s_buyerclass_code"] = u.BuyerCode[buyerclass]
 	}
 	//特别结构
 	info["i_isValidFile"] = util.IntAll(tmp["isValidFile"])
 	info["i_multipackage"] = util.IntAll(tmp["multipackage"])
 	//文本相关
-	transferTextInfo(tmp, &info, []string{"title", "projectname", "projectcode", "purchasing", "site", "href"}, []int{})
+	u.TransferTextInfo(tmp, &info, []string{"title", "projectname", "projectcode", "purchasing", "site", "href"}, []int{})
 	//金额相关
-	transferMoneyRateInfo(tmp, &info, []string{"budget", "bidamount", "biddiscount"}, []float64{1000000000.0, 1000000000.0, 100.0})
+	u.TransferMoneyRateInfo(tmp, &info, []string{"budget", "bidamount", "biddiscount"}, []float64{1000000000.0, 1000000000.0, 100.0})
 	//时间相关
-	transferDateTimeInfo(tmp, &info, []string{"comeintime", "publishtime", "bidopentime", "bidendtime"})
+	u.TransferDateTimeInfo(tmp, &info, []string{"comeintime", "publishtime", "bidopentime", "bidendtime"})
 	//主体相关
-	if code := getNameId(util.ObjToString(tmp["buyer"])); code != "" {
+	if code := u.GetNameId(util.ObjToString(tmp["buyer"])); code != "" {
 		info["s_buyer_id"] = code
 	}
-	if code := getNameId(util.ObjToString(tmp["agency"])); code != "" {
+	if code := u.GetNameId(util.ObjToString(tmp["agency"])); code != "" {
 		info["s_agency_id"] = code
 	}
 	info["d_updatetime"] = time.Now().Format(util.Date_Full_Layout)
 	info["d_createtime"] = time.Now().Format(util.Date_Full_Layout)
-	InsertGlobalMysqlData("dwd_f_bid_baseinfo", info, mongodb.BsonIdToSId(tmp["_id"]))
-}
-
-func getNameId(name string) string {
-	if name == "" {
-		return ""
-	}
-	info := MysqlTool.FindOne("dws_f_ent_baseinfo", map[string]interface{}{"name": name}, "name_id", "")
-	if info != nil && (*info)["name_id"] != nil {
-		return util.ObjToString((*info)["name_id"])
-	} else {
-		return ""
-	}
+	u.InsertGlobalMysqlData(u.T_dwd_f_bid_baseinfo, info, mongodb.BsonIdToSId(tmp["_id"]))
 }
 
 func taskExpand(tmp map[string]interface{}) {
@@ -118,13 +107,13 @@ func taskExpand(tmp map[string]interface{}) {
 	info := map[string]interface{}{}
 	info["s_info_id"] = tmpid
 	//文本相关
-	transferTextInfo(tmp, &info, []string{"projectperiod", "project_scale", "project_timeunit", "bidmethod", "getdocmethod", "currency", "funds", "payway", "bid_bond", "contract_bond", "contractcode", "buyerzipcode", "bidopenaddress", "buyeraddr", "agencyaddr", "projectaddr", "enterprise_qualification", "personnel_qualification", "performance_qualification", "enterprise_credit"}, []int{1000, 5000, 50, 255, 500, 20, 5000, 500, 1000, 500, 100, 100, 1000, 1000, 1000, 1000, 20000, 20000, 20000, 20000})
+	u.TransferTextInfo(tmp, &info, []string{"projectperiod", "project_scale", "project_timeunit", "bidmethod", "getdocmethod", "currency", "funds", "payway", "bid_bond", "contract_bond", "contractcode", "buyerzipcode", "bidopenaddress", "buyeraddr", "agencyaddr", "projectaddr", "enterprise_qualification", "personnel_qualification", "performance_qualification", "enterprise_credit"}, []int{1000, 5000, 50, 255, 500, 20, 5000, 500, 1000, 500, 100, 100, 1000, 1000, 1000, 1000, 20000, 20000, 20000, 20000})
 	//时间相关
-	transferDateTimeInfo(tmp, &info, []string{"project_startdate", "project_completedate", "signstarttime", "bidendtime", "bidstarttime", "docstarttime", "docendtime", "signaturedate", "signendtime"})
+	u.TransferDateTimeInfo(tmp, &info, []string{"project_startdate", "project_completedate", "signstarttime", "bidendtime", "bidstarttime", "docstarttime", "docendtime", "signaturedate", "signendtime"})
 	//布尔相关
-	transferBoolInfo(tmp, &info, []string{"bid_guarantee", "contract_guarantee"})
+	u.TransferBoolInfo(tmp, &info, []string{"bid_guarantee", "contract_guarantee"})
 	//金额相关
-	transferMoneyRateInfo(tmp, &info, []string{"docamount", "agencyfee", "agencyrate"}, []float64{10000000.0, 10000000.0, 10000000.0})
+	u.TransferMoneyRateInfo(tmp, &info, []string{"docamount", "agencyfee", "agencyrate"}, []float64{10000000.0, 10000000.0, 10000000.0})
 	//投标方式
 	bidway := util.ObjToString(tmp["bidway"])
 	if bidway == "电子投标" {
@@ -150,7 +139,7 @@ func taskExpand(tmp map[string]interface{}) {
 	}
 	info["d_updatetime"] = time.Now().Format(util.Date_Full_Layout)
 	info["d_createtime"] = time.Now().Format(util.Date_Full_Layout)
-	InsertGlobalMysqlData("dwd_f_bid_expand_baseinfo", info, tmpid)
+	u.InsertGlobalMysqlData(u.T_dwd_f_bid_expand_baseinfo, info, tmpid)
 }
 
 func taskDetail(tmp map[string]interface{}) {
@@ -164,7 +153,7 @@ func taskDetail(tmp map[string]interface{}) {
 		"d_createtime":  time.Now().Format(util.Date_Full_Layout),
 		"d_updatetime":  time.Now().Format(util.Date_Full_Layout),
 	}
-	InsertGlobalMysqlData("dwd_f_bid_detail", info, tmpid)
+	u.InsertGlobalMysqlData(u.T_dwd_f_bid_detail, info, tmpid)
 }
 
 func taskAtts(tmp map[string]interface{}) {
@@ -191,7 +180,7 @@ func taskAtts(tmp map[string]interface{}) {
 					f_baseInfo["s_file_suffix"] = util.ObjToString(at["ftype"])
 					f_baseInfo["s_file_oss_url"] = util.ObjToString(at["fid"])
 					f_baseInfo["d_createtime"] = time.Now().Format(util.Date_Full_Layout)
-					f_id := InsertGlobalMysqlData("dwd_f_bid_file_baseinfo", f_baseInfo, tmpid)
+					f_id := u.InsertGlobalMysqlData(u.T_dwd_f_bid_file_baseinfo, f_baseInfo, tmpid)
 					if f_id > 0 && util.IntAll(index) > 0 && attach_text != nil {
 						att_key := fmt.Sprintf("%d", util.IntAll(index)-1)
 						if att_info := util.ObjToMap((*attach_text)[att_key]); att_info != nil {
@@ -219,13 +208,13 @@ func taskAttsAttach(att_info map[string]interface{}, tmpid string, f_id int64) {
 				//}
 				//info["s_file_text"] = bs
 			}
-			InsertGlobalMysqlData("dwd_f_bid_file_text", info, tmpid)
+			u.InsertGlobalMysqlData(u.T_dwd_f_bid_file_text, info, tmpid)
 		}
 	}
 }
 
 func taskIntent(tmp map[string]interface{}) {
-	procurementlist := IsMarkInterfaceMap(tmp["procurementlist"])
+	procurementlist := u.IsMarkInterfaceMap(tmp["procurementlist"])
 	tmpid := mongodb.BsonIdToSId(tmp["_id"])
 	for _, p1 := range procurementlist {
 		info := map[string]interface{}{}
@@ -249,41 +238,41 @@ func taskIntent(tmp map[string]interface{}) {
 			info["s_reserved_amount"] = p1["reserved_amount"]
 		}
 		if b := util.ObjToString(tmp["buyer"]); b != "" {
-			if code := getNameId(b); code != "" {
+			if code := u.GetNameId(b); code != "" {
 				info["s_buyer_id"] = code
 			}
 		}
 		info["d_createtime"] = time.Now().Format(util.Date_Full_Layout)
-		InsertGlobalMysqlData("dwd_f_bid_intention_baseinfo", info, tmpid)
+		u.InsertGlobalMysqlData(u.T_dwd_f_bid_intention_baseinfo, info, tmpid)
 	}
 }
 
 func taskPackage(tmp map[string]interface{}) {
 	tmpid := mongodb.BsonIdToSId(tmp["_id"])
 	//筛选分包
-	packages := filterPackageInfos(tmp)
+	packages := FilterPackageInfos(tmp)
 	if len(packages) <= 1 { //单包···标讯本身
 		baseInfo := CPBaseInfoFromBidding(tmp, tmpid)
-		pid := InsertGlobalMysqlData("dwd_f_bid_package_baseinfo", baseInfo, tmpid)
+		pid := u.InsertGlobalMysqlData(u.T_dwd_f_bid_package_baseinfo, baseInfo, tmpid)
 		if pid > 0 {
 			//投标人信息
 			CPBidderBiddingBaseInfo(tmp, tmpid, pid)
 			//标的物信息
 			new_purlist := CPBiddingPackageGoodsBaseInfo(tmp, tmpid, pid)
 			for _, v := range new_purlist {
-				InsertGlobalMysqlData("dwd_f_bid_package_goods_baseinfo", v, tmpid)
+				u.InsertGlobalMysqlData(u.T_dwd_f_bid_package_goods_baseinfo, v, tmpid)
 			}
 		}
 	} else { //多包...具体源信息
 		for k, v := range packages {
 			baseInfo := CPBaseInfoFromPackage(v, tmpid)
-			pid := InsertGlobalMysqlData("dwd_f_bid_package_baseinfo", baseInfo, tmpid)
+			pid := u.InsertGlobalMysqlData(u.T_dwd_f_bid_package_baseinfo, baseInfo, tmpid)
 			if pid > 0 { //投标人信息
 				if k == 0 { //标的物信息
 					CPBidderPackageBaseInfo(v, tmp, tmpid, pid, true)
 					new_purlist := CPBiddingPackageGoodsBaseInfo(tmp, tmpid, pid)
 					for _, v1 := range new_purlist {
-						InsertGlobalMysqlData("dwd_f_bid_package_goods_baseinfo", v1, tmpid)
+						u.InsertGlobalMysqlData(u.T_dwd_f_bid_package_goods_baseinfo, v1, tmpid)
 					}
 				} else {
 					CPBidderPackageBaseInfo(v, tmp, tmpid, pid, false)

+ 1 - 1
data_mgo_to_tidb/oss.go → data_mgo_to_tidb/bidding/oss.go

@@ -1,4 +1,4 @@
-package main
+package bidding
 
 import (
 	"fmt"

+ 16 - 15
data_mgo_to_tidb/pkg.go → data_mgo_to_tidb/bidding/pkg.go

@@ -1,6 +1,7 @@
-package main
+package bidding
 
 import (
+	u "data_tidb/util"
 	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
 	"strings"
 	"time"
@@ -43,7 +44,7 @@ func CPBidderBiddingBaseInfo(tmp map[string]interface{}, tmpid string, pid int64
 		info["i_is_bidders"] = 1
 	}
 	//保存服务...
-	InsertGlobalMysqlData("dwd_f_bid_package_bidder_baseinfo", info, tmpid)
+	u.InsertGlobalMysqlData(u.T_dwd_f_bid_package_bidder_baseinfo, info, tmpid)
 	//候选人相关情况
 	o_win_ids, o_win_names := getWinerorder(tmp, wins[0])
 	for k, v := range o_win_ids {
@@ -55,21 +56,21 @@ func CPBidderBiddingBaseInfo(tmp map[string]interface{}, tmpid string, pid int64
 		o_info["i_is_winner"] = 0
 		o_info["d_updatetime"] = time.Now().Format(util.Date_Full_Layout)
 		//保存服务...
-		InsertGlobalMysqlData("dwd_f_bid_package_bidder_baseinfo", info, tmpid)
+		u.InsertGlobalMysqlData(u.T_dwd_f_bid_package_bidder_baseinfo, info, tmpid)
 	}
 }
 
 // 标讯分包标的物信息
 func CPBiddingPackageGoodsBaseInfo(tmp map[string]interface{}, tmpid string, pid int64) []map[string]interface{} {
-	purchasinglist := IsMarkInterfaceMap(tmp["purchasinglist"])
+	purchasinglist := u.IsMarkInterfaceMap(tmp["purchasinglist"])
 	new_purlist := []map[string]interface{}{}
 	for _, v := range purchasinglist {
 		info := map[string]interface{}{}
 		info["s_info_id"] = tmpid
 		info["i_package_id"] = pid
-		info["s_itemname"] = cleanLength(util.ObjToString(v["itemname"]), 255)
-		info["s_brand"] = cleanLength(util.ObjToString(v["brandname"]), 255)
-		info["s_model"] = cleanLength(util.ObjToString(v["model"]), 255)
+		info["s_itemname"] = u.CleanLength(util.ObjToString(v["itemname"]), 255)
+		info["s_brand"] = u.CleanLength(util.ObjToString(v["brandname"]), 255)
+		info["s_model"] = u.CleanLength(util.ObjToString(v["model"]), 255)
 		if number := util.IntAll(v["number"]); number > 0 && number < 1000000000 {
 			info["i_num"] = number
 		}
@@ -126,7 +127,7 @@ func CPBidderPackageBaseInfo(pinfos map[string]interface{}, tmp map[string]inter
 			info["i_is_bidders"] = 1
 		}
 		//保存服务...
-		InsertGlobalMysqlData("dwd_f_bid_package_bidder_baseinfo", info, tmpid)
+		u.InsertGlobalMysqlData(u.T_dwd_f_bid_package_bidder_baseinfo, info, tmpid)
 		//候选人相关情况
 		if isF {
 			o_win_ids, o_win_names := getWinerorder(tmp, wins[0])
@@ -138,7 +139,7 @@ func CPBidderPackageBaseInfo(pinfos map[string]interface{}, tmp map[string]inter
 				o_info["i_is_winner"] = 0
 				o_info["d_updatetime"] = time.Now().Format(util.Date_Full_Layout)
 				//保存服务...
-				InsertGlobalMysqlData("dwd_f_bid_package_bidder_baseinfo", info, tmpid)
+				u.InsertGlobalMysqlData(u.T_dwd_f_bid_package_bidder_baseinfo, info, tmpid)
 			}
 		}
 	}
@@ -148,7 +149,7 @@ func CPBidderPackageBaseInfo(pinfos map[string]interface{}, tmp map[string]inter
 func getWinsNameId(wins []string) (string, string, string) {
 	win_id, win_name, win_ids := "", "", []string{}
 	for k, v := range wins {
-		code := getNameId(v)
+		code := u.GetNameId(v)
 		if k == 0 {
 			win_id = code
 			win_name = v
@@ -161,14 +162,14 @@ func getWinsNameId(wins []string) (string, string, string) {
 // 获取候选人相关信息
 func getWinerorder(tmp map[string]interface{}, win string) ([]string, []string) {
 	o_win_names, o_win_ids := []string{}, []string{}
-	winnerorder := IsMarkInterfaceMap(tmp["winnerorder"])
+	winnerorder := u.IsMarkInterfaceMap(tmp["winnerorder"])
 	for k, v := range winnerorder {
 		if k >= 5 {
 			break
 		}
 		entname := util.ObjToString(v["entname"])
 		if entname != win {
-			o_win_ids = append(o_win_ids, getNameId(entname))
+			o_win_ids = append(o_win_ids, u.GetNameId(entname))
 			o_win_names = append(o_win_names, entname)
 		}
 	}
@@ -176,7 +177,7 @@ func getWinerorder(tmp map[string]interface{}, win string) ([]string, []string)
 }
 
 // 分包信息清洗与过滤...
-func filterPackageInfos(tmp map[string]interface{}) []map[string]interface{} {
+func FilterPackageInfos(tmp map[string]interface{}) []map[string]interface{} {
 	new_packages := []map[string]interface{}{}
 	s_winner := util.ObjToString(tmp["s_winner"])
 	if s_winner == "" {
@@ -187,7 +188,7 @@ func filterPackageInfos(tmp map[string]interface{}) []map[string]interface{} {
 		for k, v := range *packages {
 			if pkg := util.ObjToMap(v); pkg != nil && k != "" {
 				if win := util.ObjToString((*pkg)["winner"]); win != "" {
-					if isExistsWins(winArr, win) {
+					if IsExistsWins(winArr, win) {
 						new_packages = append(new_packages, map[string]interface{}{k: v})
 					}
 				}
@@ -198,7 +199,7 @@ func filterPackageInfos(tmp map[string]interface{}) []map[string]interface{} {
 }
 
 // 是否存在单位
-func isExistsWins(winArr []string, win string) bool {
+func IsExistsWins(winArr []string, win string) bool {
 	win = cleaname(win)
 	for _, v := range winArr {
 		if v == win {

+ 7 - 2
data_mgo_to_tidb/main.go

@@ -1,12 +1,17 @@
 package main
 
+import (
+	"data_tidb/bidding"
+	u "data_tidb/util"
+)
+
 func init() {
-	InitInfo() //初始化...
+	u.InitInfo() //初始化...
 }
 
 func main() {
 	//标讯信息-正式版先测试一天的数据
-	TaskBidding()
+	bidding.TaskBidding()
 
 	c := make(chan bool, 1)
 	<-c

+ 0 - 40
data_mgo_to_tidb/udp.go

@@ -1,40 +0,0 @@
-package main
-
-import (
-	"encoding/json"
-	"fmt"
-	"go.uber.org/zap"
-	util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
-	"jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
-	"jygit.jydev.jianyu360.cn/data_processing/common_utils/udp"
-	"net"
-)
-
-var (
-	UdpClient udp.UdpClient
-)
-
-func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
-	defer util.Catch()
-	switch act {
-	case udp.OP_TYPE_DATA: //上个节点的数据
-		var mapInfo map[string]interface{}
-		err := json.Unmarshal(data, &mapInfo)
-		log.Info("processUdpMsg", zap.Any("mapInfo:", mapInfo))
-		gtid, _ := mapInfo["gtid"].(string)
-		lteid, _ := mapInfo["lteid"].(string)
-		if err != nil {
-			UdpClient.WriteUdp([]byte("tidb udp error"), udp.OP_NOOP, ra) //udp失败回写
-		} else {
-			//udp成功回写
-			if k := util.ObjToString(mapInfo["key"]); k != "" {
-				UdpClient.WriteUdp([]byte(k), udp.OP_NOOP, ra)
-			} else {
-				k = fmt.Sprintf("%s-%s-%s", gtid, lteid, util.ObjToString(mapInfo["stype"]))
-				UdpClient.WriteUdp([]byte(k), udp.OP_NOOP, ra)
-			}
-			log.Info("start sync ...")
-			//doBiddingTask(gtid, lteid, mapInfo)
-		}
-	}
-}

+ 13 - 1
data_mgo_to_tidb/init.go → data_mgo_to_tidb/util/init.go

@@ -1,4 +1,4 @@
-package main
+package util
 
 import (
 	"data_tidb/config"
@@ -24,6 +24,18 @@ var ( //通用
 	FileTypeArr    = []string{"pdf", "doc", "docx", "xlsx", "xls", "jpg", "zip", "rar", "txt", "gif", "png", "bmp", "swf", "html"}
 )
 
+const (
+	T_dwd_f_bid_baseinfo                = "dwd_f_bid_baseinfo"
+	T_dwd_f_bid_detail                  = "dwd_f_bid_detail"
+	T_dwd_f_bid_expand_baseinfo         = "dwd_f_bid_expand_baseinfo"
+	T_dwd_f_bid_file_baseinfo           = "dwd_f_bid_file_baseinfo"
+	T_dwd_f_bid_file_text               = "dwd_f_bid_file_text"
+	T_dwd_f_bid_intention_baseinfo      = "dwd_f_bid_intention_baseinfo"
+	T_dwd_f_bid_package_baseinfo        = "dwd_f_bid_package_baseinfo"
+	T_dwd_f_bid_package_bidder_baseinfo = "dwd_f_bid_package_bidder_baseinfo"
+	T_dwd_f_bid_package_goods_baseinfo  = "dwd_f_bid_package_goods_baseinfo"
+)
+
 func InitInfo() {
 	config.Init("./common.toml")
 	InitLog()

+ 21 - 9
data_mgo_to_tidb/util.go → data_mgo_to_tidb/util/util.go

@@ -1,4 +1,4 @@
-package main
+package util
 
 import (
 	"go.mongodb.org/mongo-driver/bson/primitive"
@@ -7,7 +7,7 @@ import (
 )
 
 // 转换时间
-func transferDateTimeInfo(tmp map[string]interface{}, info *map[string]interface{}, keys []string) {
+func TransferDateTimeInfo(tmp map[string]interface{}, info *map[string]interface{}, keys []string) {
 	for _, v := range keys {
 		if t := util.Int64All(tmp[v]); t > 0 {
 			key := "d_" + v
@@ -17,12 +17,12 @@ func transferDateTimeInfo(tmp map[string]interface{}, info *map[string]interface
 }
 
 // 转换文本
-func transferTextInfo(tmp map[string]interface{}, info *map[string]interface{}, keys []string, maxs []int) {
+func TransferTextInfo(tmp map[string]interface{}, info *map[string]interface{}, keys []string, maxs []int) {
 	for k, v := range keys {
 		if value := util.ObjToString(tmp[v]); value != "" {
 			key := "s_" + v
 			if len(maxs) > k {
-				(*info)[key] = cleanLength(value, maxs[k])
+				(*info)[key] = CleanLength(value, maxs[k])
 			} else {
 				(*info)[key] = value
 			}
@@ -31,7 +31,7 @@ func transferTextInfo(tmp map[string]interface{}, info *map[string]interface{},
 }
 
 // 转换布尔
-func transferBoolInfo(tmp map[string]interface{}, info *map[string]interface{}, keys []string) {
+func TransferBoolInfo(tmp map[string]interface{}, info *map[string]interface{}, keys []string) {
 	for _, v := range keys {
 		if tmp[v] != nil {
 			key := "i_" + v
@@ -45,17 +45,17 @@ func transferBoolInfo(tmp map[string]interface{}, info *map[string]interface{},
 }
 
 // 转换金额费用
-func transferMoneyRateInfo(tmp map[string]interface{}, info *map[string]interface{}, keys []string, maxs []float64) {
+func TransferMoneyRateInfo(tmp map[string]interface{}, info *map[string]interface{}, keys []string, maxs []float64) {
 	for k, v := range keys {
 		key := "f_" + v
-		if value, b := cleanFloat64(util.Float64All(tmp[v]), maxs[k]); tmp[v] != nil && b {
+		if value, b := CleanFloat64(util.Float64All(tmp[v]), maxs[k]); tmp[v] != nil && b {
 			(*info)[key] = value
 		}
 	}
 }
 
 // 通用长度清洗
-func cleanLength(name string, l int) string {
+func CleanLength(name string, l int) string {
 	if l == -1 {
 		return name
 	}
@@ -67,13 +67,25 @@ func cleanLength(name string, l int) string {
 }
 
 // 通用浮点清洗
-func cleanFloat64(value float64, max float64) (float64, bool) {
+func CleanFloat64(value float64, max float64) (float64, bool) {
 	if value <= max {
 		return value, true
 	}
 	return float64(0), false
 }
 
+func GetNameId(name string) string {
+	if name == "" {
+		return ""
+	}
+	info := MysqlTool.FindOne("dws_f_ent_baseinfo", map[string]interface{}{"name": name}, "name_id", "")
+	if info != nil && (*info)["name_id"] != nil {
+		return util.ObjToString((*info)["name_id"])
+	} else {
+		return ""
+	}
+}
+
 func IsMarkInterfaceArr(t interface{}) []string {
 	sub_list := []string{}
 	if list_3, ok_3 := t.([]string); ok_3 {