Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordTotalView.js =================================================================== diff -u -r17582 -r17612 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordTotalView.js (.../useRecordTotalView.js) (revision 17582) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordTotalView.js (.../useRecordTotalView.js) (revision 17612) @@ -2,22 +2,24 @@ var grid; var myMask; -function reloadReport(isFirstRoomPeople,orgName){ - var departSearch = ""; +function reloadReport(){ var startTime= $Id('startTime').value; var endTime = $Id('endTime').value; - //不是一级供应室 - if(!isFirstRoomPeople){ - departSearch = orgName;/*Ext.getCmp('departSearch').getValue();*///// - }else{ - departSearch = $Id('departSearch').value; - } + var departSearch = $Id('departSearch').value; + var operatorSearch = $Id('operatorSearch').value; + myMask = new Ext.LoadMask(Ext.getBody(), { msg: '正在加载,请稍候!', removeMask: true }); myMask.show(); - window.open(WWWROOT+"/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do?jasperreportName=useRecordTotalView.jasper&startDay="+startTime+"&endDay="+endTime+"&reportName=useRecordTotalView&depart="+departSearch,'thisIframe','_self'); + window.open(WWWROOT+"/jasperreports/jasperreportsAction!createReportFromJavaBeanSource.do" + + "?jasperreportName=useRecordTotalView.jasper&reportName=useRecordTotalView" + + "&startDay=" + startTime + + "&endDay=" + endTime + + "&depart=" + departSearch + + "&operator=" + operatorSearch, + 'thisIframe', '_self'); } Ext.onReady(function(){ Ext.QuickTips.init(); @@ -46,26 +48,30 @@ var startDayofMonth = dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/01"; - var readerDetail = Ext.data.Record.create([ { + var readerDetail = Ext.data.Record.create([{ name : 'id' }, { name : 'name' } ]); var userJsonStore = new Ext.data.Store({ - proxy : new Ext.data.HttpProxy({ - url : WWWROOT + '/systemmanage/user/loadUserByOrgId!loadUserByOrgId.do', - method : 'POST' - }), - reader : new Ext.data.JsonReader({ - root : 'data' - },readerDetail) + autoLoad : false, + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/systemmanage/user/loadUserByDepartmentCode!loadUserByDepartmentCode.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + root : 'data', + totalProperty : 'totalCount' + },readerDetail), + listeners : { + beforeload : function(_this, options) { + if (!isFirstRoomPeople) { + _this.baseParams.departmentCode = currentOrgCode; + } + } + } }); - //不是第一供应室的人 - if(!isFirstRoomPeople){ - userJsonStore.baseParams.departId = currentOrgCode; - userJsonStore.reload(); - } - + var form = new Ext.form.FormPanel({ title : '使用记录录入统计报表', region : 'north', @@ -84,7 +90,7 @@ labelWidth : 60, items : [{ layout:'form', - columnWidth:.2, + width:230, items:[{ xtype : 'datefieldWithMin', fieldLabel : '开始日期', @@ -114,7 +120,7 @@ }] },{ layout:'form', - columnWidth:.2, + width:230, items:[{ xtype : 'datefieldWithMin', fieldLabel : '结束日期', @@ -141,7 +147,7 @@ }] },{ layout:'form', - columnWidth:.22, + width:260, labelWidth:40, items:[{ xtype : 'combo', @@ -158,25 +164,27 @@ anchor : '95%', listWidth:200, disabled :!isFirstRoomPeople, + value : !isFirstRoomPeople ? orgName : '', triggerAction : 'all', hideTrigger : true, typeAhead : false, allowBlank : true, listeners:{ - specialkey:function(field,event){ - if(event.getKey()==Ext.EventObject.ENTER){ - userJsonStore.removeAll(); - userJsonStore.baseParams.departId = field.getValue(); - userJsonStore.reload(); - Ext.getCmp('operatorSearch').focus(); - } + select : function(thisCombo, record, index) { + userJsonStore.removeAll(); + userJsonStore.baseParams.departmentCode = record.data.id; + userJsonStore.baseParams.start = 0; + userJsonStore.reload(); + delete userJsonStore.baseParams.start; //加载之后需要删除这个属性以免影响后面请求参数 + Ext.getCmp('operatorSearch').setValue(''); + Ext.getCmp('operatorSearch').focus(); } } }] },{ layout:'form', - columnWidth:.18, - labelWidth:60, + width:150, + labelWidth:50, items:[{ xtype : 'combo', id : 'operatorSearch', @@ -187,21 +195,15 @@ valueField : 'id', displayField : 'name', store : userJsonStore, + pageSize : 50, forceSelection : true, lazyInit : true, anchor : '95%', - listWidth:150, + listWidth:300, triggerAction : 'all', hideTrigger : true, typeAhead : false, - allowBlank : true, - listeners:{ - specialkey:function(field,event){ - if(event.getKey()==Ext.EventObject.ENTER){ - reloadReport(isFirstRoomPeople,orgName,field.getRawValue()); - } - } - } + allowBlank : true }] }] }], @@ -211,7 +213,7 @@ minWidth : 70, iconCls : 'icon_search', handler : function() { - reloadReport(isFirstRoomPeople,orgName,Ext.getCmp('operatorSearch').getRawValue()); + reloadReport(); } },{ xtype : 'button', @@ -245,5 +247,5 @@ items : reportForm }] }); - reloadReport(isFirstRoomPeople,orgName,Ext.getCmp('operatorSearch').getValue()); + reloadReport(); }); \ No newline at end of file Index: forgon-core/src/main/java/com/forgon/directory/action/UserAction.java =================================================================== diff -u -r17007 -r17612 --- forgon-core/src/main/java/com/forgon/directory/action/UserAction.java (.../UserAction.java) (revision 17007) +++ forgon-core/src/main/java/com/forgon/directory/action/UserAction.java (.../UserAction.java) (revision 17612) @@ -1,7 +1,9 @@ package com.forgon.directory.action; import java.io.IOException; +import java.sql.ResultSet; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -18,6 +20,7 @@ import com.forgon.directory.model.BarcodeDevice; import com.forgon.directory.model.OrgUnit; import com.forgon.directory.service.SysUserManager; +import com.forgon.entity.PageEntity; import com.forgon.security.model.User; import com.forgon.security.model.UserAttribute; import com.forgon.security.service.UserManager; @@ -26,7 +29,11 @@ import com.forgon.tools.GB2Alpha; import com.forgon.tools.GB2WB; import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JsonPropertyFilter; +import com.forgon.tools.string.StringTools; +import com.forgon.tools.util.PageUtil; import com.forgon.treenode.service.THTreeNodeManager; import com.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.Preparable; @@ -51,7 +58,13 @@ private String currentOrgUnitCode; private UserManager userManager; + + private ObjectDao objectDao; + public void setObjectDao(ObjectDao objectDao) { + this.objectDao = objectDao; + } + public void setUserManager(UserManager userManager) { this.userManager = userManager; } @@ -250,7 +263,7 @@ /** * 根据科室编码加载该科室下的所有用户的部分信息(即:id和名字).. * - * @param departId 如果departId为空或者为-1则返回所有科室的所有用户 + * @param departId 科室编码,如果为空或者为-1则返回所有科室的所有用户 */ public void loadUserByOrgId(){ String id = StrutsParamUtils.getPraramValue("departId", "-1"); @@ -289,6 +302,50 @@ } } + /** + * 根据科室编码加载该科室下的所有用户的id和名字(此方法支持分页). + * @param spell 搜索的关键字 + * @param departmentCode 科室编码,如果为空或者为-1,则返回所有科室的所有用户 + * return 返回格式如:[{"id":1,"name":"科室一"},{"id":2,"name":"科室二"}...] + */ + public void loadUserByDepartmentCode(){ + String spell = StrutsParamUtils.getPraramValue("spell", ""); + String likeSql = ""; + if(StringUtils.isNotBlank(spell)){ + likeSql += " and (u.fullName like '%"+spell.toUpperCase() +"%'"; + likeSql += " or u.spelling like '%"+spell.toUpperCase() +"%'"; + likeSql += " or u.wbCode like '%"+spell.toUpperCase() +"%')"; + } + + String departmentCode = StrutsParamUtils.getPraramValue("departmentCode", ""); + String departmentCodeSql = ""; + if(StringUtils.isNotBlank(departmentCode) && !"-1".equals(departmentCode)){ + departmentCodeSql = String.format(" and o.orgUnitCoding='%s' ", departmentCode); + } + String sql = String.format("select distinct u.id id,u.fullName fullName " + + "from SS_USERS u join OrgUserRelation ou on ou.userId=u.id join OrgUnit o on o.id=ou.orgUnitId where 1=1 %s %s ", + departmentCodeSql, likeSql); + + List> list = new LinkedList>(); + ResultSet result = objectDao.executeSql(sql); + try { + while(result.next()){ + Map map = new HashMap(); + String id = StringTools.defaultString(result.getString("id")); + String fullName = StringTools.defaultString(result.getString("fullName")); + map.put("id", id); + map.put("name", (StringUtils.isNotBlank(fullName) ? fullName.replaceAll("\r\n", "") : "")); //旧数据的人员名字有回车换行符,在此替换掉); + list.add(map); + } + } catch (Exception e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(result); + } + PageEntity pe= PageUtil.getPagePara(); + PageUtil.outPutResult(pe, list); + } + public void iniInfo() { String id = StrutsParamUtils.getPraramValue("id", ""); String orgUnitId = StrutsParamUtils.getPraramValue("orgUnitId", ""); Index: ssts-web/src/main/webapp/jasperRtp/useRecordTotalViewSub.jrxml =================================================================== diff -u -r14163 -r17612 --- ssts-web/src/main/webapp/jasperRtp/useRecordTotalViewSub.jrxml (.../useRecordTotalViewSub.jrxml) (revision 14163) +++ ssts-web/src/main/webapp/jasperRtp/useRecordTotalViewSub.jrxml (.../useRecordTotalViewSub.jrxml) (revision 17612) @@ -39,6 +39,15 @@ + + + + + + + + + Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r17575 -r17612 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 17575) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 17612) @@ -179,6 +179,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseSterilizationInspectSituationBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseWorkLoadChildVO; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseWorkLoadVO; +import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordEnteringBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordEnteringTousse; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordItemBean; @@ -8756,9 +8757,13 @@ } } - @Override - public Map getDepartFromUseRecord(String depart) - throws SQLException { + /** + * 获取指定科室的 科室编码和科室名称的Map,前提此科室必须有登记过使用记录,
+ * 如果某科室录入多条使用记录,则此科室在Map里面只存一条. + * @param depart 指定的科室,如果不指定则默认为全部科室 + * @return + */ + private Map getDepartFromUseRecord(String depart) { Map map = new HashMap(); String sql = "select distinct depart,departcoding from userecord "; if (!depart.equals("")) { @@ -8770,17 +8775,32 @@ map.put(rs.getString("departcoding"), rs.getString("depart")); } } catch (Exception e) { - throw e; + e.printStackTrace(); }finally { DatabaseUtil.closeResultSetAndStatement(rs); } return map; } - @Override - public List getUserAndRecordAmount(String sql, - String coding, String startDate, String endDate) - throws SQLException { + /** + * 计算某段时间某部门每个用户(或者某个用户)录入的使用记录条数、器械包个数、一次性物品个数. + * @param name 科室名称 + * @param operator 录入人名字,如果没有指定则查此科室的全部人员 + * @param coding 科室编码 + * @param startDate 开始日期 + * @param endDate 结束日期 + * @return List + */ + private List getUserAndRecordAmount(String name, String operator, String coding, + String startDate, String endDate) { + String operatorSql = ""; + if (StringTools.isNotBlank(operator)) { + operatorSql = String.format(" and operator='%s' ", operator); + } + String sql = String.format("select u.operator,count(operator) amount from userecord u where depart='%s' %s " + + "and u.enteringDate between %s and %s group by operator", + name, operatorSql, dateQueryAdapter.dateAdapter(startDate), dateQueryAdapter.dateAdapter(endDate)); + List itemBeans = new ArrayList(); ResultSet rs = objectDao.executeSql(sql); try { @@ -8797,11 +8817,41 @@ itemBean.setDisposableGoodsAmount(disposableGoodsAmount); itemBeans.add(itemBean); } + } catch (Exception e) { + e.printStackTrace(); } finally { DatabaseUtil.closeResultSetAndStatement(rs); } return itemBeans; } + + public List getUseRecordDataSource(String departmentName, String operator, + String startTime, String endTime){ + List list = new LinkedList(); + if(StringUtils.isNotBlank(startTime) + && StringUtils.isNotBlank(endTime)){ + if ("全部".equals(departmentName)) { + departmentName = ""; + } + Map departsMap = getDepartFromUseRecord(departmentName); + if (departsMap.size() > 0) { + Set departCodingSet = departsMap.keySet(); + Iterator it = departCodingSet.iterator(); + while (it.hasNext()) { + UseRecordBean recordBean = new UseRecordBean(); + String coding = it.next();// 部门编码 + String name = departsMap.get(coding);// 部门名称 + recordBean.setDepart(name); + List itemBeans = getUserAndRecordAmount(name, operator, coding, startTime, endTime); + if(itemBeans.size() != 0){ + recordBean.setItems(itemBeans); + list.add(recordBean); + } + } + } + } + return list; + } @Override public List getGodownEntryStatisticBean( Index: ssts-web/src/main/webapp/jasperRtp/useRecordTotalView.jrxml =================================================================== diff -u -r15895 -r17612 --- ssts-web/src/main/webapp/jasperRtp/useRecordTotalView.jrxml (.../useRecordTotalView.jrxml) (revision 15895) +++ ssts-web/src/main/webapp/jasperRtp/useRecordTotalView.jrxml (.../useRecordTotalView.jrxml) (revision 17612) @@ -37,17 +37,14 @@ - - - - + - + - + @@ -155,79 +152,72 @@ + + + - + - - + + + - + - - + + + - + - - + + + - - - - - - - - - - - - - - - + - - + + + Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/UseRecordBean.java =================================================================== diff -u -r15152 -r17612 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/UseRecordBean.java (.../UseRecordBean.java) (revision 15152) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/javabeansource/UseRecordBean.java (.../UseRecordBean.java) (revision 17612) @@ -12,10 +12,6 @@ private String depart; private List items = new ArrayList(); - private int recordCount = 0 ; //此个科室的使用记录总条数(cjr) - private int tousseCount = 0 ; //此科室的器械包总数(cjr) - private int disposableGoodsCount = 0; //此科室的次性物品总数(cjr) - public String getDepart() { return depart; } @@ -28,24 +24,4 @@ public void setItems(List items) { this.items = items; } - public int getRecordCount() { - return recordCount; - } - public void setRecordCount(int recordCount) { - this.recordCount = recordCount; - } - public int getTousseCount() { - return tousseCount; - } - public void setTousseCount(int tousseCount) { - this.tousseCount = tousseCount; - } - public int getDisposableGoodsCount() { - return disposableGoodsCount; - } - public void setDisposableGoodsCount(int disposableGoodsCount) { - this.disposableGoodsCount = disposableGoodsCount; - } - - } Index: ssts-web/src/main/resources/strtus_oa.xml =================================================================== diff -u -r15575 -r17612 --- ssts-web/src/main/resources/strtus_oa.xml (.../strtus_oa.xml) (revision 15575) +++ ssts-web/src/main/resources/strtus_oa.xml (.../strtus_oa.xml) (revision 17612) @@ -37,6 +37,7 @@ + Index: ssts-web/src/main/webapp/jasperRtp/useRecordTotalView.jasper =================================================================== diff -u -r15895 -r17612 Binary files differ Index: ssts-web/src/main/webapp/jasperRtp/useRecordTotalViewSub.jasper =================================================================== diff -u -r15895 -r17612 Binary files differ Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r17575 -r17612 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 17575) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 17612) @@ -740,7 +740,11 @@ }else if (reportName.equals("useRecordTotalView")) {//使用记录录入统计报表 - return getUseRecordDataSource(); + String departmentName = StrutsParamUtils.getPraramValue("depart", ""); + String operator = StrutsParamUtils.getPraramValue("operator", ""); + String startTime = StrutsParamUtils.getPraramValue("startDay", null); + String endTime = StrutsParamUtils.getPraramValue("endDay", null); + return jasperReportManager.getUseRecordDataSource(departmentName, operator, startTime, endTime); }else if (reportName.equals("useRecordItemView")) {//使用记录录入明细报表 return jasperReportManager.getUseRecordItemDataSource(requestParameters); }else if (reportName.equals("useRecordOperatorTotalView")) {//使用记录人员汇总报表 @@ -2069,62 +2073,6 @@ } return map; } - /** - * 使用记录录入统计报表 - * @return - * @throws SQLException - * 2014-9-3 - * forgonList - */ - public List getUseRecordDataSource() throws SQLException { - List list = new ArrayList(); - String depart = StrutsParamUtils.getPraramValue("depart", ""); - if (depart.equals("全部")) { - depart = ""; - } - String startDay = StrutsParamUtils.getPraramValue("startDay", null); - String endDay = StrutsParamUtils.getPraramValue("endDay", null); - if(StringUtils.isNotBlank(startDay) && StringUtils.isNotBlank(endDay)){ - Map departsMap = jasperReportManager.getDepartFromUseRecord(depart); - if (departsMap.size() > 0) { - UseRecordBean recordBean = null; - Set departCodingSet = departsMap.keySet(); - Iterator it = departCodingSet.iterator(); - while (it.hasNext()) { - recordBean = new UseRecordBean(); - String coding = it.next();// 部门编码 - String dep = departsMap.get(coding);// 部门名称 - recordBean.setDepart(dep); - String sql = "select u.operator,count(operator) amount from userecord u " - + " where depart='" + dep - + "' and u.enteringDate between " - + dateQueryAdapter.dateAdapter(startDay) - + " and " + dateQueryAdapter.dateAdapter(endDay) - +" group by operator "; - List itemBeans = jasperReportManager.getUserAndRecordAmount(sql,coding,startDay,endDay); - if(itemBeans.size() != 0){ - - //统计下面三列的总数(cjr) - int recordCount = 0; - int tousseCount = 0; - int disposableGoodsCount = 0; - for (UseRecordItemBean useRecordItemBean : itemBeans) { - recordCount += useRecordItemBean.getRecordAmount(); - tousseCount += useRecordItemBean.getTousseAmount(); - disposableGoodsCount += useRecordItemBean.getDisposableGoodsAmount(); - } - recordBean.setRecordCount(recordCount); - recordBean.setTousseCount(tousseCount); - recordBean.setDisposableGoodsCount(disposableGoodsCount); - - recordBean.setItems(itemBeans); - list.add(recordBean); - } - } - } - } - return list; - } public List getSterilizationRecordDataSource() { List list = new ArrayList(); Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java =================================================================== diff -u -r17575 -r17612 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 17575) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManager.java (.../JasperReportManager.java) (revision 17612) @@ -53,6 +53,7 @@ import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseOverLoadBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseSterilizationInspectSituationBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.TousseWorkLoadVO; +import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordEnteringBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordItemBean; import com.forgon.disinfectsystem.jasperreports.javabeansource.UseRecordOperatorBean; @@ -249,25 +250,6 @@ String startDay, String endDay); /** - * @param depart - * @return 2014-7-11 forgonList - * @throws SQLException - */ - Map getDepartFromUseRecord(String depart) - throws SQLException; - - /** - * @param sql - * @param coding - * @param endDay - * @param startDay - * @return 2014-7-11 forgonUseRecordItemBean - * @throws SQLException - */ - public List getUserAndRecordAmount(String sql, - String coding, String startDay, String endDay) throws SQLException; - - /** * 获取入库统计报表的数据 * @param title * @param author @@ -511,4 +493,14 @@ * @return */ public List getNurseWorkloadData(Map params); + /** + * 获取“使用记录录入统计报表”的数据 + * @param departmentName 科室名称 + * @param operator 录入人名字 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return + */ + public List getUseRecordDataSource(String departmentName, String operator, + String startTime, String endTime); } Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordTotalView.jsp =================================================================== diff -u -r17187 -r17612 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordTotalView.jsp (.../useRecordTotalView.jsp) (revision 17187) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordTotalView.jsp (.../useRecordTotalView.jsp) (revision 17612) @@ -44,7 +44,7 @@ var isFirstRoomPeople = ${isFirstRoomPeople}; -var currentOrgCode = ${currentOrgCode}; +var currentOrgCode = '${currentOrgCode}'; var orgName = '${orgName}'; Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java =================================================================== diff -u -r17295 -r17612 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 17295) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 17612) @@ -866,7 +866,6 @@ String spell = StrutsParamUtils.getPraramValue("spell", ""); String withoutBaseOrg = StrutsParamUtils.getPraramValue( "withoutBaseOrg", "true"); - String related = StrutsParamUtils.getPraramValue("related", ""); List orgUnitList = orgUnitManager .searchOrgUnitByRoomTypeSpellOrWbCode(spell, SupplyRoomConfig.SUPPLYROOM_TYPE_3, true); List> list = new LinkedList<>();