package com.doumee.core.erp; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; 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.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.HttpsUtil; import com.doumee.dao.business.model.Member; import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.List; public class ErpTool { /** * 同步组织 * @param url * @param param * @return */ public static List getErpOrgList(String url, OrgListRequest param){ List list = new ArrayList<>(); int page =1; int pageSize = 100; boolean hasLast = true; while (hasLast){ hasLast = false; PageWrap 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> response = JSONObject.parseObject(result, typeReference.getType()); if(response!=null && response.getData()!=null&& response.getData().getRecords()!=null){ list.addAll(response.getData().getRecords()); if(100*pageSize < response.getData().getTotal() ){ hasLast =true;//还有下一页 } page++; } } } return list; } /** * 同步人员 * @param url * @param param * @return */ public static List getErpUserList(String url, UserListRequest param){ List list = new ArrayList<>(); int page =1; int pageSize = 100; boolean hasLast = true; while (hasLast){ hasLast = false; PageWrap 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> 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++; } } } return list; } /** * 审批提交 * @param url * @param param * @return */ public static ApproveInfoResponse submitApprove(String url, ApproveAddRequest param){ System.out.println(JSONObject.toJSONString(param)); String result = HttpsUtil.postJson(url, JSONObject.toJSONString(param)); if(StringUtils.isNotBlank(result)){ // TypeReference typeReference = // new TypeReference>(){}; // ERPApiResponse response = JSONObject.parseObject(result, typeReference.getType()); // if(response!=null && response.isSuccess()){ // return response.getData(); // } TypeReference typeReference = new TypeReference>(){}; ERPApiResponse response = JSONObject.parseObject(result, typeReference.getType()); if(response!=null && response.isSuccess()){ ApproveInfoResponse approveInfoResponse = new ApproveInfoResponse(); approveInfoResponse.setId(response.getData()); return approveInfoResponse; } } return null; } /** * 通知人员同步失败 * @param url * @param param * @return */ public static ERPApiResponse noticeUserStatus(String url, UserFailRequest param){ String result = HttpsUtil.postJson(url, JSONObject.toJSONString(param)); if(StringUtils.isNotBlank(result)){ TypeReference typeReference = new TypeReference(){}; ERPApiResponse response = JSONObject.parseObject(result, typeReference.getType()); if(response!=null){ return response; } } return null; } }