From e9dda9e6c52cb737267185f5118ded73c0053115 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期二, 06 五月 2025 17:13:41 +0800 Subject: [PATCH] feat: 接口 --- src/components/commonView/utils/index.ts | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 170 insertions(+), 4 deletions(-) diff --git a/src/components/commonView/utils/index.ts b/src/components/commonView/utils/index.ts index b18bb98..9550a10 100644 --- a/src/components/commonView/utils/index.ts +++ b/src/components/commonView/utils/index.ts @@ -1,9 +1,19 @@ -import { convertApi2FormUrlOnlyOne } from '@/utils'; +import { convertApi2FormUrl, convertApi2FormUrlOnlyOne } from '@/utils'; import { + ApplyTransferMaterialFileTableItem, + FourStreamsMaterialFileTableItem, + TransferFileEnumInRewardGrandTableItem, +} from '../types'; +import { UploadUserFile } from '@bole-core/components'; +import _ from 'lodash'; +import { + ApplyTransferFileBusinessTypeEnum, + ApplyTransferFileBusinessTypeEnumKey, FourStreamsMaterialFileBusinessTypeEnum, FourStreamsMaterialFileBusinessTypeEnumKey, - FourStreamsMaterialFileTableItem, -} from '../types'; + TransferFileEnumInRewardGrand, + TransferFileEnumInRewardGrandKey, +} from '@/constants'; export class FourStreamsMaterialUtils { /**瀹炰綋浜т笟鍥潗鏂� */ @@ -17,11 +27,24 @@ /**鏁板瓧缁忔祹鍥潗鏂� */ static DigitIndustrialParkMaterialFile = [ FourStreamsMaterialFileBusinessTypeEnum.ParkEnterPactUrl, - FourStreamsMaterialFileBusinessTypeEnum.EnterRelateUrl, + // FourStreamsMaterialFileBusinessTypeEnum.EnterRelateUrl, FourStreamsMaterialFileBusinessTypeEnum.RatePaymentFileUrl, FourStreamsMaterialFileBusinessTypeEnum.TaxSubFileUrl, FourStreamsMaterialFileBusinessTypeEnum.OperateProfitesUrl, FourStreamsMaterialFileBusinessTypeEnum.PersonTaxRatePayUrl, + FourStreamsMaterialFileBusinessTypeEnum.PersonTaxInstructUrl, + ]; + + /**璐㈡斂鎷ㄤ粯鍜屽钩鍙板厖鍊煎嚟璇� */ + static ApplyTransferMaterialFile = [ + ApplyTransferFileBusinessTypeEnum.FinanceToFileUrl, + ApplyTransferFileBusinessTypeEnum.TransferToFileUrl, + ]; + + /**璐㈡斂鎷ㄤ粯鍜屽钩鍙板厖鍊煎嚟璇� 濂栧姳閲戝彂鏀�*/ + static TransferFileEnumInRewardGrandFile = [ + TransferFileEnumInRewardGrand.FinanceFileUrl, + TransferFileEnumInRewardGrand.SettleFileUrl, ]; static isFourStreamsParkType(parkTypeName) { @@ -55,6 +78,34 @@ ]) ); } + + static initApplyTransferMaterialFileList< + T extends { financeToFileUrl?: string; transferToFileUrl?: string } + >(data: T) { + return this.ApplyTransferMaterialFile.map((item) => { + const filePathList = data[ApplyTransferFileBusinessTypeEnumKey[item]] + ? data[ApplyTransferFileBusinessTypeEnumKey[item]].split('|') + : []; + return { + fileBusinessType: item, + fileList: filePathList.map(convertApi2FormUrl), + } as ApplyTransferMaterialFileTableItem; + }); + } + + static initApplyRewardGrandFileList< + T extends { financeFileUrl?: string; settleFileUrl?: string } + >(data: T) { + return this.TransferFileEnumInRewardGrandFile.map((item) => { + const filePathList = data[TransferFileEnumInRewardGrandKey[item]] + ? data[TransferFileEnumInRewardGrandKey[item]].split('|') + : []; + return { + fileBusinessType: item, + fileList: filePathList.map(convertApi2FormUrl), + } as TransferFileEnumInRewardGrandTableItem; + }); + } } export class ParkTypeUtils { @@ -65,3 +116,118 @@ return parkTypeName === '鏁板瓧缁忔祹鍥�'; } } + +export type CustomerApplyFileTypeListItem = { + id?: string; + fileSearchTypeId?: string; + fileTypeName?: string; + lastUpdateTime?: string; + listFiles?: (API.CustomerUploadMonthApplyFileTypeDto & UploadUserFile)[]; +}; + +export class EnterpriseApplyFileUtils { + static convertApiFileToParkCollectFileList(listFiles: API.CustomerUploadMonthApplyFileTypeDto[]) { + const group = _.groupBy(listFiles, 'fileSearchTypeId'); + return Object.keys(group).map( + (x) => + ({ + fileSearchTypeId: x, + fileTypeName: group[x][0].fileSearchTypeName, + listFiles: group[x] + .filter((x) => !!x.fileUrl) + .map((a) => ({ + ...a, + ...convertApi2FormUrl(a.fileUrl), + })), + } as CustomerApplyFileTypeListItem) + ); + } + + static initParkCollectFileList(parkCollectFileTypeList: API.GetCustomerUploadApplyFilesOutput[]) { + return parkCollectFileTypeList.map( + (x) => + ({ + fileSearchTypeId: x.fileSearchTypeId, + fileTypeName: x.fileTypeName, + listFiles: [], + } as CustomerApplyFileTypeListItem) + ); + } + + static initParkCollectFileListApplyFiles( + applyUploadFiles: API.GetEnterpriseParkApplyUploadFileOutput[], + applyFiles: API.GetCustomerUploadApplyFilesOutput[], + lastUploadEnterPactFile: API.CustomerUploadMonthApplyFileTypeDto[] + ) { + return applyUploadFiles.map((x) => { + const applyFile = applyFiles.find((a) => a.fileSearchTypeId === x.fileSearchTypeId); + let listFiles: API.CustomerUploadMonthApplyFileTypeDto[]; + if (x.fileSearchTypeName === '鍥尯鍏ラ┗鍗忚') { + listFiles = !x.listFiles.length ? lastUploadEnterPactFile : x.listFiles; + } else { + listFiles = + !x.listFiles.length && applyFile?.listFiles?.length > 0 + ? applyFile.listFiles + : x.listFiles; + } + + return { + fileSearchTypeId: x.fileSearchTypeId, + fileTypeName: x.fileSearchTypeName, + listFiles: listFiles.map((a) => ({ ...a, ...convertApi2FormUrl(a.fileUrl) })), + } as CustomerApplyFileTypeListItem; + }); + } + + static convertFileTableListToApi(fileTableList: CustomerApplyFileTypeListItem[]) { + return fileTableList.map( + (x) => + ({ + fileSearchTypeId: x.fileSearchTypeId, + listFiles: x.listFiles.map((a) => ({ + fileSearchTypeId: x.fileSearchTypeId, + fileSearchTypeName: x.fileTypeName, + fileSize: a.fileSize || a.size, + fileUrl: a.path, + })), + } as API.CustomerUploadMonthApplyFileType) + ); + } + + static convertFileTableListToApplyCompanyFile(fileTableList: CustomerApplyFileTypeListItem[]) { + return fileTableList.map( + (x) => + ({ + fileSearchTypeId: x.fileSearchTypeId, + fileSearchTypeName: x.fileTypeName, + listFiles: x.listFiles.map((a) => ({ + fileSearchTypeId: x.fileSearchTypeId, + fileSearchTypeName: x.fileTypeName, + fileSize: a.fileSize || a.size, + fileUrl: a.path, + })), + } as API.UploadParkApplyCustomerFileTypes) + ); + } + + static convertFileTableListToApiBatch(fileTableList: CustomerApplyFileTypeListItem[]) { + const applyFileTypeList = this.convertFileTableListToApi(fileTableList); + return _.flatMap(applyFileTypeList, (x) => x.listFiles); + } + + static isFileTableListAllUploaded(fileTableList: CustomerApplyFileTypeListItem[]) { + return fileTableList.every((fileTableListItem) => { + return fileTableListItem.listFiles.every((fileItem) => { + return fileItem.status === 'success'; + }); + }); + } + + static isFileTableListExist(fileTableList: CustomerApplyFileTypeListItem[]) { + return fileTableList.some((fileTableListItem) => { + return fileTableListItem.listFiles.some((fileItem) => { + return fileItem.status === 'success'; + }); + }); + } +} -- Gitblit v1.9.1