Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r33728 -r33735 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33728) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33735) @@ -8641,13 +8641,16 @@ //统计处理科室为【大院供应室】装配任务组为【剪刀班】器械包类型为【聚合包】器械包种类【剪刀自由装配包】的复用物品【装配】的【包数】X 1 sql += " union all "; sql += "select 3 orderNumber, '临床各类包' firstColumnName ,'④剪刀班自由装配' secondColumnName,count(*) amount " - + "from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id join TousseDefinition tdc on tdc.id=td.ancestorID " + + " from TousseInstance ti inner join TousseDefinition td on ti.comboTousseDefinitionId = td.id " + + "join TousseDefinition tdc on tdc.id=td.ancestorid " + + "join CssdHandleTousses ch on ch.toussedefinitionid=tdc.id " + "where ti.comboTousseInstanceId is null and ti.comboTousseDefinitionId is not null " - + " and tdc.taskGroup='剪刀班' and ti.orgUnitCoding='" + + " and ch.taskGroup='剪刀班' and ti.orgUnitCoding='" +orgUnitCoding + "' and ti.operationTime " + betweenSql - + getInstrumentSetTypeSql("剪刀自由装配包","in"); + + " and tdc.id in (select istt.tousseDefinitionId from InstrumentSetType_TD istt " + + "join instrumentSetType ist on ist.id=istt.instrumentSetTypeId where ist.name='剪刀自由装配包')"; //统计处理科室为【大院供应室】装配任务组为【出机班】器械包种类为【止血带(对换)】的复用物品【回收】的【件数】/ 10 sql += " union all "; sql += "select 3 orderNumber, '临床各类包' firstColumnName ,'⑤出机班' secondColumnName,sum(ri.amount * ri.materialAmount)/10 amount from RecyclingRecord rr join RecyclingItem ri on ri.recyclingRecord_id=rr.id " @@ -8861,20 +8864,33 @@ orgUnitCoding + "' " + getInstrumentSetTypeSql("口腔器械B类","in"); - params.tousseTypes = TousseDefinition.PACKAGE_TYPE_COMBO; - params.taskGroupSqlWithAliasOfTousseDefinitionIsTd = " and tdc.taskGroup='口腔班' " - + getInstrumentSetTypeSql("口腔聚合包","in"); - int dataSoureOfMaterialsCountOfToussesInReports = CssdUtils.getSystemSetConfigByNameInt("dataSoureOfMaterialsCountOfToussesInReports", 3); - sql += String.format(" union all select sum(tl.amount) amount from (" - +dataIndex.getWorkAmountByMaterialSQL("配包数量", params, dataSoureOfMaterialsCountOfToussesInReports) - + ") tl "); + + sql += " union all "; + sql += "select sum(case when ti.materialAmount is null then 0 else ti.materialAmount end) amount " + + " from TousseInstance ti inner join TousseDefinition td on ti.comboTousseDefinitionId = td.id " + + "join TousseDefinition tdc on tdc.id=td.ancestorid " + + "join CssdHandleTousses ch on ch.toussedefinitionid=tdc.id " + + "where ti.comboTousseInstanceId is null and ti.comboTousseDefinitionId is not null " + + " and ch.taskGroup='口腔班' and ti.orgUnitCoding='" + +orgUnitCoding + + "' and ti.operationTime " + + betweenSql + + " and tdc.id in (select istt.tousseDefinitionId from InstrumentSetType_TD istt " + + "join instrumentSetType ist on ist.id=istt.instrumentSetTypeId where ist.name='口腔聚合包')"; sql += ") t "; //统计处理科室为【大院供应室】装配任务组为【口腔班】器械包类型为【聚合包】器械包种类为【口腔自由装配包】复用物品【装配】的【包数】 - params.taskGroupSqlWithAliasOfTousseDefinitionIsTd = " and tdc.taskGroup='口腔班' " - + getInstrumentSetTypeSql("口腔自由装配包","in"); - sql += String.format(" union all select 11 orderNumber,'口腔班' firstColumnName ,'②口腔自由装配' secondColumnName,sum(tl.amount) amount from (" - +dataIndex.getWorkAmountByPackageSQL("配包数量", params) - + ") tl "); + sql += " union all "; + sql += "select 11 orderNumber, '口腔班' firstColumnName ,'②口腔自由装配' secondColumnName,count(*) amount " + + " from TousseInstance ti inner join TousseDefinition td on ti.comboTousseDefinitionId = td.id " + + "join TousseDefinition tdc on tdc.id=td.ancestorid " + + "join CssdHandleTousses ch on ch.toussedefinitionid=tdc.id " + + "where ti.comboTousseInstanceId is null and ti.comboTousseDefinitionId is not null " + + " and ch.taskGroup='口腔班' and ti.orgUnitCoding='" + +orgUnitCoding + + "' and ti.operationTime " + + betweenSql + + " and tdc.id in (select istt.tousseDefinitionId from InstrumentSetType_TD istt " + + "join instrumentSetType ist on ist.id=istt.instrumentSetTypeId where ist.name='口腔自由装配包')"; //统计处理科室为【大院供应室】装配任务组为【剪刀班】器械包种类为【呼吸球囊】的复用物品【回收】的【包数】X 1 sql += " union all "; sql += "select 12 orderNumber,'呼吸球囊' firstColumnName ,'呼吸球囊清点数目' secondColumnName,sum(ri.amount) amount from RecyclingRecord rr "