Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/QualityMonitoringHelper.java =================================================================== diff -u -r36918 -r36960 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/QualityMonitoringHelper.java (.../QualityMonitoringHelper.java) (revision 36918) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/util/QualityMonitoringHelper.java (.../QualityMonitoringHelper.java) (revision 36960) @@ -809,28 +809,44 @@ * @param tousseName 包名 * @return */ - private String buildTousseNameMaterialNameWhereSql(String materialName, String tousseName){ + private String buildTousseNameMaterialNameWhereSql(String materialNames, String tousseNames){ String materialSql = ""; String tousseSql = ""; - if( StringUtils.isNotBlank(materialName)){ - // 如果字符串中有"[",SqlServer需要转译 - if(materialName.contains("[") && dbConnection.isSqlServer()){ - int index = materialName.indexOf("["); - materialName = materialName.substring(0, index) + "\\" + materialName.substring(index, materialName.length()); - materialSql = " qmd.material like '%" + materialName + "%'" + " escape '\\' "; - }else{ - materialSql = " qmd.material like '%" + materialName + "%'"; + if( StringUtils.isNotBlank(materialNames)){ + Set materialNameSet = SqlUtils.splitStringToSet(materialNames, ","); + StringBuffer materialSqlSbf = new StringBuffer(); + materialSqlSbf.append(" ("); + for (String materialName : materialNameSet) { + // 如果字符串中有"[",SqlServer需要转译 + if(materialName.contains("[") && dbConnection.isSqlServer()){ + int index = materialName.indexOf("["); + materialName = materialName.substring(0, index) + "\\" + materialName.substring(index, materialName.length()); + materialSqlSbf.append(" or qmd.material like '%").append(materialName).append("%' escape '\\' "); + }else{ + materialSqlSbf.append(" or qmd.material like '%").append(materialName).append("%' "); + } } + materialSqlSbf.append(") "); + materialSql = materialSqlSbf.toString().replaceFirst("or", ""); } - if( StringUtils.isNotBlank(tousseName)){ - // 如果字符串中有"[",SqlServer需要转译 - if(tousseName.contains("[") && dbConnection.isSqlServer()){ - int index = tousseName.indexOf("["); - tousseName = tousseName.substring(0, index) + "\\" + tousseName.substring(index, materialName.length()); - tousseSql = " qmd.tousseName like '%" + tousseName + "%'" + " escape '\\' "; - }else{ - tousseSql = " qmd.tousseName like '%" + tousseName + "%'"; + if( StringUtils.isNotBlank(tousseNames)){ + Set tousseNameSet = SqlUtils.splitStringToSet(tousseNames, ","); + StringBuffer tousseSqlSbf = new StringBuffer(); + tousseSqlSbf.append(" ("); + for (String tousseName : tousseNameSet) { + // 如果字符串中有"[",SqlServer需要转译 + if(tousseName.contains("[") && dbConnection.isSqlServer()){ + int index = tousseName.indexOf("["); + tousseName = tousseName.substring(0, index) + "\\" + tousseName.substring(index, tousseName.length()); + tousseSql += " or qmd.tousseName like '%" + tousseName + "%'" + " escape '\\' "; + tousseSqlSbf.append(" or qmd.tousseName like '%").append(tousseName).append("%' escape '\\' "); + }else{ + tousseSql += " or qmd.tousseName like '%" + tousseName + "%' "; + tousseSqlSbf.append(" or qmd.tousseName like '%").append(tousseName).append("%' "); + } } + tousseSqlSbf.append(") "); + tousseSql = tousseSqlSbf.toString().replaceFirst("or", ""); } // 如果都有材料和器械包的名字,用or条件 String tsql = "";