Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/ReportSqlUtil.java =================================================================== diff -u -r38052 -r38752 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/ReportSqlUtil.java (.../ReportSqlUtil.java) (revision 38052) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/ReportSqlUtil.java (.../ReportSqlUtil.java) (revision 38752) @@ -125,25 +125,19 @@ endDaySql = ""; } // 统计清洗项的itemType为材料的物品,包括拆包清洗的器械包以及外来器械包 - String sql = String - .format("select ci.itemType type,ci.orgUnitName,ci.isSencondWashForForeignTousse ,sum(ci.amount-case when numOfUnwashedStops is null then 0 else numOfUnwashedStops end) amount, td.tousseType " + String sql = "select ci.itemType type,ci.orgUnitName,ci.isSencondWashForForeignTousse ,sum(ci.amount-case when numOfUnwashedStops is null then 0 else numOfUnwashedStops end) amount, td.tousseType " + queryDaySql + dataIndex.getWashMaterialAmountSqlFromItemTypeIsMaterial(params.extraJoinCondition) - + " and wr.endDate %s and wr.washMaterialAmount <> 0 %s group by ci.itemType,ci.orgUnitName,ci.isSencondWashForForeignTousse, td.tousseType " - + groupByDaySql, - params.betweenSql, - SqlUtils.get_InSql_Extra("wr.orgUnitCoding", params.querySupplyRoom)); + + " and wr.endDate "+ params.betweenSql +" and wr.washMaterialAmount <> 0 "+ SqlUtils.get_InSql_Extra("wr.orgUnitCoding", params.querySupplyRoom) +" group by ci.itemType,ci.orgUnitName,ci.isSencondWashForForeignTousse, td.tousseType " + + groupByDaySql; // 统计清洗项的itemType为材料的物品,单独入清洗篮筐的器械,没有关联的器械包 sql += " union all "; - sql += String - .format("select ci.itemType type,ci.orgUnitName,ci.isSencondWashForForeignTousse ,sum(ci.amount-case when numOfUnwashedStops is null then 0 else numOfUnwashedStops end) amount, td.tousseType " + sql += "select ci.itemType type,ci.orgUnitName,ci.isSencondWashForForeignTousse ,sum(ci.amount-case when numOfUnwashedStops is null then 0 else numOfUnwashedStops end) amount, td.tousseType " + queryDaySql + dataIndex.getWashMaterialAmountSqlFromItemTypeIsMaterialWithoutTousseDefinition(params.extraJoinCondition) - + " and wr.endDate %s and wr.washMaterialAmount <> 0 %s group by ci.itemType,ci.orgUnitName,ci.isSencondWashForForeignTousse, td.tousseType " - + groupByDaySql, - params.betweenSql, - SqlUtils.get_InSql_Extra("wr.orgUnitCoding", params.querySupplyRoom)); + + " and wr.endDate "+ params.betweenSql +" and wr.washMaterialAmount <> 0 "+ SqlUtils.get_InSql_Extra("wr.orgUnitCoding", params.querySupplyRoom) +" group by ci.itemType,ci.orgUnitName,ci.isSencondWashForForeignTousse, td.tousseType " + + groupByDaySql; // 统计清洗项的itemType不为材料的物品,包括整包清洗的器械包 @@ -157,28 +151,21 @@ columnSql = "(ci.amount-case when numOfUnwashedStops is null then 0 else numOfUnwashedStops end)*mi.count"; joinMaterialInstanceSql = "inner join MaterialInstance mi on mi.tousse_id = td.id"; } - sql += String - .format("select ci.itemType type,ci.orgUnitName,ci.isSencondWashForForeignTousse ,sum(%s) amount, td.tousseType " + sql += "select ci.itemType type,ci.orgUnitName,ci.isSencondWashForForeignTousse ,sum("+ columnSql +") amount, td.tousseType " + queryDaySql + dataIndex.getWashMaterialAmountSqlFromItemTypeIsNotMaterial(joinMaterialInstanceSql) - + " and wr.endDate %s and wr.washMaterialAmount <> 0 %s group by ci.itemType,ci.orgUnitName,ci.isSencondWashForForeignTousse, td.tousseType " - + groupByDaySql, - columnSql, - params.betweenSql, - SqlUtils.get_InSql_Extra("wr.orgUnitCoding", params.querySupplyRoom)); + + " and wr.endDate "+ params.betweenSql +" and wr.washMaterialAmount <> 0 "+ SqlUtils.get_InSql_Extra("wr.orgUnitCoding", params.querySupplyRoom) +" group by ci.itemType,ci.orgUnitName,ci.isSencondWashForForeignTousse, td.tousseType " + + groupByDaySql; // 判断是否需要统计单独清洗的材料的数量 // 由于要查找清洗记录所属的科室的名称,所以连接了orgUnit表进行查询,没有调用DataIndex服务类的getWashMaterialAmountSqlFromTousseTypeIsMaterial方法 sql += " union all "; - sql += String - .format("select md.type,org.name orgUnitName,0 isSencondWashForForeignTousse ,sum(wrm.amount) amount,'' tousseType " + sql += "select md.type,org.name orgUnitName,0 isSencondWashForForeignTousse ,sum(wrm.amount) amount,'' tousseType " + queryDaySql + "from WashAndDisinfectRecord wr, WashRecord_WashMaterial wm,WashAndDisinfectRecordMaterial wrm,MaterialDefinition md, OrgUnit org " + "where wm.WashAndDisinfectRecord_ID = wr.id and wrm.id = wm.WashAndDisinfectMaterial_ID and wrm.materialDefinition_id = md.id and org.orgUnitCoding = wr.orgUnitCoding " - + " and wr.endDate %s %s group by md.type,org.name" - + groupByDaySql, - params.betweenSql, SqlUtils.get_InSql_Extra( - "wr.orgUnitCoding", params.querySupplyRoom)); + + " and wr.endDate "+ params.betweenSql + SqlUtils.get_InSql_Extra("wr.orgUnitCoding", params.querySupplyRoom) +" group by md.type,org.name" + + groupByDaySql; sql = " select rs.type,rs.orgUnitName,rs.isSencondWashForForeignTousse,sum(rs.amount) amount, rs.tousseType "+ endDaySql + " from (" + sql + ")rs "