From 6c5b2057a7b417e8d6d5ec23e6f33a9b2cf9e7f7 Mon Sep 17 00:00:00 2001 From: yuance <182865460@qq.com> Date: Mon, 12 Jan 2026 18:17:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=A1=E8=AE=A1=E5=86=85?= =?UTF-8?q?=E5=AE=B92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuditContent2StrategyConstants.java | 45 +++++-- .../AuditContent2StrategyServiceImpl.java | 127 +++++------------- 2 files changed, 68 insertions(+), 104 deletions(-) diff --git a/src/main/java/com/gxwebsoft/ai/constants/AuditContent2StrategyConstants.java b/src/main/java/com/gxwebsoft/ai/constants/AuditContent2StrategyConstants.java index f3dd41c..9780a2c 100644 --- a/src/main/java/com/gxwebsoft/ai/constants/AuditContent2StrategyConstants.java +++ b/src/main/java/com/gxwebsoft/ai/constants/AuditContent2StrategyConstants.java @@ -1,9 +1,6 @@ package com.gxwebsoft.ai.constants; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 审计内容2-单位发展战略执行常量类 @@ -52,7 +49,22 @@ public class AuditContent2StrategyConstants { CATEGORY_DEVELOPMENT_CONCEPT.put(CATEGORY_PERFORMANCE_ASSESSMENT, "创新"); } - // 完整的审计框架(原Excel内容)- 保持不变 + // 分类查询关键词 + public static final Map> CATEGORY_QUERIES = new HashMap<>(); + static { + CATEGORY_QUERIES.put(CATEGORY_GOVERNANCE_REFORM, + Arrays.asList("法人治理 薪酬改革 国有资产管理", "改革创新 治理结构 董事会")); + CATEGORY_QUERIES.put(CATEGORY_DEVELOPMENT_STRATEGY, + Arrays.asList("混合所有制 剥离办社会职能 改革措施", "协调发展 改革方案 政策落实")); + CATEGORY_QUERIES.put(CATEGORY_RISK_PREVENTION, + Arrays.asList("发展规划 金融风险 债务风险", "绿色发展 风险防控 资产负债率")); + CATEGORY_QUERIES.put(CATEGORY_SOCIAL_ENVIRONMENTAL, + Arrays.asList("精准扶贫 污染防治 环境保护", "开放共享 社会责任 定点扶贫")); + CATEGORY_QUERIES.put(CATEGORY_PERFORMANCE_ASSESSMENT, + Arrays.asList("考核指标 经营业绩 目标责任", "创新发展 数据核实 完成情况")); + } + + // 完整的审计框架(原Excel内容) public static final String AUDIT_FRAMEWORK = "审计内容框架:\n" + "1. 公司法人治理结构建立健全情况。是否贯彻落实将党组织研究讨论作为董事会、经理层决策重大问题前置程序的要求;是否加强董事会建设、有效落实董事会职权;各治理主体是否职责明确、落实到位。\n" + @@ -69,44 +81,39 @@ public class AuditContent2StrategyConstants { "12. 对照国资委、财政部、工业和信息化部等与企业签订的年度经营业绩责任书、任期经营业绩责任书、中央单位定点扶贫工作责任书等,梳理企业承担的考核内容和指标。\n" + "13. 对于可以量化的审计事项,利用大数据分析方法,系统收集和整理各类考核指标信息,建立企业考核指标数据库,对照企业提供的财务或相关统计报表,检查企业完成情况。检查相关指标的原始数据、计算方法、计算过程,核实其真实性和准确性,对于依靠人工填报、设置调整系数、与以往年度相差较大或与考核值相差较小的数据,重点审计真实性、完整性、准确性。\n"; - // 审计目标说明 - 优化版,突出五大发展理念 + // 审计目标说明 public static final String AUDIT_OBJECTIVE = "审计目标:检查被审计领导干部任职期间在" + "创新、协调、绿色、开放、共享五大发展理念指引下," + "合法合规制定本部门发展规划和发展思路," + "推动规划和政策措施实施的时间表、路线图及其执行效果。"; - // 分类与审计框架片段的映射(重新调整,更加均衡) + // 分类与审计框架片段的映射 public static final Map CATEGORY_AUDIT_FRAMEWORK_FRAGMENTS = new HashMap<>(); static { - // 法人治理与改革创新 - 对应框架的1-3点(创新理念) CATEGORY_AUDIT_FRAMEWORK_FRAGMENTS.put(CATEGORY_GOVERNANCE_REFORM, "审计内容框架(法人治理与改革创新相关):\n" + "1. 公司法人治理结构建立健全情况。是否贯彻落实将党组织研究讨论作为董事会、经理层决策重大问题前置程序的要求;是否加强董事会建设、有效落实董事会职权;各治理主体是否职责明确、落实到位。\n" + "2. 薪酬制度改革情况。薪酬分配差异化改革过程中是否存在进展不平衡、政策不配套、任务不协调等问题;有无超工资总额列支工资性支出;企业领导人员在核定的年度薪酬之外领取报酬,是否严格规范履职待遇、业务支出,有无将公款用于个人支出等问题。\n" + "3. 完善国有资产管理体制方面。有关部门是否建立健全监管权力清单和责任清单,是否存在越位、缺位、不到位等问题;国有资本投资、运营公司改革试点工作的情况,有无要求方案部署不够明确、资本授权及经营资质受限、相关企业未制定时间表路线图、未与兼并重组等改革试点任务协同推进、资本运营偏离改革方向、战略性前瞻性产业投资不增反降、党政机关和事业单位所属企业的国有资本纳入经营性国有资产集中统一监管体系推进迟缓、国有资本经营预算管理不到位等问题。\n"); - // 发展规划与协调推进 - 对应框架的4-6点(协调理念) CATEGORY_AUDIT_FRAMEWORK_FRAGMENTS.put(CATEGORY_DEVELOPMENT_STRATEGY, "审计内容框架(发展规划与协调推进相关):\n" + "4. 发展混合所有制经济方面。是否存在\"混而不改\",改革流于形式、效果不佳的问题;清产核资、评估定价、转让交易、登记确权等相关政策、审批和实施程序是否合法合规,在国有资产和产权转让过程中是否存在国有资产流失等问题;员工持股试点推进过程中存在的政策性障碍。此外,还要从国有企业改革工作总休上关注,混合所有制改革作为国有企业改革的重要突破口的作用发挥情况。\n" + "5. 剥离办社会职能和解决历史遗留问题方面。国有企业有无制定时间表路线图,是否按时限完成国有企业职工家属区\"三供一业\"分离移交,剥离国有企业办医疗、教育等公共服务机构,对国有企业退休人员实行社会化管理,推进厂办大集体改革等问题,遇到什么困难、需要什么政策和多少资金支持,等等;相关部门的配套政策是否建立健全。\n" + "6. 国有企业改革措施是否制定?制定的措施是否符合党中央、国务院、省市的相关文件规定和精神。\n"); - // 风险防控与绿色发展 - 对应框架的7-9点(绿色理念) CATEGORY_AUDIT_FRAMEWORK_FRAGMENTS.put(CATEGORY_RISK_PREVENTION, "审计内容框架(风险防控与绿色发展相关):\n" + "7. 企业年度工作报告中关于改革措施的落实情况,进度是否符合预期,是否违反整体改革措施计划。规划执行情况材料是否合规、完整。企业境外资产、投资管理办法和内控制度,及企业向国资委等有关部门报送的境外资产产权登记情况和境外资产财务报表数据等,是否合规、完整、符合企业实际情况。企业制定的公司发展规划,包括总规划和专项规划(如主业、国际化、金融、财务、人力资源、建设、生产、营销、科技、信息化、安全应急、企业文化等),是否符合企业整体实际情况,是否符合党中央、国务院、省市的相关文件规定和精神。公司发展规划滚动调整情况是否符合实际情况,是否为了减轻企业目标故意调整。公司发展规划中提及的制定依据,是否符合国家有关部门制定的行业产业发展规划等。\n" + "8. 金融业务风险。关注金融业务服务实体经济和主业发展情况,有无脱实向虚、通过金融产品将资金违规投向房地产、地方政府融资平台、产能过剩等限制或禁止领域的问题;关注企业开展境外金融衍生品情况,有无违规开展业务造成重大损失或损失风险等;关注银行、证券、保险、信托等金融子企业的资产管理规模及经营情况,风险管控机制是否健全,业务运营是否合规,有无信贷资金、金融资产造成重大损失的问题,有无金融产品逾期或违规展期、不良资产比率较高、风险与收益不匹配、本金偿付风险或违约风险大等问题;关注企业债券发行、委托理财、对外担保等金融业务开展中存在的突出问题,是否造成重大损失或损失风险等。\n" + "9. 债务风险。关注企业落实降杠杆减负债政策情况,是否存在企业资产负债率居高不下、超过警戒线或管控线甚至资不抵债,有无建立健全企业债务风险防控机制,发挥资产负债约束机制作用,债务结构是否合理,有无违规对不符合国家产业政策的企业实施债转股,有无违规通过\"名股实债\"等方式变相举债或形成重大隐性债务,以及虚假去杠杆等问题。\n"); - // 社会责任与开放共享 - 对应框架的10-11点(开放共享理念) CATEGORY_AUDIT_FRAMEWORK_FRAGMENTS.put(CATEGORY_SOCIAL_ENVIRONMENTAL, "审计内容框架(社会责任与开放共享相关):\n" + "10. 精准扶贫政策落实情况。关注企业在精准扶贫相关政策落实、项目安排、资金使用等方面的推进情况,是否落实企业定点扶贫工作的任务要求,有无出台具体帮扶措施,履行帮扶责任定点扶贫的目标对象、工作举措、资金使用等是否精准;有无通过发展产业、对接市场、安置就业等多种方式开展精准扶贫行动;以中央企业贫困地区产业投资基金、贫困地区产业发展基金等为代表的央企产业扶贫基金出资额是否及时足额缴纳、有无大量资金闲置和项目运营效果不佳等问题。\n" + "11. 污染防治工作推进情况。企业贯彻落实生态环境保护和环境污染防治相关政策措施情况,重点是打蹴蓝天保卫战、打好碧水保卫战和推进净土保卫战等相关措施的落实情况。是否存在非法占地、违规改变土地使用条件、倒卖土地、土地闲置的问题;企业是否完成国家节能减排任务目标,有无不顾生态环境盲目决策和建设项目,造成重大环境污染和资源损毁等问题;有无违规偷排、漏排、超排废渣废液废气,瞒报、漏报检测数据,有无违规堆放、未按规定处理工业危险废弃物、危险化学品等问题;对所属企业发生的破坏生态环境情况,是否存在追责问责不到位等问题。企业是否建立能源消耗及污染物排放统计台账;是否按时定期将本企业节能减排汇总报表和总结分析报告报送有关部门,有无漏报、迟报、不按要求报送;重点类、关注类企业是否在总结分析报告中开展与同行业节能减排技术指标的对标和分析。\n"); - // 绩效考核与创新发展 - 对应框架的12-13点(创新理念) CATEGORY_AUDIT_FRAMEWORK_FRAGMENTS.put(CATEGORY_PERFORMANCE_ASSESSMENT, "审计内容框架(绩效考核与创新发展相关):\n" + "12. 对照国资委、财政部、工业和信息化部等与企业签订的年度经营业绩责任书、任期经营业绩责任书、中央单位定点扶贫工作责任书等,梳理企业承担的考核内容和指标。\n" + @@ -139,9 +146,12 @@ public class AuditContent2StrategyConstants { "3. 检查证据要真实具体,有文件依据\n" + "4. 测试结果判定要严格,有充分依据\n" + "5. 工作底稿索引要准确对应实际文件\n" + - "6. 注重评估五大发展理念贯彻情况"; + "6. 注重评估五大发展理念贯彻情况\n" + + "7. 必须深入分析实际执行情况(结果),重点检查:\n" + + " (1) 是否有会议纪要等材料证明决策按照党组织委员会→公司领导班子→董事会逐级落实;\n" + + " (2) 是否有相应材料对执行内容进行说明和证明,展示具体的执行过程和执行效果。"; - // 关键词权重 - 根据新分类优化 + // 关键词权重 public static final Map KEYWORD_WEIGHTS = new HashMap<>(); static { // 创新类关键词 @@ -174,4 +184,11 @@ public class AuditContent2StrategyConstants { KEYWORD_WEIGHTS.put("审计证据", 6); } + // 各知识源检索限制 + public static final Map SOURCE_LIMITS = new HashMap<>(); + static { + SOURCE_LIMITS.put("enterprise", 120); + SOURCE_LIMITS.put("regulation", 60); + SOURCE_LIMITS.put("auditCase", 40); + } } \ No newline at end of file diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent2StrategyServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent2StrategyServiceImpl.java index 50620de..82d3a96 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent2StrategyServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent2StrategyServiceImpl.java @@ -21,15 +21,6 @@ public class AuditContent2StrategyServiceImpl extends AbstractAuditContentServic // 工作流配置 private static final String DIFY_WORKFLOW_TOKEN = "Bearer app-3cPaXHIPFPS6lIfMGV67NOu0"; - // 分类定义 - 调整为5个分类 - private static final List CATEGORY_ORDER = Arrays.asList( - AuditContent2StrategyConstants.CATEGORY_GOVERNANCE_REFORM, - AuditContent2StrategyConstants.CATEGORY_DEVELOPMENT_STRATEGY, - AuditContent2StrategyConstants.CATEGORY_RISK_PREVENTION, - AuditContent2StrategyConstants.CATEGORY_SOCIAL_ENVIRONMENTAL, - AuditContent2StrategyConstants.CATEGORY_PERFORMANCE_ASSESSMENT - ); - @Override public JSONObject generateStrategyAuditTableData(String kbIds, String libraryKbIds, String projectLibrary, String userName, String history, String suggestion) { @@ -41,7 +32,7 @@ public class AuditContent2StrategyServiceImpl extends AbstractAuditContentServic try { // 异步并行处理每个分类 Map> futures = processCategoriesAsync( - CATEGORY_ORDER, + AuditContent2StrategyConstants.CATEGORY_ORDER, category -> generateCategoryDataAsync(category, kbIds, libraryKbIds, projectLibrary, userName, history, suggestion) ); @@ -49,7 +40,7 @@ public class AuditContent2StrategyServiceImpl extends AbstractAuditContentServic CompletableFuture.allOf(futures.values().toArray(new CompletableFuture[0])).join(); // 合并所有分类的结果 - JSONArray allData = mergeCategoryResults(CATEGORY_ORDER, futures); + JSONArray allData = mergeCategoryResults(AuditContent2StrategyConstants.CATEGORY_ORDER, futures); log.info("单位发展战略执行审计表生成成功 - 记录数: {}, 处理时间: {}ms", allData.size(), (System.currentTimeMillis() - startTime)); @@ -104,8 +95,10 @@ public class AuditContent2StrategyServiceImpl extends AbstractAuditContentServic knowledgeSources.put("regulation", new ArrayList<>()); knowledgeSources.put("auditCase", new ArrayList<>()); - // 构建当前分类的查询词 - List categoryQueries = buildCategoryQueries(category); + // 从常量类获取当前分类的查询词 + List categoryQueries = AuditContent2StrategyConstants.CATEGORY_QUERIES.getOrDefault( + category, Arrays.asList(category + " 审计 检查") + ); // 企业单位库检索 - 这是主要考察内容 if (StrUtil.isNotBlank(kbIds)) { @@ -113,7 +106,7 @@ public class AuditContent2StrategyServiceImpl extends AbstractAuditContentServic .map(String::trim) .filter(StrUtil::isNotBlank) .forEach(kbId -> knowledgeSources.get("enterprise") - .addAll(queryKnowledgeBase(kbId, categoryQueries, 150))); // 增加检索数量 + .addAll(queryKnowledgeBase(kbId, categoryQueries, 150))); } // 公共法律法规库检索 @@ -135,8 +128,7 @@ public class AuditContent2StrategyServiceImpl extends AbstractAuditContentServic knowledgeSources.forEach((key, list) -> { List processed = list.stream() .distinct() - .sorted(this::strategyAuditComparator) - .limit(getLimitBySourceType(key)) + .limit(AuditContent2StrategyConstants.SOURCE_LIMITS.getOrDefault(key, 50)) .collect(Collectors.toList()); knowledgeSources.put(key, processed); }); @@ -150,26 +142,6 @@ public class AuditContent2StrategyServiceImpl extends AbstractAuditContentServic return knowledgeSources; } - /** - * 构建分类特定的查询词 - */ - private List buildCategoryQueries(String category) { - switch (category) { - case AuditContent2StrategyConstants.CATEGORY_GOVERNANCE_REFORM: - return Arrays.asList("法人治理 薪酬改革 国有资产管理", "改革创新 治理结构 董事会"); - case AuditContent2StrategyConstants.CATEGORY_DEVELOPMENT_STRATEGY: - return Arrays.asList("混合所有制 剥离办社会职能 改革措施", "协调发展 改革方案 政策落实"); - case AuditContent2StrategyConstants.CATEGORY_RISK_PREVENTION: - return Arrays.asList("发展规划 金融风险 债务风险", "绿色发展 风险防控 资产负债率"); - case AuditContent2StrategyConstants.CATEGORY_SOCIAL_ENVIRONMENTAL: - return Arrays.asList("精准扶贫 污染防治 环境保护", "开放共享 社会责任 定点扶贫"); - case AuditContent2StrategyConstants.CATEGORY_PERFORMANCE_ASSESSMENT: - return Arrays.asList("考核指标 经营业绩 目标责任", "创新发展 数据核实 完成情况"); - default: - return Arrays.asList(category + " 审计 检查"); - } - } - /** * 构建完整的知识上下文 */ @@ -179,47 +151,59 @@ public class AuditContent2StrategyServiceImpl extends AbstractAuditContentServic // 1. 核心审计任务 context.append("## 核心审计任务\n"); - context.append("为以下审计分类生成具体的审计表内容:\n"); - context.append("分类:").append(category).append("\n"); - context.append("描述:").append(AuditContent2StrategyConstants.CATEGORY_DESCRIPTIONS.get(category)).append("\n"); + context.append(AuditContent2StrategyConstants.AUDIT_OBJECTIVE).append("\n\n"); + context.append("本次重点审计分类:").append(category).append("\n"); + context.append("对应发展理念:").append(AuditContent2StrategyConstants.CATEGORY_DEVELOPMENT_CONCEPT.get(category)).append("\n"); + context.append("分类描述:").append(AuditContent2StrategyConstants.CATEGORY_DESCRIPTIONS.get(category)).append("\n"); context.append("审计重点:").append(AuditContent2StrategyConstants.getBriefAuditFrameworkForCategory(category)).append("\n\n"); - // 2. 审计框架(只传入当前分类相关的部分) - context.append("## 审计框架(审计规则)\n"); - context.append("以下审计框架定义了审计范围和要点,请基于此框架开展工作:\n"); + // 2. 执行结果分析要求 + context.append("## 执行结果分析要求(必须遵循)\n"); + context.append("**必须深入分析实际执行结果,重点关注贯彻落实的证据:**\n"); + context.append("**检查要求(满足以下任一条件即可):**\n"); + context.append("1. **会议纪要路径**:检查是否有会议纪要证明按照\"党组织委员会→公司领导班子→董事会\"逐级开会落实;\n"); + context.append(" *或者*\n"); + context.append("2. **其他落实证据**:检查是否有其他材料(签批文件、任务分解、执行报告等)证明相关审计内容已从上往下逐级贯彻落实。\n"); + context.append("\n"); + context.append("**在检查证据中必须明确指出:**\n"); + context.append("①是否存在有效的贯彻落实证据(会议纪要或其他材料);\n"); + context.append("②执行过程是否有充分材料支撑;\n"); + context.append("③执行结果是否达到预期。\n\n"); - // 获取当前分类相关的审计框架片段 + // 3. 审计框架 + context.append("## 审计框架(审计规则)\n"); String categoryFramework = AuditContent2StrategyConstants.CATEGORY_AUDIT_FRAMEWORK_FRAGMENTS.get(category); if (categoryFramework != null) { context.append(categoryFramework).append("\n"); } else { - // 如果找不到对应分类,则使用完整的框架(保底) - log.warn("未找到分类 {} 对应的审计框架片段,使用完整框架", category); context.append(AuditContent2StrategyConstants.AUDIT_FRAMEWORK).append("\n"); } - // 3. 企业单位知识(主要考察内容) + // 4. 企业单位知识(主要考察内容) if (!knowledgeSources.get("enterprise").isEmpty()) { context.append("## 企业单位知识(具体考察内容)\n"); - context.append("以下是企业单位的实际资料,请基于审计框架,结合这些具体内容生成审计记录:\n\n"); + context.append("基于审计框架,结合以下企业实际资料生成审计记录:\n\n"); knowledgeSources.get("enterprise").forEach(knowledge -> context.append("• ").append(knowledge).append("\n")); context.append("\n"); + } else { + context.append("## 企业单位知识\n"); + context.append("未检索到相关企业资料,请基于审计框架生成审计内容。\n\n"); } - // 4. 审计工作原则 + // 5. 审计工作原则 context.append("## 审计工作原则\n"); context.append(AuditContent2StrategyConstants.AUDIT_PRINCIPLES).append("\n\n"); - // 5. 数据格式要求(精简版) + // 6. 数据格式要求 context.append("## 数据格式要求\n"); context.append("生成JSON数组,每个元素包含4个字段:\n"); context.append("1. auditContent: 具体审计内容(基于框架,结合企业实际)\n"); - context.append("2. checkEvidence: 检查证据(引用企业具体文件)\n"); + context.append("2. checkEvidence: 检查证据(引用企业具体文件,必须包含执行结果分析)\n"); context.append("3. testResult: 测试结果(通过/不通过)(基于充分证据严格判断)\n"); context.append("4. workPaperIndex: 工作底稿索引(具体文件FileId)\n\n"); - // 6. 法规和案例参考 + // 7. 法规和案例参考(如果有) if (!knowledgeSources.get("regulation").isEmpty()) { context.append("## 法律法规参考\n"); knowledgeSources.get("regulation").forEach(knowledge -> @@ -234,13 +218,13 @@ public class AuditContent2StrategyServiceImpl extends AbstractAuditContentServic context.append("\n"); } - // 7. 历史内容(如果有) + // 8. 历史内容(如果有) if (StrUtil.isNotBlank(history)) { context.append("## 历史生成内容\n"); context.append(history).append("\n\n"); } - // 8. 用户建议(如果有) + // 9. 用户建议(如果有) if (StrUtil.isNotBlank(suggestion)) { context.append("## 用户建议\n"); context.append(suggestion).append("\n"); @@ -251,41 +235,4 @@ public class AuditContent2StrategyServiceImpl extends AbstractAuditContentServic return context.toString(); } - - /** - * 发展战略审计相关性比较器 - */ - private int strategyAuditComparator(String reg1, String reg2) { - int score1 = calculateStrategyAuditRelevanceScore(reg1); - int score2 = calculateStrategyAuditRelevanceScore(reg2); - return Integer.compare(score2, score1); - } - - /** - * 计算发展战略审计相关性分数 - */ - private int calculateStrategyAuditRelevanceScore(String content) { - return AuditContent2StrategyConstants.KEYWORD_WEIGHTS.entrySet().stream() - .filter(entry -> content.contains(entry.getKey())) - .mapToInt(Map.Entry::getValue) - .sum(); - } - - private int getLimitBySourceType(String sourceType) { - switch (sourceType) { - case "enterprise": return 120; // 增加企业知识数量 - case "regulation": return 60; // 减少法规数量 - case "auditCase": return 40; // 减少案例数量 - default: return 50; - } - } - - /** - * 获取当前分类相关的审计框架内容 - * 这是一个辅助方法,方便其他地方调用 - */ - private String getAuditFrameworkForCategory(String category) { - String framework = AuditContent2StrategyConstants.CATEGORY_AUDIT_FRAMEWORK_FRAGMENTS.get(category); - return framework != null ? framework : AuditContent2StrategyConstants.AUDIT_FRAMEWORK; - } } \ No newline at end of file