Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r17082 -r17085 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 17082) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 17085) @@ -399,5 +399,11 @@ */ public List getUseRecordListByTousseInstanceId( String tousseInstanceId); + /** + * 通过器械包条码,判断是否需要提示录入定期监测 + * @param barcode + * @return true 当器械包的灭菌炉有配了定期监测,并且没有录入了相关的定期监测记录;其他情况均返回false + */ + public boolean isNeedRoutineMonitoringWarming(String barcode); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r17082 -r17085 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 17082) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 17085) @@ -61,6 +61,7 @@ import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveDisposablegoods; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; @@ -2656,4 +2657,47 @@ return list; } + /** + * 通过器械包条码,判断是否需要提示录入定期监测 + * @param barcode + * @return true 当器械包的灭菌炉有配了定期监测,并且没有录入了相关的定期监测记录;其他情况均返回false + */ + public boolean isNeedRoutineMonitoringWarming(String barcode){ + boolean haveRoutineMonitoring = false; + if(StringUtils.isBlank(barcode)){ + return haveRoutineMonitoring; + } + BarcodeDevice barcodeDevice = barcodeManager.getBarcodeByBarcode(barcode); + if(barcodeDevice instanceof TousseInstance){ + TousseInstance ti = (TousseInstance)barcodeDevice; + String sterilizerDate = ti.getSterileStartTime(); + if(sterilizerDate != null && sterilizerDate.length() > 10){ + sterilizerDate = sterilizerDate.substring(0,10); + } + Sterilizer ser = (Sterilizer) objectDao.getByProperty(Sterilizer.class + .getSimpleName(), "name", ti.getSterilizerName()); + if("是".equals(ser.getIsRoutineMonitoring())){ + String sql = "select qi.name from QualityMonitoringInstance qi,Sterilizer ser where qi.sterilizerName = ser.name and ser.isRoutineMonitoring = '是' " + + " and qi.sterilizerDate = '" + sterilizerDate + "'" + + " and qi.sterilizerName = '" + ti.getSterilizerName() + "'" + + " and qi.sterilizerFrequency = '" + ti.getSterileFrequency() + "'"; + ResultSet result = objectDao.executeSql(sql); + String name = ""; + try { + while (result.next()) { + name = result.getString(1); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(result); + } + // 灭菌炉配了要定期监测,但没找到相关记录的定期监测 + if(StringUtils.isBlank(name)){ + haveRoutineMonitoring = true; + } + } + } + return haveRoutineMonitoring; + } } Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java =================================================================== diff -u -r17058 -r17085 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java (.../InvoiceAction.java) (revision 17058) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java (.../InvoiceAction.java) (revision 17085) @@ -1546,7 +1546,10 @@ vo.setShowResult(tips); setTousseInstancesBelongToThisComboTousse(data, vo); updateVO(barcode, vo); - + // 判断器械包是否需要做定期监测的提示 + if(tousseInstanceManager.isNeedRoutineMonitoringWarming(barcode)){ + result.addProperty("isNeedRoutineMonitoringWarming", true); + } result.add("data", gson.toJsonTree(Collections.singleton(vo), gsonType)); return result; @@ -1581,6 +1584,10 @@ // vo.setSterilizerName(sterilizerName); // vo.setFrequency(frequency); // vo.setTousseDefinitionId(tousseDefinitionId); + // 判断器械包是否需要做定期监测的提示 + if(tousseInstanceManager.isNeedRoutineMonitoringWarming(barcode)){ + result.addProperty("isNeedRoutineMonitoringWarming", true); + } setTousseInstancesBelongToThisComboTousse(data, vo); } Index: ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedForm.js =================================================================== diff -u -r16915 -r17085 --- ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedForm.js (.../invoicePlanExtractedForm.js) (revision 16915) +++ ssts-web/src/main/webapp/disinfectsystem/invoice/invoicePlanExtractedForm.js (.../invoicePlanExtractedForm.js) (revision 17085) @@ -591,6 +591,9 @@ top.Ext.getCmp('scanText').focus(); return; } + if(result.isNeedRoutineMonitoringWarming != undefined && result.isNeedRoutineMonitoringWarming == true){ + showResult("该物品灭菌炉没有进行监测,请登记!"); + } // 验证灭菌筐内的物品是否符合发货条件,扫描的器械包数量是否大于申请数量 var tousseNameToAmountMap = getTousseNameToAmountMap(result); var exceedAmountNames = {};// 超过待发数量的包 Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/sterilizer/sterilizerForm.js =================================================================== diff -u -r16449 -r17085 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/sterilizer/sterilizerForm.js (.../sterilizerForm.js) (revision 16449) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/sterilizer/sterilizerForm.js (.../sterilizerForm.js) (revision 17085) @@ -412,6 +412,25 @@ layout : 'form', labelWidth : 100, items:[{ + xtype : 'combo', + fieldLabel : '是否定期监测', + allowBlank : true, + name : 'isRoutineMonitoring', + id : 'isRoutineMonitoring', + valueField : 'value', + displayField : 'value', + value : '否', + forceSelection : true, + store : isResetStore, + mode : 'local', + triggerAction : 'all', + anchor : '95%' + }] + },{ + columnWidth : 0.5, + layout : 'form', + labelWidth : 100, + items:[{ xtype : 'dateextensiablefield', width : 150, fieldLabel : '购买日期', @@ -834,8 +853,8 @@ success : function(form, action) { var sterilizer = action.result.data; //灭菌炉对象 var biologicalMonitoringDisplay = sterilizer.biologicalMonitoringDisplay; - var biologicalMonitoringDisplayArray = biologicalMonitoringDisplay.split(';'); + top.Ext.getCmp('isRoutineMonitoring').setValue(sterilizer.isRoutineMonitoring); var length = biologicalMonitoringDisplayArray.length; for (var i = 0; i < length; i ++) { if (biologicalMonitoringDisplayArray[i] == '合格') { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/sterilizer/Sterilizer.java =================================================================== diff -u -r16449 -r17085 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/sterilizer/Sterilizer.java (.../Sterilizer.java) (revision 16449) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/sterilizer/Sterilizer.java (.../Sterilizer.java) (revision 17085) @@ -68,6 +68,10 @@ // 灭菌成本 private Double cost; + /** + * 是否定期监测 + */ + private String isRoutineMonitoring; /** * 设备接口 @@ -143,7 +147,15 @@ public void setGuid(String guid) { this.guid = guid; } + + public String getIsRoutineMonitoring() { + return isRoutineMonitoring; + } + public void setIsRoutineMonitoring(String isRoutineMonitoring) { + this.isRoutineMonitoring = isRoutineMonitoring; + } + public String getName() { return name; }