feat: 1. 完善交叉评查上传创建任务,改成动态加载文档类型。
2. 重新对齐交叉评查的接口。
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { UPLOAD_URL } from '../../config/api-config';
|
||||
import { UPLOAD_URL, API_BASE_URL } from '../../config/api-config';
|
||||
import axios from 'axios';
|
||||
|
||||
/**
|
||||
@@ -208,6 +208,7 @@ export async function uploadCrossCheckingDocument(
|
||||
* @param assignUserIds 需要分配的用户ID数组
|
||||
* @param taskName 任务名称
|
||||
* @param docType 文档类型(如 XZCF、XZXK)
|
||||
* @param taskType 任务类型(如 市局间交叉评查、区局间交叉评查)
|
||||
* @param token JWT Token
|
||||
*/
|
||||
export async function batchUploadAndAssignCrossCheckingFiles(
|
||||
@@ -220,6 +221,7 @@ export async function batchUploadAndAssignCrossCheckingFiles(
|
||||
assignUserIds: number[],
|
||||
taskName: string,
|
||||
docType: string,
|
||||
taskType: string = '市局间交叉评查',
|
||||
token: string | null = null
|
||||
): Promise<{
|
||||
successes: Array<{file: CrossCheckingUploadedFile; result: Record<string, unknown>}>;
|
||||
@@ -229,6 +231,10 @@ export async function batchUploadAndAssignCrossCheckingFiles(
|
||||
const failures: Array<{file: CrossCheckingUploadedFile; error: string}> = [];
|
||||
const uploadEndpoint = '/cross_review/documents/upload_and_assign';
|
||||
const uploadUrl = UPLOAD_URL + uploadEndpoint;
|
||||
|
||||
// console.log('[批量上传] 任务类型:', taskType, '文档类型:', docType);
|
||||
|
||||
|
||||
for (const fileInfo of files) {
|
||||
try {
|
||||
const formData = new FormData();
|
||||
@@ -240,15 +246,22 @@ export async function batchUploadAndAssignCrossCheckingFiles(
|
||||
remark: remark || null,
|
||||
is_test_document: isTestDocument,
|
||||
task_name: taskName,
|
||||
doc_type: typeof docType === 'string' ? docType.toUpperCase() : docType
|
||||
doc_type: typeof docType === 'string' ? docType.toUpperCase() : docType,
|
||||
task_type: taskType
|
||||
};
|
||||
// console.log('fileInfo', fileInfo)
|
||||
|
||||
formData.append('upload_info', JSON.stringify(uploadInfo));
|
||||
formData.append('assign_user_ids', JSON.stringify(assignUserIds));
|
||||
|
||||
const headers: Record<string, string> = {};
|
||||
|
||||
if (token) headers['Authorization'] = `Bearer ${token}`;
|
||||
|
||||
const response = await axios.post(uploadUrl, formData, {
|
||||
headers
|
||||
});
|
||||
|
||||
const result = response.data;
|
||||
if (result && result.success) {
|
||||
successes.push({ file: fileInfo, result });
|
||||
@@ -262,6 +275,71 @@ export async function batchUploadAndAssignCrossCheckingFiles(
|
||||
return { successes, failures };
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建交叉评查任务
|
||||
* @param taskData 任务数据
|
||||
* @param token JWT Token
|
||||
* @returns 创建结果
|
||||
*/
|
||||
export async function createCrossReviewTask(taskData: {
|
||||
documentIds: number[];
|
||||
userIds: number[];
|
||||
assignerId: number;
|
||||
taskName: string;
|
||||
docType: string;
|
||||
taskType?: string;
|
||||
}, token: string | null = null): Promise<{
|
||||
success: boolean;
|
||||
data?: unknown;
|
||||
error?: string;
|
||||
}> {
|
||||
try {
|
||||
const requestBody = {
|
||||
document_ids: taskData.documentIds,
|
||||
user_ids: taskData.userIds,
|
||||
assigner_id: taskData.assignerId,
|
||||
task_name: taskData.taskName,
|
||||
doc_type: taskData.docType,
|
||||
task_type: taskData.taskType || '市局间交叉评查'
|
||||
};
|
||||
|
||||
// console.log('[创建任务] 请求数据:', requestBody);
|
||||
|
||||
const headers: Record<string, string> = {
|
||||
'Content-Type': 'application/json'
|
||||
};
|
||||
if (token) {
|
||||
headers['Authorization'] = `Bearer ${token}`;
|
||||
}
|
||||
|
||||
const response = await axios.post(
|
||||
`${API_BASE_URL}/admin/cross_review/tasks/assign`,
|
||||
requestBody,
|
||||
{ headers }
|
||||
);
|
||||
|
||||
console.log('[创建任务] 成功:', response.data);
|
||||
return {
|
||||
success: true,
|
||||
data: response.data
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('[创建任务] 失败:', error);
|
||||
|
||||
let errorMessage = '创建任务失败';
|
||||
if (axios.isAxiosError(error) && error.response?.data) {
|
||||
errorMessage = error.response.data.msg || errorMessage;
|
||||
} else if (error instanceof Error) {
|
||||
errorMessage = error.message || errorMessage;
|
||||
}
|
||||
|
||||
return {
|
||||
success: false,
|
||||
error: errorMessage
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成唯一文件ID
|
||||
* @returns 唯一ID字符串
|
||||
|
||||
Reference in New Issue
Block a user