Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ public class InventoryItemDetailRsrc extends BaseResource implements InventoryIt
private String fruitVegTypeDesc;
private String multiStageCommdtyCode;
private String multiStageCommdtyDesc;
private Long urlId;
private String url;
private String userEmail;

@Override
Expand Down Expand Up @@ -174,6 +176,26 @@ public void setMultiStageCommdtyDesc(String multiStageCommdtyDesc) {
this.multiStageCommdtyDesc = multiStageCommdtyDesc;
}

@Override
public Long getUrlId() {
return urlId;
}

@Override
public void setUrlId(Long urlId) {
this.urlId = urlId;
}

@Override
public String getUrl() {
return url;
}

@Override
public void setUrl(String url) {
this.url = url;
}

@Override
public String getUserEmail() {
return userEmail;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ private void populateDefaultResource(InventoryItemDetailRsrc resource, Inventory
resource.setFruitVegTypeDesc(dto.getFruitVegTypeDesc());
resource.setMultiStageCommdtyCode(dto.getMultiStageCommdtyCode());
resource.setMultiStageCommdtyDesc(dto.getMultiStageCommdtyDesc());
resource.setUrlId(dto.getUrlId());
resource.setUrl(dto.getUrl());
}

@Override
Expand Down Expand Up @@ -99,6 +101,8 @@ static InventoryItemDetailRsrc populate(InventoryItemDetailDto dto) {
resource.setFruitVegTypeDesc(dto.getFruitVegTypeDesc());
resource.setMultiStageCommdtyCode(dto.getMultiStageCommdtyCode());
resource.setMultiStageCommdtyDesc(dto.getMultiStageCommdtyDesc());
resource.setUrlId(dto.getUrlId());
resource.setUrl(dto.getUrl());

return resource;
}
Expand Down Expand Up @@ -144,6 +148,8 @@ public void updateInventoryItemDetail(InventoryItemDetailDto dto, InventoryItemD
dto.setFruitVegTypeDesc(model.getFruitVegTypeDesc());
dto.setMultiStageCommdtyCode(model.getMultiStageCommdtyCode());
dto.setMultiStageCommdtyDesc(model.getMultiStageCommdtyDesc());
dto.setUrlId(model.getUrlId());
dto.setUrl(model.getUrl());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ public void testCreateInventoryItemDetail() throws Exception {
inventoryItemDetail.setCommodityTypeCode("GRAIN");
inventoryItemDetail.setFruitVegTypeCode("APPLE");
inventoryItemDetail.setMultiStageCommdtyCode(null);
inventoryItemDetail.setUrlId(1L);
inventoryItemDetail.setUserEmail("jsmith@gmail.com");

Response response = target("/inventoryItemDetails").request().post(Entity.json(inventoryItemDetail));
Expand All @@ -99,6 +100,8 @@ public void testCreateInventoryItemDetail() throws Exception {
assertEquals("Apples", jsonObject.getString("fruitVegTypeDesc"));
assertEquals("null", jsonObject.getString("multiStageCommdtyCode"));
assertEquals("null", jsonObject.getString("multiStageCommdtyDesc"));
assertEquals(1, jsonObject.getInt("urlId"));
assertEquals("https://google.com", jsonObject.getString("url"));
assertEquals("null", jsonObject.getString("userEmail"));
}

Expand Down Expand Up @@ -131,6 +134,8 @@ public void testGetInventoryItemDetailsByInventoryItemCode() throws Exception {
assertEquals("Apples", inventoryItemDetail.getString("fruitVegTypeDesc"));
assertEquals("null", inventoryItemDetail.getString("multiStageCommdtyCode"));
assertEquals("null", inventoryItemDetail.getString("multiStageCommdtyDesc"));
assertEquals(1, inventoryItemDetail.getInt("urlId"));
assertEquals("https://google.com", inventoryItemDetail.getString("url"));
assertEquals("null", inventoryItemDetail.getString("userEmail"));
}

Expand Down Expand Up @@ -158,6 +163,8 @@ public void testGetInventoryItemDetail() throws Exception {
assertEquals("Apples", jsonObject.getString("fruitVegTypeDesc"));
assertEquals("null", jsonObject.getString("multiStageCommdtyCode"));
assertEquals("null", jsonObject.getString("multiStageCommdtyDesc"));
assertEquals(1, jsonObject.getInt("urlId"));
assertEquals("https://google.com", jsonObject.getString("url"));
assertEquals("null", jsonObject.getString("userEmail"));
}

Expand All @@ -175,6 +182,7 @@ public void testUpdateInventoryItemDetail() throws Exception {
inventoryItemDetail.setCommodityTypeCode("FORAGE");
inventoryItemDetail.setFruitVegTypeCode("APRICOT");
inventoryItemDetail.setMultiStageCommdtyCode(null);
inventoryItemDetail.setUrlId(2L);
inventoryItemDetail.setUserEmail("jsmith@gmail.com");

Response response = target("/inventoryItemDetails/55361").request().put(Entity.json(inventoryItemDetail));
Expand All @@ -198,6 +206,8 @@ public void testUpdateInventoryItemDetail() throws Exception {
assertEquals("Apricots", jsonObject.getString("fruitVegTypeDesc"));
assertEquals("null", jsonObject.getString("multiStageCommdtyCode"));
assertEquals("null", jsonObject.getString("multiStageCommdtyDesc"));
assertEquals(2, jsonObject.getInt("urlId"));
assertEquals("https://microsoft.com", jsonObject.getString("url"));
assertEquals("null", jsonObject.getString("userEmail"));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ public interface InventoryItemDetail extends Serializable {
public String getMultiStageCommdtyDesc();
public void setMultiStageCommdtyDesc(String multiStageCommdtyDesc);

public Long getUrlId();
public void setUrlId(Long urlId);

public String getUrl();
public void setUrl(String url);

public String getUserEmail();
public void setUserEmail(String userEmail);
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,15 @@ public void insertStagingRow(ImportIVPRDto dto, String userId, int rowNum) throw

try (CallableStatement callableStatement = this.conn
.prepareCall(
"call farms_ivpr_pkg.insert_staging_row(?, ?, ?, ?, ?, ?)")) {
"call farms_ivpr_pkg.insert_staging_row(?, ?, ?, ?, ?, ?, ?)")) {
callableStatement.setLong(1, rowNum);
callableStatement.setObject(2, dto.getProgramYear() == null ? null : dto.getProgramYear().shortValue(),
Types.SMALLINT);
callableStatement.setString(3, dto.getInventoryItemCode());
callableStatement.setBigDecimal(4, dto.getInsurableValue());
callableStatement.setBigDecimal(5, dto.getPremiumRate());
callableStatement.setString(6, userId);
callableStatement.setString(6, dto.getFileLocation());
callableStatement.setString(7, userId);
callableStatement.execute();
} catch (RuntimeException | SQLException e) {
handleException(e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public class ImportIVPRDto implements Serializable {
private String inventoryItemDesc;
private BigDecimal insurableValue;
private BigDecimal premiumRate;
private String fileLocation;

public Integer getProgramYear() {
return programYear;
Expand Down Expand Up @@ -52,4 +53,12 @@ public BigDecimal getPremiumRate() {
public void setPremiumRate(BigDecimal premiumRate) {
this.premiumRate = premiumRate;
}

public String getFileLocation() {
return fileLocation;
}

public void setFileLocation(String fileLocation) {
this.fileLocation = fileLocation;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ public class InventoryItemDetailDto extends BaseDto<InventoryItemDetailDto> {
private String fruitVegTypeDesc;
private String multiStageCommdtyCode;
private String multiStageCommdtyDesc;
private Long urlId;
private String url;

private Integer revisionCount;
private String createUser;
Expand All @@ -54,6 +56,8 @@ public InventoryItemDetailDto(InventoryItemDetailDto dto) {
this.fruitVegTypeDesc = dto.fruitVegTypeDesc;
this.multiStageCommdtyCode = dto.multiStageCommdtyCode;
this.multiStageCommdtyDesc = dto.multiStageCommdtyDesc;
this.urlId = dto.urlId;
this.url = dto.url;

this.revisionCount = dto.revisionCount;
this.createUser = dto.createUser;
Expand Down Expand Up @@ -101,6 +105,8 @@ public boolean equalsAll(InventoryItemDetailDto other) {
&& dtoUtils.equals("multiStageCommdtyCode", multiStageCommdtyCode, other.multiStageCommdtyCode);
result = result
&& dtoUtils.equals("multiStageCommdtyDesc", multiStageCommdtyDesc, other.multiStageCommdtyDesc);
result = result && dtoUtils.equals("urlId", urlId, other.urlId);
result = result && dtoUtils.equals("url", url, other.url);
}

return result;
Expand Down Expand Up @@ -218,6 +224,22 @@ public void setMultiStageCommdtyDesc(String multiStageCommdtyDesc) {
this.multiStageCommdtyDesc = multiStageCommdtyDesc;
}

public Long getUrlId() {
return urlId;
}

public void setUrlId(Long urlId) {
this.urlId = urlId;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public Integer getRevisionCount() {
return revisionCount;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
<result property="fruitVegTypeDesc" column="fruit_veg_type_desc" javaType="java.lang.String" jdbcType="VARCHAR" />
<result property="multiStageCommdtyCode" column="multi_stage_commdty_code" javaType="java.lang.String" jdbcType="VARCHAR" />
<result property="multiStageCommdtyDesc" column="multi_stage_commdty_desc" javaType="java.lang.String" jdbcType="VARCHAR" />
<result property="urlId" column="url_id" javaType="java.lang.Long" jdbcType="BIGINT" />
<result property="url" column="url" javaType="java.lang.String" jdbcType="VARCHAR" />

<result property="revisionCount" column="revision_count" javaType="java.lang.Integer" jdbcType="NUMERIC" />
<result property="createUser" column="who_created" javaType="java.lang.String" jdbcType="VARCHAR" />
Expand All @@ -41,7 +43,9 @@
fvtc.fruit_veg_type_code,
fvtc.description as fruit_veg_type_desc,
mscc.multi_stage_commdty_code,
mscc.description as multi_stage_commdty_desc
mscc.description as multi_stage_commdty_desc,
u.url_id,
u.url
</sql>

<sql id="fromClause">
Expand All @@ -50,6 +54,7 @@
left join farms.farm_commodity_type_codes ctc using (commodity_type_code)
left join farms.farm_fruit_veg_type_codes fvtc using (fruit_veg_type_code)
left join farms.farm_multi_stage_commdty_codes mscc using (multi_stage_commdty_code)
left join farms.farm_urls u using (url_id)
</sql>

<select id="fetch" resultMap="InventoryItemDetailDtoMap">
Expand Down Expand Up @@ -80,6 +85,7 @@
commodity_type_code,
fruit_veg_type_code,
multi_stage_commdty_code,
url_id,
revision_count,
who_created,
when_created,
Expand Down Expand Up @@ -112,6 +118,11 @@
from farms.farm_multi_stage_commdty_codes mscc
where mscc.multi_stage_commdty_code = #{dto.multiStageCommdtyCode, javaType=java.lang.String, jdbcType=VARCHAR, mode=IN}
),
(
select u.url_id
from farms.farm_urls u
where u.url_id = #{dto.urlId, javaType=java.lang.Long, jdbcType=BIGINT, mode=IN}
),
1,
#{userId, javaType=java.lang.String, jdbcType=VARCHAR, mode=IN},
now(),
Expand Down Expand Up @@ -147,6 +158,11 @@
from farms.farm_multi_stage_commdty_codes mscc
where mscc.multi_stage_commdty_code = #{dto.multiStageCommdtyCode, javaType=java.lang.String, jdbcType=VARCHAR, mode=IN}
),
url_id = (
select u.url_id
from farms.farm_urls u
where u.url_id = #{dto.urlId, javaType=java.lang.Long, jdbcType=BIGINT, mode=IN}
),
revision_count = revision_count + 1,
who_updated = #{userId, javaType=java.lang.String, jdbcType=VARCHAR, mode=IN},
when_updated = now()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ public void testInsert() {
dto.setCommodityTypeCode(null);
dto.setFruitVegTypeCode(null);
dto.setMultiStageCommdtyCode(null);
dto.setUrlId(1L);

InventoryItemDetailDto result = null;
try {
Expand All @@ -70,6 +71,8 @@ public void testInsert() {
assertThat(result.getFruitVegTypeDesc()).isNull();
assertThat(result.getMultiStageCommdtyCode()).isNull();
assertThat(result.getMultiStageCommdtyDesc()).isNull();
assertThat(result.getUrlId()).isEqualTo(1);
assertThat(result.getUrl()).isEqualTo("https://google.com");
}

@Test
Expand Down Expand Up @@ -100,6 +103,8 @@ public void testFetchByInventoryItemCode() {
assertThat(fetchedDto.getFruitVegTypeDesc()).isNull();
assertThat(fetchedDto.getMultiStageCommdtyCode()).isNull();
assertThat(fetchedDto.getMultiStageCommdtyDesc()).isNull();
assertThat(fetchedDto.getUrlId()).isEqualTo(1);
assertThat(fetchedDto.getUrl()).isEqualTo("https://google.com");
}

@Test
Expand All @@ -123,6 +128,7 @@ public void testUpdate() {
dto.setCommodityTypeCode(null);
dto.setFruitVegTypeCode(null);
dto.setMultiStageCommdtyCode(null);
dto.setUrlId(2L);

InventoryItemDetailDto result = null;
try {
Expand All @@ -146,6 +152,8 @@ public void testUpdate() {
assertThat(result.getFruitVegTypeDesc()).isNull();
assertThat(result.getMultiStageCommdtyCode()).isNull();
assertThat(result.getMultiStageCommdtyDesc()).isNull();
assertThat(result.getUrlId()).isEqualTo(2);
assertThat(result.getUrl()).isEqualTo("https://microsoft.com");
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ CREATE TABLE farms.farm_inventory_item_details (
commodity_type_code varchar(10),
fruit_veg_type_code varchar(10),
multi_stage_commdty_code varchar(10),
url_id bigint,
revision_count integer NOT NULL DEFAULT 1,
who_created varchar(30) NOT NULL,
when_created timestamp(0) NOT NULL DEFAULT statement_timestamp(),
Expand All @@ -31,12 +32,14 @@ COMMENT ON COLUMN farms.farm_inventory_item_details.when_created IS E'WHEN CREAT
COMMENT ON COLUMN farms.farm_inventory_item_details.when_updated IS E'WHEN UPDATED indicates when the physical record was updated in the database.';
COMMENT ON COLUMN farms.farm_inventory_item_details.who_created IS E'WHO CREATED indicates the user that created the physical record in the database.';
COMMENT ON COLUMN farms.farm_inventory_item_details.who_updated IS E'WHO UPDATED indicates the user that updated the physical record in the database.';
COMMENT ON COLUMN farms.farm_inventory_item_details.url_id IS E'URL ID is a foreign key to FARM_URLS.';
CREATE INDEX farm_iid_elig_ind_i ON farms.farm_inventory_item_details (program_year, eligibility_ind);
CREATE INDEX farm_iid_farm_ctc_fk_i ON farms.farm_inventory_item_details (commodity_type_code);
CREATE INDEX farm_iid_farm_fvtc_fk_i ON farms.farm_inventory_item_details (fruit_veg_type_code);
CREATE INDEX farm_iid_farm_ic_fk_i ON farms.farm_inventory_item_details (inventory_item_code);
CREATE INDEX farm_iid_farm_mscc_fk_i ON farms.farm_inventory_item_details (multi_stage_commdty_code);
CREATE INDEX farm_iid_line_item_i ON farms.farm_inventory_item_details (program_year, line_item);
CREATE INDEX farm_iid_farm_url_fk_i ON farms.farm_inventory_item_details (url_id);
ALTER TABLE farms.farm_inventory_item_details ADD CONSTRAINT farm_iid_pk PRIMARY KEY (inventory_item_detail_id);
ALTER TABLE farms.farm_inventory_item_details ADD CONSTRAINT farm_iid_uk UNIQUE (program_year,inventory_item_code);
ALTER TABLE farms.farm_inventory_item_details ADD CONSTRAINT farm_iid_elig_chk CHECK (eligibility_ind in ('N', 'Y'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ protected ImportIVPRDto parseLine(String[] cols, int row) throws ParseException
dto.setInventoryItemDesc(cols[index++].trim());
dto.setInsurableValue(ParseUtils.parseBigDecimal(cols[index++].trim()));
dto.setPremiumRate(ParseUtils.parseBigDecimal(cols[index++].trim()));
dto.setFileLocation(cols[index++].trim());

return dto;
}
Expand All @@ -36,6 +37,7 @@ protected List<String> getExpectedHeaders() {
add("Description");
add("IV");
add("PR");
add("FileLocation");
}
};
}
Expand Down
5 changes: 5 additions & 0 deletions farms-liquibase/changelog.json
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,11 @@
"include": {
"file": "scripts/01_00_xx/01_00_03/17/farms.01_00_03_17.ddl.json"
}
},
{
"include": {
"file": "scripts/01_00_xx/01_00_03/18/farms.01_00_03_18.ddl.json"
}
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
GRANT EXECUTE ON PROCEDURE farms_ivpr_pkg.staging_to_operational TO "app_farms_rest_proxy";
GRANT EXECUTE ON PROCEDURE farms_ivpr_pkg.insert_staging_row TO "app_farms_rest_proxy";

GRANT TRUNCATE ON TABLE farms.farm_zivpr_iv_premium_rates TO "app_farms_rest_proxy";
Loading
Loading