ccbb.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. namespace bank;
  3. //建设银行-大批量数据导出
  4. class ccbb implements IBank
  5. {
  6. static $format = [
  7. 0 => '账号',
  8. 1 => '账户名称',
  9. 2 => '交易时间',
  10. 3 => '借方发生额(支取)',
  11. 4 => '贷方发生额(收入)',
  12. 5 => '余额',
  13. 6 => '币种',
  14. 7 => '对方户名',
  15. 8 => '对方账号',
  16. 9 => '对方开户机构',
  17. 10 => '记账日期',
  18. 11 => '摘要',
  19. 12 => '备注',
  20. 13 => '账户明细编号-交易流水号',
  21. 14 => '企业流水号',
  22. 15 => '凭证种类',
  23. 16 => '凭证号',
  24. 17 => '个性化信息名称1',
  25. 18 => '个性化信息名称2',
  26. 19 => '个性化信息名称3',
  27. 20 => '个性化信息名称4',
  28. 21 => '个性化信息名称5',
  29. 22 => '个性化信息名称6',
  30. 23 => '个性化信息名称7',
  31. 24 => '个性化信息名称8',
  32. 25 => '个性化信息名称9',
  33. 26 => '个性化信息名称10',
  34. 27 => '个性化信息1',
  35. 28 => '个性化信息2',
  36. 29 => '个性化信息3',
  37. 30 => '个性化信息4',
  38. 31 => '个性化信息5',
  39. 32 => '个性化信息6',
  40. 33 => '个性化信息7',
  41. 34 => '个性化信息8',
  42. 35 => '个性化信息9',
  43. 36 => '个性化信息10',
  44. 37 => '交易介质编号'
  45. ];
  46. public function __construct()
  47. {
  48. $this->clear();
  49. }
  50. public function clear() {
  51. }
  52. public function match($line) : bool
  53. {
  54. if(count(self::$format) != count($line)) {
  55. return false;
  56. }
  57. $diff = array_diff(self::$format,$line);
  58. return empty($diff);
  59. }
  60. public function convert($line) : array
  61. {
  62. $self_no = trim($line[0]);
  63. if($self_no == '11050160990000000237' || $self_no == '11001079900053013913') {
  64. $self_bank = '中国建设银行股份有限公司北京傲城支行';
  65. }
  66. $self_name = trim($line[1]);
  67. $trade_time = strtotime($line[2]);
  68. if($trade_time == false) {
  69. return [];
  70. }
  71. $out = mb_str_replace(',','',$line[3]);
  72. $in = mb_str_replace(',','',$line[4]);
  73. $left = mb_str_replace(',','',$line[5]);
  74. $money_type = $line[6];
  75. $other_name = $line[7];
  76. $other_no = $line[8];
  77. $other_bank = $line[9];
  78. $post_date = $line[10];
  79. $subject = $line[11];
  80. $remark = $line[12];
  81. $trade_no = $line[13];
  82. $proof_type = $line[15];
  83. $proof_no = $line[16];
  84. $result = [
  85. 'trade_time' => $trade_time,
  86. 'out_amount' => $out,
  87. 'in_amount' => $in,
  88. 'left_amount' => $left,
  89. 'money_type' => $money_type,
  90. 'other_name' => $other_name,
  91. 'other_no' => $other_no,
  92. 'other_bank' => $other_bank,
  93. 'post_date' => $post_date,
  94. 'rsubject' => $subject,
  95. 'remark' => $remark,
  96. 'trade_no' => $trade_no,
  97. 'proof_type' => $proof_type,
  98. 'proof_no' => $proof_no,
  99. 'self_name' => $self_name,
  100. 'self_no' => $self_no,
  101. 'self_bank' => $self_bank,
  102. 'service_charge' => 0.0
  103. ];
  104. return $result;
  105. }
  106. }