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