Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.jsp =================================================================== diff -u -r41119 -r41305 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.jsp (.../sterilizationRecordView.jsp) (revision 41119) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.jsp (.../sterilizationRecordView.jsp) (revision 41305) @@ -125,6 +125,20 @@ SSTS_RoutineMonitoring_Return = false; + var SSTS_RecallRecord_Create = true; + + SSTS_RecallRecord_Create = false; + + + if (sstsConfig.recallScopeMode) { + var recallScopeMode = sstsConfig.recallScopeMode || []; + if (recallScopeMode.indexOf(1) == -1) { + SSTS_RecallRecord_Create = true + } + }else { + SSTS_RecallRecord_Create = true + } + //自定义表单类型:定期监测、质量监测 var formType_routineMonitoring = '<%=FormDefinition.FOMRTYPE_PERIODICMONITORING%>'; var formType_qualityMonitoring = '<%=FormDefinition.FOMRTYPE_QUALITYMONITORING%>'; Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.js =================================================================== diff -u -r41240 -r41305 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.js (.../sterilizationRecordView.js) (revision 41240) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.js (.../sterilizationRecordView.js) (revision 41305) @@ -33,6 +33,21 @@ showSterilizationImgIcon = false } +function openRecallRecordWin(record) { + var sterilizerName = record.data['sterilizer.name']; + var params = { + title: entityName + '信息', + width: 940, + height: 550, + id: 'recallRecordWin', + grid: grid, + url: WWWROOT + '/disinfectsystem/recallRecord/recallRecordForm.jsp?sterilizerName=' + encodeURI(sterilizerName) + } + getFormByIframeUtil(params, function (contentWindow) { + contentWindow.initValue(record); + }); +} + //物理监测结果 var monitorResutlStore = new Ext.data.SimpleStore({ fields: ['value'], @@ -1697,6 +1712,19 @@ addQualityMonitoring1(); } }, '-', { + text: '一键召回', + hidden: SSTS_RecallRecord_Create, + iconCls: 'btn_ext_application_add', + handler: function () { + var records = grid.getSelectionModel().getSelections(); + if (records.length == 1) { + openRecallRecordWin(records[0]); + } else { + showMultipleResult("只支持勾选单条记录进行召回操作。", null, sstsConfig.messagePauseTimeOnSterilizationRecordPage); + return false; + } + } + }, '-', { text: '打印灭菌明细', iconCls: 'icon_print', hidden: !showButton, Index: ssts-web/src/main/webapp/js/commonUtils.js =================================================================== diff -u -r41272 -r41305 --- ssts-web/src/main/webapp/js/commonUtils.js (.../commonUtils.js) (revision 41272) +++ ssts-web/src/main/webapp/js/commonUtils.js (.../commonUtils.js) (revision 41305) @@ -27,8 +27,21 @@ } } -function getContentWindowId(id) { - return top.document.getElementById('iframeForm').contentWindow.document.getElementById(id) +function getContentWindowId() { + var ids = ['addQualityMonitoringForm', 'addRoutineMonitoringForm', 'recallRecordForm']; + var dom = top.document.getElementById('iframeForm').contentWindow.document; + var returnResult = ''; + for (var i = 0; i < ids.length; i++) { + if (dom.getElementById(ids[i])) { + returnResult = ids[i]; + break; + } + } + if (returnResult == '') { + return false + } else { + return dom.getElementById(returnResult); + } } //ZSRY-60:form表单显示在iframe(可以通用) @@ -62,7 +75,7 @@ render: function (v) { if (callBack) { var timeout = setInterval(function () { - if (getContentWindowId('addQualityMonitoringForm') || getContentWindowId('addRoutineMonitoringForm')) { + if (getContentWindowId()) { clearInterval(timeout); callBack(top.document.getElementById('iframeForm').contentWindow); } Index: ssts-web/src/main/webapp/disinfectsystem/recallRecord/recallRecordForm.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/recallRecord/recallRecordForm.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/recallRecord/recallRecordForm.jsp (revision 41305) @@ -0,0 +1,56 @@ +<%@page import="com.forgon.disinfectsystem.entity.recall.RecallRecord"%> +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> + + + +召回信息 + + + + +<%@ include file="/common/includeExtJsAndCss.jsp"%> + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/recallRecord/recallRecordView.jsp =================================================================== diff -u -r29513 -r41305 --- ssts-web/src/main/webapp/disinfectsystem/recallRecord/recallRecordView.jsp (.../recallRecordView.jsp) (revision 29513) +++ ssts-web/src/main/webapp/disinfectsystem/recallRecord/recallRecordView.jsp (.../recallRecordView.jsp) (revision 41305) @@ -14,6 +14,7 @@ + Index: ssts-web/src/main/webapp/disinfectsystem/recallRecord/recallRecordForm.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/recallRecord/recallRecordForm.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/recallRecord/recallRecordForm.js (revision 41305) @@ -0,0 +1,713 @@ +var formObj; +var recallTousseColumnTree; +var recallTousseColumnTreeColumn = [330, 100, 70, 90, 130, 130, 120]; +var showConfirmWin = true; +var recallTypeStore; +//是否需要再次点击搜索器械包 +var isNeedClickSearch = false; +var RecallRecordItemRecord = Ext.data.Record.create([ + { name: 'departName', type: 'string' }, + { name: 'amount', type: 'long' }, + { name: 'instances', type: 'string' } +]); +var sterilizerJsonStore = new Ext.data.SimpleStore({ + fields: ['sterilizerName'], + url: WWWROOT + '/disinfectSystem/baseData/sterilizerAction!getAllSterilizer.do' +}); + +/** + * 开始时间或者截止时间改变 + * @param field + * @param newValue + * @param oldValue + */ +function dateChange(field, newValue, oldValue) { + // Ext.getCmp("endDate").getValue(), + // 开始时间或者截止时间改变则需要重新点击搜索器械包 + isNeedClickSearch = true; +} + +function loadRecallRecord(id) { + formObj.form.load({ + url: WWWROOT + '/disinfectSystem/recallRecordAction!loadRecallRecord.do', + method: 'GET', + waitMsg: '正在加载数据,请稍候', + params: { id: id }, + success: function (form, action) { + recallTousseColumnTree.loader.url = WWWROOT + '/disinfectSystem/recallRecordAction!loadRecallRecordItems.do?id=' + id; + recallTousseColumnTree.loader.load(recallTousseColumnTree.root); + if (action.result.data.recallRange == '截至上次生物监测成功前的炉次') { + var queryDate = action.result.data.queryDate || ''; + var frequency = action.result.data.frequency; + var lastSuccessfulbmStRecordYmd = action.result.data.lastSuccessfulbmStRecordYmd; + var lastSuccessfulbmStRecordF = action.result.data.lastSuccessfulbmStRecordF; + if (queryDate !== '') { + var newQueryDate = new Date(queryDate.time); + Ext.getCmp('queryDate').setValue(newQueryDate.format('Y-m-d')); + } + Ext.getCmp('frequency').setValue(frequency); + Ext.getCmp('labelText').setValue('上一次生物监测成功的炉次:' + lastSuccessfulbmStRecordYmd + ' 炉次 ' + lastSuccessfulbmStRecordF) + showExtDom(['queryDate', 'frequency', 'labelText']) + hideExtDom(['startDate', 'sterilizingFrequency_start', 'endDate', 'sterilizingFrequency_end']) + } else { + var startDate = action.result.data.startDate; + var endDate = action.result.data.endDate; + var start = new Date(startDate.time); + var end = new Date(endDate.time); + Ext.getCmp('startDate').setValue(start.format('Y-m-d')); + Ext.getCmp('endDate').setValue(end.format('Y-m-d')); + hideExtDom(['queryDate', 'frequency', 'labelText']) + showExtDom(['startDate', 'sterilizingFrequency_start', 'endDate', 'sterilizingFrequency_end']) + } + }, + failure: function (form, action) { } + }); +} + +function addAndEditRecallRecord(id) { + var typeStore = new Ext.data.SimpleStore({ + fields: ['value'], + data: [['器械包']] + }); + recallTousseColumnTree = new Ext.tree.ColumnTree({ + id: 'recallTousseColumnTree', + rootVisible: false, + autoScroll: true, + containerScroll: false, + height: 280, + frame: false, + bodyStyle: 'border:1px solid #afd7af', + columns: [{ + header: '科室名称', + width: recallTousseColumnTreeColumn[0], + dataIndex: 'departName' + }, { + header: '状态', + width: recallTousseColumnTreeColumn[1], + dataIndex: 'status' + }, { + header: '数量', + width: recallTousseColumnTreeColumn[2], + dataIndex: 'objAmount' + }, { + header: '流转位置', + width: recallTousseColumnTreeColumn[3], + dataIndex: 'location2', + //GGSRMYY-109 召回信息模块召回物品列表增加流转位置显示 + hidden: !sstsConfig.enableSurgicalInstrumentsManagement + }, { + header: '病人名称', + width: recallTousseColumnTreeColumn[4], + dataIndex: 'patientName' + }, { + header: '住院号/诊疗号', + width: recallTousseColumnTreeColumn[5], + dataIndex: 'patientNumber' + }, { + header: '手术时间', + width: recallTousseColumnTreeColumn[6], + dataIndex: 'operationTime' + }], + loader: new Ext.tree.TreeLoader({ + url: WWWROOT + '/disinfectSystem/recallRecordAction!searchRecalledTousses.do', + uiProviders: { + 'col': Ext.tree.ColumnNodeUI + } + }), + root: new Ext.tree.AsyncTreeNode({ + text: '待灭菌物品列表' + }), + tbar: [{ + id: 'btnRecall', + text: '器械包召回', + iconCls: 'Arrowrotateclockwise', + hidden: !id,//新增召回信息时器械包召回按钮隐藏,打开已存在的数据时放开 + handler: function () { + top.addTab('recallTousses', '召回器械包', WWWROOT + '/disinfectsystem/recallRecord/recallRecordViewForDepart.jsp'); + cancel(); + } + }, { + id: 'btnExport', + text: '导出', + iconCls: 'btn_ext_download', + disabled: !id, + handler: function () { + var sterilizerName = Ext.getCmp('sterilizerName').getValue(); + sterilizerName = (sterilizerName == "") ? sterilizerName : encodeURI(sterilizerName); + sterilizerName = sterilizerName.replace(/#/g, "%23"); + var startDate = Ext.getCmp('startDate').getRawValue(); + var endDate = Ext.getCmp('endDate').getRawValue(); + var sterilizingFrequency_start = Ext.getCmp('sterilizingFrequency_start').getValue(); + var sterilizingFrequency_end = Ext.getCmp('sterilizingFrequency_end').getValue(); + //var waitRecallBarcodes = getWaitRecallBarcodes();//由于get请求的内容长度有限,所以不通过url传输 + + var exportUrl = WWWROOT + "/disinfectSystem/recallRecordAction!exportWaitRecallTousseInstanceInfo.do"; + if (id) { + exportUrl += "?recallRecordId=" + id; + } else { + exportUrl += "?sterilizerName=" + sterilizerName + + "&startDate=" + startDate + + "&endDate=" + endDate + + "&sterilizingFrequency_start=" + sterilizingFrequency_start + + "&sterilizingFrequency_end=" + sterilizingFrequency_end; + } + location.href = exportUrl; + } + }] + }); + var actualWidth = document.body.clientWidth; + var actualHeight = document.body.clientHeight; + + formObj = new Ext.FormPanel({ + id: 'recallRecordForm', + frame: true, + labelSeparator: ':', + labelAlign: 'right', + bodyStyle: 'padding:5px 5px 0px 5px', + autoScroll: true, + width: actualWidth, + height: actualHeight, + renderTo: 'gridDiv', + items: [{ + xtype: "fieldset", + layout: 'column', + title: '基础信息', + autoHeight: true, + layout: 'column', + items: [{ + xtype: 'hidden', + name: 'lastSuccessfulbmStRecordId', + id: 'lastSuccessfulbmStRecordId', + value: id || '' + }, { + xtype: 'hidden', + name: 'lastSuccessfulbmStRecordF', + id: 'lastSuccessfulbmStRecordF' + }, { + xtype: 'hidden', + name: 'lastSuccessfulbmStRecordYmd', + id: 'lastSuccessfulbmStRecordYmd' + }, { + xtype: 'hidden', + name: 'id', + id: 'id', + value: id || '' + }, { + xtype: 'hidden', + name: 'treeInfo', + id: 'treeInfo' + }, { + columnWidth: 1, + layout: 'form', + labelWidth: 70, + items: [{ + xtype: 'combo', + fieldLabel: "灭菌炉名称", + valueField: 'sterilizerName', + displayField: 'sterilizerName', + store: sterilizerJsonStore, + triggerAction: 'all', + mode: 'remote', + forceSelection: true, + name: "sterilizerName", + id: "sterilizerName", + allowBlank: false, + editable: false, + readOnly: true, + anchor: '98%' + }] + }, { + columnWidth: .5, + layout: 'form', + labelWidth: 70, + cls: 'edit-5char-labelwidth', + id: 'queryDateBox', + items: [{ + xtype: 'datefieldWithMin', + fieldLabel: '查询时间', + id: 'queryDate', + name: 'queryDate', + editable: false, + altFormats: 'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + selectOnFocus: true, + format: 'Y-m-d', + allowBlank: false, + anchor: '95%' + }] + }, { + columnWidth: .5, + layout: 'form', + labelWidth: 70, + id: 'frequencyBox', + items: [{ + xtype: 'numberfield', + fieldLabel: '炉次', + allowNegative: false, + allowDecimals: false, + id: 'frequency', + name: 'frequency', + editable: false, + allowBlank: false, + anchor: '95%' + }] + }, { + columnWidth: .5, + layout: 'form', + labelWidth: 70, + cls: 'edit-5char-labelwidth', + id: 'startDateBox', + items: [{ + xtype: 'datefieldWithMin', + fieldLabel: '开始时间', + id: 'startDate', + name: 'startDate', + editable: false, + altFormats: 'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + selectOnFocus: true, + format: 'Y-m-d', + // value : new Date(), + allowBlank: false, + anchor: '95%', + listeners: { "change": dateChange } + }] + }, { + columnWidth: .5, + layout: 'form', + labelWidth: 70, + id: 'sterilizingFrequency_startBox', + items: [{ + xtype: 'numberfield', + fieldLabel: '炉次', + allowNegative: false, + allowDecimals: false, + id: 'sterilizingFrequency_start', + name: 'sterilizingFrequency_start', + editable: false, + allowBlank: false, + anchor: '95%' + }] + }, { + columnWidth: .5, + layout: 'form', + labelWidth: 70, + cls: 'edit-5char-labelwidth', + id: 'endDateBox', + items: [{ + xtype: 'datefieldWithMin', + fieldLabel: '截止时间', + id: 'endDate', + name: 'endDate', + editable: false, + altFormats: 'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + selectOnFocus: true, + format: 'Y-m-d', + // value : new Date(), + allowBlank: false, + anchor: '95%', + listeners: { "change": dateChange } + }] + }, { + columnWidth: .5, + layout: 'form', + labelWidth: 70, + id: 'sterilizingFrequency_endBox', + items: [{ + xtype: 'numberfield', + fieldLabel: '炉次', + allowNegative: false, + allowDecimals: false, + id: 'sterilizingFrequency_end', + name: 'sterilizingFrequency_end', + editable: false, + allowBlank: false, + anchor: '95%' + }] + }, { + columnWidth: .5, + layout: 'form', + labelWidth: 70, + items: [{ + xtype: 'combo', + fieldLabel: '类型', + id: 'type', + name: 'type', + valueField: 'value', + displayField: 'value', + store: typeStore, + value: recallRange_same_sterilizingNumber, + forceSelection: true, + mode: 'local', + triggerAction: 'all', + value: recallType_tousse, + editable: false, + anchor: '95%' + }] + }, { + columnWidth: .5, + layout: 'form', + labelWidth: 70, + items: [{ + xtype: 'combo', + fieldLabel: '召回范围', + id: 'recallRange', + name: 'recallRange', + valueField: 'value', + displayField: 'value', + store: recallTypeStore, + forceSelection: true, + mode: 'local', + value: recallRange_same_sterilizingNumber, + triggerAction: 'all', + editable: false, + anchor: '95%', + listeners: { + select: function (combo, record, index) { + if (record.data.value == '截至上次生物监测成功前的炉次') { + showExtDom(['queryDate', 'frequency']) + hideExtDom(['startDate', 'sterilizingFrequency_start', 'endDate', 'sterilizingFrequency_end']) + } else { + hideExtDom(['queryDate', 'frequency']) + showExtDom(['startDate', 'sterilizingFrequency_start', 'endDate', 'sterilizingFrequency_end']) + } + } + } + }] + }, { + columnWidth: 1, + layout: 'form', + labelWidth: 70, + id: 'labelTextBox', + items: [{ + xtype: 'textfield', + id: 'labelText', + labelSeparator: '', + readOnly: true, + cls: 'fieldReadOnlyNoRemove', + value: '上一次生物监测成功的炉次:', + anchor: '95%' + }] + }, { + columnWidth: 1, + layout: 'form', + labelWidth: 70, + items: [{ + xtype: 'textarea', + height: 45, + fieldLabel: '召回原因', + id: 'recallExecuse', + name: 'recallExecuse', + allowBlank: true, + anchor: '98%' + }] + }] + }, { + layout: 'fit', + items: [recallTousseColumnTree] + }], + buttons: [{ + id: 'searchTousses', + text: '搜索器械包', + hidden: id !== '', + handler: searchTousses + }, { + id: 'saveBtn', + text: '保存', + hidden: id !== '', + disabled: true,//默认初始为禁用状态 + handler: save + }, { + text: '取消', + id: 'saveAndNewBtn', + handler: cancel + }] + }); +} +function searchTousses() { + var searchBtn = this; + if (!formObj.form.isValid()) { + showResult('请正确填写表单各值'); + searchBtn.enable(); + return false; + } + loadDataForTree(); + isNeedClickSearch = false; +} + +function cancel() { + if (top.Ext.getCmp('recallRecordWin')) { + top.Ext.getCmp('recallRecordWin').close(); + } +} + +function save() { + if (isNeedClickSearch) { + showResult('日期已经改变,请重新搜索器械包'); + return false; + } + var saveBtn = this; + saveBtn.disable(); + if (!formObj.form.isValid()) { + showResult('请正确填写表单各值'); + saveBtn.enable(); + return false; + } + var treeData = getTreeData(); + if (treeData.length == 0) { + showResult("请先选择要召回的包"); + saveBtn.enable(); + return false; + } + var params = {}; + if (sterilizerName !== '') { + params = { + sterilizerName: sterilizerName + } + } + Ext.getCmp('treeInfo').setValue(treeData); + //SZSLGZXYY-28:弹窗二次提醒用户这次保存的记录中没有符合条件的待召回物品 + if (showConfirmWin) { + Ext.MessageBox.confirm("请确认", "搜索范围内没有符合待召回的物品,仅保存本次搜索的结果,是否继续?", function (button, text) { + if ("yes" == button) { + formObj.form.submit({ + url: WWWROOT + '/disinfectSystem/recallRecordAction!saveRecallRecord.do', + method: 'POST', + waitMsg: '正在保存数据,请稍候', + waitTitle: '提交表单', + params: params, + success: function (form, action) { + showResult(action.result.msg); + if (action.result.msg == '保存成功') { + cancel(); + grid.dwrReload(); + } else { + saveBtn.enable(); + } + } + }); + } + }); + } else { + formObj.form.submit({ + url: WWWROOT + '/disinfectSystem/recallRecordAction!saveRecallRecord.do', + method: 'POST', + waitMsg: '正在保存数据,请稍候', + waitTitle: '提交表单', + params: params, + success: function (form, action) { + showResult(action.result.msg); + if (action.result.msg == '保存成功') { + cancel(); + grid.dwrReload(); + } else { + saveBtn.enable(); + } + } + }); + } +} + +//显示节点 +function showExtDom(domIds) { + for (var i = 0; i < domIds.length; i++) { + var id = domIds[i]; + if (Ext.getCmp(id + 'Box')) { + Ext.getCmp(id).allowBlank = false; + Ext.getCmp(id + 'Box').show(); + } + } + Ext.getCmp('recallRecordForm').doLayout(); +} + +//隐藏节点 +function hideExtDom(domIds) { + for (var i = 0; i < domIds.length; i++) { + var id = domIds[i]; + if (Ext.getCmp(id + 'Box')) { + Ext.getCmp(id).allowBlank = true; + Ext.getCmp(id + 'Box').hide(); + } + } + Ext.getCmp('recallRecordForm').doLayout(); +} + +function loadDataForTree() { + Ext.getCmp("recallRecordForm").getEl().mask("数据加载中,请稍等!");//只在指定的dom元素节点中显示加载信息 + var sterilizerName = Ext.getCmp('sterilizerName').getValue(); + var startDate = Ext.getCmp('startDate').getRawValue(); + var endDate = Ext.getCmp('endDate').getRawValue(); + var sterilizingFrequency_start = Ext.getCmp('sterilizingFrequency_start').getValue(); + var sterilizingFrequency_end = Ext.getCmp('sterilizingFrequency_end').getValue(); + var recallRange = Ext.getCmp('recallRange').getValue(); + var baseParams = {}; + if (recallRange == '截至上次生物监测成功前的炉次') { + var queryDate = Ext.getCmp('queryDate').getRawValue(); + var frequency = Ext.getCmp('frequency').getRawValue(); + + baseParams = { + sterilizerName: sterilizerName, + recallScope: recallRange, + ymd: queryDate, + sterilizingFrequency: frequency + } + Ext.Ajax.request({ + url: WWWROOT + '/disinfectSystem/recallRecordAction!querySterilizationRecordsOfLastSuccessfulBiologicalMonitoring.do', + params: { + sterilizerName: sterilizerName, + ymd: queryDate, + sterilizingFrequency: frequency + }, + success: function (response) { + var result = Ext.decode(response.responseText); // 解析JSON + if (!result.success) { + showResult(result.message); + hideExtDom(['labelText']) + } else { + Ext.getCmp('lastSuccessfulbmStRecordYmd').setValue(result.data.lastSuccessfulbmStRecordYmd); + Ext.getCmp('lastSuccessfulbmStRecordF').setValue(result.data.lastSuccessfulbmStRecordF); + Ext.getCmp('lastSuccessfulbmStRecordId').setValue(result.data.lastSuccessfulbmStRecordId); + Ext.getCmp('labelText').setValue('上一次生物监测成功的炉次:' + result.data.lastSuccessfulbmStRecordYmd + ' 炉次 ' + result.data.lastSuccessfulbmStRecordF) + showExtDom(['labelText']) + } + } + }); + } else { + baseParams = { + sterilizerName: sterilizerName, + startDate: startDate + " 00:00:00", + endDate: endDate, + sterilizingFrequency_start: sterilizingFrequency_start, + sterilizingFrequency_end: sterilizingFrequency_end, + } + } + + recallTousseColumnTree.loader.on('beforeload', function () { + recallTousseColumnTree.loader.baseParams = baseParams; + }); + + //为确保数据同步,必须在回调函数中处理 + recallTousseColumnTree.loader.load(recallTousseColumnTree.root, function () { + Ext.getCmp("recallRecordForm").getEl().unmask();//只在指定的dom元素节点中显示加载信息 + //如果搜索结果数据不为空,则将保存按钮启用,否则禁用 + if (recallTousseColumnTree && recallTousseColumnTree.root && recallTousseColumnTree.root.childNodes.length > 0) { + Ext.getCmp('saveBtn').enable(); + Ext.getCmp('btnExport').enable(); + } else { + Ext.getCmp('saveBtn').disable(); + Ext.getCmp('btnExport').disable(); + } + }); + +} + +function getTreeData() { + var temp = []; + var treeRoot = recallTousseColumnTree.root; + if (treeRoot.childNodes.length != 0) { + treeRoot.eachChild(function (pNode) { + var result = {}; + var attr = pNode.attributes; + //代码优化,对于科室为空的包实例(即已灭菌未发货的包),不设置其科室相关的属性 + if (attr.departCode) { + result.departCode = attr.departCode; + result.departName = attr.departName; + } + result.objAmount = attr.objAmount; + result.children = []; + if (attr.children.length != 0) { + for (var i = 0; i < attr.children.length; i++) { + var cNode = attr.children[i]; + result.children.push({ + tousseName: cNode.departName, + tousseAmount: cNode.objAmount, + tousseIds: cNode.tousseIds + }); + //SZSLGZXYY-28:弹窗二次提醒用户这次保存的记录中没有符合条件的待召回物品 + if (cNode.children && cNode.children.length > 0) { + for (var k = 0; k < cNode.children.length; k++) { + if (cNode.children[k].status == '已灭菌' || cNode.children[k].status == '已发货' || cNode.children[k].status == '已签收') { + showConfirmWin = false; + } + } + } + } + temp.push(result); + } + }); + } else { + showResult("请选择要召回的器械包"); + return; + } + return Ext.encode(temp); +} + +/** + * 获取待召回的器械包条码 + * @returns + */ +function getWaitRecallBarcodes() { + var barcodeArray = []; + var treeRoot = recallTousseColumnTree.root; + if (treeRoot.childNodes.length != 0) { + treeRoot.eachChild(function (pNode) { + //pNode对象还是科室这一层 + if (pNode.attributes.children.length != 0) { + for (var i = 0; i < pNode.attributes.children.length; i++) { + //tousseNode是器械包名称这一层 + var tousseNode = pNode.attributes.children[i]; + for (var j = 0; j < tousseNode.children.length; j++) { + //barcodeNode是器械包条码这一层 + var barcodeNode = tousseNode.children[j]; + var barcode = barcodeNode.departName; + barcodeArray.push(barcode); + } + } + } + }); + } else { + showResult("请选择要召回的器械包"); + return; + } + return barcodeArray.join(","); +} + +//FSEYEQ-40:灭菌打开初始值 +function initValue(record) { + var sterilizerName = record.data['sterilizer.name']; + var queryDate = record.data['startDate']; + var frequency = record.data['frequency']; + Ext.getCmp('sterilizerName').setValue(sterilizerName); + Ext.getCmp('sterilizerName').disable() + Ext.getCmp('recallRange').setValue('截至上次生物监测成功前的炉次'); + var combo = Ext.getCmp("recallRange"); + // 触发选中事件 + combo.fireEvent('select', combo, recallTypeStore.getAt(1)); + Ext.getCmp('queryDate').setRawValue(queryDate.split(' ')[0]); + Ext.getCmp('frequency').setRawValue(frequency); +} + +Ext.onReady(function () { + var recallTypeData = [['同一炉次']]; + if (sstsConfig.recallScopeMode) { + var recallScopeMode = sstsConfig.recallScopeMode || []; + if (recallScopeMode.indexOf(1) >= 0) { + recallTypeData = [['同一炉次'], ['截至上次生物监测成功前的炉次']]; + } + } + recallTypeStore = new Ext.data.SimpleStore({ + fields: ['value'], + data: recallTypeData + }); + addAndEditRecallRecord(id); + + setTimeout(function () { + if (id !== '') { + loadRecallRecord(id); + } else { + if (sterilizerName == '') { + setStartDate(Ext, 'yyyy/MM/dd', 'startDate'); //(开始时间,取服务器时间 cjr) + setStartDate(Ext, 'yyyy/MM/dd', 'endDate'); //(截止时间,取服务器时间 cjr) + hideExtDom(['queryDate', 'frequency', 'labelText']) + } + } + }, 100); +}); \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/recallRecord/recallRecordView.js =================================================================== diff -u -r37816 -r41305 --- ssts-web/src/main/webapp/disinfectsystem/recallRecord/recallRecordView.js (.../recallRecordView.js) (revision 37816) +++ ssts-web/src/main/webapp/disinfectsystem/recallRecord/recallRecordView.js (.../recallRecordView.js) (revision 41305) @@ -1,21 +1,5 @@ var entityName = "召回记录"; var grid; -var formObj; -var recallRecordWin; -var recallTousseColumnTree; -var recallTousseColumnTreeColumn = [330, 100, 70, 90, 130, 130, 120]; -var showConfirmWin = true; -//是否需要再次点击搜索器械包 -var isNeedClickSearch = false; -var RecallRecordItemRecord = Ext.data.Record.create([ - { name: 'departName', type: 'string' }, - { name: 'amount', type: 'long' }, - { name: 'instances', type: 'string' } -]); -var sterilizerJsonStore = new Ext.data.SimpleStore({ - fields: ['sterilizerName'], - url: WWWROOT + '/disinfectSystem/baseData/sterilizerAction!getAllSterilizer.do' -}); function formatDate(v, p, record) { try { @@ -25,516 +9,18 @@ } } -function loadDataForTree() { - top.Ext.getCmp("recallRecordForm").getEl().mask("数据加载中,请稍等!");//只在指定的dom元素节点中显示加载信息 - var sterilizerName = top.Ext.getCmp('sterilizerName').getValue(); - var startDate = top.Ext.getCmp('startDate').getRawValue(); - var endDate = top.Ext.getCmp('endDate').getRawValue(); - var sterilizingFrequency_start = top.Ext.getCmp('sterilizingFrequency_start').getValue(); - var sterilizingFrequency_end = top.Ext.getCmp('sterilizingFrequency_end').getValue(); - recallTousseColumnTree.loader.on('beforeload', function () { - recallTousseColumnTree.loader.baseParams.sterilizerName = sterilizerName; - recallTousseColumnTree.loader.baseParams.startDate = startDate + " 00:00:00"; - recallTousseColumnTree.loader.baseParams.endDate = endDate; - recallTousseColumnTree.loader.baseParams.sterilizingFrequency_start = sterilizingFrequency_start; - recallTousseColumnTree.loader.baseParams.sterilizingFrequency_end = sterilizingFrequency_end; - }); - - //为确保数据同步,必须在回调函数中处理 - recallTousseColumnTree.loader.load(recallTousseColumnTree.root, function () { - top.Ext.getCmp("recallRecordForm").getEl().unmask();//只在指定的dom元素节点中显示加载信息 - //如果搜索结果数据不为空,则将保存按钮启用,否则禁用 - if (recallTousseColumnTree && recallTousseColumnTree.root && recallTousseColumnTree.root.childNodes.length > 0) { - top.Ext.getCmp('saveBtn').enable(); - top.Ext.getCmp('btnExport').enable(); - } else { - top.Ext.getCmp('saveBtn').disable(); - top.Ext.getCmp('btnExport').disable(); - } - }); - -} - -function getTreeData() { - var temp = []; - var treeRoot = recallTousseColumnTree.root; - if (treeRoot.childNodes.length != 0) { - treeRoot.eachChild(function (pNode) { - var result = {}; - var attr = pNode.attributes; - //代码优化,对于科室为空的包实例(即已灭菌未发货的包),不设置其科室相关的属性 - if (attr.departCode) { - result.departCode = attr.departCode; - result.departName = attr.departName; - } - result.objAmount = attr.objAmount; - result.children = []; - if (attr.children.length != 0) { - for (var i = 0; i < attr.children.length; i++) { - var cNode = attr.children[i]; - result.children.push({ - tousseName: cNode.departName, - tousseAmount: cNode.objAmount, - tousseIds: cNode.tousseIds - }); - //SZSLGZXYY-28:弹窗二次提醒用户这次保存的记录中没有符合条件的待召回物品 - if(cNode.children && cNode.children.length > 0){ - for(var k=0;k