From 89f387786da0e4383cf06ee162526db54971f9cf Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 23 十月 2025 15:21:16 +0800
Subject: [PATCH] fix: s
---
src/components/commonView/utils/index.ts | 219 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 215 insertions(+), 4 deletions(-)
diff --git a/src/components/commonView/utils/index.ts b/src/components/commonView/utils/index.ts
index b18bb98..2372a8d 100644
--- a/src/components/commonView/utils/index.ts
+++ b/src/components/commonView/utils/index.ts
@@ -1,9 +1,21 @@
-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,
+ FourStreamsExtraMaterialFileSearchType,
+ SearchType,
+} from '@/constants';
export class FourStreamsMaterialUtils {
/**瀹炰綋浜т笟鍥潗鏂� */
@@ -17,11 +29,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 +80,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 +118,161 @@
return parkTypeName === '鏁板瓧缁忔祹鍥�';
}
}
+
+export type CustomerApplyFileTypeListItem = {
+ id?: string;
+ fileSearchTypeId?: string;
+ searchType?: number;
+ 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 convertApiFileToExtraListFiles(listFiles: API.CustomerUploadMonthApplyFileTypeDto[]) {
+ if (listFiles.length > 0) {
+ return this.convertApiFileToParkCollectFileList(listFiles);
+ } else {
+ return [
+ {
+ fileSearchTypeId: FourStreamsExtraMaterialFileSearchType[SearchType.BountyExtraFileType],
+ fileTypeName: '琛ュ厖鏉愭枡',
+ listFiles: [],
+ } as CustomerApplyFileTypeListItem,
+ ];
+ }
+ }
+
+ static initParkCollectFileListApplyFiles(
+ applyUploadFiles: API.GetEnterpriseParkApplyUploadFileOutput[],
+ applyFiles: API.GetCustomerUploadApplyFilesOutput[],
+ lastUploadEnterPactFile: API.CustomerUploadMonthApplyFileTypeDto[],
+ applyUploadExtraFiles: API.GetEnterpriseParkApplyUploadFileOutput[]
+ ) {
+ const extraFiles =
+ applyUploadExtraFiles.length > 0
+ ? applyUploadExtraFiles.map((x) => {
+ return {
+ fileSearchTypeId: x.fileSearchTypeId,
+ fileTypeName: x.fileSearchTypeName,
+ listFiles: x.listFiles.map((a) => ({ ...a, ...convertApi2FormUrl(a.fileUrl) })),
+ } as CustomerApplyFileTypeListItem;
+ })
+ : [
+ {
+ fileSearchTypeId:
+ FourStreamsExtraMaterialFileSearchType[SearchType.BountyApplyExtraFileType],
+ fileTypeName: '琛ュ厖鏉愭枡',
+ listFiles: [],
+ } as CustomerApplyFileTypeListItem,
+ ];
+
+ 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;
+ })
+ .concat(extraFiles);
+ }
+
+ static isApplyUploadExtraFileSearchTypeId(fileSearchTypeId: string) {
+ return (
+ (fileSearchTypeId ?? '').toLowerCase() ===
+ FourStreamsExtraMaterialFileSearchType[SearchType.BountyApplyExtraFileType].toLowerCase()
+ );
+ }
+
+ 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