Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Блок кода
languagejava
titleПример
linenumberstrue
collapsetrue
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.modules.sorm.common.bean.SormProject;
import ru.bitel.bgbilling.modules.sorm.server.event.SormUploadEvent;
import ru.bitel.bgbilling.modules.sorm.server.upload.Upload;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.model.Pair;
import ru.bitel.common.sql.ConnectionSet;

import java.nio.file.Path;
import java.util.Collections;
import java.util.List;

public class CustomUpload
    extends EventScriptBase<SormUploadEvent>
{
	 @Override
    public void onEvent( SormUploadEvent event, Setup setup, ConnectionSet set )
    throws Exception
    {
        SormProject sormProject = event.getSormProject();

        CustomUploadSorm customCustomUploadSorm = new CustomUploadSorm( sormProject, true );

        event.setUploadVersion( customCustomUploadSorm );
    }

    /**
     * Класс-реализация пользовательской выгрузки СОРМ.
     */
    static class CustomUploadSorm
        extends Upload
    {
        SormProject sormProject;

        public CustomUploadSorm( SormProject sormProject )
        {
			//true - если нужна полная выгрузка, false - если выгрузка будет инкрементальной. Т.е. будут выгружены только новые и изменённые с последней выгрузки договоры, и данные к ним.
            super( sormProject, true );
            this.sormProject = sormProject;
        }

        @Override
        public FilePath abonents()
        {
            return null;
        }

        @Override
        public FilePath abonentsAddresses()
        {
            return null;
        }

        @Override
        public FilePath abonentLogins()
        {
            return null;
        }

        @Override
        public FilePath services()
        {
            return null;
        }

        @Override
        public FilePath abonentServices()
        {
            return null;
        }

        @Override
        public FilePath ipNumbering()
        {
            return null;
        }

        @Override
        public FilePath abonentsIpNumbering()
        {
            return null;
        }

        @Override
        public FilePath switches()
        {
            return null;
        }

        @Override
        public FilePath gateways()
        {
            return null;
        }

        @Override
        public FilePath bunches()
        {
            return null;
        }

        @Override
        public FilePath phoneNumbering()
        {
            return null;
        }

        @Override
        public FilePath phoneNumberingAbonents()
        {
            return null;
        }

        @Override
        public FilePath documentTypes()
        {
            return null;
        }

        @Override
        public FilePath paymentTypes()
        {
            return null;
        }

        @Override
        public FilePath abonentsPayments()
        {
            return null;
        }

        @Override
        public List<File>Path getOtherFilesoperatorInfo()
        {
            return null;
        }
		
		/**
     	 * @OverrideВозвращает остальные файлы, которые должны будут быть выгружены, если publicтакие Fileесть
operatorInfo()         {* Список пар, где:
         return* null;key - путь на фтп, куда нужно положить файл
}         * @Overridevalue - файл
      public void closeResources() * В качестве ключа можно положить null,
 throws BGException       * в {таком 			случае файл будет выгружен по стандартному пути или в }корень, если получить путь не удалось
         * @return
        */
		@Override
        public SormUploadStatistic getUploadStatisticList<Pair<String, Path>> getOtherFiles()
        {
            return nullCollections.emptyList();
        }
    }

Метод getOtherFiles() может быть использован для формирования и выгрузки любых необходимых файлов.Допускается реализация только тех фалов, которые необходимы. Если для какого-то файла не была найдена переопределённая пользовательская реализация, то при выгрузке модулем будет взята стандартная реализациядолжны быть отправлены на фтп при процессе выгрузки.