|
@@ -20,7 +20,7 @@ import (
|
|
|
"unicode/utf8"
|
|
|
)
|
|
|
|
|
|
-//convertToMongoID convertToMongoID
|
|
|
+// convertToMongoID convertToMongoID
|
|
|
func convertToMongoID(query map[string]interface{}) map[string]interface{} {
|
|
|
result := make(map[string]interface{})
|
|
|
if query == nil {
|
|
@@ -41,7 +41,7 @@ func convertToMongoID(query map[string]interface{}) map[string]interface{} {
|
|
|
return result
|
|
|
}
|
|
|
|
|
|
-//StringSliceValuesEqual 判断切片相等
|
|
|
+// StringSliceValuesEqual 判断切片相等
|
|
|
func StringSliceValuesEqual(a, b []string) bool {
|
|
|
if len(a) != len(b) {
|
|
|
return false
|
|
@@ -59,7 +59,7 @@ func StringSliceValuesEqual(a, b []string) bool {
|
|
|
return true
|
|
|
}
|
|
|
|
|
|
-//Float64SliceSum float64 数据求和
|
|
|
+// Float64SliceSum float64 数据求和
|
|
|
func Float64SliceSum(nums []float64) float64 {
|
|
|
sum := 0.0
|
|
|
for _, num := range nums {
|
|
@@ -72,7 +72,7 @@ func Float64Equal1Precision(a, b float64) bool {
|
|
|
return int(math.Round(a*10)) == int(math.Round(b*10))
|
|
|
}
|
|
|
|
|
|
-//chargeType 判断mongo 字段类型和 es 字段类型相匹配
|
|
|
+// chargeType 判断mongo 字段类型和 es 字段类型相匹配
|
|
|
func chargeType(ftype, etype string) bool {
|
|
|
if ftype != "" {
|
|
|
switch ftype {
|
|
@@ -106,7 +106,7 @@ func chargeType(ftype, etype string) bool {
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
-//IsHanStart 判断字符串是否以汉字开头或者以字母开头
|
|
|
+// IsHanStart 判断字符串是否以汉字开头或者以字母开头
|
|
|
func IsHanStart(s string) bool {
|
|
|
if s == "" {
|
|
|
return false
|
|
@@ -146,7 +146,7 @@ func IsBracketStartWithHan(s string) bool {
|
|
|
return true
|
|
|
}
|
|
|
|
|
|
-//IsCompanyName 判断字符串是否以汉字开头、以括号开头并且括号里面是汉字、以"公司"结尾,其中一个条件符合即返回true,否则返回false
|
|
|
+// IsCompanyName 判断字符串是否以汉字开头、以括号开头并且括号里面是汉字、以"公司"结尾,其中一个条件符合即返回true,否则返回false
|
|
|
func IsCompanyName(s string) bool {
|
|
|
r := []rune(s)
|
|
|
//if len(r) >= 6 && (string(r[len(r)-6:]) == "有限公司" || string(r[len(r)-6:]) == "股份有限公司") {
|
|
@@ -160,7 +160,7 @@ func IsCompanyName(s string) bool {
|
|
|
return false
|
|
|
}
|
|
|
|
|
|
-//GetChineseCharacters 提取字符串中的汉字
|
|
|
+// GetChineseCharacters 提取字符串中的汉字
|
|
|
func GetChineseCharacters(s string) string {
|
|
|
re := regexp.MustCompile(`[\p{Han}]+`)
|
|
|
return re.FindString(s)
|
|
@@ -184,7 +184,7 @@ func IsUnicodeStart(s string) bool {
|
|
|
return size > 0
|
|
|
}
|
|
|
|
|
|
-//RemoveDuplicateSuffix 去除字符串末尾的重复字词
|
|
|
+// RemoveDuplicateSuffix 去除字符串末尾的重复字词
|
|
|
func RemoveDuplicateSuffix(str string, suffix string) string {
|
|
|
// 构建正则表达式:^(.*?)(重复的结尾词)+$
|
|
|
re := regexp.MustCompile(fmt.Sprintf(`^(.*?)(%s)+$`, suffix))
|
|
@@ -209,7 +209,7 @@ func findNameID(id string) []map[string]interface{} {
|
|
|
return *info
|
|
|
}
|
|
|
|
|
|
-//isStringRepeating 判断字符串内字符完全重复,例如:山东大学山东大学
|
|
|
+// isStringRepeating 判断字符串内字符完全重复,例如:山东大学山东大学
|
|
|
func isStringRepeating(str string) bool {
|
|
|
for i := 0; i < len(str); i++ {
|
|
|
for j := i + 1; j < len(str); j++ {
|
|
@@ -221,7 +221,7 @@ func isStringRepeating(str string) bool {
|
|
|
return true
|
|
|
}
|
|
|
|
|
|
-//IsInStringArray 判断数组中是否存在字符串
|
|
|
+// IsInStringArray 判断数组中是否存在字符串
|
|
|
func IsInStringArray(str string, arr []string) bool {
|
|
|
// 先对字符串数组进行排序
|
|
|
sort.Strings(arr)
|
|
@@ -231,7 +231,7 @@ func IsInStringArray(str string, arr []string) bool {
|
|
|
return pos < len(arr) && arr[pos] == str
|
|
|
}
|
|
|
|
|
|
-//checkName 检查名称,不符合的返回false
|
|
|
+// checkName 检查名称,不符合的返回false
|
|
|
func checkName(name string) (res bool) {
|
|
|
res = true
|
|
|
|
|
@@ -277,7 +277,7 @@ func checkName(name string) (res bool) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-//TDName 根据开头、结尾、排除词,筛选名称,筛选不符合的数据
|
|
|
+// TDName 根据开头、结尾、排除词,筛选名称,筛选不符合的数据
|
|
|
func TDName(name string) (res bool) {
|
|
|
res = true
|
|
|
|
|
@@ -364,7 +364,7 @@ func TDName(name string) (res bool) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-//ruleBuyer 判断采购单位正确,名称错误返回true,名称正确返回false
|
|
|
+// ruleBuyer 判断采购单位正确,名称错误返回true,名称正确返回false
|
|
|
func ruleBuyer(input string) (res bool) {
|
|
|
//开头的单词
|
|
|
preWords := []string{"转发", "省", "会议室", "某", "某单位", "某公司", "某学校", "测试", "某大学", "某医院", "拟建", "机械", "县", "市", "区", "巡察", "人民路", "对", "楼", "家长", "春季", "对", "度", "初级中学", "州", "总部", "一号", "含", "育场", "选择", "第包", "医院",
|
|
@@ -402,14 +402,14 @@ func ruleBuyer(input string) (res bool) {
|
|
|
"一致同意", "X", "保体障局", "人们政府", "上设局", "开发茎", "场场", "设保", "武鳖", "集回", "项日", "代理银行",
|
|
|
"辽宁省省会", "菖处", "口国", "人民汰院", "肉州市", "火车站社", "自然资源和规局", "萎员会", "经济技术开发茎",
|
|
|
"()", "()", "有限公司厂", "测试", "建设建设", "建设规模", "满足", "郑州郑州", "学校学校", "&", ";", ";",
|
|
|
- "就医院", "酒医院", "至医院", "对", "所需", "提升", "提高", "学期", "学年", "规模", "必须", "建成", "各公司",
|
|
|
+ "就医院", "酒医院", "至医院", "所需", "提升", "提高", "学期", "学年", "规模", "必须", "建成", "各公司",
|
|
|
"养护", "拿", "艹", "关于", "要求", "举办", "显示所", "右阴公司", "发射", "加装", "扩建", "道路维修", "等所",
|
|
|
"维稳中心", "异议", "任务", "分包", "其他", "行为", "中标人", "教室", "安置", "暂行", "选聘", "合同", "转发",
|
|
|
"勿救", "既有", "装置", "开展", "依据", "指定", "一般用", "采供", "修缮", "招标单位", "联系方式", "沟通",
|
|
|
- "该项目", "安装", "造价", "改造", "样品", "课室", "水毁道路", "闲置资产", "某单位", "某公司", "某学校", "测试", "某大学", "某医院", "地产鲨", "项目组",
|
|
|
- "公国司", "物资", "评估与医院", "年室", "招标", "设有", "复限公司", "服务", "罩套", "有阴公", "人队", "报告",
|
|
|
- "显微镜", "现场局", "租赁", "镇", "市中心", "勐阿糖厂", "展厅", "等医院", "广场室", "水利顷", "市室", "交界处", "自助银行",
|
|
|
- "若源局", "布局", "联合体", "气室", "活动场", "包装公司", "投资", "有限", "等", "设备", "急件", "核实", "测汞仪", "黑名单", "制作类",
|
|
|
+ "该项目", "安装", "造价", "样品", "课室", "水毁道路", "闲置资产", "某单位", "某公司", "某学校", "测试", "某大学", "某医院", "地产鲨", "项目组",
|
|
|
+ "公国司", "评估与医院", "年室", "招标", "设有", "复限公司", "罩套", "有阴公", "人队", "报告",
|
|
|
+ "显微镜", "现场局", "租赁", "市中心", "勐阿糖厂", "展厅", "等医院", "广场室", "水利顷", "市室", "交界处", "自助银行",
|
|
|
+ "若源局", "布局", "联合体", "气室", "活动场", "包装公司", "急件", "核实", "测汞仪", "黑名单", "制作类",
|
|
|
"大学大学", "学院学院", "大学场", "学校室", "部队部队", "内部", "部分支公司", "短管", "投标文件", "汇编", "收购"}
|
|
|
|
|
|
for _, v := range specials {
|
|
@@ -423,14 +423,14 @@ func ruleBuyer(input string) (res bool) {
|
|
|
|
|
|
}
|
|
|
|
|
|
-//SendUdpMsg 通知处理企业新增数据
|
|
|
+// SendUdpMsg 通知处理企业新增数据
|
|
|
func SendUdpMsg(data map[string]interface{}, target *net.UDPAddr) {
|
|
|
bytes, _ := json.Marshal(data)
|
|
|
UdpClient.WriteUdp(bytes, udp.OP_TYPE_DATA, target)
|
|
|
log.Info("SendUdpMsg", zap.Any("data", data), zap.Any("target", target))
|
|
|
}
|
|
|
|
|
|
-//deletePreEsData 删除预处理索引数据
|
|
|
+// deletePreEsData 删除预处理索引数据
|
|
|
func deletePreEsData(preId string) {
|
|
|
now := time.Now()
|
|
|
month := int(time.Now().Month())
|