import request from '@/config/axios' // 性别枚举:0-未知 1-男 2-女 export const GENDER_ENUM = { UNKNOWN: 0, MALE: 1, FEMALE: 2 } as const export type GenderType = typeof GENDER_ENUM[keyof typeof GENDER_ENUM] export interface PrisonerVO { id: number prisonerNo: string name: string gender: number // 性别:0-未知 1-男 2-女 genderName?: string // 性别名称 birthday: string idCard: string ethnicity: string nativePlace: string education: number educationName?: string // 文化程度名称 occupation: string address: string crime: string sentenceYears: number sentenceMonths: number lifeImprisonment: number deathSentenceReprieve: number courtName: string judgmentDate: string judgmentNo: string originalSentence: string imprisonmentDate: string releaseDate: string supervisionLevel: number supervisionLevelName?: string // 监管等级名称 riskLevel: number riskLevelName?: string // 风险等级名称 prisonAreaId: number prisonAreaName?: string // 监区名称 prisonCellId: number prisonCellName?: string // 监室名称 status: number statusName?: string // 状态名称 photo?: string // 照片URL releaseType?: number // 释放类型 releaseReason?: string // 释放原因 remark: string createTime: Date } // 服刑人员创建/更新请求 export interface PrisonerCreateVO { id?: number prisonerNo: string name: string gender: number // 性别:0-未知 1-男 2-女 birthday: string idCard: string ethnicity: string nativePlace: string education: number occupation: string address: string crime: string sentenceYears: number sentenceMonths: number lifeImprisonment: number deathSentenceReprieve: number courtName: string judgmentDate: string judgmentNo: string originalSentence: string imprisonmentDate: string releaseDate: string supervisionLevel: number riskLevel: number prisonAreaId: number prisonCellId: number photo?: string // 照片URL remark: string } // PrisonerApi 对象 - 统一使用对象导出模式 export const PrisonerApi = { // 分页查询 getPage: (params: PageParam) => { return request.get({ url: '/prison/prisoner/page', params }) }, // 获取详情 get: (id: number) => { return request.get({ url: '/prison/prisoner/get', params: { id } }) }, // 创建 create: (data: PrisonerCreateVO) => { return request.post({ url: '/prison/prisoner/create', data }) }, // 更新 update: (data: PrisonerCreateVO) => { return request.put({ url: '/prison/prisoner/update', data }) }, // 删除 delete: (id: number) => { return request.delete({ url: '/prison/prisoner/delete', params: { id } }) }, // 批量删除 deleteList: (ids: number[]) => { return request.delete({ url: '/prison/prisoner/delete-list', params: { ids: ids.join(',') } }) }, // 导出 export: (params: PageParam) => { return request.download({ url: '/prison/prisoner/export-excel', params }) }, // 调监 doTransfer: (data: TransferReqVO) => { return request.post({ url: '/prison/prisoner/transfer', params: data }) }, // 获取位置历史 getAreaHistory: (prisonerId: number) => { return request.get({ url: '/prison/prisoner-area-log/list-by-prisoner-id', params: { prisonerId } }) }, // 导入 import: (data: FormData) => { return request.upload({ url: '/prison/prisoner/import-excel', data }) } } // 调监请求 export interface TransferReqVO { prisonerId: number targetCellId: number reason?: string } // 罪犯位置历史记录 export interface PrisonerAreaLogVO { id: number prisonerId: number prisonerNo: string prisonerName: string fromAreaId: number fromAreaName: string fromCellId: number fromCellName: string toAreaId: number toAreaName: string toCellId: number toCellName: string transferType: number transferTypeName: string reason: string operatorId: number operatorName: string createTime: string }