Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/departmentgroup/service/DepartmentGroupManager.java =================================================================== diff -u -r15173 -r16517 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/departmentgroup/service/DepartmentGroupManager.java (.../DepartmentGroupManager.java) (revision 15173) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/departmentgroup/service/DepartmentGroupManager.java (.../DepartmentGroupManager.java) (revision 16517) @@ -1,6 +1,7 @@ package com.forgon.disinfectsystem.basedatamanager.departmentgroup.service; import java.util.List; +import java.util.Map; import com.forgon.disinfectsystem.entity.recycledepartmentgroup.DepartmentGroup; import com.forgon.tools.hibernate.BasePoManager; @@ -22,4 +23,9 @@ */ public List getPrepareRecycleGroup(); + /** + * 查询按科室分组下拉选项框 + * @return + */ + List> loadDeptGroup(); } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/departmentgroup/service/DepartmentGroupManagerImpl.java =================================================================== diff -u -r15173 -r16517 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/departmentgroup/service/DepartmentGroupManagerImpl.java (.../DepartmentGroupManagerImpl.java) (revision 15173) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/departmentgroup/service/DepartmentGroupManagerImpl.java (.../DepartmentGroupManagerImpl.java) (revision 16517) @@ -1,13 +1,16 @@ package com.forgon.disinfectsystem.basedatamanager.departmentgroup.service; +import java.util.LinkedList; import java.util.List; +import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import com.forgon.disinfectsystem.entity.recycledepartmentgroup.DepartmentGroup; import com.forgon.tools.hibernate.BasePoManagerImpl; import com.forgon.tools.hibernate.ObjectDao; +import org.apache.commons.collections.map.HashedMap; public class DepartmentGroupManagerImpl extends BasePoManagerImpl implements DepartmentGroupManager { public DepartmentGroupManagerImpl() { @@ -41,4 +44,35 @@ return getGroup(PREPARE_RECYCLE_TYPE_RECYCLE); } + @Override + public List> loadDeptGroup() { + return this.buildGroupRe(this.getAllGroups()); + } + + /** + * 构造按照科室分组列表 + * @param groups 科室分组的结果集 + * @return + */ + private List> buildGroupRe(List groups){ + List> groupList = new LinkedList<>(); + groupList.add(this.createSelect("all", "全部")); + for (DepartmentGroup group : groups) { + groupList.add(this.createSelect(group.getDepartCodes(), group.getName())); + } + return groupList; + } + + /** + * 创建下拉框的key和value + * + * @return + */ + private Map createSelect(String key, String val) { + Map map = new HashedMap(); + map.put("departCodes", key); + map.put("name", val); + return map; + } + } Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.jsp =================================================================== diff -u -r16186 -r16517 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.jsp (.../goodsApplicationView.jsp) (revision 16186) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.jsp (.../goodsApplicationView.jsp) (revision 16517) @@ -150,6 +150,7 @@ + Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/dwr/table/RecyclingApplicationTableManager.java =================================================================== diff -u -r16319 -r16517 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/dwr/table/RecyclingApplicationTableManager.java (.../RecyclingApplicationTableManager.java) (revision 16319) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/dwr/table/RecyclingApplicationTableManager.java (.../RecyclingApplicationTableManager.java) (revision 16517) @@ -16,6 +16,7 @@ import java.util.List; import java.util.Map; +import com.forgon.Constants; import com.forgon.directory.service.OrgUnitManager; import com.forgon.disinfectsystem.recyclingapplication.service.InvoicePlanManager; import com.forgon.results.handler.LendGoodsBriefHandler; @@ -262,16 +263,26 @@ //对应最上面的where sqlBuilder.append(")"); - //根据开始时间和结束时间来查询 - String startTime = sqlWhereParamMap.get("startTime"); - String endTime = sqlWhereParamMap.get("endTime"); - String timeSearchFmt = sqlWhereParamMap.get("timeSearchFmt"); - if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime) && StringUtils.isNotBlank(timeSearchFmt)){ - this.createTimeFilterSql(sqlBuilder,startTime,endTime,timeSearchFmt); - } + this.createTimeFilterSql(sqlWhereParamMap, sqlBuilder); + this.createStatusFilterSql(sqlWhereParamMap, sqlBuilder); + this.createDeptGroupFilterSql(sqlWhereParamMap, sqlBuilder); - //查看申请单时过滤未完成或者已完成状态 - String status = sqlWhereParamMap.get("status"); + String sql = sqlBuilder.toString(); + logger.debug(sql); + return gridManager.renderGrid(parameterMap, + InvoicePlan.class.getSimpleName(), sql, new String[] { + "applicationItems", "returnedTousseItems", "invoice", + "recyclingRecord", + "recyclingApplications", "parent" }); + } + + /** + * 查看申请单时过滤未完成或者已完成状态 + * @param sqlBuilder 原来的sql + * @param sqlWhereParamMap 页面的参数 + */ + public void createStatusFilterSql(Map sqlWhereParamMap, StringBuilder sqlBuilder) { + String status = sqlWhereParamMap.get("status"); if (StringUtils.isNotBlank(status)){ // if (StringUtils.isNotEmpty(status) && "todoList".equals(listType)){ if ("unFinish".equals(status)){ @@ -281,38 +292,52 @@ this.createFinishFilterSql(sqlBuilder); } } + } - String sql = sqlBuilder.toString(); - return gridManager.renderGrid(parameterMap, - InvoicePlan.class.getSimpleName(), sql, new String[] { - "applicationItems", "returnedTousseItems", "invoice", - "recyclingRecord", - "recyclingApplications", "parent" }); + /** + * 按科室分组过滤 + * @param sqlBuilder 原来的sql + * @param sqlWhereParamMap 页面的参数 + */ + private void createDeptGroupFilterSql(Map sqlWhereParamMap, StringBuilder sqlBuilder){ + String departCodes = sqlWhereParamMap.get("departCodes"); + if (StringUtils.isNotBlank(departCodes)) { + if (!"all".equals(departCodes)){ + String[] splits = departCodes.split(Constants.IDS_SEPARATOR); + String departCodesSql = SqlBuilder.createStatus("departCoding", splits); + sqlBuilder.append(String.format("AND (%s)", departCodesSql)); + } + } } - /** - * 创建根据选择的时间条件过滤 - * @param sqlBuilder 原来的sql - * @param startTime 开始时间 - * @param endTime 结束时间 - * @param timeSearchFmt 时间查询的格式(config.js的timeSearchFmt) - */ - private void createTimeFilterSql(StringBuilder sqlBuilder,String startTime,String endTime, String timeSearchFmt){ - String start; - String end; - //精确到年月日 - if (timeSearchFmt.indexOf("H") == -1){ - start = dateQueryAdapter.dateAdapter(DateUtils.truncate(new Date(Long.parseLong(startTime)), Calendar.DAY_OF_MONTH)); - //因为要小于结束时间,所以加1天 - Date dt = DateUtils.addDays(new Date(Long.parseLong(endTime)), 1); - end = dateQueryAdapter.dateAdapter(DateUtils.truncate(dt, Calendar.DAY_OF_MONTH)); + + /** + * 创建根据选择的时间条件过滤 + * @param sqlWhereParamMap 页面的参数 + * @param sqlBuilder 原来的sql + */ + private void createTimeFilterSql(Map sqlWhereParamMap, StringBuilder sqlBuilder){ + //根据开始时间和结束时间来查询 + String startTime = sqlWhereParamMap.get("startTime"); + String endTime = sqlWhereParamMap.get("endTime"); + String timeSearchFmt = sqlWhereParamMap.get("timeSearchFmt"); + if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime) && StringUtils.isNotBlank(timeSearchFmt)){ + String start; + String end; + //精确到年月日 + if (timeSearchFmt.indexOf("H") == -1){ + start = dateQueryAdapter.dateAdapter(DateUtils.truncate(new Date(Long.parseLong(startTime)), Calendar.DAY_OF_MONTH)); + //因为要小于结束时间,所以加1天 + Date dt = DateUtils.addDays(new Date(Long.parseLong(endTime)), 1); + end = dateQueryAdapter.dateAdapter(DateUtils.truncate(dt, Calendar.DAY_OF_MONTH)); + } + //至少精确到小时 + else { + start = dateQueryAdapter.dateAdapter(new java.sql.Date(Long.parseLong(startTime))); + end = dateQueryAdapter.dateAdapter(new java.sql.Date(Long.parseLong(endTime))); + } + sqlBuilder.append(String.format(" AND (po.submitTime >= %s and po.submitTime < %s OR po.recyclingTime >= %s and po.recyclingTime < %s) ",start, end, start, end)); } - //至少精确到小时 - else { - start = dateQueryAdapter.dateAdapter(new java.sql.Date(Long.parseLong(startTime))); - end = dateQueryAdapter.dateAdapter(new java.sql.Date(Long.parseLong(endTime))); - } - sqlBuilder.append(String.format(" AND (po.submitTime >= %s and po.submitTime < %s OR po.recyclingTime >= %s and po.recyclingTime < %s) ",start, end, start, end)); } Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsTemplateApplicationView.js =================================================================== diff -u -r16319 -r16517 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsTemplateApplicationView.js (.../goodsTemplateApplicationView.js) (revision 16319) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsTemplateApplicationView.js (.../goodsTemplateApplicationView.js) (revision 16517) @@ -1756,7 +1756,8 @@ top.Ext4.define('applicationTreeGrid', { extend: 'top.Ext4.tree.Panel', xtype: 'tree-grid', - height: windowHeight - 200 , // 高度为窗口高度减去基础信息的高度 + height: top.screen.width <= 1280 ? windowHeight * 0.60 : windowHeight - 200, + // height: windowHeight - 200 , // 高度为窗口高度减去基础信息的高度 width: 498, useArrows: true, rootVisible: false, @@ -3321,8 +3322,319 @@ }); } +/** + * 设置自定义过滤条件,用于状态筛选筛选, + * @param field 对应的参数key + */ +function reloadFilterPara(field) { + var parm_s_status = document.getElementById('parm_s_status'); + if (field == 'all'){ + parm_s_status.value = ''; + } + else if (field == 'unFinish' ){ + parm_s_status.value = 'unFinish'; + } + else if (field == 'finish'){ + parm_s_status.value = 'finish'; + } + // grid.getStore().reload(); + grid.dwrReload(); +} +/** + * 根据传过来的值来重新加载grid的dwr数据 + * @param fieldValue 传过来的值 + * @param domId dom节点的id + */ +function reloadConditionPara(fieldValue, domId) { + var dom = document.getElementById(domId); + dom.value = fieldValue; + grid.dwrReload(); +} +/** + * 设置隐藏域里的时间筛选过滤 + * @param val 要设定的值 + */ +function reloadHiddenField(val) { + var submitTime = document.getElementById('parm_s_showSubmitTime'); + submitTime.value = val; + grid.dwrReload(); +} + +function reloadTimeField(){ + var startDate = Ext.getCmp("startDate").getValue(); + var endDate = Ext.getCmp("endDate").getValue(); + if (isUndefinedOrNullOrEmpty(startDate) || isUndefinedOrNullOrEmpty(endDate)){ + Ext.Msg.alert('警告', '日期不能为空!'); + return; + } + var value1 = Date.parse(startDate); + var value2 = Date.parse(endDate); + if (value1 > value2) { + Ext.Msg.alert('警告', '开始日期不能大于结束日期!'); + return; + } + document.getElementById('parm_s_startTime').value = value1; + document.getElementById('parm_s_endTime').value = value2; + document.getElementById('parm_s_timeSearchFmt').value = sstsConfig.timeSearchFmt; + grid.dwrReload(); +} + +/** + * 创建搜索的工具栏 + * @param searchComboConfig + * @returns {[*,*,*,*,*,*,*,string,*]} + */ +function createSearchTbar(searchComboConfig) { + var tbar2 = [ + {hidden: sstsConfig.recyclingApplicationVersion != 2, text: '状态筛选:'}, + searchComboConfig.quickScreenCombo, + {hidden: !sstsConfig.showTimeSearch, text: '开始日期:'}, + { + xtype: sstsConfig.timeSearchFmt ? 'datefieldWithMin' : 'datefield', + fieldLabel: '开始日期', + hidden: !sstsConfig.showTimeSearch, + name: 'startDate', + format: sstsConfig.timeSearchFmt || 'Y-m-d', + name: 'startDate', + id: 'startDate', + readOnly: false, + editable: false, + width: sstsConfig.timeSearchFmt ? 130 : 100 + }, + {hidden: !sstsConfig.showTimeSearch, text: '结束日期:'}, + { + xtype: sstsConfig.timeSearchFmt ? 'datefieldWithMin' : 'datefield', + fieldLabel: '结束日期', + hidden: !sstsConfig.showTimeSearch, + name: 'endDate', + id: 'endDate', + readOnly: false, + 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', + format: sstsConfig.timeSearchFmt || 'Y-m-d', + width: sstsConfig.timeSearchFmt ? 130 : 100 + }, + {hidden: !sstsConfig.isShowDeptGroup, text: '按科室分组过滤:'}, + searchComboConfig.departmentGroupCombo, + { + hidden: !sstsConfig.showTimeSearch, + xtype: 'button', + text: '查询', + // iconCls : 'btn_ext_application_search', + iconCls: 'icon_search', + handler: reloadTimeField + }, + '->', + { + //加->表示往右居中 + text: '全部申请单', + hidden: true, + iconCls: 'btn_ext_add_tousse', + handler: function () { + //调用父级窗口的添加tab方法 + top.addTabJquery('showAllApplicationForm', '全部申请单', top.DisinfectsystemTreeData[0].children[0].href); + // window.parent.addTabJquery(id,title,href); + } + } + ]; + return tbar2; +} + +function createOperationTbar(isSupplyRoomUser) { + return [ + { + text: '借物', + iconCls: 'btn_ext_add_tousse', + hidden: SSTS_borrow_Create || (sstsConfig.recyclingApplicationVersion == 2 && !isSupplyRoomUser), + handler: function () { + addAndEditTousseLease(''); + } + }, { + text: '删除', + iconCls: 'btn_ext_application_del', + hidden: SSTS_RecycApplication_Delete, + handler: function () { + deleteRecyclingApplication(grid); + } + }, { + text: '终止', + iconCls: 'btn_ext_pause', + id: 'endBtn', + hidden: SSTS_Invoice_End, + handler: function () { + terminateInvoicePlan(grid); + } + }, { + type: 'button', + text: '打印' + invoicePlanPrintButtonName, + iconCls: 'icon_print', + hidden: SSTS_PrintApplicationGoods, + menu: new Ext.menu.Menu({ + items: [ + {text: '批量打印' + invoicePlanPrintButtonName, hidden: !isSupplyRoomUser, handler: bathPrint}, + { + text: '打印一次性物品', handler: function () { + var ids = getSelectedIds(); + if (ids != null && ids != false) { + top.Ext.MessageBox.confirm("请确认", "要打印所选的申请单的一次性物品吗?", + function (btn) { + if (btn == 'yes') { + //通过json stringify和parse克隆js对象 + var config = JSON.parse(JSON.stringify(printConfig.invoicePlan)); + config.isPrintTousse = false; + config.isPrintDisinfectGoods = false; + config.isPrintDressing = false; + config.isPrintDisposableGoods = true; + config.isMergePrintTousseAndDisposable = false; + config.printApplyInfo = false; + var printParams = getPrintJsonParams("print", ids, config); + if (isUndefinedOrNullOrEmpty(printConfig.invoicePlan_disposableGoods)) { + formTypeOfPrinted = "invoicePlan"; + } else { + formTypeOfPrinted = "invoicePlan_disposableGoods"; + } + + printApplyGoods(printParams, 0, SSTS_PrintApplicationGoods, null); + } + }); + } + } + }, + { + text: '打印器械包及消毒物品', handler: function () { + var ids = getSelectedIds(); + if (ids != null && ids != false) { + top.Ext.MessageBox.confirm("请确认", "要打印所选申请单的器械包及消毒物品吗?", + function (btn) { + if (btn == 'yes') { + //通过json stringify和parse克隆js对象 + var config = JSON.parse(JSON.stringify(printConfig.invoicePlan)); + config.isPrintTousse = true; + config.isPrintDisinfectGoods = true; + config.isPrintDressing = true; + config.isPrintDisposableGoods = false; + config.printApplyInfo = false; + + var printParams = getPrintJsonParams("print", ids, config); + formTypeOfPrinted = "invoicePlan"; + printApplyGoods(printParams, 0, SSTS_PrintApplicationGoods, null); + } + }); + } + } + }, { + text: '打印全部物品', handler: function () { + var ids = getSelectedIds(); + if (ids != null && ids != false) { + top.Ext.MessageBox.confirm("请确认", "要打印所选申请单的全部物品吗?", + function (btn) { + if (btn == 'yes') { + //通过json stringify和parse克隆js对象 + var config = JSON.parse(JSON.stringify(printConfig.invoicePlan)); + config.isPrintTousse = true; + config.isPrintDisinfectGoods = true; + config.isPrintDressing = true; + config.isPrintDisposableGoods = true; + config.printApplyInfo = false; + + var printParams = getPrintJsonParams("print", ids, config); + formTypeOfPrinted = "invoicePlan"; + printApplyGoods(printParams, 0, SSTS_PrintApplicationGoods, null); + } + }); + } + } + }, { + text: '器械包分组打印', hidden: !sstsConfig.enableInvoicePlanTousseGroupPrint, handler: function () { + var ids = getSelectedIds(); + if (ids == false) { + return; + } + var selectResult = showSelectTousseGroup(); + if (selectResult == null && selectResult == undefined) { + return; + } + var tousseGroupIds = selectResult; + if (tousseGroupIds == '' || tousseGroupIds == null) { + showResult('请选择器械包分组!'); + return; + } + if (ids != null && ids != false) { + top.Ext.MessageBox.confirm("请确认", "要打印所选申请单的物品吗?", + function (btn) { + if (btn == 'yes') { + //通过json stringify和parse克隆js对象 + var config = JSON.parse(JSON.stringify(printConfig.invoicePlan)); + config.isPrintTousse = true; + config.isPrintDisinfectGoods = true; + config.isPrintDressing = true; + config.isPrintDisposableGoods = false; + config.printApplyInfo = false; + config.tousseGroupIds = tousseGroupIds; + + var printParams = getPrintJsonParams("tousseGroupPrint", ids, config); + formTypeOfPrinted = "invoicePlan"; + printApplyGoods(printParams, 0, SSTS_PrintApplicationGoods, null); + } + }); + } + } + }] + }) + }, { + text: '设为已打印', + iconCls: 'btn_ext_application_edit', + hidden: SSTS_PrintApplicationGoods, + handler: function () { + updatePrintState(grid); + } + } + ]; +} + +/** + * 创建按科室分组下拉选项 + * @returns + */ +function createDeptGroupCombo() { + var deptGroupStore = new Ext.data.Store({ + proxy: new Ext.data.HttpProxy({ + url: WWWROOT + '/disinfectSystem/baseData/departmentGroupAction!loadDeptGroup.do', + method: 'POST' + }), + reader: new Ext.data.JsonReader({ + root: 'data', + totalProperty: 'totalCount' + }, [ + {name: 'departCodes', mapping: 'departCodes'}, + {name: 'name', mapping: 'name'} + ] + ) + }); + + var departmentGroupCombo = { + xtype: 'combo', + fieldLabel: '状态筛选', + store: deptGroupStore, + width: 200, + triggerAction: 'all', + displayField: 'name', + valueField: 'departCodes', + forceSelection: true, + value: '全部', + editable: false, + listeners: { + select: function (combo, record, index) { + var deptGroupId = record.get('departCodes'); + reloadConditionPara(deptGroupId, 'parm_s_departCodes'); + } + } + }; + return departmentGroupCombo; +} + Ext.onReady(function() { Ext.QuickTips.init(); @@ -3453,55 +3765,6 @@ ] }); - /** - * 设置自定义过滤条件,用于状态筛选筛选, - * @param field 对应的参数key - */ - function reloadFilterPara(field) { - var parm_s_status = document.getElementById('parm_s_status'); - if (field == 'all'){ - parm_s_status.value = ''; - } - else if (field == 'unFinish' ){ - parm_s_status.value = 'unFinish'; - } - else if (field == 'finish'){ - parm_s_status.value = 'finish'; - } - // grid.getStore().reload(); - grid.dwrReload(); - } - - /** - * 设置隐藏域里的时间筛选过滤 - * @param val 要设定的值 - */ - function reloadHiddenField(val) { - var submitTime = document.getElementById('parm_s_showSubmitTime'); - submitTime.value = val; - grid.dwrReload(); - } - - function reloadTimeField(){ - var startDate = Ext.getCmp("startDate").getValue(); - var endDate = Ext.getCmp("endDate").getValue(); - if (isUndefinedOrNullOrEmpty(startDate) || isUndefinedOrNullOrEmpty(endDate)){ - Ext.Msg.alert('警告', '日期不能为空!'); - return; - } - var value1 = Date.parse(startDate); - var value2 = Date.parse(endDate); - if (value1 > value2) { - Ext.Msg.alert('警告', '开始日期不能大于结束日期!'); - return; - } - document.getElementById('parm_s_startTime').value = value1; - document.getElementById('parm_s_endTime').value = value2; - document.getElementById('parm_s_timeSearchFmt').value = sstsConfig.timeSearchFmt; - grid.dwrReload(); - } - - //状态筛选combo Store var quickScreenStatus = new Ext.data.SimpleStore({ fields: ['key', 'val'], @@ -3563,8 +3826,21 @@ } }; + var departmentGroupCombo = createDeptGroupCombo(); var isSupplyRoomUser = validateIsSupplyRoomUser(); + + //搜索的tbar + var searchTbar = new Ext.Toolbar({ + items : createSearchTbar({ + quickScreenCombo : quickScreenCombo, + departmentGroupCombo : departmentGroupCombo + }) + }); + + //操作的tbar + var operationTbar = createOperationTbar(isSupplyRoomUser); + var tbar = [{ text : '申请物品', iconCls : 'btn_ext_add_tousse', @@ -3626,202 +3902,14 @@ handler : function() { addAndEditForeignProxyDisinfection(''); } - },{ - text : '借物', - iconCls : 'btn_ext_add_tousse', - hidden : SSTS_borrow_Create || (sstsConfig.recyclingApplicationVersion == 2 && !isSupplyRoomUser), - handler : function() { - addAndEditTousseLease(''); - } - }, { - text : '删除', - iconCls : 'btn_ext_application_del', - hidden : SSTS_RecycApplication_Delete, - handler : function() { - deleteRecyclingApplication(grid); - } - },{ - text : '终止', - iconCls : 'btn_ext_pause', - id : 'endBtn', - hidden : SSTS_Invoice_End, - handler : function(){ - terminateInvoicePlan(grid); - } - },{ - type : 'button', - text : '打印' + invoicePlanPrintButtonName, - iconCls : 'icon_print', - hidden:SSTS_PrintApplicationGoods, - menu: new Ext.menu.Menu({ - items: [ - {text: '批量打印' + invoicePlanPrintButtonName, hidden: !isSupplyRoomUser,handler: bathPrint}, - {text: '打印一次性物品', handler:function(){ - var ids = getSelectedIds(); - if (ids != null && ids != false){ - top.Ext.MessageBox.confirm("请确认", "要打印所选的申请单的一次性物品吗?", - function(btn) { - if (btn == 'yes') { - //通过json stringify和parse克隆js对象 - var config = JSON.parse(JSON.stringify(printConfig.invoicePlan)); - config.isPrintTousse = false; - config.isPrintDisinfectGoods = false; - config.isPrintDressing = false; - config.isPrintDisposableGoods = true; - config.isMergePrintTousseAndDisposable = false; - config.printApplyInfo = false; - var printParams = getPrintJsonParams("print", ids , config); - if(isUndefinedOrNullOrEmpty(printConfig.invoicePlan_disposableGoods)){ - formTypeOfPrinted = "invoicePlan"; - }else{ - formTypeOfPrinted = "invoicePlan_disposableGoods"; - } - - printApplyGoods(printParams,0,SSTS_PrintApplicationGoods,null); - } - }); - } - } - }, - {text: '打印器械包及消毒物品', handler: function(){ - var ids = getSelectedIds(); - if (ids != null && ids != false){ - top.Ext.MessageBox.confirm("请确认", "要打印所选申请单的器械包及消毒物品吗?", - function(btn) { - if (btn == 'yes') { - //通过json stringify和parse克隆js对象 - var config = JSON.parse(JSON.stringify(printConfig.invoicePlan)); - config.isPrintTousse = true; - config.isPrintDisinfectGoods = true; - config.isPrintDressing = true; - config.isPrintDisposableGoods = false; - config.printApplyInfo = false; - - var printParams = getPrintJsonParams("print", ids , config); - formTypeOfPrinted = "invoicePlan"; - printApplyGoods(printParams,0,SSTS_PrintApplicationGoods,null); - } - }); - } - } - },{text: '打印全部物品', handler: function(){ - var ids = getSelectedIds(); - if (ids != null && ids != false){ - top.Ext.MessageBox.confirm("请确认", "要打印所选申请单的全部物品吗?", - function(btn) { - if (btn == 'yes') { - //通过json stringify和parse克隆js对象 - var config = JSON.parse(JSON.stringify(printConfig.invoicePlan)); - config.isPrintTousse = true; - config.isPrintDisinfectGoods = true; - config.isPrintDressing = true; - config.isPrintDisposableGoods = true; - config.printApplyInfo = false; + } + ]; - var printParams = getPrintJsonParams("print", ids , config); - formTypeOfPrinted = "invoicePlan"; - printApplyGoods(printParams,0,SSTS_PrintApplicationGoods,null); - } - }); - } - } - },{ - text: '器械包分组打印', hidden:!sstsConfig.enableInvoicePlanTousseGroupPrint, handler: function(){ - var ids = getSelectedIds(); - if(ids == false){ - return; - } - var selectResult = showSelectTousseGroup(); - if(selectResult == null && selectResult == undefined){ - return; - } - var tousseGroupIds = selectResult; - if(tousseGroupIds == '' || tousseGroupIds == null){ - showResult('请选择器械包分组!'); - return; - } - if (ids != null && ids != false){ - top.Ext.MessageBox.confirm("请确认", "要打印所选申请单的物品吗?", - function(btn) { - if (btn == 'yes') { - //通过json stringify和parse克隆js对象 - var config = JSON.parse(JSON.stringify(printConfig.invoicePlan)); - config.isPrintTousse = true; - config.isPrintDisinfectGoods = true; - config.isPrintDressing = true; - config.isPrintDisposableGoods = false; - config.printApplyInfo = false; - config.tousseGroupIds = tousseGroupIds; + //如果屏幕分辨率大于1280,则tbar和operationTbar放在一行 + if (top.screen.width >= 1280){ + tbar = tbar.concat(operationTbar); + } - var printParams = getPrintJsonParams("tousseGroupPrint", ids , config); - formTypeOfPrinted = "invoicePlan"; - printApplyGoods(printParams,0,SSTS_PrintApplicationGoods,null); - } - }); - } - } - }] - }) - },{ - text : '设为已打印', - iconCls : 'btn_ext_application_edit', - hidden : SSTS_PrintApplicationGoods, - handler : function(){ - updatePrintState(grid); - } - },{ - hidden : sstsConfig.recyclingApplicationVersion != 2, - text : '状态筛选:' - }, - quickScreenCombo, - // { text : '时间筛选:'},submitTimeCombo, - { - hidden : !sstsConfig.showTimeSearch, - text : '开始日期:' - }, { - xtype : sstsConfig.timeSearchFmt ? 'datefieldWithMin' : 'datefield', - fieldLabel : '开始日期', - hidden : !sstsConfig.showTimeSearch, - name : 'startDate', - format : sstsConfig.timeSearchFmt || 'Y-m-d', - name : 'startDate', - id : 'startDate', - readOnly : false, - editable : false, - width : sstsConfig.timeSearchFmt ? 130 : 100 - }, { - hidden : !sstsConfig.showTimeSearch, - text : '结束日期:' - }, { - xtype : sstsConfig.timeSearchFmt ? 'datefieldWithMin' : 'datefield', - fieldLabel : '结束日期', - hidden : !sstsConfig.showTimeSearch, - name : 'endDate', - id : 'endDate', - readOnly : false, - 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', - format : sstsConfig.timeSearchFmt || 'Y-m-d', - width : sstsConfig.timeSearchFmt ? 130 : 100 - },{ - hidden : !sstsConfig.showTimeSearch, - xtype : 'button', - text : '查询', - // iconCls : 'btn_ext_application_search', - iconCls : 'icon_search', - handler : reloadTimeField - }, - '->',{ - //加->表示往右居中 - text : '全部申请单', - hidden: true, - iconCls : 'btn_ext_add_tousse', - handler : function(){ - //调用父级窗口的添加tab方法 - top.addTabJquery('showAllApplicationForm','全部申请单',top.DisinfectsystemTreeData[0].children[0].href); - // window.parent.addTabJquery(id,title,href); - } - }]; // 省医要求:如果是科室申领,默认申请单是未提交状态(省医才有版本2) if (recyclingApplicationVersion == 2 && listType != 'all'){ @@ -3845,7 +3933,17 @@ plugins: filters, autoExpandColumn : 'operationRemark', renderTo : 'gridDiv', - frame : false + frame : false, + listeners:{ + 'render' : function(){ + // tbar分行 + if (top.screen.width < 1280){ + new Ext.Toolbar({items: operationTbar}).render(this.tbar); + } + //搜索的工具栏另开一行 + searchTbar.render(this.tbar); + } + } }, readerDetail, RecyclingApplicationTableManager.findRecyclingApplicationTableList, Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/departmentgroup/action/DepartmentGroupAction.java =================================================================== diff -u -r15173 -r16517 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/departmentgroup/action/DepartmentGroupAction.java (.../DepartmentGroupAction.java) (revision 15173) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/departmentgroup/action/DepartmentGroupAction.java (.../DepartmentGroupAction.java) (revision 16517) @@ -1,16 +1,16 @@ package com.forgon.disinfectsystem.basedatamanager.departmentgroup.action; import java.io.IOException; -import java.sql.ResultSet; -import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletResponse; +import com.forgon.tools.util.PageUtil; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; @@ -34,6 +34,8 @@ private DepartmentGroup departmentGroup; private DepartmentGroupManager departmentGroupManager; + + protected final Logger logger = Logger.getLogger(this.getClass()); public void setDepartmentGroupManager( @@ -92,6 +94,17 @@ e.printStackTrace(); } } + + public void loadDeptGroup(){ + try { + PageUtil.outPutResult(PageUtil.getPagePara(), departmentGroupManager.loadDeptGroup()); + } + catch (Exception e) { + logger.error(e, e); + StrutsResponseUtils.output(false); + throw new RuntimeException(e); + } + } public void iniInfo() {