Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r31054 -r31108 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 31054) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 31108) @@ -19400,7 +19400,7 @@ String returnSql = String.format(" select td.packageSize,-sum(ri.amount) amount " + "from ReturnGoodsRecord rr inner join ReturnGoodsItem ri on rr.id = ri.returngoodsrecord_id " + "join TousseDefinition td on td.id = ri.tousseDefinition_id " - + "where 1!=1 and rr.handleDepartCode='%s' %s ", + + "where rr.handleDepartCode='%s' %s ", departmentCode,returnBetweenSql); //1、本院科室 String sql1 = String.format("select td.packageSize,sum(ii.amount) amount " @@ -19425,11 +19425,12 @@ tousseTypeInSql = String.format(" and td.tousseType in ('%s','%s')", TousseDefinition.PACKAGE_TYPE_FOREIGN,TousseDefinition.PACKAGE_TYPE_SPLIT); //3、植入物器械包 - sql1 = String.format("select t1.packageSize,count(*) amount " + sql1 = String.format("select t1.packageSize,sum(amount) amount " + "from(" - + "select td.packageSize " - + "from Invoice i join TousseInstance ti on ti.invoice_id=i.id " - + "join TousseDefinition td on td.id=ti.tousseDefinition_id " + + "select td.packageSize,sum(ii.amount) amount " + //+ "from Invoice i join TousseInstance ti on ti.invoice_id=i.id " + + "from Invoice i join InvoiceItem ii on ii.invoice_id=i.id " + + "join TousseDefinition td on td.id=ii.tousseDefinitionId " + "where 1=1 %s " + " %s %s group by td.id,td.packageSize" + ") t1 group by t1.packageSize ", @@ -19441,12 +19442,12 @@ sql1 = String.format("select '消毒包' packageSize,sum(ii.amount) amount from Invoice i join InvoiceItem ii on ii.invoice_id=i.id " + "where ii.tousseType='%s' %s %s", TousseDefinition.PACKAGE_TYPE_DISINFECTION, betweenSql, orgUnitCodingSql); - sql1 = "select packageSize,sum(amount) amount from (" + sql1 + " union all " + returnSql + " and td.tousseType='"+ TousseDefinition.PACKAGE_TYPE_DISINFECTION +"'" + groupBySql + ")tempTable group by packageSize "; + sql1 = "select '消毒包' packageSize,sum(amount) amount from (" + sql1 + " union all " + returnSql + " and td.tousseType='"+ TousseDefinition.PACKAGE_TYPE_DISINFECTION +"'" + groupBySql + ")tempTable "; logger.debug("消毒物品" + sql1); setTousseSpecificationSizeStatisticsBean(list, sql1, "消毒物品"); //材料发货,也计算到发货数量的包数和件数上 CDSLQYQYYY-84 StringBuilder sbr = new StringBuilder(); - sbr.append("select '材料' packageSize,sum(ii.amount) amount from ") + sbr.append("select '材料' packageSize,sum(amount) amount from (select sum(ii.amount) amount from ") .append(MaterialInvoiceItem.class.getSimpleName()) .append(" ii inner join ") .append(MaterialInvoice.class.getSimpleName()) @@ -19456,6 +19457,15 @@ .append(" d on ii.materialDefinitionId = d.id where 1=1 ") .append(betweenSql) .append(SqlUtils.get_InSql_Extra("i.orgUnitCoding",departmentCode)); + betweenSql = " and " + dateQueryAdapter.dateAreaSql("rr.returnTime", startDay, endDay, true); + sbr.append(" union all select sum(-rmi.amount) amount from ") + .append(ReturnMaterialRecord.class.getSimpleName()) + .append(" rr join ") + .append(ReturnMaterialItem.class.getSimpleName()) + .append(" rmi on rmi.returnMaterialRecord_ID=rr.id where 1=1 ") + .append(SqlUtils.get_InSql_Extra("rr.handleDepartCode",departmentCode)) + .append(betweenSql) + .append(")temp "); logger.debug("材料发货" + sbr.toString()); setTousseSpecificationSizeStatisticsBean(list, sbr.toString(), "材料"); }