| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- package cn.com.goldenwater.dcproj.service.impl.homepage;
- import cn.com.goldenwater.dcproj.service.OneMapService;
- import cn.com.goldenwater.dcproj.utils.MapUtil;
- import cn.com.goldenwater.webService.onemap.WSWebServiceImplService;
- import net.sf.json.JSONArray;
- import net.sf.json.JSONObject;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * @author xuw
- */
- @Service
- @Transactional
- public class OneMapServiceImpl implements OneMapService {
- @Override
- public List<Map<String, Object>> getHypoByAd(String adCode, String keyWords, String pageIndex, String pageSize) {
- return getSlgcByAd("P202", adCode, keyWords, pageIndex, pageSize);
- }
- @Override
- public List<Map<String, Object>> getGateByAd(String adCode, String keyWords, String pageIndex, String pageSize) {
- return getSlgcByAd("P203", adCode, keyWords, pageIndex, pageSize);
- }
- @Override
- public List<Map<String, Object>> getPumpByAd(String adCode, String keyWords, String pageIndex, String pageSize) {
- return getSlgcByAd("P205", adCode, keyWords, pageIndex, pageSize);
- }
- @Override
- public List<Map<String, Object>> getDikeByAd(String adCode, String keyWords, String pageIndex, String pageSize) {
- return getSlgcByAd("P207", adCode, keyWords, pageIndex, pageSize);
- }
- @Override
- public List<Map<String, Object>> getHypoByCoord(double pointX, double pointY, double radius) {
- return getSlgcByCoord("P202", pointX, pointY, radius);
- }
- @Override
- public List<Map<String, Object>> getGateByCoord(double pointX, double pointY, double radius) {
- return getSlgcByCoord("P203", pointX, pointY, radius);
- }
- @Override
- public List<Map<String, Object>> getPumpByCoord(double pointX, double pointY, double radius) {
- return getSlgcByCoord("P205", pointX, pointY, radius);
- }
- @Override
- public List<Map<String, Object>> getDikeByCoord(double pointX, double pointY, double radius) {
- return getSlgcByCoord("P207", pointX, pointY, radius);
- }
- @Override
- public List<Map<String, Object>> getSlgcByAd(String type, String adCode, String keyWords, String pageIndex, String pageSize) {
- List<Map<String, Object>> list;
- JSONObject json = new JSONObject();
- List<String> middleTypeList = new ArrayList<>();
- if (StringUtils.isNotBlank(type)) {
- if (type.indexOf(";") > 0) {
- String[] types = type.split(";");
- for (String t : types
- ) {
- middleTypeList.add(t);
- }
- } else {
- middleTypeList.add(type);
- }
- }
- json.put("middleTypeList", middleTypeList);
- json.put("userId", "");
- Map<String, String> queryStatisticData = new HashMap<>(4);
- if (!"".equals(adCode)) {
- String adLevel = "1";
- if (adCode.endsWith("0000000000")) {
- adCode = adCode.substring(0, 2);
- adLevel = "1";
- } else if (adCode.endsWith("00000000")) {
- adCode = adCode.substring(0, 4);
- adLevel = "2";
- } else if (adCode.endsWith("000000")) {
- adCode = adCode.substring(0, 6);
- adLevel = "3";
- } else if (adCode.endsWith("000")) {
- adCode = adCode.substring(0, 9);
- adLevel = "4";
- } else {
- adLevel = "5";
- }
- queryStatisticData.put("areaCode", adCode);
- queryStatisticData.put("areaLevel", adLevel);
- }
- queryStatisticData.put("queryType", "2");
- queryStatisticData.put("areaType", "1");
- json.put("queryStatisticData", queryStatisticData);
- if (StringUtils.isNotBlank(pageIndex)) {
- json.put("pageIndex", Integer.parseInt(pageIndex));
- } else {
- json.put("pageIndex", 1);
- }
- if (StringUtils.isNotBlank(pageSize)) {
- json.put("pageSize", Integer.parseInt(pageSize));
- } else {
- json.put("pageSize", 1000);
- }
- json.put("sortField", null);
- if (StringUtils.isNotBlank(keyWords)) {
- json.put("keyWords", keyWords);
- } else {
- json.put("keyWords", "");
- }
- json.put("objectCode", "");
- json.put("targetId", "lucene.Lucene0010SearchLogic");
- json.put("keyId", "");
- json.put("queryType", "1");
- list = getSlgc(json.toString());
- return list;
- }
- @Override
- public List<Map<String, Object>> getSlgcByCoord(String type, double pointX, double pointY, double radius) {
- List<Map<String, Object>> list;
- JSONObject json = new JSONObject();
- List<String> middleTypeList = new ArrayList<>();
- if (StringUtils.isNotBlank(type)) {
- if (type.indexOf(";") > 0) {
- String[] types = type.split(";");
- for (String t : types
- ) {
- middleTypeList.add(t);
- }
- } else {
- middleTypeList.add(type);
- }
- }
- json.put("middleTypeList", middleTypeList);
- json.put("userId", "");
- MapUtil util = new MapUtil();
- Map<String, Double> map = util.gcj02towgs84(pointX, pointY);
- double x = map.get("lon");
- double y = map.get("lat");
- double plus = 9.5 / 1000 * radius;
- String mapBounds = (x - plus) + "," + (y - plus) + "," + (x + plus) + "," + (y + plus);
- json.put("mapBounds", mapBounds);
- List<Map<String, Object>> pointsArray = new ArrayList<>();
- Map<String, Object> point = new HashMap<>(3);
- point.put("x", (x - plus));
- point.put("y", (y - plus));
- point.put("tag", null);
- pointsArray.add(point);
- point = new HashMap<>(3);
- point.put("x", (x - plus));
- point.put("y", (y + plus));
- point.put("tag", null);
- pointsArray.add(point);
- point = new HashMap<>(3);
- point.put("x", (x + plus));
- point.put("y", (y - plus));
- point.put("tag", null);
- pointsArray.add(point);
- point = new HashMap<>(3);
- point.put("x", (x + plus));
- point.put("y", (y + plus));
- point.put("tag", null);
- pointsArray.add(point);
- json.put("pointsArray", pointsArray);
- json.put("pageIndex", 1);
- json.put("pageSize", 1000);
- json.put("sortField", null);
- json.put("keyWords", "");
- json.put("objectCode", "");
- json.put("targetId", "lucene.Lucene0010SearchLogic");
- json.put("keyId", "");
- json.put("scale", "7");
- json.put("spatialQueryType", "0");
- json.put("queryShowItemsOnly", "0");
- json.put("queryType", "2");
- list = getSlgc(json.toString());
- return list;
- }
- public List<Map<String, Object>> getSlgc(String jsonStr) {
- List<Map<String, Object>> list = new ArrayList<>();
- long l = System.currentTimeMillis();
- System.out.println("请求串:" + jsonStr);
- WSWebServiceImplService ws = new WSWebServiceImplService();
- String result = ws.getWSWebServiceImplPort().execute(jsonStr);
- System.out.println("返回值:" + result);
- long l2 = System.currentTimeMillis();
- System.out.println("请求时间:" + (l2 - l) / 1000.0 + "s");
- JSONObject json = JSONObject.fromObject(result);
- if (json.get("resultDetailList") != null) {
- JSONArray array = json.getJSONArray("resultDetailList");
- for (int i = 0; i < array.size(); i++) {
- JSONObject obj = array.getJSONObject(i);
- String CENTER_X = obj.containsKey("CENTER_X") ? obj.getString("CENTER_X") : "";
- String CENTER_Y = obj.containsKey("CENTER_Y") ? obj.getString("CENTER_Y") : "";
- String MIDDLE_TYPE = obj.containsKey("MIDDLE_TYPE") ? obj.getString("MIDDLE_TYPE") : "";
- String OBJ_ADDRESS = obj.containsKey("OBJ_ADDRESS") ? obj.getString("OBJ_ADDRESS") : "";
- String OBJ_CODE = obj.containsKey("OBJ_CODE") ? obj.getString("OBJ_CODE") : "";
- String OBJ_NAME = obj.containsKey("OBJ_NAME") ? obj.getString("OBJ_NAME") : "";
- String RESULT_INDEX = obj.containsKey("RESULT_INDEX") ? obj.getString("RESULT_INDEX") : "";
- String SUB_TYPE = obj.containsKey("SUB_TYPE") ? obj.getString("SUB_TYPE") : "";
- String SUB_TYPE_NAME = obj.containsKey("SUB_TYPE_NAME") ? obj.getString("SUB_TYPE_NAME") : "";
- Map<String, Object> map = new HashMap<>();
- map.put("objCode", OBJ_CODE);
- map.put("objName", OBJ_NAME);
- map.put("subType", SUB_TYPE);
- map.put("subTypeName", SUB_TYPE_NAME);
- map.put("objAddress", OBJ_ADDRESS);
- map.put("middleType", MIDDLE_TYPE);
- map.put("resultIndex", RESULT_INDEX);
- MapUtil util = new MapUtil();
- if (!"".equals(CENTER_X) && !"".equals(CENTER_Y)) {
- double x = Double.parseDouble(CENTER_X);
- double y = Double.parseDouble(CENTER_Y);
- Map<String, Double> xyMap = util.wgs84togcj02(x, y);
- map.put("centerX", xyMap.get("lon"));
- map.put("centerY", xyMap.get("lat"));
- list.add(map);
- }
- }
- }
- long l3 = System.currentTimeMillis();
- System.out.println("数据处理时间:" + (l3 - l2) / 1000.0 + "s");
- return list;
- }
- @Override
- public List<Map<String, Object>> getSlgcByCode(String type, String objCode) {
- List<Map<String, Object>> list;
- JSONObject json = new JSONObject();
- List<String> middleTypeList = new ArrayList<>();
- if (StringUtils.isNotBlank(type)) {
- middleTypeList.add(type);
- }
- json.put("middleTypeList", middleTypeList);
- json.put("fitchResultType", null);
- json.put("queryShowItemsOnly", null);
- json.put("keyWords", null);
- json.put("sumConditions", null);
- json.put("queryAreaData", null);
- json.put("sessionId", "a9c4bdbf-7cc8-4fe1-a444-7880d5e1ecca");
- json.put("queryType", null);
- json.put("scale", null);
- json.put("lucenelevel", null);
- json.put("userId", "");
- json.put("objectCodeList", null);
- json.put("targetId", "lucene.Lucene0010SurveySearchLogic");
- json.put("spatialQueryType", null);
- json.put("keyId", "demoMapPanMapClearMapAreaMapDistanceMapQueryresourceLayerControlDocumentQuerySystemhelpDocumentBaseDataQueryMapAssistControlMapSearchServiceCatalogMapLegendMapFullExtentMapFullScreenguideHelpDocumetnThemeAnalysisDissertation");
- json.put("sortField", null);
- json.put("spatialId", null);
- json.put("isAsc", null);
- json.put("pageIndex", 0);
- json.put("objectCode", objCode);
- json.put("fetchStatistic", null);
- json.put("pageSize", 30);
- json.put("mapBounds", null);
- json.put("mapBoundsList", null);
- json.put("queryStatisticData", null);
- json.put("pointsArray", null);
- json.put("conditonList", null);
- list = getSlgcDetail(json.toString());
- return list;
- }
- public List<Map<String, Object>> getSlgcDetail(String jsonStr) {
- List<Map<String, Object>> list = new ArrayList<>();
- long l = System.currentTimeMillis();
- System.out.println("请求串:" + jsonStr);
- WSWebServiceImplService ws = new WSWebServiceImplService();
- String result = ws.getWSWebServiceImplPort().execute(jsonStr);
- System.out.println("返回值:" + result);
- long l2 = System.currentTimeMillis();
- System.out.println("请求时间:" + (l2 - l) / 1000.0 + "s");
- JSONObject json = JSONObject.fromObject(result);
- if (json.get("surveyData") != null) {
- JSONArray surveyData = json.getJSONArray("surveyData");
- if (surveyData.size() > 0) {
- JSONObject survey = surveyData.getJSONObject(0);
- if (survey.get("resultInfoDetailList") != null) {
- JSONArray array = survey.getJSONArray("resultInfoDetailList");
- list = array;
- }
- }
- }
- long l3 = System.currentTimeMillis();
- System.out.println("数据处理时间:" + (l3 - l2) / 1000.0 + "s");
- return list;
- }
- }
|