company-service reports-service securities-service http://jira.mfd.msk:8088/browse/CLS-258 поправил EndDtAfterStartDtRule

This commit is contained in:
AKurakin 2023-05-27 13:42:30 +03:00
parent 9fa165de2e
commit a4b70c6635
4 changed files with 25 additions and 22 deletions

View file

@ -14,60 +14,61 @@ import java.util.function.Function;
* @param <R> Класс проверяемого объекта
*/
public record EndDtAfterStartDtRule<R>(
String endDtFieldName,
String startDtFieldName,
Function<R, LocalDate> getterEndDt,
String endDtFieldName,
Function<R, LocalDate> getterStartDt,
Function<R, LocalDate> getterEndDt,
IErrorEnumId errorEmptyRequiredValue,
IErrorEnumId errorEndDtAfterStartDt,
boolean required
) implements IValidationRule<ImdgValidationContext<R>> {
/**
* @param endDtFieldName Название поля класса, содержащий EndDt
* @param startDtFieldName Название поля класса, содержащий StartDt
* @param getterEndDt Метод получения проверяемой EndDt
* @param endDtFieldName Название поля класса, содержащий EndDt
* @param getterStartDt Метод получения проверяемой StartDt
* @param getterEndDt Метод получения проверяемой EndDt
* @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если одна из дат пустая
* @param errorEndDtAfterStartDt Ошибка, которая будет возвращена, если EndDt > StartDt
* @param required Флаг обязательности поля
* @param <R> Класс проверяемого объекта
*/
public static <R> EndDtAfterStartDtRule<R> instance(String endDtFieldName,
String startDtFieldName,
Function<R, LocalDate> getterEndDt,
public static <R> EndDtAfterStartDtRule<R> instance(String startDtFieldName,
String endDtFieldName,
Function<R, LocalDate> getterStartDt,
Function<R, LocalDate> getterEndDt,
IErrorEnumId errorEmptyRequiredValue,
IErrorEnumId errorEndDtAfterStartDt,
boolean required) {
return new EndDtAfterStartDtRule<>(endDtFieldName,
startDtFieldName,
getterEndDt,
return new EndDtAfterStartDtRule<>(startDtFieldName,
endDtFieldName,
getterStartDt,
getterEndDt,
errorEmptyRequiredValue,
errorEndDtAfterStartDt,
required);
}
/**
* @param endDtFieldName Название поля класса, содержащий EndDt
* @param startDtFieldName Название поля класса, содержащий StartDt
* @param getterEndDt Метод получения проверяемой EndDt
* @param endDtFieldName Название поля класса, содержащий EndDt
* @param getterStartDt Метод получения проверяемой StartDt
* @param getterEndDt Метод получения проверяемой EndDt
* @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если одна из дат пустая
* @param errorEndDtAfterStartDt Ошибка, которая будет возвращена, если EndDt > StartDt
* @param errorEndDtAfterStartDt Ошибка, которая будет возвращена, если StartDt > EndDt
* @param <R> Класс проверяемого объекта
*/
public static <R> EndDtAfterStartDtRule<R> instance(String endDtFieldName,
public static <R> EndDtAfterStartDtRule<R> instance(
String startDtFieldName,
Function<R, LocalDate> getterEndDt,
String endDtFieldName,
Function<R, LocalDate> getterStartDt,
Function<R, LocalDate> getterEndDt,
IErrorEnumId errorEmptyRequiredValue,
IErrorEnumId errorEndDtAfterStartDt) {
return new EndDtAfterStartDtRule<>(endDtFieldName,
startDtFieldName,
getterEndDt,
return new EndDtAfterStartDtRule<>(startDtFieldName,
endDtFieldName,
getterStartDt,
getterEndDt,
errorEmptyRequiredValue,
errorEndDtAfterStartDt,
true);
@ -76,8 +77,8 @@ public record EndDtAfterStartDtRule<R>(
@Override
public Optional<EnumMessage> validate(ImdgValidationContext<R> context) {
R validatedObject = context.getValidatedObject();
LocalDate endDt = getterEndDt.apply(validatedObject);
LocalDate startDt = getterStartDt.apply(validatedObject);
LocalDate endDt = getterEndDt.apply(validatedObject);
if (endDt == null) return required ? of(errorEmptyRequiredValue, endDtFieldName) : Optional.empty();
if (startDt == null) return required ? of(errorEmptyRequiredValue, startDtFieldName) : Optional.empty();
if (startDt.isAfter(endDt)) return of(errorEndDtAfterStartDt, startDtFieldName, endDtFieldName);

View file

@ -141,6 +141,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
companyMap.insert(company);
log.debug("company-new request processed, BaseRequest.id = {}, company.id={}",
companyNewRequestBaseRequest.getId(), company.getId());
//todo see this CLS-333.2
relationService.createNewRelation(transaction, company.getId());
if (!(WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()))) { // Block
relationService.onChangeWorkflowStatus(transaction, company, null, company.getWorkflowStatus());
@ -196,6 +197,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
if (updateRequest.getWorkflowStatus() != null) {
company.setWorkflowStatus(updateRequest.getWorkflowStatus());
if (!Objects.equals(prevStatus, company.getWorkflowStatus())) {
//todo see this CLS-333.2
relationService.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus());
} else {
log.trace("Status was not changed");

View file

@ -135,9 +135,9 @@ public class ValidationConfig {
},
ReportError.WrongFieldValue,
ReportError.RequiredFieldEmpty),
EndDtAfterStartDtRule.instance("endDate", "startDate",
ReportRequestWithPeriod::getEndDate,
EndDtAfterStartDtRule.instance("startDate", "endDate",
ReportRequestWithPeriod::getStartDate,
ReportRequestWithPeriod::getEndDate,
ReportError.RequiredFieldEmpty,
ReportError.WrongFieldValue)
);

View file

@ -3,7 +3,7 @@
CLEARING_HOME=/opt/mfd/clearing/
cd $CLEARING_HOME/bin
CMD="java -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7060 -jar securities-service.jar --spring.config.location=$CLEARING_HOME/settings/securities-service/"
CMD="java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:7060 -jar securities-service.jar --spring.config.location=$CLEARING_HOME/settings/securities-service/"
$CMD >/dev/null 2>&1 &