Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r33892 -r33947 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 33892) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 33947) @@ -7545,34 +7545,53 @@ for (Sterilizer sterilizer : sterilizerList) { sterilizerIdList.add(sterilizer.getId()); } - String recordHql = String.format("select po from %s po where (po.sterilizerRecordAmount is null or po.sterilizerRecordAmount = 0) and po.endDate is not null and po.endDate < %s and %s and po.promptUploadDevParamPic = '%s' " + + String topSql = ""; + if(dbConnection.isSqlServer()){ + topSql = " top 20 "; + } + + String rowNumSql = ""; + if(dbConnection.isOracle()){ + rowNumSql = " and rownum <= 20 "; + } + + String recordSql = String.format("select %s distinct sterilizer.name, po.id, po.frequency, po.endDate from %s po " + + " join %s sterilizer on sterilizer.id = po.sterilizer_id " + + " left join %s srp on srp.sterilizationRecord_id = po.id " + + " where (po.sterilizerRecordAmount is null or po.sterilizerRecordAmount = 0) and po.endDate is not null and po.endDate < %s and %s and po.promptUploadDevParamPic = '%s' " + + " and srp.id is null %s " + " order by po.endDate desc ", + topSql, SterilizationRecord.class.getSimpleName(), + Sterilizer.class.getSimpleName(), + SterilizationRecordPic.class.getSimpleName(), dateQueryAdapter.dateAdapter(new Date()), - SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.sterilizer.id", sterilizerIdList), - Constants.STR_YES); - List sterilizationRecordList = objectDao.findByHql(recordHql); - if(CollectionUtils.isEmpty(sterilizationRecordList)){ - return warningVoList; - } - int amount = 0; - for (int i =0;i washAndDisinfectRecordList = objectDao.findByHql(recordHql); - if(CollectionUtils.isEmpty(washAndDisinfectRecordList)){ - return warningVoList; - } - int amount = 0; - for (int i =0;i