package com.gxwebsoft.ai.constants;

import java.util.*;

/**
 * 审计内容5-预算执行情况审计常量类
 * 审计目标：检查预算执行的进度、合规性、效果，分析预算执行偏差原因，评估预算执行效益
 */
public class AuditContent5BudgetExecutionConstants {
    
    // 分类定义
    public static final String CATEGORY_BUDGET_EXECUTION = "预算执行情况审计";
    
    // 审计框架核心
    public static final String AUDIT_FRAMEWORK = 
        "**审计核心：**\n" +
        "预算执行情况审计。包括预算执行进度、执行合规性、执行效果评估、预算执行偏差分析、\n" +
        "资金到位情况、项目执行进度、预算执行率、资金使用效益、执行风险预警、整改措施落实等情况。\n\n" +
        
        "**重点关注：**\n" +
        "1. 预算执行率是否达到预期目标，是否存在执行进度滞后问题\n" +
        "2. 资金是否按时足额到位，是否存在资金沉淀或短缺问题\n" +
        "3. 预算执行是否合规，是否存在超预算、无预算执行问题\n" +
        "4. 项目执行进度是否符合计划，是否存在项目延期问题\n" +
        "5. 预算调整是否及时报批，是否存在擅自调整预算问题\n" +
        "6. 预算执行效益如何，是否达到预期经济效益和社会效益\n" +
        "7. 预算执行是否存在偏差，偏差原因是否合理\n" +
        "8. 预算执行监控是否到位，是否存在风险预警机制\n" +
        "9. 预算执行问题整改是否及时有效，整改措施是否落实\n" +
        "10. 预算执行信息公开是否及时准确，透明度如何\n" +
        "11. 预算执行考核评价机制是否健全，考核结果是否应用\n" +
        "12. 预算执行信息化水平如何，是否实现动态监控\n" +
        "13. 预算执行与决算衔接是否顺畅，数据是否一致\n" +
        "14. 预算执行对单位履职和事业发展的支撑作用如何\n" +
        "15. 预算执行中是否存在挤占挪用、虚列支出等问题\n" +
        "16. 预算执行与政府采购、资产管理等是否协调衔接\n\n" +
        
        "**审计方法及步骤：**\n" +
        "1. 预算执行进度审计：\n" +
        "   (1) 审阅被审计领导干部任职期间的预算执行进度报表、月度/季度/年度执行分析报告\n" +
        "   (2) 对比预算安排与实际执行数据，计算预算执行率、资金到位率等关键指标\n" +
        "   (3) 分析执行进度滞后项目的原因，检查是否存在客观障碍或主观问题\n" +
        "   (4) 检查预算执行台账是否完整，执行记录是否及时准确\n\n" +
        
        "2. 预算执行合规性审计：\n" +
        "   (1) 对比预算批复文件与会计账务处理，检查预算执行是否严格按照批复执行\n" +
        "   (2) 检查是否存在超预算执行、无预算执行、预算科目调剂等违规问题\n" +
        "   (3) 审查预算调整审批手续是否完备，是否存在擅自调整预算问题\n" +
        "   (4) 检查资金支付凭证是否合规，支付审批流程是否完整\n\n" +
        
        "3. 预算执行效果审计：\n" +
        "   (1) 对照项目可行性研究报告和评审报告，检查项目预期目标实现情况\n" +
        "   (2) 运用成本效益分析方法，评估预算资金使用效益\n" +
        "   (3) 实地查看项目实施情况，验证项目实际效果\n" +
        "   (4) 调查相关受益群体，了解项目社会效益和满意度\n\n" +
        
        "4. 预算执行偏差分析：\n" +
        "   (1) 分析预算执行偏差数据，找出偏差较大的项目和科目\n" +
        "   (2) 通过访谈、座谈等方式了解偏差产生的原因\n" +
        "   (3) 评估偏差是否合理，是否存在管理问题\n" +
        "   (4) 检查是否建立偏差分析机制和整改措施\n\n" +
        
        "5. 预算执行风险管理审计：\n" +
        "   (1) 检查是否建立预算执行风险预警机制\n" +
        "   (2) 评估风险预警指标是否科学合理\n" +
        "   (3) 检查风险预警响应和处置是否及时有效\n" +
        "   (4) 审查风险防范措施是否落实到位\n\n" +
        
        "6. 预算执行整改审计：\n" +
        "   (1) 检查以往审计发现问题的整改情况\n" +
        "   (2) 评估整改措施的有效性和落实情况\n" +
        "   (3) 检查是否存在屡审屡犯问题\n" +
        "   (4) 评估整改长效机制建设情况\n\n" +
        
        "7. 预算执行信息化审计：\n" +
        "   (1) 检查预算执行信息系统建设情况\n" +
        "   (2) 评估系统功能是否满足预算执行监控需求\n" +
        "   (3) 检查系统数据是否准确完整\n" +
        "   (4) 评估信息化对预算执行管理的支撑作用";
    
