Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js =================================================================== diff -u -r19311 -r19677 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 19311) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 19677) @@ -2528,8 +2528,7 @@ SterilizationRecordTableManager.isDefineDeviceInterface(sterilizerName,function(result){ isDefineDeviceInterface = result; }); - if( isDefineDeviceInterface ) - { + if( isDefineDeviceInterface ){ SterilizationRecordTableManager.isSterilizerCycleCounterExist(id,sterilizerName,cycleCounter, function(result) { sign = result; @@ -2539,17 +2538,14 @@ showResult("灭菌炉的循环次数已存在,保存失败!"); return false; } - }else - { + }else{ top.Ext.getCmp('cycleCounter').setValue(0); } - } if (!hasGoods){ var r = confirm("没有添加灭菌的物品,继续灭菌吗?") - if (r == false) - { + if (r == false){ return false; } } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r19643 -r19677 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 19643) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 19677) @@ -1008,8 +1008,7 @@ } boolean isNewRecord = false; - if(sterilizationRecord.getId() == null || sterilizationRecord.getId() == 0L) - { + if(sterilizationRecord.getId() == null || sterilizationRecord.getId() == 0L){ // 获取灭菌炉,加锁 Sterilizer sr = sterilizerManager.getSterilizerByNameForUpdate(sterilizationRecord.getSterilizerName()); if(sr == null){ @@ -1018,14 +1017,23 @@ return result; } // 新加灭菌记录,校验 - if( !isAllSterilizationEnd(sr.getName())) - { + if(!isAllSterilizationEnd(sr.getName())){ result.put(JSONUtil.JSON_KEY_SUCCESS, false); result.put(JSONUtil.JSON_KEY_MESSAGE, "灭菌炉正在灭菌中"); return result; } + Integer frequency = sterilizationRecord.getFrequency(); + Integer tempFrequency = getMaxFrequency(sr, sterilizationRecord.getId()); //因为返回值一定不为空null,所以直接转成Integer类型 + + //新增的灭菌记录,需要校验前台传过来的炉次是否合法(防止用户不规范的操作顺序,导致同一炉次被保存两次) + if (!MathTools.equals(frequency, tempFrequency)) { + result.put(JSONUtil.JSON_KEY_SUCCESS, false); + result.put(JSONUtil.JSON_KEY_MESSAGE, "此炉次已经被使用,请确认!"); + return result; + } isNewRecord = true; } + result.put(JSONUtil.JSON_KEY_SUCCESS, true); //器械包条码增加单引号 Collection tousseInstanceBarcodesInclude = new ArrayList(); Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java =================================================================== diff -u -r19535 -r19677 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java (.../SterilizationRecordManager.java) (revision 19535) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java (.../SterilizationRecordManager.java) (revision 19677) @@ -208,6 +208,13 @@ public List findRecordInTimePart(String sterileName, Date begin, Date end); + /** + * 校验同个灭菌炉是否存在相同的“循环次数”. + * @param sterilizationRecordID 灭菌记录id + * @param sterilizerName 灭菌炉名称 + * @param cycleNumber 循环次数 + * @return + */ public boolean isSterilizerCycleCounterExist(Long sterilizationRecordID,String sterilizerName,Long cycleNumber); public void addTousseInstanceToSterilizationRecord_TRANS_REQUIRED(String tousseInstanceIDs);