Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/UseRecordPushDaoImpl.java =================================================================== diff -u -r31990 -r32060 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/UseRecordPushDaoImpl.java (.../UseRecordPushDaoImpl.java) (revision 31990) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/UseRecordPushDaoImpl.java (.../UseRecordPushDaoImpl.java) (revision 32060) @@ -2,14 +2,14 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.HashSet; import java.util.List; import java.util.Set; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; -import com.forgon.Constants; import com.forgon.directory.model.OrgUnit; import com.forgon.directory.model.OrgUserRelation; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; @@ -237,16 +237,23 @@ SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.id", classifyBasketIdList)); List classifyBasketList = objectDao.findByHql(classifyBasketHql); if(CollectionUtils.isNotEmpty(classifyBasketList)){ - List washAndDisinfectRecordList = new ArrayList(); + Set washAndDisinfectRecordSet = new HashSet(); for (ClassifyBasket classifyBasket : classifyBasketList) { - washAndDisinfectRecordList.addAll(classifyBasket.getWashAndDisinfectRecords()); + List washAndDisinfectRecordList = classifyBasket.getWashAndDisinfectRecords(); + if(CollectionUtils.isNotEmpty(washAndDisinfectRecordList)){ + for (WashAndDisinfectRecord washAndDisinfectRecord : washAndDisinfectRecordList) { + washAndDisinfectRecordSet.add(washAndDisinfectRecord); + } + } } - for (WashAndDisinfectRecord washAndDisinfectRecord : washAndDisinfectRecordList) { - String message = buildTraceInfoMessage(DatasyncConstant.STATUS_CODE_WASH, - washAndDisinfectRecord.getOperatorCode(), washAndDisinfectRecord.getOperator(), - washAndDisinfectRecord.getStartDateStr(), hospitalNum, patientVisitNum, - operationScheduleId, tousseInstance.getId()); - tousseTraceInfos.add(message); + if(CollectionUtils.isNotEmpty(washAndDisinfectRecordSet)){ + for (WashAndDisinfectRecord washAndDisinfectRecord : washAndDisinfectRecordSet) { + String message = buildTraceInfoMessage(DatasyncConstant.STATUS_CODE_WASH, + washAndDisinfectRecord.getOperatorCode(), washAndDisinfectRecord.getOperator(), + washAndDisinfectRecord.getStartDateStr(), hospitalNum, patientVisitNum, + operationScheduleId, tousseInstance.getId()); + tousseTraceInfos.add(message); + } } } }