Inventory Viability Actions
Add a new entity InventoryViabilityAction
and one new code group:
public static final String INVENTORY_VIABILITY_ACTION = "INVENTORY_VIABILITY_ACTION";
// with
new CodeValueDef(INVENTORY_VIABILITY_ACTION, "PRETREATMENT", "Pretreatment", "A method of pretreatment is applied");
Add our standard actions controllers to InventoryViabilityController
.
Update liquibase.
ER design
Note: the two tables are replaced with InventoryViabilityAction
:
Draft code
/**
* Records actions during viability testing.
*/
@Entity
@Table(name = "inventory_viability_action")
@JsonIdentityInfo(scope = InventoryViabilityAction.class, generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
public class InventoryViabilityAction extends AbstractAction {
private static final long serialVersionUID = 4820082734646288915L;
@Id
@JsonProperty
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "inventory_action_id")
private Long id;
@Basic
@Column(name = "action_name_code", nullable = false, length = 20)
@CodeValueField(CommunityCodeValues.INVENTORY_VIABILITY_ACTION)
private String actionNameCode;
@ManyToOne(fetch = FetchType.LAZY, cascade = {})
@JoinColumn(name = "inventory_viability_id", nullable = false)
@JsonIdentityReference
@JsonIdentityInfo(scope = InventoryViability.class, generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
@JsonIgnoreProperties({ "ownedBy" })
private InventoryViability inventoryViability;
@ManyToOne(fetch = FetchType.LAZY, cascade = {})
@JoinColumn(name = "method_id")
private Method method;
public InventoryViabilityAction() {
}
public InventoryViabilityAction(final Long id) {
this.id = id;
}
public Long getId() {
return id;
}
public void setId(final Long id) {
this.id = id;
}
@Override
public Long getOwningEntityId() {
return inventoryViability == null ? null : inventoryViability.getInventory().getId();
}
public InventoryViability getInventoryViability() {
return inventoryViability;
}
public void setInventoryViability(final InventoryViability inventoryViability) {
this.inventoryViability = inventoryViability;
}
@Override
public String getActionNameCode() {
return this.actionNameCode;
}
@Override
public void setActionNameCode(String actionNameCode) {
this.actionNameCode = actionNameCode;
}
public Method getMethod() {
return method;
}
public void setMethod(final Method method) {
this.method = method;
}
}