package com.yb.service; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.yb.config.XzConfig; import com.yb.entity.RelaEntity; import com.yb.util.EntityHttpUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; @Service public class AgentService { @Autowired private EntityHttpUtil entityHttpUtil; @Autowired private XzService xzService; @Autowired private XzConfig xzConfig; // Agent_Rag服务调用 public String getAgentRag(String url, String api, String sessionId, String libId, String msg) throws Exception { String http = url + api + "?session_id=" + sessionId + "&lib_id=" + libId + "&message=" + msg; System.out.println("rec getAgentRag:" + http); String obj = entityHttpUtil.getAgentMessage(http); System.out.println("rec getAgentRag:" + obj); return obj; } public String getAgentIntention(String url, String api, String msg, String sessionid, String libid) throws Exception { String http = url + api + "?session_id=" + sessionid + "&lib_id=" + libid + "&message=" + msg; System.out.println("rec getMessage:" + http); String obj = entityHttpUtil.getAgentMessage(http); System.out.println("rec getMessage:" + obj); return obj; } // public String getAgentPoiMap(String func, String filed) throws Exception { String poiObj = xzService.getQueryFiled(func, filed, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity); System.out.println("rec poiMap:" + poiObj); return poiObj; } public String getAgentAroundPoi(String place, String type, int dis, String filed, String typeFiled) throws Exception { String item = xzService.getQueryFiled(place, filed, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity); JSONObject obj = JSONObject.parseObject(item); if (obj == null) { return ""; } Double lon = Double.parseDouble(obj.getString("lon")); Double lat = Double.parseDouble(obj.getString("lat")); String wkt = xzService.getWKt(lon, lat, dis); return xzService.getQueryAround(type, wkt, typeFiled, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity); } public HashMap getQueryRelationship(String place, String filed) throws Exception { String poiObj = xzService.getQueryEntity(place, filed, xzConfig.layerId, xzConfig.dbid, xzConfig.layerQuery); if (poiObj == null) { HashMap hashMap = new HashMap<>(); hashMap.put("msg", "未查询到" + place + "相关数据"); return hashMap; } HashMap hashMap = new HashMap(); hashMap.put("token", xzConfig.token); hashMap.put("dbid", xzConfig.dbid); hashMap.put("groupid", ""); String relationList = entityHttpUtil.getPostMessage(xzConfig.relationList, hashMap); JSONObject relattionObj = JSONObject.parseObject(relationList); String data = relattionObj.getString("data"); JSONArray relationArry = JSONArray.parseArray(data); JSONObject itemObj = new JSONObject(); for (int i = 0; i < relationArry.size(); i++) { JSONObject relationtem = relationArry.getJSONObject(i); String name = relationtem.getString("name"); // if (name.equals("包含")) { // itemObj = relationtem; // } if (name.contains(String.valueOf("包含"))) { itemObj = relationtem; } } // String distanceUrl = xzConfig.relationDistinct + "?dbid=" + xzConfig.dbid + "&token=" + xzConfig.token + "&relationid=" + itemObj.getString("code"); // String relationDistance = entityHttpUtil.getMessage(distanceUrl); // JSONObject distanceObj = JSONObject.parseObject(relationList); // String distanceData = relattionObj.getString("data"); // System.out.println("rec getQueryRelationship:" + distanceData); String relateddataeUrl = xzConfig.relationRelateddata + "?start=1&count=1000000&&a_like=&b_like=&dbid=" + xzConfig.dbid + "&token=" + xzConfig.token + "&relationid=" + itemObj.getString("code"); String relationRelateddata = entityHttpUtil.getMessage(relateddataeUrl); JSONObject relateddataeObj = JSONObject.parseObject(relationRelateddata); String relateddataeData = relateddataeObj.getString("data"); JSONArray relateddataeArray = JSONArray.parseArray(JSONObject.parseObject(relateddataeData).getString("items")); System.out.println("rec getQueryRelationship:" + relateddataeArray); ArrayList list = new ArrayList<>(); for (int k = 0; k < relateddataeArray.size(); k++) { JSONObject reitem = relateddataeArray.getJSONObject(k); list.add(reitem.getString("a_objectid")); list.add(reitem.getString("b_objectid")); } HashMap reMap = new HashMap(); reMap.put("token", xzConfig.token); reMap.put("dbid", xzConfig.dbid); reMap.put("ids", list.toString()); reMap.put("layerid", xzConfig.layerId); reMap.put("querylatest", "true"); String reMapList = entityHttpUtil.getPostMessage(xzConfig.layerQuery, reMap); JSONArray reArray = JSONArray.parseArray(JSONObject.parseObject(reMapList).getString("data")); System.out.println("rec getQueryRelationship:" + reArray); HashMap traiMap = new HashMap<>(); traiMap.put("center", JSONObject.parseObject(poiObj)); traiMap.put("positions", reArray); if (reArray.size() > 0) { ArrayList arrayList = new ArrayList<>(); for (int i = 0; i < reArray.size(); i++) { String name = JSONObject.parseObject(reArray.getString(i)).getString(xzConfig.typeFiled); // System.out.println("rec getQueryRelationship:" + name); if (name == null || name.isEmpty()) { continue; } else { if (name.equals(place)) { continue; } boolean contains = false; for (int j = 0; j < arrayList.size(); j++) { RelaEntity firstElement = arrayList.get(j); if (firstElement.getName().equals(name)) { int flag = firstElement.getCount(); flag++; firstElement.setCount(flag); contains = true; } } if (contains == false) { RelaEntity relaEntity = new RelaEntity(); relaEntity.setName(name); relaEntity.setCount(1); arrayList.add(relaEntity); } } } String markDown = "| 数据类型 | 数据量 |\n|------|------|\n"; for (int i = 0; i < arrayList.size(); i++) { String name = arrayList.get(i).getName(); int count = arrayList.get(i).getCount(); markDown += "| " + name + " | " + count + " |\n"; } traiMap.put("msg", markDown); } // System.out.println("rec traiMap:" + traiMap); return traiMap; } }