# 评估报告模块需求文档

## 1. 项目背景

XL监狱综合管理平台需要新增**评估报告模块**，利用AI大语言模型自动填写风险评估报告，提高评估工作效率。

## 2. 需求概述

### 2.1 功能目标

使用AI大语言模型自动填写风险评估报告，支持人机协作模式（AI生成初稿 + 人工审核修改）。

### 2.2 核心特性

- 独立的评估报告模板配置（与问卷模板分离）
- 绑定多种数据源（消费、计分、狱情、亲属信息等）
- AI生成初稿，管教民警可逐项修改确认
- 报告导出（PDF/Word）
- 审核工作流

### 2.3 评估类型

| 类型 | 说明 |
|------|------|
| 入监评估 | 新犯入狱后的综合评估 |
| 定期评估 | 服刑期间定期的改造情况评估 |
| 专项评估 | 针对特定事件的专项评估 |
| 出监评估 | 假释/刑满前的释放前评估 |

## 3. 功能需求

### 3.1 评估报告模板管理

#### 3.1.1 功能描述

管理员可配置评估报告模板，包含多个评估维度和对应的AI提示词。

#### 3.1.2 功能点

| 功能 | 说明 |
|------|------|
| 模板增删改查 | 模板的基本信息管理 |
| 版本管理 | 模板版本控制 |
| 评估维度配置 | 支持拖拽排序的维度配置 |
| AI提示词配置 | 每个维度配置AI提示词 |
| 数据源绑定 | 配置维度需要使用的数据源 |

#### 3.1.3 评估维度配置

| 字段 | 类型 | 说明 |
|------|------|------|
| 维度名称 | 文本 | 如：犯罪情况分析、服刑表现评估等 |
| AI提示词 | 多行文本 | AI生成的指令模板 |
| 数据源绑定 | 多选 | 选择需要聚合的数据源 |
| 输出格式 | 下拉 | 文本/段落/列表 |
| 是否AI生成 | 开关 | 该维度是否需要AI生成 |
| 编辑器类型 | 下拉 | 文本框/富文本/下拉选择 |
| 排序 | 数字 | 维度排序 |

### 3.2 数据源类型

| 数据源类型 | 标识 | 说明 |
|-----------|------|------|
| 罪犯档案 | prisoner | 基本信息、犯罪情况、刑期等 |
| 消费记录 | consumption | 消费金额、消费类型分布 |
| 计分考核 | score | 月度得分、年度汇总、等级分布 |
| 问卷答题 | questionnaire_record | 心理测评结果、问卷得分 |
| 违规记录 | violation | 违规次数、违规类型 |
| 奖励记录 | reward | 表扬次数、立功情况 |
| 会见记录 | visit | 会见频次、会见人关系 |
| 劳动数据 | labor | 劳动效率、产量质量 |

### 3.3 评估报告管理

#### 3.3.1 工作流程

```
选择服刑人员 → 选择评估模板 → 创建报告 → AI生成初稿 → 人工修改 → 提交审核 → 审核通过 → 导出报告
                    ↓
              数据源自动聚合
```

#### 3.3.2 报告状态

| 状态 | 说明 |
|------|------|
| 草稿 | 报告刚创建，未提交审核 |
| 待审核 | 已提交，等待领导审核 |
| 已通过 | 审核通过 |
| 已驳回 | 审核被驳回，需修改后重新提交 |

#### 3.3.3 人机协作模式

- AI生成各维度初稿，显示"AI生成"标识
- 管教民警可逐维度编辑修改
- 修改后显示"人工修改"标识和修改时间
- 记录修改历史（版本管理）

### 3.4 报告导出

#### 3.4.1 导出格式

| 格式 | 用途 |
|------|------|
| PDF | 正式存档、打印 |
| Word | 修改编辑 |
| HTML | 系统内预览 |

#### 3.4.2 导出内容选项

- [x] 维度分析
- [x] 综合结论
- [x] 改造建议
- [x] 审核信息

## 4. 页面设计

### 4.1 报告编辑页面（左右分栏布局）

