Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/consumptivematerial/action/ConsumptiveMaterialContainerAction.java =================================================================== diff -u -r34057 -r34063 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/consumptivematerial/action/ConsumptiveMaterialContainerAction.java (.../ConsumptiveMaterialContainerAction.java) (revision 34057) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/consumptivematerial/action/ConsumptiveMaterialContainerAction.java (.../ConsumptiveMaterialContainerAction.java) (revision 34063) @@ -254,7 +254,7 @@ int rowCount = objectDao.countBySql("select count(*) " + sql); pageEntity.setCount(rowCount); - sql = "select po " + sql; + sql = "select po " + sql + " order by po.operationDateTime desc"; @SuppressWarnings("unchecked") List records = objectDao.findByHql(sql, pageEntity.getStart(), pageEntity.getLimit()); searchAssociativeObject(records); @@ -381,7 +381,7 @@ } String typeSql = ""; if(DatabaseUtil.isPoIdValid(consumptiveMaterialTypeId)){ - typeSql = " and po.details.consumptiveMaterialType.id = " + consumptiveMaterialTypeId; + typeSql = " and t.id = " + consumptiveMaterialTypeId; } String userIdSql = ""; if(DatabaseUtil.isPoIdValid(userId)){ @@ -396,14 +396,16 @@ washDisinfectRecordSerialNumSql = " and po.washDisinfectRecordSerialNum = " + washDisinfectRecordSerialNum; } - String sql = String.format(" from %s po where 1=1 %s %s %s %s %s ", + String countSql = String.format("select count(*) from %s po join %s d on po.id = d.useRecord_id join %s t on t.id = d.consumptiveMaterialType_id where 1=1 %s %s %s %s %s ", ConsumptiveMaterialUseRecord.class.getSimpleName(), + ConsumptiveMaterialUseDetail.class.getSimpleName(), + ConsumptiveMaterialType.class.getSimpleName(), dateSql, typeSql, userIdSql, rinserSql, washDisinfectRecordSerialNumSql); - int rowCount = objectDao.countBySql("select count(*) " + sql); + int rowCount = objectDao.countBySql(countSql); int pageCount=(rowCount-1)/pageSize+1; if (pageNow > pageCount) { //用户输的当前页大于最后一页 pageNow = pageCount; @@ -412,7 +414,13 @@ } int fristIndex = pageSize*(pageNow - 1); - sql = "select po " + sql; + String sql = String.format("select po from %s po inner join po.details d inner join d.consumptiveMaterialType t where 1=1 %s %s %s %s %s order by po.operationDateTime desc ", + ConsumptiveMaterialUseRecord.class.getSimpleName(), + dateSql, + typeSql, + userIdSql, + rinserSql, + washDisinfectRecordSerialNumSql); @SuppressWarnings("unchecked") List records = objectDao.findByHql(sql, fristIndex, pageSize); if(CollectionUtils.isNotEmpty(records)){