Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java =================================================================== diff -u -r14935 -r15207 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 14935) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 15207) @@ -996,48 +996,44 @@ */ public void sterilizationFailure() { String idsStr = StrutsParamUtils.getPraramValue("ids", ""); - String message = "{success:false}"; + boolean success = false; + String message = "更新失败"; // 灭菌失败 try { Collection ids = StringTools.parseToLongs(idsStr, ";"); sterilizationRecordManager.updateFailureSterilizedRecordStatus(ids); // sterilizerRecordManager.readAndSaveSterilizerRecord(ids); - message = "{success:true,msg:'更新成功。'}"; + success = true; + message = "更新成功"; + } catch(RuntimeException e){ + e.printStackTrace(); + message = e.getMessage(); } catch (Exception e) { e.printStackTrace(); } - HttpServletResponse httpServletResponse = StrutsParamUtils - .getResponse(); - httpServletResponse.setCharacterEncoding("UTF-8"); - try { - httpServletResponse.getWriter().print(message); - } catch (IOException e) { - e.printStackTrace(); - } + StrutsResponseUtils.output(success, message); } /** * 灭菌中断 */ public void sterilizationInterrupt() { String idsStr = StrutsParamUtils.getPraramValue("ids", ""); - String message = "{success:false}"; + boolean success = false; + String message = "中断失败"; try { Collection ids = StringTools.parseToLongs(idsStr, ";"); sterilizationRecordManager.updateSterilizedInerruptRecordStatus(ids); // sterilizerRecordManager.readAndSaveSterilizerRecord(ids); - message = "{success:true,msg:'更新成功。'}"; - } catch (Exception e) { + success = true; + message = "更新成功"; + }catch(RuntimeException e){ e.printStackTrace(); - } - HttpServletResponse httpServletResponse = StrutsParamUtils - .getResponse(); - httpServletResponse.setCharacterEncoding("UTF-8"); - try { - httpServletResponse.getWriter().print(message); - } catch (IOException e) { + message = e.getMessage(); + } catch (Exception e) { e.printStackTrace(); } + StrutsResponseUtils.output(success, message); } /** * 继续灭菌 Index: ssts-web/src/main/java/com/forgon/disinfectsystem/qualitymonitoringmanager/qualitymonitoring/service/QualityMonitoringAdjustManagerImpl.java =================================================================== diff -u -r14913 -r15207 --- ssts-web/src/main/java/com/forgon/disinfectsystem/qualitymonitoringmanager/qualitymonitoring/service/QualityMonitoringAdjustManagerImpl.java (.../QualityMonitoringAdjustManagerImpl.java) (revision 14913) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/qualitymonitoringmanager/qualitymonitoring/service/QualityMonitoringAdjustManagerImpl.java (.../QualityMonitoringAdjustManagerImpl.java) (revision 15207) @@ -77,6 +77,8 @@ boolean isAll = StringTools.equals("是", requestParams.get("isAllTousseOfSterile")); //是否整炉 String tousseInstanceId = requestParams.get("tousseInstanceId"); String sterilizeRecordId = requestParams.get("qualityMonitoringSterilizationID"); + //灭菌记录的状态,灭菌失败或者灭菌中断 + String sterilizationStatus = requestParams.get("sterilizationStatus"); boolean saved = DatabaseUtil.isPoIdValid(qualityMonitoring.getId()); //记录原来是否已经保存过 String ret = ""; qualityMonitoringManager.saveQualityMonitoring(qualityMonitoring,requestParams); @@ -106,6 +108,11 @@ packingManager.createPackingTaskForRepacking(tousseInstanceId); } } + if(StringTools.equals(SterilizationRecord.STERILIZATION_STATUS_FAILURE, sterilizationStatus)){ + sterilizationRecordManager.updateFailureSterilizedRecordStatus(sterilizeRecordId); + }else if(StringTools.equals(SterilizationRecord.STERILIZATION_STATUS_INTERRUPT, sterilizationStatus)){ + sterilizationRecordManager.updateSterilizedInerruptRecordStatus(sterilizeRecordId); + } return ret; } private void spliteRecycleTousseAndRepackingTousse(Collection allTousse,Collection recycleTousse, Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.js =================================================================== diff -u -r15161 -r15207 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.js (.../sterilizationRecordView.js) (revision 15161) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.js (.../sterilizationRecordView.js) (revision 15207) @@ -362,18 +362,19 @@ hideMessageBox(false); var result = Ext.decode(response.responseText); var success = result.success; - if (true != success) { - showResult(result.cause); - return; - } else { - showResult(result.msg); + showResult(result.message); + if(success){ grid.dwrReload(); } }, failure : function(response, options) { hideMessageBox(false); var result = Ext.decode(response.responseText); - showResult(result.cause); + if(result && result.message){ + showResult(result.message); + }else{ + showResult("更新失败"); + } } }); } @@ -426,18 +427,19 @@ hideMessageBox(false); var result = Ext.decode(response.responseText); var success = result.success; - if (true != success) { - showResult(result.cause); - return; - } else { - showResult(result.msg); + showResult(result.message); + if(success){ grid.dwrReload(); } }, failure : function(response, options) { hideMessageBox(false); var result = Ext.decode(response.responseText); - showResult(result.cause); + if(result && result.message){ + showResult(result.message); + }else{ + showResult("中断失败"); + } } }); } @@ -489,7 +491,7 @@ } },{ id : 'failerBtn', - text : '灭菌失败', + text : '灭菌失败1', handler : function(){ sterilizationFailure(grid,statusFailure); sterilizerStatus = statusFailure; @@ -653,7 +655,7 @@ sterilizationInterrupt(grid,statusInterrupt); } }, '-', { - text : '灭菌失败', + text : '灭菌失2', hidden : SSTS_Sterilization_Update, iconCls : 'btn_ext_application_error', id : 'failureTbar', Index: ssts-web/src/main/webapp/disinfectsystem/qualitymonitoring/qualitymonitoringForm.js =================================================================== diff -u -r15162 -r15207 --- ssts-web/src/main/webapp/disinfectsystem/qualitymonitoring/qualitymonitoringForm.js (.../qualitymonitoringForm.js) (revision 15162) +++ ssts-web/src/main/webapp/disinfectsystem/qualitymonitoring/qualitymonitoringForm.js (.../qualitymonitoringForm.js) (revision 15207) @@ -209,11 +209,16 @@ function submitForm2(materialInfo,saveAndCreate){ top.Ext.getCmp('responsiblePerson').setDisabled(false); + var sterilizationStatus = ''; + if(typeof(sterilizerStatus) != 'undefined' && sterilizerStatus != null && sterilizerStatus != ""){ + sterilizationStatus = sterilizerStatus; + } top.Ext.getCmp('addQualityMonitoringForm').form.submit( { url : WWWROOT + '/disinfectSystem/qualityMonitoringAction!saveQualityMonitoring.do', params : { materialInfo : materialInfo, qualityMonitoringId : qualityMonitoringId, + sterilizationStatus:sterilizationStatus, qualityMonitoringSterilizationID : qualityMonitoringSterilizationID }, method : 'POST', @@ -237,13 +242,13 @@ } } //点击灭菌失败后弹出质量监测,保存后再提交后台 - if(typeof(sterilizerStatus) != 'undefined' && sterilizerStatus != null && sterilizerStatus != ""){ - if( sterilizerStatus == statusFailure){ - submitSterilizationFailure(statusFailure); - }else if(sterilizerStatus == statusInterrupt){ - submitSterilizationInterrupt(statusInterrupt); - } - } +// if(typeof(sterilizerStatus) != 'undefined' && sterilizerStatus != null && sterilizerStatus != ""){ +// if( sterilizerStatus == statusFailure){ +// submitSterilizationFailure(statusFailure); +// }else if(sterilizerStatus == statusInterrupt){ +// submitSterilizationInterrupt(statusInterrupt); +// } +// } }, failure : function(form, action) { @@ -253,6 +258,7 @@ }else{ alert('failure = ' + action.failureType); } + qualityMonitoringWin.close(); } }); } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r15104 -r15207 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 15104) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 15207) @@ -27,6 +27,7 @@ import org.hibernate.Query; import org.hibernate.Session; +import com.forgon.Constants; import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.BarcodeDevice; @@ -365,15 +366,18 @@ } if (dailyMonitoringMinute == 0) { - sterilizationRecord.setEndDate(new Date()); + setEndDate(sterilizationRecord); +// sterilizationRecord.setEndDate(new Date()); } else { Calendar calendar = Calendar.getInstance(); calendar.setTime(sterilizationRecord.getStartDate()); calendar.add(Calendar.MINUTE, dailyMonitoringMinute); - sterilizationRecord.setEndDate(calendar.getTime()); + setEndDate(sterilizationRecord,calendar.getTime()); +// sterilizationRecord.setEndDate(calendar.getTime()); } } else { - sterilizationRecord.setEndDate(new Date()); + setEndDate(sterilizationRecord); +// sterilizationRecord.setEndDate(new Date()); } resetNoVirtualBasketStatus(sterilizationRecord); List allTousseInstancesOfSterile = getAllTousseInstancesOfSterile(sterilizationRecord,true); @@ -1177,9 +1181,11 @@ Calendar calendar = Calendar.getInstance(); calendar.setTime(sterilizationRecord.getStartDate()); calendar.add(Calendar.MINUTE, dailyMonitoringMinute); - sterilizationRecord.setEndDate(calendar.getTime()); + setEndDate(sterilizationRecord, calendar.getTime()); +// sterilizationRecord.setEndDate(calendar.getTime()); } else { - sterilizationRecord.setEndDate(new Date()); + setEndDate(sterilizationRecord); +// sterilizationRecord.setEndDate(new Date()); } // 对应将器械包状态改回原来的状态(已审核状态) @@ -1203,14 +1209,20 @@ saveOrUpdate(sterilizationRecord); } } + @Override + public void updateFailureSterilizedRecordStatus(String sterilizationRecordId){ + if(DatabaseUtil.isPoIdValid(sterilizationRecordId)){ + List list = new ArrayList(); + list.add(Long.valueOf(sterilizationRecordId)); + updateFailureSterilizedRecordStatus(list); + } + } /** * 更新灭菌记录为灭菌中断 */ @Override public void updateSterilizedInerruptRecordStatus( Collection sterilizationRecordIds) { - SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager - .getSystemParamsObj(); for (Long id : sterilizationRecordIds) { SterilizationRecord sr = getSterilizationRecordById(id); if (sr == null @@ -1242,6 +1254,14 @@ saveOrUpdate(sr); } } + @Override + public void updateSterilizedInerruptRecordStatus(String sterilizationRecordId){ + if(DatabaseUtil.isPoIdValid(sterilizationRecordId)){ + List list = new ArrayList(); + list.add(Long.valueOf(sterilizationRecordId)); + updateSterilizedInerruptRecordStatus(list); + } + } /** * 继续灭菌 */ @@ -1967,4 +1987,29 @@ objectDao.saveOrUpdate(si); } } + + @Override + public void setEndDate(SterilizationRecord sterilizationRecord) { + setEndDate(sterilizationRecord,new Date()); + } + + @Override + public void setEndDate(SterilizationRecord sterilizationRecord, Date endDate) { + if(sterilizationRecord == null){ + throw new RuntimeException("灭菌记录不能为空"); + } + Date startDate = sterilizationRecord.getStartDate(); + if(startDate == null && endDate != null){ + String msg = String.format("灭菌记录(灭菌炉:%s,炉次:%d)未开始灭菌", sterilizationRecord.getSterilizerName(),sterilizationRecord.getFrequency()); + throw new RuntimeException(msg); + } + if(startDate != null && endDate != null){ + if(endDate.before(startDate)){ + String msg = String.format("结束时间(%s)不能在开始时间(%s)之前", + Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS.format(endDate),Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS.format(startDate)); + throw new RuntimeException(msg); + } + } + sterilizationRecord.setEndDate(endDate); + } } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java =================================================================== diff -u -r14935 -r15207 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java (.../SterilizationRecordManager.java) (revision 14935) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java (.../SterilizationRecordManager.java) (revision 15207) @@ -64,13 +64,26 @@ Collection tousseInstanceBarcodes, Collection containerBarcodes, Long originalSterilizationRecordId); - + /** + * 灭菌失败记录的处理 + * @param sterilizationRecordIds 灭菌记录id的集合 + */ public void updateFailureSterilizedRecordStatus(Collection sterilizationRecordIds); /** + * 单个灭菌失败记录的处理 + * @param sterilizationRecordId 灭菌记录id + */ + public void updateFailureSterilizedRecordStatus(String sterilizationRecordId); + /** * 灭菌中断 * @param sterilizationRecordIds */ public void updateSterilizedInerruptRecordStatus(Collection sterilizationRecordIds); + /** + * 单个灭菌记录中断的处理 + * @param sterilizationRecordId 灭菌记录id + */ + public void updateSterilizedInerruptRecordStatus(String sterilizationRecordId); public void saveRecordPicture(Long sterilizationRecordId, Collection pictures, String deletePicId); @@ -117,4 +130,15 @@ * @return */ public List getAllTousseInstancesOfSterile(SterilizationRecord sterilizationRecord); + /** + * 设置灭菌记录完成时间为当前服务器时间。如果当前时间在灭菌开始时间之前,则抛出异常,给出提示信息 + * @param sterilizationRecord 灭菌记录 + */ + public void setEndDate(SterilizationRecord sterilizationRecord); + /** + * 设置灭菌记录完成时间。如果灭菌完成时间在灭菌开始时间之前,则抛出异常,给出提示信息 + * @param sterilizationRecord 灭菌记录 + * @param endDate 完成时间.可以为null。如果灭菌记录的开始时间为null,而结束时间不为null,则会抛出异常,给出提示 + */ + public void setEndDate(SterilizationRecord sterilizationRecord,Date endDate); }