Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentrepair/service/InstrumentRepairManagerImpl.java =================================================================== diff -u -r33110 -r33129 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentrepair/service/InstrumentRepairManagerImpl.java (.../InstrumentRepairManagerImpl.java) (revision 33110) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentrepair/service/InstrumentRepairManagerImpl.java (.../InstrumentRepairManagerImpl.java) (revision 33129) @@ -69,21 +69,43 @@ String searchKeyWord = map.get("searchKeyWord"); //查询条件 String searchColumns = map.get("searchColumns"); + //器械名称的过滤条件 + String goodsNameSql = ""; + String searchSql = ""; if(StringUtils.isNotBlank(searchKeyWord) && StringUtils.isNotBlank(searchColumns)){ Collection searchColumnColl = StringTools.toCollectionIgnoreNullAndBlank(searchColumns, ";"); List sqlList = new ArrayList(); for (String column : searchColumnColl) { + if(StringUtils.equals("materialNameAndAmount", column)){ + //器械名称的过滤条件 + goodsNameSql = " from " + InstrumentRepairGoods.class.getSimpleName() + " where materialDefinitionName like '%" + searchKeyWord + "%' "; + continue; + } String tempSql = " po." + column + " like '%" + searchKeyWord + "%' "; sqlList.add(tempSql); } - sql += " and (" + StringTools.join(sqlList, "or") + ") "; + searchSql = StringTools.join(sqlList, "or"); } //总记录数 String countSql = "select count(*) from " + InstrumentRepair.class.getSimpleName() + " po " + sql; + if(StringUtils.isNotBlank(searchSql) || StringUtils.isNotBlank(goodsNameSql)){ + String tempSql = ""; + if(StringUtils.isNotBlank(goodsNameSql)){ + tempSql = " po.id in ( select instrumentRepair_id " + goodsNameSql + ") "; + } + countSql += " and (" + StringTools.uniteTwoStringBySemicolon(searchSql, tempSql, "or") + ") "; + } int totalCount = objectDao.countBySql(countSql); pageEntity.setCount(totalCount); //查询记录 if(totalCount > 0){ + if(StringUtils.isNotBlank(searchSql) || StringUtils.isNotBlank(goodsNameSql)){ + String tempSql = ""; + if(StringUtils.isNotBlank(goodsNameSql)){ + tempSql = " po.id in ( select instrumentRepair.id " + goodsNameSql + ") "; + } + sql += " and (" + StringTools.uniteTwoStringBySemicolon(searchSql, tempSql, "or") + ") "; + } String hql = String.format("select po from %s po %s ", InstrumentRepair.class.getSimpleName(), sql); instrumentRepairList = objectDao.findByHql(hql, pageEntity.getStart(), pageEntity.getLimit()); }