Комментарии 10
Если бы вы взяли готовый BPM Engine и сконцентрировались на создании интерфейсов для пользователей, необходимых интеграций и автоматизации отдельных шагов процесса (где требуется) - разве вы бы не получили бы результат быстрее, легче и более гибкий?
Задача автоматизации бизнес процессов достаточно типовая и написаны миллионы строк готового кода, её автоматизующего. Причем довольно гибко.
map.get("gid")
Параметры в какую-нибудь модельку завернуть не думали?
Почему бы вот эту и подобную трешатину
StringUtils.hasText(gid) ? UerSpec.equalGid(gid) : null
внутри соответствующих методов UerSpec
не делать?
root.get("projectCode")
Ну, есть же нормальные инструменты, зачем ломаться в рантайме, если можно при компиляции?
MessageFormat.format("%{0}%", expression)
Вот это зачем? Тут нет никакого форматирования параметров. Конкатенации вполне достаточно.
работает на санкционно-независимых компонентах
С чего это? Liberica JDK продукт иностранной компании BellSoft. @olegchir не даст соврать.
C java есть интеграция у той же opensource bpm Camunda, к примеру. Изобретать свой велосипед конечно лучше, но долго и затратно. Я тоже создаю иногда велосипеды бизнес процессов, ибо компания где работаю автоматизирована слабо, разработчиков мало, а хочется быть как люди. Правда web не нужен, так как корпоративный vpn все покрывает локалкой. Да и задачи в основном связаны с "железом" интеллектуальных приборов и web разработка в данном контексте нужна как козе баян. К примеру на автоматизацию процесса ремонта приборов ушло примерно 6 месяцев и один разработчик и это при наличии не очень чёткого тз с интеграцией с 1с, с мониторингом пользователей, логов и разработки внутрипрограммного мессенджера на 60 плльзователей.
А зачем в сервисе request Param и валидация?
Куча шаблонного кода, который можно сгенерировать в LLM...
Лучше найти какую-нибудь одну особенность системы и рассказать про нее - может кому-то будет интересно.
Ещё форматировать весь код в примерах в едином стиле, разные отступы выглядят как минутные стрелки с отличными углами на стене с часами по таймзонам городов...
И имя публичного класса Helper намекает на проблемы с неймингом...
Ещё образ собирается с тегом latest.. Если уж пишите сами пайплайны, то попросите девопсов сделать ревью перед публикацией
Так как все бизнес-команды наследуются от BusinessCommand, то в BusinessCommandFactory мапу можно объявить так:
private final Map<String, BusinessCommand> map;
И вручную ее можно не заполнять, спринг сам заполнит ее бинами наследниками BusinessCommand
Получится в итоге так
@Component
@RequiredArgsConstructor
public class BusinessCommandFactory {
private final Map<String, BusinessCommand> map;
public BusinessCommand buildProcessor(String status) {
return map.get(status);
}
}
Привет! Liberica JDK - это не отечественный дистрибутив Java. Начиная с весны прошлого года, Либерику делает американская компания BELLSOFT, и без VPN даже нельзя открыть экран загрузки.
Отечественный дистрибутив называется Axiom JDK. Часть разработчиков Аксиомы — это те же люди, что когда-то делали Либерику.
Шаблоны писем в коде - не очень смотрятся. Не знаю, конечно, сколько их у вас всего разных. Возможно - только приведённые два.
Spring работает с шаблонизаторами (Thymeleaf, наверное, проще всего, затем - FreeMaker) - ими можно письма форматировать по шаблонам.
Контейнеризация справочников НСИ