Page tree
Skip to end of metadata
Go to start of metadata

Имеется возможность применить свою реализацию для формирования каких-либо выгружаемых файлов. При старте выгрузки будет сформировано синхронное событие ru.bitel.bgbilling.modules.sorm.server.event.SormUploadEvent.

В динамическом коде можно заменить один или несколько файлов, можно добавить один или несколько файлов к выгрузке.

Пример
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 Path abonents()
        {
            return null;
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


  • No labels