jiangping
2024-07-30 995436f56f93874f19b8094fe5537e96d413b6fd
server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java
@@ -1,5 +1,6 @@
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;
@@ -14,47 +15,88 @@
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) {
        try {
            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);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    /**
     * 同步组织
     * @param url
     * @param param
     * @return
     */
    public static List<ErpOrgListResponse> getErpOrgList(String url, OrgListRequest param){
    public   List<ErpOrgListResponse> getErpOrgList(String url, OrgListRequest param){
        List<ErpOrgListResponse> list = new ArrayList<>();
        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;//还有下一页
        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;
    }
@@ -64,31 +106,37 @@
     * @param param
     * @return
     */
    public static List<ErpUserListResponse> getErpUserList(String url, UserListRequest param){
    public List<ErpUserListResponse> getErpUserList(String url, UserListRequest param){
        List<ErpUserListResponse> list = new ArrayList<>();
        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 =false;//还有下一页
        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;
@@ -100,20 +148,28 @@
     * @param param
     * @return
     */
    public static ApproveInfoResponse submitApprove(String url, ApproveAddRequest param){
    public  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<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());
        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 (BusinessException e){
            throw e;
        }catch (Exception e){
            e.printStackTrace();
        }finally {
           saveInterfaceLog(param,url,JSONObject.toJSONString(result),Constants.ZERO);
        }
        return  null;
    }
@@ -124,15 +180,21 @@
     * @param param
     * @return
     */
    public static ERPApiResponse noticeUserStatus(String url, UserFailRequest param){
    public   ERPApiResponse noticeUserStatus(String url, UserFailRequest param){
        String result = HttpsUtil.postJson(url, JSONObject.toJSONString(param));
        if(StringUtils.isNotBlank(result)){
            TypeReference typeReference =
                    new TypeReference<ERPApiResponse>(){};
            ERPApiResponse response = JSONObject.parseObject(result, typeReference.getType());
            if(response!=null){
                return response;
        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;
    }