用于处理电力信息交换协议文件的库

0.4.0 2019-10-27 20:41 UTC

This package is auto-updated.

Last update: 2024-09-28 07:54:37 UTC


README

Build Status Latest Stable Version

电力信息交换协议 (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);