mobile_test.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. package main
  2. import (
  3. "fmt"
  4. "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
  5. "log"
  6. "testing"
  7. )
  8. func TestA(t *testing.T) {
  9. // 生成正则表达式
  10. //s := "军队"
  11. //regex := regexp.MustCompile(".*(?i)" + s + ".*")
  12. //
  13. //fmt.Println("aa", regex.String())
  14. //// 匹配目标字符串
  15. //target := "中国人民解放军队伍!"
  16. //match := regex.FindString(target)
  17. //
  18. //// 获取 s
  19. //fmt.Println(match)
  20. }
  21. func TestTaskFuc(t *testing.T) {
  22. globalRegs := make([]TagMatching, 0)
  23. matchArr := make([]TagMatching, 0)
  24. //testArr := make([]TagMatching, 0)
  25. //关键词
  26. globalKeys := "X 型,指挥控制系统,指控系统,指挥信息系统,信息基础设施,基础信息设施,基础设施,信息化,动员大数据,动员潜力,动员信息系统,动员指挥系统军事职业教育,职业教育条件,教学条件建设,训练条件建设,电子对抗,职教条件,教室条件,在线学习室,智慧保卫,智慧政工,智慧靶场,智慧训练场,智慧基地,智慧边疆,边境管控,戍边,训练场,训练室,体育锻炼,体能训练,图传光缆支线建设及传输系统扩容,通信电缆,裸纤,电路租赁,电路租用,互联网接入,互联网出口,无人机,北斗指挥调度,情报保障,气象服务信息共享平台,机动通信,数据中心,云,5G专网,基础通信业务,专线业务,信息基础设施,增值服务,训练管理,军事职业教育,模拟训练,体育训练,体能训练,实验室,科研建设,智慧校园,智慧党建,宣传工作,保卫工作,智慧监察,管,后勤战勤,智慧财务,智慧军需,智慧营房,智慧军交,智慧卫勤,智慧仓储,装备战勤,枪弹管理,通装管理,战备值勤,日常办公,会议系统,会议室,日常管理,智慧安防,保密管理,心理攻防,野战管理,智能终端管控,网络安全,智慧磐石,国防动员,民兵管理,智慧人防,退役军人服务平台,退役系统创新应用,智慧融通,智慧融办,边海防管控,AICDE,设备采购,综合信息化指挥控制系统,气象服务信息共享平台,应急通信,应急车,应急基站,应急平台,IDC,数据中心,5G 专网,语音系统,话音,裸光纤,机房建设,机房改造,机房运维,体能考核,在线学习室,模拟训练中心,体能考核,无人系统实验平台,智慧教室,智慧党建,红色教育基地,智慧保卫,智慧监察,智慧监管,后勤管理,财务系统,油料保障,营房管理,智慧物流,智慧卫勤,智慧医疗,智慧仓储,装备大数据,枪弹库安防,器材管理,值班系统,办公系统,办公平台,视频,音频会议,会议系统,会议室,门禁,道闸系统,闸机,视频监控,人脸识别,车辆识别,AI 执法巡逻,密集柜管理,心理辅导,野战安防,手机管控,终端管控,网络防御,疫情防控,智慧磐石,国防动员,人防信息化,人防数字化,人防指挥信息系统,退役军人服务平台,云资源租赁,智慧酒店,智慧园区,边海防管控,人工智能,信息化设备,无人机,短波电台,短波台站,私有云,5G 基站,物联网,数据专线,综合网管,智慧靶场,靶机,报靶,桌面云,云桌面,战术模拟,操扬训练条件,智慧课堂,AR 党建,军史场馆,舆情监控,舆情监测,后勤大数据,军粮信息化,营房信息化,智慧运输,医院信息化,装备战备值班,智能枪弹柜,器材库建设,联动报警,网上办公,车辆管理,安防建设,安防设备,安防设施,安防系统,资料管理,心理攻防训练,野战枪弹管理,账外机,流量监测,行程码,一室一站,动员大数据,人防通信及网络,智慧 J 休所,智慧文旅,J 民融合创业园区,J 警民联防,云计算,其他设备,视频指挥,动中通,公有云,5G,专网,局域网,互联网专线,动环监控,训练计划,推门听课,训练辅助,射击仿真,投弹仿真,军体考核,智慧图书馆,VR 党建,数字史馆,智慧监狱,资产管理,智慧食堂,水电信息化,铁路输送,体检管理,装备保障信息系统,装备维修,执勤信息化,档案室,会议设备,警戒系统,报警系统,电子围栏,SM 载体管理,反无人机,信号侦测,信息安全,体温登记,一室两站,国防教育,智慧 J 供站,智慧地产,信息化服务平台,党政军警民联防,大数据,集群指挥,指挥所,自组网,5G 核心网,无线覆盖,光缆支线及设备采购,综合布线,训练档案,在线课程,在线开放课程,AR训练,VR 训练,XR 训练,新闻媒体,物品管理,车辆管理,数字化装备场,执法仪,档案系统,人员管理,枪弹管理,反红外侦查,网上行为监管,安全保密,测温系统,一平台三系统,Z兵系统,退役军人培训,智慧展示平台,边防基础设施建设,数据库,数据采集,数据分析,应急指挥,北斗,卫星通信,VPN,二三级网,弱电工程,训练资源,慕课制作,电子沙盘,演播大厅,智慧养老,接运服务,LED,大屏,显示屏,档案管理,访客管理,周界防护,野外驻训营区管控,黑白名单,量子加密,外来人员判断,反恐,征兵平台,烈士纪念设施保护,海防基础设施建设,CDN,CDN软件,防护工程,可移动基站,4G 网络,传输网,容灾,DICT 实训,JY 网吧,虚拟仿真,融媒体中心,视频通信,网站建设,广播通报,电子巡更,手机智能管控,特安通,重大问题应急处置,维稳,民兵管理,智慧光荣院,可编程企业网关键技术研究与应用验证,辅助决策系统,车载通信,程控交换机,通信服务,训练大数据,训练条件,数字展厅,动态勤务管控,台式机,服务器,军营广播,学习园地,在线考试,油库管理,天幕信息管控,5G网络安全,警务通,智慧武装部,地球通终端,通信车辆,线路整修,训练场,训练基地,训练设备,条件建设,网络中心,智慧小区,智慧消防,灵控辅助定位,导调中心,梯队通联,课程制作,移动旗舰,LED,大屏,显示屏,智慧管理系统,无人机巡检,绿盾痕迹点验,地理信息系统,对讲机,动中通,训练系统,训练软件,J 史场馆,演播大厅,机器人巡逻,低慢小,态势感知,战术机动网络,电视广播,雷达监控,指挥中心,卫星通信,监控系统,监控设施,监控设备,电子对抗,通信设备,大屏系统"
  27. //关键词的规则
  28. global := TagMatching{
  29. tagName: "关键词",
  30. //标题、详情、项目名称、标的物、附件
  31. matchField: []string{"title", "detail", "projectname", "purchasing", "filetext"},
  32. matchKey: globalKeys,
  33. matchKeyReg: GetRegex(globalKeys),
  34. addField: []string{"title", "detail", "projectname", "purchasing", "filetext"},
  35. addKey: "军队,军队采购网,全军武器装备采购信息网,装备科研生产单位,保密二级,保密一级,涉密信息系统集成,参谋,助理,干事",
  36. addKeyReg: GetRegex("军队,军队采购网,全军武器装备采购信息网,装备科研生产单位,保密二级,保密一级,涉密信息系统集成,参谋,助理,干事"),
  37. excludeField: []string{"title", "detail", "projectname", "purchasing", "filetext"},
  38. excludeKey: "网上超市",
  39. excludeKeyReg: GetRegex("网上超市"),
  40. }
  41. globalRegs = append(globalRegs, global)
  42. //军队类
  43. jundui := "解放军,军队,部队,国防,国防部,军委,军事,战争,军用,军史,军营,野战,后勤保障部,武器装备,装备发展部,战区,陆军,海军,空军,火箭军,战略支援部队,联勤保障,军事法院,军事检察院,军事法庭,卫生勤务,卫勤,运输投送,军需,卫戍区,集团军,训练基地," +
  44. "卫星发射中心,试训基地,试验训练基地,国防教育,舰,舰队,舰载,航空兵,雷达兵,电子对抗,军装备研究院,炮兵,空降兵,烈士,舟桥,边海防," +
  45. "人民防空,人防,防空,边海空防,海防,边疆,边防团,国防动员,省军区,军分区,警备区,武装部,人武部,军区&!点军区,经济动员," +
  46. "科技动员,信息动员,交通动员,卫生动员,征兵,民兵,预备役,转业,军人招待所,军休所,兵员,战争院,军事科学院,国防大学,国防科技大学,国防科大,陆军指挥学院,陆军工程大学,步兵学院,装甲兵学院,炮兵防空兵学院,航空兵学院,陆军特种作战学院,边海防学院,防化学院,陆军勤务学院,陆军军事交通学院,海军指挥学院,海军工程大学,海军大连舰艇学院,海军潜艇学院,海军航空大学,海军勤务学院,海军士官学校,空军指挥学院,空军工程大学,空军航空大学,空军预警学院,空军哈尔滨飞行学院,空军石家庄飞行学院,空军西安飞行学院,空军勤务学院,空军通信士官学校,火箭军指挥学院,火箭军工程大学,火箭军士官学校,战略支援军航天工程大学,战略支援军信息工程大学,武装警察部队指挥学院,武警指挥学院,武装警察部队工程大学,武警工程大学,武装警察部队警官学院,武警警官学院,武装警察部队特种警察学院,武警特种警察学院,武装警察部队后勤学院,武警后勤学院,武装警察部队士官学校,武警士官学校,中国人民解放军国际关系学院,国际关系学院,国防信息学院,解放军西安通信学院,解放军电子工程学院,中国人民解放军理工大学,国防大学政法学院,国防大学政治学院,参谋学院,军事文化学院,后装保障学院,气象海洋学院,军医大学," +
  47. "军&&医院,部队&&医院,军医大学附属&&医院,安庆医院,武警&&医院,医学中心&&军"
  48. tagJ1 := TagMatching{
  49. tagName: "军队类",
  50. tagCode: "001",
  51. matchField: []string{"buyer"},
  52. matchKey: jundui,
  53. matchKeyReg: GetRegex(jundui),
  54. }
  55. matchArr = append(matchArr, tagJ1)
  56. tagJ2 := TagMatching{
  57. tagName: "军队类",
  58. tagCode: "001",
  59. matchField: []string{"buyer"},
  60. matchKey: "第一采购服务站,第二采购服务站,第三采购服务站,第四采购服务站,第五采购服务站",
  61. matchKeyReg: GetRegex("第一采购服务站,第二采购服务站,第三采购服务站,第四采购服务站,第五采购服务站"),
  62. addField: []string{"site"},
  63. addKey: "军队,军队采购网",
  64. addKeyReg: GetRegex("军队,军队采购网"),
  65. }
  66. matchArr = append(matchArr, tagJ2)
  67. //武警类
  68. tagW1 := TagMatching{
  69. tagName: "武警类",
  70. matchField: []string{"buyer"},
  71. matchKey: "海警,水警,军警",
  72. matchKeyReg: GetRegex("海警,水警,军警"),
  73. }
  74. matchArr = append(matchArr, tagW1)
  75. tagW2 := TagMatching{
  76. tagName: "武警类",
  77. matchField: []string{"buyer"},
  78. matchKey: "武警,武装警察",
  79. matchKeyReg: GetRegex("武警,武装警察"),
  80. excludeField: []string{"title", "detail", "filetext"},
  81. excludeKey: "黄金,森林,水电",
  82. excludeKeyReg: GetRegex("黄金,森林,水电"),
  83. }
  84. matchArr = append(matchArr, tagW2)
  85. tagW3 := TagMatching{
  86. tagName: "武警类",
  87. matchField: []string{"title", "projectname"},
  88. matchKey: "反恐,维稳,军警民,一室一站,一室两站,海警工作站",
  89. matchKeyReg: GetRegex("反恐,维稳,军警民,一室一站,一室两站,海警工作站"),
  90. }
  91. matchArr = append(matchArr, tagW3)
  92. //融通类
  93. trong := "融通房地产集团,融通地产,兰州君达中山宾馆,三亚君达大东海壹号酒店,太原长安饭店,北京融通远望楼宾馆,合肥君达徽尚酒店,厦门君联天成宾馆," +
  94. "九江君联庐山酒店,南京君通华江饭店,天津君联京津宾馆,南京融通华山饭店,南京君达金宇饭店,沈阳君达蓝鹰宾馆,成都融通望江宾馆,济南融通联勤宾馆," +
  95. "武汉君通珞珈山宾馆,武汉君通梅园宾馆,南平君达九峰宾馆,上海君通云峰宾馆,三亚君达海景酒店,西安君达桃园宾馆,昆明君通南疆宾馆,黄山君通翡翠度假村," +
  96. "湛江君达南疆宾馆,融旅在线(北京)旅游科技,北京融通西直门宾馆,广州君达华海宾馆,拉萨融通珠峰宾馆,烟台君达毓璜顶宾馆,无锡君联飞鸿宾馆,重庆融通红楼宾馆," +
  97. "济南君达鲁中酒店,青岛君达山海酒店,烟台融通新时代酒店,烟台君通蓝天宾馆,石家庄君达盛华宾馆,郑州君达豫鹰宾馆,海口君联宏翔宾馆,武汉君达蓝天宾馆," +
  98. "三亚融通海棠湾 9 号度假酒店,怀化君达怀荣宾馆,广州君达金城酒店,泰安君达山海酒店,郑州融通紫荆山宾馆,上海君达天鹅宾馆,广州融通天河宾馆,南宁君通桃源饭店," +
  99. "北京融通天泰宾馆,天津君联长城宾馆,广州君通荔圃温泉酒店,广州君达金鹰宾馆,济南融通燕子山庄,天津君通津卫酒店,呼和浩特君达凯盛酒店,广州融通东山宾馆,成都融通新华宾馆," +
  100. "广州君达东风宾馆,成都融通祥宇宾馆,北京融通京海大厦,上海君通蓝天宾馆,秦皇岛君达长城酒店,兰州君通长城宾馆,泰安君通东都宾馆,福州融通梅峰宾馆,成都融通金河宾馆,上海融通延安饭店," +
  101. "乌鲁木齐君达鸿雁宾馆,昆明融通西南宾馆,杭州融通华北饭店,贵阳君通南天宾馆,北京融通华北宾馆,南京君达华达宾馆,海口君联京航酒店,南京融通华东饭店,南京君通九华饭店,南京君达东宫酒店," +
  102. "济南君达长城宾馆,长春君达北煦宾馆,北京君达赵家楼饭店,北京君达京通宾馆,南京君达高楼门饭店,广州君通华泰宾馆,广州融通珠江宾馆,南京融通中央饭店,济南君达黄河宾馆,厦门融通白鹭宾馆," +
  103. "长沙融通长城宾馆,兰州融通西北宾馆,武汉融通中南花园酒店,井冈山君达长城宾馆,杭州君联东海宾馆,西安君达长城宾馆,西宁君联西陲宾馆,济南君达汇源宾馆,中国融通财产保险,融通财险,融寓旅家(北京)公寓管理," +
  104. "融通农业发展(北京),融通农业发展(沈阳),融通农业发展(南京),融通农业发展(乌鲁木齐),融通农业发展(济南),融通农业发展(成都),融通农业发展(昆明),融通农业发展(武汉),融通农业发展(广州)," +
  105. "融通农业发展(杭州),融通农发惠君(青岛),融通粮食产业发展,中国融通财产保险,融通特种物流,融通安保服务,融通安防,融通安保,融通物流,融发能源,融通运输,融通被装发展,陕西融通军民服务社," +
  106. "融通海油能源,融通运输(上海),融通运输(广州),宜宾五商股权投资基金(有限合伙),中海油山东销售,中化物产(青岛),莱州市中海油销售,东营中海油交发油品,淄博赛福橡塑,总参谋部第六十研究所," +
  107. "中国融通科学研究院集团,融通科学院,融通科学研究院,融通资源(海南),融通资源安徽,融通传媒,北京君通银轮宾馆,新华工程咨询,中国融通安庆医院,上海411医院,安庆116医院,淮安82医院,莆田95医院,鹰潭184医院,镇江359医院,苏州100医院,连云港149医院,马鞍山86医院,宁德442医院,郴州198医院,柳州158医院,曲靖69医院,成都81骨科医院,新疆474医院,临夏7医院,泰安88医院,淄博148医院,包头291医院,沈阳121医院,开封155医院,郑州460医院,信阳154医院,天津272医院,正定256医院,邯郸285医院"
  108. tagT1 := TagMatching{
  109. tagName: "融通类",
  110. matchField: []string{"buyer"},
  111. matchKey: trong,
  112. matchKeyReg: GetRegex(trong),
  113. }
  114. matchArr = append(matchArr, tagT1)
  115. //退役类
  116. tagTY := TagMatching{
  117. tagName: "退役类",
  118. matchField: []string{"buyer"},
  119. matchKey: "退役,军事供应站,军供站,转业军官培训中心,光荣医院,优抚医院,军粮,军休所,离退休干部休养所,军事休养所,烈士陵园,烈士纪念设施保护中心",
  120. matchKeyReg: GetRegex("退役,军事供应站,军供站,转业军官培训中心,光荣医院,优抚医院,军粮,军休所,离退休干部休养所,军事休养所,烈士陵园,烈士纪念设施保护中心"),
  121. }
  122. matchArr = append(matchArr, tagTY)
  123. //融办类
  124. tagRB := TagMatching{
  125. tagName: "融办类",
  126. matchField: []string{"buyer"},
  127. matchKey: "军民融合发展,军民融合发展委员会办公室,军民融合办,军融办,边海防委员会,边防委员会,海防委员会,国防动员委员会,核工业地质局,国防科工局",
  128. matchKeyReg: GetRegex("军民融合发展,军民融合发展委员会办公室,军民融合办,军融办,边海防委员会,边防委员会,海防委员会,国防动员委员会,核工业地质局,国防科工局"),
  129. }
  130. matchArr = append(matchArr, tagRB)
  131. //某某类
  132. tagMM := TagMatching{
  133. tagName: "某某类",
  134. matchField: []string{"title", "detail", "filetext"},
  135. matchKey: "某部,某部队,某单位,某校,某学院,某大学,某院",
  136. matchKeyReg: GetRegex("某部,某部队,某单位,某校,某学院,某大学,某院"),
  137. addField: []string{"title", "detail", "filetext"},
  138. addKey: "军队采购网,全军武器装备采购信息网,军队,装备科研生产单位,保密二级,保密一级,涉密信息系统集成",
  139. addKeyReg: GetRegex("军队采购网,全军武器装备采购信息网,军队,装备科研生产单位,保密二级,保密一级,涉密信息系统集成"),
  140. }
  141. matchArr = append(matchArr, tagMM)
  142. mgo := &mongodb.MongodbSim{
  143. MongodbAddr: "192.168.3.206:27002",
  144. DbName: "qfw_data",
  145. Size: 10,
  146. UserName: "root",
  147. Password: "root",
  148. Direct: true,
  149. }
  150. mgo.InitPool()
  151. id := "5a4b3c8440d2d9bbe8b5d437"
  152. tmp, _ := mgo.FindById("bidding", id, nil)
  153. //tmpJ := map[string]interface{}{
  154. // "buyer": "军民融合办",
  155. // "title": "某学院",
  156. // "detail": "军队采购网",
  157. // "projectname": "维稳",
  158. // "purchasing": "",
  159. // "filetext": "装备科研生产单位",
  160. // "site": "军队采购网",
  161. //}
  162. globalResult, kes, ads := TaskTags(*tmp, globalRegs)
  163. fmt.Println("globalResult", globalResult)
  164. if len(globalResult) > 0 {
  165. res, ks, ads := TaskTags(*tmp, matchArr)
  166. fmt.Println("res", res, ks, ads)
  167. update := map[string]interface{}{
  168. "mobile_tag": res,
  169. }
  170. mgo.UpdateById("bidding", id, map[string]interface{}{"$set": update})
  171. } else {
  172. mgo.UpdateById("bidding", id, map[string]interface{}{"$set": map[string]interface{}{"mobile_tag": nil}})
  173. }
  174. log.Println("globalResult", kes, ads)
  175. }