package com.smartearth.poiexcel.service;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.smartearth.poiexcel.entity.*;
|
import com.smartearth.poiexcel.mapper.EntMapper;
|
import com.smartearth.poiexcel.utils.RestHelper;
|
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.LogFactory;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.http.*;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.client.RestTemplate;
|
|
import javax.annotation.Resource;
|
import java.lang.reflect.Field;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 企业服务类
|
* @author WWW
|
* @date 2023-10-05
|
*/
|
@Service
|
public class EntService {
|
@Resource
|
EntMapper entMapper;
|
|
@Value("${qylweb.host}")
|
String host;
|
|
@Value("${qylweb.user}")
|
String user;
|
|
@Value("${qylweb.pwd}")
|
String pwd;
|
|
private final static Log log = LogFactory.getLog(EntService.class);
|
|
private final static String generateToken = "%s/yqfwg/app/generateToken";
|
|
private final static String getEntBaseInfo = "%s/yqfwg/api/project/getEntBaseInfoForOtherSysListPage?ctoken=%s&showCount=%d¤tPage=%d";
|
|
/**
|
* 获取令牌
|
*/
|
public String selectToken() {
|
try {
|
String url = String.format(generateToken, host);
|
|
Map<String, Object> map = new HashMap<>(2);
|
map.put("userName", user);
|
map.put("passWord", pwd);
|
|
Result rs = postForRest(url, map, Result.class);
|
if (null == rs || StaticData.I200 != rs.getCode()) {
|
return null;
|
}
|
|
TokenResult tr = JSONObject.parseObject(rs.getData(), TokenResult.class);
|
|
return tr.getCtoken();
|
} catch (Exception ex) {
|
log.error(ex.getMessage(), ex);
|
return null;
|
}
|
}
|
|
/**
|
* 查询企业
|
*/
|
public List<EntEntity> selectEnts(String token, String startDate, String endDate, String qylabel, Integer showCount, Integer currentPage) {
|
try {
|
String url = String.format(getEntBaseInfo, host, token, showCount, currentPage);
|
if (null != startDate) {
|
url += "&buildDate_startdate=" + startDate;
|
}
|
if (null != endDate) {
|
url += "&buildDate_enddate=" + endDate;
|
}
|
if (null != qylabel) {
|
url += "&qylabel=" + qylabel;
|
}
|
|
Result rs = getForRest(url, Result.class);
|
if (null == rs || StaticData.I200 != rs.getCode()) {
|
return null;
|
}
|
|
EntResult er = JSONObject.parseObject(rs.getData(), EntResult.class);
|
|
return er.getPd().getList();
|
} catch (Exception ex) {
|
log.error(ex.getMessage(), ex);
|
return null;
|
}
|
}
|
|
/**
|
* get请求(Rest)
|
*/
|
public <T> T getForRest(String url, Class<T> clazz) {
|
RestTemplate rest = RestHelper.getRestTemplate();
|
|
return rest.getForObject(url, clazz);
|
}
|
|
/**
|
* post请求(Rest)
|
*/
|
public <T> T postForRest(String url, Map<String, Object> map, Class<T> clazz) {
|
RestTemplate rest = RestHelper.getRestTemplate();
|
|
return rest.postForObject(url, map, clazz);
|
}
|
|
/**
|
* delete请求(Rest)
|
*/
|
public <T> T deleteForRest(String url, Map<String, T> map, Class<T> clazz) {
|
HttpHeaders headers = new HttpHeaders();
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
|
HttpEntity<?> entity = new HttpEntity<>(map, headers);
|
|
RestTemplate rest = RestHelper.getRestTemplate();
|
ResponseEntity<T> rs = rest.exchange(url, HttpMethod.DELETE, entity, clazz);
|
|
return rs.getBody();
|
}
|
|
/**
|
* 获取Map数据
|
*/
|
public <T> Map<String, Object> getMapData(T t) {
|
Map<String, Object> map = new HashMap<>(1);
|
|
Field[] fields = t.getClass().getDeclaredFields();
|
for (Field field : fields) {
|
try {
|
if ("serialVersionUID".equals(field.getName())) {
|
continue;
|
}
|
|
field.setAccessible(true);
|
Object obj = field.get(t);
|
|
map.put(field.getName(), obj);
|
} catch (Exception ex) {
|
//
|
}
|
}
|
|
return map;
|
}
|
}
|