package com.yunyan.business.document.y23.finalData;

import cn.hutool.json.JSONUtil;
import com.yunyan.business.document.y22.FinalY22Utils;
import com.yunyan.business.document.y22.pojo.finalExcelY22.FinalExcelDataVo;
import com.yunyan.common.core.domain.AjaxResultVo;
import com.yunyan.common.utils.StringUtils;

/**
 * 2023年 决算的 JSON 转换对象
 */
public class FinalExcelDataVo23Utils {

    /**
     * 把 jsonContent 转换为 FinalExcelDataVo
     * @param jsonContent
     * @param year 年份, 以后可能会用到
     * @param area 地区, 以后可能会用到
     * @return
     */
    public static FinalExcelDataVo getFinalExcelDataVoByJson(String jsonContent, String year, String area) {
        if(StringUtils.isBlank(jsonContent)) {
            return null;
        }

        FinalExcelDataVo dataVo = JSONUtil.toBean(jsonContent, FinalExcelDataVo.class);

        updateCommon(dataVo, year, area);
        updateByYear(dataVo, year, area);

        return dataVo;
    }

    /**
     * 共同的类 修改 更新
     * @param dataVo
     * @param year
     * @param area
     */
    private static void updateCommon(FinalExcelDataVo dataVo, String year, String area) {
        CalculateDataUtils.calculateData(dataVo);

        //rowNo 排序
        FinalY22Utils.setListRowNo(dataVo);
    }

    private static void updateByYear(FinalExcelDataVo dataVo, String year, String area) {
        switch (year) {
            case "2023":
                updateByYear2023(dataVo, year, area);
                break;
            case "2024":
                updateByYear2023(dataVo, year, area);
                break;
            case "2025":
                updateByYear2023(dataVo, year, area);
                break;
            default:
                    break;
        }
    }

    private static void updateByYear2023(FinalExcelDataVo dataVo, String year, String area) {
        //更新 百色市的 其他用车的 数量
        UpdateReportF2023Data.updateFillData(dataVo);
        //更新 计算值 与对比
        CalculateDataF2023DataUtils.calculateData(dataVo);
    }

}
