ialbert 2026-01-12 15:38:59 +03:00
parent c7d22ae3d1
commit 995a97a69c
2 changed files with 10 additions and 1 deletions

View file

@ -1,16 +1,25 @@
package ru.nbch.credit_tracker.component.comparator;
import java.util.Comparator;
import java.util.EnumSet;
import java.util.function.ToIntFunction;
import ru.nbch.credit_tracker.entities.app.UserPackage;
import ru.nbch.credit_tracker.enums.Status;
public class ReportListPackageStatusComparator {
public static final EnumSet<Status> reportedStatuses = EnumSet.of(
Status.ON_MONITORING, Status.PROCESSING_REPEATED
);
public static Comparator<UserPackage> INSTANCE = Comparator
.comparingInt((ToIntFunction<UserPackage>) userPackage -> statusToInt(userPackage.getStatus()))
.thenComparingLong(UserPackage::getId);
/**
* статусы не входящие в {@code reportedStatuses}
* кинут ошибку в <code>ru.nbch.credit_tracker.facade.SignalFacadeV3#getReportList</code>
*/
public static int statusToInt(String str) {
try {
Status status = Status.valueOf(str);

View file

@ -290,7 +290,7 @@ public class SignalFacadeV3 {
if (status.equals(Status.DELETED)) {
throw clientExcp(SignalError.ERROR_022, XmlErrorFormat.MonitoringReportListError, packageName);
}
if (!status.equals(Status.ON_MONITORING)) {
if (!ReportListPackageStatusComparator.reportedStatuses.contains(status)) {
throw clientExcp(SignalError.ERROR_012, XmlErrorFormat.MonitoringReportListError, packageName);
}