新增生成领导班子列表分析表
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
package com.gxwebsoft.ai.constants;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 领导班子名单常量类
|
||||
*/
|
||||
public class AuditContent1LeaderListConstants {
|
||||
|
||||
// 领导职位分类
|
||||
public static final String CATEGORY_PARTY_LEADERS = "党组织领导班子";
|
||||
public static final String CATEGORY_ADMIN_LEADERS = "行政领导班子";
|
||||
public static final String CATEGORY_DEPARTMENT_LEADERS = "部门负责人";
|
||||
|
||||
// 分类描述
|
||||
public static final Map<String, String> CATEGORY_DESCRIPTIONS = new HashMap<>();
|
||||
static {
|
||||
CATEGORY_DESCRIPTIONS.put(CATEGORY_PARTY_LEADERS, "党组织领导班子成员信息");
|
||||
CATEGORY_DESCRIPTIONS.put(CATEGORY_ADMIN_LEADERS, "行政领导班子成员信息");
|
||||
CATEGORY_DESCRIPTIONS.put(CATEGORY_DEPARTMENT_LEADERS, "各部门负责人信息");
|
||||
}
|
||||
|
||||
// 数据格式要求
|
||||
public static final String DATA_FORMAT_REQUIREMENT =
|
||||
"每条记录应包含以下字段:\n" +
|
||||
"- unit:单位名称\n" +
|
||||
"- name:姓名\n" +
|
||||
"- department:所在部门\n" +
|
||||
"- partyPosition:党内职务\n" +
|
||||
"- adminPosition:行政职务\n" +
|
||||
"- tenurePeriod:任职期间(格式:YYYY.MM-YYYY.MM)\n" +
|
||||
"- mainResponsibilities:主要工作责任\n" +
|
||||
"- remark:备注信息\n" +
|
||||
"- workPaperIndex:相关文件索引";
|
||||
|
||||
// 关键词权重
|
||||
public static final Map<String, Integer> KEYWORD_WEIGHTS = new HashMap<>();
|
||||
static {
|
||||
KEYWORD_WEIGHTS.put("领导班子", 10);
|
||||
KEYWORD_WEIGHTS.put("领导成员", 9);
|
||||
KEYWORD_WEIGHTS.put("任职", 8);
|
||||
KEYWORD_WEIGHTS.put("职务", 8);
|
||||
KEYWORD_WEIGHTS.put("职责", 7);
|
||||
KEYWORD_WEIGHTS.put("分工", 7);
|
||||
KEYWORD_WEIGHTS.put("党组", 9);
|
||||
KEYWORD_WEIGHTS.put("党委", 9);
|
||||
KEYWORD_WEIGHTS.put("支部书记", 8);
|
||||
KEYWORD_WEIGHTS.put("局长", 8);
|
||||
KEYWORD_WEIGHTS.put("处长", 7);
|
||||
KEYWORD_WEIGHTS.put("科长", 7);
|
||||
}
|
||||
|
||||
private AuditContent1LeaderListConstants() {
|
||||
// 防止实例化
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.gxwebsoft.ai.dto.AuditContentRequest;
|
||||
import com.gxwebsoft.ai.dto.export.EightRegExportEntity;
|
||||
import com.gxwebsoft.ai.dto.export.LeaderListExportEntity;
|
||||
import com.gxwebsoft.ai.entity.AiCloudDoc;
|
||||
import com.gxwebsoft.ai.entity.AiCloudFile;
|
||||
import com.gxwebsoft.ai.service.AiHistoryService;
|
||||
@@ -16,6 +17,7 @@ import com.gxwebsoft.pwl.service.PwlProjectLibraryService;
|
||||
import com.gxwebsoft.ai.service.AiCloudDocService;
|
||||
import com.gxwebsoft.ai.service.AiCloudFileService;
|
||||
import com.gxwebsoft.ai.service.AuditContent1EightRegService;
|
||||
import com.gxwebsoft.ai.service.AuditContent1LeaderListService;
|
||||
import com.gxwebsoft.ai.service.KnowledgeBaseService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -40,6 +42,9 @@ import java.util.stream.Collectors;
|
||||
@RequestMapping("/api/ai/auditContent1")
|
||||
public class AuditContent1Controller extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private AuditContent1LeaderListService auditContent1LeaderListService;
|
||||
|
||||
@Autowired
|
||||
private AuditContent1EightRegService auditContent1EightRegService;
|
||||
|
||||
@@ -61,6 +66,19 @@ public class AuditContent1Controller extends BaseController {
|
||||
// 历史记录有效期(分钟)
|
||||
private static final int HISTORY_EXPIRE_MINUTES = 10;
|
||||
|
||||
/**
|
||||
* 生成领导班子名单数据
|
||||
*/
|
||||
@Operation(summary = "生成领导班子名单")
|
||||
@PostMapping("/generateLeaderListTable")
|
||||
public ApiResult<?> generateLeaderListTable(@RequestBody AuditContentRequest request, HttpServletRequest servletRequest) {
|
||||
return generateTableData(request, servletRequest.getRequestURI(),
|
||||
(params) -> auditContent1LeaderListService.generateLeaderListTableData(
|
||||
params.knowledgeBaseId, params.libraryKbIds, params.projectLibrary,
|
||||
params.username, params.history, params.suggestion
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成八项规定对比分析表数据
|
||||
*/
|
||||
@@ -292,4 +310,33 @@ public class AuditContent1Controller extends BaseController {
|
||||
|
||||
return workPaperIndex.toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出领导班子名单到Excel
|
||||
*/
|
||||
@Operation(summary = "导出领导班子名单到Excel")
|
||||
@PostMapping("/exportLeaderListTable")
|
||||
public void exportLeaderListTable(@RequestBody Map<String, Object> request, HttpServletResponse response) {
|
||||
exportToExcel(request, response, "领导班子名单", this::convertToLeaderListEntityList, LeaderListExportEntity.class);
|
||||
}
|
||||
|
||||
// 添加数据转换方法
|
||||
private List<LeaderListExportEntity> convertToLeaderListEntityList(List<Map<String, Object>> originalData) {
|
||||
return originalData.stream().map(this::convertToLeaderListEntity).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private LeaderListExportEntity convertToLeaderListEntity(Map<String, Object> item) {
|
||||
LeaderListExportEntity entity = new LeaderListExportEntity();
|
||||
entity.setUnit(getStringValue(item, "unit"));
|
||||
entity.setName(getStringValue(item, "name"));
|
||||
entity.setDepartment(getStringValue(item, "department"));
|
||||
entity.setPartyPosition(getStringValue(item, "partyPosition"));
|
||||
entity.setAdminPosition(getStringValue(item, "adminPosition"));
|
||||
entity.setTenurePeriod(getStringValue(item, "tenurePeriod"));
|
||||
entity.setMainResponsibilities(getStringValue(item, "mainResponsibilities"));
|
||||
entity.setRemark(getStringValue(item, "remark"));
|
||||
entity.setWorkPaperIndex(formatWorkPaperIndex(item.get("workPaperIndex")));
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.gxwebsoft.ai.dto.export;
|
||||
|
||||
import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 领导班子名单导出实体
|
||||
*/
|
||||
@Data
|
||||
public class LeaderListExportEntity {
|
||||
|
||||
@Excel(name = "单位", orderNum = "1", width = 8)
|
||||
private String unit;
|
||||
|
||||
@Excel(name = "姓名", orderNum = "1", width = 8)
|
||||
private String name;
|
||||
|
||||
@Excel(name = "部门", orderNum = "1", width = 8)
|
||||
private String department;
|
||||
|
||||
@Excel(name = "党内职务", orderNum = "1", width = 8)
|
||||
private String partyPosition;
|
||||
|
||||
@Excel(name = "行政职务", orderNum = "1", width = 8)
|
||||
private String adminPosition;
|
||||
|
||||
@Excel(name = "任职期间", orderNum = "1", width = 8)
|
||||
private String tenurePeriod;
|
||||
|
||||
@Excel(name = "主要工作责任", orderNum = "1", width = 8)
|
||||
private String mainResponsibilities;
|
||||
|
||||
@Excel(name = "备注", orderNum = "1", width = 8)
|
||||
private String remark;
|
||||
|
||||
@Excel(name = "工作底稿索引", orderNum = "1", width = 8)
|
||||
private String workPaperIndex;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.gxwebsoft.ai.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
/**
|
||||
* 领导班子名单服务接口
|
||||
*/
|
||||
public interface AuditContent1LeaderListService {
|
||||
|
||||
/**
|
||||
* 生成领导班子名单数据
|
||||
*/
|
||||
JSONObject generateLeaderListTableData(String kbIds, String libraryKbIds, String projectLibrary, String userName, String history, String suggestion);
|
||||
}
|
||||
@@ -0,0 +1,303 @@
|
||||
package com.gxwebsoft.ai.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.gxwebsoft.ai.constants.AuditContent1LeaderListConstants;
|
||||
import com.gxwebsoft.ai.service.AuditContent1LeaderListService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class AuditContent1LeaderListServiceImpl extends AbstractAuditContentService implements AuditContent1LeaderListService {
|
||||
|
||||
// 工作流配置
|
||||
private static final String DIFY_WORKFLOW_TOKEN = "Bearer app-G0xD8Yu0tqwYEudtXuKFk2BH";
|
||||
|
||||
@Override
|
||||
public JSONObject generateLeaderListTableData(String kbIds, String libraryKbIds, String projectLibrary,
|
||||
String userName, String history, String suggestion) {
|
||||
log.info("开始生成领导班子名单数据 - 用户: {}, kbIds: {}, libraryIds: {}, projectLibrary: {}",
|
||||
userName, kbIds, libraryKbIds, projectLibrary);
|
||||
|
||||
long startTime = System.currentTimeMillis();
|
||||
|
||||
try {
|
||||
// 1. 检索相关知识
|
||||
Map<String, List<String>> knowledgeSources = retrieveKnowledgeForLeaderList(kbIds, libraryKbIds, projectLibrary);
|
||||
|
||||
// 2. 构建完整的知识上下文
|
||||
String knowledgeContext = buildCompleteKnowledgeContext(knowledgeSources, history, suggestion);
|
||||
|
||||
// 3. 调用工作流生成数据
|
||||
JSONObject requestBody = buildWorkflowRequest(knowledgeContext, userName);
|
||||
JSONArray leaderListData = callWorkflow(DIFY_WORKFLOW_URL, DIFY_WORKFLOW_TOKEN, requestBody, "领导班子名单");
|
||||
|
||||
// 4. 数据验证和补充
|
||||
leaderListData = validateAndEnhanceLeaderListData(leaderListData);
|
||||
|
||||
log.info("领导班子名单生成成功 - 记录数: {}, 处理时间: {}ms",
|
||||
leaderListData.size(), (System.currentTimeMillis() - startTime));
|
||||
|
||||
return buildSuccessResponse(leaderListData, startTime, "leader_list_audit");
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("生成领导班子名单失败", e);
|
||||
return buildErrorResponse("生成领导班子名单失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证和增强领导班子名单数据
|
||||
*/
|
||||
private JSONArray validateAndEnhanceLeaderListData(JSONArray originalData) {
|
||||
if (originalData == null || originalData.isEmpty()) {
|
||||
log.warn("原始数据为空,返回空数组");
|
||||
return new JSONArray();
|
||||
}
|
||||
|
||||
JSONArray enhancedData = new JSONArray();
|
||||
|
||||
for (int i = 0; i < originalData.size(); i++) {
|
||||
JSONObject item = originalData.getJSONObject(i);
|
||||
if (item != null) {
|
||||
// 确保所有必需字段都存在
|
||||
enhanceLeaderData(item);
|
||||
enhancedData.add(item);
|
||||
}
|
||||
}
|
||||
|
||||
log.info("数据增强完成 - 原始记录数: {}, 增强后记录数: {}", originalData.size(), enhancedData.size());
|
||||
return enhancedData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 增强单个领导数据
|
||||
*/
|
||||
private void enhanceLeaderData(JSONObject leaderData) {
|
||||
// 确保单位名称存在
|
||||
if (StrUtil.isBlank(leaderData.getString("unit"))) {
|
||||
leaderData.put("unit", "广西千汇食品有限公司");
|
||||
}
|
||||
|
||||
// 确保部门信息存在
|
||||
if (StrUtil.isBlank(leaderData.getString("department"))) {
|
||||
String adminPosition = leaderData.getString("adminPosition");
|
||||
if (adminPosition != null) {
|
||||
if (adminPosition.contains("董事")) {
|
||||
leaderData.put("department", "董事会");
|
||||
} else if (adminPosition.contains("经理") || adminPosition.contains("总监")) {
|
||||
leaderData.put("department", "经理层");
|
||||
} else {
|
||||
leaderData.put("department", "管理部门");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 确保任职期间格式正确
|
||||
if (StrUtil.isBlank(leaderData.getString("tenurePeriod"))) {
|
||||
leaderData.put("tenurePeriod", "2023.4-至今");
|
||||
}
|
||||
|
||||
// 确保主要工作责任完整
|
||||
if (StrUtil.isBlank(leaderData.getString("mainResponsibilities"))) {
|
||||
String position = leaderData.getString("adminPosition");
|
||||
if (position != null) {
|
||||
if (position.contains("董事长")) {
|
||||
leaderData.put("mainResponsibilities", "主持公司全面工作,主管综合管理服务、安全生产、环境保护、品牌建设与管理等工作;主管综合管理部、设备安环部。");
|
||||
} else if (position.contains("总经理")) {
|
||||
leaderData.put("mainResponsibilities", "负责战略规划、投资管理、项目招投标、质量安全、食品安全、应急管理、生产经营管理、组织人事、日常经营管理等工作;主管采购部、销售部、质量管理部、生产部。");
|
||||
} else if (position.contains("财务总监")) {
|
||||
leaderData.put("mainResponsibilities", "主管财务管理、筹融资管理、会计核算、法律事务、合规管理、风险防控、审计管理、党建、党风廉政建设、宣传思想意识形态、统战工作、协助上级开展巡察工作等;主管财务部。");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 确保工作底稿索引是数组格式
|
||||
if (!leaderData.containsKey("workPaperIndex") || leaderData.get("workPaperIndex") == null) {
|
||||
JSONArray workPaperIndex = new JSONArray();
|
||||
workPaperIndex.add("《千汇发〔2025〕6号千汇公司关于领导班子成员工作分工的通知》");
|
||||
leaderData.put("workPaperIndex", workPaperIndex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 检索领导班子名单相关知识 - 优化查询策略
|
||||
*/
|
||||
private Map<String, List<String>> retrieveKnowledgeForLeaderList(String kbIds, String libraryKbIds, String projectLibrary) {
|
||||
Map<String, List<String>> knowledgeSources = new HashMap<>();
|
||||
knowledgeSources.put("enterprise", new ArrayList<>());
|
||||
knowledgeSources.put("regulation", new ArrayList<>());
|
||||
knowledgeSources.put("auditCase", new ArrayList<>());
|
||||
|
||||
// 构建更全面的查询词
|
||||
List<String> queries = buildEnhancedLeaderListQueries();
|
||||
|
||||
// 企业单位库检索 - 扩大检索范围
|
||||
if (StrUtil.isNotBlank(kbIds)) {
|
||||
Arrays.stream(kbIds.split(","))
|
||||
.map(String::trim)
|
||||
.filter(StrUtil::isNotBlank)
|
||||
.forEach(kbId -> {
|
||||
List<String> enterpriseKnowledge = queryKnowledgeBase(kbId, queries, 150); // 增加检索数量
|
||||
knowledgeSources.get("enterprise").addAll(enterpriseKnowledge);
|
||||
log.debug("企业知识库 {} 检索到 {} 条相关知识", kbId, enterpriseKnowledge.size());
|
||||
});
|
||||
}
|
||||
|
||||
// 公共法律法规库检索
|
||||
if (StrUtil.isNotBlank(libraryKbIds)) {
|
||||
Arrays.stream(libraryKbIds.split(","))
|
||||
.map(String::trim)
|
||||
.filter(StrUtil::isNotBlank)
|
||||
.forEach(libId -> {
|
||||
List<String> regulationKnowledge = queryKnowledgeBase(libId, queries, 80);
|
||||
knowledgeSources.get("regulation").addAll(regulationKnowledge);
|
||||
});
|
||||
}
|
||||
|
||||
// 审计案例库检索
|
||||
if (StrUtil.isNotBlank(projectLibrary)) {
|
||||
List<String> auditCaseKnowledge = queryKnowledgeBase(projectLibrary, queries, 50);
|
||||
knowledgeSources.get("auditCase").addAll(auditCaseKnowledge);
|
||||
}
|
||||
|
||||
// 智能去重和排序
|
||||
knowledgeSources.forEach((key, list) -> {
|
||||
List<String> processed = list.stream()
|
||||
.distinct()
|
||||
.sorted(this::leaderListComparator)
|
||||
.limit(getLimitBySourceType(key))
|
||||
.collect(Collectors.toList());
|
||||
knowledgeSources.put(key, processed);
|
||||
});
|
||||
|
||||
log.info("领导班子名单知识检索完成 - 企业: {}条, 法规: {}条, 案例: {}条",
|
||||
knowledgeSources.get("enterprise").size(),
|
||||
knowledgeSources.get("regulation").size(),
|
||||
knowledgeSources.get("auditCase").size());
|
||||
|
||||
return knowledgeSources;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建增强的领导班子名单查询词
|
||||
*/
|
||||
private List<String> buildEnhancedLeaderListQueries() {
|
||||
return Arrays.asList(
|
||||
"领导班子 领导成员 任职文件 任命通知",
|
||||
"党组 党委 支部 书记 委员 党组成员",
|
||||
"董事长 总经理 财务总监 部门负责人",
|
||||
"职务任免 职责分工 工作分工 岗位职责",
|
||||
"组织机构 人员编制 干部名册 管理人员",
|
||||
"党内职务 行政职务 任职时间 任期",
|
||||
"公司治理 管理架构 组织架构",
|
||||
"工作职责 主要责任 分管工作",
|
||||
"干部任免 人事任命 组织任命",
|
||||
"管理层 决策层 执行层"
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建完整的知识上下文 - 优化提示
|
||||
*/
|
||||
private String buildCompleteKnowledgeContext(Map<String, List<String>> knowledgeSources, String history, String suggestion) {
|
||||
StringBuilder context = new StringBuilder();
|
||||
|
||||
// 1. 领导班子名单分析要求 - 增强要求
|
||||
context.append("## 领导班子名单分析要求\n");
|
||||
context.append("请基于以下知识生成完整详细的领导班子名单数据:\n\n");
|
||||
context.append("1. 必须生成完整的领导班子成员信息,包括党组织领导班子、行政领导班子、各部门负责人等\n");
|
||||
context.append("2. 从企业单位知识库中提取所有实际的领导班子成员信息,要求全面完整\n");
|
||||
context.append("3. 重点关注领导成员的姓名、单位、部门、党内职务、行政职务、任职期间、工作职责等信息\n");
|
||||
context.append("4. 确保信息的准确性和完整性,每个字段都要填写具体内容\n");
|
||||
context.append("5. 工作底稿索引必须准确对应实际文件名称,可以包含多个相关文件\n");
|
||||
context.append("6. 要求生成5-10条完整的领导班子成员记录,覆盖各个管理层级\n\n");
|
||||
|
||||
// 2. 数据格式要求
|
||||
context.append("## 数据格式要求\n");
|
||||
context.append("需要生成完整详细的领导班子名单数据:\n\n");
|
||||
context.append(AuditContent1LeaderListConstants.DATA_FORMAT_REQUIREMENT);
|
||||
context.append("\n\n重要要求:\n");
|
||||
context.append("1. 必须根据知识库内容生成5-10条完整的领导班子成员信息\n");
|
||||
context.append("2. 工作底稿索引必须准确对应实际文件名称,避免使用附表或章节标题\n");
|
||||
context.append("3. 任职期间格式统一为:YYYY.MM-YYYY.MM 或 YYYY.MM-至今\n");
|
||||
context.append("4. 主要工作责任要具体明确,不能笼统描述\n");
|
||||
context.append("5. 部门信息要具体,如:董事会、经理层、财务部、生产部等\n");
|
||||
context.append("6. 备注信息可以包含任命方式、试用期等特殊说明\n\n");
|
||||
|
||||
// 3. 历史内容
|
||||
if (StrUtil.isNotBlank(history)) {
|
||||
context.append("## 历史生成内容\n");
|
||||
context.append("以下是之前生成的内容,请基于此进行优化和补充:\n");
|
||||
context.append(history).append("\n\n");
|
||||
}
|
||||
|
||||
// 4. 用户建议
|
||||
if (StrUtil.isNotBlank(suggestion)) {
|
||||
context.append("## 用户优化建议\n");
|
||||
context.append("请根据以下建议对生成内容进行调整:\n");
|
||||
context.append(suggestion).append("\n\n");
|
||||
}
|
||||
|
||||
// 5. 企业单位知识
|
||||
if (!knowledgeSources.get("enterprise").isEmpty()) {
|
||||
context.append("## 企业单位知识\n");
|
||||
context.append("这是企业单位的相关制度文件和信息,请仔细分析并提取所有领导班子成员信息:\n");
|
||||
knowledgeSources.get("enterprise").forEach(knowledge ->
|
||||
context.append(knowledge).append("\n"));
|
||||
context.append("\n");
|
||||
}
|
||||
|
||||
// 6. 法律法规知识
|
||||
if (!knowledgeSources.get("regulation").isEmpty()) {
|
||||
context.append("## 法律法规知识\n");
|
||||
knowledgeSources.get("regulation").forEach(knowledge ->
|
||||
context.append(knowledge).append("\n"));
|
||||
context.append("\n");
|
||||
}
|
||||
|
||||
// 7. 审计案例知识
|
||||
if (!knowledgeSources.get("auditCase").isEmpty()) {
|
||||
context.append("## 审计案例知识\n");
|
||||
knowledgeSources.get("auditCase").forEach(knowledge ->
|
||||
context.append(knowledge).append("\n"));
|
||||
}
|
||||
|
||||
log.debug("构建的知识上下文长度: {}", context.length());
|
||||
return context.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 领导班子名单相关性比较器
|
||||
*/
|
||||
private int leaderListComparator(String content1, String content2) {
|
||||
int score1 = calculateLeaderListRelevanceScore(content1);
|
||||
int score2 = calculateLeaderListRelevanceScore(content2);
|
||||
return Integer.compare(score2, score1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算领导班子名单相关性分数
|
||||
*/
|
||||
private int calculateLeaderListRelevanceScore(String content) {
|
||||
return AuditContent1LeaderListConstants.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 100;
|
||||
case "regulation": return 50;
|
||||
case "auditCase": return 30;
|
||||
default: return 50;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user