...
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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() может быть использован для формирования и выгрузки любых необходимых файлов.Допускается реализация только тех фалов, которые необходимы. Если для какого-то файла не была найдена переопределённая пользовательская реализация, то при выгрузке модулем будет взята стандартная реализациядолжны быть отправлены на фтп при процессе выгрузки.