FinanceInfoServiceImpl.java 7 KB
package com.lhcredit.project.business.financeInfo.service;

import java.math.BigDecimal;
import java.time.Year;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.lhcredit.project.business.reportFinanceData.domain.ReportFinanceData;
import com.lhcredit.project.webbusiness.controller.WebFinanceInfoController;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.lhcredit.project.business.financeInfo.mapper.FinanceInfoMapper;
import com.lhcredit.project.business.financeInfo.domain.FinanceInfo;
import com.lhcredit.project.business.financeInfo.service.IFinanceInfoService;
import com.lhcredit.common.utils.text.Convert;

/**
 * 财务数据 服务层实现
 *
 * @author lhcredit
 * @date 2024-06-11
 */
@Service
public class FinanceInfoServiceImpl implements IFinanceInfoService {
    @Autowired
    private FinanceInfoMapper financeInfoMapper;


    /**
     * 查询财务数据信息
     *
     * @param id 财务数据ID
     * @return 财务数据信息
     */
    @Override
    public FinanceInfo selectFinanceInfoById(Long id) {
        return financeInfoMapper.selectFinanceInfoById(id);
    }

    /**
     * 查询财务数据列表
     * @param financeInfo 财务数据信息
     * @return 财务数据集合
     */
    @Override
    public List<FinanceInfo> selectFinanceInfoList(FinanceInfo financeInfo) {
        financeInfo.setSource(WebFinanceInfoController.sourceType);
        return financeInfoMapper.selectFinanceInfoList(financeInfo);
    }

    /**
     * 字段转换
     * @param financeInfo 财务数据信息
     * @return 财务数据信息
     */
    @Override
    public FinanceInfo changeModel(FinanceInfo financeInfo) {
//        //这里写各字段转换逻辑
//        if(financeInfo!=null){
//            if(StringUtils.isNotEmpty(financeInfo.getXXX())){
//               financeInfo.setXXX(financeInfo.getXXX());
//            }
//        }
        return financeInfo;
    }

    /**
     * 列表转换
     *
     * @param financeInfoList 财务数据集合
     * @return 财务数据集合
     */
    @Override
    public List<FinanceInfo> changeModel(List<FinanceInfo> financeInfoList) {
        List<FinanceInfo> result = new ArrayList<FinanceInfo>();
        if (financeInfoList.size() > 0) {
            for (FinanceInfo financeInfo:financeInfoList){
                result.add(changeModel(financeInfo));
            }
        }
        return result;
    }

    /**
     * 新增财务数据
     *
     * @param financeInfo 财务数据信息
     * @return 结果
     */
    @Override
    public int insertFinanceInfo(FinanceInfo financeInfo) {
        financeInfo.setCreateTime(new Date());
        financeInfo.setUpdateTime(new Date());
        financeInfo.setDelFlag("0");
        return financeInfoMapper.insertFinanceInfo(financeInfo);
    }

    /**
     * 修改财务数据
     *
     * @param financeInfo 财务数据信息
     * @return 结果
     */
    @Override
    public int updateFinanceInfo(FinanceInfo financeInfo) {
        return financeInfoMapper.updateFinanceInfo(financeInfo);
    }

    /**
     * 删除财务数据对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteFinanceInfoByIds(String ids) {
        return financeInfoMapper.deleteFinanceInfoByIds(Convert.toStrArray(ids));
    }

    @Override
    public List<FinanceInfo> getReportSystemApiData(String name,String orgCcode,Long userId,Long orgId) {
//        List<FinanceInfo> list=new ArrayList<>();
//        BigDecimal one = new BigDecimal("10000");
//        String urlString=openApi+"/other/finance/brzhDsFinance/getList?ename=${ename}&year=${year}&key=xygj".replace("${ename}",name).replace("${year}","2020,2021,2022,2023");
//
//        String post = HttpRequest.get(urlString).header("token","f21bcdd7-90a7-4d39-9bed-56bed670314a").execute().body();
//        JSONObject jsonObject = JSONObject.parseObject(post);
//        if (jsonObject.getString("code").contains("2000")) {
//            JSONArray data = jsonObject.getJSONArray("data");
//            for (int i = 0; i < data.size(); i++) {
//                JSONObject jsonObject1 = data.getJSONObject(i);
//                FinanceInfo build = FinanceInfo.builder()
//                        .ename(name).year(jsonObject1.getInteger("reportYear"))
//                        .operRev(jsonObject1.getBigDecimal("operRev"))
//                        .totAssets(jsonObject1.getBigDecimal("totalAssets"))
//                        .totalEquity(jsonObject1.getBigDecimal("totalEquity"))
//                        .totProfit(jsonObject1.getBigDecimal("totalProfit"))
//                        .netProfit(jsonObject1.getBigDecimal("netProfit"))
//                        .totLiab(jsonObject1.getBigDecimal("totalLiability"))
//                        .orgCode(orgCcode)
//                        .source("1")
//                        .orgId(orgId).userId(userId)
//                        .build();
//                if (null!=build.getOperRev())build.setOperRev(build.getOperRev().setScale(2,BigDecimal.ROUND_HALF_UP));
//                if (null!=build.getTotAssets())build.setTotAssets(build.getTotAssets().setScale(2,BigDecimal.ROUND_HALF_UP));
//                if (null!=build.getTotalEquity())build.setTotalEquity(build.getTotalEquity().setScale(2,BigDecimal.ROUND_HALF_UP));
//                if (null!=build.getTotProfit())build.setTotProfit(build.getTotProfit().setScale(2,BigDecimal.ROUND_HALF_UP));
//                if (null!=build.getNetProfit())build.setNetProfit(build.getNetProfit().setScale(2,BigDecimal.ROUND_HALF_UP));
//                if (null!=build.getTotLiab())build.setTotLiab(build.getTotLiab().setScale(2,BigDecimal.ROUND_HALF_UP));
//                list.add(build);
//            }
//        }
//        return list;

         List<FinanceInfo> list=new ArrayList<>();
         String url = "http://cw.lhdna.com/queryDataController/queryData?name=" + name;
         String str = HttpRequest.get(url).execute().body();
         JSONObject jsonObject = JSONObject.parseObject(str);
         JSONArray data = jsonObject.getJSONArray("data");
         list= CollectionUtils.isEmpty(data)?new ArrayList<>():data.toJavaList(FinanceInfo.class);
             for (FinanceInfo financeInfo : list) {
                 financeInfo.setEname(name);
                 financeInfo.setOrgCode(orgCcode);
                 financeInfo.setSource("1");
                 financeInfo.setOrgId(orgId);
                 financeInfo.setUserId(userId);
             }
         return list;


    }


    /**
     * 根据公司id 查询 finance_info 表的有效记录条数
     *
     * @param id
     * @return
     */
    @Override
    public Long getFinanceInfoSearchCount(String id) {
        return financeInfoMapper.getFinanceInfoSearchCount(id);
    }
}