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

import cn.hutool.core.util.NumberUtil;
import com.yunyan.business.constant.TemplateEpType;
import com.yunyan.business.document.utils.ReadExcelUtil;
import com.yunyan.business.document.y22.FinalY22Utils;
import com.yunyan.business.document.y22.pojo.finalExcelY22.FinalExcelDataVo;
import com.yunyan.business.document.y22.pojo.finalExcelY22.FinalP3T1TotalItemVo;
import com.yunyan.business.document.y23.finalData.pojo.ChangeValueItemVo;
import com.yunyan.common.utils.NumberFormatUtils;
import com.yunyan.common.utils.StringUtils;

import java.math.BigDecimal;

/**
 * 决算的凭祥模板的读取(平南的 也有)
 */
public class FinalY23AreaUtils {

    /**
     * 设置 区域的一些设置, 在编辑保存之前
     * @param dataVo
     */
    public static void setAreaInitYear(FinalExcelDataVo dataVo) {
        if(!"2023".equals(dataVo.getYear()) && !"2024".equals(dataVo.getYear()) &&!"2025".equals(dataVo.getYear())) {
            return;
        }

        //2023天等 决算模板
        FinalY23TDengUtils.setAreaInitYear(dataVo);
        FinalY23GpUtils.setAreaInitYear(dataVo);

        //更新 百色市的 其他用车的 数量
        FinalY23AreaInitUtils.updateFillData(dataVo);

    }

    /**
     * 预算后更新
     * @param dataVo
     */
    public static void setAreaCompareBudgetYear(FinalExcelDataVo dataVo) {
        if(!"2023".equals(dataVo.getYear()) && !"2024".equals(dataVo.getYear()) &&!"2025".equals(dataVo.getYear())) {
            return;
        }

        //2023天等 决算模板
        FinalY23TDengUtils.setAreaCompareBudgetYear(dataVo);

    }

    /**
     * 第3部分的第一的收入的设置
     * @param incomeItem
     * @param templateExportType
     */
    public static void setP3T1ItemInfo(FinalP3T1TotalItemVo incomeItem, String templateExportType) {
        /*if(checkTmplateType(templateExportType)) {
            return;
        }*/

        //2023凭祥 决算模板
        FinalY23PxUtils.setP3T1ItemInfo(incomeItem, templateExportType);
        //23 平南 决算模板
        FinalY23PnUtils.setP3T1ItemInfo(incomeItem, templateExportType);
        //2023百色 决算模板
        FinalY23BsUtils.setP3T1ItemInfo(incomeItem, templateExportType);
        //23 博白 决算模板
        FinalY23BbUtils.setP3T1ItemInfo(incomeItem, templateExportType);
        //23 桂平 决算模板
        FinalY23GpUtils.setP3T1ItemInfo(incomeItem, templateExportType);
        //23 陆川 决算模板
        FinalY23LcUtils.setP3T1ItemInfo(incomeItem, templateExportType);
        //2023天等 决算模板
        FinalY23TDengUtils.setP3T1ItemInfo(incomeItem, templateExportType);
        //2023田东 决算模板
        FinalY23TDongUtils.setP3T1ItemInfo(incomeItem, templateExportType);
        //23 平果 决算模板
        FinalY23PgUtils.setP3T1ItemInfo(incomeItem, templateExportType);

    }
    /**
     * 第3部分的第一的支出的设置
     * @param itemInfo
     * @param templateExportType
     */
    public static void setP3T1ItemInfo2(FinalP3T1TotalItemVo itemInfo, String templateExportType) {
        /*if(checkTmplateType(templateExportType)) {
            return;
        }
*/
        //2023凭祥 决算模板
        FinalY23PxUtils.setP3T1ItemInfo2(itemInfo, templateExportType);
        //2023百色 决算模板
        FinalY23BsUtils.setP3T1ItemInfo2(itemInfo, templateExportType);
        //23 博白 决算模板
        FinalY23BbUtils.setP3T1ItemInfo2(itemInfo, templateExportType);
        //2023平南 决算模板
        FinalY23PnUtils.setP3T1ItemInfo2(itemInfo, templateExportType);
        //2023桂平 决算模板
        FinalY23GpUtils.setP3T1ItemInfo2(itemInfo, templateExportType);
        //23 陆川 决算模板
        FinalY23LcUtils.setP3T1ItemInfo2(itemInfo, templateExportType);
        //2023天等 决算模板
        FinalY23TDengUtils.setP3T1ItemInfo2(itemInfo, templateExportType);
        //2023田东 决算模板
        FinalY23TDongUtils.setP3T1ItemInfo2(itemInfo, templateExportType);
        //23 平果 决算模板
        FinalY23PgUtils.setP3T1ItemInfo2(itemInfo, templateExportType);
    }


