import request from '@/config/axios' // 导入评估报告更新请求类型 import type { ReportUpdateReqVO } from '../evaluation-report' // ============ 评估报告模板相关类型 ============ /** 评估报告模板分页参数 */ export interface ReportTemplatePageParams { pageNo: number pageSize: number name?: string type?: number status?: number } /** 评估维度配置 */ export interface ReportDimension { id?: number name: string // 维度名称 aiPrompt?: string // AI提示词 dataSources: string[] // 数据源绑定 outputFormat: string // 输出格式:text/paragraph/list enableAi: boolean // 是否AI生成 editorType: string // 编辑器类型:text/richtext/select sort: number // 排序 } /** 评估报告模板 */ export interface ReportTemplate { id: number name: string // 模板名称 type: number // 模板类型:1-入监综合评估 2-定期考核报告 3-出监评估 4-减刑假释建议 5-专项评估 titleFormat: string // 报告标题格式 dimensions: ReportDimension[] // 评估维度 aiPromptConfig?: string // AI提示词配置(JSON) styleConfig?: string // 样式配置(JSON) status: number // 状态:0-停用 1-启用 isDefault: boolean // 是否默认 version: number // 版本号 remark?: string // 备注 creator?: string createTime?: string } // ============ 评估报告相关类型 ============ /** 报告分页参数 */ export interface ReportPageParams { pageNo: number pageSize: number reportNo?: string prisonerNo?: string templateId?: number status?: number reportDate?: string[] } /** 报告维度内容 */ export interface ReportDimensionContent { dimensionId: number dimensionName: string content: string // 内容 dataSources?: string // 数据源(JSON) isAiGenerated: boolean // 是否AI生成 aiGenerateTime?: string // AI生成时间 lastModifyTime?: string // 最后修改时间 lastModifyBy?: string // 最后修改人 enableAi?: boolean sort?: number } /** 评估报告 */ export interface Report { id: number reportNo: string // 报告编号 prisonerId: number // 罪犯ID prisonerNo: string // 罪犯编号 prisonerName?: string // 罪犯姓名 areaId?: number // 监区ID areaName?: string // 监区名称 templateId: number // 模板ID templateName?: string // 模板名称 title: string // 报告标题 reportDate: string // 报告日期 dimensions: ReportDimensionContent[] // 维度内容 conclusion?: string // 综合结论 suggestions?: string // 改造建议 riskLevel?: number // 风险等级:1-低风险 2-中风险 3-高风险 4-极高风险 attachments?: string[] // 附件列表 status: number // 状态:1-草稿 2-待审核 3-已通过 4-已退回 version: number // 版本号 signature?: string // 数字签名 fingerprint?: string // 报告指纹 submitterId?: number // 提交人ID submitterName?: string // 提交人姓名 submitTime?: string // 提交时间 reviewerId?: number // 审核人ID reviewerName?: string // 审核人姓名 reviewTime?: string // 审核时间 reviewComment?: string // 审核意见 remark?: string // 备注 creator?: string createTime?: string } /** 报告创建请求 */ export interface ReportCreateReqVO { prisonerId: number templateId: number title: string reportDate?: string evaluationDate?: string evaluationCycle?: number evaluationType?: number prisonerNo?: string prisonerName?: string areaId?: number areaName?: string status?: number dimensions?: ReportDimensionContent[] } // ============ 快捷评语相关类型 ============ /** 快捷评语分类 */ export interface CommentCategory { id: number name: string type: number // 评估类型 sort: number status: number } /** 快捷评语 */ export interface QuickComment { id: number categoryId: number categoryName?: string // 分类名称 content: string usageCount: number // 使用次数 sort: number status: number } // ============ 报告版本历史 ============ /** 报告版本历史 */ export interface ReportVersion { id: number reportId: number version: number content: string // 内容快照(JSON) modifierId: number modifierName: string modifyTime: string comment?: string // 版本备注 } // ============ 评估报告模板 API ============ export const ReportTemplateApi = { // 查询模板分页 getTemplatePage: async (params: ReportTemplatePageParams) => { return await request.get({ url: '/prison/evaluation-report/template/page', params }) }, // 查询模板详情 getTemplate: async (id: number) => { return await request.get({ url: '/prison/evaluation-report/template/get?id=' + id }) }, // 新增模板 createTemplate: async (data: ReportTemplate) => { return await request.post({ url: '/prison/evaluation-report/template/create', data }) }, // 修改模板 updateTemplate: async (data: ReportTemplate) => { return await request.put({ url: '/prison/evaluation-report/template/update', data }) }, // 删除模板 deleteTemplate: async (id: number) => { return await request.delete({ url: '/prison/evaluation-report/template/delete?id=' + id }) }, // 批量删除模板 deleteTemplateList: async (ids: number[]) => { return await request.delete({ url: '/prison/evaluation-report/template/delete-list?ids=' + ids.join(',') }) }, // 获取启用的模板列表 getEnabledTemplateList: async () => { return await request.get({ url: '/prison/evaluation-report/template/list-enabled' }) }, // 导出模板 exportTemplate: async (params: ReportTemplatePageParams) => { return await request.download({ url: '/prison/evaluation-report/template/export-excel', params }) } } // ============ 评估报告 API ============ export const ReportApi = { // 查询报告分页 getReportPage: async (params: ReportPageParams) => { return await request.get({ url: '/prison/evaluation-report/report/page', params }) }, // 查询报告详情 getReport: async (id: number) => { return await request.get({ url: '/prison/evaluation-report/report/get?id=' + id }) }, // 根据报告编号查询 getReportByNo: async (reportNo: string) => { return await request.get({ url: '/prison/evaluation-report/report/get-by-report-no?reportNo=' + reportNo }) }, // 根据罪犯ID获取报告列表 getReportsByPrisonerId: async (prisonerId: number) => { return await request.get({ url: '/prison/evaluation-report/report/list-by-prisoner?prisonerId=' + prisonerId }) }, // 新增报告 createReport: async (data: ReportCreateReqVO) => { return await request.post({ url: '/prison/evaluation-report/report/create', data }) }, // 修改报告 - 只传递需要更新的字段 updateReport: async (data: ReportUpdateReqVO) => { return await request.put({ url: '/prison/evaluation-report/report/update', data }) }, // 删除报告 deleteReport: async (id: number) => { return await request.delete({ url: '/prison/evaluation-report/report/delete?id=' + id }) }, // 批量删除报告 deleteReportList: async (ids: number[]) => { return await request.delete({ url: '/prison/evaluation-report/report/delete-list?ids=' + ids.join(',') }) }, // 提交审核 submitReport: async (id: number) => { return await request.post({ url: '/prison/evaluation-report/report/submit?id=' + id }) }, // 审核报告 auditReport: async (id: number, status: number, comment?: string) => { return await request.post({ url: '/prison/evaluation-report/report/audit', data: { id, status, comment } }) }, // 作废报告 voidReport: async (id: number) => { return await request.post({ url: '/prison/evaluation-report/report/void?id=' + id }) }, // 导出报告 Excel exportReportExcel: async (params: ReportPageParams) => { return await request.download({ url: '/prison/evaluation-report/report/export-excel', params }) }, // AI生成报告 generateReportByAi: async (reportId: number, dimensionIds?: number[]) => { return await request.post({ url: '/prison/evaluation-report/report/generate-by-ai', data: { reportId, dimensionIds } }) }, // AI生成单个维度 generateDimensionByAi: async (reportId: number, dimensionId: number) => { return await request.post({ url: '/prison/evaluation-report/dimension/generate-by-ai', data: { reportId, dimensionId } }) } } // ============ 快捷评语 API ============ export const QuickCommentApi = { // 查询评语分页 getCommentPage: async (params: { pageNo: number; pageSize: number; categoryId?: number; keyword?: string; status?: number }) => { return await request.get({ url: '/prison/evaluation-report/comment/page', params }) }, // 根据类型和等级获取评语列表 getCommentsByTypeAndLevel: async (commentType: number, level?: number) => { return await request.get({ url: '/prison/evaluation-report/comment/list-by-type-level', params: { commentType, level } }) }, // 根据维度ID获取评语列表 getCommentsByDimensionId: async (dimensionId: number) => { return await request.get({ url: '/prison/evaluation-report/comment/list-by-dimension', params: { dimensionId } }) }, // 新增评语 createComment: async (data: QuickComment) => { return await request.post({ url: '/prison/evaluation-report/comment/create', data }) }, // 修改评语 updateComment: async (data: QuickComment) => { return await request.put({ url: '/prison/evaluation-report/comment/update', data }) }, // 删除评语 deleteComment: async (id: number) => { return await request.delete({ url: '/prison/evaluation-report/comment/delete?id=' + id }) }, // 批量删除评语 deleteCommentList: async (ids: number[]) => { return await request.delete({ url: '/prison/evaluation-report/comment/delete-list?ids=' + ids.join(',') }) }, // 获取评语详情 getComment: async (id: number) => { return await request.get({ url: '/prison/evaluation-report/comment/get?id=' + id }) } } // ============ 罪犯选择相关 API ============ /** 罪犯简要信息 */ export interface PrisonerBrief { id: number prisonerNo: string name: string areaId: number areaName: string riskLevel?: number // 风险等级 } /** 罪犯分页参数 */ export interface PrisonerPageParams { pageNo: number pageSize: number name?: string prisonerNo?: string areaId?: number } export const PrisonerSelectApi = { // 查询罪犯简要信息分页 getPrisonerPage: async (params: PrisonerPageParams) => { return await request.get({ url: '/prison/prisoner/brief/page', params }) }, // 查询所有罪犯简要信息(用于选择列表) getAllPrisoners: async (params: { name?: string; prisonerNo?: string }) => { return await request.get({ url: '/prison/prisoner/brief/list', params }) } } // ============ 报告版本历史 API ============ export const ReportVersionApi = { // 获取版本历史列表 getVersionList: async (reportId: number) => { return await request.get({ url: '/prison/evaluation-report/version/list-by-report', params: { reportId } }) }, // 恢复版本 restoreVersion: async (versionId: number) => { return await request.post({ url: '/prison/evaluation-report/version/restore', data: { id: versionId } }) } }