Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/dataindex/DataIndex.java =================================================================== diff -u -r33524 -r33525 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/dataindex/DataIndex.java (.../DataIndex.java) (revision 33524) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/dataindex/DataIndex.java (.../DataIndex.java) (revision 33525) @@ -647,26 +647,19 @@ }else{ groupBySql = ""; } - JSONObject sstsConfig = CssdUtils.getWebConfigInfo(); - // 消毒物品按材料统计工作量的方式,默认按材料数量统计 - String workLoadStatisticalMethodOfDisinfectGoodsMaterial = sstsConfig - .optString( - "workLoadStatisticalMethodOfDisinfectGoodsMaterial", - TousseDefinition.WORKLOAD_STATISTICAL_METHOD_MATERIAL); - - // 按属性统计 - if (TousseDefinition.WORKLOAD_STATISTICAL_METHOD_PROPERTY.equals(workLoadStatisticalMethodOfDisinfectGoodsMaterial)){ - + if(!obj.getIsOnlyQueryComboTousse()){ amountSql = String - .format("select " + statisticsAmountSql + " amount %s %s %s " + .format("select sum(%s) amount %s %s %s " + "%s from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id join TousseDefinition tdc on tdc.id=td.ancestorID " - + "inner join MaterialInstance mi on td.id = mi.tousse_id " - + "where ti.comboTousseInstanceId is null and ti.comboTousseDefinitionId is null and ti.operationTime %s %s %s and %s %s %s " - + "%s %s %s %s %s ", + + " %s where %s and ti.operationTime %s %s %s and %s %s %s " + + "%s %s %s %s %s", + amountColumnSql, obj.selectUserName?",case when (ti.operator is null) then '系统用户' else ti.operator end userName":"", obj.selectTousseType ? ",td.tousseType" : "", obj.selectTousseName ? ",td.name tousseName" : "", obj.extraSelectColumns, + joinMaterialInstanceSql, + obj.haveCombo?"ti.comboTousseInstanceId is null and ti.comboTousseDefinitionId is null":"1=1", obj.betweenSql, SqlUtils.get_InSql_Extra("ti.orgUnitCoding", obj.querySupplyRoom), SqlUtils.get_InSql_Extra("ti.depart", obj.applicationDepart), @@ -678,64 +671,35 @@ obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, obj.tousseTypeAndPackageSizeSql, groupBySql); - } - // 按包定义的材料数量统计 - else{ + if(obj.getIsQueryCom()){ if(!obj.getIsOnlyQueryComboTousse()){ - amountSql = String - .format("select sum(%s) amount %s %s %s " - + "%s from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id join TousseDefinition tdc on tdc.id=td.ancestorID " - + " %s where %s and ti.operationTime %s %s %s and %s %s %s " - + "%s %s %s %s %s", - amountColumnSql, - obj.selectUserName?",case when (ti.operator is null) then '系统用户' else ti.operator end userName":"", - obj.selectTousseType ? ",td.tousseType" : "", - obj.selectTousseName ? ",td.name tousseName" : "", - obj.extraSelectColumns, - joinMaterialInstanceSql, - obj.haveCombo?"ti.comboTousseInstanceId is null and ti.comboTousseDefinitionId is null":"1=1", - obj.betweenSql, - SqlUtils.get_InSql_Extra("ti.orgUnitCoding", obj.querySupplyRoom), - SqlUtils.get_InSql_Extra("ti.depart", obj.applicationDepart), - SqlUtils.getStringFieldInLargeCollectionsPredicate("ti.depart", obj.recyDepartGroup, " 1=1 "), - obj.sterilizationModeSqlWithAliasOfTousseDefinitionIsTd, - obj.packageTypeSqlWithAliasOfTousseDefinitionIsTd, - obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, - obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd, - obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, - obj.tousseTypeAndPackageSizeSql, - groupBySql); + amountSql += " union all "; } - if(obj.getIsQueryCom()){ - if(!obj.getIsOnlyQueryComboTousse()){ - amountSql += " union all "; - } - if(groupBySql.contains("td.name")){ - groupBySql = groupBySql.replace("td.name", "ti.comboTousseDefinitionName"); - } - amountSql += String - .format("select sum(%s) amount %s %s %s " - + "%s from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id join TousseDefinition tdc on tdc.id=td.ancestorID " - + " %s where "+ obj.getIsQueryComByPackageSize() +" ti.comboTousseDefinitionId is not null and ti.comboTousseInstanceId is not null and ti.operationTime %s %s %s and %s %s %s " - + "%s %s %s %s", - amountColumnSql, - obj.selectUserName?",case when (ti.operator is null) then '系统用户' else ti.operator end userName":"", - obj.selectTousseType ? ",'"+TousseDefinition.PACKAGE_TYPE_COMBO + "' tousseType" : "", - obj.selectTousseName ? ",ti.comboTousseDefinitionName tousseName" : "", - obj.extraSelectColumns, - joinMaterialInstanceSql, - obj.betweenSql, - SqlUtils.get_InSql_Extra("ti.orgUnitCoding", obj.querySupplyRoom), - SqlUtils.get_InSql_Extra("ti.depart", obj.applicationDepart), - SqlUtils.getStringFieldInLargeCollectionsPredicate("ti.depart", obj.recyDepartGroup, " 1=1 "), - obj.sterilizationModeSqlWithAliasOfTousseDefinitionIsTd, - obj.packageTypeSqlWithAliasOfTousseDefinitionIsTd, - obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, - obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd.replaceAll("tdc", "ti"), - obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, - groupBySql); + if(groupBySql.contains("td.name")){ + groupBySql = groupBySql.replace("td.name", "ti.comboTousseDefinitionName"); } + amountSql += String + .format("select sum(%s) amount %s %s %s " + + "%s from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id join TousseDefinition tdc on tdc.id=td.ancestorID " + + " %s where "+ obj.getIsQueryComByPackageSize() +" ti.comboTousseDefinitionId is not null and ti.comboTousseInstanceId is not null and ti.operationTime %s %s %s and %s %s %s " + + "%s %s %s %s", + amountColumnSql, + obj.selectUserName?",case when (ti.operator is null) then '系统用户' else ti.operator end userName":"", + obj.selectTousseType ? ",'"+TousseDefinition.PACKAGE_TYPE_COMBO + "' tousseType" : "", + obj.selectTousseName ? ",ti.comboTousseDefinitionName tousseName" : "", + obj.extraSelectColumns, + joinMaterialInstanceSql, + obj.betweenSql, + SqlUtils.get_InSql_Extra("ti.orgUnitCoding", obj.querySupplyRoom), + SqlUtils.get_InSql_Extra("ti.depart", obj.applicationDepart), + SqlUtils.getStringFieldInLargeCollectionsPredicate("ti.depart", obj.recyDepartGroup, " 1=1 "), + obj.sterilizationModeSqlWithAliasOfTousseDefinitionIsTd, + obj.packageTypeSqlWithAliasOfTousseDefinitionIsTd, + obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, + obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd.replaceAll("tdc", "ti"), + obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, + groupBySql); } break; @@ -755,71 +719,44 @@ amountColumnSql = "mi.count"; joinMaterialInstanceSql = " inner join MaterialInstance mi on td.id = mi.tousse_id "; } - sstsConfig = CssdUtils.getWebConfigInfo(); - // 消毒物品按材料统计工作量的方式,默认按材料数量统计 - workLoadStatisticalMethodOfDisinfectGoodsMaterial = sstsConfig - .optString( - "workLoadStatisticalMethodOfDisinfectGoodsMaterial", - TousseDefinition.WORKLOAD_STATISTICAL_METHOD_MATERIAL); - - // 按属性统计 - if (TousseDefinition.WORKLOAD_STATISTICAL_METHOD_PROPERTY.equals(workLoadStatisticalMethodOfDisinfectGoodsMaterial)){ + + if(!obj.getIsOnlyQueryComboTousse()){ amountSql = String - .format("select " + obj.monthlyStr + " monthstr, " + statisticsAmountSql + " amount " - + "from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id join TousseDefinition tdc on tdc.id=td.ancestorID " - + "inner join MaterialInstance mi on td.id = mi.tousse_id " - + "where ti.comboTousseInstanceId is null and ti.comboTousseDefinitionId is null and ti.operationTime %s %s " - + "%s %s %s %s " - + "group by " - + obj.monthlyStr, - obj.betweenSql, - SqlUtils.get_InSql_Extra("ti.orgUnitCoding", obj.querySupplyRoom), - obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, - obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd, - obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, - obj.tousseTypeAndPackageSizeSql); + .format("select " + obj.monthlyStr + " monthstr, sum(%s) amount " + + "from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id join TousseDefinition tdc on tdc.id=td.ancestorID " + + " %s where %s and ti.operationTime %s %s " + + "%s %s %s %s " + + "group by " + + obj.monthlyStr, + amountColumnSql, + joinMaterialInstanceSql, + obj.haveCombo?"ti.comboTousseInstanceId is null and ti.comboTousseDefinitionId is null":"1=1", + obj.betweenSql, + SqlUtils.get_InSql_Extra("ti.orgUnitCoding", obj.querySupplyRoom), + obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, + obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd, + obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, + obj.tousseTypeAndPackageSizeSql); } - // 按包定义的材料数量统计 - else{ + if(obj.getIsQueryCom()){ if(!obj.getIsOnlyQueryComboTousse()){ - amountSql = String - .format("select " + obj.monthlyStr + " monthstr, sum(%s) amount " - + "from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id join TousseDefinition tdc on tdc.id=td.ancestorID " - + " %s where %s and ti.operationTime %s %s " - + "%s %s %s %s " - + "group by " - + obj.monthlyStr, - amountColumnSql, - joinMaterialInstanceSql, - obj.haveCombo?"ti.comboTousseInstanceId is null and ti.comboTousseDefinitionId is null":"1=1", - obj.betweenSql, - SqlUtils.get_InSql_Extra("ti.orgUnitCoding", obj.querySupplyRoom), - obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, - obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd, - obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, - obj.tousseTypeAndPackageSizeSql); + amountSql += " union all "; } - if(obj.getIsQueryCom()){ - if(!obj.getIsOnlyQueryComboTousse()){ - amountSql += " union all "; - } - amountSql += String - .format("select " + obj.monthlyStr + " monthstr, sum(%s) amount " - + "from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id join TousseDefinition tdc on tdc.id=td.ancestorID " - + " %s where ti.comboTousseDefinitionId is not null and ti.comboTousseInstanceId is not null and ti.operationTime %s %s " - + "%s %s %s %s " - + "group by " - + obj.monthlyStr, - amountColumnSql, - joinMaterialInstanceSql, - obj.betweenSql, - SqlUtils.get_InSql_Extra("ti.orgUnitCoding", obj.querySupplyRoom), - obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, - obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd, - obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, - obj.tousseTypeAndPackageSizeSql); - } - + amountSql += String + .format("select " + obj.monthlyStr + " monthstr, sum(%s) amount " + + "from TousseInstance ti inner join TousseDefinition td on ti.tousseDefinition_id = td.id join TousseDefinition tdc on tdc.id=td.ancestorID " + + " %s where ti.comboTousseDefinitionId is not null and ti.comboTousseInstanceId is not null and ti.operationTime %s %s " + + "%s %s %s %s " + + "group by " + + obj.monthlyStr, + amountColumnSql, + joinMaterialInstanceSql, + obj.betweenSql, + SqlUtils.get_InSql_Extra("ti.orgUnitCoding", obj.querySupplyRoom), + obj.isDisableIDCardSqlWithAliasOfTousseDefinitionIsTd, + obj.taskGroupSqlWithAliasOfTousseDefinitionIsTd, + obj.tousseGroupSqlWithAliasOfTousseDefinitionIsTd, + obj.tousseTypeAndPackageSizeSql); } break; case "检查数量":