```
┌─────────────────────────────────────────────────────────────────────────┐
│  评估报告编辑                                                          │
├────────────────────────────┬────────────────────────────────────────────┤
│  【服刑人员列表】        │  【报告编辑区】                               │
│  ┌────────────────────┐  │  ┌────────────────────────────────────────┐  │
│  │ [搜索框] 姓名/编号 │  │  │ 服刑人员：张三 (2024001)                 │  │
│  │ [搜索按钮]         │  │  │ 监区：三分监区      风险等级：高风险      │  │
│  ├────────────────────┤  │  ├────────────────────────────────────────┤  │
│  │ [卡片列表]         │  │  │                                          │  │
│  │ ┌────────────────┐│  │  │  [基本信息]                               │  │
│  │ │ 三分监区       ││  │  │  ┌────────────────────────────────────┐  │  │
│  │ │ 张三 2024001  ││  │  │  │ 评估模板：入监风险评估 v              │  │  │
│  │ │ [高风险]       ││  │  │  │ 评估日期：2026-01-16                  │  │  │
│  │ └────────────────┘│  │  │  │ 评估类型：入监评估 v                  │  │  │
│  │                    │  │  │  └────────────────────────────────────┘  │  │
│  │ ┌────────────────┐│  │  │                                          │  │
│  │ │ 二分监区       ││  │  │  [维度分析 - 折叠面板]                    │  │
│  │ │ 李四 2024002  ││  │  │  ┌────────────────────────────────────┐  │  │
│  │ │ [中风险]       ││  │  │  │ ▼ 犯罪情况分析         [重新生成]   │  │  │
│  │ └────────────────┘│  │  │  │ 该犯因盗窃罪...                    │  │  │
│  │                    │  │  │  │ [AI生成] [已修改]                   │  │  │
│  │ ...                │  │  │  └────────────────────────────────────┘  │  │
│  ├────────────────────┤  │  ├────────────────────────────────────────┤  │
│  │ [分页组件] 1/5    │  │  │  [综合结论与建议]                         │  │
│  └────────────────────┘  │  │  ┌────────────────────────────────────┐  │  │
│                          │  │  │ 风险等级：高风险 v                   │  │  │
│                          │  │  │ 综合结论：                          │  │  │
│                          │  │  │ 改造建议：                          │  │  │
│                          │  │  └────────────────────────────────────┘  │  │
│                          │  ├────────────────────────────────────────┤  │
│                          │  │  [操作按钮]                             │  │
│                          │  │  [AI生成全部内容] [保存草稿] [提交审核]  │  │
│                          │  │  [导出PDF] [导出Word]                   │  │
│                          │  └────────────────────────────────────────┘  │
│                          │                                            │
└────────────────────────────┴────────────────────────────────────────────┘
```

### 4.2 模板配置页面

- 模板列表页：展示所有模板，支持增删改查
- 模板配置表单：配置模板名称、描述、评估类型、评估维度列表

### 4.3 报告列表页面

- 分页查询报告
- 批量操作（批量创建、批量导出）
- 操作按钮（预览、编辑、重新生成、审核、导出、删除）

## 5. 数据库设计

### 5.1 评估报告模板表 (prison_assessment_report_template)

| 字段 | 类型 | 说明 |
|------|------|------|
| id | bigint | 模板ID（主键） |
| name | varchar(100) | 模板名称 |
| description | varchar(500) | 模板说明 |
| assessment_type | tinyint | 评估类型 |
| version | varchar(20) | 模板版本 |
| status | tinyint | 状态：1-启用 2-禁用 |
| creator | varchar(64) | 创建者 |
| create_time | datetime | 创建时间 |
| updater | varchar(64) | 更新者 |
| update_time | datetime | 更新时间 |
| deleted | bit(1) | 是否删除 |
| tenant_id | bigint | 租户ID |

### 5.2 评估维度表 (prison_assessment_dimension)

| 字段 | 类型 | 说明 |
|------|------|------|
| id | bigint | 维度ID（主键） |
| template_id | bigint | 所属模板ID |
| name | varchar(100) | 维度名称 |
| description | varchar(500) | 维度说明 |
| sort | int | 排序 |
| ai_prompt | text | AI提示词模板 |
| data_source_config | text | 数据源配置JSON |
| output_format | varchar(50) | 输出格式 |
| require_ai_generate | tinyint | 是否需要AI生成 |
| editor_type | tinyint | 编辑器类型 |
| options | text | 选项JSON |
| creator | varchar(64) | 创建者 |
| create_time | datetime | 创建时间 |
| updater | varchar(64) | 更新者 |
| update_time | datetime | 更新时间 |
| deleted | bit(1) | 是否删除 |
| tenant_id | bigint | 租户ID |

### 5.3 评估报告表 (prison_assessment_report)

