czt
2024-04-24 47662397ea230dfc5925b6b21a150f8a6d9432d9
陕西省平台提交1-搭建指令接收及数据上传架构
已添加17个文件
1742 ■■■■■ 文件已修改
src/main/java/com/fzzy/api/utils/SXAESUtils.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/ordersx2023/OrderSxController.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/ordersx2023/OrderSxManager.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/ordersx2023/OrderSxService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/ordersx2023/data/OrderSxConstant.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/ordersx2023/data/OrderSxReq.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/ordersx2023/data/OrderSxResp.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/ordersx2023/package-info.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sx2023/SX2023ApiRemoteService.java 688 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sx2023/SX2023Constant.java 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sx2023/SX2023HttpClientUtil.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sx2023/SX2023OrderServiceImpl.java 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sx2023/data/SX2023Api1101.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sx2023/data/SX2023Dto.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sx2023/data/SX2023ReqDto.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sx2023/data/SX2023RespDto.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sx2023/data/SXFinanceDto.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/utils/SXAESUtils.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
package com.fzzy.api.utils;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
/**
 * @Description é™•西省平台数据加密及解密
 * @Author CZT
 * @Date 2024/4/23 18:02
 */
public class SXAESUtils {
    public static final String AES_KEY = "shanxihlhtaeskey";
    private static final String AES_ALGORITHM = "AES/CBC/PKCS5Padding";
    private static final String AES_KEY_ALGORITHM = "AES";
    /**
     * ç”¨AES加密, åŠ å¯†ç®—æ³•ä¸º AES/CBC/PKCS5Padding
     *
     * @param key
     * @param data
     * @return
     * @throws Exception
     */
    public static String encryptByAES(String key, String data) throws Exception {
        Cipher cipher = Cipher.getInstance(AES_ALGORITHM);
        cipher.init(Cipher.ENCRYPT_MODE,
                new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), AES_KEY_ALGORITHM),
                new IvParameterSpec(key.getBytes(StandardCharsets.UTF_8)));
        byte[] out = cipher.doFinal(data.getBytes(StandardCharsets.UTF_8));
        return Base64.getEncoder().encodeToString(out);
    }
    /**
     * ç”¨AES解密, è§£å¯†ç®—法为 AES/CBC/PKCS5Padding
     *
     * @param key
     * @param dataBase64
     * @return
     * @throws Exception
     */
    public static String decryptByAES(String key, String dataBase64) throws Exception {
        Cipher cipher = Cipher.getInstance(AES_ALGORITHM);
        cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8),
                AES_KEY_ALGORITHM), new
                IvParameterSpec(key.getBytes(StandardCharsets.UTF_8)));
        byte[] out =
                cipher.doFinal(Base64.getDecoder().decode(dataBase64));
        return new String(out, StandardCharsets.UTF_8);
    }
}
src/main/java/com/fzzy/order/ordersx2023/OrderSxController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.fzzy.order.ordersx2023;
import com.fzzy.order.ordersx2023.data.OrderSxConstant;
import com.fzzy.order.ordersx2023.data.OrderSxReq;
import com.fzzy.order.ordersx2023.data.OrderSxResp;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
 * @Description é™•西省平台指令接收服务
 * @Author CZT
 * @Date 2024/4/23 11:11
 */
@Slf4j
@Controller
@RequestMapping("Acquisition")
public class OrderSxController {
    @Autowired
    private OrderSxManager orderSxManager;
    /**
     * ç™»å½•入口
     * @param req
     * @return
     */
    @SuppressWarnings("unchecked")
    @ResponseBody
    @RequestMapping("/")
    public OrderSxResp order(@RequestBody OrderSxReq req){
        log.debug("陕西省平台:接收的指令信息={}", req);
        //判断参数
        if(null == req){
            //解析失败
            log.error("陕西省平台:指令解析失败,收到的指令信息为空!");
            return new OrderSxResp(OrderSxConstant.ORDER_SX_CODE_400);
        }
        //心跳指令,直接返回
        if(OrderSxConstant.ORDER_SX_TYPE_0.equals(req.getType())){
            log.info("陕西省平台:收到心跳指令,指令信息={}", req);
            return new OrderSxResp(OrderSxConstant.ORDER_SX_CODE_200);
        }
        try {
            //异步执行
            orderSxManager.execute(req);
            return new OrderSxResp(OrderSxConstant.ORDER_SX_CODE_200);
        } catch (Exception e) {
            log.error("陕西省平台:指令解析失败,指令信息={}", req);
            return new OrderSxResp(OrderSxConstant.ORDER_SX_CODE_400);
        }
    }
}
src/main/java/com/fzzy/order/ordersx2023/OrderSxManager.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.fzzy.order.ordersx2023;
import com.fzzy.api.entity.ApiConfs;
import com.fzzy.api.view.pr.ApiConfsPR;
import com.fzzy.order.ordersx2023.data.OrderSxReq;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @Description æŒ‡ä»¤ä¸‹å‘入口
 * @Author CZT
 * @Date 2024/4/23 11:36
 */
@Slf4j
@Component(OrderSxManager.BEAN_ID)
public class OrderSxManager implements ApplicationContextAware {
    public static final String BEAN_ID = "order.orderSxManager";
    private static Map<String, OrderSxService> serviceMap;
    @Autowired
    private ApiConfsPR apiConfsPR;
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        Map<String, OrderSxService> map = applicationContext.getBeansOfType(OrderSxService.class);
        serviceMap = new HashMap<>();
        for (String key : map.keySet()) {
            serviceMap.put(map.get(key).getProtocol(), map.get(key));
        }
    }
    @Async
    public void execute(OrderSxReq req){
        try{
            //获取配置信息
            List<ApiConfs> apiConfList = apiConfsPR.listAll();
            if(null == apiConfList || apiConfList.isEmpty()){
                log.error("陕西省平台:收到指令,未获取到库区配置信息,不执行!");
                return;
            }
            //根据配置信息执行
            OrderSxService service;
            for (ApiConfs conf : apiConfList) {
                service = serviceMap.get(conf.getPushProtocol());
                if(null == service){
                    log.error("陕西省平台:收到指令,未获取到协议,不执行!");
                    continue;
                }
                service.execute(req, conf);
            }
        } catch (Exception e) {
            log.error("陕西省平台:指令执行失败,错误={}", e.getLocalizedMessage());
        }
    }
}
src/main/java/com/fzzy/order/ordersx2023/OrderSxService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.fzzy.order.ordersx2023;
import com.fzzy.api.entity.ApiConfs;
import com.fzzy.order.ordersx2023.data.OrderSxReq;
import java.text.ParseException;
/**
 * @Description æ ¹æ®åè®®å®žçŽ°ä¸åŒè§£æž
 * @Author CZT
 * @Date 2024/4/23 11:33
 */
public interface OrderSxService {
    /**
     * èŽ·å–åè®®ç¼–ç 
     * @return
     */
    public String getProtocol();
    public void execute(OrderSxReq req, ApiConfs apiConfs) throws ParseException;
}
src/main/java/com/fzzy/order/ordersx2023/data/OrderSxConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.fzzy.order.ordersx2023.data;
/**
 * @Description é™•西指令服务常用常量
 * @Author CZT
 * @Date 2024/4/23 11:24
 */
public class OrderSxConstant {
    public static String ORDER_SX_TYPE_0 = "0";  //心跳指令
    public static String ORDER_SX_TYPE_1 = "1";  //数据上报指令
    public static String ORDER_SX_CODE_200 = "200";  //指令解析成功
    public static String ORDER_SX_CODE_400 = "400";  //指令解析失败
}
src/main/java/com/fzzy/order/ordersx2023/data/OrderSxReq.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package com.fzzy.order.ordersx2023.data;
import lombok.Data;
import java.io.Serializable;
/**
 * @Description æŒ‡ä»¤æŽ¥æ”¶å°è£…
 * @Author CZT
 * @Date 2024/4/23 11:19
 */
@Data
public class OrderSxReq implements Serializable {
    /**
     * æŒ‡ä»¤ID
     */
    private String Orderid;
    /**
     * æŒ‡ä»¤å†…容:心跳指令时,内容为空
     */
    private String Data;
    /**
     * æŒ‡ä»¤ç±»åž‹ï¼š0-心跳;1-数据
     */
    private String Type;
    /**
     * å¼€å§‹æ—¶é—´
     */
    private String StartTime;
    /**
     * æˆªæ­¢æ—¶é—´
     */
    private String EndTime;
    /**
     * å•位代码,18位统一信用码
     */
    private String Dwdm;
    /**
     * æ“ä½œæ ‡å¿—:a:未上传和已上传的数据(包括数据池中操作标志为d的数据) c:未上传和已上传的数据(不包括数据池中操作标志为d的数据) n:未上传过的数据
     */
    private String czbz;
}
src/main/java/com/fzzy/order/ordersx2023/data/OrderSxResp.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.fzzy.order.ordersx2023.data;
import java.io.Serializable;
/**
 * @Description æŒ‡ä»¤å›žå¤å°è£…
 * @Author CZT
 * @Date 2024/4/23 11:16
 */
public class OrderSxResp implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = -6714158228489303453L;
    private String code;
    public OrderSxResp() {
    }
    public OrderSxResp(String code) {
        this.code = code;
    }
}
src/main/java/com/fzzy/order/ordersx2023/package-info.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
/**
 * @Description é™•西省平台指令包
 * @Author CZT
 * @Date 2024/4/22 19:45
 */
