Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/sterilizer/sterilizerForm.js =================================================================== diff -u -r13416 -r13436 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/sterilizer/sterilizerForm.js (.../sterilizerForm.js) (revision 13416) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/sterilizer/sterilizerForm.js (.../sterilizerForm.js) (revision 13436) @@ -349,6 +349,20 @@ triggerAction : 'all', anchor : '95%' },{ + xtype : 'combo', + fieldLabel : '校验灭菌时间', + allowBlank : false, + name : 'isCheckSterilizationTime', + id : 'isCheckSterilizationTime', + valueField : 'value', + displayField : 'value', + forceSelection : true, + store : isResetStore, + mode : 'local', + triggerAction : 'all', + anchor : '95%' + }, + { xtype : 'dateextensiablefield', width : 150, fieldLabel : '购买日期', @@ -630,6 +644,7 @@ }); }else{ top.Ext.getCmp('isEveryDayReset').setValue('是'); + top.Ext.getCmp('isCheckSterilizationTime').setValue('否'); } Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js =================================================================== diff -u -r13416 -r13436 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 13416) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 13436) @@ -1464,7 +1464,7 @@ } }] }, { - columnWidth : .33, + columnWidth : .35, layout : 'form', cls:'edit-5char-labelwidth', items : [{ Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/sterilizer/Sterilizer.java =================================================================== diff -u -r13416 -r13436 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/sterilizer/Sterilizer.java (.../Sterilizer.java) (revision 13416) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/sterilizer/Sterilizer.java (.../Sterilizer.java) (revision 13436) @@ -49,6 +49,8 @@ private Set sterilisations = new HashSet(); private String isEveryDayReset = "是";// 是否隔天重置炉次 + + private String isCheckSterilizationTime = "否"; // 是否校验灭菌时间 // 购买日期 private Date purchaseDate; @@ -295,6 +297,14 @@ this.isEveryDayReset = isEveryDayReset; } + public String getIsCheckSterilizationTime() { + return isCheckSterilizationTime; + } + + public void setIsCheckSterilizationTime(String isCheckSterilizationTime) { + this.isCheckSterilizationTime = isCheckSterilizationTime; + } + @OneToMany(fetch = FetchType.LAZY) @Cascade(value = { org.hibernate.annotations.CascadeType.ALL }) @JoinColumn(name = "sterilizer_id") Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r13416 -r13436 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 13416) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 13436) @@ -35,13 +35,15 @@ import com.forgon.disinfectsystem.barcode.service.BarcodeManager; import com.forgon.disinfectsystem.basedatamanager.container.service.ReviewedBasketManager; import com.forgon.disinfectsystem.basedatamanager.goodsstock.service.GoodsStockManager; +import com.forgon.disinfectsystem.basedatamanager.sterilisation.service.SterilisationManager; import com.forgon.disinfectsystem.basedatamanager.sterilizer.service.SterilizerManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.basedatamanager.toussedefinition.service.TousseInstanceUtils; import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager; import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.assestmanagement.TousseStock; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; +import com.forgon.disinfectsystem.entity.basedatamanager.sterilisation.Sterilisation; import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; @@ -159,7 +161,13 @@ public void setGoodsStockManager(GoodsStockManager goodsStockManager) { this.goodsStockManager = goodsStockManager; } + + private SterilisationManager sterilisationManager; + public void setSterilisationManager(SterilisationManager sterilisationManager) { + this.sterilisationManager = sterilisationManager; + } + @Override public void saveOrUpdate(SterilizationRecord sterilizationRecord) { objectDao.saveOrUpdate(sterilizationRecord); @@ -319,6 +327,47 @@ || !sterilizationRecord.isSterilizationBegin()) {// 一定要是灭菌中才能进行灭菌完成操作 continue; } + + Sterilizer sterilizer = sterilizationRecord + .getSterilizer(); + String isCheckSterilizationTime = sterilizer.getIsCheckSterilizationTime(); + if(isCheckSterilizationTime != null && isCheckSterilizationTime.equals("是")) + { + Sterilisation sa = sterilisationManager.getSterilisationByName(sterilizationRecord.getSterilizationType()); + if(sa != null && sa.getUseTime() != null) + { + Integer time = sa.getUseTime(); + Date da = sterilizationRecord.getStartDate(); + Date curDate = new Date(); + long dTime = curDate.getTime() - da.getTime(); + if( time > 0 && dTime/(60*1000) < time) + { + // 灭菌时间没有达到最小值,不能完成灭菌 + result = new JSONStringer() + .object() + .key("success") + .value(false) + .key("cause") + .value("灭菌时间不够" + time + "分钟" + ",不能完成灭菌!").endObject() + .toString(); + return result; + } + } + } + + if (!sterilizer.getOrgUnitCoding().equalsIgnoreCase(orgUnitCode)) { + String orgUnitName = supplyRoomConfig.getOrgUnitName(); + result = new JSONStringer() + .object() + .key("success") + .value(false) + .key("cause") + .value(sterilizer.getName() + "不属于当前用户所在的科室:" + + orgUnitName + ",不能完成灭菌!").endObject() + .toString(); + return result; + } + // 如果灭菌目的为每天例行监测并且是第一炉时 if (SterilizationRecord.STERILIZATIONPURPOSE_TYPE .equals(sterilizationRecord.getSterilizationPurpose()) @@ -341,22 +390,6 @@ sterilizationRecord.setEndDate(new Date()); } - Sterilizer sterilizer = sterilizationRecord - .getSterilizer(); - if (!sterilizer.getOrgUnitCoding().equalsIgnoreCase(orgUnitCode)) { - String orgUnitName = supplyRoomConfig.getOrgUnitName(); - result = new JSONStringer() - .object() - .key("success") - .value(false) - .key("cause") - .value(sterilizer.getName() + "不属于当前用户所在的科室:" - + orgUnitName + ",不能完成灭菌!").endObject() - .toString(); - return result; - } - - List allTousseInstancesOfSterile = new ArrayList(); List tousseInstancesNotInBasket = sterilizationRecord.getTousseInstanceList(); allTousseInstancesOfSterile.addAll(tousseInstancesNotInBasket);