package com.fzzy.push.shjdjw2023;
|
|
import com.alibaba.fastjson.JSON;
|
import com.fzzy.api.Constant;
|
import com.fzzy.api.data.ApiParam;
|
import com.fzzy.api.data.PushProtocol;
|
import com.fzzy.api.dto.ResponseDto;
|
import com.fzzy.api.entity.Api1101;
|
import com.fzzy.api.entity.Api1103;
|
import com.fzzy.api.entity.ApiConfs;
|
import com.fzzy.api.entity.ApiLog;
|
import com.fzzy.api.service.ApiCommonService;
|
import com.fzzy.api.service.ApiRemoteService;
|
import com.fzzy.api.utils.ContextUtil;
|
import com.fzzy.api.utils.RedisUtil;
|
import com.fzzy.api.view.repository.Api1101Rep;
|
import com.fzzy.api.view.repository.Api1103Rep;
|
import com.fzzy.api.view.repository.ApiLogRep;
|
import com.fzzy.push.shjdjw2023.dto.ShjdjwApi1101;
|
import com.fzzy.push.shjdjw2023.dto.ShjdjwReqDto;
|
import com.fzzy.push.shjdjw2023.dto.ShjdjwRespDto;
|
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;
|
|
import java.util.*;
|
|
/**
|
* 上海嘉定纪委监管平台-上传数据服务类
|
*
|
* @author czt
|
* @date 2023/5/9 14:09
|
*/
|
@Slf4j
|
@Data
|
@Service
|
public class ShjdjwApiRemoteService2023 implements ApiRemoteService {
|
|
@Autowired
|
private RedisUtil redisUtil;
|
@Autowired
|
private ApiCommonService apiCommonService;
|
@Autowired
|
private ApiLogRep apiLogRep;
|
@Autowired
|
private Api1101Rep api1101Rep;
|
@Autowired
|
private Api1103Rep api1103Rep;
|
|
|
@Override
|
public String getProtocol() {
|
return PushProtocol.SB_SHJdJW_2023.getCode();
|
}
|
|
@Override
|
public ResponseDto pushData(ApiParam param, Object data) {
|
return pushData(param, null, data);
|
}
|
|
@Override
|
public ResponseDto pushData(ApiParam param, ApiConfs conf, Object data) {
|
String inteId = param.getInteId();
|
String kqdm = param.getKqdm();
|
String bizId = param.getBizId();
|
|
try {
|
if (null == conf) {
|
conf = apiCommonService.getConf(kqdm);
|
}
|
//添加日志
|
ApiLog apiLog = new ApiLog();
|
apiLog.setId(ContextUtil.getUUID());
|
apiLog.setInteId(param.getInteId());
|
|
//获取接口编码
|
String interfaceId = getDataId(inteId);
|
|
//获取json数据
|
String jsonData = getJsonData(inteId, data, interfaceId);
|
|
if (StringUtils.isEmpty(interfaceId)) {
|
ResponseDto responseDto = new ResponseDto(99, "没有获取到接口", bizId);
|
apiLog.setStatus(99);
|
apiLog.setResult("没有获取到接口");
|
apiLogRep.save(apiLog);
|
return responseDto;
|
}
|
apiLog.setData(jsonData);
|
apiLog.setKqdm(kqdm);
|
apiLog.setUploadTime(new Date());
|
|
if (conf == null) {
|
ResponseDto responseDto = new ResponseDto(99, "没有获取到上传配置", bizId);
|
apiLog.setStatus(99);
|
apiLog.setResult("没有获取到上传配置");
|
apiLogRep.save(apiLog);
|
return responseDto;
|
}
|
|
ShjdjwRespDto responseDto = Shjdjw2023HttpClientUtil.postPushData(conf.getApiUrl(), jsonData, conf);
|
responseDto.setBizId(bizId);
|
apiLog.setStatus(responseDto.getCode() == 1 ? 0 : responseDto.getCode());
|
apiLog.setResult(responseDto.getDescription());
|
apiLogRep.save(apiLog);
|
ResponseDto resd = new ResponseDto();
|
resd.setSuccess(responseDto.getCode() == 1 ? 0 : responseDto.getCode());
|
resd.setMsg(responseDto.getDescription());
|
|
return resd;
|
} catch (Exception e) {
|
log.error(e.getMessage(), e);
|
return new ResponseDto(99, e.getMessage());
|
}
|
}
|
|
/**
|
* 调整数据封装,获取json数据
|
*
|
* @param inteId
|
* @param data
|
* @return
|
* @throws Exception
|
*/
|
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_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)) {
|
|
list.add(data);
|
} else {
|
|
list.add(data);
|
}
|
dto.setData(list);
|
return JSON.toJSONString(dto);
|
}
|
|
/**
|
* 获取接口编码
|
*
|
* @param inteId
|
* @return
|
*/
|
private String getDataId(String inteId) {
|
switch (inteId) {
|
case "1102":
|
//单位接口编码
|
return ShjdjwApiCodeConstant.API_CODE_LS1101;
|
case "1202":
|
return ShjdjwApiCodeConstant.API_CODE_LS1302;
|
default:
|
return inteId;
|
}
|
|
}
|
}
|