ourenergy / eiep
用于处理电力信息交换协议文件的库
0.4.0
2019-10-27 20:41 UTC
Requires
- php: >=7.1.0
- league/csv: ^9.2
Requires (Dev)
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2024-09-28 07:54:37 UTC
README
电力信息交换协议 (EIEP)
用于处理电力管理局的EIEP数据文件的PHP库。支持PHP 7.1以上版本。
使用 league/csv 读取和写入CSV文件。
当前支持的协议和版本:
安装
composer require ourenergy/eiep
从文件读取
use Eiep\Eiep3\Report; use Eiep\Eiep3\DetailRecord; $report = new Report(); $report->streamFromFile("eiep3.csv", function(DetailRecord $record) { echo $record->getActiveEnergy() . PHP_EOL; });
处理现有流
use Eiep\Eiep3\Report; use Eiep\Eiep3\DetailRecord; $report = new Report(); $handle = fopen("eiep3.csv", "r"); $report->readFromStream($handle, function(DetailRecord $record) { echo $record->getActiveEnergy() . PHP_EOL; });
编写新报告
use Eiep\Eiep3\Report; use Eiep\Eiep3\DetailRecord; // Create the report $report = new Report(); $report ->setReportDate(new \DateTime("2019-01-01 00:00:00")) ->setUtilityType(Report::UTILITY_TYPE_ELECTRICITY) ->setFileStatus(Report::FILE_STATUS_REPLACEMENT) ->setNumRecords(1); // Create records $record = new DetailRecord(); $record ->setIcpIdentifier("1234567890") ->setStreamIdentifier("ABCDEFG") ->setReadingType(DetailRecord::READING_TYPE_FINAL) ->setDate(new \DateTime("2019-01-01 00:00:00")) ->setTradingPeriod(48) ->setActiveEnergy(1) ->setReactiveEnergy(2) ->setApparentEnergy(3) ->setFlowDirection(DetailRecord::FLOW_DIRECTION_EXTRACT); // Write everything to a file $records = [ $record ]; $report->writeRecords("eiep3.csv", $records);
创建写入流
use Eiep\Eiep3\Report; use Eiep\Eiep3\DetailRecord; // ... prepare your report and records as above ... // Create a writer $writer = $report->createWriter("eiep3.csv"); // Write one record $writer->insertOne($record->toArray()); // Write multiple records $rows = array_map(function (DetailRecord $record) { return $record->toArray(); }, $records); $writer->insertAll($rows);