Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r34363 -r34367 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 34363) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 34367) @@ -27425,11 +27425,11 @@ OrgUnit orgUnit = orgUnitManager.getByName("大院供应室"); String orgUnitCoding = orgUnit.getOrgUnitCoding(); String betweenSql = String.format(" between %s and %s ", dateQueryAdapter.dateAdapter(startDate),dateQueryAdapter.dateAdapter(endDate));; - //统计处理科室为【大院供应室】灭菌炉分组为【低温灭菌炉】的【炉次】总数X 1 String sql = "select bhName,sum(amount) totalAmount from ( select (select bh.name from brancheOfHospital bh " + "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 " @@ -27440,7 +27440,7 @@ + "' " + getInstrumentSetTypeSql("针头","in") + " group by rr.depart "; - //统计处理科室为【大院供应室】装配任务组为【泡镊桶班】器械包种类为【临床各类包】(器械包种类为【治疗包】除外)复用物品【回收】的【件数】X 1 + //临床各类包-①泡镊桶班 统计处理科室为【大院供应室】装配任务组为【泡镊桶班】器械包种类为【临床各类包】复用物品【回收】的【件数】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 " @@ -27450,22 +27450,9 @@ + "and rr.recyclingTime " + betweenSql + getInstrumentSetTypeSql("临床各类包","in") - + getInstrumentSetTypeSql("治疗包", "not in") + " group by rr.depart "; - //统计处理科室为【大院供应室】装配任务组为【泡镊桶班】器械包种类为【治疗包】的复用物品【回收】的【包数】X 1 + //临床各类包-②剪刀班 统计处理科室为【大院供应室】装配任务组为【剪刀班】器械包种类为【剪刀器械A类】的复用物品【回收】的【件数】X 1 sql += " union all "; - 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 "; - //统计处理科室为【大院供应室】装配任务组为【剪刀班】器械包种类为【剪刀器械A类】的复用物品【回收】的【件数】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='" @@ -27474,7 +27461,7 @@ + betweenSql + getInstrumentSetTypeSql("剪刀器械A类","in") + " group by rr.depart "; - //统计处理科室为【大院供应室】装配任务组为【剪刀班】器械包类型为【聚合包】器械包种类【剪刀自由装配包】的复用物品【装配】的【包数】X 1 + //临床各类包-③剪刀班自由装配 统计处理科室为【大院供应室】装配任务组为【剪刀班】器械包类型为【聚合包】器械包种类【剪刀自由装配包】的复用物品【装配】的【包数】X 1 sql += " union all "; sql += "select ti.depart,count(*) amount " + " from TousseInstance ti inner join TousseDefinition td on ti.comboTousseDefinitionId = td.id " @@ -27488,7 +27475,7 @@ + " and tdc.id in (select istt.tousseDefinitionId from InstrumentSetType_TD istt " + "join instrumentSetType ist on ist.id=istt.instrumentSetTypeId where ist.name='剪刀自由装配包')" + " group by ti.depart "; - //统计处理科室为【大院供应室】装配任务组为【出机班】器械包种类为【止血带(对换)】的复用物品【回收】的【件数】/ 10 + //临床各类包-④出机班 统计处理科室为【大院供应室】装配任务组为【出机班】器械包种类为【止血带(对换)】的复用物品【回收】的【件数】/ 10 sql += " union all "; sql += "select rr.depart,sum(ri.amount * ri.materialAmount)/10 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 " @@ -27501,25 +27488,17 @@ ReportQueryParams params = new ReportQueryParams(objectDao); params.betweenSql = betweenSql; params.querySupplyRoom = orgUnitCoding; - //消毒班 1.计算申请科室分组为【内部代理灭菌】的【代理灭菌】处理【包数】 2.计算申请科室分组为【临床外部代理灭菌】的【外部代理灭菌】处理【包数】 取数为两者总和 + //临床各类包-⑤消毒班 计算申请科室分组为【二沙分院】、【芳村分院】、【大学城分院】的【代理灭菌】处理【包数】 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 "; //灭菌记录 String sql2 = String.format(" union all select tl.depart,sum(tl.amount) amount from (" +dataIndex.getWorkAmountByPackageSQL("灭菌数量", params) + ") tl group by tl.depart "); - - //统计处理科室为【大院供应室】灭菌炉分组为【低温灭菌炉】的【包数】X 1 - sql += " union all "; - params.extraQuery = " and sr.sterilizer_id in(select id from Sterilizer where ownGroup='低温灭菌炉') "; - //灭菌记录 - sql += String.format(" select tl.depart,sum(tl.amount) amount from (" - +dataIndex.getWorkAmountByPackageSQL("灭菌数量", params) - + ") tl group by tl.depart "); params.extraSelectColumns = ""; params.extraGroupBy = ""; - //统计处理科室为【大院供应室】装配任务组为【器械二班】器械包种类为【临床各类包】的复用物品【回收】的【包数】 + //临床各类包-⑥器械二班 统计处理科室为【大院供应室】装配任务组为【器械二班】器械包种类为【临床各类包】的复用物品【回收】的【包数】 sql += " union all "; sql += "select rr.depart,sum(ri.amount) amount from RecyclingRecord rr " + "join RecyclingItem ri on ri.recyclingRecord_id=rr.id " @@ -27531,93 +27510,45 @@ + "' " + getInstrumentSetTypeSql("临床各类包","in") + " group by rr.depart "; - - //1.统计处理科室为【大院供应室】装配任务组为【器械一班】器械包种类为【器械一班小手术包B类】的复用物品【回收】的【包数】 - //2.统计处理科室为【大院供应室】装配任务组为【器械二班】器械包种类为【器械二班包皮包B类】的复用物品【回收】的【包数】 - //取数为两者总和 X 5 - sql += " union all "; - sql += "select t.depart,sum(amount)*5 from( select rr.depart,ri.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("器械一班小手术包B类","in"); - sql += " union all select rr.depart,ri.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("器械二班包皮包B类","in") - + ") t group by t.depart "; - //统计处理科室为【大院供应室】装配任务组为【器械二班】器械包分组为【通用手术包】的复用物品【回收】的【包数】X 1 ②器械二班通用手术包 - sql += " union all "; - 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 tdc.tousseGroupName='通用手术包' " - + "and rr.recyclingTime " - + betweenSql - + "and rr.orgUnitCoding='" + - orgUnitCoding - + "' group by rr.depart"; - //③外来器械班 统计处理科室为【大院供应室】装配任务组为【外来器械班】器械包类型为【外来器械】的【装配】的【包数】X 2 - params.tousseTypeAndPackageSizeSql = " and tdc.tousseType in('"+ TousseDefinition.PACKAGE_TYPE_FOREIGN +"','"+ TousseDefinition.PACKAGE_TYPE_SPLIT +"') "; - params.tousseTypes = TousseDefinition.PACKAGE_TYPE_FOREIGN; - params.taskGroupSqlWithAliasOfTousseDefinitionIsTd= SqlUtils.get_InSql_Extra("tdc.taskGroup", "外来器械班"); - params.extraQuery = ""; params.extraSelectColumns = ",ti.depart "; params.extraGroupBy = " group by ti.depart "; - sql += String.format(" union all select tl.depart,sum(tl.amount)*2 amount from (" - +dataIndex.getWorkAmountByPackageSQL("配包数量", params) - + ") tl group by tl.depart "); - //④布类班 统计处理科室为【大院供应室】装配任务组为【布类班】器械包种类为【手术布类包】的【装配】的【包数】X 2 params.taskGroupSqlWithAliasOfTousseDefinitionIsTd= SqlUtils.get_InSql_Extra("tdc.taskGroup", "布类班"); params.tousseTypes = ""; params.tousseTypeAndPackageSizeSql= ""; - params.extraQuery = getInstrumentSetTypeSql("手术布类包","in"); - sql += String.format(" union all select tl.depart,sum(tl.amount)*2 amount from (" - +dataIndex.getWorkAmountByPackageSQL("配包数量", params) - + ") tl group by tl.depart "); - //④布类班 统计处理科室为【大院供应室】装配任务组为【布类班】科室分组为【内部代理灭菌】器械包种类为【手术布类包】的【装配】的【包数】X1 + //手术布类包-④布类班 统计处理科室为【大院供应室】装配任务组为【布类班】科室分组为【内部代理灭菌】器械包种类为【手术布类包】的【装配】的【包数】X1 params.extraQuery = getInstrumentSetTypeSql("手术布类包","in") + getInOrgUnitGroupSql("ti.departCoding", "二沙分院,芳村分院,大学城分院"); params.taskGroupSqlWithAliasOfTousseDefinitionIsTd = " and tdc.taskGroup='布类班' "; sql += String.format(" union all select tl.depart,sum(tl.amount) amount from (" +dataIndex.getWorkAmountByPackageSQL("配包数量", params) + ") tl group by tl.depart "); - //泡镊桶班装配手术布类包总数 统计处理科室为【大院供应室】装配任务组为【泡镊桶班】器械包种类为【手术布类包】的【装配】的【包数】X 1 + //②泡镊桶班装配手术布类包总数 统计处理科室为【大院供应室】装配任务组为【泡镊桶班】器械包种类为【手术布类包】的【装配】的【包数】X 1 params.extraQuery = getInstrumentSetTypeSql("手术布类包","in"); params.taskGroupSqlWithAliasOfTousseDefinitionIsTd = " and tdc.taskGroup='泡镊桶班' "; sql += String.format(" union all select tl.depart,sum(tl.amount) amount from (" +dataIndex.getWorkAmountByPackageSQL("配包数量", params) + ") tl group by tl.depart "); - //外来器械装配包数 统计处理科室为【大院供应室】装配任务组为【外来器械班】处理的【外来器械包】和【外来器械拆分小包】【装配】的【包数】X 1 + //外来器械-外来器械装配包数 统计处理科室为【大院供应室】装配任务组为【外来器械班】处理的【外来器械包】和【外来器械拆分小包】【装配】的【包数】X 1 params.extraQuery = ""; params.tousseTypeAndPackageSizeSql = " and tdc.tousseType in('"+ TousseDefinition.PACKAGE_TYPE_FOREIGN +"','"+ TousseDefinition.PACKAGE_TYPE_SPLIT +"') "; params.tousseTypes = TousseDefinition.PACKAGE_TYPE_FOREIGN; params.taskGroupSqlWithAliasOfTousseDefinitionIsTd = " and tdc.taskGroup='外来器械班' "; sql += String.format(" union all select tl.depart,sum(tl.amount) amount from (" +dataIndex.getWorkAmountByPackageSQL("配包数量", params) + ") tl group by tl.depart "); - //①大院手术室一区 统计处理科室为【大院供应室】装配任务组为【手术器械(麻一)】的复用物品【装配】的【包数】X 1 + //手术器械-①大院手术室一区 统计处理科室为【大院供应室】装配任务组为【手术器械(麻一)】的复用物品【装配】的【包数】X 1 params.tousseTypeAndPackageSizeSql = ""; params.tousseTypes = ""; params.taskGroupSqlWithAliasOfTousseDefinitionIsTd = " and tdc.taskGroup='手术器械(麻一)' "; sql += String.format(" union all select tl.depart,sum(tl.amount) amount from (" +dataIndex.getWorkAmountByPackageSQL("配包数量", params) + ") tl group by tl.depart "); - //②大院手术室二区 统计处理科室为【大院供应室】装配任务组为【手术器械(麻二)】的复用物品【装配】的【包数】X 1 + //手术器械-②大院手术室二区 统计处理科室为【大院供应室】装配任务组为【手术器械(麻二)】的复用物品【装配】的【包数】X 1 params.taskGroupSqlWithAliasOfTousseDefinitionIsTd = " and tdc.taskGroup='手术器械(麻二)' "; sql += String.format(" union all select tl.depart,sum(tl.amount) amount from (" +dataIndex.getWorkAmountByPackageSQL("配包数量", params) + ") tl group by tl.depart "); - //器械一班 统计处理科室为【大院供应室】装配任务组为【器械一班】的复用物品【回收】的【包数】X 1 + //手术器械-③器械一班 统计处理科室为【大院供应室】装配任务组为【器械一班】的复用物品【回收】的【包数】X 1 sql += " union all "; sql += "select rr.depart ,sum(ri.amount) amount from RecyclingRecord rr " + "join RecyclingItem ri on ri.recyclingRecord_id=rr.id " @@ -27628,7 +27559,7 @@ + "and rr.orgUnitCoding='" + orgUnitCoding + "' group by rr.depart "; - //器械二班 统计处理科室为【大院供应室】装配任务组为【器械二班】器械包种类为【手术器械包】的复用物品【回收】的【包数】X 1 + //手术器械-④器械二班 统计处理科室为【大院供应室】装配任务组为【器械二班】器械包种类为【手术器械包】的复用物品【回收】的【包数】X 1 sql += " union all "; sql += "select rr.depart,sum(ri.amount) amount from RecyclingRecord rr " + "join RecyclingItem ri on ri.recyclingRecord_id=rr.id " @@ -27641,7 +27572,7 @@ + "' " + getInstrumentSetTypeSql("手术器械包","in") + " group by rr.depart "; - //口腔班 1.统计处理科室为【大院供应室】装配任务组为【口腔班】器械包种类为【口腔器械A类】的复用物品【回收】的【件数】 + //口腔班-①口腔班 1.统计处理科室为【大院供应室】装配任务组为【口腔班】器械包种类为【口腔器械A类】的复用物品【回收】的【件数】 //2.统计处理科室为【大院供应室】装配任务组为【口腔班】器械包种类为【口腔器械B类】的复用物品【回收】的【包数】 //3.3.统计处理科室为【大院供应室】装配任务组为【口腔班】器械包类型为【聚合包】器械包种类为【口腔聚合包】的复用物品【装配】的【件数】 //取数为三者总和 X 1 @@ -27677,7 +27608,7 @@ + " and tdc.id in (select istt.tousseDefinitionId from InstrumentSetType_TD istt " + "join instrumentSetType ist on ist.id=istt.instrumentSetTypeId where ist.name='口腔聚合包') group by ti.depart "; sql += ") t group by t.depart "; - //口腔自由装配 统计处理科室为【大院供应室】装配任务组为【口腔班】器械包类型为【聚合包】器械包种类为【口腔自由装配包】复用物品【装配】的【包数】 + //口腔班-②口腔自由装配 统计处理科室为【大院供应室】装配任务组为【口腔班】器械包类型为【聚合包】器械包种类为【口腔自由装配包】复用物品【装配】的【包数】 sql += " union all "; sql += "select ti.depart,count(*) amount " + " from TousseInstance ti inner join TousseDefinition td on ti.comboTousseDefinitionId = td.id " @@ -27690,7 +27621,7 @@ + betweenSql + " and tdc.id in (select istt.tousseDefinitionId from InstrumentSetType_TD istt " + "join instrumentSetType ist on ist.id=istt.instrumentSetTypeId where ist.name='口腔自由装配包') group by ti.depart "; - //呼吸球囊清点数目 统计处理科室为【大院供应室】装配任务组为【剪刀班】器械包种类为【呼吸球囊】的复用物品【回收】的【包数】X 1 + //呼吸球囊-呼吸球囊清点数目 统计处理科室为【大院供应室】装配任务组为【剪刀班】器械包种类为【呼吸球囊】的复用物品【回收】的【包数】X 1 sql += " union all "; sql += "select rr.depart,sum(ri.amount) amount from RecyclingRecord rr " + "join RecyclingItem ri on ri.recyclingRecord_id=rr.id "