package com.fzzy.order.ordersx2023;
src/main/java/com/fzzy/push/sx2023/SX2023ApiRemoteService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,688 @@
package com.fzzy.push.sx2023;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
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.*;
import com.fzzy.api.service.ApiCommonService;
import com.fzzy.api.service.ApiRemoteService;
import com.fzzy.api.service.ApiTriggerService;
import com.fzzy.api.utils.*;
import com.fzzy.api.view.repository.ApiLogRep;
import com.fzzy.push.sx2023.data.*;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.*;
/**
 * @Description é™•西省平台2023版-上传数据服务类
 * @Author CZT
 * @Date 2024/4/23 12:07
 */
@Slf4j
@Data
@Service
public class SX2023ApiRemoteService implements ApiRemoteService {
    @Autowired
    private RedisUtil redisUtil;
    @Autowired
    private ApiCommonService apiCommonService;
    @Autowired
    private ApiTriggerService apiTriggerService;
    @Autowired
    private ApiLogRep apiLogRep;
    @Override
    public String getProtocol() {
        return PushProtocol.SB_SX_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();
        try {
            if (null == conf) {
                conf = apiCommonService.getConf(kqdm);
            }
            //添加日志
            ApiLog apiLog = new ApiLog();
            apiLog.setId(ContextUtil.getUUID());
            apiLog.setInteId(inteId);
            if (StringUtils.isEmpty(inteId)) {
                ResponseDto responseDto = new ResponseDto(99, "没有获取到接口");
                apiLog.setStatus(99);
                apiLog.setResult("没有获取到接口");
                apiLogRep.save(apiLog);
                return responseDto;
            }
            if (conf == null) {
                ResponseDto responseDto = new ResponseDto(99, "没有获取到上传配置");
                apiLog.setStatus(99);
                apiLog.setResult("没有获取到上传配置");
                apiLogRep.save(apiLog);
                return responseDto;
            }
            List<Map<String, Object>> listData = getListData(param.getInteId(), data, conf);
            log.info("接口数据信息=" + listData);
            apiLog.setData(listData.toString());
            apiLog.setKqdm(kqdm);
            apiLog.setUploadTime(new Date());
            //获取指令id
            String key = RedisConst.buildKey(RedisConst.KYE_ORDER, conf.getKqdm());
            String orderId = (String) redisUtil.get(key);
            if (StringUtils.isEmpty(orderId)) {
                log.error("指令id失效");
                ResponseDto responseDto = new ResponseDto(99, "指令id失效");
                apiLog.setStatus(99);
                apiLog.setResult("指令id失效");
                apiLogRep.save(apiLog);
                return responseDto;
            }
            //封装推送数据
            SX2023ReqDto reqData = new SX2023ReqDto();
            //报文标识
            reqData.setID(orderId);
            //版本号
            reqData.setVER("1.0");
            //单位编码:11位
            reqData.setOrgNo(conf.getUserName());
            //单位名称
            reqData.setOrgName(conf.getKqmc());
            //发起时间
            reqData.setSendTime(new Date());
            //18位单位代码
            reqData.setDwdm(conf.getKqdm().substring(0, 18));
            //加密数据主体
            reqData.setBody(SXAESUtils.encryptByAES(conf.getPublicKey(), JSON.toJSONString(listData)));
            log.debug("上报数据信息=" + JSON.toJSONString(reqData));
            String resp = SX2023HttpClientUtil.postPushData(conf.getApiUrl(), JSON.toJSONString(reqData));
            if (StringUtils.isEmpty(resp)) {
                log.error("数据上传陕西省平台失败,数据={}", reqData);
                ResponseDto responseDto = new ResponseDto(99, "数据上传陕西省平台失败");
                apiLog.setStatus(99);
                apiLog.setResult("数据上传陕西省平台失败");
                apiLogRep.save(apiLog);
                return responseDto;
            }
            resp = SXAESUtils.decryptByAES(conf.getPassword(), resp);
            SX2023RespDto sx2023RespDto = JSONObject.parseObject(JSONObject.toJSONString(resp), SX2023RespDto.class);
            if (null == sx2023RespDto || null == sx2023RespDto.getMsgBody()) {
                log.error("数据上传陕西省平台失败,数据={}", reqData);
                ResponseDto responseDto = new ResponseDto(99, "数据上传陕西省平台失败");
                apiLog.setStatus(99);
                apiLog.setResult("数据上传陕西省平台失败");
                apiLogRep.save(apiLog);
                return responseDto;
            }
            SX2023Dto result = JSONObject.parseObject(JSONObject.toJSONString(sx2023RespDto.getMsgBody()), SX2023Dto.class);
            apiLog.setStatus(result.getCode().equals("200") ? 0 : Integer.valueOf(result.getCode()));
            apiLog.setResult(result.getVER());
            apiLogRep.save(apiLog);
            ResponseDto resd = new ResponseDto();
            resd.setSuccess(result.getCode().equals("200") ? 0 : Integer.valueOf(result.getCode()));
            resd.setMsg(result.getVER());
            return resd;
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            return new ResponseDto(99, e.getMessage());
        }
    }
    /**
     * æ‹‰å–数据接口-当前协议暂无实现
     * @param param å‚æ•°
     * @param conf é…ç½®ï¼Œå¯ä»¥ä¸ºç©º
     * @return
     */
    @Override
    public ResponseDto pullData(ApiParam param, ApiConfs conf) {
        log.error("陕西省平台暂无数据共享接口,无法拉取数据!");
        return null;
    }
    /**
     * æŽ¥å£æ•°æ®å°è£…
     * @param inteId
     * @param data
     * @param conf
     * @return
     */
    private List<Map<String, Object>> getListData(String inteId, Object data, ApiConfs conf) {
        List<Map<String, Object>> result = new ArrayList<>();
        Map<String, Object> map = new HashMap<>();
        String inteIdUrl = getInteId(inteId);
        //若为财务1501、1502、1503接口,则接口编码填写1114
        if (Constant.API_CODE_1114_1501.equals(inteId)
                || Constant.API_CODE_1114_1502.equals(inteId)
                || Constant.API_CODE_1114_1503.equals(inteId)) {
            List<SXFinanceDto> list = getFinanceData(inteId, data);
            map.put(inteIdUrl, list);
        } else {
            List<Object> list = new ArrayList<>();
            Object object = getApiData(inteId, data, conf);
            //除库存接口外,其他接口上传前更新最后更新时间
            if (!Constant.API_CODE_1208.equals(inteId)) {
                setZhgxsjValue(data);
            }
            list.add(object);
            map.put(inteIdUrl, list);
        }
        result.add(map);
        return result;
    }
    /**
     * å¸¸è§„接口数据封装
     * @param inteId
     * @param data
     * @return
     */
    private Object getApiData(String inteId, Object data, ApiConfs conf) {
        if (Constant.API_CODE_1101.equals(inteId)) {
            SX2023Api1101 apiData = new SX2023Api1101();
            BeanUtils.copyProperties(data, apiData);
            //设置单位编码,11位(从配置信息获取)
            apiData.setDWBM(conf.getUserName());
            return apiData;
        }
        if (Constant.API_CODE_1102.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1103.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1104.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1105.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1106.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1107.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1108.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1109.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1110.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1111.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1112.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1113.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1201.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1202.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1203.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1204.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1205.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1206.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1207.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1208.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1209.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1210.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1211.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1212.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1301.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1302.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1303.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1304.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1305.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1306.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1307.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1308.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1309.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1310.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1401.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1403.equals(inteId)) {
            return null;
        }
        if (Constant.API_CODE_1404.equals(inteId)) {
            return null;
        }
        return data;
    }
    /**
     * æœ€åŽæ›´æ–°æ—¶é—´ï¼Œèµ‹å€¼ä¸ºå½“前时间
     * @param object
     * @return
     */
    private Object setZhgxsjValue(Object object) {
        // ä½¿ç”¨åå°„获取属性列表 vo为实体对象名
        try {
            Field zhgxsj = object.getClass().getDeclaredField("zhgxsj");
            zhgxsj.setAccessible(true);
            zhgxsj.set(object, DateUtils.addSeconds(new Date(), -10));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return object;
    }
    /**
     * èŽ·å–è´¢åŠ¡å°è£…æ•°æ®
     * @param inteId
     * @param data
     * @return
     */
    private List<SXFinanceDto> getFinanceData(String inteId, Object data) {
        //财务报表数据封装
        if (Constant.API_CODE_1114_1501.equals(inteId)) {
            return copyApi1501((Api1501) data);
        } else if (Constant.API_CODE_1114_1502.equals(inteId)) {
            return copyApi1502((Api1502) data);
        } else {
            return copyApi1503((Api1503) data);
        }
    }
    /**
     * å°è£…1501-资产负债数据
     * @param api1503
     * @return
     */
    private List<SXFinanceDto> copyApi1503(Api1503 api1503) {
        List<SXFinanceDto> list = new ArrayList<>();
        SXFinanceDto SXFinanceDto = new SXFinanceDto();
        SXFinanceDto.setDWDM(api1503.getDwdm());
        SXFinanceDto.setKQDM(api1503.getKqdm());
        SXFinanceDto.setBBSJ(DateFormatUtils.format(api1503.getBbsj(), "yyyyMMdd"));
        SXFinanceDto.setBBM("03");
        SXFinanceDto.setCZBZ(api1503.getCzbz());
        SXFinanceDto.setZHGXSJ(DateFormatUtils.format(DateUtils.addSeconds(new Date(), -10), "yyyy-MM-dd HH:mm:ss"));
        paddingData(SXFinanceDto, list, "0", "项目//t", "本期金额//t", "本年累计//t");
        paddingData(SXFinanceDto, list, "1", "一、营业收入", api1503.getYyzsrbqye() + "", api1503.getYyzsrbnlj() + "");
        paddingData(SXFinanceDto, list, "2", "减:营业成本", api1503.getYycbbqye() + "", api1503.getYycbbnlj() + "");
        paddingData(SXFinanceDto, list, "3", "税金及附加", api1503.getSjjfjbqye() + "", api1503.getSjjfjbnlj() + "");
        paddingData(SXFinanceDto, list, "4", "销售费用", api1503.getXsfybqye() + "", api1503.getXsfybnlj() + "");
        paddingData(SXFinanceDto, list, "5", "管理费用", api1503.getGlfybqye() + "", api1503.getGlfybnlj() + "");
        paddingData(SXFinanceDto, list, "6", "研发费用", api1503.getYffybqye() + "", api1503.getYffybnlj() + "");
        paddingData(SXFinanceDto, list, "7", "财务费用", api1503.getCwfybqye() + "", api1503.getCwfybnlj() + "");
        paddingData(SXFinanceDto, list, "8", "其中:利息费用", api1503.getLxfybqye() + "", api1503.getLxfybnlj() + "");
        paddingData(SXFinanceDto, list, "9", "利息收入", api1503.getLxsrbqye() + "", api1503.getLxsrbnlj() + "");
        paddingData(SXFinanceDto, list, "10", "加:其他收益", api1503.getQtsybqye() + "", api1503.getQtsybnlj() + "");
        paddingData(SXFinanceDto, list, "11", "投资收益(损失以“-”号填列)", api1503.getTzsybqye() + "", api1503.getTzsybnlj() + "");
        paddingData(SXFinanceDto, list, "12", "其中:对联营企业和合营企业的投资收益", api1503.getLyqytzsybqye() + "", api1503.getLyqytzsybnlj() + "");
        paddingData(SXFinanceDto, list, "13", "公允价值变动收益(损失以“-”号填列)", api1503.getGyjzbdsybqye() + "", api1503.getGyjzbdsybnlj() + "");
        paddingData(SXFinanceDto, list, "14", "资产减值损失(损失以“-”号填列)", api1503.getZcjzssbqye() + "", api1503.getZcjzssbnlj() + "");
        paddingData(SXFinanceDto, list, "15", "资产处置收益(损失以“-”号填列)", api1503.getZcczsybqye() + "", api1503.getZcczsybnlj() + "");
        paddingData(SXFinanceDto, list, "16", "二、营业利润(亏损以“-”号填列)", api1503.getYylrbqye() + "", api1503.getYylrbnlj() + "");
        paddingData(SXFinanceDto, list, "17", "加:营业外收入", api1503.getYywsrbqye() + "", api1503.getYywsrbnlj() + "");
        paddingData(SXFinanceDto, list, "18", "减:营业外支出", api1503.getYywzcbqye() + "", api1503.getYywzcbnlj() + "");
        paddingData(SXFinanceDto, list, "19", "三、利润总额(亏损总额以“-”号填列)", api1503.getLrzebqye() + "", api1503.getLrzebnlj() + "");
        paddingData(SXFinanceDto, list, "20", "减:所得税费用", api1503.getSdsfybqye() + "", api1503.getSdsfybnlj() + "");
        paddingData(SXFinanceDto, list, "21", "四、净利润(净亏损以“-”号填列)", api1503.getJlrbqye() + "", api1503.getJlrbnlj() + "");
        paddingData(SXFinanceDto, list, "22", "(一)持续经营净利润(净亏损以“-”号填列)", api1503.getCxjyjlrbqye() + "", api1503.getCxjyjlrbnlj() + "");
        paddingData(SXFinanceDto, list, "23", "(二)终止经营净利润(净亏损以“-”号填列)", api1503.getZzjyjlrbqye() + "", api1503.getZzjyjlrbnlj() + "");
        paddingData(SXFinanceDto, list, "24", "五、其他综合收益的税后净额", api1503.getQtzhsyjebqye() + "", api1503.getQtzhsyjebnlj() + "");
        paddingData(SXFinanceDto, list, "25", "(一)不能重分类进损益的其他综合收益", api1503.getBnflzhsybqye() + "", api1503.getBnflzhsybnlj() + "");
        paddingData(SXFinanceDto, list, "26", "1.重新计量设定受益计划变动额", api1503.getCxjlbdebqye() + "", api1503.getCxjlbdebnlj() + "");
        paddingData(SXFinanceDto, list, "27", "(二)将重分类进损益的其他综合收益", "0", "0");
        paddingData(SXFinanceDto, list, "28", "1.权益法下可转损益的其他综合收益", api1503.getQyfkzsybqye() + "", api1503.getQyfkzsybnlj() + "");
        paddingData(SXFinanceDto, list, "29", "2.可供出售金融资产公允价值变动损益", api1503.getKgcszcbdsybqye() + "", api1503.getKgcszcbdsybnlj() + "");
        paddingData(SXFinanceDto, list, "30", "3.持有至到期投资重分类为可供出售金融资产损益", api1503.getCydqtzzcsybqye() + "", api1503.getKgcszcbdsybnlj() + "");
        paddingData(SXFinanceDto, list, "31", "4.现金流量套期损益的有效部分", api1503.getZjllsybqye() + "", api1503.getZjllsybnlj() + "");
        paddingData(SXFinanceDto, list, "32", "5.外币财务报表折算差额", api1503.getWbcwbbcebqye() + "", api1503.getWbcwbbcebnlj() + "");
        paddingData(SXFinanceDto, list, "33", "六、综合收益总额", api1503.getZhsyzebqye() + "", api1503.getZhsyzebnlj() + "");
        paddingData(SXFinanceDto, list, "34", "七、每股收益:", api1503.getMgsybqye() + "", api1503.getMgsybnlj() + "");
        paddingData(SXFinanceDto, list, "35", "(一)基本每股收益", api1503.getJbmgsybqye() + "", api1503.getJbmgsybnlj() + "");
        paddingData(SXFinanceDto, list, "36", "(二)稀释每股收益", api1503.getXsmgsybqye() + "", api1503.getXsmgsybnlj() + "");
        return list;
    }
    /**
     * å°è£…1502-现金流数据
     * @param api1502
     * @return
     */
    private List<SXFinanceDto> copyApi1502(Api1502 api1502) {
        List<SXFinanceDto> list = new ArrayList<>();
        SXFinanceDto SXFinanceDto = new SXFinanceDto();
        SXFinanceDto.setDWDM(api1502.getDwdm());
        SXFinanceDto.setKQDM(api1502.getKqdm());
        SXFinanceDto.setBBSJ(DateFormatUtils.format(api1502.getBbsj(), "yyyyMMdd"));
        SXFinanceDto.setBBM("02");
        SXFinanceDto.setCZBZ(api1502.getCzbz());
        SXFinanceDto.setZHGXSJ(DateFormatUtils.format(DateUtils.addSeconds(new Date(), -10), "yyyy-MM-dd HH:mm:ss"));
        paddingData(SXFinanceDto, list, "0", "项目//t", "本月数//t", "本年累计数//t");
        paddingData(SXFinanceDto, list, "1", "一、经营活动产生的现金流量:", api1502.getJyhdxjllbys() + "", api1502.getJyhdxjllbnljs() + "");
        paddingData(SXFinanceDto, list, "2", "销售商品、提供劳务收到的现金", api1502.getXssplwxjbys() + "", api1502.getXssplwxjbnljs() + "");
        paddingData(SXFinanceDto, list, "3", "收到的税费返还", api1502.getSffhbys() + "", api1502.getSffhbnljs() + "");
        paddingData(SXFinanceDto, list, "4", "收到其他与经营活动有关的现金", api1502.getQtjyhdxjbys() + "", api1502.getQtjyhdxjbnljs() + "");
        paddingData(SXFinanceDto, list, "5", "经营活动现金流入小计", api1502.getJyhdxjlrbys() + "", api1502.getJyhdxjlrbnljs() + "");
        paddingData(SXFinanceDto, list, "6", "购买商品、接受劳务支付的现金", api1502.getGmsplwzfbys() + "", api1502.getGmsplwzfbnljs() + "");
        paddingData(SXFinanceDto, list, "7", "支付给职工以及为职工支付的现金", api1502.getZfzgxjbys() + "", api1502.getZfzgxjbnljs() + "");
        paddingData(SXFinanceDto, list, "8", "支付的各项税费", api1502.getZfxxsfbys() + "", api1502.getZfxxsfbnljs() + "");
        paddingData(SXFinanceDto, list, "9", "支付其他与经营活动有关的现金", api1502.getZfqtjyhdxjbys() + "", api1502.getZfqtjyhdxjbnljs() + "");
        paddingData(SXFinanceDto, list, "10", "经营活动现金流出小计", api1502.getJyhdxjlcbys() + "", api1502.getJyhdxjlcbnljs() + "");
        paddingData(SXFinanceDto, list, "11", "经营活动产生的现金流量净额", api1502.getJyhdxjlljebys() + "", api1502.getJyhdxjlljebnljs() + "");
        paddingData(SXFinanceDto, list, "12", "二、投资活动产生的现金流量:", api1502.getTzhdxjllbys() + "", api1502.getTzhdxjllbnljs() + "");
        paddingData(SXFinanceDto, list, "13", "收回投资收到的现金", api1502.getShtzxjbys() + "", api1502.getShtzxjbnljs() + "");
        paddingData(SXFinanceDto, list, "14", "取得投资收益收到的现金", api1502.getQdtzsyxjbys() + "", api1502.getQdtzsyxjbnljs() + "");
        paddingData(SXFinanceDto, list, "15", "处置固定资产、无形资产和其他长期资产收回的现金净额", api1502.getCzgdzcdxjjebys() + "", api1502.getCzgdzcdxjjebnljs() + "");
        paddingData(SXFinanceDto, list, "16", "处置子公司及其他营业单位收到的现金净额", api1502.getCzqtdwxjjebys() + "", api1502.getCzqtdwxjjebnljs() + "");
        paddingData(SXFinanceDto, list, "17", "收到其他与投资活动有关的现金", api1502.getSdqttzxjbys() + "", api1502.getSdqttzxjbnljs() + "");
        paddingData(SXFinanceDto, list, "18", "投资活动现金流入小计", api1502.getTzhdxjlrbys() + "", api1502.getTzhdxjlrbnljs() + "");
        paddingData(SXFinanceDto, list, "19", "购建固定资产、无形资产和其他长期资产支付的现金", api1502.getGjgdzcdxjbys() + "", api1502.getGjgdzcdxjbnljs() + "");
        paddingData(SXFinanceDto, list, "20", "投资支付的现金", api1502.getTzzfxjbys() + "", api1502.getTzzfxjbnljs() + "");
        paddingData(SXFinanceDto, list, "21", "取得子公司及其他营业单位支付的现金净额", api1502.getQdzgsdzfxjjebys() + "", api1502.getQdzgsdzfxjjebnljs() + "");
        paddingData(SXFinanceDto, list, "22", "支付其他与投资活动有关的现金", api1502.getZfqttzxjbys() + "", api1502.getZfqttzxjbnljs() + "");
        paddingData(SXFinanceDto, list, "23", "投资活动现金流出小计", api1502.getTzhdxjlcbys() + "", api1502.getTzhdxjlcbnljs() + "");
        paddingData(SXFinanceDto, list, "24", "投资活动产生的现金流量净额", api1502.getTzhdcsxjlljebys() + "", api1502.getTzhdcsxjlljebnljs() + "");
        paddingData(SXFinanceDto, list, "25", "三、筹资活动产生的现金流量:", api1502.getCchdxjllbys() + "", api1502.getCchdxjllbnljs() + "");
        paddingData(SXFinanceDto, list, "26", "吸收投资收到的现金", api1502.getXstzxjbys() + "", api1502.getXstzxjbnljs() + "");
        paddingData(SXFinanceDto, list, "27", "取得借款收到的现金", api1502.getQdjkxjbys() + "", api1502.getQdjkxjbnljs() + "");
        paddingData(SXFinanceDto, list, "28", "收到其他与筹资活动有关的现金", api1502.getSdqtczxjbys() + "", api1502.getSdqttzxjbnljs() + "");
        paddingData(SXFinanceDto, list, "29", "筹资活动现金流入小计", api1502.getCzhdxjlrbys() + "", api1502.getCzhdxjlrbnljs() + "");
        paddingData(SXFinanceDto, list, "30", "偿还债务支付的现金", api1502.getChzwzfxjbys() + "", api1502.getChzwzfxjbnljs() + "");
        paddingData(SXFinanceDto, list, "31", "分配股利、利润或偿付利息支付的现金", api1502.getFpgldxjbys() + "", api1502.getFpgldxjbnljs() + "");
        paddingData(SXFinanceDto, list, "32", "支付其他与筹资活动有关的现金", api1502.getZfqtdxjbys() + "", api1502.getZfqtdxjbnljs() + "");
        paddingData(SXFinanceDto, list, "33", "筹资活动现金流出小计", api1502.getCzhdxjlcbys() + "", api1502.getCzhdxjlcbnljs() + "");
        paddingData(SXFinanceDto, list, "34", "筹资活动产生的现金流量净额", api1502.getCchdxjlljebys() + "", api1502.getCchdxjlljebnljs() + "");
        paddingData(SXFinanceDto, list, "35", "四、汇率变动对现金及现金等价物的影响", api1502.getHlbdxjyxbys() + "", api1502.getHlbdxjyxbnljs() + "");
        paddingData(SXFinanceDto, list, "36", "五、现金及现金等价物净增加额", api1502.getXjdjwjzebys() + "", api1502.getXjdjwjzebnljs() + "");
        paddingData(SXFinanceDto, list, "37", "加:期初现金及现金等价物余额", api1502.getQcxjdjwyebys() + "", api1502.getQcxjdjwyebnljs() + "");
        paddingData(SXFinanceDto, list, "38", "六、期末现金及现金等价物余额", api1502.getQmxjdjwyebys() + "", api1502.getQmxjdjwyebnljs() + "");
        return list;
    }
    /**
     * å°è£…1503-利润表数据
     * @param api1501
     * @return
     */
    private List<SXFinanceDto> copyApi1501(Api1501 api1501) {
        List<SXFinanceDto> list = new ArrayList<>();
        SXFinanceDto SXFinanceDto = new SXFinanceDto();
        SXFinanceDto.setDWDM(api1501.getDwdm());
        SXFinanceDto.setKQDM(api1501.getKqdm());
        SXFinanceDto.setBBSJ(DateFormatUtils.format(api1501.getBbsj(), "yyyyMMdd"));
        SXFinanceDto.setBBM("01");
        SXFinanceDto.setCZBZ(api1501.getCzbz());
        SXFinanceDto.setZHGXSJ(DateFormatUtils.format(DateUtils.addSeconds(new Date(), -10), "yyyy-MM-dd HH:mm:ss"));
        paddingData(SXFinanceDto, list, "0", "资产//t", "期末余额//t", "年初余额//t");
        paddingData(SXFinanceDto, list, "1", "流动资产:", api1501.getLdzchjqmye() + "", api1501.getLdzchjncye() + "");
        paddingData(SXFinanceDto, list, "2", "货币资金", api1501.getHbjjqmye() + "", api1501.getHbjjncye() + "");
        paddingData(SXFinanceDto, list, "3", "交易性金融资产", api1501.getJyxjrzcqmye() + "", api1501.getJyxjrzcncye() + "");
        paddingData(SXFinanceDto, list, "4", "衍生金融资产", api1501.getYsjrzcqmye() + "", api1501.getYsjrzcncye() + "");
        paddingData(SXFinanceDto, list, "5", "应收票据", api1501.getYspjqmye() + "", api1501.getYspjncye() + "");
        paddingData(SXFinanceDto, list, "6", "应收账款", api1501.getYszkqmye() + "", api1501.getYszkncye() + "");
        paddingData(SXFinanceDto, list, "7", "预付款项", api1501.getYuskxqmye() + "", api1501.getYuskxncye() + "");
        paddingData(SXFinanceDto, list, "8", "其他应收款", api1501.getQtyszkqmye() + "", api1501.getQtyszkncye() + "");
        paddingData(SXFinanceDto, list, "9", "存货", api1501.getChqmye() + "", api1501.getChncye() + "");
        paddingData(SXFinanceDto, list, "10", "合同资产", api1501.getHtzcqmye() + "", api1501.getHtzcncye() + "");
        paddingData(SXFinanceDto, list, "11", "持有待售资产", api1501.getCydszcqmye() + "", api1501.getCydszcncye() + "");
        paddingData(SXFinanceDto, list, "12", "一年内到期的非流动资产", api1501.getYnndqfldzcqmye() + "", api1501.getYnndqfldzcncye() + "");
        paddingData(SXFinanceDto, list, "13", "其他流动资产", api1501.getQtldzcqmye() + "", api1501.getQtldzcncye() + "");
        paddingData(SXFinanceDto, list, "14", "流动资产合计", api1501.getLdzchjqmye() + "", api1501.getLdzchjncye() + "");
        paddingData(SXFinanceDto, list, "15", "非流动资产:", api1501.getFldzcqmye() + "", api1501.getFldzcncye() + "");
        paddingData(SXFinanceDto, list, "16", "债券投资", api1501.getZjtzqmye() + "", api1501.getZjtzncye() + "");
        paddingData(SXFinanceDto, list, "17", "其他债券投资", api1501.getQtzqtzqmye() + "", api1501.getQtzqtzncye() + "");
        paddingData(SXFinanceDto, list, "18", "长期应收款", api1501.getCqyskqmye() + "", api1501.getCqyskncye() + "");
        paddingData(SXFinanceDto, list, "19", "长期股权投资", api1501.getCqgqtzqmye() + "", api1501.getCqgqtzncye() + "");
        paddingData(SXFinanceDto, list, "20", "其他权益工具投资", api1501.getQtqygjtzqmye() + "", api1501.getQtqygjtzncye() + "");
        paddingData(SXFinanceDto, list, "21", "其他非流动金融资产", api1501.getQtfldjrzcqmye() + "", api1501.getQtfldjrzcncye() + "");
        paddingData(SXFinanceDto, list, "22", "投资性房地产", api1501.getTzxfdcqmye() + "", api1501.getTzxfdcncye() + "");
        paddingData(SXFinanceDto, list, "23", "固定资产", api1501.getGdzcqmye() + "", api1501.getGdzcncye() + "");
        paddingData(SXFinanceDto, list, "24", "在建工程", api1501.getZjgcqmye() + "", api1501.getZjgcncye() + "");
        paddingData(SXFinanceDto, list, "25", "生产性生物资产", api1501.getScxswzcqmye() + "", api1501.getScxswzcncye() + "");
        paddingData(SXFinanceDto, list, "26", "油气资产", api1501.getYqzcqmye() + "", api1501.getYqzcncye() + "");
        paddingData(SXFinanceDto, list, "27", "无形资产", api1501.getWxzcqmye() + "", api1501.getWxzcncye() + "");
        paddingData(SXFinanceDto, list, "28", "开发支出", api1501.getKfzcqmye() + "", api1501.getKfzcncye() + "");
        paddingData(SXFinanceDto, list, "29", "商誉", api1501.getSyqmye() + "", api1501.getSyncye() + "");
        paddingData(SXFinanceDto, list, "30", "长期待摊费用", api1501.getCqdtfyqmye() + "", api1501.getCqdtfyncye() + "");
        paddingData(SXFinanceDto, list, "31", "递延所得税资产", api1501.getDysdszcqmye() + "", api1501.getDysdszcncye() + "");
        paddingData(SXFinanceDto, list, "32", "其他非流动资产", api1501.getQtfldzcqmye() + "", api1501.getQtfldzcncye() + "");
        paddingData(SXFinanceDto, list, "33", "非流动资产合计", api1501.getFldzcqmye() + "", api1501.getFldzcncye() + "");
        paddingData(SXFinanceDto, list, "34", "资产总计", api1501.getZczjqmye() + "", api1501.getZczjncye() + "");
        paddingData(SXFinanceDto, list, "35", "负债和所有者权益(或股东权益)//t", "期末余额//t", "年初余额//t");
        paddingData(SXFinanceDto, list, "36", "流动负债:", api1501.getLdfzhjqmye() + "", api1501.getLdfzhjncye() + "");
        paddingData(SXFinanceDto, list, "37", "短期借款", api1501.getDqjkqmye() + "", api1501.getLdzchjncye() + "");
        paddingData(SXFinanceDto, list, "38", "交易性金融负债", api1501.getJyxjrfzqmye() + "", api1501.getJyxjrfzncye() + "");
        paddingData(SXFinanceDto, list, "39", "衍生金融负债", api1501.getYsjrfzqmye() + "", api1501.getYsjrfzncye() + "");
        paddingData(SXFinanceDto, list, "40", "应付票据", api1501.getLdfzyspjqmye() + "", api1501.getLdfzyspjncye() + "");
        paddingData(SXFinanceDto, list, "41", "应付账款", api1501.getLdfzyszkqmye() + "", api1501.getLdfzyszkncye() + "");
        paddingData(SXFinanceDto, list, "42", "预收款项", api1501.getLdfzyuskxqmye() + "", api1501.getLdfzyszkncye() + "");
        paddingData(SXFinanceDto, list, "43", "合同负债", api1501.getHtfzqmye() + "", api1501.getHtfzncye() + "");
        paddingData(SXFinanceDto, list, "44", "应付职工薪酬", api1501.getYfzgxcqmye() + "", api1501.getYfzgxcncye() + "");
        paddingData(SXFinanceDto, list, "45", "应交税费", api1501.getYjsfqmye() + "", api1501.getYjsfncye() + "");
        paddingData(SXFinanceDto, list, "46", "其他应付款", api1501.getQtyfkqmye() + "", api1501.getQtyfkncye() + "");
        paddingData(SXFinanceDto, list, "47", "持有待售负债", api1501.getCydsfzqmye() + "", api1501.getCydsfzncye() + "");
        paddingData(SXFinanceDto, list, "48", "一年内到期的非流动负债", api1501.getYnddqfldfzqmye() + "", api1501.getYnddqfldfzncye() + "");
        paddingData(SXFinanceDto, list, "49", "其他流动负债", api1501.getQtldfzqmye() + "", api1501.getQtldfzncye() + "");
        paddingData(SXFinanceDto, list, "50", "流动负债合计", api1501.getLdfzhjqmye() + "", api1501.getLdfzhjncye() + "");
        paddingData(SXFinanceDto, list, "51", "非流动负债:", api1501.getFldfzhjqmye() + "", api1501.getFldfzhjncye() + "");
        paddingData(SXFinanceDto, list, "52", "长期借款", api1501.getCqjkqmye() + "", api1501.getCqjkncye() + "");
        paddingData(SXFinanceDto, list, "53", "应付债券", api1501.getYfzqqmye() + "", api1501.getYfzqncye() + "");
        paddingData(SXFinanceDto, list, "54", "其中:优先股", api1501.getYfzqyxgqmye() + "", api1501.getYfzqyxgncye() + "");
        paddingData(SXFinanceDto, list, "55", "永续债", api1501.getYfzqyxzqmye() + "", api1501.getYfzqyxzncye() + "");
        paddingData(SXFinanceDto, list, "56", "长期应付款", api1501.getCqyfkqmye() + "", api1501.getCqyfkncye() + "");
        paddingData(SXFinanceDto, list, "57", "预计负债", api1501.getYjsfqmye() + "", api1501.getYjsfncye() + "");
        paddingData(SXFinanceDto, list, "58", "递延收益", api1501.getDysyqmye() + "", api1501.getDysyncye() + "");
        paddingData(SXFinanceDto, list, "59", "递延所得税负债", api1501.getDysdsfzqmye() + "", api1501.getDysdsfzncye() + "");
        paddingData(SXFinanceDto, list, "60", "其他非流动负债", api1501.getQtfldfzqmye() + "", api1501.getQtfldfzncye() + "");
        paddingData(SXFinanceDto, list, "61", "非流动负债合计", api1501.getFldfzhjqmye() + "", api1501.getFldfzhjncye() + "");
        paddingData(SXFinanceDto, list, "62", "负债合计", api1501.getFzhjqmye() + "", api1501.getFzhjncye() + "");
        paddingData(SXFinanceDto, list, "63", "所有者权益(或股东权益):", api1501.getSyzqyqmye() + "", api1501.getSyzqyncye() + "");
        paddingData(SXFinanceDto, list, "64", "实收资本(或股本)", api1501.getSszbqmye() + "", api1501.getSszbncye() + "");
        paddingData(SXFinanceDto, list, "65", "其他权益工具", api1501.getQtqygjqmye() + "", api1501.getQtqygjncye() + "");
        paddingData(SXFinanceDto, list, "66", "其中:优先股", api1501.getQtqygjyxgqmye() + "", api1501.getQtqygjyxgncye() + "");
        paddingData(SXFinanceDto, list, "67", "永续债", api1501.getQtqygjyxzqmye() + "", api1501.getQtqygjyxzncye() + "");
        paddingData(SXFinanceDto, list, "68", "资本公积", api1501.getZbgjqmye() + "", api1501.getZbgjncye() + "");
        paddingData(SXFinanceDto, list, "69", "减:库存股", api1501.getJkcgqmye() + "", api1501.getJkcgncye() + "");
        paddingData(SXFinanceDto, list, "70", "其他综合收益", api1501.getQtzhsyqmye() + "", api1501.getQtzhsyncye() + "");
        paddingData(SXFinanceDto, list, "71", "专项储备", api1501.getZxcbqmye() + "", api1501.getZxcbncye() + "");
        paddingData(SXFinanceDto, list, "72", "盈余公积", api1501.getYygjqmye() + "", api1501.getYygjncye() + "");
        paddingData(SXFinanceDto, list, "73", "未分配利润", api1501.getWfplrqmye() + "", api1501.getWfplrncye() + "");
        paddingData(SXFinanceDto, list, "74", "所有者权益(或股东权益)合计", api1501.getSyzqyqmye() + "", api1501.getSyzqyncye() + "");
        paddingData(SXFinanceDto, list, "75", "负债和所有者权益(或股东权益)总计", api1501.getFzhsyzqyqmye() + "", api1501.getFzhsyzqyncye() + "");
        return list;
    }
    /**
     * è´¢åŠ¡æ•°æ®å°è£…
     * @param common
     * @param list
     * @param zbxh
     * @param zbmc
     * @param zbz1
     * @param zbz2
     */
    private void paddingData(SXFinanceDto common, List<SXFinanceDto> list, String zbxh, String zbmc, String zbz1, String zbz2) {
        SXFinanceDto SXFinanceDto = new SXFinanceDto();
        BeanUtils.copyProperties(common, SXFinanceDto);
        SXFinanceDto.setZBXH(zbxh);
        SXFinanceDto.setZBMC(zbmc);
        SXFinanceDto.setZBZ1(zbz1);
        SXFinanceDto.setZBZ2(zbz2);
        list.add(SXFinanceDto);
    }
    /**
     * æ ¹æ®æŽ¥å£ç¼–码获取对应的接口数据库表名
     * @param inteId
     * @return
     */
    private String getInteId(String inteId) {
        switch (inteId) {
            case "1101":
                return SX2023Constant.SX_2023_API_ODS_UP_DWXXJK;
            case "1102":
                return SX2023Constant.SX_2023_API_ODS_UP_KQXXJK;
            case "1103":
                return SX2023Constant.SX_2023_API_ODS_UP_CFXXJK;
            case "1104":
                return SX2023Constant.SX_2023_API_ODS_UP_AJXXJK;
            case "1105":
                return SX2023Constant.SX_2023_API_ODS_UP_HWXXJK;
            case "1106":
                return SX2023Constant.SX_2023_API_ODS_UP_YGXXJK;
            case "1107":
                return SX2023Constant.SX_2023_API_ODS_UP_SBXXJK;
            case "1108":
                return SX2023Constant.SX_2023_API_ODS_UP_YJXXJK;
            case "1109":
                return SX2023Constant.SX_2023_API_ODS_UP_WJXXJK;
            case "1110":
                return SX2023Constant.SX_2023_API_ODS_UP_KQTCFDWBZSJXXJK;
            case "1111":
                return SX2023Constant.SX_2023_API_ODS_UP_KQTSPJKSBDWBZSJXXJK;
            case "1112":
                return SX2023Constant.SX_2023_API_ODS_UP_RYXXJK;
            case "1201":
                return SX2023Constant.SX_2023_API_ODS_UP_HTXXJK;
            case "1202":
                return SX2023Constant.SX_2023_API_ODS_UP_LSRKXXJK;
            case "1203":
                return SX2023Constant.SX_2023_API_ODS_UP_LSRKJYXXJK;
            case "1204":
                return SX2023Constant.SX_2023_API_ODS_UP_LSRKJSXXJK;
            case "1205":
                return SX2023Constant.SX_2023_API_ODS_UP_LSCKXXJK;
            case "1206":
                return SX2023Constant.SX_2023_API_ODS_UP_LSCKJSXXJK;
            case "1207":
                return SX2023Constant.SX_2023_API_ODS_UP_DCXXJK;
            case "1208":
                return SX2023Constant.SX_2023_API_ODS_UP_LSKCXXJK;
            case "1209":
                return SX2023Constant.SX_2023_API_ODS_UP_SYDXXJK;
            case "1210":
                return SX2023Constant.SX_2023_API_ODS_UP_LSXZZBDXXJK;
            case "1211":
                return SX2023Constant.SX_2023_API_ODS_UP_ZMKCXXJK;
            case "1212":
                return SX2023Constant.SX_2023_API_ODS_UP_KHXXJK;
            case "1301":
                return SX2023Constant.SX_2023_API_ODS_UP_AQGLXXJK;
            case "1302":
                return SX2023Constant.SX_2023_API_ODS_UP_WSDJCXXJK;
            case "1303":
                return SX2023Constant.SX_2023_API_ODS_UP_CHJCXXJK;
            case "1304":
                return SX2023Constant.SX_2023_API_ODS_UP_QTJCXXJK;
            case "1305":
                return SX2023Constant.SX_2023_API_ODS_UP_TFZYXXJK;
            case "1306":
                return SX2023Constant.SX_2023_API_ODS_UP_XZZYXXJK;
            case "1307":
                return SX2023Constant.SX_2023_API_ODS_UP_CNSPTXXXJK;
            case "1308":
                return SX2023Constant.SX_2023_API_ODS_UP_SPJKYCSJGJJBXXJK;
            case "1309":
                return SX2023Constant.SX_2023_API_ODS_UP_WGYJXXJK;
            case "1310":
                return SX2023Constant.SX_2023_API_ODS_UP_ZJXXJK;
            case "1401":
                return SX2023Constant.SX_2023_API_ODS_UP_CBGMXXJK;
            case "1403":
                return SX2023Constant.SX_2023_API_ODS_UP_LHJHXXJK;
            case "1404":
                return SX2023Constant.SX_2023_API_ODS_UP_LHJHMXXXJK;
            case "1501":
                return SX2023Constant.SX_2023_API_ODS_UP_CWBBXXJK;
            case "1502":
                return SX2023Constant.SX_2023_API_ODS_UP_CWBBXXJK;
            case "1503":
                return SX2023Constant.SX_2023_API_ODS_UP_CWBBXXJK;
            default:
                return inteId;
        }
    }
}
src/main/java/com/fzzy/push/sx2023/SX2023Constant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,164 @@
package com.fzzy.push.sx2023;
/**
 * @Description é™•西省平台常量类
 * @Author CZT
 * @Date 2024/4/23 14:05
 */
public class SX2023Constant {
    /**
     * ODS_UP_DWXXJK å•位信息数据接口
     */
    public static String SX_2023_API_ODS_UP_DWXXJK = "ODS_UP_DWXXJK";
    /**
     * ODS_UP_KQXXJK åº“区信息数据接口
     */
    public static String SX_2023_API_ODS_UP_KQXXJK = "ODS_UP_KQXXJK";
    /**
     * ODS_UP_CFXXJK ä»“房信息数据接口
     */
    public static String SX_2023_API_ODS_UP_CFXXJK = "ODS_UP_CFXXJK";
    /**
     * ODS_UP_AJXXJK å»’间信息数据接口
     */
    public static String SX_2023_API_ODS_UP_AJXXJK = "ODS_UP_AJXXJK";
    /**
     * ODS_UP_HWXXJK è´§ä½ä¿¡æ¯æ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_HWXXJK = "ODS_UP_HWXXJK";
    /**
     * ODS_UP_YGXXJK æ²¹ç½ä¿¡æ¯æ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_YGXXJK = "ODS_UP_YGXXJK";
    /**
     * ODS_UP_SBXXJK è®¾å¤‡ä¿¡æ¯æ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_SBXXJK = "ODS_UP_SBXXJK";
    /**
     * ODS_UP_YJXXJK è¯å‰‚信息数据接口
     */
    public static String SX_2023_API_ODS_UP_YJXXJK = "ODS_UP_YJXXJK";
    /**
     * ODS_UP_WJXXJK æ–‡ä»¶ä¿¡æ¯æ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_WJXXJK = "ODS_UP_WJXXJK";
    /**
     * ODS_UP_KQTCFDWBZSJXXJK åº“区图仓房点位标注数据接口
     */
    public static String SX_2023_API_ODS_UP_KQTCFDWBZSJXXJK = "ODS_UP_KQTCFDWBZSJXXJK";
    /**
     * ODS_UP_KQTSPJKSBDWBZSJXXJK åº“区图视频监控设备点位标注数据接口
     */
    public static String SX_2023_API_ODS_UP_KQTSPJKSBDWBZSJXXJK = "ODS_UP_KQTSPJKSBDWBZSJXXJK";
    /**
     * ODS_UP_RYXXJK äººå‘˜ä¿¡æ¯æ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_RYXXJK = "ODS_UP_RYXXJK";
    /**
     * ODS_UP_CWBBXXJK è´¢åŠ¡æŠ¥è¡¨æ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_CWBBXXJK = "ODS_UP_CWBBXXJK";
    /**
     * ODS_UP_HTXXJK åˆåŒä¿¡æ¯æ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_HTXXJK = "ODS_UP_HTXXJK";
    /**
     * ODS_UP_LSRKXXJK ç²®é£Ÿå…¥åº“信息数据接口
     */
    public static String SX_2023_API_ODS_UP_LSRKXXJK = "ODS_UP_LSRKXXJK";
    /**
     * ODS_UP_LSRKJYXXJK ç²®é£Ÿå…¥åº“检验信息数据接口
     */
    public static String SX_2023_API_ODS_UP_LSRKJYXXJK = "ODS_UP_LSRKJYXXJK";
    /**
     * ODS_UP_LSRKJSXXJK ç²®é£Ÿå…¥åº“结算信息数据口
     */
    public static String SX_2023_API_ODS_UP_LSRKJSXXJK = "ODS_UP_LSRKJSXXJK";
    /**
     * ODS_UP_LSCKXXJK ç²®é£Ÿå‡ºåº“信息数据接口
     */
    public static String SX_2023_API_ODS_UP_LSCKXXJK = "ODS_UP_LSCKXXJK";
    /**
     * ODS_UP_LSCKJSXXJK ç²®é£Ÿå‡ºåº“结算信息数据接口
     */
    public static String SX_2023_API_ODS_UP_LSCKJSXXJK = "ODS_UP_LSCKJSXXJK";
    /**
     * ODS_UP_DCXXJK å€’仓数据接口
     */
    public static String SX_2023_API_ODS_UP_DCXXJK = "ODS_UP_DCXXJK";
    /**
     * ODS_UP_LSKCXXJK ç²®é£Ÿåº“存数据接口
     */
    public static String SX_2023_API_ODS_UP_LSKCXXJK = "ODS_UP_LSKCXXJK";
    /**
     * ODS_UP_SYDXXJK æŸæº¢å•数据接口
     */
    public static String SX_2023_API_ODS_UP_SYDXXJK = "ODS_UP_SYDXXJK";
    /**
     * ODS_UP_LSXZZBDXXJK ç²®é£Ÿæ€§è´¨è½¬å˜å•数据接口
     */
    public static String SX_2023_API_ODS_UP_LSXZZBDXXJK = "ODS_UP_LSXZZBDXXJK";
    /**
     * ODS_UP_ZMKCXXJK è´¦é¢åº“存数据接口
     */
    public static String SX_2023_API_ODS_UP_ZMKCXXJK = "ODS_UP_ZMKCXXJK";
    /**
     * ODS_UP_KHXXJK å®¢æˆ·ä¿¡æ¯æ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_KHXXJK = "ODS_UP_KHXXJK";
    /**
     * ODS_UP_AQGLXXJK å®‰å…¨ç®¡ç†æ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_AQGLXXJK = "ODS_UP_AQGLXXJK";
    /**
     * ODS_UP_WSDJCXXJK æ¸©æ¹¿åº¦æ£€æµ‹æ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_WSDJCXXJK = "ODS_UP_WSDJCXXJK";
    /**
     * ODS_UP_CHJCXXJK å®³è™«æ£€æµ‹æ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_CHJCXXJK = "ODS_UP_CHJCXXJK";
    /**
     * ODS_UP_QTJCXXJK æ°”体检测数据接口
     */
    public static String SX_2023_API_ODS_UP_QTJCXXJK = "ODS_UP_QTJCXXJK";
    /**
     * ODS_UP_TFZYXXJK é€šé£Žä½œä¸šæ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_TFZYXXJK = "ODS_UP_TFZYXXJK";
    /**
     * ODS_UP_XZZYXXJK ç†è’¸ä½œä¸šæ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_XZZYXXJK = "ODS_UP_XZZYXXJK";
    /**
     * ODS_UP_CNSPTXXXJK ä»“内视频图像数据接口
     */
    public static String SX_2023_API_ODS_UP_CNSPTXXXJK = "ODS_UP_CNSPTXXXJK";
    /**
     * ODS_UP_SPJKYCSJGJJBXXJK è§†é¢‘监控异常事件告警基本信息数据接口
     */
    public static String SX_2023_API_ODS_UP_SPJKYCSJGJJBXXJK = "ODS_UP_SPJKYCSJGJJBXXJK";
    /**
     * ODS_UP_WGYJXXJK è¿è§„预警信息数据接口
     */
    public static String SX_2023_API_ODS_UP_WGYJXXJK = "ODS_UP_WGYJXXJK";
    /**
     * ODS_UP_ZJXXJK è´¨æ£€æ•°æ®æŽ¥å£
     */
    public static String SX_2023_API_ODS_UP_ZJXXJK = "ODS_UP_ZJXXJK";
    /**
     * ODS_UP_CBGMXXJK å‚¨å¤‡è§„模数据接口
     */
    public static String SX_2023_API_ODS_UP_CBGMXXJK = "ODS_UP_CBGMXXJK";
    /**
     * ODS_UP_LHJHXXJK è½®æ¢è®¡åˆ’信息数据接口
     */
    public static String SX_2023_API_ODS_UP_LHJHXXJK = "ODS_UP_LHJHXXJK";
    /**
     * ODS_UP_LHJHMXXXJK è½®æ¢è®¡åˆ’明细信息数据接口
     */
    public static String SX_2023_API_ODS_UP_LHJHMXXXJK = "ODS_UP_LHJHMXXXJK";
}
src/main/java/com/fzzy/push/sx2023/SX2023HttpClientUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
package com.fzzy.push.sx2023;
import com.fzzy.push.sx2023.data.SX2023RespDto;
import lombok.extern.slf4j.Slf4j;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
 * @Description é™•西省平台2023版-数据上传服务
 * @Author CZT
 * @Date 2024/4/23 15:11
 */
@Slf4j
public class SX2023HttpClientUtil {
    public static String postPushData(String url, String reqData) throws Exception {
        log.debug("---------接口请求地址:" + url + "----------参数:" + reqData + "---------");
        BufferedReader in = null;
        URL urls = new URL(url);
        HttpURLConnection connection = null;
        OutputStream outputStream = null;
        String rs = "";
        SX2023RespDto responseDto;
        try {
            connection = (HttpURLConnection) urls.openConnection();
            connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8");
            connection.setRequestProperty("Accept", "*/*");
            connection.setRequestProperty("Range", "bytes=" + "");
            connection.setConnectTimeout(20000);
            connection.setReadTimeout(30000);
            connection.setRequestMethod("POST");
            outputStream = connection.getOutputStream();
            outputStream.write(reqData.getBytes("UTF-8"));
            try {
                connection.connect();
                if (connection.getResponseCode() == 200) {
                    in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
                    String line = "";
                    while ((line = in.readLine()) != null) {
                        rs += line;
                    }
                } else {
                    log.error("http状态:" + connection.getResponseCode());
                    log.error("http消息:" + connection.getResponseMessage());
                }
            } catch (Exception e) {
                System.out.println("发生异常");
                log.error(e.getMessage(), e);
                rs = null;
                return rs;
            }
            log.info("---------接口返回:" + rs + "---------");
            return rs;
        } finally {
            try {
                outputStream.close();
                if (in != null) {
                    in.close();
                }
            } catch (Exception e) {
            }
            outputStream = null;
            if (connection != null)
                connection.disconnect();
            connection = null;
        }
    }
}
src/main/java/com/fzzy/push/sx2023/SX2023OrderServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,203 @@
package com.fzzy.push.sx2023;
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.PushProtocol;
import com.fzzy.api.entity.ApiConfs;
import com.fzzy.api.utils.RedisConst;
import com.fzzy.api.utils.RedisUtil;
import com.fzzy.order.ordersx2023.OrderSxService;
import com.fzzy.order.ordersx2023.data.OrderSxConstant;
import com.fzzy.order.ordersx2023.data.OrderSxReq;
import com.fzzy.push.impl.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.ParseException;
/**
 * @Description é™•西省平台2023版-指令解析
 * @Author CZT
 * @Date 2024/4/23 11:48
 */
@Slf4j
@Service
public class SX2023OrderServiceImpl implements OrderSxService {
    @Autowired
    private RedisUtil redisUtil;
    @Autowired
    private SX2023ApiRemoteService apiRemoteService;
    @Autowired
    private ComPushService11 pushService11;
    @Autowired
    private ComPushService12 pushService12;
    @Autowired
    private ComPushService13 pushService13;
    @Autowired
    private ComPushService14 pushService14;
    @Override
    public String getProtocol() {
        return PushProtocol.SB_SX_2023.getCode();
    }
    @Override
    public void execute(OrderSxReq req, ApiConfs apiConfs) throws ParseException {
        // è‹¥æŒ‡ä»¤ç±»åž‹ä¸ä¸º1,则返回
        if (!OrderSxConstant.ORDER_SX_TYPE_1.equals(req.getType())) {
            log.error("陕西省平台:收到指令,指令类型不为1,不执行数据上报!,指令类型={}", req.getType());
            return;
        }
        String datas = req.getData();
        if (StringUtils.isEmpty(datas)) {
            log.error("陕西省平台:收到指令,指令内容为空,不执行数据上报!");
            return;
        }
        //指令存入缓存,时效24小时
        String key = RedisConst.buildKey(RedisConst.KYE_ORDER, apiConfs.getKqdm());
        redisUtil.set(key, req, 59 * 60 * 24);
        ApiParam param = new ApiParam();
        param.setPushProtocol(apiConfs.getPushProtocol());
        param.setKqdm(apiConfs.getKqdm());
        param.setStart(DateUtils.parseDate(req.getStartTime(), new String[]{"yyyy-MM-dd HH:mm:ss"}));
        param.setEnd(DateUtils.parseDate(req.getEndTime(), new String[]{"yyyy-MM-dd HH:mm:ss"}));
        param.setDeptId(apiConfs.getDeptId());
        log.info("接收的指令中接口内容为={}", datas);
        String[] interfaces = datas.split(",");
        for (String inteId : interfaces) {
            log.info("执行接口={}的数据上报", inteId);
            getDataToPush(param, inteId);
        }
    }
    private void getDataToPush(ApiParam param, String inteId) {
        switch (inteId) {
            case "ODS_UP_DWXXJK":
                pushService11.pushData1101(apiRemoteService, param);
                break;
            case "ODS_UP_KQXXJK":
                pushService11.pushData1102(apiRemoteService, param);
                break;
            case "ODS_UP_CFXXJK":
                pushService11.pushData1103(apiRemoteService, param);
                break;
            case "ODS_UP_AJXXJK":
                pushService11.pushData1104(apiRemoteService, param);
                break;
            case "ODS_UP_HWXXJK":
                pushService11.pushData1105(apiRemoteService, param);
                break;
            case "ODS_UP_YGXXJK":
                pushService11.pushData1106(apiRemoteService, param);
                break;
            case "ODS_UP_SBXXJK":
                pushService11.pushData1107(apiRemoteService, param);
                break;
            case "ODS_UP_YJXXJK":
                pushService11.pushData1108(apiRemoteService, param);
                break;
            case "ODS_UP_WJXXJK":
                pushService12.pushData1109(apiRemoteService, param);
                break;
            case "ODS_UP_KQTCFDWBZSJXXJK":
                pushService11.pushData1110(apiRemoteService, param);
                break;
            case "ODS_UP_KQTSPJKSBDWBZSJXXJK":
                pushService11.pushData1111(apiRemoteService, param);
                break;
            case "ODS_UP_RYXXJK":
                pushService11.pushData1112(apiRemoteService, param);
                break;
            case "ODS_UP_CWBBXXJK":
                pushService11.pushData1114(apiRemoteService, param);
                break;
            case "ODS_UP_HTXXJK":
                pushService12.pushData1201(apiRemoteService, param);
                break;
            case "ODS_UP_LSRKXXJK":
                pushService12.pushData1202(apiRemoteService, param);
                break;
            case "ODS_UP_LSRKJYXXJK":
                pushService12.pushData1203(apiRemoteService, param);
                break;
            case "ODS_UP_LSRKJSXXJK":
                pushService12.pushData1204(apiRemoteService, param);
                break;
            case "ODS_UP_LSCKXXJK":
                pushService12.pushData1205(apiRemoteService, param);
                break;
            case "ODS_UP_LSCKJSXXJK":
                pushService12.pushData1206(apiRemoteService, param);
                break;
            case "ODS_UP_DCXXJK":
                pushService12.pushData1207(apiRemoteService, param);
                break;
            case "ODS_UP_LSKCXXJK":
                pushService12.pushData1208(apiRemoteService, param);
                break;
            case "ODS_UP_SYDXXJK":
                pushService12.pushData1209(apiRemoteService, param);
                break;
            case "ODS_UP_LSXZZBDXXJK":
                pushService12.pushData1210(apiRemoteService, param);
                break;
            case "ODS_UP_ZMKCXXJK":
                pushService12.pushData1211(apiRemoteService, param);
                break;
            case "ODS_UP_KHXXJK":
                pushService12.pushData1212(apiRemoteService, param);
                break;
            case "ODS_UP_AQGLXXJK":
                pushService13.pushData1301(apiRemoteService, param);
                break;
            case "ODS_UP_WSDJCXXJK":
                pushService13.pushData1302(apiRemoteService, param);
                break;
            case "ODS_UP_CHJCXXJK":
                pushService13.pushData1303(apiRemoteService, param);
                break;
            case "ODS_UP_QTJCXXJK":
                pushService13.pushData1304(apiRemoteService, param);
                break;
            case "ODS_UP_TFZYXXJK":
                pushService13.pushData1305(apiRemoteService, param);
                break;
            case "ODS_UP_XZZYXXJK":
                pushService13.pushData1306(apiRemoteService, param);
                break;
            case "ODS_UP_CNSPTXXXJK":
                pushService13.pushData1307(apiRemoteService, param);
                break;
            case "ODS_UP_SPJKYCSJGJJBXXJK":
                pushService13.pushData1308(apiRemoteService, param);
                break;
            case "ODS_UP_WGYJXXJK":
                pushService13.pushData1309(apiRemoteService, param);
                break;
            case "ODS_UP_ZJXXJK":
                pushService13.pushData1310(apiRemoteService, param);
                break;
            case "ODS_UP_CBGMXXJK":
                pushService14.pushData1401(apiRemoteService, param);
                break;
            case "ODS_UP_LHJHXXJK":
                pushService14.pushData1403(apiRemoteService, param);
                break;
            case "ODS_UP_LHJHMXXXJK":
                pushService14.pushData1404(apiRemoteService, param);
                break;
            default:
                log.error("-----陕西省平台:未匹配到接口编码,不推送-----");
                break;
        }
    }
}
src/main/java/com/fzzy/push/sx2023/data/SX2023Api1101.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,132 @@
package com.fzzy.push.sx2023.data;
import com.alibaba.fastjson.annotation.JSONField;
import com.bstek.dorado.annotation.PropertyDef;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description å•位信息
 * @Author CZT
 * @Date 2024/4/24 9:12
 */
@Data
public class SX2023Api1101 implements Serializable {
    @PropertyDef(label = "单位编码--11位")
    private String DWBM;
    @PropertyDef(label = "单位代码")
    @JsonProperty("DWDM")
    private String dwdm;
    @PropertyDef(label = "单位名称")
    @JsonProperty("DWMC")
    private String dwmc;
    @PropertyDef(label = "单位类型")
    @JsonProperty("DWLX")
    private String dwlx;
    @PropertyDef(label = "注册日期")
    @JSONField(format = "yyyy-MM-dd")
    @JsonProperty("ZCRQ")
    private Date zcrq;
    @PropertyDef(label = "注册资本")
    @JsonProperty("ZCZB")
    private Double zczb;
    @PropertyDef(label = "资产总额")
    @JsonProperty("ZCZE")
    private Double zcze;
    @PropertyDef(label = "法定代表人")
    @JsonProperty("FDDBR")
    private String fddbr;
    @PropertyDef(label = "法人身份证号")
    @JsonProperty("FRSFZH")
    private String frsfzh;
    @PropertyDef(label = "法人联系方式")
    @JsonProperty("FRLXFS")
    private String frlxfs;
    @PropertyDef(label = "企业联系人")
    @JsonProperty("QYLXR")
    private String qylxr;
    @PropertyDef(label = "办公电话")
    @JsonProperty("BGDH")
    private String bgdh;
    @PropertyDef(label = "注册地址")
    @JsonProperty("ZCDZ")
    private String zcdz;
    @PropertyDef(label = "电子邮箱")
    @JsonProperty("DZYX")
    private String dzyx;
    @PropertyDef(label = "企业官方网站地址")
    @JsonProperty("QYGFWZDZ")
    private String qygfwzdz;
    @PropertyDef(label = "传真号码")
    @JsonProperty("CZHM")
    private String czhm;
    @PropertyDef(label = "邮政编码")
    @JsonProperty("YZBM")
    private String yzbm;
    @PropertyDef(label = "行政区划代码")
    @JsonProperty("XZQHDM")
    private String xzqhdm;
    @PropertyDef(label = "上级单位名称")
    @JsonProperty("SJDWMC")
    private String sjdwmc;
    @PropertyDef(label = "上级单位代码")
    @JsonProperty("SJDWDM")
    private String sjdwdm;
    @PropertyDef(label = "库区数")
    @JsonProperty("KQS")
    private Integer kqs;
    @PropertyDef(label = "仓房数")
    @JsonProperty("CFS")
    private Integer cfs;
    @PropertyDef(label = "油罐数")
    @JsonProperty("YGS")
    private Integer ygs;
    @PropertyDef(label = "经度")
    @JsonProperty("JD")
    private Double jd;
    @PropertyDef(label = "纬度")
    @JsonProperty("WD")
    private Double wd;
    @PropertyDef(label = "单位状态")
    @JsonProperty("DWZT")
    private String dwzt;
    @PropertyDef(label = "操作标志")
    @JsonProperty("CZBZ")
    private String czbz;
    @PropertyDef(label = "最后更新时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @JsonProperty("ZHGXSJ")
    private Date zhgxsj;
}
src/main/java/com/fzzy/push/sx2023/data/SX2023Dto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.fzzy.push.sx2023.data;
import lombok.Data;
import java.io.Serializable;
/**
 * @Description é™•西省平台2023版-响应码数据封装
 * @Author CZT
 * @Date 2024/4/23 16:21
 */
@Data
public class SX2023Dto implements Serializable {
    /**
     * å“åº”码
     */
    private String Code;
    /**
     * ç›¸åº”信息
     */
    private String VER;
}
src/main/java/com/fzzy/push/sx2023/data/SX2023ReqDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,53 @@
package com.fzzy.push.sx2023.data;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description é™•西省平台2023版-推送数据封装
 * @Author CZT
 * @Date 2024/4/23 15:02
 */
@Data
public class SX2023ReqDto implements Serializable {
    /**
     * æŠ¥æ–‡æ ‡è¯†
     */
    private String ID;
    /**
     * ç‰ˆæœ¬å·
     */
    private String VER;
    /**
     * å•位编码:11位
     */
    private String OrgNo;
    /**
     * å•位名称
     */
    private String OrgName;
    /**
     * å‘èµ·æ—¶é—´
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date SendTime;
    /**
     * å•位代码
     */
    private String dwdm;
    /**
     * æ•°æ®ä¸»ä½“内容:加密
     */
    private String Body;
}
src/main/java/com/fzzy/push/sx2023/data/SX2023RespDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package com.fzzy.push.sx2023.data;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description é™•西省平台2023版-相应数据封装
 * @Author CZT
 * @Date 2024/4/23 15:07
 */
@Data
public class SX2023RespDto<T> implements Serializable {
    /**
     * æŠ¥æ–‡æ ‡è¯†ID
     */
    private String ID;
    /**
     * æŠ¥æ–‡ç‰ˆæœ¬å·
     */
    private String VER;
    /**
     * å‘èµ·æ—¶é—´
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date SendTime;
    /**
     * è¯·æ±‚命令影响的行数
     */
    private String ROWS;
    /**
     * æ‰§è¡Œæ¶ˆæ¯çš„内容
     */
    private T MsgBody;
    public SX2023RespDto() {
    }
    public SX2023RespDto(String ID, String VER) {
        this.ID = ID;
        this.VER = VER;
    }
}
src/main/java/com/fzzy/push/sx2023/data/SXFinanceDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package com.fzzy.push.sx2023.data;
import com.bstek.dorado.annotation.PropertyDef;
import lombok.Data;
/**
 * @Description æŠ¥è¡¨æ•°æ®å°è£…
 * @Author CZT
 * @Date 2024/4/23 17:30
 */
@Data
public class SXFinanceDto {
    @PropertyDef(label = "单位代码")
    private String DWDM;
    @PropertyDef(label = "库区代码")
    private String KQDM;
    @PropertyDef(label = "报表期号")
    private String BBSJ;
    @PropertyDef(label = "报表名")
    private String BBM;
    @PropertyDef(label = "指标序号")
    private String ZBXH;
    @PropertyDef(label = "指标名称")
    private String ZBMC;
    @PropertyDef(label = "指标值 1")
    private String ZBZ1;
    @PropertyDef(label = "指标值 2")
    private String ZBZ2;
    @PropertyDef(label = "操作标志")
    private String CZBZ;
    @PropertyDef(label = "最后更新时间")
    private String ZHGXSJ;
    public SXFinanceDto() {
    }
    public SXFinanceDto(String zbmc, String zbz1, String zbz2){
        this.ZBMC = zbmc;
        this.ZBZ1 = zbz1;
        this.ZBZ2 = zbz2;
    }
}