diff --git a/lc123/cloud/app/api/controller/FWInvQueryController.java b/lc123/cloud/app/api/controller/FWInvQueryController.java index 54e8c98..9049ee7 100644 --- a/lc123/cloud/app/api/controller/FWInvQueryController.java +++ b/lc123/cloud/app/api/controller/FWInvQueryController.java @@ -34,14 +34,25 @@ public class FWInvQueryController { // List resultBeans = new ArrayList<>(); String materialNumber = queryModel.getMaterialNumber(); String lot = queryModel.getLot(); + String warehouseNumber = queryModel.getWarehouseNumber(); + Date producedate = queryModel.getProducedate(); + Date expirydate = queryModel.getExpirydate(); + + QFilter qf1 = new QFilter("material.number", QCP.equals, materialNumber); - QFilter qf2 = new QFilter("lotnum", QCP.in, lot); - DynamicObject[] realbalances = BusinessDataServiceHelper.load("im_inv_realbalance", "id,org,warehouse,lotnum,avbbaseqty,qty", new QFilter[]{qf1, qf2}); + QFilter qf2 = new QFilter("lotnum", QCP.equals, lot); + QFilter qf3 = new QFilter("warehouse.number", QCP.equals, warehouseNumber); + QFilter qf4 = new QFilter("producedate", QCP.equals, producedate); + QFilter qf5 = new QFilter("expirydate", QCP.equals, expirydate); + DynamicObject[] realbalances = BusinessDataServiceHelper.load("im_inv_realbalance", "id,org,warehouse,lotnum,avbbaseqty,qty", new QFilter[]{qf1, qf2, qf3, qf4, qf5}); if(realbalances != null && realbalances.length > 0){ + FWInvQueryResult.ResultBean resultBean = new FWInvQueryResult.ResultBean(); + BigDecimal totalQty = BigDecimal.ZERO; for (DynamicObject realbalance : realbalances) { - FWInvQueryResult.ResultBean resultBean = new FWInvQueryResult.ResultBean(); + //获取数量 BigDecimal qty = realbalance.getBigDecimal("qty"); + totalQty = totalQty.add(qty); //获取组织数据 DynamicObject org = realbalance.getDynamicObject("org"); if (org!= null){ @@ -56,13 +67,13 @@ public class FWInvQueryController { OrmLocaleValue name = (OrmLocaleValue)warehouse.get("name"); resultBean.setWarehouseName(name.get("zh_CN")); } - resultBean.setNumber(materialNumber); - resultBean.setLot(lot); - resultBean.setQty(qty); - resultBeanList.add(resultBean); + } + resultBean.setNumber(materialNumber); + resultBean.setLot(lot); + resultBean.setQty(totalQty); + resultBeanList.add(resultBean); } -// resultBeanList.add(resultBeans); } resultExt.setFailCount(failCount); diff --git a/lc123/cloud/app/api/model/FWInvQueryModel.java b/lc123/cloud/app/api/model/FWInvQueryModel.java index feee1b7..994252f 100644 --- a/lc123/cloud/app/api/model/FWInvQueryModel.java +++ b/lc123/cloud/app/api/model/FWInvQueryModel.java @@ -5,6 +5,7 @@ import kd.bos.openapi.common.custom.annotation.ApiParam; import java.io.Serializable; import java.util.ArrayList; +import java.util.Date; import java.util.List; @ApiModel @@ -30,6 +31,15 @@ public class FWInvQueryModel implements Serializable { @ApiParam(value = "批次号", example = "20250101", required = true) private String lot; + @ApiParam(value = "仓库编码", example = "01", required = true) + private String warehouseNumber; + + @ApiParam(value = "生产日期", example = "2025-01-01", required = true) + private Date producedate; + + @ApiParam(value = "到期日期", example = "2025-12-31", required = true) + private Date expirydate; + public String getMaterialNumber() { return materialNumber; } @@ -45,5 +55,29 @@ public class FWInvQueryModel implements Serializable { public void setLot(String lot) { this.lot = lot; } + + public String getWarehouseNumber() { + return warehouseNumber; + } + + public void setWarehouseNumber(String warehouseNumber) { + this.warehouseNumber = warehouseNumber; + } + + public Date getProducedate() { + return producedate; + } + + public void setProducedate(Date producedate) { + this.producedate = producedate; + } + + public Date getExpirydate() { + return expirydate; + } + + public void setExpirydate(Date expirydate) { + this.expirydate = expirydate; + } } }