Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r25269 -r25270 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 25269) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 25270) @@ -13557,25 +13557,46 @@ */ private void materialTypeWorkloadReportList(String statDate,String endDate,String querySupplyRoom,List list){ + String betweenSql = String.format(" between %s and %s ", + dateQueryAdapter.dateConverAdapter2(statDate, "yyyy-mm-dd"), + dateQueryAdapter.dateConverAdapter2(endDate, "yyyy-mm-dd")); + + ReportQueryParams params = new ReportQueryParams(); + params.betweenSql = betweenSql; + params.querySupplyRoom = querySupplyRoom; + + + // 统计整包清洗的器械包和消毒物品的材料件数 String sql = "select t1.type,sum(t1.amount) from ( select m.type as type,(min(i.amount)*sum(ms.count)) as amount from "; sql += "washanddisinfectrecord r,ClassifyBasket_WashRecord cw,ClassifyBasket b,ClassifiedItem i,"; sql += "TousseDefinition t,materialinstance ms,materialdefinition m "; sql += "where r.id = cw.washanddisinfectrecord_id and cw.classifybasket_id = b.id and "; sql += "b.id = i.classifybasket_id and i.toussedefinition_id = t.id and t.id = ms.tousse_id and ms.materialdefinition_id = m.id "; - sql += "and i.itemType='"+ ClassifiedItem.TYPE_TOUSSE +"' "; - sql += "and r.enddate between " + dateQueryAdapter.dateConverAdapter2(statDate,"yyyy-mm-dd") + " and "; - sql += dateQueryAdapter.dateConverAdapter2(endDate,"yyyy-mm-dd") + SqlUtils.get_InSql_Extra("r.orgUnitCoding", querySupplyRoom) + " group by i.id,m.type "; + sql += "and (i.itemType='"+ ClassifiedItem.TYPE_TOUSSE +"' or i.itemType='"+ ClassifiedItem.TYPE_DISINFECTION_GOODS +"')"; + sql += "and r.enddate " + params.betweenSql ; + sql += SqlUtils.get_InSql_Extra("r.orgUnitCoding", params.querySupplyRoom) + " group by i.id,m.type "; sql += " union all "; + // 统计拆包清洗的材料件数(主要包括拆包清洗的器械包以及外来器械) sql += "select m.type as type,sum(i.amount) as amount from "; sql += "washanddisinfectrecord r ,ClassifyBasket_WashRecord cw ,ClassifyBasket b, ClassifiedItem i,materialdefinition "; sql += "m where r.id = cw.washanddisinfectrecord_id and cw.classifybasket_id = b.id and b.id = i.classifybasket_id and "; - sql += "i.materialdefinition_id = m.id and r.enddate between " + dateQueryAdapter.dateConverAdapter2(statDate,"yyyy-mm-dd") + " and "; - sql += dateQueryAdapter.dateConverAdapter2(endDate,"yyyy-mm-dd") + SqlUtils.get_InSql_Extra("r.orgUnitCoding", querySupplyRoom) + " group by m.type"; - sql += ") t1 group by t1.type"; + sql += "i.materialdefinition_id = m.id and r.enddate " + params.betweenSql; + sql += SqlUtils.get_InSql_Extra("r.orgUnitCoding", params.querySupplyRoom) + " group by m.type"; + // 统计单独登记清洗的材料数量 + sql += " union all "; + sql += String + .format("select md.type type,sum(wrm.amount) amount " + + dataIndex.getWashMaterialAmountSqlFromTousseTypeIsMaterial() + + "and wr.endDate %s %s group by md.type ", + params.betweenSql, + SqlUtils.get_InSql_Extra("wr.orgUnitCoding", params.querySupplyRoom) + ); + sql += ") t1 group by t1.type"; + String likeSql = ""; if (StringUtils.isNotBlank(querySupplyRoom)){ likeSql = "and fd.departcodes like '%" + querySupplyRoom + "%'";