Parcourir la source

备份-抽取+判重

zhengkun il y a 4 ans
Parent
commit
3d0cf44431

+ 4 - 4
data_monitoring/listen_data/src/config.json

@@ -1,18 +1,18 @@
 {
   "save_mgodb": {
-    "addr": "192.168.3.207:27092",
+    "addr": "127.0.0.1:12009",
     "db": "zhengkun",
     "coll": "site_unique_new",
     "pool": 5
   },
   "site_mgodb": {
-    "addr": "192.168.3.207:27092",
+    "addr": "127.0.0.1:12009",
     "db": "zhengkun",
     "coll": "data_bak_copy",
     "pool": 5
   },
   "python_mgodb": {
-    "addr": "192.168.3.207:27092",
+    "addr": "127.0.0.1:12009",
     "db": "zhengkun",
     "coll": "bidding_copy",
     "pool": 5
@@ -20,7 +20,7 @@
   "site_unique_name":"site_unique_new",
   "smtpMail": {
     "from": "zhengkun@topnet.net.cn",
-    "to": "zhaoyujian@topnet.net.cn,fengweiqiang@topnet.net.cn",
+    "to": "zhengkun@topnet.net.cn",
     "cc": "zhengkun@topnet.net.cn",
     "smtpHost": "smtp.qq.com",
     "smtpPort": "465",

+ 425 - 0
data_monitoring/listen_data/src/gat.txt

@@ -0,0 +1,425 @@
+710000,台湾,100000,台湾,1,,,中国,台湾,121.509,25.0443,Taiwan
+710100,台北市,710000,台北,2,02,1,中国,台湾,台北市,121.565,25.0378,Taipei
+710101,松山区,710100,松山,3,02,105,中国,台湾,台北市,松山区,121.577,25.0497,Songshan
+710102,信义区,710100,信义,3,02,110,中国,台湾,台北市,信义区,121.751,25.1294,Xinyi
+710103,大安区,710100,大安,3,02,106,中国,台湾,台北市,大安区,121.535,25.0264,Da\an
+710104,中山区,710100,中山,3,02,104,中国,台湾,台北市,中山区,121.533,25.0644,Zhongshan
+710105,中正区,710100,中正,3,02,100,中国,台湾,台北市,中正区,121.518,25.0324,Zhongzheng
+710106,大同区,710100,大同,3,02,103,中国,台湾,台北市,大同区,121.516,25.066,Datong
+710107,万华区,710100,万华,3,02,108,中国,台湾,台北市,万华区,121.499,25.0319,Wanhua
+710108,文山区,710100,文山,3,02,116,中国,台湾,台北市,文山区,121.57,24.9898,Wenshan
+710109,南港区,710100,南港,3,02,115,中国,台湾,台北市,南港区,121.607,25.0547,Nangang
+710110,内湖区,710100,内湖,3,02,114,中国,台湾,台北市,内湖区,121.589,25.0697,Nahu
+710111,士林区,710100,士林,3,02,111,中国,台湾,台北市,士林区,121.52,25.0928,Shilin
+710112,北投区,710100,北投,3,02,112,中国,台湾,台北市,北投区,121.501,25.1324,Beitou
+710200,高雄市,710000,高雄,2,07,8,中国,台湾,高雄市,120.312,22.6209,Kaohsiung
+710201,盐埕区,710200,盐埕,3,07,803,中国,台湾,高雄市,盐埕区,120.287,22.6247,Yancheng
+710202,鼓山区,710200,鼓山,3,07,804,中国,台湾,高雄市,鼓山区,120.281,22.6368,Gushan
+710203,左营区,710200,左营,3,07,813,中国,台湾,高雄市,左营区,120.295,22.6901,Zuoying
+710204,楠梓区,710200,楠梓,3,07,811,中国,台湾,高雄市,楠梓区,120.326,22.7284,Nanzi
+710205,三民区,710200,三民,3,07,807,中国,台湾,高雄市,三民区,120.3,22.6477,Sanmin
+710206,新兴区,710200,新兴,3,07,800,中国,台湾,高雄市,新兴区,120.31,22.6311,Xinxing
+710207,前金区,710200,前金,3,07,801,中国,台湾,高雄市,前金区,120.294,22.6274,Qianjin
+710208,苓雅区,710200,苓雅,3,07,802,中国,台湾,高雄市,苓雅区,120.312,22.6218,Lingya
+710209,前镇区,710200,前镇,3,07,806,中国,台湾,高雄市,前镇区,120.319,22.5864,Qianzhen
+710210,旗津区,710200,旗津,3,07,805,中国,台湾,高雄市,旗津区,120.284,22.5906,Qijin
+710211,小港区,710200,小港,3,07,812,中国,台湾,高雄市,小港区,120.338,22.5654,Xiaogang
+710212,凤山区,710200,凤山,3,07,830,中国,台湾,高雄市,凤山区,120.357,22.6269,Fengshan
+710213,林园区,710200,林园,3,07,832,中国,台湾,高雄市,林园区,120.396,22.5015,Linyuan
+710214,大寮区,710200,大寮,3,07,831,中国,台湾,高雄市,大寮区,120.395,22.6054,Daliao
+710215,大树区,710200,大树,3,07,840,中国,台湾,高雄市,大树区,120.433,22.6934,Dashu
+710216,大社区,710200,大社,3,07,815,中国,台湾,高雄市,大社区,120.347,22.73,Dashe
+710217,仁武区,710200,仁武,3,07,814,中国,台湾,高雄市,仁武区,120.348,22.7019,Renwu
+710218,鸟松区,710200,鸟松,3,07,833,中国,台湾,高雄市,鸟松区,120.364,22.6593,Niaosong
+710219,冈山区,710200,冈山,3,07,820,中国,台湾,高雄市,冈山区,120.296,22.7968,Gangshan
+710220,桥头区,710200,桥头,3,07,825,中国,台湾,高雄市,桥头区,120.306,22.7575,Qiaotou
+710221,燕巢区,710200,燕巢,3,07,824,中国,台湾,高雄市,燕巢区,120.362,22.7934,Yanchao
+710222,田寮区,710200,田寮,3,07,823,中国,台湾,高雄市,田寮区,120.36,22.8693,Tianliao
+710223,阿莲区,710200,阿莲,3,07,822,中国,台湾,高雄市,阿莲区,120.327,22.8837,Alian
+710224,路竹区,710200,路竹,3,07,821,中国,台湾,高雄市,路竹区,120.262,22.8569,Luzhu
+710225,湖内区,710200,湖内,3,07,829,中国,台湾,高雄市,湖内区,120.212,22.9082,Huna
+710226,茄萣区,710200,茄萣,3,07,852,中国,台湾,高雄市,茄萣区,120.183,22.9066,Qieding
+710227,永安区,710200,永安,3,07,828,中国,台湾,高雄市,永安区,120.225,22.8186,Yong\an
+710228,弥陀区,710200,弥陀,3,07,827,中国,台湾,高雄市,弥陀区,120.247,22.7829,Mituo
+710229,梓官区,710200,梓官,3,07,826,中国,台湾,高雄市,梓官区,120.267,22.7605,Ziguan
+710230,旗山区,710200,旗山,3,07,842,中国,台湾,高雄市,旗山区,120.484,22.8885,Qishan
+710231,美浓区,710200,美浓,3,07,843,中国,台湾,高雄市,美浓区,120.542,22.8979,Meinong
+710232,六龟区,710200,六龟,3,07,844,中国,台湾,高雄市,六龟区,120.633,22.9979,Liugui
+710233,甲仙区,710200,甲仙,3,07,847,中国,台湾,高雄市,甲仙区,120.591,23.0847,Jiaxian
+710234,杉林区,710200,杉林,3,07,846,中国,台湾,高雄市,杉林区,120.539,22.9707,Shanlin
+710235,内门区,710200,内门,3,07,845,中国,台湾,高雄市,内门区,120.462,22.9434,Namen
+710236,茂林区,710200,茂林,3,07,851,中国,台湾,高雄市,茂林区,120.663,22.8862,Maolin
+710237,桃源区,710200,桃源,3,07,848,中国,台湾,高雄市,桃源区,120.76,23.1591,Taoyuan
+710238,那玛夏区,710200,那玛夏,3,07,849,中国,台湾,高雄市,那玛夏区,120.693,23.217,Namaxia
+710300,基隆市,710000,基隆,2,02,2,中国,台湾,基隆市,121.746,25.1307,Keelung
+710301,中正区,710300,中正,3,02,202,中国,台湾,基隆市,中正区,121.518,25.0324,Zhongzheng
+710302,七堵区,710300,七堵,3,02,206,中国,台湾,基隆市,七堵区,121.713,25.0957,Qidu
+710303,暖暖区,710300,暖暖,3,02,205,中国,台湾,基隆市,暖暖区,121.736,25.0998,Nuannuan
+710304,仁爱区,710300,仁爱,3,02,200,中国,台湾,基隆市,仁爱区,121.741,25.1275,Renai
+710305,中山区,710300,中山,3,02,203,中国,台湾,基隆市,中山区,121.739,25.134,Zhongshan
+710306,安乐区,710300,安乐,3,02,204,中国,台湾,基隆市,安乐区,121.723,25.1209,Anle
+710307,信义区,710300,信义,3,02,201,中国,台湾,基隆市,信义区,121.751,25.1294,Xinyi
+710400,台中市,710000,台中,2,04,4,中国,台湾,台中市,120.679,24.1386,Taichung
+710401,中区,710400,中区,3,04,400,中国,台湾,台中市,中区,120.68,24.1438,Zhongqu
+710402,东区,710400,东区,3,04,401,中国,台湾,台中市,东区,120.704,24.1366,Dongqu
+710403,南区,710400,南区,3,04,402,中国,台湾,台中市,南区,120.189,22.9609,Nanqu
+710404,西区,710400,西区,3,04,403,中国,台湾,台中市,西区,120.671,24.1414,Xiqu
+710405,北区,710400,北区,3,04,404,中国,台湾,台中市,北区,120.682,24.166,Beiqu
+710406,西屯区,710400,西屯,3,04,407,中国,台湾,台中市,西屯区,120.64,24.1813,Xitun
+710407,南屯区,710400,南屯,3,04,408,中国,台湾,台中市,南屯区,120.643,24.1383,Nantun
+710408,北屯区,710400,北屯,3,04,406,中国,台湾,台中市,北屯区,120.686,24.1822,Beitun
+710409,丰原区,710400,丰原,3,04,420,中国,台湾,台中市,丰原区,120.718,24.2422,Fengyuan
+710410,东势区,710400,东势,3,04,423,中国,台湾,台中市,东势区,120.828,24.2586,Dongshi
+710411,大甲区,710400,大甲,3,04,437,中国,台湾,台中市,大甲区,120.622,24.3489,Dajia
+710412,清水区,710400,清水,3,04,436,中国,台湾,台中市,清水区,120.56,24.2687,Qingshui
+710413,沙鹿区,710400,沙鹿,3,04,433,中国,台湾,台中市,沙鹿区,120.566,24.2335,Shalu
+710414,梧栖区,710400,梧栖,3,04,435,中国,台湾,台中市,梧栖区,120.532,24.255,Wuqi
+710415,后里区,710400,后里,3,04,421,中国,台湾,台中市,后里区,120.711,24.3049,Houli
+710416,神冈区,710400,神冈,3,04,429,中国,台湾,台中市,神冈区,120.662,24.2578,Shengang
+710417,潭子区,710400,潭子,3,04,427,中国,台湾,台中市,潭子区,120.705,24.2095,Tanzi
+710418,大雅区,710400,大雅,3,04,428,中国,台湾,台中市,大雅区,120.648,24.2292,Daya
+710419,新社区,710400,新社,3,04,426,中国,台湾,台中市,新社区,120.81,24.2341,Xinshe
+710420,石冈区,710400,石冈,3,04,422,中国,台湾,台中市,石冈区,120.78,24.275,Shigang
+710421,外埔区,710400,外埔,3,04,438,中国,台湾,台中市,外埔区,120.654,24.332,Waipu
+710422,大安区,710400,大安,3,04,439,中国,台湾,台中市,大安区,120.587,24.3461,Da\an
+710423,乌日区,710400,乌日,3,04,414,中国,台湾,台中市,乌日区,120.624,24.1045,Wuri
+710424,大肚区,710400,大肚,3,04,432,中国,台湾,台中市,大肚区,120.541,24.1537,Dadu
+710425,龙井区,710400,龙井,3,04,434,中国,台湾,台中市,龙井区,120.546,24.1927,Longjing
+710426,雾峰区,710400,雾峰,3,04,413,中国,台湾,台中市,雾峰区,120.7,24.0615,Wufeng
+710427,太平区,710400,太平,3,04,411,中国,台湾,台中市,太平区,120.719,24.1265,Taiping
+710428,大里区,710400,大里,3,04,412,中国,台湾,台中市,大里区,120.678,24.0994,Dali
+710429,和平区,710400,和平,3,04,424,中国,台湾,台中市,和平区,120.883,24.1748,Heping
+710500,台南市,710000,台南,2,06,7,中国,台湾,台南市,120.279,23.1725,Tainan
+710501,东区,710500,东区,3,06,701,中国,台湾,台南市,东区,120.224,22.9801,Dongqu
+710502,南区,710500,南区,3,06,702,中国,台湾,台南市,南区,120.189,22.9609,Nanqu
+710504,北区,710500,北区,3,06,704,中国,台湾,台南市,北区,120.682,24.166,Beiqu
+710506,安南区,710500,安南,3,06,709,中国,台湾,台南市,安南区,120.185,23.0472,Annan
+710507,安平区,710500,安平,3,06,708,中国,台湾,台南市,安平区,120.167,23.0008,Anping
+710508,中西区,710500,中西,3,06,700,中国,台湾,台南市,中西区,120.206,22.9922,Zhongxi
+710509,新营区,710500,新营,3,06,730,中国,台湾,台南市,新营区,120.317,23.3103,Xinying
+710510,盐水区,710500,盐水,3,06,737,中国,台湾,台南市,盐水区,120.266,23.3198,Yanshui
+710511,白河区,710500,白河,3,06,732,中国,台湾,台南市,白河区,120.416,23.3512,Baihe
+710512,柳营区,710500,柳营,3,06,736,中国,台湾,台南市,柳营区,120.311,23.2781,Liuying
+710513,后壁区,710500,后壁,3,06,731,中国,台湾,台南市,后壁区,120.363,23.3667,Houbi
+710514,东山区,710500,东山,3,06,733,中国,台湾,台南市,东山区,120.404,23.3261,Dongshan
+710515,麻豆区,710500,麻豆,3,06,721,中国,台湾,台南市,麻豆区,120.248,23.1817,Madou
+710516,下营区,710500,下营,3,06,735,中国,台湾,台南市,下营区,120.264,23.2354,Xiaying
+710517,六甲区,710500,六甲,3,06,734,中国,台湾,台南市,六甲区,120.348,23.2319,Liujia
+710518,官田区,710500,官田,3,06,720,中国,台湾,台南市,官田区,120.314,23.1947,Guantian
+710519,大内区,710500,大内,3,06,742,中国,台湾,台南市,大内区,120.349,23.1195,Dana
+710520,佳里区,710500,佳里,3,06,722,中国,台湾,台南市,佳里区,120.177,23.1651,Jiali
+710521,学甲区,710500,学甲,3,06,726,中国,台湾,台南市,学甲区,120.18,23.2323,Xuejia
+710522,西港区,710500,西港,3,06,723,中国,台湾,台南市,西港区,120.204,23.1231,Xigang
+710523,七股区,710500,七股,3,06,724,中国,台湾,台南市,七股区,120.14,23.1405,Qigu
+710524,将军区,710500,将军,3,06,725,中国,台湾,台南市,将军区,120.157,23.1995,Jiangjun
+710525,北门区,710500,北门,3,06,727,中国,台湾,台南市,北门区,120.126,23.2671,Beimen
+710526,新化区,710500,新化,3,06,712,中国,台湾,台南市,新化区,120.311,23.0385,Xinhua
+710527,善化区,710500,善化,3,06,741,中国,台湾,台南市,善化区,120.297,23.1323,Shanhua
+710528,新市区,710500,新市,3,06,744,中国,台湾,台南市,新市区,120.295,23.079,Xinshi
+710529,安定区,710500,安定,3,06,745,中国,台湾,台南市,安定区,120.237,23.1215,Anding
+710530,山上区,710500,山上,3,06,743,中国,台湾,台南市,山上区,120.353,23.1032,Shanshang
+710531,玉井区,710500,玉井,3,06,714,中国,台湾,台南市,玉井区,120.46,23.1239,Yujing
+710532,楠西区,710500,楠西,3,06,715,中国,台湾,台南市,楠西区,120.485,23.1735,Nanxi
+710533,南化区,710500,南化,3,06,716,中国,台湾,台南市,南化区,120.477,23.0426,Nanhua
+710534,左镇区,710500,左镇,3,06,713,中国,台湾,台南市,左镇区,120.407,23.058,Zuozhen
+710535,仁德区,710500,仁德,3,06,717,中国,台湾,台南市,仁德区,120.252,22.9722,Rende
+710536,归仁区,710500,归仁,3,06,711,中国,台湾,台南市,归仁区,120.294,22.9671,Guiren
+710537,关庙区,710500,关庙,3,06,718,中国,台湾,台南市,关庙区,120.328,22.9629,Guanmiao
+710538,龙崎区,710500,龙崎,3,06,719,中国,台湾,台南市,龙崎区,120.361,22.9657,Longqi
+710539,永康区,710500,永康,3,06,710,中国,台湾,台南市,永康区,120.257,23.0261,Yongkang
+710600,新竹市,710000,新竹,2,03,3,中国,台湾,新竹市,120.969,24.8067,Hsinchu
+710601,东区,710600,东区,3,03,300,中国,台湾,新竹市,东区,120.97,24.8013,Dongqu
+710602,北区,710600,北区,3,03,,中国,台湾,新竹市,北区,120.682,24.166,Beiqu
+710603,香山区,710600,香山,3,03,,中国,台湾,新竹市,香山区,120.957,24.7689,Xiangshan
+710700,嘉义市,710000,嘉义,2,05,6,中国,台湾,嘉义市,120.453,23.4816,Chiayi
+710701,东区,710700,东区,3,05,600,中国,台湾,嘉义市,东区,120.458,23.4862,Dongqu
+710702,西区,710700,西区,3,05,600,中国,台湾,嘉义市,西区,120.437,23.473,Xiqu
+710800,新北市,710000,新北,2,02,2,中国,台湾,新北市,121.466,25.0124,NewTaipei
+710801,板桥区,710800,板桥,3,02,220,中国,台湾,新北市,板桥区,121.459,25.0096,Banqiao
+710802,三重区,710800,三重,3,02,241,中国,台湾,新北市,三重区,121.488,25.0615,Sanzhong
+710803,中和区,710800,中和,3,02,235,中国,台湾,新北市,中和区,121.499,24.9994,Zhonghe
+710804,永和区,710800,永和,3,02,234,中国,台湾,新北市,永和区,121.514,25.0078,Yonghe
+710805,新庄区,710800,新庄,3,02,242,中国,台湾,新北市,新庄区,121.45,25.0359,Xinzhuang
+710806,新店区,710800,新店,3,02,231,中国,台湾,新北市,新店区,121.542,24.9676,Xindian
+710807,树林区,710800,树林,3,02,238,中国,台湾,新北市,树林区,121.421,24.9907,Shulin
+710808,莺歌区,710800,莺歌,3,02,239,中国,台湾,新北市,莺歌区,121.355,24.9554,Yingge
+710809,三峡区,710800,三峡,3,02,237,中国,台湾,新北市,三峡区,121.369,24.9343,Sanxia
+710810,淡水区,710800,淡水,3,02,251,中国,台湾,新北市,淡水区,121.441,25.1695,Danshui
+710811,汐止区,710800,汐止,3,02,221,中国,台湾,新北市,汐止区,121.629,25.063,Xizhi
+710812,瑞芳区,710800,瑞芳,3,02,224,中国,台湾,新北市,瑞芳区,121.81,25.1089,Ruifang
+710813,土城区,710800,土城,3,02,236,中国,台湾,新北市,土城区,121.443,24.9722,Tucheng
+710814,芦洲区,710800,芦洲,3,02,247,中国,台湾,新北市,芦洲区,121.474,25.0849,Luzhou
+710815,五股区,710800,五股,3,02,248,中国,台湾,新北市,五股区,121.438,25.0827,Wugu
+710816,泰山区,710800,泰山,3,02,243,中国,台湾,新北市,泰山区,121.431,25.0589,Taishan
+710817,林口区,710800,林口,3,02,244,中国,台湾,新北市,林口区,121.392,25.0775,Linkou
+710818,深坑区,710800,深坑,3,02,222,中国,台湾,新北市,深坑区,121.616,25.0023,Shenkeng
+710819,石碇区,710800,石碇,3,02,223,中国,台湾,新北市,石碇区,121.659,24.9917,Shiding
+710820,坪林区,710800,坪林,3,02,232,中国,台湾,新北市,坪林区,121.711,24.9374,Pinglin
+710821,三芝区,710800,三芝,3,02,252,中国,台湾,新北市,三芝区,121.501,25.258,Sanzhi
+710822,石门区,710800,石门,3,02,253,中国,台湾,新北市,石门区,121.568,25.2904,Shimen
+710823,八里区,710800,八里,3,02,249,中国,台湾,新北市,八里区,121.398,25.1467,Bali
+710824,平溪区,710800,平溪,3,02,226,中国,台湾,新北市,平溪区,121.738,25.0257,Pingxi
+710825,双溪区,710800,双溪,3,02,227,中国,台湾,新北市,双溪区,121.866,25.0334,Shuangxi
+710826,贡寮区,710800,贡寮,3,02,228,中国,台湾,新北市,贡寮区,121.908,25.0224,Gongliao
+710827,金山区,710800,金山,3,02,208,中国,台湾,新北市,金山区,121.636,25.2219,Jinshan
+710828,万里区,710800,万里,3,02,207,中国,台湾,新北市,万里区,121.689,25.1812,Wanli
+710829,乌来区,710800,乌来,3,02,233,中国,台湾,新北市,乌来区,121.551,24.8653,Wulai
+712200,宜兰县,710000,宜兰,2,03,2,中国,台湾,宜兰县,121.5,24.6,Yilan
+712201,宜兰市,712200,宜兰,3,03,260,中国,台湾,宜兰县,宜兰市,121.753,24.7517,Yilan
+712221,罗东镇,712200,罗东,3,03,265,中国,台湾,宜兰县,罗东镇,121.767,24.677,Luodong
+712222,苏澳镇,712200,苏澳,3,03,270,中国,台湾,宜兰县,苏澳镇,121.843,24.5946,Suao
+712223,头城镇,712200,头城,3,03,261,中国,台湾,宜兰县,头城镇,121.823,24.8592,Toucheng
+712224,礁溪乡,712200,礁溪,3,03,262,中国,台湾,宜兰县,礁溪乡,121.767,24.8223,Jiaoxi
+712225,壮围乡,712200,壮围,3,03,263,中国,台湾,宜兰县,壮围乡,121.782,24.7449,Zhuangwei
+712226,员山乡,712200,员山,3,03,264,中国,台湾,宜兰县,员山乡,121.722,24.7418,Yuanshan
+712227,冬山乡,712200,冬山,3,03,269,中国,台湾,宜兰县,冬山乡,121.792,24.6345,Dongshan
+712228,五结乡,712200,五结,3,03,268,中国,台湾,宜兰县,五结乡,121.798,24.6846,Wujie
+712229,三星乡,712200,三星,3,03,266,中国,台湾,宜兰县,三星乡,121.003,23.7753,Sanxing
+712230,大同乡,712200,大同,3,03,267,中国,台湾,宜兰县,大同乡,121.606,24.676,Datong
+712231,南澳乡,712200,南澳,3,03,272,中国,台湾,宜兰县,南澳乡,121.8,24.4654,Nanao
+712300,桃园县,710000,桃园,2,03,3,中国,台湾,桃园县,121.083,25,Taoyuan
+712301,桃园市,712300,桃园,3,03,330,中国,台湾,桃园县,桃园市,121.301,24.9938,Taoyuan
+712302,中坜市,712300,中坜,3,03,320,中国,台湾,桃园县,中坜市,121.225,24.9654,Zhongli
+712303,平镇市,712300,平镇,3,03,324,中国,台湾,桃园县,平镇市,121.218,24.9458,Pingzhen
+712304,八德市,712300,八德,3,03,334,中国,台湾,桃园县,八德市,121.285,24.9287,Bade
+712305,杨梅市,712300,杨梅,3,03,326,中国,台湾,桃园县,杨梅市,121.146,24.9076,Yangmei
+712306,芦竹市,712300,芦竹,3,03,338,中国,台湾,桃园县,芦竹市,121.292,25.0454,Luzhu
+712321,大溪镇,712300,大溪,3,03,335,中国,台湾,桃园县,大溪镇,121.287,24.8806,Daxi
+712324,大园乡,712300,大园,3,03,337,中国,台湾,桃园县,大园乡,121.196,25.0645,Dayuan
+712325,龟山乡,712300,龟山,3,03,333,中国,台湾,桃园县,龟山乡,121.338,24.9925,Guishan
+712327,龙潭乡,712300,龙潭,3,03,325,中国,台湾,桃园县,龙潭乡,121.216,24.8639,Longtan
+712329,新屋乡,712300,新屋,3,03,327,中国,台湾,桃园县,新屋乡,121.106,24.9722,Xinwu
+712330,观音乡,712300,观音,3,03,328,中国,台湾,桃园县,观音乡,121.078,25.0333,Guanyin
+712331,复兴乡,712300,复兴,3,03,336,中国,台湾,桃园县,复兴乡,121.353,24.8209,Fuxing
+712400,新竹县,710000,新竹,2,03,3,中国,台湾,新竹县,121.16,24.6,Hsinchu
+712401,竹北市,712400,竹北,3,03,302,中国,台湾,新竹县,竹北市,121.004,24.8397,Zhubei
+712421,竹东镇,712400,竹东,3,03,310,中国,台湾,新竹县,竹东镇,121.086,24.7336,Zhudong
+712422,新埔镇,712400,新埔,3,03,305,中国,台湾,新竹县,新埔镇,121.073,24.8248,Xinpu
+712423,关西镇,712400,关西,3,03,306,中国,台湾,新竹县,关西镇,121.177,24.7888,Guanxi
+712424,湖口乡,712400,湖口,3,03,303,中国,台湾,新竹县,湖口乡,121.044,24.9039,Hukou
+712425,新丰乡,712400,新丰,3,03,304,中国,台湾,新竹县,新丰乡,120.983,24.8996,Xinfeng
+712426,芎林乡,712400,芎林,3,03,307,中国,台湾,新竹县,芎林乡,121.077,24.7744,Xionglin
+712427,横山乡,712400,横山,3,03,312,中国,台湾,新竹县,横山乡,121.116,24.7208,Hengshan
+712428,北埔乡,712400,北埔,3,03,314,中国,台湾,新竹县,北埔乡,121.053,24.6971,Beipu
+712429,宝山乡,712400,宝山,3,03,308,中国,台湾,新竹县,宝山乡,120.986,24.761,Baoshan
+712430,峨眉乡,712400,峨眉,3,03,315,中国,台湾,新竹县,峨眉乡,121.015,24.6861,Emei
+712431,尖石乡,712400,尖石,3,03,313,中国,台湾,新竹县,尖石乡,121.198,24.7044,Jianshi
+712432,五峰乡,712400,五峰,3,03,311,中国,台湾,新竹县,五峰乡,121.003,23.7753,Wufeng
+712500,苗栗县,710000,苗栗,2,037,3,中国,台湾,苗栗县,120.75,24.5,Miaoli
+712501,苗栗市,712500,苗栗,3,037,360,中国,台湾,苗栗县,苗栗市,120.819,24.5615,Miaoli
+712521,苑里镇,712500,苑里,3,037,358,中国,台湾,苗栗县,苑里镇,120.649,24.4417,Yuanli
+712522,通霄镇,712500,通霄,3,037,357,中国,台湾,苗栗县,通霄镇,120.677,24.4891,Tongxiao
+712523,竹南镇,712500,竹南,3,037,350,中国,台湾,苗栗县,竹南镇,120.873,24.6855,Zhunan
+712524,头份镇,712500,头份,3,037,351,中国,台湾,苗栗县,头份镇,120.895,24.688,Toufen
+712525,后龙镇,712500,后龙,3,037,356,中国,台湾,苗栗县,后龙镇,120.786,24.6126,Houlong
+712526,卓兰镇,712500,卓兰,3,037,369,中国,台湾,苗栗县,卓兰镇,120.823,24.3095,Zhuolan
+712527,大湖乡,712500,大湖,3,037,364,中国,台湾,苗栗县,大湖乡,120.864,24.4225,Dahu
+712528,公馆乡,712500,公馆,3,037,363,中国,台湾,苗栗县,公馆乡,120.823,24.4991,Gongguan
+712529,铜锣乡,712500,铜锣,3,037,366,中国,台湾,苗栗县,铜锣乡,121.003,23.7753,Tongluo
+712530,南庄乡,712500,南庄,3,037,353,中国,台湾,苗栗县,南庄乡,120.995,24.5968,Nanzhuang
+712531,头屋乡,712500,头屋,3,037,362,中国,台湾,苗栗县,头屋乡,120.847,24.5742,Touwu
+712532,三义乡,712500,三义,3,037,367,中国,台湾,苗栗县,三义乡,120.742,24.3503,Sanyi
+712533,西湖乡,712500,西湖,3,037,368,中国,台湾,苗栗县,西湖乡,121.003,23.7753,Xihu
+712534,造桥乡,712500,造桥,3,037,361,中国,台湾,苗栗县,造桥乡,120.862,24.6375,Zaoqiao
+712535,三湾乡,712500,三湾,3,037,352,中国,台湾,苗栗县,三湾乡,120.951,24.6511,Sanwan
+712536,狮潭乡,712500,狮潭,3,037,354,中国,台湾,苗栗县,狮潭乡,120.918,24.54,Shitan
+712537,泰安乡,712500,泰安,3,037,365,中国,台湾,苗栗县,泰安乡,120.904,24.4426,Tai\an
+712700,彰化县,710000,彰化,2,04,5,中国,台湾,彰化县,120.416,24,Changhua
+712701,彰化市,712700,彰化市,3,04,500,中国,台湾,彰化县,彰化市,120.542,24.0809,Zhanghuashi
+712721,鹿港镇,712700,鹿港,3,04,505,中国,台湾,彰化县,鹿港镇,120.435,24.0569,Lugang
+712722,和美镇,712700,和美,3,04,508,中国,台湾,彰化县,和美镇,120.5,24.1109,Hemei
+712723,线西乡,712700,线西,3,04,507,中国,台湾,彰化县,线西乡,120.466,24.1287,Xianxi
+712724,伸港乡,712700,伸港,3,04,509,中国,台湾,彰化县,伸港乡,120.484,24.1461,Shengang
+712725,福兴乡,712700,福兴,3,04,506,中国,台湾,彰化县,福兴乡,120.444,24.0479,Fuxing
+712726,秀水乡,712700,秀水,3,04,504,中国,台湾,彰化县,秀水乡,120.503,24.0353,Xiushui
+712727,花坛乡,712700,花坛,3,04,503,中国,台湾,彰化县,花坛乡,120.538,24.0294,Huatan
+712728,芬园乡,712700,芬园,3,04,502,中国,台湾,彰化县,芬园乡,120.629,24.0137,Fenyuan
+712729,员林镇,712700,员林,3,04,510,中国,台湾,彰化县,员林镇,120.575,23.959,Yuanlin
+712730,溪湖镇,712700,溪湖,3,04,514,中国,台湾,彰化县,溪湖镇,120.479,23.9623,Xihu
+712731,田中镇,712700,田中,3,04,520,中国,台湾,彰化县,田中镇,120.581,23.8617,Tianzhong
+712732,大村乡,712700,大村,3,04,515,中国,台湾,彰化县,大村乡,120.541,23.9937,Dacun
+712733,埔盐乡,712700,埔盐,3,04,516,中国,台湾,彰化县,埔盐乡,120.464,24.0003,Puyan
+712734,埔心乡,712700,埔心,3,04,513,中国,台湾,彰化县,埔心乡,120.544,23.953,Puxin
+712735,永靖乡,712700,永靖,3,04,512,中国,台湾,彰化县,永靖乡,120.548,23.9247,Yongjing
+712736,社头乡,712700,社头,3,04,511,中国,台湾,彰化县,社头乡,120.583,23.8967,Shetou
+712737,二水乡,712700,二水,3,04,530,中国,台湾,彰化县,二水乡,120.619,23.807,Ershui
+712738,北斗镇,712700,北斗,3,04,521,中国,台湾,彰化县,北斗镇,120.52,23.8709,Beidou
+712739,二林镇,712700,二林,3,04,526,中国,台湾,彰化县,二林镇,120.374,23.8998,Erlin
+712740,田尾乡,712700,田尾,3,04,522,中国,台湾,彰化县,田尾乡,120.525,23.8907,Tianwei
+712741,埤头乡,712700,埤头,3,04,523,中国,台湾,彰化县,埤头乡,120.463,23.8913,Pitou
+712742,芳苑乡,712700,芳苑,3,04,528,中国,台湾,彰化县,芳苑乡,120.32,23.9242,Fangyuan
+712743,大城乡,712700,大城,3,04,527,中国,台湾,彰化县,大城乡,120.321,23.8524,Dacheng
+712744,竹塘乡,712700,竹塘,3,04,525,中国,台湾,彰化县,竹塘乡,120.427,23.8601,Zhutang
+712745,溪州乡,712700,溪州,3,04,524,中国,台湾,彰化县,溪州乡,120.499,23.8512,Xizhou
+712800,南投县,710000,南投,2,049,5,中国,台湾,南投县,120.83,23.83,Nantou
+712801,南投市,712800,南投市,3,049,540,中国,台湾,南投县,南投市,120.684,23.91,Nantoushi
+712821,埔里镇,712800,埔里,3,049,545,中国,台湾,南投县,埔里镇,120.965,23.9648,Puli
+712822,草屯镇,712800,草屯,3,049,542,中国,台湾,南投县,草屯镇,120.68,23.9739,Caotun
+712823,竹山镇,712800,竹山,3,049,557,中国,台湾,南投县,竹山镇,120.672,23.7577,Zhushan
+712824,集集镇,712800,集集,3,049,552,中国,台湾,南投县,集集镇,120.784,23.829,Jiji
+712825,名间乡,712800,名间,3,049,551,中国,台湾,南投县,名间乡,120.703,23.8384,Mingjian
+712826,鹿谷乡,712800,鹿谷,3,049,558,中国,台湾,南投县,鹿谷乡,120.753,23.7445,Lugu
+712827,中寮乡,712800,中寮,3,049,541,中国,台湾,南投县,中寮乡,120.767,23.8789,Zhongliao
+712828,鱼池乡,712800,鱼池,3,049,555,中国,台湾,南投县,鱼池乡,120.936,23.8964,Yuchi
+712829,国姓乡,712800,国姓,3,049,544,中国,台湾,南投县,国姓乡,120.859,24.0423,Guoxing
+712830,水里乡,712800,水里,3,049,553,中国,台湾,南投县,水里乡,120.856,23.8121,Shuili
+712831,信义乡,712800,信义,3,049,556,中国,台湾,南投县,信义乡,120.855,23.6999,Xinyi
+712832,仁爱乡,712800,仁爱,3,049,546,中国,台湾,南投县,仁爱乡,121.134,24.0244,Renai
+712900,云林县,710000,云林,2,05,6,中国,台湾,云林县,120.25,23.75,Yunlin
+712901,斗六市,712900,斗六,3,05,640,中国,台湾,云林县,斗六市,120.527,23.6977,Douliu
+712921,斗南镇,712900,斗南,3,05,630,中国,台湾,云林县,斗南镇,120.479,23.6797,Dounan
+712922,虎尾镇,712900,虎尾,3,05,632,中国,台湾,云林县,虎尾镇,120.445,23.7082,Huwei
+712923,西螺镇,712900,西螺,3,05,648,中国,台湾,云林县,西螺镇,120.466,23.798,Xiluo
+712924,土库镇,712900,土库,3,05,633,中国,台湾,云林县,土库镇,120.393,23.6778,Tuku
+712925,北港镇,712900,北港,3,05,651,中国,台湾,云林县,北港镇,120.302,23.5755,Beigang
+712926,古坑乡,712900,古坑,3,05,646,中国,台湾,云林县,古坑乡,120.562,23.6426,Gukeng
+712927,大埤乡,712900,大埤,3,05,631,中国,台湾,云林县,大埤乡,120.431,23.6459,Dapi
+712928,莿桐乡,712900,莿桐,3,05,647,中国,台湾,云林县,莿桐乡,120.502,23.7608,Citong
+712929,林内乡,712900,林内,3,05,643,中国,台湾,云林县,林内乡,120.611,23.7587,Linna
+712930,二仑乡,712900,二仑,3,05,649,中国,台湾,云林县,二仑乡,120.415,23.7713,Erlun
+712931,仑背乡,712900,仑背,3,05,637,中国,台湾,云林县,仑背乡,120.354,23.7588,Lunbei
+712932,麦寮乡,712900,麦寮,3,05,638,中国,台湾,云林县,麦寮乡,120.252,23.7538,Mailiao
+712933,东势乡,712900,东势,3,05,635,中国,台湾,云林县,东势乡,120.253,23.6747,Dongshi
+712934,褒忠乡,712900,褒忠,3,05,634,中国,台湾,云林县,褒忠乡,120.31,23.6942,Baozhong
+712935,台西乡,712900,台西,3,05,636,中国,台湾,云林县,台西乡,120.196,23.7028,Taixi
+712936,元长乡,712900,元长,3,05,655,中国,台湾,云林县,元长乡,120.315,23.6495,Yuanchang
+712937,四湖乡,712900,四湖,3,05,654,中国,台湾,云林县,四湖乡,120.226,23.6377,Sihu
+712938,口湖乡,712900,口湖,3,05,653,中国,台湾,云林县,口湖乡,120.185,23.5824,Kouhu
+712939,水林乡,712900,水林,3,05,652,中国,台湾,云林县,水林乡,120.246,23.5726,Shuilin
+713000,嘉义县,710000,嘉义,2,05,6,中国,台湾,嘉义县,120.3,23.5,Chiayi
+713001,太保市,713000,太保,3,05,612,中国,台湾,嘉义县,太保市,120.333,23.4596,Taibao
+713002,朴子市,713000,朴子,3,05,613,中国,台湾,嘉义县,朴子市,120.247,23.465,Puzi
+713023,布袋镇,713000,布袋,3,05,625,中国,台湾,嘉义县,布袋镇,120.167,23.378,Budai
+713024,大林镇,713000,大林,3,05,622,中国,台湾,嘉义县,大林镇,120.471,23.6038,Dalin
+713025,民雄乡,713000,民雄,3,05,621,中国,台湾,嘉义县,民雄乡,120.429,23.5515,Minxiong
+713026,溪口乡,713000,溪口,3,05,623,中国,台湾,嘉义县,溪口乡,120.394,23.6022,Xikou
+713027,新港乡,713000,新港,3,05,616,中国,台湾,嘉义县,新港乡,120.348,23.5518,Xingang
+713028,六脚乡,713000,六脚,3,05,615,中国,台湾,嘉义县,六脚乡,120.291,23.4939,Liujiao
+713029,东石乡,713000,东石,3,05,614,中国,台湾,嘉义县,东石乡,120.154,23.4592,Dongshi
+713030,义竹乡,713000,义竹,3,05,624,中国,台湾,嘉义县,义竹乡,120.243,23.3363,Yizhu
+713031,鹿草乡,713000,鹿草,3,05,611,中国,台湾,嘉义县,鹿草乡,120.308,23.4108,Lucao
+713032,水上乡,713000,水上,3,05,608,中国,台湾,嘉义县,水上乡,120.398,23.4281,Shuishang
+713033,中埔乡,713000,中埔,3,05,606,中国,台湾,嘉义县,中埔乡,120.523,23.4251,Zhongpu
+713034,竹崎乡,713000,竹崎,3,05,604,中国,台湾,嘉义县,竹崎乡,120.551,23.5232,Zhuqi
+713035,梅山乡,713000,梅山,3,05,603,中国,台湾,嘉义县,梅山乡,120.557,23.5849,Meishan
+713036,番路乡,713000,番路,3,05,602,中国,台湾,嘉义县,番路乡,120.555,23.4652,Fanlu
+713037,大埔乡,713000,大埔,3,05,607,中国,台湾,嘉义县,大埔乡,120.594,23.2967,Dapu
+713038,阿里山乡,713000,阿里山,3,05,605,中国,台湾,嘉义县,阿里山乡,120.733,23.468,Alishan
+713300,屏东县,710000,屏东,2,08,9,中国,台湾,屏东县,120.488,22.6828,Pingtung
+713301,屏东市,713300,屏东,3,08,900,中国,台湾,屏东县,屏东市,120.488,22.6697,Pingdong
+713321,潮州镇,713300,潮州,3,08,920,中国,台湾,屏东县,潮州镇,120.543,22.5505,Chaozhou
+713322,东港镇,713300,东港,3,08,928,中国,台湾,屏东县,东港镇,120.454,22.4666,Donggang
+713323,恒春镇,713300,恒春,3,08,946,中国,台湾,屏东县,恒春镇,120.745,22.0024,Hengchun
+713324,万丹乡,713300,万丹,3,08,913,中国,台湾,屏东县,万丹乡,120.485,22.5898,Wandan
+713325,长治乡,713300,长治,3,08,908,中国,台湾,屏东县,长治乡,120.528,22.6771,Changzhi
+713326,麟洛乡,713300,麟洛,3,08,909,中国,台湾,屏东县,麟洛乡,120.527,22.6506,Linluo
+713327,九如乡,713300,九如,3,08,904,中国,台湾,屏东县,九如乡,120.49,22.7398,Jiuru
+713328,里港乡,713300,里港,3,08,905,中国,台湾,屏东县,里港乡,120.494,22.7792,Ligang
+713329,盐埔乡,713300,盐埔,3,08,907,中国,台湾,屏东县,盐埔乡,120.573,22.7548,Yanpu
+713330,高树乡,713300,高树,3,08,906,中国,台湾,屏东县,高树乡,120.6,22.8268,Gaoshu
+713331,万峦乡,713300,万峦,3,08,923,中国,台湾,屏东县,万峦乡,120.566,22.572,Wanluan
+713332,内埔乡,713300,内埔,3,08,912,中国,台湾,屏东县,内埔乡,120.567,22.612,Napu
+713333,竹田乡,713300,竹田,3,08,911,中国,台湾,屏东县,竹田乡,120.544,22.5847,Zhutian
+713334,新埤乡,713300,新埤,3,08,925,中国,台湾,屏东县,新埤乡,120.55,22.47,Xinpi
+713335,枋寮乡,713300,枋寮,3,08,940,中国,台湾,屏东县,枋寮乡,120.593,22.3656,Fangliao
+713336,新园乡,713300,新园,3,08,932,中国,台湾,屏东县,新园乡,120.462,22.544,Xinyuan
+713337,崁顶乡,713300,崁顶,3,08,924,中国,台湾,屏东县,崁顶乡,120.515,22.5148,Kanding
+713338,林边乡,713300,林边,3,08,927,中国,台湾,屏东县,林边乡,120.515,22.434,Linbian
+713339,南州乡,713300,南州,3,08,926,中国,台湾,屏东县,南州乡,120.51,22.4902,Nanzhou
+713340,佳冬乡,713300,佳冬,3,08,931,中国,台湾,屏东县,佳冬乡,120.552,22.4177,Jiadong
+713341,琉球乡,713300,琉球,3,08,929,中国,台湾,屏东县,琉球乡,120.369,22.3424,Liuqiu
+713342,车城乡,713300,车城,3,08,944,中国,台湾,屏东县,车城乡,120.711,22.0721,Checheng
+713343,满州乡,713300,满州,3,08,947,中国,台湾,屏东县,满州乡,120.839,22.0209,Manzhou
+713344,枋山乡,713300,枋山,3,08,941,中国,台湾,屏东县,枋山乡,120.656,22.2603,Fangshan
+713345,三地门乡,713300,三地门,3,08,901,中国,台湾,屏东县,三地门乡,120.654,22.7139,Sandimen
+713346,雾台乡,713300,雾台,3,08,902,中国,台湾,屏东县,雾台乡,120.732,22.7449,Wutai
+713347,玛家乡,713300,玛家,3,08,903,中国,台湾,屏东县,玛家乡,120.644,22.7067,Majia
+713348,泰武乡,713300,泰武,3,08,921,中国,台湾,屏东县,泰武乡,120.633,22.5918,Taiwu
+713349,来义乡,713300,来义,3,08,922,中国,台湾,屏东县,来义乡,120.634,22.5259,Laiyi
+713350,春日乡,713300,春日,3,08,942,中国,台湾,屏东县,春日乡,120.629,22.3707,Chunri
+713351,狮子乡,713300,狮子,3,08,943,中国,台湾,屏东县,狮子乡,120.705,22.2019,Shizi
+713352,牡丹乡,713300,牡丹,3,08,945,中国,台湾,屏东县,牡丹乡,120.77,22.1257,Mudan
+713400,台东县,710000,台东,2,089,9,中国,台湾,台东县,120.916,23,Taitung
+713401,台东市,713400,台东,3,089,950,中国,台湾,台东县,台东市,121.146,22.756,Taidong
+713421,成功镇,713400,成功,3,089,961,中国,台湾,台东县,成功镇,121.38,23.1002,Chenggong
+713422,关山镇,713400,关山,3,089,956,中国,台湾,台东县,关山镇,121.163,23.0474,Guanshan
+713423,卑南乡,713400,卑南,3,089,954,中国,台湾,台东县,卑南乡,121.084,22.786,Beinan
+713424,鹿野乡,713400,鹿野,3,089,955,中国,台湾,台东县,鹿野乡,121.136,22.914,Luye
+713425,池上乡,713400,池上,3,089,958,中国,台湾,台东县,池上乡,121.215,23.1224,Chishang
+713426,东河乡,713400,东河,3,089,959,中国,台湾,台东县,东河乡,121.3,22.9699,Donghe
+713427,长滨乡,713400,长滨,3,089,962,中国,台湾,台东县,长滨乡,121.452,23.315,Changbin
+713428,太麻里乡,713400,太麻里,3,089,963,中国,台湾,台东县,太麻里乡,121.007,22.6154,Taimali
+713429,大武乡,713400,大武,3,089,965,中国,台湾,台东县,大武乡,120.89,22.3399,Dawu
+713430,绿岛乡,713400,绿岛,3,089,951,中国,台湾,台东县,绿岛乡,121.493,22.6617,Lvdao
+713431,海端乡,713400,海端,3,089,957,中国,台湾,台东县,海端乡,121.172,23.1011,Haiduan
+713432,延平乡,713400,延平,3,089,953,中国,台湾,台东县,延平乡,121.084,22.9024,Yanping
+713433,金峰乡,713400,金峰,3,089,964,中国,台湾,台东县,金峰乡,120.971,22.5955,Jinfeng
+713434,达仁乡,713400,达仁,3,089,966,中国,台湾,台东县,达仁乡,120.884,22.2949,Daren
+713435,兰屿乡,713400,兰屿,3,089,952,中国,台湾,台东县,兰屿乡,121.532,22.0567,Lanyu
+713500,花莲县,710000,花莲,2,03,9,中国,台湾,花莲县,121.3,23.83,Hualien
+713501,花莲市,713500,花莲,3,03,970,中国,台湾,花莲县,花莲市,121.607,23.9821,Hualian
+713521,凤林镇,713500,凤林,3,03,975,中国,台湾,花莲县,凤林镇,121.452,23.7446,Fenglin
+713522,玉里镇,713500,玉里,3,03,981,中国,台湾,花莲县,玉里镇,121.316,23.3365,Yuli
+713523,新城乡,713500,新城,3,03,971,中国,台湾,花莲县,新城乡,121.641,24.1281,Xincheng
+713524,吉安乡,713500,吉安,3,03,973,中国,台湾,花莲县,吉安乡,121.568,23.9616,Ji\an
+713525,寿丰乡,713500,寿丰,3,03,974,中国,台湾,花莲县,寿丰乡,121.509,23.8707,Shoufeng
+713526,光复乡,713500,光复,3,03,976,中国,台湾,花莲县,光复乡,121.423,23.6691,Guangfu
+713527,丰滨乡,713500,丰滨,3,03,977,中国,台湾,花莲县,丰滨乡,121.519,23.5971,Fengbin
+713528,瑞穗乡,713500,瑞穗,3,03,978,中国,台湾,花莲县,瑞穗乡,121.376,23.4968,Ruisui
+713529,富里乡,713500,富里,3,03,983,中国,台湾,花莲县,富里乡,121.25,23.18,Fuli
+713530,秀林乡,713500,秀林,3,03,972,中国,台湾,花莲县,秀林乡,121.62,24.1166,Xiulin
+713531,万荣乡,713500,万荣,3,03,979,中国,台湾,花莲县,万荣乡,121.407,23.7153,Wanrong
+713532,卓溪乡,713500,卓溪,3,03,982,中国,台湾,花莲县,卓溪乡,121.303,23.3464,Zhuoxi
+713600,澎湖县,710000,澎湖,2,06,8,中国,台湾,澎湖县,119.566,23.5697,Penghu
+713601,马公市,713600,马公,3,06,880,中国,台湾,澎湖县,马公市,119.566,23.5658,Magong
+713621,湖西乡,713600,湖西,3,06,885,中国,台湾,澎湖县,湖西乡,119.66,23.5834,Huxi
+713622,白沙乡,713600,白沙,3,06,884,中国,台湾,澎湖县,白沙乡,119.598,23.6661,Baisha
+713623,西屿乡,713600,西屿,3,06,881,中国,台湾,澎湖县,西屿乡,119.507,23.6008,Xiyu
+713624,望安乡,713600,望安,3,06,882,中国,台湾,澎湖县,望安乡,119.501,23.3575,Wang\an
+713625,七美乡,713600,七美,3,06,883,中国,台湾,澎湖县,七美乡,119.424,23.206,Qimei
+713700,金门县,710000,金门,2,082,8,中国,台湾,金门县,118.317,24.4327,Jinmen
+713701,金城镇,713700,金城,3,082,893,中国,台湾,金门县,金城镇,118.317,24.4167,Jincheng
+713702,金湖镇,713700,金湖,3,082,891,中国,台湾,金门县,金湖镇,118.42,24.4386,Jinhu
+713703,金沙镇,713700,金沙,3,082,890,中国,台湾,金门县,金沙镇,118.428,24.4811,Jinsha
+713704,金宁乡,713700,金宁,3,082,892,中国,台湾,金门县,金宁乡,118.335,24.4567,Jinning
+713705,烈屿乡,713700,烈屿,3,082,894,中国,台湾,金门县,烈屿乡,118.247,24.4331,Lieyu
+713706,乌丘乡,713700,乌丘,3,082,896,中国,台湾,金门县,乌丘乡,118.32,24.435,Wuqiu
+713800,连江县,710000,连江,2,0836,2,中国,台湾,连江县,119.54,26.1974,Lienchiang
+713801,南竿乡,713800,南竿,3,0836,209,中国,台湾,连江县,南竿乡,119.944,26.144,Nangan
+713802,北竿乡,713800,北竿,3,0836,210,中国,台湾,连江县,北竿乡,120.001,26.222,Beigan
+713803,莒光乡,713800,莒光,3,0836,211,中国,台湾,连江县,莒光乡,119.94,25.9763,Juguang
+713804,东引乡,713800,东引,3,0836,212,中国,台湾,连江县,东引乡,120.494,26.3662,Dongyin
+810000,香港特别行政区,100000,香港,1,,,中国,香港特别行政区,114.173,22.32,HongKong
+810100,香港岛,810000,香港岛,2,00852,999077,中国,香港特别行政区,香港岛,114.177,22.2664,HongKongIsland
+810101,中西区,810100,中西区,3,00852,999077,中国,香港特别行政区,香港岛,中西区,114.154,22.282,CentralandWesternDistrict
+810102,湾仔区,810100,湾仔区,3,00852,999077,中国,香港特别行政区,香港岛,湾仔区,114.183,22.2764,WanChaiDistrict
+810103,东区,810100,东区,3,00852,999077,中国,香港特别行政区,香港岛,东区,114.256,22.2628,EasternDistrict
+810104,南区,810100,南区,3,00852,999077,中国,香港特别行政区,香港岛,南区,114.174,22.2468,SouthernDistrict
+810200,九龙,810000,九龙,2,00852,999077,中国,香港特别行政区,九龙,114.175,22.3271,Kowloon
+810201,油尖旺区,810200,油尖旺,3,00852,999077,中国,香港特别行政区,九龙,油尖旺区,114.173,22.3117,YauTsimMong
+810202,深水埗区,810200,深水埗,3,00852,999077,中国,香港特别行政区,九龙,深水埗区,114.167,22.3282,ShamShuiPo
+810203,九龙城区,810200,九龙城,3,00852,999077,中国,香港特别行政区,九龙,九龙城区,114.195,22.3267,Jiulongcheng
+810204,黄大仙区,810200,黄大仙,3,00852,999077,中国,香港特别行政区,九龙,黄大仙区,114.199,22.3363,WongTaiSin
+810205,观塘区,810200,观塘,3,00852,999077,中国,香港特别行政区,九龙,观塘区,114.231,22.3094,KwunTong
+810300,新界,810000,新界,2,00852,999077,中国,香港特别行政区,新界,114.202,22.3418,NewTerritories
+810301,荃湾区,810300,荃湾,3,00852,999077,中国,香港特别行政区,新界,荃湾区,114.123,22.371,TsuenWan
+810302,屯门区,810300,屯门,3,00852,999077,中国,香港特别行政区,新界,屯门区,113.977,22.391,TuenMun
+810303,元朗区,810300,元朗,3,00852,999077,中国,香港特别行政区,新界,元朗区,114.04,22.4433,YuenLong
+810304,北区,810300,北区,3,00852,999077,中国,香港特别行政区,新界,北区,114.149,22.4941,NorthDistrict
+810305,大埔区,810300,大埔,3,00852,999077,中国,香港特别行政区,新界,大埔区,114.172,22.4457,TaiPo
+810306,西贡区,810300,西贡,3,00852,999077,中国,香港特别行政区,新界,西贡区,114.279,22.3794,SaiKung
+810307,沙田区,810300,沙田,3,00852,999077,中国,香港特别行政区,新界,沙田区,114.192,22.3793,ShaTin
+810308,葵青区,810300,葵青,3,00852,999077,中国,香港特别行政区,新界,葵青区,114.139,22.3639,KwaiTsing
+810309,离岛区,810300,离岛,3,00852,999077,中国,香港特别行政区,新界,离岛区,113.946,22.2815,OutlyingIslands
+820000,澳门特别行政区,100000,澳门,1,,,中国,澳门特别行政区,113.549,22.199,Macau
+820100,澳门半岛,820000,澳门半岛,2,00853,999078,中国,澳门特别行政区,澳门半岛,113.549,22.1988,MacauPeninsula
+820101,花地玛堂区,820100,花地玛堂区,3,00853,999078,中国,澳门特别行政区,澳门半岛,花地玛堂区,113.552,22.2081,NossaSenhoradeFatima
+820102,圣安多尼堂区,820100,圣安多尼堂区,3,00853,999078,中国,澳门特别行政区,澳门半岛,圣安多尼堂区,113.564,22.1238,SantoAntonio
+820103,大堂区,820100,大堂,3,00853,999078,中国,澳门特别行政区,澳门半岛,大堂区,113.553,22.1884,Sé
+820104,望德堂区,820100,望德堂区,3,00853,999078,中国,澳门特别行政区,澳门半岛,望德堂区,113.551,22.1941,SaoLazaro
+820105,风顺堂区,820100,风顺堂区,3,00853,999078,中国,澳门特别行政区,澳门半岛,风顺堂区,113.542,22.1874,SaoLourenco
+820200,氹仔岛,820000,氹仔岛,2,00853,999078,中国,澳门特别行政区,氹仔岛,113.578,22.1568,Taipa
+820201,嘉模堂区,820200,嘉模堂区,3,00853,999078,中国,澳门特别行政区,氹仔岛,嘉模堂区,113.565,22.149,OurLadyOfCarmel\sParish
+820300,路环岛,820000,路环岛,2,00853,999078,中国,澳门特别行政区,路环岛,113.565,22.1162,Coloane
+820301,圣方济各堂区,820300,圣方济各堂区,3,00853,999078,中国,澳门特别行政区,路环岛,圣方济各堂区,113.56,22.1235,StFrancisXavier\sParish
+900000,钓鱼岛,100000,钓鱼岛,1,,,中国,钓鱼岛,123.478,25.7424,DiaoyuDao

+ 51 - 15
data_monitoring/listen_data/src/main.go

@@ -18,7 +18,7 @@ var (
 	save_mgo,site_mgo,python_mgo        	*MongodbSim            //mongodb操作对象
 	save_c_name,site_c_name,python_c_name,xlsx_name,site_unique_name	string
 	prepareData								[]map[string]interface{}
-	start	string
+	startRun	string
 )
 
 func initMgo()  {
@@ -65,22 +65,58 @@ func initMgo()  {
 }
 
 func init() {
-	//加载配置文件
 	return
+	//加载配置文件
 	qu.ReadConfig(&sysconfig)
-	flag.StringVar(&start, "s", "", "是否启动") //增量
+	flag.StringVar(&startRun, "s", "", "是否启动") //增量
 	flag.Parse()
 	initMgo()
 }
 
 
 func main()  {
+
 	save_mgo = &MongodbSim{
-		MongodbAddr: "192.168.3.207:27092",
-		DbName:      "zhengkun",
+		MongodbAddr: "172.17.4.187:27082,172.17.145.163:27083",
+		DbName:      "qfw",
 		Size:        10,
+		UserName: "zhengkun",
+		Password: "zk@123123",
 	}
 	save_mgo.InitPool()
+
+	//save_mgo = &MongodbSim{
+	//	MongodbAddr: "172.17.4.85:27080",
+	//	DbName:      "qfw",
+	//	Size:        10,
+	//	UserName: "",
+	//	Password: "",
+	//}
+	//save_mgo.InitPool()
+
+	//save_mgo = &MongodbSim{
+	//	MongodbAddr: "127.0.0.1:27017",
+	//	DbName:      "zhengkun",
+	//	Size:        10,
+	//	UserName: "",
+	//	Password: "",
+	//}
+	//save_mgo.InitPool()
+
+	//reg := regexp.MustCompile(`^.{2}[大|小|中]学$`)
+	//bool := reg.MatchString("中山中学")
+	//log.Println(bool)
+	//pattern := `(中标金额[::])([0-9.]*)`
+	//text := `中标金额:1111.00`
+	//reg := regexp.MustCompile(pattern)
+	//apos := reg.FindAllStringSubmatchIndex(text, -1)
+	//log.Println(apos)
+	//for i, _ := range apos {
+	//	pos := apos[i]
+	//	log.Println(text[pos[0]:pos[1]])
+	//	log.Println(text[pos[2]:pos[3]])
+	//	log.Println(text[pos[4]:pos[5]])
+	//}
 	decodeJyUrl()
 	return
 
@@ -88,12 +124,13 @@ func main()  {
 	c.AddFunc("0 50 8 ? * *", func() { dealWithSiteData() })
 	c.Start()
 
-	if start !="" {
+	if startRun !="" {
 		log.Println("立即执行一次...")
 		dealWithSiteData()
 	}else {
 		log.Println("正常监听...")
 	}
+
 	time.Sleep(99999*time.Hour)
 }
 
@@ -219,7 +256,7 @@ func dealWithSiteData()  {
 		row := sheet.AddRow()
 		row.AddCell().Value = "国家/省份"
 		row.AddCell().Value = "站点名称"
-		if type_name == "python" {
+		if type_name == "python" || type_name == "chrome插件" {
 			row.AddCell().Value = "爬虫名称"
 		}
 		row.AddCell().Value = "负责人"
@@ -232,12 +269,12 @@ func dealWithSiteData()  {
 			row = sheet.AddRow()
 			row.AddCell().SetString(qu.ObjToString(dict["area"]))
 			row.AddCell().SetString(qu.ObjToString(dict["site"]))
-			if type_name == "python" {
+			if type_name == "python" || type_name == "chrome插件" {
 				row.AddCell().SetString(qu.ObjToString(dict["spidercode"]))
 			}
 			row.AddCell().SetString(qu.ObjToString(dict["person"]))
 			total_num := 0
-			if type_name == "python" {
+			if type_name == "python" || type_name == "chrome插件" {
 				for _,timekey:=range siteTimeArr{
 					site_key := qu.ObjToString(dict["site"])
 					spider_key := qu.ObjToString(dict["spidercode"])
@@ -270,17 +307,16 @@ func dealWithSiteData()  {
 		log.Println("保存xlsx成功:", err)
 	}
 
-
 	//是否存日志- 待定
 	time.Sleep(5*time.Second)
 
 	//发送邮件
-	sendErrMailSmtp("主要站点最近五个工作日相关统计","附件")
-
+	if startRun!="" {
+		log.Println("调试过程...不发邮件")
+	}else {
+		sendErrMailSmtp("主要站点最近五个工作日相关统计","附件")
+	}
 	log.Println("结束......")
-
-
-
 }
 
 //准备模板站点数据

Fichier diff supprimé car celui-ci est trop grand
+ 1845 - 4
data_monitoring/listen_data/src/zkmethod.go


+ 4 - 4
src/config.json

@@ -1,9 +1,9 @@
 {
     "port": "9090",
-    "mgodb": "192.168.3.207:27092",
+    "mgodb": "127.0.0.1:27017",
     "dbsize": 3,
-    "dbname": "extract_v3xs",
-    "dbname_addrs": "extract_v3xs",
+    "dbname": "extract_local",
+    "dbname_addrs": "extract_local",
     "dbname_addrs_c": "address_new_2020",
     "redis": "qyk_redis=192.168.3.207:6379",
     "elasticsearch": "http://127.0.0.1:9800",
@@ -68,7 +68,7 @@
     },
     "istest": true,
     "isSaveTag": false,
-    "tomail": "fengweiqiang@topnet.net.cn",
+    "tomail": "zhengkun@topnet.net.cn",
     "api": "http://10.171.112.160:19281/_send/_mail",
     "deleteInstanceTimeHour": 1,
     "jsondata_extweight": 1

+ 0 - 1
src/jy/clear/cutspace.go

@@ -168,7 +168,6 @@ func ClearAllWord(data []interface{},spidercode ...string) []interface{} {
 	data[0] = reg.ReplaceAllString(value, "")
 	return data
 }
-
 //中文符号转英文
 func ChiToEng(data []interface{},spidercode ...string) []interface{} {
 	value := fmt.Sprint(data[0])

+ 22 - 3
src/jy/clear/tonumber.go

@@ -21,6 +21,8 @@ var numCapitals *regexp.Regexp  //中文大写金额过滤
 var regStrJe *regexp.Regexp     //匹配数字金额
 var regQianw *regexp.Regexp     //部分千万单位
 
+var regPercentMoney *regexp.Regexp  //取出 xx%
+
 var moneyChar = map[string]interface{}{ //"〇": "0", "零": "0",
 	"一": float64(1), "壹": float64(1), "二": float64(2), "贰": float64(2), "三": float64(3), "叁": float64(3), "四": float64(4), "肆": float64(4), "五": float64(5), "伍": float64(5),
 	"六": float64(6), "陆": float64(6), "七": float64(7), "柒": float64(7), "八": float64(8), "捌": float64(8), "九": float64(9), "玖": float64(9), "十": float64(10), "拾": float64(10),
@@ -47,11 +49,23 @@ func init() {
 
 	regQianw, _ = regexp.Compile(`\d{1,2}千万`)
 	kxjsReg = regexp.MustCompile("[0-9][E|e]{1}[-—+]{1}[0-9]{1,2}")
+	regPercentMoney,_ = regexp.Compile(`[0-9.]+[((]?[%|%][))]?`)
 }
-
 //转int
 func ObjToInt(data []interface{}, spidercode ...string) []interface{} {
-	tmp, err := strconv.Atoi(fmt.Sprint(data[0]))
+
+	//大写中文转数字
+	ch_num := map[string]string{
+		"一": "1", "二": "2", "三": "3", "四": "4", "五": "5", "六": "6", "七": "7", "八": "8", "九": "9", "十": "10",
+		"壹": "1", "贰": "2", "叁": "3", "肆": "4", "伍": "5", "陆": "6", "柒": "7", "捌": "8", "玖": "9", "拾": "10",
+		"两": "2",
+	}
+	tmp_value := fmt.Sprint(data[0])
+	for k,v:=range ch_num {
+		tmp_value = strings.ReplaceAll(tmp_value,k,v)
+	}
+
+	tmp, err := strconv.Atoi(tmp_value)
 	if err != nil {
 		data[0] = 0
 		return data
@@ -113,7 +127,12 @@ func ObjToMoney(data []interface{}, spidercode ...string) []interface{} {
 
 	tmpstr := (data)[0]
 	totmpstr := util.ObjToString(tmpstr)
-	//totmpstr = strings.ReplaceAll(totmpstr,"_","")
+	//去掉..%
+	Percent:= regPercentMoney.FindAllString(totmpstr,-1)
+	for _,v:=range Percent{
+		totmpstr = strings.ReplaceAll(totmpstr,v,"")
+	}
+	totmpstr = strings.ReplaceAll(totmpstr,"_","")
 	//data[0] = totmpstr
 	if kxjsReg.MatchString(totmpstr) {
 		fromString, err := decimal.NewFromString(totmpstr)

+ 95 - 17
src/jy/extract/extract.go

@@ -4,6 +4,8 @@ import (
 	"bytes"
 	"encoding/json"
 	"fmt"
+	"github.com/shopspring/decimal"
+	"go.mongodb.org/mongo-driver/bson/primitive"
 	"jy/clear"
 	db "jy/mongodbutil"
 	"jy/pretreated"
@@ -106,7 +108,7 @@ var (
 	}
 )
 
-//启动测试抽取
+//启动测试抽取-、、、、结果追踪
 func StartExtractTestTask(taskId, startId, num, resultcoll, trackcoll string) bool {
 	defer qu.Catch()
 	ext := TaskList[taskId]
@@ -131,7 +133,7 @@ func StartExtractTestTask(taskId, startId, num, resultcoll, trackcoll string) bo
 	ext.InitClearFn(false)
 	ext.InitClearFn(true)
 	ext.Lock()
-	ext.IsExtractCity = false
+	//ext.IsExtractCity = false
 	if ext.IsExtractCity { //版本上控制是否开始城市抽取
 		//初始化城市DFA信息
 		ext.InitCityInfo()
@@ -162,11 +164,20 @@ func IdTrans(startId string) bson.ObjectId {
 	return bson.ObjectIdHex(startId)
 }
 
+func StringTOBsonId(id string) primitive.ObjectID {
+	objectId, _ := primitive.ObjectIDFromHex(id)
+	return objectId
+}
+func BsonTOStringId(id interface{}) string {
+	return id.(primitive.ObjectID).Hex()
+}
+
 //开始测试任务抽取
 func RunExtractTestTask(ext *ExtractTask, startId, num string) bool {
 	n, _ := strconv.Atoi(num)
 	id := IdTrans(startId)
 	if id.Valid() {
+		//query := bson.M{"_id": bson.M{"$gte": bson.ObjectIdHex(startId)}}
 		query := bson.M{"_id": bson.M{"$gte": bson.ObjectIdHex(startId)}}
 		list, _ := ext.TaskInfo.FDB.Find(ext.TaskInfo.FromColl, query, nil, Fields, false, 0, n)
 		for _, v := range *list {
@@ -657,8 +668,6 @@ func (e *ExtractTask) ExtractDetail(j *ju.Job, isSite bool, codeSite string) {
 		for _, vc1 := range tmprules {
 			for _, vc := range vc1 {
 				tmp := ju.DeepCopy(doc).(map[string]interface{})
-				if vc.Field == "budget" {
-				}
 				//是否进入逻辑
 				if !ju.Logic(vc.LuaLogic, tmp) {
 					continue
@@ -720,15 +729,9 @@ func (e *ExtractTask) ExtractDetail(j *ju.Job, isSite bool, codeSite string) {
 		//函数清理
 		for key, val := range j.Result {
 			if key =="budget" {
-				log.Debug(111)
+				//log.Debug(111)
 			}
 			for i, v := range val {
-				if v.Field == "project_duration" {
-					arr := clear.ObjToMoney([]interface{}{v.Value, j.Content}, j.SpiderCode, j.IsClearnMoney)
-					if len(arr) > 0 {
-						v.Value = arr[0]
-					}
-				}
 				if v.Field == "projectname" && v.Type == "table" {
 					break
 				}
@@ -1628,7 +1631,10 @@ func ExtRegBack(j *ju.Job, in *RegLuaInfo, t *TaskInfo, vc *RuleCore) {
 					}
 					text := qu.ObjToString(v.Value)
 					if v.Field == "bidamount" || v.Field == "budget" {
-						if strings.Contains(qu.ObjToString(v.SourceValue), "费率") {
+						if (strings.Contains(qu.ObjToString(v.SourceValue), "费率")||
+							strings.Contains(qu.ObjToString(v.SourceValue), "税率") ||
+							strings.Contains(qu.ObjToString(v.SourceValue), "(%)") ) &&
+							!strings.Contains(qu.ObjToString(v.SourceValue), "工程设计费"){
 							j.Result[in.Field][k].IsTrue = false
 							continue
 						}
@@ -2315,9 +2321,21 @@ func checkFields(tmp map[string]interface{}) map[string]interface{} {
 	}
 
 	//工期单位-清理
-	if tmp["project_timeunit"] == "年" && tmp["project_duration"] == nil {
-		delete(tmp, "project_timeunit")
+	//if tmp["project_timeunit"] == "年" && tmp["project_duration"] == nil {
+	//	delete(tmp, "project_timeunit")
+	//}
+	//工期单位是否有效-清理
+	if project_timeunit, ok := tmp["project_timeunit"].(string); ok {
+		dateReg := regexp.MustCompile(`[年|月|日|天|周]`)
+		if !dateReg.MatchString(project_timeunit) {
+			delete(tmp, "project_timeunit")
+		}
 	}
+	//if tmp["project_timeunit"] == "年" && tmp["project_duration"] == nil {
+	//	delete(tmp, "project_timeunit")
+	//}
+
+
 	tmp["repeat"] = 0
 	if tmp["winner"] != nil && tmp["s_winner"] != nil {
 		strwin := qu.ObjToString(tmp["winner"])
@@ -2354,12 +2372,72 @@ func checkFields(tmp map[string]interface{}) map[string]interface{} {
 	}else {
 		delete(tmp, "bidway")
 	}
-	//if bidmode, ok := tmp["bidmode"].(int); !ok || bidmode==0 {
-	//	delete(tmp, "bidmode")
-	//}
+
+
+
+	//折扣系数
+	discount := dealWithDiscountBid(tmp)
+	if discount >0.0 {
+		tmp["biddiscount"] = discount
+	}else {
+		delete(tmp, "biddiscount")
+	}
+	delete(tmp, "biddiscount_up")
+	delete(tmp, "biddiscount_down")
+
+
+
 	return tmp
 }
 
+func dealWithDiscountBid(tmp map[string]interface{}) float64 {
+	biddiscount := qu.Float64All(tmp["biddiscount"])
+	biddiscount_up := qu.Float64All(tmp["biddiscount_up"])
+	biddiscount_down := qu.Float64All(tmp["biddiscount_down"])
+
+	baseCount := float64(1)
+	if biddiscount_down >0.0 {
+		num1:=decimal.NewFromFloat(baseCount)
+		num2:=decimal.NewFromFloat(biddiscount_down)
+		decimalValue := num1.Sub(num2)
+		res,_ := decimalValue.Float64()
+		//log.Debug("下浮后折扣系数:",res)
+		return res
+	}
+	if biddiscount_up >0.0 {
+		num1:=decimal.NewFromFloat(baseCount)
+		num2:=decimal.NewFromFloat(biddiscount_up)
+		decimalValue := num1.Add(num2)
+		res,_ := decimalValue.Float64()
+		//log.Debug("上浮后折扣系数:",res)
+		return res
+	}
+	if biddiscount>0.0 {
+		if biddiscount > 1.0 && biddiscount<=10.0  {
+			num1:=decimal.NewFromFloat(10.0)
+			num2:=decimal.NewFromFloat(biddiscount_up)
+			decimalValue := num2.Div(num1)
+			res,_ := decimalValue.Float64()
+			//log.Debug("标准-①折扣系数:",res)
+			return res
+		}else if biddiscount>10.0 {
+			num1:=decimal.NewFromFloat(100.0)
+			num2:=decimal.NewFromFloat(biddiscount_up)
+			decimalValue := num2.Div(num1)
+			res,_ := decimalValue.Float64()
+			//log.Debug("标准-⑩折扣系数:",res)
+			return res
+		}else {
+			//log.Debug("标准折扣系数:",biddiscount)
+			return biddiscount
+		}
+	}
+
+
+	return 0.0
+}
+
+
 //保存其他
 //kv、表格、块上的标签凡是新的标签都入库
 //val  type   times   firstid  createtime 判定field

+ 1 - 0
src/jy/extract/extractInit.go

@@ -419,6 +419,7 @@ func (e *ExtractTask) InitRuleCore(isSite bool) {
 	fieldrules := map[string][]*RuleCore{}
 	vinfos, _ := db.Mgo.Find(versioninfodb, `{"vid":"`+e.TaskInfo.VersionId+`","delete":false}`, nil, nil, false, -1, -1)
 	for _, vinfo := range *vinfos {
+		//fmt.Println("总计",len(*vinfos),"当前第N个",kkkk)
 		if b, _ := vinfo["isuse"].(bool); !b {
 			continue
 		}

+ 1 - 1
src/jy/extract/extractudp.go

@@ -90,7 +90,7 @@ func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
 
 var ext *ExtractTask
 
-//根据id区间抽取
+//根据id区间抽取-udp模式
 func ExtractByUdp(sid, eid string, ra *net.UDPAddr, instanceId ...string) {
 	defer qu.Catch()
 	if ext == nil {

+ 7 - 7
src/jy/extract/newextractcity.go

@@ -89,13 +89,13 @@ func (e *ExtractTask) NewExtractCity(j *ju.Job, resulttmp *map[string]interface{
 	}
 	//7.buyeraddr buyer title projectname抽取
 	e.NewGetCityByOthers(j, sm, &pscore, &cscore, &dscore)
-	//qu.Debug("全称打分后结果---", j.FullAreaScore, j.FullCityScore, j.FullDistrictScore)
-	//qu.Debug("简称打分后结果---", j.SimAreaScore, j.SimCityScore, j.SimDistrictScore)
+	qu.Debug("全称打分后结果---", j.FullAreaScore, j.FullCityScore, j.FullDistrictScore)
+	qu.Debug("简称打分后结果---", j.SimAreaScore, j.SimCityScore, j.SimDistrictScore)
 	//全称简称得分合并
 	MergeFullSimScore(j) //合并buyer buyeraddr title projectname全称简称
-	//qu.Debug("全称简称合并后---", j.FullAreaScore, j.FullCityScore, j.FullDistrictScore)
+	qu.Debug("全称简称合并后---", j.FullAreaScore, j.FullCityScore, j.FullDistrictScore)
 	//合并区简称得分
-	//qu.Debug("pcd=====", pscore, cscore, dscore)
+	qu.Debug("pcd=====", pscore, cscore, dscore)
 	MergeScores(j, &pscore, &cscore, &dscore) //合并区简称匹配的pcd
 	//qu.Debug("合并区简称打分后结果---", j.FullAreaScore, j.FullCityScore, j.FullDistrictScore)
 
@@ -107,10 +107,10 @@ func (e *ExtractTask) NewExtractCity(j *ju.Job, resulttmp *map[string]interface{
 	if len(j.FullAreaScore) > 0 && len(j.FullCityScore) > 0 { //以上抽取有省有市再从detail中抽取进行判断
 		e.NewGetCityByDetail(j)
 	}
-	//qu.Debug("detail打分后全称---", j.FullAreaScore, j.FullCityScore, j.FullDistrictScore)
-	//qu.Debug("detail打分后简称---", j.SimAreaScore, j.SimCityScore, j.SimDistrictScore)
+	qu.Debug("detail打分后全称---", j.FullAreaScore, j.FullCityScore, j.FullDistrictScore)
+	qu.Debug("detail打分后简称---", j.SimAreaScore, j.SimCityScore, j.SimDistrictScore)
 	MergeFullSimScore(j) //合并detail的全简称
-	//qu.Debug("detail合并后---", j.FullAreaScore, j.FullCityScore, j.FullDistrictScore)
+	qu.Debug("detail合并后---", j.FullAreaScore, j.FullCityScore, j.FullDistrictScore)
 
 	finishP := HighestScoreArr(j.FullAreaScore) //获取最高分的省
 	e.RemoveCD(finishP, j)                      //将city中所属干扰项省的city去除,同时去除district.5d2bd4aba5cb26b9b769d18e

+ 16 - 0
src/jy/extract/score.go

@@ -255,6 +255,14 @@ func ScoreFields(j *ju.Job, ftag map[string][]*Tag) map[string][]*ju.ExtField {
 							if ranges, ok := length["range"].([]interface{}); ok {
 								gt := qu.IntAll(ranges[0])
 								lte := qu.IntAll(ranges[1])
+								//针对指定 buyer -长度0-4 不打分
+								if field=="buyer" {
+									buyerValue := fmt.Sprint(tmpsvalue.Value)
+									reg := regexp.MustCompile(`^.{2}[大|小|中]学$`)
+									if reg.MatchString(buyerValue) && gt==0 && lte==4 {
+										continue
+									}
+								}
 								if lte < 0 { //∞
 									lte = 999999
 								}
@@ -274,6 +282,14 @@ func ScoreFields(j *ju.Job, ftag map[string][]*Tag) map[string][]*ju.ExtField {
 						if p, ok := position.(map[string]interface{}); ok {
 							qu.Try(func() {
 								if p["regexp"] != nil {
+									if field=="buyer" {
+										//针对指定 buyer -个别  不打分
+										buyerValue := fmt.Sprint(tmpsvalue.Value)
+										reg := regexp.MustCompile(`^.{2}[大|小|中]学$`)
+										if reg.MatchString(buyerValue) && qu.ObjToString(p["describe"])=="黑名单"{
+											return
+										}
+									}
 									reg := p["regexp"].(*regexp.Regexp)
 									if reg.MatchString(qu.ObjToString(tmpsvalue.Value)) {
 										tmps[tmpsindex].Score += qu.Float64All(p["score"])

+ 21 - 3
src/jy/pretreated/analytable.go

@@ -16,6 +16,8 @@ import (
 全局变量,主要是一堆判断正则
 **/
 var (
+	//key 的日期单位
+	dateReg *regexp.Regexp = regexp.MustCompile(`[年|月|日|天|周]`)
 	//清理品目中数字
 	numclear = regexp.MustCompile("^[\\d一二三四五六七八九十.]+")
 	num1     = regexp.MustCompile("(\\d)")
@@ -28,6 +30,8 @@ var (
 	tabletdclear = regexp.MustCompile("[\\s\u3000\u2003\u00a0\\n\u001c、,。_??;;~\\-#\\\\()(){}【】\\[\\]<>《》{}〔〕¥$]*")
 	//判断key是金额,对万元的处理
 	moneyreg = regexp.MustCompile("(预算|费|价|额|规模|投资)")
+	//key不需要清理-例如折扣 费率
+	no_clear_key_reg = regexp.MustCompile(`[((](费率|年|月|日|天)[))]`)
 	//根据表格的内容判断是不是表头,如果含有金额则不是表头
 	MoneyReg = regexp.MustCompile("^[\\s  ::0-9.万元()()人民币¥$]+$")
 	GSReg    = regexp.MustCompile(".*公司.*")
@@ -139,7 +143,7 @@ func IsHide(g *goquery.Selection) (b bool) {
 var clearnum *regexp.Regexp = regexp.MustCompile("(([0-9.]{1,6}[,,]+){4,}|(\\d{6}[,,]\\d{2}.){2,})")
 
 //对表格的key进行标准化处理,多个k相同时,出现覆盖问题
-//待扩展,暂不支持正则标签库
+//待扩展,暂不支持正则标签库  清理key
 func CommonDataAnaly(k, tabletag, tabledesc string, v interface{}, isSite bool, codeSite string) (kvTags map[string][]*u.Tag, returntag string) {
 	kvTags = map[string][]*u.Tag{}
 	v1 := ""
@@ -156,7 +160,11 @@ func CommonDataAnaly(k, tabletag, tabledesc string, v interface{}, isSite bool,
 	}
 	//先清理key
 	//u.Debug(1, k, v1)
-	k1 := ClearKey(k, 2)
+	//指定-key不清理  拦标价(费率或单价等)
+	k1:=""
+	if !no_clear_key_reg.MatchString(k) {
+		k1 = ClearKey(k, 2)
+	}
 	//u.Debug(2, k)
 	//取标准key
 	res := u.GetTags(k1, isSite, codeSite)
@@ -233,7 +241,11 @@ func (table *Table) KVFilter(isSite bool, codeSite string) {
 
 	//遍历table.sortkv,进行过滤处理,并放入标准化KV中,如果值是数组跳到下一步处理
 	for _, k := range table.SortKV.Keys {
+		//遍历所有key sort.kv
 		//表格描述处理,对成交结果的处理
+		if k=="服务期(天)" {
+			fmt.Println("标准化key")
+		}
 		if glRex.MatchString(k) {
 			table.Desc += "成交结果,"
 		}
@@ -636,8 +648,14 @@ func (table *Table) MergerToTableresult() {
 		}
 	}
 	//遍历标准key到tableresult.sortkv中
-	for _, v := range table.StandKV {
+	for fieldKey, v := range table.StandKV {
 		for _, vv := range v {
+			if fieldKey=="项目周期"||fieldKey=="工期单位"||fieldKey=="工期时长" {
+				dateStr := dateReg.FindString(vv.Key)
+				if dateStr !="" && !strings.Contains(vv.Value,dateStr) {
+					vv.Value = vv.Value+dateStr
+				}
+			}
 			vv.Value = strings.Replace(vv.Value, "__", "", -1)
 		}
 	}

+ 2 - 1
src/jy/pretreated/colonkv.go

@@ -982,7 +982,8 @@ func ClearKey(k string, from int) string {
 func GetMoneyUnit(key, val string) string {
 	if !(strings.Index(val, "元") > 0 || strings.Index(val, "万") > 0 || strings.Index(val, "亿") > 0) {
 		mv := clear.ObjToMoney([]interface{}{val, val})
-		if len(mv) > 0 && qutil.IntAll(mv[0]) > 0 {
+		//qutil.IntAll
+		if len(mv) > 0 && qutil.Float64All(mv[0]) > 0 {
 			for _, dw := range []string{"万", "亿"} {
 				if strings.Index(key, dw) > 0 {
 					return dw

+ 1 - 3
src/main.go

@@ -13,10 +13,9 @@ import (
 	_ "net/http/pprof"
 	qu "qfw/util"
 
+	log "github.com/donnie4w/go-logger/logger"
 	"qfw/util/elastic"
 	"qfw/util/redis"
-
-	log "github.com/donnie4w/go-logger/logger"
 )
 
 func init() {
@@ -75,7 +74,6 @@ func main() {
 	go extract.Export()
 	go Router.Run(":" + qu.ObjToString(util.Config["port"]))
 	go log.Debug("启动..", qu.ObjToString(util.Config["port"]))
-
 	go func() {
 		http.ListenAndServe("localhost:10000", nil)
 	}()

+ 3 - 1
src/res/tablev1.json

@@ -43,7 +43,9 @@
 	    "排名",
 		"中标",
 		"供应商",
-		"详见附件及谈判、报价文件"
+		"详见附件及谈判、报价文件",
+		"折扣系数",
+		"合同期限"
 	],
 	"con":[
 		"(是否通过资格|比例|评分结果|中标金额|质量目标|安全目标|承诺工期|推荐顺序|参考对象|工程质量$|工期[((]交货期[))]|合作伙伴|(包名|中标(候选人|供应商).{0,5}|第[一二三四五六七八九十]+中标候选人)[::]?[\\s]*)__M",

+ 11 - 7
udp_city/src/config.json

@@ -1,13 +1,12 @@
 {
-  "mgodb": "127.0.0.1:27017",
-  "mgodb_xs": "172.17.145.163:27082",
+  "mgodb": "SJZY_Rbid_ProG:SJZY%408Pro3gR79aM@172.17.4.187:27082,172.17.145.163:27083",
   "dbsize": 3,
-  "dbname": "enterprise",
-  "mgodb_bidding": "192.168.3.207:27092",
-  "mgodb_bidding_xs": "172.17.4.187:27083",
+  "dbname": "mixdata",
+
+  "mgodb_bidding": "172.17.4.85:27080",
   "dbname_bidding": "qfw",
-  "findDb": "baidu_xxbs_toid20200909_result",
-  "udpport": "1485",
+  "findDb":"result_20210109",
+  "udpport": "1799",
   "nextNode": [
     {
       "addr": "127.0.0.1",
@@ -15,5 +14,10 @@
       "stype":"hangye",
       "memo": "生kv招标分类"
     }
+
+
+
+
+
   ]
 }

+ 3 - 1
udp_city/src/main.go

@@ -190,7 +190,9 @@ func cityMarshal(data map[string]interface{}) map[string]string {
 	entprovince = strings.TrimRight(entprovince, "市")
 	entcity := qu.ObjToString((*tmp)["city"])
 	entdistrict := qu.ObjToString((*tmp)["district"])
-	if bidarea == "" || bidarea == "全国" {
+
+	//新增特殊处理-港澳台数据
+	if bidarea == "" || bidarea=="香港" || bidarea=="澳门" || bidarea=="台湾" || bidarea == "全国" {
 		if entprovince != "" {
 			rdata["area"] = entprovince
 			if entcity != "" && entcity != entprovince {

+ 48 - 36
udpfilterdup/src/main.go

@@ -7,7 +7,6 @@ package main
 import (
 	"encoding/json"
 	"flag"
-	"fmt"
 	"github.com/cron"
 	"gopkg.in/mgo.v2/bson"
 	"log"
@@ -198,36 +197,54 @@ func mainT() {
 }
 //upd接收
 func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
-	fmt.Println("接受的段数据")
-
-	udptask <- struct{}{}
-	defer func() {
-		<-udptask
-	}()
-
-	switch act {
-	case mu.OP_TYPE_DATA: //上个节点的数据
-		//从表中开始处理
-		var mapInfo map[string]interface{}
-		err := json.Unmarshal(data, &mapInfo)
-		log.Println("err:", err, "mapInfo:", mapInfo)
-		if err != nil {
-			udpclient.WriteUdp([]byte("err:"+err.Error()), mu.OP_NOOP, ra)
-		} else if mapInfo != nil {
-			go task(data, mapInfo)
-			key, _ := mapInfo["key"].(string)
-			if key == "" {
-				key = "udpok"
+	select {
+	case udptask <- struct{}{}:
+		log.Println("...接收段落,通道正常...")
+		switch act {
+		case mu.OP_TYPE_DATA: //上个节点的数据
+			var mapInfo map[string]interface{}
+			err := json.Unmarshal(data, &mapInfo)
+			if err != nil {
+				log.Println("error data:", err)
+				udpclient.WriteUdp([]byte("err:"+err.Error()), mu.OP_NOOP, ra)
+			} else if mapInfo != nil {
+				key, _ := mapInfo["key"].(string)
+				if key == "" {
+					key = "udpok"
+				}
+				log.Println("当前段落,需要判重...",mapInfo)
+				udpclient.WriteUdp([]byte(key), mu.OP_NOOP, ra)
+				task(data, mapInfo)
+			}
+			log.Println("此段任务结束...",err,mapInfo)
+			<-udptask
+		case mu.OP_NOOP: //下个节点回应
+			ok := string(data)
+			if ok != "" {
+				log.Println("下节点回应-ok:", ok)
+				udptaskmap.Delete(ok)
 			}
-			udpclient.WriteUdp([]byte(key), mu.OP_NOOP, ra)
+			<-udptask
 		}
-	case mu.OP_NOOP: //下个节点回应
-		ok := string(data)
-		if ok != "" {
-			log.Println("ok:", ok)
-			udptaskmap.Delete(ok)
+	case <-time.After(2 * time.Second):
+		switch act {
+		case mu.OP_TYPE_DATA: //上个节点的数据
+			log.Println("通道堵塞中...上节点")
+			udpclient.WriteUdp([]byte("repeat_busy"), mu.OP_NOOP, ra)
+		case mu.OP_NOOP: //下个节点回应
+			log.Println("通道堵塞中...下节点")
+			ok := string(data)
+			if ok != "" {
+				log.Println("下节点回应-ok:", ok)
+				udptaskmap.Delete(ok)
+			}
 		}
 	}
+
+	//udptask <- struct{}{}
+	//defer func() {
+	//	<-udptask
+	//}()
 }
 
 //开始判重程序
@@ -325,17 +342,12 @@ func task(data []byte, mapInfo map[string]interface{}) {
 		tmp = make(map[string]interface{})
 	}
 	wg.Wait()
-
-	log.Println("this task over.", n, "repeateN:", repeateN, mapInfo["stop"])
-	log.Println("当前数据池的数量:",DM.currentTotalCount())
-
-	//睡眠时间 增+
-	time.Sleep(30 * time.Second)
-
+	log.Println("this current task over.", n, "repeateN:", repeateN, mapInfo["stop"])
+	//log.Println("当前数据池的数量:",DM.currentTotalCount())
+	//睡眠时间30s 目的是让数据池更新所有数据...
+	time.Sleep(15 * time.Second)
 	//更新Ocr的标记
 	updateOcrFileData(mapInfo["lteid"].(string))
-
-
 	//任务完成,开始发送广播通知下面节点
 	if n >= repeateN && mapInfo["stop"] == nil {
 		log.Println("判重任务完成发送udp")

+ 1 - 1
udpfilterdup/src/updateMethod.go

@@ -20,7 +20,7 @@ type updateInfo struct {
 var sp = make(chan bool, 5)
 
 func newUpdatePool() *updateInfo {
-	update:=&updateInfo{make(chan []map[string]interface{}, 50000),500}
+	update:=&updateInfo{make(chan []map[string]interface{}, 50000),200}
 	return update
 }
 

+ 1 - 1
udps/main.go

@@ -19,7 +19,7 @@ func main() {
 	flag.StringVar(&startDate, "start", "", "开始日期2006-01-02")
 	flag.StringVar(&endDate, "end", "", "结束日期2006-01-02")
 	flag.StringVar(&ip, "ip", "127.0.0.1", "ip")
-	flag.IntVar(&p, "p", 1484, "端口")
+	flag.IntVar(&p, "p", 17859, "端口")
 	flag.IntVar(&tmptime, "tmptime", 0, "时间查询")
 	flag.StringVar(&tmpkey, "tmpkey", "", "时间字段")
 	flag.StringVar(&id1, "gtid", "1fffffffffffffffffffffff", "gtid")

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff