Files
hzdyjs/web/src/api/cw/approvalRecord.ts
T
2025-07-30 23:24:43 +08:00

186 lines
4.2 KiB
TypeScript

/**
* 财务审批记录管理 - API服务
*
* @author ruoyi
* @date 2025-01-28
*/
import request from '@/utils/request';
import type { AxiosPromise } from 'axios';
// 审批记录查询参数
export interface CwApprovalRecordQuery {
pageNum?: number;
pageSize?: number;
applicationNo?: string;
projectName?: string;
applicantName?: string;
approvalStatus?: string;
approverName?: string;
currentApprover?: string;
deptId?: string;
submitTimeBegin?: string;
submitTimeEnd?: string;
needApproval?: boolean;
}
// 审批记录VO
export interface CwApprovalRecordVO {
id: string | number;
applicationId: string | number;
applicationNo: string;
projectName: string;
applicantName: string;
deptName: string;
totalInvestment: number;
currentApproverName: string;
approvalStatus: string;
submitTime: string;
approvalTime?: string;
approverName?: string;
approvalComment?: string;
approvalResult?: string;
}
// 审批表单
export interface CwApprovalForm {
applicationId?: string | number;
applicationIds?: Array<string | number>;
approvalResult: string;
approvalComment: string;
nextApprover?: string | number;
}
// 审批历史记录
export interface CwApprovalHistoryVO {
id: string | number;
applicationId: string | number;
approverName: string;
approvalResult: string;
approvalComment: string;
approvalTime: string;
stepName: string;
stepOrder: number;
}
// 查询审批记录列表
export const listApprovalRecord = (query: CwApprovalRecordQuery): AxiosPromise<CwApprovalRecordVO[]> => {
return request({
url: '/cw/approval/list',
method: 'get',
params: query
});
};
// 查询审批记录详情
export const getApprovalRecord = (id: string | number): AxiosPromise<CwApprovalRecordVO> => {
return request({
url: '/cw/approval/' + id,
method: 'get'
});
};
// 审批申报(单个)
export const approveApplication = (data: CwApprovalForm) => {
return request({
url: '/cw/approval/process',
method: 'post',
data: data
});
};
// 批量审批申报
export const batchApproveApplication = (data: CwApprovalForm) => {
return request({
url: '/cw/approval/batchApprove',
method: 'post',
data: data
});
};
// 获取审批历史记录
export const getApprovalHistory = (applicationId: string | number): AxiosPromise<CwApprovalHistoryVO[]> => {
return request({
url: '/cw/approval/byApplication/' + applicationId,
method: 'get'
});
};
// 获取当前用户待审批列表
export const getPendingApprovals = (query: CwApprovalRecordQuery): AxiosPromise<CwApprovalRecordVO[]> => {
return request({
url: '/cw/approval/pending',
method: 'get',
params: query
});
};
// 获取当前用户已审批列表
export const getMyApprovals = (query: CwApprovalRecordQuery): AxiosPromise<CwApprovalRecordVO[]> => {
return request({
url: '/cw/approval/my',
method: 'get',
params: query
});
};
// 获取部门审批列表
export const getDepartmentApprovals = (query: CwApprovalRecordQuery): AxiosPromise<CwApprovalRecordVO[]> => {
return request({
url: '/cw/approval/dept/pending',
method: 'get',
params: query
});
};
// 获取可选审批人列表
export const getAvailableApprovers = (applicationId: string | number): AxiosPromise<any[]> => {
return request({
url: '/cw/approval/approvers/' + applicationId,
method: 'get'
});
};
// 导出审批记录
export const exportApprovalRecord = (query: CwApprovalRecordQuery) => {
return request({
url: '/cw/approval/export',
method: 'post',
data: query
});
};
// 获取审批统计数据
export const getApprovalStatistics = (year?: number) => {
return request({
url: '/cw/approval/statistics',
method: 'get',
params: { year }
});
};
// 按部门统计审批数据
export const getApprovalStatsByDept = () => {
return request({
url: '/cw/approval/statsByDept',
method: 'get'
});
};
// 按月份统计审批数据
export const getApprovalStatsByMonth = (year?: number) => {
return request({
url: '/cw/approval/statsByMonth',
method: 'get',
params: { query: { year } }
});
};
// 获取审批效率统计
export const getApprovalEfficiency = () => {
return request({
url: '/cw/approval/efficiency',
method: 'get'
});
};