FINERACT-2091: Support for string type primary keys

This commit is contained in:
Marta Jankovics
2024-06-13 20:29:23 +02:00
committed by Adam Saghy
parent 111e28ed1b
commit f48f94c454
216 changed files with 243 additions and 273 deletions
@@ -36,7 +36,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Getter
public class FinancialActivityAccount extends AbstractPersistableCustom {
public class FinancialActivityAccount extends AbstractPersistableCustom<Long> {
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "gl_account_id")
@@ -38,7 +38,7 @@ import org.apache.fineract.infrastructure.core.service.DateUtils;
@Setter
@NoArgsConstructor
@Accessors(chain = true)
public class TrialBalance extends AbstractPersistableCustom {
public class TrialBalance extends AbstractPersistableCustom<Long> {
@Column(name = "office_id", nullable = false)
private Long officeId;
@@ -37,7 +37,7 @@ import org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail;
@Entity
@Getter
@Table(name = "acc_gl_journal_entry")
public class JournalEntry extends AbstractAuditableWithUTCDateTimeCustom {
public class JournalEntry extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "office_id", nullable = false)
@@ -40,7 +40,7 @@ import org.apache.fineract.portfolio.paymenttype.domain.PaymentType;
@Entity
@Table(name = "acc_product_mapping", uniqueConstraints = { @UniqueConstraint(columnNames = { "product_id", "product_type",
"financial_account_type", "payment_type" }, name = "financial_action") })
public class ProductToGLAccountMapping extends AbstractPersistableCustom {
public class ProductToGLAccountMapping extends AbstractPersistableCustom<Long> {
@ManyToOne(optional = true)
@JoinColumn(name = "gl_account_id")
@@ -69,5 +69,4 @@ public class ProductToGLAccountMapping extends AbstractPersistableCustom {
return new ProductToGLAccountMapping().setGlAccount(glAccount).setProductId(productId).setProductType(productType)
.setFinancialAccountType(financialAccountType);
}
}
@@ -52,7 +52,7 @@ import org.apache.fineract.organisation.office.domain.Office;
@Entity
@Table(name = "acc_accounting_rule", uniqueConstraints = {
@UniqueConstraint(columnNames = { "name" }, name = "accounting_rule_name_unique") })
public class AccountingRule extends AbstractPersistableCustom {
public class AccountingRule extends AbstractPersistableCustom<Long> {
@Column(name = "name", nullable = false, length = 500)
private String name;
@@ -38,7 +38,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Entity
@Table(name = "acc_rule_tags", uniqueConstraints = {
@UniqueConstraint(columnNames = { "acc_rule_id", "tag_id", "acc_type_enum" }, name = "UNIQUE_ACCOUNT_RULE_TAGS") })
public class AccountingTagRule extends AbstractPersistableCustom {
public class AccountingTagRule extends AbstractPersistableCustom<Long> {
@ManyToOne
@JoinColumn(name = "acc_rule_id", nullable = false)
@@ -56,7 +56,7 @@ import org.apache.fineract.organisation.staff.domain.Staff;
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class Cashier extends AbstractPersistableCustom {
public class Cashier extends AbstractPersistableCustom<Long> {
// ManyToOne(fetch = FetchType.LAZY)
// JoinColumn(name = "office_id", nullable = false)
@@ -47,7 +47,7 @@ import org.apache.fineract.organisation.office.domain.Office;
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class CashierTransaction extends AbstractPersistableCustom {
public class CashierTransaction extends AbstractPersistableCustom<Long> {
@Transient
private Office office;
@@ -47,7 +47,7 @@ import org.apache.fineract.organisation.office.domain.Office;
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class Teller extends AbstractPersistableCustom {
public class Teller extends AbstractPersistableCustom<Long> {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "office_id", nullable = false)
@@ -41,7 +41,7 @@ import org.apache.fineract.portfolio.client.domain.Client;
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class TellerTransaction extends AbstractPersistableCustom {
public class TellerTransaction extends AbstractPersistableCustom<Long> {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "office_id", nullable = false)
@@ -57,7 +57,7 @@ import org.apache.fineract.portfolio.tax.domain.TaxGroup;
@Entity
@Table(name = "m_charge", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "name") })
public class Charge extends AbstractPersistableCustom {
public class Charge extends AbstractPersistableCustom<Long> {
@Column(name = "name", length = 100)
private String name;
@@ -45,7 +45,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Setter
@NoArgsConstructor
@Accessors(chain = true)
public class GLAccount extends AbstractPersistableCustom {
public class GLAccount extends AbstractPersistableCustom<Long> {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "parent_id")
@@ -20,7 +20,7 @@ package org.apache.fineract.cob;
import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
public interface COBBusinessStep<T extends AbstractPersistableCustom> {
public interface COBBusinessStep<T extends AbstractPersistableCustom<Long>> {
T execute(T input);
@@ -33,7 +33,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
@Entity
@Table(name = "m_portfolio_command_source")
public class CommandSource extends AbstractPersistableCustom {
public class CommandSource extends AbstractPersistableCustom<Long> {
@Column(name = "action_name", nullable = true, length = 100)
private String actionName;
@@ -39,7 +39,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@Accessors(chain = true)
@Entity
@Table(name = "m_business_date", uniqueConstraints = { @UniqueConstraint(name = "uq_business_date_type", columnNames = { "type" }) })
public class BusinessDate extends AbstractAuditableWithUTCDateTimeCustom {
public class BusinessDate extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@Enumerated(EnumType.STRING)
@Column(name = "type")
@@ -33,7 +33,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Setter
@NoArgsConstructor
@Accessors(chain = true)
public class PlatformCache extends AbstractPersistableCustom {
public class PlatformCache extends AbstractPersistableCustom<Long> {
@Column(name = "cache_type_enum")
private Integer cacheType;
@@ -43,7 +43,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Setter
@NoArgsConstructor
@Accessors(chain = true)
public class Code extends AbstractPersistableCustom {
public class Code extends AbstractPersistableCustom<Long> {
@Column(name = "code_name", length = 100)
private String name;
@@ -43,7 +43,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Setter
@NoArgsConstructor
@Accessors(chain = true)
public class CodeValue extends AbstractPersistableCustom {
public class CodeValue extends AbstractPersistableCustom<Long> {
@Column(name = "code_value", length = 100)
private String label;
@@ -39,7 +39,7 @@ import org.springframework.data.jpa.domain.AbstractAuditable;
* the type of the auditing type's identifier
*/
@MappedSuperclass
public abstract class AbstractAuditableCustom extends AbstractPersistableCustom implements Auditable<Long, Long, LocalDateTime> {
public abstract class AbstractAuditableCustom extends AbstractPersistableCustom<Long> implements Auditable<Long, Long, LocalDateTime> {
private static final long serialVersionUID = 141481953116476081L;
@@ -26,6 +26,7 @@ import static org.apache.fineract.infrastructure.core.domain.AuditableFieldsCons
import jakarta.persistence.Column;
import jakarta.persistence.MappedSuperclass;
import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.OffsetDateTime;
import java.util.Optional;
import lombok.AccessLevel;
@@ -47,8 +48,8 @@ import org.springframework.data.jpa.domain.AbstractAuditable;
@Getter
@Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public abstract class AbstractAuditableWithUTCDateTimeCustom extends AbstractPersistableCustom
implements Auditable<Long, Long, OffsetDateTime> {
public abstract class AbstractAuditableWithUTCDateTimeCustom<T extends Serializable> extends AbstractPersistableCustom<T>
implements Auditable<Long, T, OffsetDateTime> {
private static final long serialVersionUID = 141481953116476081L;
@@ -48,14 +48,14 @@ import org.springframework.data.domain.Persistable;
@Getter
@Setter
@NoArgsConstructor
public abstract class AbstractPersistableCustom implements Persistable<Long>, Serializable {
public abstract class AbstractPersistableCustom<T extends Serializable> implements Persistable<T>, Serializable {
private static final long serialVersionUID = 9181640245194392646L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Getter(onMethod = @__(@Override))
private Long id;
private T id;
@Transient
@Setter(value = AccessLevel.NONE)
@@ -25,7 +25,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Entity
@Table(name = "m_image")
public final class Image extends AbstractPersistableCustom {
public final class Image extends AbstractPersistableCustom<Long> {
@Column(name = "location", length = 500)
private String location;
@@ -37,7 +37,7 @@ import org.apache.fineract.infrastructure.core.service.DateUtils;
@Table(name = "m_external_event")
@Getter
@NoArgsConstructor
public class ExternalEvent extends AbstractPersistableCustom {
public class ExternalEvent extends AbstractPersistableCustom<Long> {
@Column(name = "type", nullable = false)
private String type;
@@ -62,7 +62,7 @@ import org.apache.fineract.organisation.office.domain.Office;
@Setter
@NoArgsConstructor
@Accessors(chain = true)
public class Holiday extends AbstractPersistableCustom {
public class Holiday extends AbstractPersistableCustom<Long> {
@Column(name = "name", unique = true, nullable = false, length = 100)
private String name;
@@ -26,7 +26,7 @@ import org.apache.fineract.organisation.monetary.data.CurrencyData;
@Entity
@Table(name = "m_currency")
public class ApplicationCurrency extends AbstractPersistableCustom {
public class ApplicationCurrency extends AbstractPersistableCustom<Long> {
@Column(name = "code", nullable = false, length = 3)
private String code;
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
*/
@Entity
@Table(name = "m_organisation_currency")
public class OrganisationCurrency extends AbstractPersistableCustom {
public class OrganisationCurrency extends AbstractPersistableCustom<Long> {
@Column(name = "code", nullable = false, length = 3)
private String code;
@@ -49,7 +49,7 @@ import org.apache.fineract.organisation.office.exception.RootOfficeParentCannotB
@UniqueConstraint(columnNames = { "external_id" }, name = "externalid_org") })
@Getter
@Setter
public class Office extends AbstractPersistableCustom implements Serializable {
public class Office extends AbstractPersistableCustom<Long> implements Serializable {
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "parent_id")
@@ -41,7 +41,7 @@ import org.apache.fineract.organisation.office.domain.Office;
@Table(name = "m_staff", uniqueConstraints = { @UniqueConstraint(columnNames = { "display_name" }, name = "display_name"),
@UniqueConstraint(columnNames = { "external_id" }, name = "external_id_UNIQUE"),
@UniqueConstraint(columnNames = { "mobile_no" }, name = "mobile_no_UNIQUE") })
public class Staff extends AbstractPersistableCustom {
public class Staff extends AbstractPersistableCustom<Long> {
@Column(name = "firstname", length = 50)
private String firstname;
@@ -32,7 +32,7 @@ import org.apache.fineract.organisation.workingdays.api.WorkingDaysApiConstants;
@Getter
@Entity
@Table(name = "m_working_days")
public class WorkingDays extends AbstractPersistableCustom {
public class WorkingDays extends AbstractPersistableCustom<Long> {
@Column(name = "recurrence", length = 100, nullable = true)
private String recurrence;
@@ -50,7 +50,7 @@ import org.apache.fineract.portfolio.common.domain.NthDayType;
@Entity
@Table(name = "m_calendar")
public class Calendar extends AbstractAuditableWithUTCDateTimeCustom {
public class Calendar extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@Column(name = "title", length = 50, nullable = false)
private String title;
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.service.DateUtils;
@Entity
@Table(name = "m_calendar_history")
public class CalendarHistory extends AbstractPersistableCustom {
public class CalendarHistory extends AbstractPersistableCustom<Long> {
@ManyToOne(optional = false)
@JoinColumn(name = "calendar_id", referencedColumnName = "id", nullable = false)
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Entity
@Table(name = "m_calendar_instance")
public class CalendarInstance extends AbstractPersistableCustom {
public class CalendarInstance extends AbstractPersistableCustom<Long> {
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "calendar_id", nullable = false)
@@ -60,7 +60,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
@Setter
@Table(name = "m_client", uniqueConstraints = { @UniqueConstraint(columnNames = { "account_no" }, name = "account_no_UNIQUE"), //
@UniqueConstraint(columnNames = { "mobile_no" }, name = "mobile_no_UNIQUE") })
public class Client extends AbstractAuditableWithUTCDateTimeCustom {
public class Client extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@Column(name = "account_no", length = 20, unique = true, nullable = false)
private String accountNumber;
@@ -181,16 +181,6 @@ public class Client extends AbstractAuditableWithUTCDateTimeCustom {
@Column(name = "submittedon_date")
private LocalDate submittedOnDate;
/*
* Deprecated since common Auditable fields were introduced. Columns and data left untouched to help migration.
*
* @Column(name = "updated_on") private LocalDate updatedOnDate;
*
* @ManyToOne(optional = true, fetch = FetchType.LAZY)
*
* @JoinColumn(name = "updated_by") private AppUser updatedBy;
*/
@ManyToOne(optional = true, fetch = FetchType.LAZY)
@JoinColumn(name = "activatedon_userid")
private AppUser activatedBy;
@@ -751,5 +741,4 @@ public class Client extends AbstractAuditableWithUTCDateTimeCustom {
setDisplayName(null);
}
}
}
@@ -35,7 +35,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@Table(name = "m_client_identifier", uniqueConstraints = {
@UniqueConstraint(columnNames = { "document_type_id", "document_key" }, name = "unique_identifier_key"),
@UniqueConstraint(columnNames = { "client_id", "document_key", "active" }, name = "unique_active_client_identifier") })
public class ClientIdentifier extends AbstractAuditableWithUTCDateTimeCustom {
public class ClientIdentifier extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "client_id", nullable = false)
@@ -39,7 +39,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@Entity
@Table(name = "m_delinquency_bucket", uniqueConstraints = {
@UniqueConstraint(name = "uq_delinquency_bucket_name", columnNames = { "name" }) })
public class DelinquencyBucket extends AbstractAuditableWithUTCDateTimeCustom {
public class DelinquencyBucket extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@Column(name = "name", nullable = false)
private String name;
@@ -35,7 +35,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@Entity
@Table(name = "m_delinquency_range", uniqueConstraints = {
@UniqueConstraint(name = "uq_delinquency_range_classification", columnNames = { "classification" }) })
public class DelinquencyRange extends AbstractAuditableWithUTCDateTimeCustom {
public class DelinquencyRange extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@Column(name = "classification", nullable = false)
private String classification;
@@ -31,7 +31,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Entity
@Table(name = "m_fund", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "fund_name_org"),
@UniqueConstraint(columnNames = { "external_id" }, name = "fund_externalid_org") })
public class Fund extends AbstractPersistableCustom {
public class Fund extends AbstractPersistableCustom<Long> {
@Column(name = "name")
private String name;
@@ -58,7 +58,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
@Entity
@Table(name = "m_group")
public final class Group extends AbstractPersistableCustom {
public final class Group extends AbstractPersistableCustom<Long> {
@Column(name = "external_id", length = 100, unique = true)
private String externalId;
@@ -25,7 +25,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Entity
@Table(name = "m_group_level")
public class GroupLevel extends AbstractPersistableCustom {
public class GroupLevel extends AbstractPersistableCustom<Long> {
@Column(name = "parent_id")
private Long parentId;
@@ -33,7 +33,7 @@ import org.apache.fineract.portfolio.group.api.GroupingTypesApiConstants;
@Entity
@Table(name = "m_group_roles")
public class GroupRole extends AbstractPersistableCustom {
public class GroupRole extends AbstractPersistableCustom<Long> {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "group_id")
@@ -36,7 +36,7 @@ import org.apache.fineract.portfolio.paymenttype.domain.PaymentType;
@Entity
@Getter
@Table(name = "m_payment_detail")
public final class PaymentDetail extends AbstractPersistableCustom {
public class PaymentDetail extends AbstractPersistableCustom<Long> {
@ManyToOne
@JoinColumn(name = "payment_type_id", nullable = false)
@@ -57,9 +57,7 @@ public final class PaymentDetail extends AbstractPersistableCustom {
@Column(name = "bank_number", length = 50)
private String bankNumber;
PaymentDetail() {
}
protected PaymentDetail() {}
public static PaymentDetail generatePaymentDetail(final PaymentType paymentType, final JsonCommand command,
final Map<String, Object> changes) {
@@ -85,9 +83,7 @@ public final class PaymentDetail extends AbstractPersistableCustom {
changes.put(PaymentDetailConstants.bankNumberParamName, bankNumber);
}
changes.put("paymentTypeId", paymentType.getId());
final PaymentDetail paymentDetail = new PaymentDetail(paymentType, accountNumber, checkNumber, routingCode, receiptNumber,
bankNumber);
return paymentDetail;
return new PaymentDetail(paymentType, accountNumber, checkNumber, routingCode, receiptNumber, bankNumber);
}
public static PaymentDetail instance(final PaymentType paymentType, final String accountNumber, final String checkNumber,
@@ -107,8 +103,7 @@ public final class PaymentDetail extends AbstractPersistableCustom {
public PaymentDetailData toData() {
final PaymentTypeData paymentTypeData = null; // this.paymentType.toData();
final PaymentDetailData paymentDetailData = new PaymentDetailData(getId(), paymentTypeData, this.accountNumber, this.checkNumber,
this.routingCode, this.receiptNumber, this.bankNumber);
return paymentDetailData;
return new PaymentDetailData(getId(), paymentTypeData, this.accountNumber, this.checkNumber, this.routingCode, this.receiptNumber,
this.bankNumber);
}
}
@@ -36,7 +36,7 @@ import org.apache.fineract.portfolio.paymenttype.api.PaymentTypeApiResourceConst
@Entity
@Table(name = "m_payment_type")
@AllArgsConstructor
public class PaymentType extends AbstractPersistableCustom {
public class PaymentType extends AbstractPersistableCustom<Long> {
@Column(name = "value")
private String name;
@@ -57,7 +57,7 @@ import org.springframework.security.core.userdetails.User;
@Entity
@Table(name = "m_appuser", uniqueConstraints = @UniqueConstraint(columnNames = { "username" }, name = "username_org"))
public class AppUser extends AbstractPersistableCustom implements PlatformUser {
public class AppUser extends AbstractPersistableCustom<Long> implements PlatformUser {
@Column(name = "email", nullable = false, length = 100)
private String email;
@@ -28,7 +28,7 @@ import org.apache.fineract.portfolio.client.domain.Client;
@Entity
@Table(name = "m_selfservice_user_client_mapping")
public class AppUserClientMapping extends AbstractPersistableCustom {
public class AppUserClientMapping extends AbstractPersistableCustom<Long> {
@ManyToOne(optional = false, cascade = CascadeType.ALL)
@JoinColumn(name = "appuser_id", nullable = false)
@@ -26,7 +26,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Entity
@Table(name = "m_permission")
public class Permission extends AbstractPersistableCustom implements Serializable {
public class Permission extends AbstractPersistableCustom<Long> implements Serializable {
@Column(name = "grouping", nullable = false, length = 45)
private String grouping;
@@ -38,7 +38,7 @@ import org.apache.fineract.useradministration.data.RoleData;
@Entity
@Table(name = "m_role", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "unq_name") })
public class Role extends AbstractPersistableCustom implements Serializable {
public class Role extends AbstractPersistableCustom<Long> implements Serializable {
@Column(name = "name", unique = true, nullable = false, length = 100)
private String name;
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.documentmanagement.command.DocumentCom
@Entity
@Table(name = "m_document")
public class Document extends AbstractPersistableCustom {
public class Document extends AbstractPersistableCustom<Long> {
@Column(name = "parent_entity_type", length = 50)
private String parentEntityType;
@@ -32,7 +32,7 @@ import org.apache.fineract.infrastructure.core.domain.ExternalId;
@Entity
@NoArgsConstructor
@Table(name = "m_external_asset_owner")
public class ExternalAssetOwner extends AbstractAuditableWithUTCDateTimeCustom {
public class ExternalAssetOwner extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@Column(name = "external_id", nullable = false, length = 100, unique = true)
private ExternalId externalId;
@@ -34,7 +34,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@Table(name = "m_external_asset_owner_journal_entry_mapping")
@NoArgsConstructor
@Entity
public class ExternalAssetOwnerJournalEntryMapping extends AbstractAuditableWithUTCDateTimeCustom {
public class ExternalAssetOwnerJournalEntryMapping extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@OneToOne
@JoinColumn(name = "journal_entry_id", nullable = false)
@@ -41,7 +41,7 @@ import org.apache.fineract.investor.data.ExternalTransferSubStatus;
@Table(name = "m_external_asset_owner_transfer")
@NoArgsConstructor
@Entity
public class ExternalAssetOwnerTransfer extends AbstractAuditableWithUTCDateTimeCustom {
public class ExternalAssetOwnerTransfer extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "owner_id", nullable = false)
@@ -35,7 +35,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@Table(name = "m_external_asset_owner_transfer_details")
@NoArgsConstructor
@Entity
public class ExternalAssetOwnerTransferDetails extends AbstractAuditableWithUTCDateTimeCustom {
public class ExternalAssetOwnerTransferDetails extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "asset_owner_transfer_id", referencedColumnName = "id")
@@ -34,7 +34,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@Table(name = "m_external_asset_owner_transfer_journal_entry_mapping")
@NoArgsConstructor
@Entity
public class ExternalAssetOwnerTransferJournalEntryMapping extends AbstractAuditableWithUTCDateTimeCustom {
public class ExternalAssetOwnerTransferJournalEntryMapping extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@OneToOne
@JoinColumn(name = "journal_entry_id", nullable = false)
@@ -33,7 +33,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@Table(name = "m_external_asset_owner_transfer_loan_mapping")
@NoArgsConstructor
@Entity
public class ExternalAssetOwnerTransferLoanMapping extends AbstractAuditableWithUTCDateTimeCustom {
public class ExternalAssetOwnerTransferLoanMapping extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@Column(name = "loan_id", nullable = false)
private Long loanId;
@@ -37,7 +37,7 @@ import org.apache.fineract.portfolio.loanaccount.domain.Loan;
@Entity
@Table(name = "m_loan_collateral")
public class LoanCollateral extends AbstractPersistableCustom {
public class LoanCollateral extends AbstractPersistableCustom<Long> {
@ManyToOne(optional = false)
@JoinColumn(name = "loan_id", nullable = false)
@@ -39,7 +39,7 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement
@Entity
@Table(name = "m_client_collateral_management")
public class ClientCollateralManagement extends AbstractPersistableCustom {
public class ClientCollateralManagement extends AbstractPersistableCustom<Long> {
@Column(name = "quantity", nullable = false, scale = 5, precision = 20)
private BigDecimal quantity;
@@ -39,7 +39,7 @@ import org.apache.fineract.portfolio.collateralmanagement.api.CollateralManageme
@Entity
@Table(name = "m_collateral_management")
public class CollateralManagementDomain extends AbstractPersistableCustom {
public class CollateralManagementDomain extends AbstractPersistableCustom<Long> {
@Column(name = "name", length = 20, columnDefinition = " ")
private String name;
@@ -35,7 +35,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@Entity
@Table(name = "m_delinquency_bucket_mappings", uniqueConstraints = {
@UniqueConstraint(name = "uq_delinquency_bucket_mapping", columnNames = { "delinquencyBucket", "delinquencyRange" }) })
public class DelinquencyBucketMappings extends AbstractAuditableWithUTCDateTimeCustom {
public class DelinquencyBucketMappings extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "delinquency_bucket_id", nullable = false)
@@ -37,7 +37,7 @@ import org.apache.fineract.portfolio.loanaccount.domain.Loan;
@NoArgsConstructor
@Entity
@Table(name = "m_loan_delinquency_action")
public class LoanDelinquencyAction extends AbstractAuditableWithUTCDateTimeCustom {
public class LoanDelinquencyAction extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "loan_id", nullable = false)
@@ -36,7 +36,7 @@ import org.apache.fineract.portfolio.loanaccount.domain.Loan;
@NoArgsConstructor
@Entity
@Table(name = "m_loan_delinquency_tag_history")
public class LoanDelinquencyTagHistory extends AbstractAuditableWithUTCDateTimeCustom {
public class LoanDelinquencyTagHistory extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "delinquency_range_id", nullable = false)
@@ -38,7 +38,7 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleIns
@NoArgsConstructor
@Entity
@Table(name = "m_loan_installment_delinquency_tag")
public class LoanInstallmentDelinquencyTag extends AbstractAuditableWithUTCDateTimeCustom {
public class LoanInstallmentDelinquencyTag extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "delinquency_range_id", nullable = false)
@@ -33,7 +33,7 @@ import org.apache.fineract.portfolio.group.domain.Group;
@Entity
@Table(name = "glim_accounts", uniqueConstraints = { @UniqueConstraint(columnNames = { "account_number" }, name = "FK_glim_id") })
public class GroupLoanIndividualMonitoringAccount extends AbstractPersistableCustom {
public class GroupLoanIndividualMonitoringAccount extends AbstractPersistableCustom<Long> {
@ManyToOne
@JoinColumn(name = "group_id", nullable = false)
@@ -154,7 +154,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
@UniqueConstraint(columnNames = { "external_id" }, name = "loan_externalid_UNIQUE") })
@Setter
@Getter
public class Loan extends AbstractAuditableWithUTCDateTimeCustom {
public class Loan extends AbstractAuditableWithUTCDateTimeCustom<Long> {
public static final String RECALCULATE_LOAN_SCHEDULE = "recalculateLoanSchedule";
public static final String EXTERNAL_ID = "externalId";
@@ -60,7 +60,7 @@ import org.apache.fineract.portfolio.loanaccount.data.LoanInstallmentChargeData;
@Entity
@Table(name = "m_loan_charge", uniqueConstraints = { @UniqueConstraint(columnNames = { "external_id" }, name = "external_id") })
public class LoanCharge extends AbstractAuditableWithUTCDateTimeCustom {
public class LoanCharge extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne(optional = false)
@JoinColumn(name = "loan_id", referencedColumnName = "id", nullable = false)
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Entity
@Table(name = "m_loan_charge_paid_by")
public class LoanChargePaidBy extends AbstractPersistableCustom {
public class LoanChargePaidBy extends AbstractPersistableCustom<Long> {
@ManyToOne
@JoinColumn(name = "loan_transaction_id", nullable = false)
@@ -30,7 +30,7 @@ import org.apache.fineract.portfolio.loanaccount.data.LoanCollateralManagementDa
@Entity
@Table(name = "m_loan_collateral_management")
public class LoanCollateralManagement extends AbstractPersistableCustom {
public class LoanCollateralManagement extends AbstractPersistableCustom<Long> {
@Column(name = "quantity", nullable = false, scale = 5, precision = 20)
private BigDecimal quantity;
@@ -46,7 +46,7 @@ import org.apache.fineract.portfolio.loanproduct.domain.CreditAllocationTransact
@UniqueConstraint(columnNames = { "loan_id", "transaction_type" }, name = "uq_m_loan_credit_allocation_rule") })
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class LoanCreditAllocationRule extends AbstractAuditableWithUTCDateTimeCustom {
public class LoanCreditAllocationRule extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "loan_id", nullable = false)
@@ -32,7 +32,7 @@ import org.apache.fineract.portfolio.loanaccount.data.DisbursementData;
@Entity
@Table(name = "m_loan_disbursement_detail")
public class LoanDisbursementDetails extends AbstractPersistableCustom {
public class LoanDisbursementDetails extends AbstractPersistableCustom<Long> {
@ManyToOne
@JoinColumn(name = "loan_id", nullable = false)
@@ -32,7 +32,7 @@ import org.apache.fineract.portfolio.loanaccount.data.LoanInstallmentChargeData;
@Entity
@Table(name = "m_loan_installment_charge")
public class LoanInstallmentCharge extends AbstractPersistableCustom implements Comparable<LoanInstallmentCharge> {
public class LoanInstallmentCharge extends AbstractPersistableCustom<Long> implements Comparable<LoanInstallmentCharge> {
@ManyToOne(optional = false)
@JoinColumn(name = "loan_charge_id", referencedColumnName = "id", nullable = false)
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Entity
@Table(name = "m_loan_interest_recalculation_additional_details")
public class LoanInterestRecalcualtionAdditionalDetails extends AbstractPersistableCustom {
public class LoanInterestRecalcualtionAdditionalDetails extends AbstractPersistableCustom<Long> {
@ManyToOne(optional = false)
@JoinColumn(name = "loan_repayment_schedule_id", nullable = false)
@@ -37,7 +37,7 @@ import org.apache.fineract.portfolio.loanproduct.domain.RecalculationFrequencyTy
@Entity
@Table(name = "m_loan_recalculation_details")
public class LoanInterestRecalculationDetails extends AbstractPersistableCustom {
public class LoanInterestRecalculationDetails extends AbstractPersistableCustom<Long> {
@OneToOne
@JoinColumn(name = "loan_id", nullable = false)
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Entity
@Getter
@Table(name = "m_loan_overdue_installment_charge")
public class LoanOverdueInstallmentCharge extends AbstractPersistableCustom {
public class LoanOverdueInstallmentCharge extends AbstractPersistableCustom<Long> {
@ManyToOne(optional = false)
@JoinColumn(name = "loan_charge_id", referencedColumnName = "id", nullable = false)
@@ -47,7 +47,7 @@ import org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTypeLis
@UniqueConstraint(columnNames = { "loan_id", "transaction_type" }, name = "uq_m_loan_payment_allocation_rule") })
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class LoanPaymentAllocationRule extends AbstractAuditableWithUTCDateTimeCustom {
public class LoanPaymentAllocationRule extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "loan_id", nullable = false)
@@ -40,7 +40,7 @@ import org.apache.fineract.portfolio.repaymentwithpostdatedchecks.domain.PostDat
@Entity
@Table(name = "m_loan_repayment_schedule")
public class LoanRepaymentScheduleInstallment extends AbstractAuditableWithUTCDateTimeCustom
public class LoanRepaymentScheduleInstallment extends AbstractAuditableWithUTCDateTimeCustom<Long>
implements Comparable<LoanRepaymentScheduleInstallment> {
@ManyToOne(optional = false)
@@ -28,7 +28,7 @@ import org.apache.fineract.portfolio.loanaccount.rescheduleloan.domain.LoanResch
@Entity
@Table(name = "m_loan_reschedule_request_term_variations_mapping")
public class LoanRescheduleRequestToTermVariationMapping extends AbstractPersistableCustom {
public class LoanRescheduleRequestToTermVariationMapping extends AbstractPersistableCustom<Long> {
@ManyToOne(optional = false, cascade = CascadeType.ALL)
@JoinColumn(name = "loan_reschedule_request_id", nullable = false)
@@ -38,7 +38,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@Getter
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class LoanStatusChangeHistory extends AbstractAuditableWithUTCDateTimeCustom {
public class LoanStatusChangeHistory extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "loan_id", nullable = false)
@@ -34,7 +34,7 @@ import org.apache.fineract.portfolio.loanproduct.service.LoanEnumerations;
@Entity
@Table(name = "m_loan_term_variations")
public class LoanTermVariations extends AbstractPersistableCustom {
public class LoanTermVariations extends AbstractPersistableCustom<Long> {
@ManyToOne(optional = false)
@JoinColumn(name = "loan_id", nullable = false)
@@ -28,7 +28,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Entity
@Table(name = "m_loan_topup")
public class LoanTopupDetails extends AbstractPersistableCustom {
public class LoanTopupDetails extends AbstractPersistableCustom<Long> {
@OneToOne
@JoinColumn(name = "loan_id", nullable = false)
@@ -28,7 +28,7 @@ import org.apache.fineract.portfolio.charge.domain.Charge;
@Entity
@Table(name = "m_loan_tranche_charges")
public class LoanTrancheCharge extends AbstractPersistableCustom {
public class LoanTrancheCharge extends AbstractPersistableCustom<Long> {
@ManyToOne(cascade = CascadeType.ALL, optional = false)
@JoinColumn(name = "loan_id", nullable = false)
@@ -27,7 +27,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Entity
@Table(name = "m_loan_tranche_disbursement_charge")
public class LoanTrancheDisbursementCharge extends AbstractPersistableCustom {
public class LoanTrancheDisbursementCharge extends AbstractPersistableCustom<Long> {
@ManyToOne
@JoinColumn(name = "loan_charge_id", referencedColumnName = "id", nullable = false)
@@ -60,7 +60,7 @@ import org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail;
*/
@Entity
@Table(name = "m_loan_transaction", uniqueConstraints = { @UniqueConstraint(columnNames = { "external_id" }, name = "external_id_UNIQUE") })
public class LoanTransaction extends AbstractAuditableWithUTCDateTimeCustom {
public class LoanTransaction extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne(optional = false)
@JoinColumn(name = "loan_id", nullable = false)
@@ -32,7 +32,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@Getter
@Entity
@Table(name = "m_loan_transaction_relation")
public class LoanTransactionRelation extends AbstractAuditableWithUTCDateTimeCustom {
public class LoanTransactionRelation extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "from_loan_transaction_id", nullable = false)
@@ -31,7 +31,7 @@ import org.apache.fineract.organisation.monetary.domain.Money;
@Entity
@Table(name = "m_loan_transaction_repayment_schedule_mapping")
public class LoanTransactionToRepaymentScheduleMapping extends AbstractPersistableCustom {
public class LoanTransactionToRepaymentScheduleMapping extends AbstractPersistableCustom<Long> {
@ManyToOne(optional = false, cascade = CascadeType.PERSIST)
@JoinColumn(name = "loan_transaction_id", nullable = false)
@@ -37,7 +37,7 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
@Table(name = "m_loan_reage_parameter")
@AllArgsConstructor
@Getter
public class LoanReAgeParameter extends AbstractAuditableWithUTCDateTimeCustom {
public class LoanReAgeParameter extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@OneToOne
@JoinColumn(name = "loan_transaction_id", nullable = false)
@@ -37,7 +37,7 @@ import org.apache.fineract.portfolio.loanaccount.rescheduleloan.domain.LoanResch
@Entity
@Table(name = "m_loan_repayment_schedule_history")
public class LoanRepaymentScheduleHistory extends AbstractPersistableCustom {
public class LoanRepaymentScheduleHistory extends AbstractPersistableCustom<Long> {
@ManyToOne(optional = false)
@JoinColumn(name = "loan_id")
@@ -40,7 +40,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
@Entity
@Table(name = "m_loan_reschedule_request")
public class LoanRescheduleRequest extends AbstractPersistableCustom {
public class LoanRescheduleRequest extends AbstractPersistableCustom<Long> {
@ManyToOne
@JoinColumn(name = "loan_id", nullable = false)
@@ -84,7 +84,7 @@ import org.apache.fineract.portfolio.rate.domain.Rate;
@Table(name = "m_product_loan", uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }, name = "unq_name"),
@UniqueConstraint(columnNames = { "external_id" }, name = "external_id_UNIQUE"),
@UniqueConstraint(columnNames = { "short_name" }, name = "unq_short_name") })
public class LoanProduct extends AbstractPersistableCustom {
public class LoanProduct extends AbstractPersistableCustom<Long> {
@ManyToOne
@JoinColumn(name = "fund_id")
@@ -29,7 +29,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@Entity
@Table(name = "m_product_loan_variations_borrower_cycle")
public class LoanProductBorrowerCycleVariations extends AbstractPersistableCustom {
public class LoanProductBorrowerCycleVariations extends AbstractPersistableCustom<Long> {
@ManyToOne
@JoinColumn(name = "loan_product_id", nullable = false)
@@ -31,7 +31,7 @@ import org.apache.fineract.portfolio.loanproduct.LoanProductConstants;
@Entity
@Table(name = "m_product_loan_configurable_attributes")
public class LoanProductConfigurableAttributes extends AbstractPersistableCustom implements Serializable {
public class LoanProductConfigurableAttributes extends AbstractPersistableCustom<Long> implements Serializable {
@OneToOne
@JoinColumn(name = "loan_product_id", nullable = false)
@@ -43,7 +43,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@UniqueConstraint(columnNames = { "loan_product_id", "transaction_type" }, name = "uq_m_loan_product_credit_allocation_rule") })
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class LoanProductCreditAllocationRule extends AbstractAuditableWithUTCDateTimeCustom {
public class LoanProductCreditAllocationRule extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "loan_product_id", nullable = false)
@@ -36,7 +36,7 @@ import org.apache.fineract.portfolio.floatingrates.domain.FloatingRate;
@Entity
@Table(name = "m_product_loan_floating_rates")
public class LoanProductFloatingRates extends AbstractPersistableCustom {
public class LoanProductFloatingRates extends AbstractPersistableCustom<Long> {
@OneToOne
@JoinColumn(name = "loan_product_id", nullable = false)
@@ -37,7 +37,7 @@ import org.apache.fineract.portfolio.loanproduct.LoanProductConstants;
@Entity
@Table(name = "m_product_loan_guarantee_details")
public class LoanProductGuaranteeDetails extends AbstractPersistableCustom {
public class LoanProductGuaranteeDetails extends AbstractPersistableCustom<Long> {
@OneToOne
@JoinColumn(name = "loan_product_id", nullable = false)
@@ -36,7 +36,7 @@ import org.apache.fineract.portfolio.loanproduct.LoanProductConstants;
@Entity
@Table(name = "m_product_loan_recalculation_details")
public class LoanProductInterestRecalculationDetails extends AbstractPersistableCustom {
public class LoanProductInterestRecalculationDetails extends AbstractPersistableCustom<Long> {
@OneToOne
@JoinColumn(name = "product_id", nullable = false)
@@ -43,7 +43,7 @@ import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
@UniqueConstraint(columnNames = { "loan_product_id", "transaction_type" }, name = "uq_m_loan_product_payment_allocation_rule") })
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class LoanProductPaymentAllocationRule extends AbstractAuditableWithUTCDateTimeCustom {
public class LoanProductPaymentAllocationRule extends AbstractAuditableWithUTCDateTimeCustom<Long> {
@ManyToOne
@JoinColumn(name = "loan_product_id", nullable = false)
@@ -38,7 +38,7 @@ import org.apache.fineract.portfolio.loanproduct.LoanProductConstants;
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "m_product_loan_variable_installment_config")
public class LoanProductVariableInstallmentConfig extends AbstractPersistableCustom {
public class LoanProductVariableInstallmentConfig extends AbstractPersistableCustom<Long> {
@Setter
@OneToOne
@@ -34,7 +34,7 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleIns
@Entity
@Table(name = "m_repayment_with_post_dated_checks")
public class PostDatedChecks extends AbstractPersistableCustom {
public class PostDatedChecks extends AbstractPersistableCustom<Long> {
@ManyToOne(optional = false)
@JoinColumn(name = "loan_id", referencedColumnName = "id", nullable = false)
@@ -465,6 +465,7 @@ class AdvancedPaymentScheduleTransactionProcessorTest {
Money money = Money.of(MONETARY_CURRENCY, BigDecimal.valueOf(transactionAmount));
lenient().when(chargeback.getAmount(MONETARY_CURRENCY)).thenReturn(money);
lenient().when(chargeback.getTransactionDate()).thenReturn(LocalDate.of(2023, 1, 1));
lenient().when(chargeback.getId()).thenReturn(1L);
return chargeback;
}
@@ -41,7 +41,7 @@ import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
@Accessors(chain = true)
@Entity
@Table(name = "m_loanproduct_provisioning_entry")
public class LoanProductProvisioningEntry extends AbstractPersistableCustom {
public class LoanProductProvisioningEntry extends AbstractPersistableCustom<Long> {
@ManyToOne(optional = false)
@JoinColumn(name = "history_id", referencedColumnName = "id", nullable = false)
@@ -43,7 +43,7 @@ import org.apache.fineract.useradministration.domain.AppUser;
@Accessors(chain = true)
@Entity
@Table(name = "m_provisioning_history")
public class ProvisioningEntry extends AbstractPersistableCustom {
public class ProvisioningEntry extends AbstractPersistableCustom<Long> {
@Column(name = "journal_entry_created")
private Boolean isJournalEntryCreated;
@@ -26,9 +26,9 @@ import org.jetbrains.annotations.NotNull;
public interface COBBusinessStepService {
<T extends COBBusinessStep<S>, S extends AbstractPersistableCustom> S run(TreeMap<Long, String> executionMap, S item);
<T extends COBBusinessStep<S>, S extends AbstractPersistableCustom<Long>> S run(TreeMap<Long, String> executionMap, S item);
@NotNull
<T extends COBBusinessStep<S>, S extends AbstractPersistableCustom> Set<BusinessStepNameAndOrder> getCOBBusinessSteps(
<T extends COBBusinessStep<S>, S extends AbstractPersistableCustom<Long>> Set<BusinessStepNameAndOrder> getCOBBusinessSteps(
Class<T> businessStepClass, String cobJobName);
}
@@ -56,7 +56,7 @@ public class COBBusinessStepServiceImpl implements COBBusinessStepService {
@SuppressWarnings({ "unchecked" })
@Override
public <T extends COBBusinessStep<S>, S extends AbstractPersistableCustom> S run(TreeMap<Long, String> executionMap, S item) {
public <T extends COBBusinessStep<S>, S extends AbstractPersistableCustom<Long>> S run(TreeMap<Long, String> executionMap, S item) {
if (executionMap == null || executionMap.isEmpty()) {
throw new BusinessStepException("Execution map is empty! COB Business step execution skipped!");
}
@@ -94,7 +94,7 @@ public class COBBusinessStepServiceImpl implements COBBusinessStepService {
@NotNull
@Override
public <T extends COBBusinessStep<S>, S extends AbstractPersistableCustom> Set<BusinessStepNameAndOrder> getCOBBusinessSteps(
public <T extends COBBusinessStep<S>, S extends AbstractPersistableCustom<Long>> Set<BusinessStepNameAndOrder> getCOBBusinessSteps(
Class<T> businessStepClass, String cobJobName) {
List<BatchBusinessStep> cobStepConfigs = batchBusinessStepRepository.findAllByJobName(cobJobName);
List<String> businessSteps = Arrays.stream(beanFactory.getBeanNamesForType(businessStepClass)).toList();

Some files were not shown because too many files have changed in this diff Show More