import { convertApi2FormUrl, convertApi2FormUrlOnlyOne } from '@/utils';
|
import {
|
ApplyTransferFileBusinessTypeEnum,
|
ApplyTransferFileBusinessTypeEnumKey,
|
ApplyTransferMaterialFileTableItem,
|
FourStreamsMaterialFileBusinessTypeEnum,
|
FourStreamsMaterialFileBusinessTypeEnumKey,
|
FourStreamsMaterialFileTableItem,
|
TransferFileEnumInRewardGrand,
|
TransferFileEnumInRewardGrandKey,
|
TransferFileEnumInRewardGrandTableItem,
|
} from '../types';
|
|
export class FourStreamsMaterialUtils {
|
/**实体产业园材料 */
|
static PhysicalIndustrialParkMaterialFile = [
|
FourStreamsMaterialFileBusinessTypeEnum.ParkEnterPactUrl,
|
FourStreamsMaterialFileBusinessTypeEnum.RatePaymentFileUrl,
|
FourStreamsMaterialFileBusinessTypeEnum.TaxSubFileUrl,
|
FourStreamsMaterialFileBusinessTypeEnum.OperateProfitesUrl,
|
];
|
|
/**数字经济园材料 */
|
static DigitIndustrialParkMaterialFile = [
|
FourStreamsMaterialFileBusinessTypeEnum.ParkEnterPactUrl,
|
// 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) {
|
return (
|
ParkTypeUtils.isPhysicalIndustrialPark(parkTypeName) ||
|
ParkTypeUtils.isDigitIndustrialPark(parkTypeName)
|
);
|
}
|
|
static initFourStreamsMaterialFileList(
|
data: API.ParkBountyApplyDetailInfo,
|
parkTypeName: string
|
) {
|
if (!this.isFourStreamsParkType(parkTypeName)) return [];
|
const list = ParkTypeUtils.isPhysicalIndustrialPark(parkTypeName)
|
? this.PhysicalIndustrialParkMaterialFile
|
: this.DigitIndustrialParkMaterialFile;
|
return list.map((item) => {
|
return {
|
fileBusinessType: item,
|
fileList: convertApi2FormUrlOnlyOne(data[FourStreamsMaterialFileBusinessTypeEnumKey[item]]),
|
} as FourStreamsMaterialFileTableItem;
|
});
|
}
|
|
static fourStreamsMaterialFileList2Api(list: FourStreamsMaterialFileTableItem[]) {
|
return Object.fromEntries(
|
list.map((item) => [
|
FourStreamsMaterialFileBusinessTypeEnumKey[item.fileBusinessType],
|
item.fileList[0]?.path ?? '',
|
])
|
);
|
}
|
|
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 {
|
static isPhysicalIndustrialPark(parkTypeName: string) {
|
return parkTypeName === '实体产业园';
|
}
|
static isDigitIndustrialPark(parkTypeName: string) {
|
return parkTypeName === '数字经济园';
|
}
|
}
|