public function officeconvertuserdocumentfileAction()
 {
     $officeDirector = BASE_PATH . '/data/oneOfficeFiles';
     list($adapter, $sql) = $this->createOfficeAdapter();
     $select = $sql->select(['df' => 'document_files']);
     $select->join(['d' => 'documents'], 'd.ID=df.document_id', ['created_by_id']);
     $select->where(['d.folder' => 'USER', 'd.type' => 'FILE', 'd.is_deleted' => 'no']);
     $select->order(['ID ASC']);
     $query = $sql->buildSqlString($select);
     $rows = $adapter->query($query, $adapter::QUERY_MODE_EXECUTE);
     $documentMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentMapper');
     $documentCategoryMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentCategoryMapper');
     $documentFileMapper = $this->getServiceLocator()->get('\\Document\\Model\\DocumentFileMapper');
     $index = 0;
     $totalSize = 0;
     foreach ($rows->toArray() as $row) {
         $officeUri = $officeDirector . '/document/user/' . $row['created_by_id'] . '/' . $row['filename'];
         if (!file_exists($officeUri)) {
             echo '<b>File: </b>' . $officeUri . '<br/>';
             echo '<b style="color:red;">File not found!!!</b>';
             echo '<br/><br/>=============================================<br/>';
             continue;
         }
         $document = new \Document\Model\Document();
         $document->setOneofficeId($row['document_id']);
         // check nếu đã có bản ghi trong document thì coi nó là 1 file đính kèm của document
         if ($documentMapper->isExistedOneofficeCode($document)) {
             $documentFile = new \Document\Model\DocumentFile();
             $documentFile->setDocumentId($document->getId());
             $documentFile->setFileName($row['filename']);
             $documentFile->setCreatedDateTime($document->getCreatedDateTime());
             $uri = Uri::getSavePath($documentFile);
             echo '<b>docfile: </b>' . $document->getName();
             echo '<br/>';
             echo $row['ID'] . ' --- ' . $row['document_id'];
             echo '<br/>';
             echo '<b>Từ: </b>' . $officeUri;
             echo '<br/>';
             echo '<b>Đến: </b>' . $uri . '/' . $documentFile->getFileName();
             echo '<br/>';
             if (is_file($officeUri)) {
                 $filesize = filesize($officeUri);
                 echo '<b>Filesize: </b>' . $filesize;
                 $totalSize += $filesize;
                 $documentFile->setFileSize($filesize);
             }
             $documentFile->setCreatedById($document->getCreatedById());
             if (!$documentFileMapper->isExisted($documentFile)) {
                 $documentFileMapper->save($documentFile);
                 if (!file_exists($uri)) {
                     $oldmask = umask(0);
                     mkdir($uri, 0777, true);
                     umask($oldmask);
                 }
                 @copy($officeUri, $uri . '/' . $documentFile->getFileName());
                 $index++;
                 echo '<br/><span style="color:green">Đã chuyển</span>';
             }
             echo '<br/><br/>=============================================<br/>';
         } else {
             // nếu ko thì nghĩa laà file gắn với danh mục, tạo mới 1 document rồi gắn file với document đó
             // nhưng kiểm tra dữ liệu ko có case này nên ko viết
             $documentCategory = new \Document\Model\DocumentCategory();
             $documentCategory->setOneofficeId($row['document_id']);
             if ($documentCategoryMapper->isExistedOneofficeCode($documentCategory)) {
                 echo '<span style="color:blue;">Tạo mới theo dnah mục</span>';
                 echo '<br/><br/>=============================================<br/>';
             } else {
                 echo '<span style="color:red;">Ko dữ liệu </span>';
                 echo $row['ID'] . ' --- ' . $row['document_id'];
                 echo '<br/><br/>=============================================<br/>';
             }
         }
     }
     echo '<b>Tổng: </b>' . $index;
     echo '<br/><b>Tổng dung lượng: </b>' . $totalSize;
     die;
 }