Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/action/QualityMonitoringDefinitionAction.java =================================================================== diff -u -r30807 -r30827 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/action/QualityMonitoringDefinitionAction.java (.../QualityMonitoringDefinitionAction.java) (revision 30807) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/action/QualityMonitoringDefinitionAction.java (.../QualityMonitoringDefinitionAction.java) (revision 30827) @@ -10,6 +10,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; @@ -191,17 +192,19 @@ 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); + if(CollectionUtils.isNotEmpty(tousseInstances)){ + 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; } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java =================================================================== diff -u -r30723 -r30827 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 30723) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 30827) @@ -7,6 +7,8 @@ import java.util.Arrays; import java.util.Calendar; import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; @@ -1141,8 +1143,28 @@ JSONObject obj = new JSONObject(); obj.put("success", false); if(StringUtils.isNotBlank(barcode)){ - 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){ + // ZSRY-14 质量监测,器械包信息增加支持扫描标识牌条码读取器械包名称 + IDCardInstance idCardInstance = (IDCardInstance) barcodeDevice; + List tousseInstances = idCardInstance.getTousseInstances(objectDao); + if(CollectionUtils.isNotEmpty(tousseInstances)){ + 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){ obj.put("success", true); obj.put("tousseInstanceId", tousseInstance.getId());