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