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<NameValuePair> params = new ArrayList<NameValuePair>();
|
// 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;
|
}
|
|
}
|