    // 审计目标
    public static final String AUDIT_OBJECTIVE = 
        "全面检查预算执行全过程，包括执行进度、执行合规性、执行效果、执行偏差分析、\n" +
        "风险管理、整改落实等，确保预算资金规范高效使用，提高预算执行质量和效益。";
    
    // 审计工作原则
    public static final String AUDIT_PRINCIPLES = 
        "审计工作原则：\n" +
        "1. 以《预算法》、《预算法实施条例》及相关财政法规为依据\n" +
        "2. 全面覆盖预算执行的所有环节和方面\n" +
        "3. 重点关注预算执行率、资金到位率等关键指标\n" +
        "4. 检查预算执行合规性和规范性\n" +
        "5. 评估预算执行效果和效益\n" +
        "6. 分析预算执行偏差原因\n" +
        "7. 关注预算执行风险防控\n" +
        "8. 检查审计问题整改情况\n" +
        "9. 促进预算执行管理完善\n" +
        "10. 提高财政资金使用效益";
    
    // 关键词权重
    public static final Map<String, Integer> KEYWORD_WEIGHTS = new HashMap<>();
    static {
        // 预算执行核心概念
        KEYWORD_WEIGHTS.put("预算执行", 10);
        KEYWORD_WEIGHTS.put("执行进度", 9);
        KEYWORD_WEIGHTS.put("执行率", 10);
        KEYWORD_WEIGHTS.put("资金到位", 9);
        KEYWORD_WEIGHTS.put("执行合规", 8);
        
        // 预算执行指标
        KEYWORD_WEIGHTS.put("执行偏差", 8);
        KEYWORD_WEIGHTS.put("预算调整", 7);
        KEYWORD_WEIGHTS.put("超预算", 8);
        KEYWORD_WEIGHTS.put("无预算", 8);
        KEYWORD_WEIGHTS.put("科目调剂", 7);
        
        // 执行效果和效益
        KEYWORD_WEIGHTS.put("执行效果", 8);
        KEYWORD_WEIGHTS.put("资金效益", 8);
        KEYWORD_WEIGHTS.put("成本效益", 7);
        KEYWORD_WEIGHTS.put("社会效益", 7);
        KEYWORD_WEIGHTS.put("经济效益", 7);
        
        // 执行风险管理
        KEYWORD_WEIGHTS.put("风险预警", 7);
        KEYWORD_WEIGHTS.put("执行风险", 7);
        KEYWORD_WEIGHTS.put("风险防控", 6);
        KEYWORD_WEIGHTS.put("预警机制", 6);
        
        // 执行监控和整改
        KEYWORD_WEIGHTS.put("执行监控", 7);
        KEYWORD_WEIGHTS.put("动态监控", 6);
        KEYWORD_WEIGHTS.put("整改措施", 7);
        KEYWORD_WEIGHTS.put("整改落实", 7);
        KEYWORD_WEIGHTS.put("屡审屡犯", 6);
        
        // 文件类型
        KEYWORD_WEIGHTS.put("执行报表", 8);
        KEYWORD_WEIGHTS.put("进度报表", 8);
        KEYWORD_WEIGHTS.put("执行分析", 7);
        KEYWORD_WEIGHTS.put("执行报告", 7);
        KEYWORD_WEIGHTS.put("支付凭证", 7);
        KEYWORD_WEIGHTS.put("拨款凭证", 7);
    }
    
    // 审计要点提示
    public static final String AUDIT_KEY_POINTS = 
        "**审计要点：**\n" +
        "1. 检查预算执行率是否达到预期目标，分析执行进度滞后原因\n" +
        "2. 核实资金是否按时足额到位，是否存在资金沉淀问题\n" +
        "3. 审查预算执行是否合规，是否存在超预算、无预算执行\n" +
        "4. 检查项目执行进度是否符合计划，是否存在项目延期\n" +
        "5. 评估预算调整审批是否及时合规\n" +
        "6. 分析预算执行偏差原因是否合理\n" +
        "7. 评估预算执行效益是否达到预期目标\n" +
        "8. 检查预算执行风险预警机制是否健全\n" +
        "9. 审查审计问题整改是否及时有效\n" +
        "10. 评估预算执行信息化水平\n" +
        "11. 检查预算执行信息公开情况\n" +
        "12. 评估预算执行考核评价机制\n" +
        "13. 检查预算执行与决算衔接情况\n" +
        "14. 分析预算执行对单位发展的支撑作用\n" +
        "15. 检查是否存在挤占挪用、虚列支出问题\n" +
        "16. 评估预算执行管理完善程度";
    
