Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r13152 -r13156 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 13152) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 13156) @@ -3750,7 +3750,7 @@ DatabaseUtil.closeResultSetAndStatement(materialInvoicePriceResultSet); } String invoiceAmountSql = "select '' as coding,i.settleAccountsDepart " - + "as depart,ii.amount from Invoice i,InvoiceItem ii where i.id = ii.invoice_id " + + "as depart,ii.amount,ii.tousseType,ii.tousseName,ii.invoicePlanID from Invoice i,InvoiceItem ii where i.id = ii.invoice_id " + " and i.orgUnitCoding = '" + handleDeptCode + "' " + " and (ii.amount is not null and ii.amount>0 and ii.tousseType!='一次性物品') "// 限制为只查包含器械包数量的 + " and (i.status ='收货签收' or i.status = '已发货') " + invoiceWheresql; @@ -3761,6 +3761,20 @@ String code = rs2.getString(1); String dept = rs2.getString(2); Double tousseAmount = rs2.getDouble(3); + String tousseType = rs2.getString(4); + String tousseName = rs2.getString(5); + Long invoicePlanId = rs2.getLong(6); + // 如果是消毒物品,用统计数量替换包数量 + if ("消毒物品".equals(tousseType)) { + if (StringUtils.isNotBlank(tousseName) + && DatabaseUtil.isPoIdValid(invoicePlanId)) { + int disinfectGoodsStatisticAmount = getDisinfectGoodsStatisticAmount( + tousseName, invoicePlanId.toString()); + if (disinfectGoodsStatisticAmount > 0) { + tousseAmount = (tousseAmount * disinfectGoodsStatisticAmount); + } + } + } if(tousseAmount > 0){ newMonthReport(code, dept,"2","数量统计", "器械包数量",tousseAmount,list); }