package com.doumee.core.erp;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.TypeReference;
|
import com.doumee.core.constants.ResponseStatus;
|
import com.doumee.core.erp.model.openapi.request.erp.ApproveAddRequest;
|
import com.doumee.core.erp.model.openapi.request.erp.OrgListRequest;
|
import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest;
|
import com.doumee.core.erp.model.openapi.request.erp.UserListRequest;
|
import com.doumee.core.erp.model.openapi.response.erp.ApproveInfoResponse;
|
import com.doumee.core.erp.model.openapi.response.erp.ERPApiResponse;
|
import com.doumee.core.erp.model.openapi.response.erp.ErpOrgListResponse;
|
import com.doumee.core.erp.model.openapi.response.erp.ErpUserListResponse;
|
import com.doumee.core.exception.BusinessException;
|
import com.doumee.core.model.PageData;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.HttpsUtil;
|
import com.doumee.dao.business.InterfaceLogMapper;
|
import com.doumee.dao.business.model.InterfaceLog;
|
import com.doumee.dao.business.model.Member;
|
import com.doumee.service.business.InterfaceLogService;
|
import com.github.pagehelper.PageInfo;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.ibatis.session.SqlSession;
|
import org.apache.ibatis.session.SqlSessionFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
public class ErpTool {
|
|
public static InterfaceLogService interfaceLogService;
|
public void saveInterfaceLog(Object param, String path,String result,Integer type) {
|
if(interfaceLogService !=null) {
|
InterfaceLog interfaceLog = new InterfaceLog();
|
interfaceLog.setType(type);
|
interfaceLog.setCreateDate(new Date());
|
interfaceLog.setIsdeleted(Constants.ZERO);
|
if (param != null) {
|
interfaceLog.setRequest(JSONObject.toJSONString(param));
|
}
|
interfaceLog.setPlat(Constants.ONE);
|
interfaceLog.setRepose(result);
|
interfaceLog.setName(path);
|
interfaceLog.setUrl(path);
|
interfaceLogService.create(interfaceLog);
|
}
|
|
}
|
|
|
|
/**
|
* 同步组织
|
* @param url
|
* @param param
|
* @return
|
*/
|
public List<ErpOrgListResponse> getErpOrgList(String url, OrgListRequest param){
|
List<ErpOrgListResponse> list = new ArrayList<>();
|
try {
|
int page = 1;
|
int pageSize = 100;
|
boolean hasLast = true;
|
while (hasLast) {
|
hasLast = false;
|
PageWrap<OrgListRequest> pageWrap = new PageWrap<>();
|
pageWrap.setModel(param);
|
pageWrap.setPage(page);
|
pageWrap.setCapacity(pageSize);
|
String result = HttpsUtil.postJson(url, JSONObject.toJSONString(pageWrap));
|
if (StringUtils.isNotBlank(result)) {
|
TypeReference typeReference =
|
new TypeReference<ERPApiResponse<PageData<ErpOrgListResponse>>>() {
|
};
|
ERPApiResponse<PageData<ErpOrgListResponse>> response = JSONObject.parseObject(result, typeReference.getType());
|
if (response != null && response.getData() != null && response.getData().getRecords() != null) {
|
list.addAll(response.getData().getRecords());
|
if (page * pageSize < response.getData().getTotal()) {
|
hasLast = true;//还有下一页
|
}
|
page++;
|
}
|
}
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
}finally {
|
saveInterfaceLog(param,url,JSONArray.toJSONString(list),Constants.ZERO);
|
}
|
return list;
|
}
|
|
/**
|
* 同步人员
|
* @param url
|
* @param param
|
* @return
|
*/
|
public List<ErpUserListResponse> getErpUserList(String url, UserListRequest param){
|
|
List<ErpUserListResponse> list = new ArrayList<>();
|
try{
|
int page =1;
|
int pageSize = 100;
|
boolean hasLast = true;
|
while (hasLast){
|
hasLast = false;
|
PageWrap<UserListRequest> pageWrap = new PageWrap<>();
|
pageWrap.setModel(param);
|
pageWrap.setPage(page);
|
pageWrap.setCapacity(pageSize);
|
String result = HttpsUtil.postJson(url, JSONObject.toJSONString(pageWrap));
|
if(StringUtils.isNotBlank(result)){
|
TypeReference typeReference =
|
new TypeReference<ERPApiResponse<PageData<ErpUserListResponse>>>(){};
|
ERPApiResponse<PageData <ErpUserListResponse>> response = JSONObject.parseObject(result, typeReference.getType());
|
if(response!=null && response.getData()!=null && response.getData().getRecords()!=null){
|
list.addAll(response.getData().getRecords());
|
if(pageSize*page < response.getData().getTotal() ){
|
hasLast =true;//还有下一页
|
}
|
}
|
page++;
|
}
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
}finally {
|
saveInterfaceLog(param,url, JSONArray.toJSONString(list),Constants.ZERO);
|
}
|
return list;
|
|
}
|
|
/**
|
* 审批提交
|
* @param url
|
* @param param
|
* @return
|
*/
|
public ApproveInfoResponse submitApprove(String url, ApproveAddRequest param){
|
System.out.println(JSONObject.toJSONString(param));
|
String result = HttpsUtil.postJson(url, JSONObject.toJSONString(param));
|
try{
|
if(StringUtils.isNotBlank(result)){
|
TypeReference typeReference =
|
new TypeReference<ERPApiResponse<String>>(){};
|
ERPApiResponse<String> response = JSONObject.parseObject(result, typeReference.getType());
|
if(response!=null && response.isSuccess()){
|
ApproveInfoResponse approveInfoResponse = new ApproveInfoResponse();
|
approveInfoResponse.setId(response.getData());
|
return approveInfoResponse;
|
}else if(response!=null && !response.isSuccess()){
|
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),response.getMessage());
|
}
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
}finally {
|
saveInterfaceLog(param,url,JSONObject.toJSONString(result),Constants.ZERO);
|
}
|
return null;
|
}
|
|
/**
|
* 通知人员同步失败
|
* @param url
|
* @param param
|
* @return
|
*/
|
public ERPApiResponse noticeUserStatus(String url, UserFailRequest param){
|
String result = HttpsUtil.postJson(url, JSONObject.toJSONString(param));
|
try{
|
if(StringUtils.isNotBlank(result)){
|
TypeReference typeReference =
|
new TypeReference<ERPApiResponse>(){};
|
ERPApiResponse response = JSONObject.parseObject(result, typeReference.getType());
|
if(response!=null){
|
return response;
|
}
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
}finally {
|
saveInterfaceLog(param,url,JSONObject.toJSONString(result),Constants.ZERO);
|
}
|
return null;
|
}
|
}
|