| 字段 | 类型 | 说明 |
|------|------|------|
| id | bigint | 报告ID（主键） |
| template_id | bigint | 使用的模板ID |
| template_name | varchar(100) | 模板名称 |
| prisoner_id | bigint | 罪犯ID |
| prisoner_no | varchar(50) | 罪犯编号 |
| prisoner_name | varchar(50) | 罪犯姓名 |
| assessment_date | date | 评估日期 |
| assessment_type | tinyint | 评估类型 |
| dimension_data | text | 维度数据JSON |
| overall_score | decimal(5,2) | 综合评分 |
| risk_level | tinyint | 风险等级 |
| conclusion | text | 综合结论 |
| suggestions | text | 改造建议 |
| ai_generate_status | tinyint | AI生成状态 |
| ai_generate_time | datetime | AI生成时间 |
| audit_status | tinyint | 审核状态 |
| auditor_id | bigint | 审核人ID |
| auditor_name | varchar(50) | 审核人姓名 |
| audit_time | datetime | 审核时间 |
| audit_remark | varchar(500) | 审核备注 |
| report_status | tinyint | 报告状态 |
| creator | varchar(64) | 创建者 |
| create_time | datetime | 创建时间 |
| updater | varchar(64) | 更新者 |
| update_time | datetime | 更新时间 |
| deleted | bit(1) | 是否删除 |
| tenant_id | bigint | 租户ID |

## 6. AI服务设计

### 6.1 AI提示词示例

```
你是一位有20年工作经验的监狱管教民警，根据以下服刑人员数据，
生成一份专业的{维度名称}分析报告。

服刑人员基本信息：
{罪犯档案数据}

服刑期间表现数据：
{计分考核数据}

消费记录分析：
{消费记录数据}

请分析该服刑人员在{维度名称}方面的表现，要求：
1. 语言专业、客观，符合监狱管理规范
2. 数据分析要具体，有理有据
3. 字数控制在200-500字
```

### 6.2 AI服务接口

```java
public interface AiService {
    /**
     * 生成评估报告
     * @param dimension 评估维度配置
     * @param dataSources 所有数据源数据
     * @return AI生成的内容
     */
    String generateContent(DimensionConfig dimension, Map<String, Object> dataSources);

    /**
     * 批量生成报告（定时任务用）
     */
    void batchGenerateReports(Long templateId, List<Long> prisonerIds);
}
```

## 7. 权限设计

| 角色 | 权限 |
|------|------|
| 管教民警 | 创建报告、编辑、导出、AI生成 |
| 分监区领导 | 审核报告 |
| 监狱领导 | 查看全监区评估统计报表 |
| 管理员 | 模板管理、系统配置 |

## 8. 外部系统对接

### 8.1 数据同步

- 外部系统数据导入到系统内部
- 同步工具定期从其他系统拉取数据

### 8.2 AI模型接入

- 调试阶段：使用第三方API（OpenAI/Claude等）
- 生产部署：单位私有部署的模型

## 9. 验收标准

### 9.1 功能验收

- [ ] 模板创建：添加模板，配置多个评估维度
- [ ] 报告创建：选择模板和服刑人员，触发AI生成
- [ ] 内容修改：编辑AI生成的初稿内容
- [ ] 提交审核：报告状态流转测试
- [ ] 导出测试：验证PDF/Word导出格式

### 9.2 AI生成验收

- [ ] 使用真实服刑人员数据测试AI生成
- [ ] 验证数据源绑定是否正确
- [ ] 验证提示词是否有效
- [ ] 评估生成内容的质量

### 9.3 权限验收

- [ ] 民警角色：创建报告、编辑、导出
- [ ] 领导角色：审核报告、查看统计
- [ ] 管理员角色：模板管理

## 10. 风险与注意事项

1. **数据安全**：AI生成内容需人工审核后才能存档
2. **敏感数据**：家庭背景等敏感信息需要脱敏处理
3. **生成日志**：AI生成日志要可追溯
4. **版本管理**：报告修改历史需要保留

## 11. 后续扩展

- [ ] 评估报告模板导入导出（JSON格式）
- [ ] 批量生成（定时任务批量生成报告）
- [ ] 评估报告模板版本对比
- [ ] 与司法部报表系统对接
- [ ] 评估报告统计分析大屏

---

**文档版本**: v1.0
**创建日期**: 2026-01-16
**作者**: AI助手