    /**
     * 附属单位上缴 去除, 去除 返回 false, 默认返回 true
     * @param incomeItem
     * @param templateExportType
     * @return
     */
    public static boolean checkAddP3T1Item(FinalP3T1TotalItemVo incomeItem, String templateExportType) {

        //凭祥
        if(!FinalY23PxUtils.checkAddP3T1Item(incomeItem, templateExportType)) {
            return false;
        }

        //平南
        if(!FinalY23PnUtils.checkAddP3T1Item(incomeItem, templateExportType)) {
            return false;
        }

        //博白
        if(!FinalY23BbUtils.checkAddP3T1Item(incomeItem, templateExportType)) {
            return false;
        }
        //陆川
        if(!FinalY23LcUtils.checkAddP3T1Item(incomeItem, templateExportType)) {
            return false;
        }

        //天等
        if(!FinalY23TDengUtils.checkAddP3T1Item(incomeItem, templateExportType)) {
            return false;
        }

        //平果
        if(!FinalY23PgUtils.checkAddP3T1Item(incomeItem, templateExportType)) {
            return false;
        }

        return true;
    }

    /**
     * 3.3部分的年度一般公共预算财政拨款基本支出决算情况说明 经济分类支出科目 的info 文字
     * @param itemName
     * @param val1 本年/结束
     * @param val2 去年/开始
     * @param ratio
     * @return
     */
    public static String getInfoStrP3T3(String itemName, String val1, String val2, String ratio, String templateExportType) {

        String str = FinalY23Utils.getInfoStrP3T3(itemName, val1, val2, ratio);

        //23 博白 决算模板
        String str2 = FinalY23BbUtils.getInfoStrP3T3(itemName, val1, val2, ratio, templateExportType);
        if(StringUtils.isNotBlank(str2)) {
            return str2;
        }
        //23 陆川 决算模板
        String str9 = FinalY23BbUtils.getInfoStrP3T3(itemName, val1, val2, ratio, templateExportType);
        if(StringUtils.isNotBlank(str9)) {
            return str9;
        }
        //23 平果 决算模板
        String str10 = FinalY23BbUtils.getInfoStrP3T3(itemName, val1, val2, ratio, templateExportType);
        if(StringUtils.isNotBlank(str10)) {
            return str9;
        }
        return str;
    }

    /**
     * 设置 p7p3 的 车辆名称, 如果去掉, 则返回 -1
     * @param itemName
     * @param templateExportType
     * @return
     */
    public static String setP3p7p3CarName(String itemName, String templateExportType) {

        //百色
        String str2 = FinalY23BsUtils.setP3p7p3CarName(itemName, templateExportType);
        if(StringUtils.isNotBlank(str2)) {
            return str2;
        }

        String str3 = FinalY23PnUtils.setP3p7p3CarName(itemName, templateExportType);
        if("-1".equals(str3)) {
            return "-1";
        } else if(StringUtils.isNotBlank(str3)) {
            return str3;
        }

        //桂平
        String str4 = FinalY23GpUtils.setP3p7p3CarName(itemName, templateExportType);
        if(StringUtils.isNotBlank(str4)) {
            return str4;
        }
        //田东
        String str7 = FinalY23BsUtils.setP3p7p3CarName(itemName, templateExportType);
        if(StringUtils.isNotBlank(str7)) {
            return str7;
        }

        return itemName;
    }


}
