Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r34806 -r34868 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 34806) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 34868) @@ -28057,19 +28057,7 @@ + "join OrgUnitGroup og on og.id = bh.orgUnitGroupId join Org_OrgGroup oog on oog.orgGroupId = og.id" + " join OrgUnit ou on ou.id = oog.orgUnitId " + " where ou.name = t2.depart) bhName,amount from ( "; - //针头-①针头统计处理科室为【大院供应室】装配任务组为【器械二班】器械包种类为【针头】的复用物品【回收】的【包数】X 1 - sql += "select rr.depart,sum(ri.amount) amount from RecyclingRecord rr " - + "join RecyclingItem ri on ri.recyclingRecord_id=rr.id " - + "join TousseDefinition td on td.id=ri.tousseDefinitionId join TousseDefinition tdc on tdc.id=td.ancestorID " - + "where tdc.taskGroup='器械二班' and rr.recyclingTime " - + betweenSql - + "and rr.orgUnitCoding='" + - orgUnitCoding - + "' " - + getInstrumentSetTypeSql("针头","in") - + " group by rr.depart "; //临床各类包-①泡镊桶班 统计处理科室为【大院供应室】装配任务组为【泡镊桶班】器械包种类为【临床各类包】复用物品【回收】的【件数】X 1 - sql += " union all "; sql += "select rr.depart,sum(ri.amount * ri.materialAmount) amount from RecyclingRecord rr join RecyclingItem ri on ri.recyclingRecord_id=rr.id " + "join TousseDefinition td on td.id=ri.tousseDefinitionId join TousseDefinition tdc on tdc.id=td.ancestorID " + "where tdc.taskGroup='泡镊桶班' and rr.orgUnitCoding='" @@ -28116,16 +28104,31 @@ ReportQueryParams params = new ReportQueryParams(objectDao); params.betweenSql = betweenSql; params.querySupplyRoom = orgUnitCoding; - //临床各类包-⑤消毒班 计算申请科室分组为【二沙分院】、【芳村分院】、【大学城分院】的【代理灭菌】处理【包数】 - params.extraQuery = getProxydisinfectionOrgUnitGroupSql("二沙分院,芳村分院,大学城分院"); - params.extraSelectColumns = " ,case when proxydisinfection_id is not null then (select depart from invoicePlan where id=ti.proxydisinfection_id ) else ti.depart end depart "; - params.extraGroupBy = " group by ti.proxydisinfection_id,ti.depart "; + //临床各类包-⑤消毒班 1.计算申请科室分组为【二沙分院】、【芳村分院】、【大学城分院】的【代理灭菌】处理【包数】 + //2.计算申请科室分组为【二沙分院】、【芳村分院】、【大学城分院】的【外部代理灭菌】处理【包数】 + //取数为两者总和 + params.extraQuery = " and (1=1 " + getProxydisinfectionOrgUnitGroupSql("二沙分院,芳村分院,大学城分院") + + " or 1=1 " + + getForeignproxyOrgUnitGroupSql("二沙分院,芳村分院,大学城分院") + ") "; + params.extraSelectColumns = " ,case when proxydisinfection_id is not null then (select depart from invoicePlan where id=ti.proxydisinfection_id )" + + " when foreignProxyItem_id is not null then (select depart from invoicePlan where id=ti.invoicePlanID) " + + " else ti.depart end depart "; + params.extraGroupBy = " group by ti.proxydisinfection_id,foreignProxyItem_id,ti.invoicePlanID,ti.depart "; //灭菌记录 sql += String.format(" union all select tl.depart,sum(tl.amount) amount from (" +dataIndex.getWorkAmountByPackageSQL("灭菌数量", params) + ") tl group by tl.depart "); + //统计处理科室为【大院供应室】灭菌炉分组为【低温灭菌炉】的【包数】X 1 + params.extraSelectColumns = ",ti.depart "; + params.extraQuery = " and sr.sterilizer_id in(select id from Sterilizer where ownGroup='低温灭菌炉') "; + params.extraGroupBy = " group by ti.depart "; + //灭菌记录 + sql += String.format(" union all select tl.depart,sum(tl.amount) amount from (" + +dataIndex.getWorkAmountByPackageSQL("灭菌数量", params) + + ") tl group by tl.depart "); params.extraSelectColumns = ""; params.extraGroupBy = ""; + params.extraQuery = ""; //临床各类包-⑥器械二班 统计处理科室为【大院供应室】装配任务组为【器械二班】器械包种类为【临床各类包】的复用物品【回收】的【包数】 sql += " union all "; sql += "select rr.depart,sum(ri.amount) amount from RecyclingRecord rr " @@ -28151,8 +28154,9 @@ +dataIndex.getWorkAmountByPackageSQL("配包数量", params) + ") tl group by tl.depart "); //②泡镊桶班装配手术布类包总数 统计处理科室为【大院供应室】装配任务组为【泡镊桶班】器械包种类为【手术布类包】的【装配】的【包数】X 1 + //③口腔班装配手术布类包总数 统计处理科室为【大院供应室】装配任务组为【口腔班】器械包种类为【手术布类包】的【装配】的【包数】X 1 params.extraQuery = getInstrumentSetTypeSql("手术布类包","in"); - params.taskGroupSqlWithAliasOfTousseDefinitionIsTd = " and tdc.taskGroup='泡镊桶班' "; + params.taskGroupSqlWithAliasOfTousseDefinitionIsTd = " and tdc.taskGroup in('泡镊桶班','口腔班') "; sql += String.format(" union all select tl.depart,sum(tl.amount) amount from (" +dataIndex.getWorkAmountByPackageSQL("配包数量", params) + ") tl group by tl.depart ");