wupengfei
2025-04-11 ae671e401db4b158b6bd4292fb99fab58e40844c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import { convertApi2FormUrlOnlyOne } from '@/utils';
import {
  FourStreamsMaterialFileBusinessTypeEnum,
  FourStreamsMaterialFileBusinessTypeEnumKey,
  FourStreamsMaterialFileTableItem,
} 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,
  ];
 
  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 ?? '',
      ])
    );
  }
}
 
export class ParkTypeUtils {
  static isPhysicalIndustrialPark(parkTypeName: string) {
    return parkTypeName === '实体产业园';
  }
  static isDigitIndustrialPark(parkTypeName: string) {
    return parkTypeName === '数字经济园';
  }
}