package com.landtool.lanbase.modules.res.service.impl; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.alibaba.fastjson.JSONObject; import com.landtool.lanbase.config.SysTemPropertyConfig; import com.landtool.lanbase.modules.res.dao.Res_StorageConfigMapper; import com.landtool.lanbase.modules.res.entity.Res_ExtDataSource; import com.landtool.lanbase.modules.res.entity.Res_StorageConfig; import com.landtool.lanbase.modules.res.service.ResStorageConfigService; @Service("ResStorageConfigService") public class ResStorageConfigServiceImpl implements ResStorageConfigService{ @Autowired private Res_StorageConfigMapper dao; @Autowired private SysTemPropertyConfig sysConfig; @Override public Res_StorageConfig findStorageConfigByResourceid(int resourceid) { // TODO Auto-generated method stub return dao.findStorageConfigByResourceid(resourceid); } @Override public int insertStorageConfig(Res_StorageConfig res_storageConfig) { // TODO Auto-generated method stub return dao.insertStorageConfig(res_storageConfig); } @Override public int updateStorageConfig(Res_StorageConfig res_storageConfig) { // TODO Auto-generated method stub return dao.updateStorageConfig(res_storageConfig); } @Override public int deleteByResourceid(int resourceid) { // TODO Auto-generated method stub return dao.deleteByResourceid(resourceid); } @Override public String invoke(Res_StorageConfig res_storageConfig,Res_ExtDataSource res_ExtDataSource,String ncFilePath) { CloseableHttpClient closeHttpClient = HttpClients.createDefault(); CloseableHttpResponse response =null; String body =""; //发送post请求 HttpPost httpPost = new HttpPost(sysConfig.getNcStorageUrl()); //设置参数 List params = new ArrayList(); // params.add(new BasicNameValuePair("nc_file","http://192.168.0.130:8080/webapp/data/nc/hailang.nc")); params.add(new BasicNameValuePair("nc_file",ncFilePath)); // params.add(new BasicNameValuePair("debug_count", "1")); if(res_storageConfig.getUvparams()!=null && !res_storageConfig.getUvparams().equals("")){ JSONObject jsonObject = JSONObject.parseObject(res_storageConfig.getUvparams()); String uvariables = jsonObject.get("uvariables").toString(); String vvariables = jsonObject.get("vvariables").toString(); String layer = jsonObject.get("layer").toString(); if(uvariables!=null && !uvariables.equals("") && vvariables!=null && !vvariables.equals("")){ params.add(new BasicNameValuePair("nc_u_var",uvariables)); params.add(new BasicNameValuePair("nc_v_var",vvariables)); } if(res_ExtDataSource.getFeature()!=null && !res_ExtDataSource.getFeature().equals("")){ params.add(new BasicNameValuePair("to_db_layername",res_ExtDataSource.getFeature()+"/"+layer)); }else{ params.add(new BasicNameValuePair("to_db_layername",layer)); } params.add(new BasicNameValuePair("nc_data_var","")); params.add(new BasicNameValuePair("nc_row_dimensions","")); } if(res_storageConfig.getVariableparams()!=null && !res_storageConfig.getVariableparams().equals("")){ JSONObject jsonObject = JSONObject.parseObject(res_storageConfig.getVariableparams()); String nc_data_var = jsonObject.get("nc_data_var").toString(); String rowDimensions = jsonObject.get("rowDimensions").toString(); String layer = jsonObject.get("layer").toString(); if(nc_data_var!=null && !nc_data_var.equals("") && rowDimensions!=null && !rowDimensions.equals("")){ params.add(new BasicNameValuePair("nc_data_var",nc_data_var)); params.add(new BasicNameValuePair("nc_row_dimensions",rowDimensions)); } params.add(new BasicNameValuePair("nc_u_var","")); params.add(new BasicNameValuePair("nc_v_var","")); if(res_ExtDataSource.getFeature()!=null && !res_ExtDataSource.getFeature().equals("")){ params.add(new BasicNameValuePair("to_db_layername",res_ExtDataSource.getFeature()+"/"+layer)); }else{ params.add(new BasicNameValuePair("to_db_layername",layer)); } } params.add(new BasicNameValuePair("nc_x_var",res_storageConfig.getLonName())); params.add(new BasicNameValuePair("nc_y_var",res_storageConfig.getLatName())); params.add(new BasicNameValuePair("nc_time_var",res_storageConfig.getTimeName())); if(res_ExtDataSource.getDatabasetype().equalsIgnoreCase("Oracle")){ params.add(new BasicNameValuePair("to_db_platform",res_ExtDataSource.getDatabasetype())); // params.add(new BasicNameValuePair("to_db_platform","192.168.0.215/PDBGDHYXJ")); params.add(new BasicNameValuePair("to_db_instance", res_ExtDataSource.getServeraddress()+"/"+res_ExtDataSource.getDatabasename())); } if(res_ExtDataSource.getDatabasetype().equalsIgnoreCase("SQLServer")){ params.add(new BasicNameValuePair("to_db_platform","SQL_SERVER")); params.add(new BasicNameValuePair("to_db_instance", res_ExtDataSource.getServeraddress())); params.add(new BasicNameValuePair("to_db_database", res_ExtDataSource.getDatabasename())); } params.add(new BasicNameValuePair("to_db_username",res_ExtDataSource.getUsername())); params.add(new BasicNameValuePair("to_db_password",res_ExtDataSource.getPassword())); params.add(new BasicNameValuePair("returnZ","false")); params.add(new BasicNameValuePair("returnM","false")); params.add(new BasicNameValuePair("returnTrueCurves","false")); params.add(new BasicNameValuePair("f","json")); System.out.println(params.toString()); try { httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); response = closeHttpClient.execute(httpPost); HttpEntity entity = response.getEntity(); int statusCode = response.getStatusLine().getStatusCode(); if(statusCode==200){ //请求成功 if(entity!=null){ body=EntityUtils.toString(entity); } } EntityUtils.consume(entity); } catch (Exception e) { e.printStackTrace(); }finally{ try { httpPost=null; response.close(); } catch (IOException e) { e.printStackTrace(); } } return body; } }