CZT
2023-09-17 8cbee71a1145555fabb0ebcdd9a8654da4a485ae
优化上海接口-手动上传时根据协议区分数据是否为集合形式
已修改3个文件
76 ■■■■ 文件已修改
src/main/java/com/fzzy/api/view/pr/Api1101PR.java 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sh2023/SH2023OrderApiServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/view/pr/Api1101PR.java
@@ -5,6 +5,7 @@
import com.bstek.dorado.annotation.Expose;
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.ApiConfs;
@@ -16,13 +17,12 @@
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * 单位信息
 *
 * @author he
 * @author czt
 */
@Component
public class Api1101PR {
@@ -100,21 +100,42 @@
     */
    @Expose
    public String pushData(List<Api1101> items) {
        ResponseDto responseDto;
        String result = "";
        //获取配置
        String kqdm = items.get(0).getKqdm();
        ApiConfs apiConf = apiCommonService.getConf(kqdm);
        if (null == apiConf) return "系统没有获取到当前库区配置信息,执行失败";
        if (null == apiConf) {
            return "系统没有获取到当前库区配置信息,执行失败";
        }
        //获取实现接口
        ApiRemoteService apiRemoteService = apiPushManager.getApiRemoteService(apiConf.getPushProtocol());
        if (null == apiRemoteService) {
            return "系统没有当前推送协议配置,执行失败";
        }
        //根据省份协议,判断是集合形式上报还是单条json上报
        if(PushProtocol.SB_SH_2023.getCode().equals(apiConf.getPushProtocol())){
            return  pushDataList(items, apiRemoteService, apiConf);
        }
        return  pushDataSingle(items, apiRemoteService, apiConf);
    }
    /**
     * 单条数据json推送
     * @param items
     * @param apiRemoteService
     * @param apiConf
     * @return
     */
    private String pushDataSingle(List<Api1101> items, ApiRemoteService apiRemoteService, ApiConfs apiConf) {
        ResponseDto responseDto;
        String result = "";
        //封装参数
        ApiParam param = new ApiParam(apiConf, Constant.API_CATEGORY_11, Constant.API_CODE_1101);
        //获取实现接口
        ApiRemoteService apiRemoteService = apiPushManager.getApiRemoteService(param.getPushProtocol());
        if (null == apiRemoteService) return "系统没有当前推送协议配置,执行失败";
        Api1101 d;
        for (ApiParent data : items) {
@@ -133,4 +154,32 @@
        return result;
    }
    /**
     * 集合形式推送
     * @param items
     * @param apiRemoteService
     * @param apiConf
     * @return
     */
    private String pushDataList(List<Api1101> items, ApiRemoteService apiRemoteService, ApiConfs apiConf) {
        //封装参数
        ApiParam param = new ApiParam(apiConf, Constant.API_CATEGORY_11, Constant.API_CODE_1101);
        //推送,数据为集合形式
        ResponseDto responseDto = apiRemoteService.pushData(param, apiConf, items);
        if (responseDto.getSuccess() == 0) {
            //推送成功,更新数据上传状态
            for (Api1101 data : items) {
                if (Constant.CZBZ_I.equals(data.getCzbz())) {
                    //更新状态
                    api1101Rep.updateStatus(data.getKqdm(), Constant.CZBZ_U);
                }
            }
        }
        return responseDto.toString();
    }
}
src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
@@ -74,7 +74,7 @@
        String inteId = param.getInteId();
        String kqdm = param.getKqdm();
        //查询库区信息行政区划码
        List<Api1102> api1102List = api1102Rep.findPushData(conf.getKqdm());
        List<Api1102> api1102List = api1102Rep.findPushData(kqdm);
        try {
            if (null == conf) {
                conf = apiCommonService.getConf(kqdm);
@@ -110,6 +110,7 @@
            String key = RedisConst.buildKey(RedisConst.KYE_ORDER, conf.getKqdm());
            String orderId = (String)redisUtil.get(key);
            if(StringUtils.isEmpty(orderId)){
                log.error("指令id失效=" + jsonData);
                ResponseDto responseDto = new ResponseDto(99, "指令id失效");
                apiLog.setStatus(99);
                apiLog.setResult("指令id失效");
src/main/java/com/fzzy/push/sh2023/SH2023OrderApiServiceImpl.java
@@ -48,10 +48,12 @@
        // 若指令类型不为1,则返回
        if(!OrderConstant.ORDER_TYPE_1.equals(orderType)){
            log.error("指令类型不为1,不进行数据上报={}", req);
            return;
        }
        String ids = req.getContent();
        if(StringUtils.isEmpty(ids)){
            log.error("指令接口为空,不进行数据上报={}", req);
            return;
        }
@@ -66,8 +68,10 @@
        param.setEnd(DateUtils.parseDate(req.getEndtime(), new String[]{"yyyy-MM-dd HH:mm:ss"}));
        param.setDeptId(conf.getDeptId());
        String[] interfaces = ids.split(",");
        log.info("接收的指令中接口内容为={}", req.getContent());
        String[] interfaces = ids.split(";");
        for (String inteId : interfaces) {
            log.info("还是执行接口={}的数据上报", inteId);
            param.setInteId(inteId);
            getDataToPush(param, inteId);
        }