Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r17013 -r17017 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 17013) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 17017) @@ -7493,14 +7493,14 @@ + "and wr.orgUnitCoding = '%s' and ci.itemtype != '材料' and wr.endDate %s and wr.washMaterialAmount <> 0", supplyRoom,betweenSql); tousseAmountSql += ") t1 group by t1.userName "; - tousseAmountSql += "union all "; + tousseAmountSql += " union all "; //装配记录 tousseAmountSql += String.format("select '配包数量' type,pr.packer userName,sum(pr.amount) amount from PackingRecord pr " + "where pr.orgUnitCoding = '%s' and pr.packTime %s and pr.packer is not null and %s(pr.packer)<>0 " + "group by pr.packer ", supplyRoom,betweenSql,sqlLengthFunctionName); - tousseAmountSql += "union all "; + tousseAmountSql += " union all "; //审核记录 tousseAmountSql += String.format("select '审核数量' type,ti.reviewer userName,count(*) amount from tousseInstance ti " @@ -7510,17 +7510,25 @@ tousseAmountSql += " union all "; //灭菌记录 - tousseAmountSql += String.format("select '灭菌数量' type,sr.sterilizationUser userName,sum(sr.amount) amount from SterilizationRecord sr " - + "where sr.orgUnitCoding='%s' and sr.endDate %s and %s(sr.sterilizationUser)<>0 " - + "group by sr.sterilizationUser ", supplyRoom,betweenSql,sqlLengthFunctionName); - - tousseAmountSql += "union all "; + tousseAmountSql += "select '灭菌数量' type,temp.userName userName,sum(temp.amount) amount from("; + tousseAmountSql += String.format("select sr.sterilizationUser userName,count(*) amount from SterilizationRecord sr,sterilization_tousseInstance st,TousseInstance ti " + + "where sr.id = st.sterilizationRecord_id and st.tousseInstance_id = ti.id " + + "and sr.orgUnitCoding='%s' and sr.endDate %s and %s(sr.sterilizationUser)<>0 group by sr.sterilizationUser ", + supplyRoom, betweenSql, sqlLengthFunctionName); + tousseAmountSql += " union all "; + tousseAmountSql += String.format("select sr.sterilizationUser userName,count(*) amount from SterilizationRecord sr,sterilization_reviewed sre,ReviewedBasket rb,TousseInstance ti " + + "where sr.id = sre.sterilizationRecord_id and sre.reviewedBasket_id = rb.id and rb.id = ti.reviewBasket_ID " + + "and sr.orgUnitCoding='%s' and sr.endDate %s and %s(sr.sterilizationUser)<>0 group by sr.sterilizationUser ", + supplyRoom, betweenSql, sqlLengthFunctionName); + tousseAmountSql += ") temp group by temp.userName"; + + tousseAmountSql += " union all "; //发货记录 tousseAmountSql += String.format("select '发货数量' type,i.sender userName,sum(ii.amount) amount from Invoice i,InvoiceItem ii " + "where ii.invoice_id = i.id and i.orgUnitCoding = '%s' and i.sendTime %s and %s(i.sender)<>0 " + "group by i.sender ", supplyRoom,betweenSql,sqlLengthFunctionName); - tousseAmountSql += "union all "; + tousseAmountSql += " union all "; //核对记录 tousseAmountSql += String.format("select '核对数量' type,i.assistantSender userName,sum(ii.amount) amount from Invoice i, InvoiceItem ii " @@ -7536,7 +7544,7 @@ + "where pr.orgUnitCoding= '%s' and pr.packTime %s and %s(pr.inspector)<>0 " + "group by pr.inspector ", supplyRoom_zsly,supplyRoom_zsly,sqlLengthFunctionName); //包装数量 - tousseAmountSql += "union all "; + tousseAmountSql += " union all "; tousseAmountSql += String.format("select '包装数量' type,pr.wrapper userName,sum(pr.amount) amount from PackingRecord pr " + "where pr.orgUnitCoding = '%s' and pr.packTime %s and %s(pr.wrapper)<>0 " + "group by pr.wrapper ", supplyRoom_zsly,betweenSql,sqlLengthFunctionName);