Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/action/QualityMonitoringDefinitionAction.java =================================================================== diff -u -r30298 -r30807 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/action/QualityMonitoringDefinitionAction.java (.../QualityMonitoringDefinitionAction.java) (revision 30298) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/action/QualityMonitoringDefinitionAction.java (.../QualityMonitoringDefinitionAction.java) (revision 30807) @@ -2,6 +2,7 @@ import java.io.IOException; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -15,10 +16,12 @@ import org.apache.struts2.convention.annotation.ParentPackage; import com.forgon.directory.acegi.tools.AcegiHelper; +import com.forgon.directory.model.BarcodeDevice; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; import com.forgon.disinfectsystem.entity.customform.formdefinition.FormDefinitionItem; +import com.forgon.disinfectsystem.entity.idcardinstance.IDCardInstance; import com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoringconfig.QualityMonitoringDefinition; import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord; import com.forgon.disinfectsystem.qualitymonitoring.definition.service.QualityMonitoringDefinitionManager; @@ -183,8 +186,26 @@ try{ if (StringUtils.isNotBlank(barcode) && StringUtils.isNotBlank(qmDefinitionId)) { - TousseInstance tousseInstance = (TousseInstance) objectDao.getByProperty( - TousseInstance.class.getSimpleName(), "barcode", barcode); + TousseInstance tousseInstance = null; + BarcodeDevice barcodeDevice = (BarcodeDevice) objectDao.getByProperty(BarcodeDevice.class.getSimpleName(), "barcode", barcode); + if(barcodeDevice instanceof IDCardInstance){ + IDCardInstance idCardInstance = (IDCardInstance) barcodeDevice; + List tousseInstances = idCardInstance.getTousseInstances(objectDao); + Collections.sort(tousseInstances, + new Comparator() { + @Override + public int compare(TousseInstance b1, + TousseInstance b2) { + return b2.getOperationTime().compareTo( + b1.getOperationTime()); + } + + }); + tousseInstance = tousseInstances.get(0); + }else if(barcodeDevice instanceof TousseInstance){ + tousseInstance = (TousseInstance) barcodeDevice; + } + if (tousseInstance != null) { TousseDefinition td = tousseInstance.getTousseDefinition();