package com.gxwebsoft.ai.util;

import java.util.List;

import com.gxwebsoft.ai.dto.AuditReportRequest;

public class AuditReportUtil {

    public static String generateReportContent(AuditReportRequest request) {
        // 创建模板字符串
        String template = 
            "#   \n" + request.getFrom00() + "\n\n" + 
            "##  一、审计依据\n" + request.getFrom10() + "\n\n" +
            "##  二、审计目标\n" + request.getFrom20() + "\n\n" +
            "##  三、审计对象和范围\n" + request.getFrom30() + "\n\n" +
            "##  四、被审计单位基本情况\n" +
            "### （一）单位概况\n" + request.getFrom41() + "\n" +
            "### （二）机构和人员相关情况\n" + request.getFrom42() + "\n" +
            "### （三）财务会计、重大会计政策选用及变动情况\n" + request.getFrom43() + "\n" + listToString(request.getFrom44()) + "\n" +
            "### （五）相关内部控制\n" + request.getFrom45() + "\n\n" +
            "##  五、审计内容和重点及审计方法\n" +
            "### （一）贯彻执行党和国家有关经济方针和上级决策部署情况\n" + request.getFrom51() + "\n" +
            "### （二）公司发展战略规划的制定、执行和效果情况以及年度责任目标完成情况\n" + request.getFrom52() + "\n" +
            "### （三）重大经济事项的决策、执行和效果情况\n" + request.getFrom53() + "\n" +
            "### （四）公司法人治理结构的建立、健全和运行情况，内部控制制度的制定和执行情况\n" + request.getFrom54() + "\n" +
            "### （五）公司财务的真实合法效益情况，风险管控情况，境外资产管理情况\n" + request.getFrom55() + "\n" +
            "### （六）在经济活动中落实有关党风廉政建设责任和遵守廉洁从业规定情况\n" + request.getFrom56() + "\n" +
            "### （七）对以往审计中发现问题的整改情况\n" + request.getFrom57() + "\n" +
            "### （八）其他需要审计的事项\n" + request.getFrom58() + "\n\n" +
            "##  六、重要风险的识别及应对\n" +
            "### （一）重要风险的识别\n" + request.getFrom61() + "\n" +
            "### （二）风险的应对策略\n" + request.getFrom62() + "\n\n" +
            "##  七、审计技术方法\n" + request.getFrom70() + "\n\n" +
            "##  八、工作步骤与时间安排\n" + request.getFrom80() + "\n\n" +
            "##  九、审计工作的组织实施\n" + request.getFrom90();
        
        return template;
    }
    
    private static String listToString(List<String> list) {
        if (list == null || list.isEmpty()) {
            return "";
        }
        
        StringBuilder sb = new StringBuilder();
        for (String item : list) {
            sb.append(item).append("\n");
        }
        return sb.toString();
    }
    
    public static String generateReportContentByFormCommit(AuditReportRequest request) {
    	int formCommit = (request.getFormCommit() >= 10) ? request.getFormCommit() / 10 : request.getFormCommit();
        // 创建模板字符串
        String template = "";
    	if(formCommit == 5) {
            template = 
                "##  四、被审计单位基本情况\n" +
                "### （一）单位概况\n" + request.getFrom41() + "\n" +
                "### （二）机构和人员相关情况\n" + request.getFrom42() + "\n" +
                "### （三）财务会计、重大会计政策选用及变动情况\n" + request.getFrom43() + "\n" + listToString(request.getFrom44()) + "\n" +
                "### （五）相关内部控制\n" + request.getFrom45() + "\n\n" +
                "##  五、审计内容和重点及审计方法\n" +
                "### （一）贯彻执行党和国家有关经济方针和上级决策部署情况\n" + request.getFrom51() + "\n" +
                "### （二）公司发展战略规划的制定、执行和效果情况以及年度责任目标完成情况\n" + request.getFrom52() + "\n" +
                "### （三）重大经济事项的决策、执行和效果情况\n" + request.getFrom53() + "\n" +
                "### （四）公司法人治理结构的建立、健全和运行情况，内部控制制度的制定和执行情况\n" + request.getFrom54() + "\n" +
                "### （五）公司财务的真实合法效益情况，风险管控情况，境外资产管理情况\n" + request.getFrom55() + "\n" +
                "### （六）在经济活动中落实有关党风廉政建设责任和遵守廉洁从业规定情况\n" + request.getFrom56() + "\n" +
                "### （七）对以往审计中发现问题的整改情况\n" + request.getFrom57() + "\n" +
                "### （八）其他需要审计的事项\n" + request.getFrom58() + "\n\n";
    	}else if(formCommit == 6) {
            template = 
                "##  五、审计内容和重点及审计方法\n" +
                "### （一）贯彻执行党和国家有关经济方针和上级决策部署情况\n" + request.getFrom51() + "\n" +
                "### （二）公司发展战略规划的制定、执行和效果情况以及年度责任目标完成情况\n" + request.getFrom52() + "\n" +
                "### （三）重大经济事项的决策、执行和效果情况\n" + request.getFrom53() + "\n" +
                "### （四）公司法人治理结构的建立、健全和运行情况，内部控制制度的制定和执行情况\n" + request.getFrom54() + "\n" +
                "### （五）公司财务的真实合法效益情况，风险管控情况，境外资产管理情况\n" + request.getFrom55() + "\n" +
                "### （六）在经济活动中落实有关党风廉政建设责任和遵守廉洁从业规定情况\n" + request.getFrom56() + "\n" +
                "### （七）对以往审计中发现问题的整改情况\n" + request.getFrom57() + "\n" +
                "### （八）其他需要审计的事项\n" + request.getFrom58() + "\n\n" +
                "##  六、重要风险的识别及应对\n" +
                "### （一）重要风险的识别\n" + request.getFrom61() + "\n" +
                "### （二）风险的应对策略\n" + request.getFrom62() + "\n\n";
    	}else {
    		template = request.getHistory();
    	}
        return template.replaceAll("#", "");
    }
}
