Index: ssts-web/src/main/webapp/disinfectsystem/config/cdlqyq1yy/config.js =================================================================== diff -u -r34965 -r34983 --- ssts-web/src/main/webapp/disinfectsystem/config/cdlqyq1yy/config.js (.../config.js) (revision 34965) +++ ssts-web/src/main/webapp/disinfectsystem/config/cdlqyq1yy/config.js (.../config.js) (revision 34983) @@ -134,6 +134,8 @@ displayPCDMonitoringResultsInTheSterilizationRecordInformation:true, //桌面快捷图标配置 desktopShortcutIconsConfig:['器械维修'], + //启用定期监测的提醒功能 + enableThePeriodicMonitoringRemindersFunction:true, //启用器械维修管理功能 enableInstrumentRepairManagement:true, //勾选需要装配的器械包时,是否自动在界面右下角“由下往上”弹出配包注意事项提示框,【提示框有关闭按钮】,点击关闭按钮后,配包注意事项提示框“由上往下“隐藏。 Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualityMonitoringDefinitionView.js =================================================================== diff -u -r34978 -r34983 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualityMonitoringDefinitionView.js (.../qualityMonitoringDefinitionView.js) (revision 34978) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualityMonitoringDefinitionView.js (.../qualityMonitoringDefinitionView.js) (revision 34983) @@ -627,6 +627,36 @@ fields: ["orgUnitCoding", "orgUnitName"] }) }); + var allUserItems = Ext.data.Record.create([ + { name: 'id', type: 'string' }, + { name: 'fullName', type: 'string' } + ]); + //提醒人员 + var allUserStroe = new Ext.data.Store({ + baseParams: { + motion: 'orgUnitCode', + orgUnitCode: currentOrgUnitCoding + }, + proxy: new Ext.data.HttpProxy({ + url: WWWROOT + '/systemmanage/directoryAction!findAllUser.do', + method: 'POST' + }), + reader: new Ext.data.JsonReader({ + totalProperty: 'totalCount', + root: 'data' + }, [ + { name: 'id', mapping: 'id' }, + { name: 'name', mapping: 'name' }, + { name: 'fullName', mapping: 'fullName' } + ]), + listeners: { + load: function (thiz, records, options) { + if (records.length > 0) { + allUserStroe.insert(0, new allUserItems({ 'id': 'all', 'fullName': ALL })); + } + } + } + }); var formPanel = new top.Ext.FormPanel({ id: 'formDefinitionForm', frame: true, @@ -969,9 +999,393 @@ } } }, { + columnWidth: 1, layout: 'form', + hidden: !(sstsConfig.enableThePeriodicMonitoringRemindersFunction && entityName == '定期监测'), + items: [{ + layout: 'column', + columnWidth: 1, + items: [{ + layout: 'form', + columnWidth: .5, + items: [{ + xtype: 'combo', + fieldLabel: "重复周期", + name: "cycleName", + id: "cycleName", + valueField: 'value', + displayField: 'value', + allowBlank: false, + editable: false, + store: new top.Ext.data.SimpleStore({ + fields: ['value'], + data: [['不重复'], ['按周'], ['按月']] + } + ), + value: '不重复', + forceSelection: true, + mode: 'local', + triggerAction: 'all', + anchor: '95%', + listeners: { + select: function (combo, record, index) { + var value = combo.getValue(); + if (value == '按周') { + top.Ext.getCmp('warningWeekDaysBox').show(); + top.Ext.getCmp('warningMonthDaysBox').hide(); + top.Ext.getCmp('warningMonthDays').setValue(''); + } else if (value == '按月') { + top.Ext.getCmp('warningWeekDaysBox').hide(); + top.Ext.getCmp('warningWeekDays').setValue(''); + top.Ext.getCmp('warningMonthDaysBox').show(); + } else { + top.Ext.getCmp('warningWeekDaysBox').hide(); + top.Ext.getCmp('warningMonthDaysBox').hide(); + top.Ext.getCmp('warningMonthDays').setValue(''); + top.Ext.getCmp('warningWeekDays').setValue(''); + } + } + } + }] + }, { + layout: 'form', + columnWidth: .5, + id: 'warningWeekDaysBox', + items: [{ + xtype: 'multiSelect', + fieldLabel: "提醒日期", + name: "warningWeekDays", + id: "warningWeekDays", + valueField: 'value', + displayField: 'value', + allowBlank: true, + editable: false, + store: new top.Ext.data.SimpleStore({ + fields: ['value'], + data: [['星期一'], ['星期二'], ['星期三'], ['星期四'], ['星期五'], ['星期六'], ['星期日']] + }), + value: '', + mode: 'local', + width: 213, + listWidth: 223, + triggerAction: 'all', + anchor: '95%', + listeners: { + render: function () { + setTimeout(function () { + top.Ext.getCmp('warningWeekDaysBox').hide(); + }, 200); + } + } + }] + }, { + layout: 'form', + columnWidth: .5, + id: 'warningMonthDaysBox', + items: [{ + layout: 'column', + columnWidth: 1, + items: [{ + columnWidth: .4, + layout: 'form', + items: [{ + xtype: 'textfield', + fieldLabel: "提醒日期", + readOnly: true, + value: '每个月的第', + anchor: '98%', + style: 'background: none;border: none;text-align: right;', + allowBlank: true + }] + }, { + columnWidth: .25, + layout: 'form', + items: [{ + xtype: 'numberfield', + id: 'warningMonthDays', + name: 'warningMonthDays', + hideLabel: true, + allowNegative: false, + allowDecimals: false, + minValue: 1, + maxValue: 31, + anchor: '98%', + allowBlank: true + }] + }, { + columnWidth: .25, + layout: 'form', + items: [{ + xtype: 'textfield', + hideLabel: true, + readOnly: true, + anchor: '100%', + value: '天进行提醒', + style: 'background: none;border: none;', + allowBlank: true + }] + }] + }], + listeners: { + render: function () { + setTimeout(function () { + top.Ext.getCmp('warningMonthDaysBox').hide(); + }, 200); + } + } + }] + }] + }, { columnWidth: 1, + layout: 'form', + hidden: !(sstsConfig.enableThePeriodicMonitoringRemindersFunction && entityName == '定期监测'), items: [{ + layout: 'column', + columnWidth: 1, + items: [{ + layout: 'form', + columnWidth: .5, + items: [{ + xtype: 'combo', + fieldLabel: "结束方式", + name: "endMethod", + id: "endMethod", + valueField: 'value', + displayField: 'value', + allowBlank: false, + editable: false, + store: new top.Ext.data.SimpleStore({ + fields: ['value'], + data: [['指定日期范围提醒'], ['按月次数提醒'], ['一直提醒']] + } + ), + value: '一直提醒', + forceSelection: true, + mode: 'local', + triggerAction: 'all', + anchor: '95%', + listeners: { + select: function (combo, record, index) { + var value = combo.getValue(); + if (value == '指定日期范围提醒') { + top.Ext.getCmp('warningForDate').show(); + top.Ext.getCmp('warningForFrequencyBox').hide(); + top.Ext.getCmp('warningFrequency').setValue(''); + } else if (value == '按月次数提醒') { + top.Ext.getCmp('warningForDate').hide(); + top.Ext.getCmp('warningStartDateTime').setValue(''); + top.Ext.getCmp('warningEndDateTime').setValue(''); + top.Ext.getCmp('warningForFrequencyBox').show(); + } else { + top.Ext.getCmp('warningForDate').hide(); + top.Ext.getCmp('warningForFrequencyBox').hide(); + top.Ext.getCmp('warningFrequency').setValue(''); + top.Ext.getCmp('warningStartDateTime').setValue(''); + top.Ext.getCmp('warningEndDateTime').setValue(''); + } + } + } + }] + }, { + layout: 'form', + columnWidth: .5, + id: 'warningForDate', + items: [{ + layout: 'column', + columnWidth: 1, + items: [{ + columnWidth: .5, + layout: 'form', + items: [{ + xtype: 'datefield', + fieldLabel: '日期范围', + labelAlign: 'right', + id: 'warningStartDateTime', + name: 'warningStartDateTime', + editable: false, + format: 'Y-m-d', + 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', + allowBlank: true, + anchor: '100%' + }] + }, { + columnWidth: .1, + layout: 'form', + items: [{ + xtype: 'textfield', + hideLabel: true, + value: '至', + readOnly: true, + style: 'background: none;border: none;text-align:center', + anchor: '100%' + }] + }, { + columnWidth: .3, + layout: 'form', + items: [{ + xtype: 'datefield', + hideLabel: true, + id: 'warningEndDateTime', + name: 'warningEndDateTime', + editable: false, + format: 'Y-m-d', + 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', + allowBlank: true, + anchor: '95%' + }] + }] + }], + listeners: { + render: function () { + setTimeout(function () { + top.Ext.getCmp('warningForDate').hide(); + }, 200); + } + } + }, { + layout: 'form', + columnWidth: .5, + id: 'warningForFrequencyBox', + items: [{ + layout: 'column', + columnWidth: 1, + items: [{ + columnWidth: .4, + layout: 'form', + items: [{ + xtype: 'textfield', + fieldLabel: "提醒次数", + readOnly: true, + value: '累计提醒', + anchor: '98%', + style: 'background: none;border: none;text-align: right;', + allowBlank: true + }] + }, { + columnWidth: .25, + layout: 'form', + items: [{ + xtype: 'numberfield', + id: 'warningFrequency', + name: 'warningFrequency', + hideLabel: true, + allowNegative: false, + allowDecimals: false, + anchor: '98%', + allowBlank: true + }] + }, { + columnWidth: .25, + layout: 'form', + items: [{ + xtype: 'textfield', + hideLabel: true, + readOnly: true, + anchor: '100%', + value: '次后结束', + style: 'background: none;border: none;', + allowBlank: true + }] + }] + }], + listeners: { + render: function () { + setTimeout(function () { + top.Ext.getCmp('warningForFrequencyBox').hide(); + }, 200); + } + } + }] + }] + }, { + layout: 'form', + columnWidth: 1, + hidden: !(sstsConfig.enableThePeriodicMonitoringRemindersFunction && entityName == '定期监测'), + items: [{ + layout: 'column', + columnWidth: 1, + items: [{ + layout: 'form', + columnWidth: .5, + items: [{ + xtype: 'hidden', + id: 'warningUserIds', + name: 'warningUserIds' + }, { + xtype: 'hidden', + id: 'remindAllUsers', + name: 'remindAllUsers' + }, { + xtype: 'multiSelect', + fieldLabel: '提醒人员', + id: 'warningUserNames', + name: 'warningUserNames', + width: 120, + valueField: 'id', + displayField: 'fullName', + store: allUserStroe, + editable: false, + triggerAction: 'all', + allowBlank: false, + anchor: '95%', + listeners: { + select: function (combo, record, index) { + //1、如果选中“全部”的项,则把所有的项选中,反之全部取消选择 + if (record.get('fullName') == ALL) { + if (record.get('checked')) { + combo.selectAll(); + } else { + combo.deselectAll(); + } + } + + //2、如果已经选中所有的项,则把“全部”项选中,反之把“全部”项取消选择 + var selectAll = true; + combo.store.each(function (record) { + if (record.get('fullName') != ALL && !record.get(this.checkField)) { + selectAll = false; + return; + } + }, combo); + + var all = combo.store.getAt(0); + if (selectAll) { + all.set(combo.checkField, true); + } else { + all.set(combo.checkField, false); + } + combo.setValue(combo.getCheckedValue()); + } + } + }] + }, { + layout: 'form', + columnWidth: .5, + items: [{ + xtype: 'combo', + fieldLabel: "是否单独填写", + name: "separateWrite", + id: "separateWrite", + valueField: 'value', + displayField: 'value', + allowBlank: false, + editable: false, + store: new top.Ext.data.SimpleStore({ + fields: ['value'], + data: [['是'], ['否']] + } + ), + value: '是', + mode: 'local', + triggerAction: 'all', + anchor: '95%' + }] + }] + }] + }, { + layout: 'form', + columnWidth: 1, + items: [{ xtype: 'textfield', fieldLabel: "描述", name: "description", @@ -1342,6 +1756,40 @@ top.Ext.getCmp('showSterNameAndFre_id').show(); } } + if (sstsConfig.enableThePeriodicMonitoringRemindersFunction && entityName == '定期监测') { + if (formConfig.cycleName == '按周') { + top.Ext.getCmp('warningWeekDaysBox').show(); + top.Ext.getCmp('warningWeekDays').setValue(formConfig.warningWeekDays.replace(/\s/g, "")); + top.Ext.getCmp('warningMonthDaysBox').hide(); + } else if (formConfig.cycleName == '按月') { + top.Ext.getCmp('warningWeekDaysBox').hide(); + top.Ext.getCmp('warningMonthDaysBox').show(); + top.Ext.getCmp('warningMonthDays').setValue(formConfig.warningMonthDays); + } else { + top.Ext.getCmp('warningWeekDaysBox').hide(); + top.Ext.getCmp('warningMonthDaysBox').hide(); + } + if (formConfig.endMethod == '指定日期范围提醒') { + top.Ext.getCmp('warningForDate').show(); + top.Ext.getCmp('warningStartDateTime').setValue(formConfig.warningStartDateTime); + top.Ext.getCmp('warningEndDateTime').setValue(formConfig.warningEndDateTime); + top.Ext.getCmp('warningForFrequencyBox').hide(); + } else if (formConfig.endMethod == '按月次数提醒') { + top.Ext.getCmp('warningForDate').hide(); + top.Ext.getCmp('warningForFrequencyBox').show(); + top.Ext.getCmp('warningFrequency').setValue(formConfig.warningFrequency); + } else { + top.Ext.getCmp('warningForDate').hide(); + top.Ext.getCmp('warningForFrequencyBox').hide(); + } + top.Ext.getCmp('warningUserIds').setValue(formConfig.warningUserIds); + top.Ext.getCmp('warningUserNames').setValue(formConfig.warningUserIds); + top.Ext.getCmp('warningUserNames').setRawValue(formConfig.warningUserNames); + top.Ext.getCmp('remindAllUsers').setRawValue(formConfig.remindAllUsers); + if (formConfig.remindAllUsers == '是') { + top.Ext.getCmp('warningUserNames').setRawValue('全部'); + } + } showOrHideRecordInformation(responsibilityPart); var items = formConfig.items; var store = top.Ext.getCmp('formDefinitionItemConfigPanel').getStore(); @@ -1407,6 +1855,52 @@ var jsonArray = []; var submitFaildMsg = ""; + var cycleName = top.Ext.getCmp('cycleName').getValue(); + var warningWeekDays = top.Ext.getCmp('warningWeekDays').getValue(); + var warningMonthDays = top.Ext.getCmp('warningMonthDays').getValue(); + + var endMethod = top.Ext.getCmp('endMethod').getValue(); + var warningStartDateTime = top.Ext.getCmp('warningStartDateTime').getRawValue(); + var warningEndDateTime = top.Ext.getCmp('warningEndDateTime').getRawValue(); + var warningFrequency = top.Ext.getCmp('warningFrequency').getValue(); + + var warningUserNames = top.Ext.getCmp('warningUserNames').getValue(); + var separateWrite = top.Ext.getCmp('separateWrite').getValue(); + var remindAllUsers = ''; + if (cycleName == '按周') { + if (warningWeekDays == '') { + showResult('请选择提醒日期!'); + return; + } + } else if (cycleName == '按月') { + if (warningMonthDays == '') { + showResult('请填写提醒日期!'); + return; + } + } + + if (endMethod == '指定日期范围提醒') { + if (warningStartDateTime == '' || warningEndDateTime == '') { + showResult('请选择日期范围!'); + return; + } + } else if (cycleName == '按月次数提醒') { + if (warningFrequency == '') { + showResult('请填写提醒次数!'); + return; + } + } + + if (warningUserNames.indexOf('all') >= 0) { + warningUserIds = '' + remindAllUsers = '是'; + } else { + warningUserIds = warningUserNames + } + + top.Ext.getCmp('warningUserIds').setValue(warningUserIds); + top.Ext.getCmp('remindAllUsers').setValue(remindAllUsers); + for (var i = 0; i < store.getCount(); i++) { var record = store.getAt(i); var name = record.get('name'); Index: ssts-web/src/main/webapp/homepage/portalPage.js =================================================================== diff -u -r34922 -r34983 --- ssts-web/src/main/webapp/homepage/portalPage.js (.../portalPage.js) (revision 34922) +++ ssts-web/src/main/webapp/homepage/portalPage.js (.../portalPage.js) (revision 34983) @@ -143,6 +143,8 @@ var biologicalMonitoringWarningWindow = null; var biologicalMonitoringWarningGrid = null; +var qualityMonitoringDefinitionWarningWindow = null; +var qualityMonitoringDefinitionWarningGrid = null; /** * 跳转到历史灭菌记录界面. @@ -156,6 +158,14 @@ } /** + * 跳转到定期监测界面. + */ +function goRoutineMonitoringView() { + addTab('routineMonitoringView','定期监测列表',WWWROOT+'/disinfectsystem/routineMonitoring/routineMonitoringView.jsp?editMode=true'); + qualityMonitoringDefinitionWarningWindow.hide(); +} + +/** * 开启生物监测结束后的提示功能. * @param userName * @param currentDepartCode @@ -264,6 +274,58 @@ //系统告警 initShowSystemWarningWin(); + //CDSLQYQYYY-113:定期监测提醒 + if(sstsConfig.enableThePeriodicMonitoringRemindersFunction){ + Ext4.Ajax.request({ + url : WWWROOT + '/system/systemWarningAction!getQualityMonitoringDefinitionWarning.do', + params : {userName : userName, currentDepartCode : currentDepartCode}, + success : function(response, options) { + var result = Ext4.decode(response.responseText, true); + if(result && result.data.length > 0){ + if (!qualityMonitoringDefinitionWarningWindow) { + qualityMonitoringDefinitionWarningGrid = new Ext.grid.GridPanel({ + store: new Ext.data.Store({ + data : result.data, + reader : new Ext.data.JsonReader({ + fields : ["id", "formName", "warningDays"] + }) + }), + columns: [ + {header: "名称", width: 100, dataIndex: 'formName',renderer : function(v, p, record) { + return ""+v+""; + }}, + {header: "灭菌结时间", width: 240,dataIndex: 'warningDays'} + ], + stripeRows: true, + viewConfig: { + forceFit:true + }, + height:200 + }); + + qualityMonitoringDefinitionWarningWindow = new Ext.Window({ + autoHeight:true, + title : '定期监测提醒', + width:500, + draggable:true, + modal:true, + closeAction:'hide', + items:[qualityMonitoringDefinitionWarningGrid] + }); + qualityMonitoringDefinitionWarningWindow.show(); + } else { + if (qualityMonitoringDefinitionWarningWindow.isVisible()) { //前一个窗口用户还没关闭,就追加数据 + qualityMonitoringDefinitionWarningGrid.store.loadData(result, true); + } else { //前一个窗口用户关闭了,(其实是隐藏了,下次要用时不用重新new直接show更加快速),这时就不要追加了 + qualityMonitoringDefinitionWarningGrid.store.loadData(result); + qualityMonitoringDefinitionWarningWindow.show(); + } + } + } + } + }); + } + if (sstsConfig.isShowUnReturnWarning){ showUnReturnWarning(); } Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualityMonitoringDefinitionView.jsp =================================================================== diff -u -r30265 -r34983 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualityMonitoringDefinitionView.jsp (.../qualityMonitoringDefinitionView.jsp) (revision 30265) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualityMonitoringDefinitionView.jsp (.../qualityMonitoringDefinitionView.jsp) (revision 34983) @@ -7,6 +7,7 @@ + ${param.type}配置 @@ -21,6 +22,7 @@ +