Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r30381 -r30383 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 30381) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 30383) @@ -636,12 +636,13 @@ } else { sterilizationRecord.setBiologyResult(SterilizationRecord.MONITOR_RESULT_NO); } - // 灭菌记录的的温度压力数据条数 - int count = getSterilerRecordsCount(sterilizer.getDeviceInterfaceId(), - sterilizer.getMachineNumber(), - sterilizationRecord.getCycleCounter()); - sterilizationRecord.setSterilizerRecordAmount(Long.valueOf(count)); - + if(needReadSterilerRecordsCount(sterilizer)){ + // 灭菌记录的的温度压力数据条数 + int count = getSterilerRecordsCount(sterilizer.getDeviceInterfaceId(), + sterilizer.getMachineNumber(), + sterilizationRecord.getCycleCounter()); + sterilizationRecord.setSterilizerRecordAmount(Long.valueOf(count)); + } saveOrUpdate(sterilizationRecord); } long l2 = System.currentTimeMillis(); @@ -662,7 +663,24 @@ } return JSONUtil.buildJsonObject(true, "完成灭菌。"); } - + /** + * 是否需要查询灭菌参数条数(部分接口是匹配到灭菌记录才把灭菌参数保存的数据库,不需要再保存修改灭菌记录的时候去查询关联) + * @param sterilizer 灭菌炉 + * @return + */ + private boolean needReadSterilerRecordsCount(Sterilizer sterilizer){ + if(sterilizer != null && DatabaseUtil.isPoIdValid(sterilizer.getDeviceInterfaceId())){ + DeviceInterface deviceInterface = (DeviceInterface)objectDao.getById(DeviceInterface.class.getSimpleName(), sterilizer.getDeviceInterfaceId()); + if(deviceInterface != null){ + if(!(DeviceInterface.GETINGE.equals(deviceInterface.getDeviceBrand()) && DeviceInterface.GETINGETYPE_HS_ONE.equals(deviceInterface.getDeviceModel()) + || DeviceInterface.XINHUA.equals(deviceInterface.getDeviceBrand()) && (DeviceInterface.DEVICETYPE_LOW.equals(deviceInterface.getDeviceModel()) || DeviceInterface.DEVICETYPE_HIGH.equals(deviceInterface.getDeviceModel())) + || DeviceInterface.JOHNSON.equals(deviceInterface.getDeviceBrand()))){ + return true; + } + } + } + return false; + } @Override public JSONObject completeSterilizationConfirm(Long sterilizationRecordId, String confirmName,String barcodes,boolean isConfirmShowUnload,String completeBarcodes){ SterilizationRecord sterilizationRecord = getSterilizationRecordById_ForUpdate(sterilizationRecordId); @@ -2044,14 +2062,16 @@ } } - // 更新灭菌记录的温度压力数据条数 + // 更新灭菌记录的温度压力数据条数(部分接口是匹配到灭菌记录才把灭菌参数保存的数据库,不需要在这里才关联起来) // 灭菌记录的的温度压力数据条数 Sterilizer sterilizer = sterilizationRecord.getSterilizer(); - Long count = (long) getSterilerRecordsCount(sterilizer.getDeviceInterfaceId(), - sterilizer.getMachineNumber(), - sterilizationRecord.getCycleCounter()); - sterilizationRecord.setSterilizerRecordAmount(count); - + if(needReadSterilerRecordsCount(sterilizer)){ + // 灭菌记录的的温度压力数据条数 + Long count = (long) getSterilerRecordsCount(sterilizer.getDeviceInterfaceId(), + sterilizer.getMachineNumber(), + sterilizationRecord.getCycleCounter()); + sterilizationRecord.setSterilizerRecordAmount(count); + } //灭菌记录关联的器械包 List allTousseInstanceOfRecord = new ArrayList(); allTousseInstanceOfRecord.addAll(reviewedBasketTousseInstance);