diff --git a/src/main/java/com/gxwebsoft/ai/constants/AuditContent10PartyConductConstants.java b/src/main/java/com/gxwebsoft/ai/constants/AuditContent10PartyConductConstants.java index c0a82f8..a558775 100644 --- a/src/main/java/com/gxwebsoft/ai/constants/AuditContent10PartyConductConstants.java +++ b/src/main/java/com/gxwebsoft/ai/constants/AuditContent10PartyConductConstants.java @@ -192,7 +192,8 @@ public class AuditContent10PartyConductConstants { obj.put("detailCategory", detailCategory); obj.put("content", content); obj.put("executionStatus", ""); - obj.put("workPaperIndex", "[\"实际存在的完整文件名1\", \"实际存在的完整文件名2\", \"...\"]"); +// obj.put("workPaperIndex", "[\"实际存在的完整文件名1\", \"实际存在的完整文件名2\", \"...\"]"); + obj.put("workPaperIndex", "[\"实际存在的完整FileId1\", \"实际存在的完整FileId2\", \"...\"]"); FIXED_ORDER_EXAMPLE_DATA.add(obj); } diff --git a/src/main/java/com/gxwebsoft/ai/constants/AuditContent1ExpenseConstants.java b/src/main/java/com/gxwebsoft/ai/constants/AuditContent1ExpenseConstants.java index c3c07d3..4c0ae9c 100644 --- a/src/main/java/com/gxwebsoft/ai/constants/AuditContent1ExpenseConstants.java +++ b/src/main/java/com/gxwebsoft/ai/constants/AuditContent1ExpenseConstants.java @@ -37,7 +37,7 @@ public class AuditContent1ExpenseConstants { "- budgetRatio:占年初预算比例(%)\n" + "- remark:备注信息\n" + "- dataSource:数据来源文件\n" + - "- workPaperIndex:相关文件索引"; + "- workPaperIndex:[相关文件FileId]"; // 关键词权重 public static final Map KEYWORD_WEIGHTS = new HashMap<>(); diff --git a/src/main/java/com/gxwebsoft/ai/constants/AuditContent1LeaderListConstants.java b/src/main/java/com/gxwebsoft/ai/constants/AuditContent1LeaderListConstants.java index 1d29132..88f94b4 100644 --- a/src/main/java/com/gxwebsoft/ai/constants/AuditContent1LeaderListConstants.java +++ b/src/main/java/com/gxwebsoft/ai/constants/AuditContent1LeaderListConstants.java @@ -32,7 +32,7 @@ public class AuditContent1LeaderListConstants { "- tenurePeriod:任职期间(格式:YYYY.MM-YYYY.MM)\n" + "- mainResponsibilities:主要工作责任\n" + "- remark:备注信息\n" + - "- workPaperIndex:相关文件索引"; + "- workPaperIndex:[相关文件FileId]"; // 关键词权重 public static final Map KEYWORD_WEIGHTS = new HashMap<>(); diff --git a/src/main/java/com/gxwebsoft/ai/constants/AuditContent4TargetConstants.java b/src/main/java/com/gxwebsoft/ai/constants/AuditContent4TargetConstants.java index 3e4a61f..5772e91 100644 --- a/src/main/java/com/gxwebsoft/ai/constants/AuditContent4TargetConstants.java +++ b/src/main/java/com/gxwebsoft/ai/constants/AuditContent4TargetConstants.java @@ -91,7 +91,7 @@ public class AuditContent4TargetConstants { "7. selfCompletion: 自定完成情况\n" + "8. selfReason: 自定未完成原因\n" + "9. remark: 备注\n" + - "10. workPaperIndex: 工作底稿索引"; + "10. workPaperIndex: [相关文件FileId]"; // 获取分类的简要审计框架概述 public static String getBriefAuditFrameworkForCategory(String category) { @@ -113,7 +113,7 @@ public class AuditContent4TargetConstants { FIELD_DISPLAY_NAMES.put("selfCompletion", "自定完成情况"); FIELD_DISPLAY_NAMES.put("selfReason", "自定未完成原因"); FIELD_DISPLAY_NAMES.put("remark", "备注"); - FIELD_DISPLAY_NAMES.put("workPaperIndex", "工作底稿索引"); + FIELD_DISPLAY_NAMES.put("workPaperIndex", "工作底稿索引FileId"); } // 审计证据要求 @@ -139,7 +139,7 @@ public class AuditContent4TargetConstants { " \"selfCompletion\": \"自定目标完成情况(已完成/部分完成/未完成)\",\n" + " \"selfReason\": \"自定目标未完成原因(如已完成,填'无未完成原因')\",\n" + " \"remark\": \"备注\",\n" + - " \"workPaperIndex\": [\"实际存在的完整文件名1\", \"实际存在的完整文件名2\", ...]\n" + + " \"workPaperIndex\": [\"实际存在的完整FileId1\", \"实际存在的完整FileId2\", ...]\n" + " }\n" + "]\n\n" + "重要说明:\n" + diff --git a/src/main/java/com/gxwebsoft/ai/constants/AuditContent5BudgetExecutionConstants.java b/src/main/java/com/gxwebsoft/ai/constants/AuditContent5BudgetExecutionConstants.java index 6723400..7daa1ef 100644 --- a/src/main/java/com/gxwebsoft/ai/constants/AuditContent5BudgetExecutionConstants.java +++ b/src/main/java/com/gxwebsoft/ai/constants/AuditContent5BudgetExecutionConstants.java @@ -176,7 +176,7 @@ public class AuditContent5BudgetExecutionConstants { " \"additionalBudgetAmount\": \"追加预算数\",\n" + " \"actualAppropriation\": \"实际拨款数\",\n" + " \"indicatorBalance\": \"指标结余\",\n" + - " \"workPaperIndex\": [\"实际存在的完整文件名1\", \"实际存在的完整文件名2\", ...]\n" + + " \"workPaperIndex\": [\"实际存在的完整FileId1\", \"实际存在的完整FileId2\", ...]\n" + " }\n" + "]\n\n" + "**重要说明:**\n" + @@ -215,7 +215,7 @@ public class AuditContent5BudgetExecutionConstants { FIELD_DISPLAY_NAMES.put("additionalBudgetAmount", "追加预算数"); FIELD_DISPLAY_NAMES.put("actualAppropriation", "实际拨款数"); FIELD_DISPLAY_NAMES.put("indicatorBalance", "指标结余"); - FIELD_DISPLAY_NAMES.put("workPaperIndex", "工作底稿索引"); + FIELD_DISPLAY_NAMES.put("workPaperIndex", "工作底稿索引FileId"); } // 获取分类的简要审计框架概述 diff --git a/src/main/java/com/gxwebsoft/ai/constants/AuditContent5BudgetManageConstants.java b/src/main/java/com/gxwebsoft/ai/constants/AuditContent5BudgetManageConstants.java index 696d360..a013706 100644 --- a/src/main/java/com/gxwebsoft/ai/constants/AuditContent5BudgetManageConstants.java +++ b/src/main/java/com/gxwebsoft/ai/constants/AuditContent5BudgetManageConstants.java @@ -186,7 +186,7 @@ public class AuditContent5BudgetManageConstants { " \"governmentProcurement\": \"政府采购\",\n" + " \"payableToUnit\": \"应拨单位款\",\n" + " \"other\": \"其他(可简要说明审计发现)\",\n" + - " \"workPaperIndex\": [\"实际存在的完整文件名1\", \"实际存在的完整文件名2\", ...]\n" + + " \"workPaperIndex\": [\"实际存在的完整FileId1\", \"实际存在的完整FileId2\", ...]\n" + " }\n" + "]\n\n" + "**重要说明:**\n" + @@ -235,7 +235,7 @@ public class AuditContent5BudgetManageConstants { FIELD_DISPLAY_NAMES.put("governmentProcurement", "政府采购"); FIELD_DISPLAY_NAMES.put("payableToUnit", "应拨单位款"); FIELD_DISPLAY_NAMES.put("other", "其他(审计发现)"); - FIELD_DISPLAY_NAMES.put("workPaperIndex", "工作底稿索引"); + FIELD_DISPLAY_NAMES.put("workPaperIndex", "工作底稿索引FileId"); } // 获取分类的简要审计框架概述 diff --git a/src/main/java/com/gxwebsoft/ai/constants/AuditContent6StateAssetsConstants.java b/src/main/java/com/gxwebsoft/ai/constants/AuditContent6StateAssetsConstants.java index 5c87712..f0ec707 100644 --- a/src/main/java/com/gxwebsoft/ai/constants/AuditContent6StateAssetsConstants.java +++ b/src/main/java/com/gxwebsoft/ai/constants/AuditContent6StateAssetsConstants.java @@ -103,7 +103,7 @@ public class AuditContent6StateAssetsConstants { " \"approvalDoc\": \"国有资产出租的审批文件(如未出租填'未出租')\",\n" + " \"inBudget\": \"是否纳入预算(是/否)\",\n" + " \"remark\": \"备注(包含资产状态、使用情况、审计发现等)\",\n" + - " \"workPaperIndex\": [\"实际存在的完整文件名1\", \"实际存在的完整文件名2\", ...]\n" + + " \"workPaperIndex\": [\"实际存在的完整FileId1\", \"实际存在的完整FileId2\", ...]\n" + " }\n" + "]\n\n" + "重要说明:\n" + @@ -141,7 +141,7 @@ public class AuditContent6StateAssetsConstants { FIELD_DISPLAY_NAMES.put("approvalDoc", "国有资产出租的审批文件"); FIELD_DISPLAY_NAMES.put("inBudget", "是否纳入预算"); FIELD_DISPLAY_NAMES.put("remark", "备注"); - FIELD_DISPLAY_NAMES.put("workPaperIndex", "工作底稿索引"); + FIELD_DISPLAY_NAMES.put("workPaperIndex", "工作底稿索引FileId"); } // 获取分类的简要审计框架概述 diff --git a/src/main/java/com/gxwebsoft/ai/controller/BaseAuditContentController.java b/src/main/java/com/gxwebsoft/ai/controller/BaseAuditContentController.java index 7e998cb..cf78d5d 100644 --- a/src/main/java/com/gxwebsoft/ai/controller/BaseAuditContentController.java +++ b/src/main/java/com/gxwebsoft/ai/controller/BaseAuditContentController.java @@ -1,5 +1,6 @@ package com.gxwebsoft.ai.controller; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.gxwebsoft.ai.dto.AuditContentRequest; @@ -88,6 +89,8 @@ public abstract class BaseAuditContentController extends BaseController { JSONObject result = generateFunction.apply(params); if(result.getBoolean("success")) { + // 转换workPaperIndex,原数据:["FileId1", "FileId2"],转换后:["文件名1" + "||" + "下载地址1", "文件名2" + "||" + "下载地址2"] + convertWorkPaperFileInfo(result); // 保存到历史记录 saveToHistory(request, interfaceName, requestHash, result, loginUser); } @@ -101,6 +104,40 @@ public abstract class BaseAuditContentController extends BaseController { } } + private void convertWorkPaperFileInfo(JSONObject result) { + JSONArray data = result.getJSONArray("data"); + for (int i = 0; i < data.size(); i++) { + JSONObject obj = data.getJSONObject(i); + JSONArray workPaperIndexFileIds = obj.getJSONArray("workPaperIndex"); + + if (workPaperIndexFileIds == null || workPaperIndexFileIds.isEmpty()) { + continue; + } + + // 先查询所有文件 + List aiCloudFiles = aiCloudFileService.list(new LambdaQueryWrapper().in(AiCloudFile::getFileId, workPaperIndexFileIds)); + + // 创建文件ID到文件的映射,便于查找 + Map fileMap = aiCloudFiles.stream().collect(Collectors.toMap(AiCloudFile::getFileId, file -> file)); + + // 创建转换后的数组(保持原顺序) + JSONArray transformedArray = new JSONArray(); + for (Object fileIdObj : workPaperIndexFileIds) { + String fileId = (String) fileIdObj; + AiCloudFile file = fileMap.get(fileId); + if (file != null) { + String transformed = file.getFileId() + "||" + file.getFileName() + "||" + file.getFileUrl(); + transformedArray.add(transformed); + }else { + transformedArray.add(fileIdObj); + } + } + + // 将转换后的数据塞回原字段 + obj.put("workPaperIndex", transformedArray); + } + } + /** * 生成请求哈希 */ diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AbstractAuditContentService.java b/src/main/java/com/gxwebsoft/ai/service/impl/AbstractAuditContentService.java index a84ffc8..4903964 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AbstractAuditContentService.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AbstractAuditContentService.java @@ -151,7 +151,9 @@ public abstract class AbstractAuditContentService { } String docName = extractDocumentName(node); - String formattedText = String.format("《%s》%s", docName, text); + String docId = extractDocumentId(node); +// String formattedText = String.format("《%s》%s", docName, text); + String formattedText = String.format("【FileId:%s】《%s》%s", docId, docName, text); results.add(formattedText); } catch (Exception e) { @@ -178,6 +180,25 @@ public abstract class AbstractAuditContentService { return "相关文档"; } + /** + * 提取文档Id通用方法 + */ + protected String extractDocumentId(RetrieveResponseBodyDataNodes node) { + try { + Object metadataObj = node.getMetadata(); + if (metadataObj instanceof Map) { + Map metadata = (Map) metadataObj; + Object docIdObj = metadata.get("doc_id"); + if (docIdObj != null) { + return docIdObj.toString(); + } + } + } catch (Exception e) { + log.debug("提取文档名称失败", e); + } + return "相关文档"; + } + /** * 构建成功响应通用方法 */ diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent1EightRegServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent1EightRegServiceImpl.java index c9c968c..d53f53a 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent1EightRegServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent1EightRegServiceImpl.java @@ -248,7 +248,7 @@ public class AuditContent1EightRegServiceImpl extends AbstractAuditContentServic context.append("- content:审计内容(具体中共中央八项规定/具体中央八项规定实施细则)\n"); context.append("- testContent:审计检查的证据,需详细描述查阅过程、查阅的具体文件和内容\n"); context.append("- result:审计测试的结果(通过/不通过),严格判断,从严掌握通过标准\n"); - context.append("- workPaperIndex:相关《参考文件名》,必须是实际存在的完整文件名,不能使用附表标题,确保能在文件夹中搜索到\n"); + context.append("- workPaperIndex:相关《参考文件FileId》,必须是实际存在的完整文件FileId,不能使用附表标题,确保能在文件夹中搜索到\n"); context.append("\n注意:\n"); context.append("1. 请根据知识库内容尽可能全面地生成所有相关制度规定和检查点\n"); context.append("2. 工作底稿索引必须准确对应实际文件名称,避免使用附表或章节标题\n"); diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent1ExpenseServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent1ExpenseServiceImpl.java index a840a0d..16451ba 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent1ExpenseServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent1ExpenseServiceImpl.java @@ -73,9 +73,9 @@ public class AuditContent1ExpenseServiceImpl extends AbstractAuditContentService } // 确保数据完整性(至少16条记录) - if (enhancedData.size() < 16) { - enhancedData = supplementMissingExpenseData(enhancedData); - } +// if (enhancedData.size() < 16) { +// enhancedData = supplementMissingExpenseData(enhancedData); +// } log.info("数据增强完成 - 原始记录数: {}, 增强后记录数: {}", originalData.size(), enhancedData.size()); return enhancedData; @@ -116,73 +116,73 @@ public class AuditContent1ExpenseServiceImpl extends AbstractAuditContentService } // 确保工作底稿索引是数组格式 - if (!expenseData.containsKey("workPaperIndex") || expenseData.get("workPaperIndex") == null) { - JSONArray workPaperIndex = new JSONArray(); - workPaperIndex.add("《" + expenseData.getString("year") + "年度部门决算报表》"); - workPaperIndex.add("《" + expenseData.getString("year") + "年预算执行情况分析》"); - expenseData.put("workPaperIndex", workPaperIndex); - } +// if (!expenseData.containsKey("workPaperIndex") || expenseData.get("workPaperIndex") == null) { +// JSONArray workPaperIndex = new JSONArray(); +// workPaperIndex.add("《" + expenseData.getString("year") + "年度部门决算报表》"); +// workPaperIndex.add("《" + expenseData.getString("year") + "年预算执行情况分析》"); +// expenseData.put("workPaperIndex", workPaperIndex); +// } } /** * 补充缺失的支出数据 */ - private JSONArray supplementMissingExpenseData(JSONArray existingData) { - JSONArray supplementedData = new JSONArray(); - supplementedData.addAll(existingData); - - // 获取已存在的数据组合 - Set existingCombinations = new HashSet<>(); - for (int i = 0; i < existingData.size(); i++) { - JSONObject item = existingData.getJSONObject(i); - String key = item.getString("expenseType") + "_" + item.getString("year"); - existingCombinations.add(key); - } - - // 补充缺失的数据 - String[] expenseTypes = { - AuditContent1ExpenseConstants.EXPENSE_TYPE_RECEPTION, - AuditContent1ExpenseConstants.EXPENSE_TYPE_OVERSEAS, - AuditContent1ExpenseConstants.EXPENSE_TYPE_VEHICLE, - AuditContent1ExpenseConstants.EXPENSE_TYPE_MEETING - }; - - String[] years = {"2020", "2021", "2022", "2023"}; - - for (String expenseType : expenseTypes) { - for (String year : years) { - String key = expenseType + "_" + year; - if (!existingCombinations.contains(key)) { - JSONObject newItem = createDefaultExpenseRecord(expenseType, year); - supplementedData.add(newItem); - } - } - } - - return supplementedData; - } +// private JSONArray supplementMissingExpenseData(JSONArray existingData) { +// JSONArray supplementedData = new JSONArray(); +// supplementedData.addAll(existingData); +// +// // 获取已存在的数据组合 +// Set existingCombinations = new HashSet<>(); +// for (int i = 0; i < existingData.size(); i++) { +// JSONObject item = existingData.getJSONObject(i); +// String key = item.getString("expenseType") + "_" + item.getString("year"); +// existingCombinations.add(key); +// } +// +// // 补充缺失的数据 +// String[] expenseTypes = { +// AuditContent1ExpenseConstants.EXPENSE_TYPE_RECEPTION, +// AuditContent1ExpenseConstants.EXPENSE_TYPE_OVERSEAS, +// AuditContent1ExpenseConstants.EXPENSE_TYPE_VEHICLE, +// AuditContent1ExpenseConstants.EXPENSE_TYPE_MEETING +// }; +// +// String[] years = {"2020", "2021", "2022", "2023"}; +// +// for (String expenseType : expenseTypes) { +// for (String year : years) { +// String key = expenseType + "_" + year; +// if (!existingCombinations.contains(key)) { +// JSONObject newItem = createDefaultExpenseRecord(expenseType, year); +// supplementedData.add(newItem); +// } +// } +// } +// +// return supplementedData; +// } /** * 创建默认的支出记录 */ - private JSONObject createDefaultExpenseRecord(String expenseType, String year) { - JSONObject record = new JSONObject(); - record.put("expenseType", expenseType); - record.put("year", year); - record.put("finalStatementAmount", "0.00"); - record.put("initialBudgetAmount", "0.00"); - record.put("changePercentage", "0.0%"); - record.put("budgetRatio", "0.0%"); - record.put("remark", "根据年度财务报告数据生成"); - record.put("dataSource", year + "年度部门决算报表"); - - JSONArray workPaperIndex = new JSONArray(); - workPaperIndex.add("《" + year + "年度部门决算报表》"); - workPaperIndex.add("《" + year + "年预算执行情况分析》"); - record.put("workPaperIndex", workPaperIndex); - - return record; - } +// private JSONObject createDefaultExpenseRecord(String expenseType, String year) { +// JSONObject record = new JSONObject(); +// record.put("expenseType", expenseType); +// record.put("year", year); +// record.put("finalStatementAmount", "0.00"); +// record.put("initialBudgetAmount", "0.00"); +// record.put("changePercentage", "0.0%"); +// record.put("budgetRatio", "0.0%"); +// record.put("remark", "根据年度财务报告数据生成"); +// record.put("dataSource", year + "年度部门决算报表"); +// +// JSONArray workPaperIndex = new JSONArray(); +// workPaperIndex.add("《" + year + "年度部门决算报表》"); +// workPaperIndex.add("《" + year + "年预算执行情况分析》"); +// record.put("workPaperIndex", workPaperIndex); +// +// return record; +// } /** * 计算缺失的百分比字段 diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent1LeaderListServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent1LeaderListServiceImpl.java index a957d65..b0a913e 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent1LeaderListServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent1LeaderListServiceImpl.java @@ -119,11 +119,11 @@ public class AuditContent1LeaderListServiceImpl extends AbstractAuditContentServ } // 确保工作底稿索引是数组格式 - if (!leaderData.containsKey("workPaperIndex") || leaderData.get("workPaperIndex") == null) { - JSONArray workPaperIndex = new JSONArray(); - workPaperIndex.add("《千汇发〔2025〕6号千汇公司关于领导班子成员工作分工的通知》"); - leaderData.put("workPaperIndex", workPaperIndex); - } +// if (!leaderData.containsKey("workPaperIndex") || leaderData.get("workPaperIndex") == null) { +// JSONArray workPaperIndex = new JSONArray(); +// workPaperIndex.add("《千汇发〔2025〕6号千汇公司关于领导班子成员工作分工的通知》"); +// leaderData.put("workPaperIndex", workPaperIndex); +// } } /** 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 bea758f..50620de 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent2StrategyServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent2StrategyServiceImpl.java @@ -217,7 +217,7 @@ public class AuditContent2StrategyServiceImpl extends AbstractAuditContentServic context.append("1. auditContent: 具体审计内容(基于框架,结合企业实际)\n"); context.append("2. checkEvidence: 检查证据(引用企业具体文件)\n"); context.append("3. testResult: 测试结果(通过/不通过)(基于充分证据严格判断)\n"); - context.append("4. workPaperIndex: 工作底稿索引(具体文件名)\n\n"); + context.append("4. workPaperIndex: 工作底稿索引(具体文件FileId)\n\n"); // 6. 法规和案例参考 if (!knowledgeSources.get("regulation").isEmpty()) { diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent3TripleServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent3TripleServiceImpl.java index cc569ad..0cef94e 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent3TripleServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent3TripleServiceImpl.java @@ -194,7 +194,7 @@ public class AuditContent3TripleServiceImpl extends AbstractAuditContentService context.append("- companyFormulation:公司层面的三重一大相关制度规定及执行情况,需包含详细分析过程和查阅依据\n"); context.append("- checkEvidence:审计检查的证据,需详细描述查阅过程、查阅的具体文件和内容\n"); context.append("- testResult:审计测试的结果(通过/不通过),严格判断,从严掌握通过标准\n"); - context.append("- workPaperIndex:相关《参考文件名》,必须是实际存在的完整文件名,不能使用附表标题,确保能在文件夹中搜索到\n"); + context.append("- workPaperIndex:相关《参考文件名FileId》,必须是实际存在的完整文件FileId,不能使用附表标题,确保能在文件夹中搜索到\n"); context.append("\n注意:\n"); context.append("1. 请根据知识库内容尽可能全面地生成所有相关制度规定和检查点\n"); context.append("2. 公司执行情况分析需包含:查阅了哪些文件、发现了什么内容、与制度的差异点、分析判断过程\n"); diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent4TargetServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent4TargetServiceImpl.java index a533df4..9a52f79 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent4TargetServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent4TargetServiceImpl.java @@ -177,7 +177,7 @@ public class AuditContent4TargetServiceImpl extends AbstractAuditContentService // 9. 特别提醒(新增关键优化点) context.append("## 特别提醒\n"); context.append("1. 审计证据必须包含具体的查阅过程:查阅了哪些文件、文件中发现了什么内容\n"); - context.append("2. workPaperIndex必须填写实际存在的完整文件名,确保能在文件夹中搜索到\n"); + context.append("2. workPaperIndex必须填写实际存在的完整文件FileId,确保能在文件夹中搜索到\n"); context.append("3. 完成情况判定必须基于充分证据:只有证据充分且完全符合要求才能判定为已完成\n"); context.append("4. 对于执行不到位、效果不佳、证据不充分的情况必须在备注中说明\n"); context.append("5. 尽可能识别知识库中所有相关年度,生成对应的审计记录\n"); @@ -315,13 +315,13 @@ public class AuditContent4TargetServiceImpl extends AbstractAuditContentService } // 确保工作底稿索引是数组格式 - if (!item.containsKey("workPaperIndex") || !(item.get("workPaperIndex") instanceof JSONArray)) { - JSONArray workPaperIndex = new JSONArray(); - String year = item.getString("year"); - workPaperIndex.add(year + "年度目标责任书"); - workPaperIndex.add(year + "年度工作总结报告"); - item.put("workPaperIndex", workPaperIndex); - } +// if (!item.containsKey("workPaperIndex") || !(item.get("workPaperIndex") instanceof JSONArray)) { +// JSONArray workPaperIndex = new JSONArray(); +// String year = item.getString("year"); +// workPaperIndex.add(year + "年度目标责任书"); +// workPaperIndex.add(year + "年度工作总结报告"); +// item.put("workPaperIndex", workPaperIndex); +// } processedData.add(item); } diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent5BudgetExecutionServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent5BudgetExecutionServiceImpl.java index 0c30ad5..7a587dc 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent5BudgetExecutionServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent5BudgetExecutionServiceImpl.java @@ -237,7 +237,7 @@ public class AuditContent5BudgetExecutionServiceImpl extends AbstractAuditConten context.append("1. 必须全面分析预算执行全过程,包括执行进度、执行效果、执行合规性\n"); context.append("2. 重点关注预算执行率、资金到位率、预算执行偏差等关键指标\n"); context.append("3. 金额字段应填写具体数值,如\"1,000,000.00\",不能填写简单的\"有\"或\"无\"\n"); - context.append("4. workPaperIndex必须填写实际存在的完整文件名\n"); + context.append("4. workPaperIndex必须填写实际存在的完整文件FileId\n"); context.append("5. 对于无数据的字段,可填写\"-\"或留空,但不能填写\"无\"\n"); context.append("6. 基于预算执行全流程进行审计分析,包括月度、季度、年度执行情况\n"); context.append("7. 重点关注预算执行偏差原因分析和整改措施\n"); diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent5BudgetManageServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent5BudgetManageServiceImpl.java index 12b46e3..c3a2852 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent5BudgetManageServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent5BudgetManageServiceImpl.java @@ -237,7 +237,7 @@ public class AuditContent5BudgetManageServiceImpl extends AbstractAuditContentSe context.append("1. 必须全面识别知识库中所有预算科目,包括:基本支出、项目支出、人员经费、公用经费等\n"); context.append("2. 每个独立的预算科目都要生成独立的审计记录,不限制数量,尽可能多地生成\n"); context.append("3. 金额字段应填写具体数值,如\"1,000,000.00\",不能填写简单的\"有\"或\"无\"\n"); - context.append("4. workPaperIndex必须填写实际存在的完整文件名\n"); + context.append("4. workPaperIndex必须填写实际存在的完整文件FileId\n"); context.append("5. 对于无数据的字段,可填写\"-\"或留空,但不能填写\"无\"\n"); context.append("6. 基于预算编制、调整、执行的全流程进行审计分析\n"); context.append("7. 重点关注预算调整的合规性和预算执行的真实性\n\n"); diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent6StateAssetsServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent6StateAssetsServiceImpl.java index 907374f..08295c8 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent6StateAssetsServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent6StateAssetsServiceImpl.java @@ -192,7 +192,7 @@ public class AuditContent6StateAssetsServiceImpl extends AbstractAuditContentSer context.append("1. 必须全面识别知识库中所有国有资产,包括:房屋、土地、车辆、机械设备、办公设备、电子设备、家具、无形资产等\n"); context.append("2. 每个独立的资产都要生成独立的审计记录,不限制数量,尽可能多地生成\n"); context.append("3. 即使资产信息不完整,也要基于现有信息生成审计记录\n"); - context.append("4. workPaperIndex必须填写实际存在的完整文件名\n"); + context.append("4. workPaperIndex必须填写实际存在的完整文件FileId\n"); context.append("5. 对于未出租资产,承租方、合同金额等字段填写\"未出租\"\n"); context.append("6. 备注中应详细说明资产状况、使用情况、合规性评价\n"); context.append("7. 不能填写简单的\"无\",要提供有意义的描述\n\n"); @@ -320,12 +320,12 @@ public class AuditContent6StateAssetsServiceImpl extends AbstractAuditContentSer } // 确保工作底稿索引是数组格式 - if (!item.containsKey("workPaperIndex") || !(item.get("workPaperIndex") instanceof JSONArray)) { - JSONArray workPaperIndex = new JSONArray(); - String assetName = item.getString("assetName"); - workPaperIndex.add(assetName + "资产登记台账"); - item.put("workPaperIndex", workPaperIndex); - } +// if (!item.containsKey("workPaperIndex") || !(item.get("workPaperIndex") instanceof JSONArray)) { +// JSONArray workPaperIndex = new JSONArray(); +// String assetName = item.getString("assetName"); +// workPaperIndex.add(assetName + "资产登记台账"); +// item.put("workPaperIndex", workPaperIndex); +// } processedData.add(item); } diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent7InvestmentServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent7InvestmentServiceImpl.java index a42eb7b..05e42be 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent7InvestmentServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent7InvestmentServiceImpl.java @@ -227,7 +227,7 @@ public class AuditContent7InvestmentServiceImpl extends AbstractAuditContentServ context.append(" • 通过:证据充分且完全符合要求\n"); context.append(" • 不通过:制度不一致、执行不到位、证据不充分\n"); context.append(" • 待检查:无法确定,需要进一步检查\n"); - context.append("- **workPaperIndex**:相关《工作底稿索引》,必须是实际存在的完整文件名,确保能在文件夹中搜索到\n"); + context.append("- **workPaperIndex**:相关《工作底稿索引FileId》,必须是实际存在的完整文件FileId,确保能在文件夹中搜索到\n"); context.append("- **fileIndex**:相关《文件索引》,关联的支持文件\n\n"); // 5. 审计内容模板(提供参考) diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent8InternalControlServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent8InternalControlServiceImpl.java index ef2a14d..1800b85 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent8InternalControlServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent8InternalControlServiceImpl.java @@ -233,7 +233,7 @@ public class AuditContent8InternalControlServiceImpl extends AbstractAuditConten context.append("- testSteps(测试步骤):**只包含当前步骤内容**,如\"(1)是否有制度规定\"\n"); context.append("- checkEvidence(检查证据):针对当前测试步骤的详细检查证据\n"); context.append("- testResult(测试结果):基于当前测试步骤的检查证据严格判断,只有证据充分且完全符合要求才能判定为\"通过\",否则必须判定为\"不通过\"\n"); - context.append("- workPaperIndex(工作底稿索引):实际存在的完整文件名,确保能在文件夹中搜索到\n\n"); + context.append("- workPaperIndex(工作底稿索引FileId):实际存在的完整文件FileId,确保能在文件夹中搜索到\n\n"); context.append("**生成规则:**\n"); context.append("1. **每个测试步骤单独生成一条完整记录**\n"); diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent9PersonnelServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent9PersonnelServiceImpl.java index 0d39ac3..d5b3171 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent9PersonnelServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent9PersonnelServiceImpl.java @@ -259,7 +259,7 @@ public class AuditContent9PersonnelServiceImpl extends AbstractAuditContentServi context.append("- auditTarget:固定为'").append(subContent.getAuditTarget()).append("'\n"); context.append("- auditEvidence:固定为'").append(subContent.getAuditEvidence()).append("'\n"); context.append("- generationResult:审计发现和结论\n"); - context.append("- workPaperIndex:工作底稿索引,具体的文件名数组\n\n"); + context.append("- workPaperIndex:工作底稿索引,具体的文件FileId数组\n\n"); context.append("## generationResult格式\n"); context.append("标题:在审计期间,[具体单位名称]存在[具体问题]\n\n");