    // 数据格式要求
    public static final String OUTPUT_FORMAT = 
        "**输出格式（JSON数组）：**\n" +
        "[\n" +
        "  {\n" +
        "    \"index\": 序号,\n" +
        "    \"project\": \"项目名称\",\n" +
        "    \"lastYearCarryOver\": \"上年结转\",\n" +
        "    \"currentYearBudgetTotal\": \"本年预算小计\",\n" +
        "    \"initialApprovedBudget\": \"年初批复预算数\",\n" +
        "    \"additionalBudgetAmount\": \"追加预算数\",\n" +
        "    \"actualAppropriation\": \"实际拨款数\",\n" +
        "    \"indicatorBalance\": \"指标结余\",\n" +
//        "    \"workPaperIndex\": [\"实际存在的完整FileId1\", \"实际存在的完整FileId2\", ...]\n" +
        "    \"workPaperIndex\": [\"实际存在的完整文件名1||FileUrl1\", \"实际存在的完整文件名2||FileUrl2\", ...]\n" +
        "  }\n" +
        "]\n\n" +
        "**重要说明：**\n" +
        "1. 每个审计记录对应一个具体的预算项目或执行事项\n" +
        "2. 尽可能全面识别所有预算执行项目和环节\n" +
        "3. 金额字段应填写具体数值，如\"1,000,000.00\"\n" +
        "4. 百分比字段应填写具体百分比，如\"85.50%\"\n" +
        "5. workPaperIndex必须填写实际查阅的文件名称\n" +
        "6. 对于无数据的字段，可填写\"-\"或留空\n" +
        "7. 尽可能多地生成审计记录，覆盖所有预算执行方面\n" +
        "8. 重点关注预算执行率低于80%或高于120%的项目\n" +
        "9. 深入分析预算执行偏差的根本原因";
    
    // 审计证据要求
    public static final String AUDIT_EVIDENCE_REQUIREMENTS = 
        "**审计证据要求：**\n" +
        "1. 预算执行相关文件：预算执行进度报表、月度/季度/年度执行分析报告\n" +
        "2. 资金拨付文件：拨款凭证、银行回单、付款审批单\n" +
        "3. 预算调整文件：预算调整审批文件、追加预算审批单\n" +
        "4. 项目执行文件：项目进度报告、项目验收报告、项目结算资料\n" +
        "5. 财务核算文件：会计账簿、会计凭证、银行对账单\n" +
        "6. 执行监控文件：预算执行台账、执行监控记录、风险预警记录\n" +
        "7. 整改落实文件：审计问题整改报告、整改措施落实证明\n" +
        "8. 考核评价文件：预算执行考核方案、考核结果、奖惩记录\n" +
        "9. 信息系统文件：预算执行系统截图、数据导出报表\n" +
        "10. 现场核实资料：实地查看记录、座谈记录、调查问卷";
    
    // 字段映射（用于前端展示）
    public static final Map<String, String> FIELD_DISPLAY_NAMES = new HashMap<>();
    static {
        FIELD_DISPLAY_NAMES.put("index", "序号");
        FIELD_DISPLAY_NAMES.put("project", "项目名称");
        FIELD_DISPLAY_NAMES.put("lastYearCarryOver", "上年结转");
        FIELD_DISPLAY_NAMES.put("currentYearBudgetTotal", "本年预算小计");
        FIELD_DISPLAY_NAMES.put("initialApprovedBudget", "年初批复预算数");
        FIELD_DISPLAY_NAMES.put("additionalBudgetAmount", "追加预算数");
        FIELD_DISPLAY_NAMES.put("actualAppropriation", "实际拨款数");
        FIELD_DISPLAY_NAMES.put("indicatorBalance", "指标结余");
        FIELD_DISPLAY_NAMES.put("workPaperIndex", "工作底稿索引");
    }
    
    // 获取分类的简要审计框架概述
    public static String getBriefAuditFrameworkForCategory(String category) {
        if (CATEGORY_BUDGET_EXECUTION.equals(category)) {
            return "全面审计预算执行全过程，包括执行进度、合规性、效果、偏差分析、风险管理、整改落实等情况";
        }
        return "全面审计预算执行情况";
    }
    
    // 审计项目类型（常见预算执行项目）
    public static final List<String> AUDIT_PROJECT_TYPES = Arrays.asList(
        "基本支出-人员经费执行",
        "基本支出-公用经费执行",
        "项目支出-专项业务费执行",
        "项目支出-设备购置费执行",
        "项目支出-大型修缮费执行",
        "项目支出-信息网络购建费执行",
        "项目支出-基础设施建设费执行",
        "项目支出-会议费执行",
        "项目支出-培训费执行",
        "项目支出-差旅费执行",
        "项目支出-劳务费执行",
        "项目支出-咨询费执行",
        "项目支出-委托业务费执行",
        "政府采购项目执行",
        "科研项目经费执行",
        "基建项目资金执行",
        "信息化项目执行",
        "培训项目执行",
        "会议项目执行",
        "差旅费执行",
        "办公设备购置执行",
        "车辆运行维护费执行",
        "物业管理费执行",
        "租赁费执行",
        "维修维护费执行",
        "专用材料费执行",
        "其他商品和服务支出执行"
    );
}