b8c90cbefd0ecc3b35c7f8d134f90b37f223f7c2.svn-base 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. package cn.com.goldenwater.dcproj.service.impl.homepage;
  2. import cn.com.goldenwater.dcproj.service.OneMapService;
  3. import cn.com.goldenwater.dcproj.utils.MapUtil;
  4. import cn.com.goldenwater.webService.onemap.WSWebServiceImplService;
  5. import net.sf.json.JSONArray;
  6. import net.sf.json.JSONObject;
  7. import org.apache.commons.lang.StringUtils;
  8. import org.springframework.stereotype.Service;
  9. import org.springframework.transaction.annotation.Transactional;
  10. import java.util.ArrayList;
  11. import java.util.HashMap;
  12. import java.util.List;
  13. import java.util.Map;
  14. /**
  15. * @author xuw
  16. */
  17. @Service
  18. @Transactional
  19. public class OneMapServiceImpl implements OneMapService {
  20. @Override
  21. public List<Map<String, Object>> getHypoByAd(String adCode, String keyWords, String pageIndex, String pageSize) {
  22. return getSlgcByAd("P202", adCode, keyWords, pageIndex, pageSize);
  23. }
  24. @Override
  25. public List<Map<String, Object>> getGateByAd(String adCode, String keyWords, String pageIndex, String pageSize) {
  26. return getSlgcByAd("P203", adCode, keyWords, pageIndex, pageSize);
  27. }
  28. @Override
  29. public List<Map<String, Object>> getPumpByAd(String adCode, String keyWords, String pageIndex, String pageSize) {
  30. return getSlgcByAd("P205", adCode, keyWords, pageIndex, pageSize);
  31. }
  32. @Override
  33. public List<Map<String, Object>> getDikeByAd(String adCode, String keyWords, String pageIndex, String pageSize) {
  34. return getSlgcByAd("P207", adCode, keyWords, pageIndex, pageSize);
  35. }
  36. @Override
  37. public List<Map<String, Object>> getHypoByCoord(double pointX, double pointY, double radius) {
  38. return getSlgcByCoord("P202", pointX, pointY, radius);
  39. }
  40. @Override
  41. public List<Map<String, Object>> getGateByCoord(double pointX, double pointY, double radius) {
  42. return getSlgcByCoord("P203", pointX, pointY, radius);
  43. }
  44. @Override
  45. public List<Map<String, Object>> getPumpByCoord(double pointX, double pointY, double radius) {
  46. return getSlgcByCoord("P205", pointX, pointY, radius);
  47. }
  48. @Override
  49. public List<Map<String, Object>> getDikeByCoord(double pointX, double pointY, double radius) {
  50. return getSlgcByCoord("P207", pointX, pointY, radius);
  51. }
  52. @Override
  53. public List<Map<String, Object>> getSlgcByAd(String type, String adCode, String keyWords, String pageIndex, String pageSize) {
  54. List<Map<String, Object>> list;
  55. JSONObject json = new JSONObject();
  56. List<String> middleTypeList = new ArrayList<>();
  57. if (StringUtils.isNotBlank(type)) {
  58. if (type.indexOf(";") > 0) {
  59. String[] types = type.split(";");
  60. for (String t : types
  61. ) {
  62. middleTypeList.add(t);
  63. }
  64. } else {
  65. middleTypeList.add(type);
  66. }
  67. }
  68. json.put("middleTypeList", middleTypeList);
  69. json.put("userId", "");
  70. Map<String, String> queryStatisticData = new HashMap<>(4);
  71. if (!"".equals(adCode)) {
  72. String adLevel = "1";
  73. if (adCode.endsWith("0000000000")) {
  74. adCode = adCode.substring(0, 2);
  75. adLevel = "1";
  76. } else if (adCode.endsWith("00000000")) {
  77. adCode = adCode.substring(0, 4);
  78. adLevel = "2";
  79. } else if (adCode.endsWith("000000")) {
  80. adCode = adCode.substring(0, 6);
  81. adLevel = "3";
  82. } else if (adCode.endsWith("000")) {
  83. adCode = adCode.substring(0, 9);
  84. adLevel = "4";
  85. } else {
  86. adLevel = "5";
  87. }
  88. queryStatisticData.put("areaCode", adCode);
  89. queryStatisticData.put("areaLevel", adLevel);
  90. }
  91. queryStatisticData.put("queryType", "2");
  92. queryStatisticData.put("areaType", "1");
  93. json.put("queryStatisticData", queryStatisticData);
  94. if (StringUtils.isNotBlank(pageIndex)) {
  95. json.put("pageIndex", Integer.parseInt(pageIndex));
  96. } else {
  97. json.put("pageIndex", 1);
  98. }
  99. if (StringUtils.isNotBlank(pageSize)) {
  100. json.put("pageSize", Integer.parseInt(pageSize));
  101. } else {
  102. json.put("pageSize", 1000);
  103. }
  104. json.put("sortField", null);
  105. if (StringUtils.isNotBlank(keyWords)) {
  106. json.put("keyWords", keyWords);
  107. } else {
  108. json.put("keyWords", "");
  109. }
  110. json.put("objectCode", "");
  111. json.put("targetId", "lucene.Lucene0010SearchLogic");
  112. json.put("keyId", "");
  113. json.put("queryType", "1");
  114. list = getSlgc(json.toString());
  115. return list;
  116. }
  117. @Override
  118. public List<Map<String, Object>> getSlgcByCoord(String type, double pointX, double pointY, double radius) {
  119. List<Map<String, Object>> list;
  120. JSONObject json = new JSONObject();
  121. List<String> middleTypeList = new ArrayList<>();
  122. if (StringUtils.isNotBlank(type)) {
  123. if (type.indexOf(";") > 0) {
  124. String[] types = type.split(";");
  125. for (String t : types
  126. ) {
  127. middleTypeList.add(t);
  128. }
  129. } else {
  130. middleTypeList.add(type);
  131. }
  132. }
  133. json.put("middleTypeList", middleTypeList);
  134. json.put("userId", "");
  135. MapUtil util = new MapUtil();
  136. Map<String, Double> map = util.gcj02towgs84(pointX, pointY);
  137. double x = map.get("lon");
  138. double y = map.get("lat");
  139. double plus = 9.5 / 1000 * radius;
  140. String mapBounds = (x - plus) + "," + (y - plus) + "," + (x + plus) + "," + (y + plus);
  141. json.put("mapBounds", mapBounds);
  142. List<Map<String, Object>> pointsArray = new ArrayList<>();
  143. Map<String, Object> point = new HashMap<>(3);
  144. point.put("x", (x - plus));
  145. point.put("y", (y - plus));
  146. point.put("tag", null);
  147. pointsArray.add(point);
  148. point = new HashMap<>(3);
  149. point.put("x", (x - plus));
  150. point.put("y", (y + plus));
  151. point.put("tag", null);
  152. pointsArray.add(point);
  153. point = new HashMap<>(3);
  154. point.put("x", (x + plus));
  155. point.put("y", (y - plus));
  156. point.put("tag", null);
  157. pointsArray.add(point);
  158. point = new HashMap<>(3);
  159. point.put("x", (x + plus));
  160. point.put("y", (y + plus));
  161. point.put("tag", null);
  162. pointsArray.add(point);
  163. json.put("pointsArray", pointsArray);
  164. json.put("pageIndex", 1);
  165. json.put("pageSize", 1000);
  166. json.put("sortField", null);
  167. json.put("keyWords", "");
  168. json.put("objectCode", "");
  169. json.put("targetId", "lucene.Lucene0010SearchLogic");
  170. json.put("keyId", "");
  171. json.put("scale", "7");
  172. json.put("spatialQueryType", "0");
  173. json.put("queryShowItemsOnly", "0");
  174. json.put("queryType", "2");
  175. list = getSlgc(json.toString());
  176. return list;
  177. }
  178. public List<Map<String, Object>> getSlgc(String jsonStr) {
  179. List<Map<String, Object>> list = new ArrayList<>();
  180. long l = System.currentTimeMillis();
  181. System.out.println("请求串:" + jsonStr);
  182. WSWebServiceImplService ws = new WSWebServiceImplService();
  183. String result = ws.getWSWebServiceImplPort().execute(jsonStr);
  184. System.out.println("返回值:" + result);
  185. long l2 = System.currentTimeMillis();
  186. System.out.println("请求时间:" + (l2 - l) / 1000.0 + "s");
  187. JSONObject json = JSONObject.fromObject(result);
  188. if (json.get("resultDetailList") != null) {
  189. JSONArray array = json.getJSONArray("resultDetailList");
  190. for (int i = 0; i < array.size(); i++) {
  191. JSONObject obj = array.getJSONObject(i);
  192. String CENTER_X = obj.containsKey("CENTER_X") ? obj.getString("CENTER_X") : "";
  193. String CENTER_Y = obj.containsKey("CENTER_Y") ? obj.getString("CENTER_Y") : "";
  194. String MIDDLE_TYPE = obj.containsKey("MIDDLE_TYPE") ? obj.getString("MIDDLE_TYPE") : "";
  195. String OBJ_ADDRESS = obj.containsKey("OBJ_ADDRESS") ? obj.getString("OBJ_ADDRESS") : "";
  196. String OBJ_CODE = obj.containsKey("OBJ_CODE") ? obj.getString("OBJ_CODE") : "";
  197. String OBJ_NAME = obj.containsKey("OBJ_NAME") ? obj.getString("OBJ_NAME") : "";
  198. String RESULT_INDEX = obj.containsKey("RESULT_INDEX") ? obj.getString("RESULT_INDEX") : "";
  199. String SUB_TYPE = obj.containsKey("SUB_TYPE") ? obj.getString("SUB_TYPE") : "";
  200. String SUB_TYPE_NAME = obj.containsKey("SUB_TYPE_NAME") ? obj.getString("SUB_TYPE_NAME") : "";
  201. Map<String, Object> map = new HashMap<>();
  202. map.put("objCode", OBJ_CODE);
  203. map.put("objName", OBJ_NAME);
  204. map.put("subType", SUB_TYPE);
  205. map.put("subTypeName", SUB_TYPE_NAME);
  206. map.put("objAddress", OBJ_ADDRESS);
  207. map.put("middleType", MIDDLE_TYPE);
  208. map.put("resultIndex", RESULT_INDEX);
  209. MapUtil util = new MapUtil();
  210. if (!"".equals(CENTER_X) && !"".equals(CENTER_Y)) {
  211. double x = Double.parseDouble(CENTER_X);
  212. double y = Double.parseDouble(CENTER_Y);
  213. Map<String, Double> xyMap = util.wgs84togcj02(x, y);
  214. map.put("centerX", xyMap.get("lon"));
  215. map.put("centerY", xyMap.get("lat"));
  216. list.add(map);
  217. }
  218. }
  219. }
  220. long l3 = System.currentTimeMillis();
  221. System.out.println("数据处理时间:" + (l3 - l2) / 1000.0 + "s");
  222. return list;
  223. }
  224. @Override
  225. public List<Map<String, Object>> getSlgcByCode(String type, String objCode) {
  226. List<Map<String, Object>> list;
  227. JSONObject json = new JSONObject();
  228. List<String> middleTypeList = new ArrayList<>();
  229. if (StringUtils.isNotBlank(type)) {
  230. middleTypeList.add(type);
  231. }
  232. json.put("middleTypeList", middleTypeList);
  233. json.put("fitchResultType", null);
  234. json.put("queryShowItemsOnly", null);
  235. json.put("keyWords", null);
  236. json.put("sumConditions", null);
  237. json.put("queryAreaData", null);
  238. json.put("sessionId", "a9c4bdbf-7cc8-4fe1-a444-7880d5e1ecca");
  239. json.put("queryType", null);
  240. json.put("scale", null);
  241. json.put("lucenelevel", null);
  242. json.put("userId", "");
  243. json.put("objectCodeList", null);
  244. json.put("targetId", "lucene.Lucene0010SurveySearchLogic");
  245. json.put("spatialQueryType", null);
  246. json.put("keyId", "demoMapPanMapClearMapAreaMapDistanceMapQueryresourceLayerControlDocumentQuerySystemhelpDocumentBaseDataQueryMapAssistControlMapSearchServiceCatalogMapLegendMapFullExtentMapFullScreenguideHelpDocumetnThemeAnalysisDissertation");
  247. json.put("sortField", null);
  248. json.put("spatialId", null);
  249. json.put("isAsc", null);
  250. json.put("pageIndex", 0);
  251. json.put("objectCode", objCode);
  252. json.put("fetchStatistic", null);
  253. json.put("pageSize", 30);
  254. json.put("mapBounds", null);
  255. json.put("mapBoundsList", null);
  256. json.put("queryStatisticData", null);
  257. json.put("pointsArray", null);
  258. json.put("conditonList", null);
  259. list = getSlgcDetail(json.toString());
  260. return list;
  261. }
  262. public List<Map<String, Object>> getSlgcDetail(String jsonStr) {
  263. List<Map<String, Object>> list = new ArrayList<>();
  264. long l = System.currentTimeMillis();
  265. System.out.println("请求串:" + jsonStr);
  266. WSWebServiceImplService ws = new WSWebServiceImplService();
  267. String result = ws.getWSWebServiceImplPort().execute(jsonStr);
  268. System.out.println("返回值:" + result);
  269. long l2 = System.currentTimeMillis();
  270. System.out.println("请求时间:" + (l2 - l) / 1000.0 + "s");
  271. JSONObject json = JSONObject.fromObject(result);
  272. if (json.get("surveyData") != null) {
  273. JSONArray surveyData = json.getJSONArray("surveyData");
  274. if (surveyData.size() > 0) {
  275. JSONObject survey = surveyData.getJSONObject(0);
  276. if (survey.get("resultInfoDetailList") != null) {
  277. JSONArray array = survey.getJSONArray("resultInfoDetailList");
  278. list = array;
  279. }
  280. }
  281. }
  282. long l3 = System.currentTimeMillis();
  283. System.out.println("数据处理时间:" + (l3 - l2) / 1000.0 + "s");
  284. return list;
  285. }
  286. }