Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r13500 -r13503 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 13500) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 13503) @@ -7580,15 +7580,16 @@ gradeCondition = " and po.grade = '" + grade + "'"; } - String goodsPlanSummarySql = ""; - String inStorageSummarySql = ""; - String moveInSummarySql = ""; - String stockTaskInSummarySql = ""; - String moveOutSummarySql = ""; - String stockTaskOutSummarySql = ""; - String outStorageSummarySql = ""; - String invoiceSummarySql = ""; - String returnSummarySql = ""; + String goodsPlanSummarySql = "";//采购计划 + String inStorageSummarySql = "";//购入入库 + String moveInSummarySql = "";//调拨入库 + String stockTaskInSummarySql = "";//盘盈入库 + String moveOutSummarySql = "";//调拨出库 + String stockTaskOutSummarySql = "";//盘亏出库 + String outStorageSummarySql = "";//退库 + String invoiceSummarySql = "";//发货 + String receiveSummarySql = "";//供应室领用 + String returnSummarySql = "";//退货 //按数据库类型分别处理 if(DatabaseUtil.isSqlServer(dbConnection.getDatabase())){ //sqlserver的处理逻辑 @@ -7660,6 +7661,12 @@ +" and ii.invoice_id in (select id from Invoice f where 1=1 " + sendTimeCondition + " and f.orgUnitCoding='" + orgUnitCoding + "') where 1=1 " + goodsNameCondition + gradeCondition +" group by po.externalCode, po.name,po.specification order by po.externalCode"; + //供应室领用 + receiveSummarySql = "select po.externalCode, case when po.specification is null then po.name else po.name + '['+ po.specification +']' end name, sum(rri.amount) amount from DisposableGoods po" + +" left join ReceiveRecordItem rri on po.id=rri.disposableGoodsId" + +" and rri.receiveRecord_id in (select id from ReceiveRecord f where 1=1 " + timeCondition + " and f.departCoding='" + orgUnitCoding + "') where 1=1 " + goodsNameCondition + gradeCondition + +" group by po.externalCode, po.name,po.specification order by po.externalCode"; + //一次性物品信息出库数量查询-退货 returnSummarySql = "select po.externalCode, case when po.specification is null then po.name else po.name + '['+ po.specification +']' end name, -1*sum(rgi.amount) amount from DisposableGoods po " +" left join ReturnGoodsItem rgi on po.id=rgi.disposableGoodsId" @@ -7735,6 +7742,12 @@ +" and ii.invoice_id in (select id from Invoice f where 1=1 " + sendTimeCondition + " and f.orgUnitCoding='" + orgUnitCoding + "') where 1=1 " + goodsNameCondition + gradeCondition +" group by po.externalCode, po.name,po.specification order by po.externalCode"; + //供应室领用 + receiveSummarySql = "select po.externalCode, case when po.specification is null then po.name else po.name || '['|| po.specification ||']' end name, sum(rri.amount) amount from DisposableGoods po" + +" left join ReceiveRecordItem rri on po.id=rri.disposableGoodsId" + +" and rri.receiveRecord_id in (select id from ReceiveRecord f where 1=1 " + timeCondition + " and f.departCoding='" + orgUnitCoding + "') where 1=1 " + goodsNameCondition + gradeCondition + +" group by po.externalCode, po.name,po.specification order by po.externalCode"; + //一次性物品信息出库数量查询-退货 returnSummarySql = "select po.externalCode, case when po.specification is null then po.name else po.name || '['|| po.specification ||']' end name, -1*sum(rgi.amount) amount from DisposableGoods po " +" left join ReturnGoodsItem rgi on po.id=rgi.disposableGoodsId" @@ -7753,6 +7766,7 @@ List> outStorageSummaryMapList = getGoodsAmountSummaryByGradeMap(outStorageSummarySql); List> invoiceSummaryMapList = getGoodsAmountSummaryByGradeMap(invoiceSummarySql); + List> receiveSummaryMapList = getGoodsAmountSummaryByGradeMap(receiveSummarySql); List> returnSummaryMapList = getGoodsAmountSummaryByGradeMap(returnSummarySql); if(CollectionUtils.isNotEmpty(goodsPlanSummaryMapList)){ @@ -7765,6 +7779,7 @@ Map stockTaskOutSummaryMap = stockTaskOutSummaryMapList.get(i); Map outStorageSummaryMap = outStorageSummaryMapList.get(i); Map invoiceSummaryMap = invoiceSummaryMapList.get(i); + Map receiveSummaryMap = receiveSummaryMapList.get(i); Map returnSummaryMap = returnSummaryMapList.get(i); long goodsPlanAmount = goodsPlanSummaryMap.get("amount") == null ? 0 : ((Number)goodsPlanSummaryMap.get("amount")).longValue(); @@ -7778,8 +7793,9 @@ long inTotalAmount = inStorageAmount + moveInAmount + moveOutAmount + stockTaskInAmount + stockTaskOutAmount + outStorageAmount; long invoiceAmount = invoiceSummaryMap.get("amount") == null ? 0 : ((Number)invoiceSummaryMap.get("amount")).longValue(); + long receiveAmount = receiveSummaryMap.get("amount") == null ? 0 : ((Number)receiveSummaryMap.get("amount")).longValue(); long returnAmount = returnSummaryMap.get("amount") == null ? 0 : ((Number)returnSummaryMap.get("amount")).longValue(); - long outTotalAmount = invoiceAmount + returnAmount; + long outTotalAmount = invoiceAmount + receiveAmount + returnAmount; if(goodsPlanAmount != 0 && inTotalAmount != 0 && outTotalAmount != 0){ GoodsAmountSummaryByGrade vo = new GoodsAmountSummaryByGrade();