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> 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> getListData(String inteId, Object data, ApiConfs conf) { List> result = new ArrayList<>(); Map 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 list = getFinanceData(inteId, data); map.put(inteIdUrl, list); } else { List 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)) { SX2023Api1102 apiData = new SX2023Api1102(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1103.equals(inteId)) { SX2023Api1103 apiData = new SX2023Api1103(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1104.equals(inteId)) { SX2023Api1104 apiData = new SX2023Api1104(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1105.equals(inteId)) { SX2023Api1105 apiData = new SX2023Api1105(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1106.equals(inteId)) { SX2023Api1106 apiData = new SX2023Api1106(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1107.equals(inteId)) { SX2023Api1107 apiData = new SX2023Api1107(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1108.equals(inteId)) { SX2023Api1108 apiData = new SX2023Api1108(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1109.equals(inteId)) { SX2023Api1109 apiData = new SX2023Api1109(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1110.equals(inteId)) { SX2023Api1110 apiData = new SX2023Api1110(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1111.equals(inteId)) { SX2023Api1111 apiData = new SX2023Api1111(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1112.equals(inteId)) { SX2023Api1112 apiData = new SX2023Api1112(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1201.equals(inteId)) { SX2023Api1201 apiData = new SX2023Api1201(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1202.equals(inteId)) { SX2023Api1202 apiData = new SX2023Api1202(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1203.equals(inteId)) { SX2023Api1203 apiData = new SX2023Api1203(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1204.equals(inteId)) { SX2023Api1204 apiData = new SX2023Api1204(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1205.equals(inteId)) { SX2023Api1205 apiData = new SX2023Api1205(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1206.equals(inteId)) { SX2023Api1206 apiData = new SX2023Api1206(); BeanUtils.copyProperties(data, apiData); return apiData; } if (Constant.API_CODE_1207.equals(inteId)) { SX2023Api1207 apiData = new SX2023Api1207(); BeanUtils.copyProperties(data, apiData); return apiData; } 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 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 copyApi1503(Api1503 api1503) { List 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 copyApi1502(Api1502 api1502) { List 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 copyApi1501(Api1501 api1501) { List 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 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; } } }