陈战涛
2023-05-25 e6535ab931a79cce25b3c15b47ce59dcb66e69e9
src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java
@@ -5,18 +5,18 @@
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.PushProtocol;
import com.fzzy.api.dto.ResponseDto;
import com.fzzy.api.entity.ApiConfs;
import com.fzzy.api.entity.ApiLog;
import com.fzzy.api.entity.*;
import com.fzzy.api.service.ApiCommonService;
import com.fzzy.api.service.ApiRemoteService;
import com.fzzy.api.service.ApiTriggerService;
import com.fzzy.api.utils.ContextUtil;
import com.fzzy.api.utils.RedisUtil;
import com.fzzy.api.view.repository.ApiLogRep;
import com.fzzy.push.gd2022.dto.*;
import com.fzzy.push.shjdjw2023.dto.ShjdjwReqDto;
import com.fzzy.api.view.repository.*;
import com.fzzy.push.shjdjw2023.dto.*;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -35,13 +35,24 @@
    @Autowired
    private RedisUtil redisUtil;
    @Autowired
    private ApiCommonService apiCommonService;
    @Autowired
    private ApiTriggerService apiTriggerService;
    @Autowired
    private ApiLogRep apiLogRep;
    @Autowired
    private Api1101Rep api1101Rep;
    @Autowired
    private Api1102Rep api1102Rep;
    @Autowired
    private Api1103Rep api1103Rep;
    @Autowired
    private Api1202Rep api1202Rep;
    @Autowired
    private Api1104Rep api1104Rep;
    @Autowired
    private Api1208Rep api1208Rep;
    @Override
    public String getProtocol() {
@@ -93,16 +104,15 @@
                return responseDto;
            }
            Map<String, Object> map = new HashMap<>();
            GD2022ResponseDto responseDto = Shjdjw2023HttpClientUtil.postPushData(conf.getApiUrl() + inteId, jsonData, conf);
            ShjdjwRespDto responseDto = Shjdjw2023HttpClientUtil.postPushData(conf.getApiUrl(), jsonData, conf);
            responseDto.setBizId(bizId);
            apiLog.setStatus(responseDto.getCode() == 200 ? 0 : responseDto.getCode());
            apiLog.setResult(responseDto.getMsg());
            apiLog.setStatus(responseDto.getCode() == 1 ? 0 : responseDto.getCode());
            apiLog.setResult(responseDto.getDescription());
            apiLogRep.save(apiLog);
            ResponseDto resd = new ResponseDto();
            resd.setSuccess(responseDto.getCode() == 200 ? 0 : responseDto.getCode());
            resd.setMsg(responseDto.getMsg());
            //updateGD2022AuthToken(responseDto,conf, token);
            resd.setSuccess(responseDto.getCode() == 1 ? 0 : responseDto.getCode());
            resd.setMsg(responseDto.getDescription());
            return resd;
        } catch (Exception e) {
            log.error(e.getMessage(), e);
@@ -121,19 +131,279 @@
    private String getJsonData(String inteId, Object data, String interfaceId) {
        ShjdjwReqDto<Object> dto = new ShjdjwReqDto<>();
        dto.setId(getDataId(interfaceId));
        List<Object> list = new ArrayList<>();
        //转换封装
        if (Constant.API_CODE_1101.equals(inteId)) {
            dto.setData(data);
        if (Constant.API_CODE_1102.equals(inteId)) {
            //单位接口数据封装
            ShjdjwApi1101 shjdjwApi1101 = new ShjdjwApi1101();
            BeanUtils.copyProperties(data, shjdjwApi1101);
            //查询单位信息
            List<Api1101> listApi1101 = api1101Rep.findPushData(shjdjwApi1101.getKqdm());
            Api1101 api1101 = null;
            if (null != listApi1101 && listApi1101.size() > 0) {
                api1101 = listApi1101.get(0);
            }
            if (null != api1101) {
                shjdjwApi1101.setDwmc(api1101.getDwmc());
                shjdjwApi1101.setKqs(api1101.getKqs());
            }
            //查询仓房信息
            List<Api1103> listApi1103 = api1103Rep.findPushData(shjdjwApi1101.getKqdm());
            if (null != listApi1103 && listApi1103.size() > 0) {
                for (int i = 0; i < listApi1103.size(); i++) {
                    if (i == 0) {
                        shjdjwApi1101.setCfmc(listApi1103.get(i).getCfmc());
                    } else {
                        shjdjwApi1101.setCfmc(shjdjwApi1101.getCfmc() + "#" + listApi1103.get(i).getCfmc());
                    }
                }
            }
            //单位信息封装
            list.add(shjdjwApi1101);
        } else if (Constant.API_CODE_1202.equals(inteId)) {
            //粮食入库数据封装
            ShjdjwApi1202 shjdjwApi1202 = new ShjdjwApi1202();
            Api1202 api1202 = (Api1202) data;
            copyApi1202(api1202, shjdjwApi1202);
            list.add(shjdjwApi1202);
        } else if (Constant.API_CODE_1203.equals(inteId)) {
            //粮食入库检验数据封装
            ShjdjwApi1203 shjdjwApi1203 = copyApi1203((Api1203) data);
            list.add(shjdjwApi1203);
        } else if (Constant.API_CODE_1205.equals(inteId)) {
            //粮食出库数据封装
            ShjdjwApi1205 shjdjwApi1205 = copyApi1205((Api1205) data);
            dto.setData(data);
            list.add(shjdjwApi1205);
        } else if (Constant.API_CODE_1208.equals(inteId)) {
            //粮食库存数据封装
            ShjdjwApi1208 shjdjwApi1208 = copyApi1208((Api1208) data);
            list.add(shjdjwApi1208);
        } else if (Constant.API_CODE_1209.equals(inteId)) {
            //损益单数据封装
            ShjdjwApi1209 shjdjwApi1209 = copyApi1209((Api1209) data);
            list.add(shjdjwApi1209);
        } else if (Constant.API_CODE_1310.equals(inteId)) {
            //质检数据封装
            ShjdjwApi1310 shjdjwApi1310 = copyApi1310((Api1310) data);
            list.add(shjdjwApi1310);
        } else if (Constant.API_CODE_1403.equals(inteId)) {
            //轮换计划数据封装
            ShjdjwApi1403 shjdjwApi1403 = new ShjdjwApi1403();
            Api1403 api1403 = (Api1403) data;
            BeanUtils.copyProperties(api1403, shjdjwApi1403);
            shjdjwApi1403.setJhbm(api1403.getLhjhdh());
            shjdjwApi1403.setPch("0");
            list.add(shjdjwApi1403);
        } else if (Constant.API_CODE_1404.equals(inteId)) {
            //轮换计划完成情况数据封装
            ShjdjwApi1404 shjdjwApi1404 = copyApi1404((Api1404) data);
            list.add(shjdjwApi1404);
        } else {
            dto.setData(data);
        }
            list.add(data);
        }
        dto.setData(list);
        return JSON.toJSONString(dto);
    }
    private ShjdjwApi1404 copyApi1404(Api1404 api1404) {
        ShjdjwApi1404 shjdjwApi1404 = new ShjdjwApi1404();
        BeanUtils.copyProperties(api1404, shjdjwApi1404);
        //查询单位信息
        List<Api1101> listApi1101 = api1101Rep.findPushData(api1404.getKqdm());
        if (null != listApi1101 && listApi1101.size() > 0) {
            shjdjwApi1404.setDwmc(listApi1101.get(0).getDwmc());
        }
        //TODO 计划年度 计划数量 已执行数量 执行比例 招标/竞价比例
        shjdjwApi1404.setJhnd("0");
        shjdjwApi1404.setJhsl("0");
        shjdjwApi1404.setYzxsl("0");
        shjdjwApi1404.setZxbl("0");
        shjdjwApi1404.setZbjjbl("0");
        return shjdjwApi1404;
    }
    private ShjdjwApi1203 copyApi1203(Api1203 api1203) {
        ShjdjwApi1203 shjdjwApi1203 = new ShjdjwApi1203();
        BeanUtils.copyProperties(api1203, shjdjwApi1203);
        shjdjwApi1203.setQydbh(api1203.getRkjydh());
        shjdjwApi1203.setHwbm(api1203.getHwdm());
        shjdjwApi1203.setYpbm(api1203.getRkywdh());
        shjdjwApi1203.setJyjg(api1203.getJyz());
        shjdjwApi1203.setJyjl(api1203.getJyjg());
        shjdjwApi1203.setPzbm(api1203.getLspzdm());
        shjdjwApi1203.setBjw("jiading");
        shjdjwApi1203.setPch("0");
        return shjdjwApi1203;
    }
    private ShjdjwApi1310 copyApi1310(Api1310 api1310) {
        ShjdjwApi1310 shjdjwApi1310 = new ShjdjwApi1310();
        BeanUtils.copyProperties(api1310, shjdjwApi1310);
        shjdjwApi1310.setZjbgdbh(api1310.getZjbgdh());
        shjdjwApi1310.setPznm(api1310.getLspzdm());
        shjdjwApi1310.setSkdjbm(api1310.getLsdjdm());
        shjdjwApi1310.setJylbbm(api1310.getJylb());
        if(StringUtils.isNotEmpty(shjdjwApi1310.getJyxm())){
            String[] split = shjdjwApi1310.getJyxm().split(",");
            StringBuilder jyjl = new StringBuilder();
            for (String s : split) {
                jyjl.append(",合格");
            }
            shjdjwApi1310.setJyjl(jyjl.toString().substring(1));
        }
        shjdjwApi1310.setZlzbjgpd(api1310.getZbjgpd());
        //查询单位信息
        List<Api1101> listApi1101 = api1101Rep.findPushData(api1310.getKqdm());
        if (null != listApi1101 && listApi1101.size() > 0) {
            shjdjwApi1310.setDwmc(listApi1101.get(0).getDwmc());
        }
        //查询仓房信息
        List<Api1103> listApi1103 = api1103Rep.findPushDataByCfdm(api1310.getHwdm().substring(0, 25));
        if (null != listApi1103 && listApi1103.size() > 0) {
            shjdjwApi1310.setCfmc(listApi1103.get(0).getCfmc());
        }
        //查询廒间信息
        List<Api1104> listApi1104 = api1104Rep.findDataByAjdh(api1310.getHwdm().substring(0, 28));
        if (null != listApi1104 && listApi1104.size() > 0) {
            shjdjwApi1310.setAjmc(listApi1104.get(0).getAjmc());
        }
        //查询库区信息
        List<Api1102> listApi1102 = api1102Rep.findPushData(api1310.getKqdm());
        if (null != listApi1102 && listApi1102.size() > 0) {
            shjdjwApi1310.setKdmc(listApi1102.get(0).getKqmc());
        }
        //查询粮食库存
        List<Api1208> listApi1208 = api1208Rep.getDataByHwdm(api1310.getHwdm());
        if (null != listApi1208 && listApi1208.size() > 0) {
            shjdjwApi1310.setKdmc(listApi1208.get(0).getLsxzdm());
        }
        shjdjwApi1310.setPch("0");
        return shjdjwApi1310;
    }
    private ShjdjwApi1209 copyApi1209(Api1209 api1209) {
        ShjdjwApi1209 shjdjwApi1209 = new ShjdjwApi1209();
        BeanUtils.copyProperties(api1209, shjdjwApi1209);
        shjdjwApi1209.setSydbh(api1209.getSydh());
        shjdjwApi1209.setHwbm(api1209.getHwdm());
        shjdjwApi1209.setRksl(api1209.getRkjz());
        shjdjwApi1209.setCksl(api1209.getCkjz());
        shjdjwApi1209.setSysl(api1209.getJzsysl());
        //查询单位信息
        List<Api1101> listApi1101 = api1101Rep.findPushData(api1209.getKqdm());
        if (null != listApi1101 && listApi1101.size() > 0) {
            shjdjwApi1209.setDwmc(listApi1101.get(0).getDwmc());
        }
        //查询库区信息
        List<Api1102> listApi1102 = api1102Rep.findPushData(api1209.getKqdm());
        if (null != listApi1102 && listApi1102.size() > 0) {
            shjdjwApi1209.setKdmc(listApi1102.get(0).getKqmc());
        }
        shjdjwApi1209.setNx(api1209.getYwrq());
        //辅损益数量
        shjdjwApi1209.setFsysl(0.0);
        //损益类型
        shjdjwApi1209.setSylx(api1209.getJzsysl() > 0 ? "0" : "1");
        return shjdjwApi1209;
    }
    private ShjdjwApi1208 copyApi1208(Api1208 api1208) {
        ShjdjwApi1208 shjdjwApi1208 = new ShjdjwApi1208();
        BeanUtils.copyProperties(api1208, shjdjwApi1208);
        shjdjwApi1208.setLspzbm(api1208.getLspzdm());
        shjdjwApi1208.setLsxzbm(api1208.getLsxzdm());
        shjdjwApi1208.setDjbm(api1208.getLsdjdm());
        shjdjwApi1208.setLqgsdwbm(api1208.getLqgsdwdm());
        //查询单位信息
        List<Api1101> listApi1101 = api1101Rep.findPushData(api1208.getKqdm());
        if (null != listApi1101 && listApi1101.size() > 0) {
            shjdjwApi1208.setDwmc(listApi1101.get(0).getDwmc());
        }
        //查询仓房信息
        List<Api1103> listApi1103 = api1103Rep.findPushDataByCfdm(api1208.getHwdm().substring(0, 25));
        if (null != listApi1103 && listApi1103.size() > 0) {
            shjdjwApi1208.setCfmc(listApi1103.get(0).getCfmc());
        }
        //查询廒间信息
        List<Api1104> listApi1104 = api1104Rep.findDataByAjdh(api1208.getHwdm().substring(0, 28));
        if (null != listApi1104 && listApi1104.size() > 0) {
            shjdjwApi1208.setAjmc(listApi1104.get(0).getAjmc());
        }
        shjdjwApi1208.setKcjcsj(api1208.getZhgxsj());
        shjdjwApi1208.setPch("0");
        return shjdjwApi1208;
    }
    private ShjdjwApi1205 copyApi1205(Api1205 api1205) {
        ShjdjwApi1205 shjdjwApi1205 = new ShjdjwApi1205();
        BeanUtils.copyProperties(api1205, shjdjwApi1205);
        shjdjwApi1205.setYwdh(api1205.getCkywdh());
        shjdjwApi1205.setHtbm(api1205.getHth());
        shjdjwApi1205.setPzbm(api1205.getLspzdm());
        shjdjwApi1205.setDjbm(api1205.getLsdjdm());
        shjdjwApi1205.setLqxzbm(api1205.getLsxzdm());
        shjdjwApi1205.setCzbz(api1205.getCzbz());
        shjdjwApi1205.setLrfs("0");
        shjdjwApi1205.setPzbm(api1205.getLspzdm());
        //查询单位信息
        List<Api1101> listApi1101 = api1101Rep.findPushData(api1205.getKqdm());
        if (null != listApi1101 && listApi1101.size() > 0) {
            shjdjwApi1205.setDwmc(listApi1101.get(0).getDwmc());
        }
        //查询仓房信息
        List<Api1103> listApi1103 = api1103Rep.findPushDataByCfdm(api1205.getHwdm().substring(0, 25));
        if (null != listApi1103 && listApi1103.size() > 0) {
            shjdjwApi1205.setCfmc(listApi1103.get(0).getCfmc());
        }
        shjdjwApi1205.setDjlx("0");
        //查询字典数据
        ApiTrigger apiTrigger = apiTriggerService.findNameByCode(api1205.getLspzdm(), Constant.TRIGGER_P_LSPZ);
        shjdjwApi1205.setWlmc(null == apiTrigger ? api1205.getLspzdm() : apiTrigger.getName());
        shjdjwApi1205.setDz(StringUtils.isNotEmpty(api1205.getXldd()) ? api1205.getXldd() : "库内");
        shjdjwApi1205.setDksj(api1205.getDjsj());
        shjdjwApi1205.setLksj(api1205.getCmsj());
        shjdjwApi1205.setPch("0");
        return shjdjwApi1205;
    }
    /**
     * 获取接口编码
@@ -143,13 +413,61 @@
     */
    private String getDataId(String inteId) {
        switch (inteId) {
            case "1101":
            case "1102":
                //单位接口编码
                return ShjdjwApiCodeConstant.API_CODE_LS1101;
            case "1202":
                //粮食入库接口编码
                return ShjdjwApiCodeConstant.API_CODE_LS1302;
            case "1203":
                //粮食入库检验接口编码
                return ShjdjwApiCodeConstant.API_CODE_LS1303;
            case "1205":
                //粮食出库接口编码
                return ShjdjwApiCodeConstant.API_CODE_LS1306;
            case "1208":
                //粮食库存接口编码
                return ShjdjwApiCodeConstant.API_CODE_LS1310;
            case "1209":
                //损益单接口编码
                return ShjdjwApiCodeConstant.API_CODE_LS1311;
            case "1310":
                //质检接口编码
                return ShjdjwApiCodeConstant.API_CODE_LS1201;
            case "1403":
                //轮换计划接口编码
                return ShjdjwApiCodeConstant.API_CODE_LS1501;
            case "1404":
                //轮换计划完成情况接口编码
                return ShjdjwApiCodeConstant.API_CODE_LS1502;
            default:
                return inteId;
        }
    }
    //装换封装
    private void copyApi1202(Api1202 api1202, ShjdjwApi1202 shjdjwApi1202) {
        BeanUtils.copyProperties(api1202, shjdjwApi1202);
        String ywdh = api1202.getRkywdh();
        shjdjwApi1202.setYwdh(ywdh);
        shjdjwApi1202.setHwbm(api1202.getHwdm());
        shjdjwApi1202.setPzbm(api1202.getLspzdm());
        shjdjwApi1202.setLqxzbm(api1202.getLsxzdm());
        shjdjwApi1202.setZjkl(api1202.getZjklxj());
        //轮换计划单号
        shjdjwApi1202.setJhbh(api1202.getJhmxh());
        //顺序号
        shjdjwApi1202.setSxh(ywdh.substring(ywdh.length() - 4));
        shjdjwApi1202.setDjzt("2");
        //业务单号
        shjdjwApi1202.setJydbh(api1202.getRkywdh());
        //轮换年度
        shjdjwApi1202.setLhnd(api1202.getShnd());
        //到库时间、离库时间
        shjdjwApi1202.setDksj(api1202.getDjsj());
        shjdjwApi1202.setLksj(api1202.getCmsj());
        //批次号
        shjdjwApi1202.setPch("0");
    }
}