public function getMeasurementResult(array $collectedData = []): DBResult
{
$filter = $this->getFilter(
[
'=INDICATOR_TYPE' => static::className(),
'=OWNER_ID' => $this->getOwner(),
'>FILE_COUNT' => 0,
'>FILES_LEFT' => 0,
],
VolumeTable::getEntity()
);
$select = [
'ID',
'INDICATOR_TYPE',
'FILE_SIZE',
'FILE_COUNT',
'DISK_SIZE',
'DISK_COUNT',
'VERSION_COUNT',
'PREVIEW_SIZE',
'PREVIEW_COUNT',
'ATTACHED_COUNT',
'LINK_COUNT',
'SHARING_COUNT',
'UNNECESSARY_VERSION_SIZE',
'UNNECESSARY_VERSION_COUNT',
'STORAGE_ID',
'MODULE_ID',
'FOLDER_ID',
'PARENT_ID',
'USER_ID',
'GROUP_ID',
'ENTITY_TYPE',
'ENTITY_ID',
'IBLOCK_ID',
'TYPE_FILE',
'COLLECTED',
'DATA',
'TITLE',
'PERCENT',
'USING_COUNT',
// task info
'AGENT_LOCK',
'DROP_UNNECESSARY_VERSION',
'DROP_TRASHCAN',
'EMPTY_FOLDER',
'DROP_FOLDER',
];
if ($this instanceof VolumeFolder)
{
$select[] = 'FOLDER.UPDATE_TIME';
$filter['>FOLDER.ID'] = 0;//folder exists
}
$parameter = [
'runtime' => [
new EntityExpressionField('PERCENT', 'ROUND(PERCENT, 1)'),
new EntityExpressionField('USING_COUNT', '(ATTACHED_COUNT + LINK_COUNT + SHARING_COUNT)'),
],
'select' => $select,
'filter' => $filter,
'order' => $this->getOrder(['FILE_SIZE' => 'DESC']),
'count_total' => true,
];
if ($this->getLimit() > 0)
{
$parameter['limit'] = $this->getLimit();
}
if ($this->getOffset() > 0)
{
$parameter['offset'] = $this->getOffset();
}
return VolumeTable::getList($parameter);
}