Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r33666 -r33674 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 33666) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 33674) @@ -662,9 +662,10 @@ * @param operatorSearch * @param departColumnName 第二列部门 病区或病人所在科室 * @param departOfpatientSearch 病人所在科室过滤 + * @param goodsType 物品类型 * @return */ - public List getSummaryUseRecordForGoodsVO(String startTime, String endTime, String departSearch, String goodsSearch, String departColumnName, String departOfpatientSearch); + public List getSummaryUseRecordForGoodsVO(String startTime, String endTime, String departSearch, String goodsSearch, String departColumnName, String departOfpatientSearch, String goodsType); /** * 获取"使用记录物品汇总表"的javabean * @param startTime 开始时间 Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r33666 -r33674 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33666) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33674) @@ -15833,7 +15833,7 @@ @Override public List getSummaryUseRecordForGoodsVO( String startTime, String endTime, String departSearch, - String goodsSearch, String departColumnName, String departOfpatientSearch) { + String goodsSearch, String departColumnName, String departOfpatientSearch, String goodsType) { List list = new ArrayList(); if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) { @@ -15882,15 +15882,45 @@ if (StringUtils.isNotBlank(goodsSearch)) { goodsSearchSql = String.format(" and t1.goodsName='%s' ", goodsSearch); } - + String disposableGoodsTypeSql = ""; + String joinDisposableGoods = ""; + String tousseTypeSql = ""; + String joinTousseSql = ""; + if(StringUtils.isNotBlank(goodsType) && !goodsType.equals("全部")){ + if(goodsType.equals("高值耗材")){ + disposableGoodsTypeSql = " and 1=1 "; + joinDisposableGoods = " left join DisposableGoods dg on dg.id=udgi.disposableGoodsId "; + tousseTypeSql = " and 1=2 "; + }else if(goodsType.equals("一次性物品")){ + disposableGoodsTypeSql = " and 1=1 "; + tousseTypeSql = " and 1=2 "; + }else{ + disposableGoodsTypeSql = " and 1=2 "; + if(!"全部器械包".equals(goodsType)){ + joinTousseSql = " inner join " + TousseDefinition.class.getSimpleName() + " td on td.id=ti.tousseDefinition_id "; + if("外来器械包".equals(goodsType)){ + tousseTypeSql = "and td.tousseType in('"+ TousseDefinition.PACKAGE_TYPE_FOREIGN +"','"+ TousseDefinition.PACKAGE_TYPE_SPLIT +"') "; + } else if("外部代理灭菌包".equals(goodsType)){ + tousseTypeSql = "and td.tousseType='"+ TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY +"'"; + }else{ + tousseTypeSql = "and td.tousseType='"+ goodsType +"'"; + } + } + } + } String sql = String.format("select t1.departCode,min(t1.departName) departName,t1.patientArea,t1.goodsName goodsName,t1.price,sum(t1.amount) amount,sum(t1.amount*t1.price) total from (" + "select 'tousse' type,ur.depart departName,ur.departCoding departCode,ti.tousseName goodsName,1 amount,%s patientArea,ti.fluctuationPrice price " - + "from UseRecord ur inner join TousseInstance ti on ti.useRecord_id=ur.id where 1=1 %s %s" + + "from UseRecord ur inner join TousseInstance ti on ti.useRecord_id=ur.id " + + joinTousseSql + + "where 1=1 %s %s " + + tousseTypeSql + "union all " + "select 'disposableGoods' type ,ur.depart departName,ur.departCoding departCode,udgi.name goodsName,udgi.amount amount,%s patientArea,case when dgb.cost is not null then dgb.cost else edg.price end price " + "from UseRecord ur inner join UseDiposableGoodsItem udgi on udgi.userecord_id=ur.id " + "inner join barcodeDevice bd on bd.barcode=udgi.barcode " - + "left join DisposableGoodsBatch dgb on dgb.id=bd.id left join ExpensiveDisposablegoods edg on edg.id=bd.id where 1=1 %s %s" + + joinDisposableGoods + + "left join DisposableGoodsBatch dgb on dgb.id=bd.id left join ExpensiveDisposablegoods edg on edg.id=bd.id where 1=1 %s %s " + + disposableGoodsTypeSql + ") t1 where 1=1 %s %s %s" + "group by t1.departCode,t1.patientArea,t1.type,t1.goodsName,t1.price", departSql, betweenSql,departLimitSql, departSql, betweenSql,departLimitSql, departSearchSql, goodsSearchSql, departOfpatientSearchSql); Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r33666 -r33674 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 33666) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 33674) @@ -1730,8 +1730,9 @@ String departSearch = StrutsParamUtils.getPraramValue("departSearch", ""); String goodsSearch = StrutsParamUtils.getPraramValue("goodsSearch", ""); String departOfpatientSearch = StrutsParamUtils.getPraramValue("departOfpatientSearch", ""); + String goodsType = StrutsParamUtils.getPraramValue("goodsType", ""); String departColumnName = StrutsParamUtils.getPraramValue("departColumnName", "病区"); - return jasperReportManager.getSummaryUseRecordForGoodsVO(startDay, endDay, departSearch, goodsSearch,departColumnName,departOfpatientSearch); + return jasperReportManager.getSummaryUseRecordForGoodsVO(startDay, endDay, departSearch, goodsSearch,departColumnName,departOfpatientSearch,goodsType); } else if("summaryUseRecord".equals(reportName)){ String startDay = StrutsParamUtils.getPraramValue("startDay", ""); String endDay = StrutsParamUtils.getPraramValue("endDay", "");