Index: forgon-core/src/main/java/com/forgon/directory/model/OrgUnit.java =================================================================== diff -u -r16010 -r16920 --- forgon-core/src/main/java/com/forgon/directory/model/OrgUnit.java (.../OrgUnit.java) (revision 16010) +++ forgon-core/src/main/java/com/forgon/directory/model/OrgUnit.java (.../OrgUnit.java) (revision 16920) @@ -293,6 +293,10 @@ return belongCompanySet; } + /** + * 获取当前科室的层次结构,格式如:“组织机构-科室1-科室11”.. + * @return + */ public String getCurrentOrgUnitNames() { OrgUnit orgUnit = this; currentOrgUnitNames = ""; Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r16827 -r16920 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 16827) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 16920) @@ -33,6 +33,7 @@ import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import net.sf.jasperreports.engine.util.JRLoader; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; @@ -92,6 +93,7 @@ import com.forgon.systemsetting.service.HttpOptionManager; import com.forgon.tools.SqlBuilder; import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.date.DateTools; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; @@ -3160,37 +3162,33 @@ } } + /** + * 通过“model”和“code”属性,加载在GoodsOption配置的物品 + * + */ public void getGoodsOption(){ + String model = StrutsParamUtils.getPraramValue("model", null); String code = StrutsParamUtils.getPraramValue("code", null); - GoodsOption goodsOption = goodsOptionManager.getGoodsOption(model, code); - String jsonStr = ""; - if (goodsOption != null) { - String value = goodsOption.getValue(); - if(StringUtils.isNotBlank(value)){ - String[] nameArray = value.split(";"); - for (int i = 0; i < nameArray.length; i++) { - String name = nameArray[i]; - if(StringUtils.isNotBlank(jsonStr)){ - jsonStr += ","; + if (StringUtils.isNotBlank(model) + && StringUtils.isNotBlank(code)) { + GoodsOption goodsOption = goodsOptionManager.getGoodsOption(model, code); + JSONArray jSONArray = new JSONArray(); + if (goodsOption != null) { + String value = goodsOption.getValue(); + if(StringUtils.isNotBlank(value)){ + String[] nameArray = value.split(";"); + for (String name : nameArray) { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("name", name); + jSONArray.add(jSONObject); } - jsonStr += "{name:'" + name + "'}"; } } + StrutsResponseUtils.output(jSONArray); } - outPrint(jsonStr); + } - - private void outPrint(String str) { - HttpServletResponse response = StrutsParamUtils.getResponse(); - try { - response.setCharacterEncoding("utf-8"); - response.getWriter().print("[" + str + "]"); - } catch (IOException e) { - e.printStackTrace(); - } - } - } Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/js/setGoodsOption.js =================================================================== diff -u -r15993 -r16920 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/js/setGoodsOption.js (.../setGoodsOption.js) (revision 15993) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/js/setGoodsOption.js (.../setGoodsOption.js) (revision 16920) @@ -12,10 +12,10 @@ var tousseAndDiposableGoodsStore = null; /** - * 物品的行记录(只需要id和name属性即可) + * 物品的行记录(只需要name属性即可) * */ -var goodsRecord = Ext.data.Record.create([{name : 'id'}, {name : 'name'}]); +var goodsRecord = Ext.data.Record.create([{name : 'name'}]); /** * 按确定的执行的方法,把grid的数据保存到数据库 @@ -46,50 +46,43 @@ * 添加物品到视图列表,如果是已添加的物品不可以再添加 * * @param goodsName 物品名称 - * @param id 物品id可选参数,如果有说明是批量添加 + * @param batchAdd 是否为批量添加(即:点全部器械包或者全部一次性物品的按钮) * * @returns */ -function addGoodsToGridPanel(goodsName, id) { - var index1 = apparatusInfuTypeStore.find('name', goodsName); - if (index1 >= 0 && apparatusInfuTypeStore.getAt(index1).data['name'] == goodsName) { //此物品已经添加了 - id ? (function(){})() : (function(){showResult(goodsName+",已添加!");return false;})(); - } else { - if (id) { //批量添加的(全部器械包或者全部一次性物品) - var record = new goodsRecord({ - id : id, - name : goodsName - }); - apparatusInfuTypeStore.add(record); - } else { //按回车或者按添加的 - var index2 = tousseAndDiposableGoodsStore.find('name', goodsName); - if (index2 >= 0) { - var record = new goodsRecord({ - id : tousseAndDiposableGoodsStore.getAt(index2).data['id'], - name : goodsName - }); - apparatusInfuTypeStore.add(record); - top.Ext.getCmp('goodsSearch').setValue(''); - } - } - } +function addGoodsToGridPanel(goodsName, batchAdd) { + + if (goodsName) { + var isExist = false; //此物品名称是否已经添加过 + for (var i = 0; i < apparatusInfuTypeStore.getCount(); i++) { + var record = apparatusInfuTypeStore.getAt(i); + if(record.get('name') == goodsName){ + isExist = true; + break; + } + } + if(!isExist){ + var record = new goodsRecord({name : goodsName}); + apparatusInfuTypeStore.add(record); + top.Ext.getCmp('goodsSearch').setValue(''); + }else{ + batchAdd ? (function(){})() : (function(){showResult(goodsName+",123已添加!");return false;})(); //不是批量添加的则提示一下 + } + } + } /** * 设置需要统计的物品(包括但不限于器械包和一次性物品) - * @param model - * @param code - * @param type + * @param model 设置的类型 + * @param code 科室编码 + * @param type 类型(器械包或者一次性物品) * */ function setapparatusInfuType(model,code,type){ - var rd = new Ext.data.JsonReader({ - fields : [{ - name : 'name' - }] - }); - apparatusInfuTypeStore = new top.Ext.data.Store({ + + apparatusInfuTypeStore = new top.Ext.data.Store({ //物品视图列表的数据储存器 proxy : new Ext.data.HttpProxy({ url : WWWROOT + '/jasperreports/jasperreportsAction!getGoodsOption.do', method : 'POST' @@ -98,7 +91,11 @@ model : model, code : code }, - reader : rd + reader : new Ext.data.JsonReader({ + fields : [{ + name : 'name' + }] + }) }); apparatusInfuTypeStore.load(); @@ -119,14 +116,12 @@ dataIndex:'button' }]); - var searchUrl = WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchInsideTousseAndDiposableGoods.do'; - var isHideDisposableGood = false; - - //判断类型 - if ('tousse' == type){ - //只是搜索器械包 - searchUrl = WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchComboTousseData.do'; - isHideDisposableGood = true; + if ('tousse' == type){ //只是搜索器械包 + var searchUrl = WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchComboTousseData.do'; + var isHideDisposableGood = true; + } else { //搜索器械包和一次性物品 + var searchUrl = WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchInsideTousseAndDiposableGoods.do'; + var isHideDisposableGood = false; } tousseAndDiposableGoodsStore = new Ext.data.Store({ @@ -173,26 +168,25 @@ render : function(c) { c.getEl().on('keypress',function(e) { if (e.getKey() == 13) { - addGoodsToGridPanel(top.Ext.getCmp('goodsSearch').getValue()); + addGoodsToGridPanel(top.Ext.getCmp('goodsSearch').getValue(), false); } }); } } },{ text : '添加', handler : function () { - addGoodsToGridPanel(top.Ext.getCmp('goodsSearch').getValue()); + addGoodsToGridPanel(top.Ext.getCmp('goodsSearch').getValue(), false); } },{ text : '全部器械包', handler:function(){ Ext.Ajax.request({ -// url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!loadTousseDefinitionByCode.do', url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!loadTousseDefinitionIdAndName.do', success : function(response, options) { var result = Ext.decode(response.responseText); for(var i = 0;i < result.length;i++){ - addGoodsToGridPanel(result[i].tousseName, result[i].id); + addGoodsToGridPanel(result[i].tousseName, true); } }, failure : function(response, options) { @@ -205,12 +199,11 @@ hidden: isHideDisposableGood, handler:function(){ Ext.Ajax.request({ -// url : WWWROOT + '/disinfectSystem/diposableGoodsAction!loadDiposablegoods.do', url : WWWROOT + '/disinfectSystem/diposableGoodsAction!loadAllDisposableGoodsIdAndName.do', success : function(response, options) { var result = Ext.decode(response.responseText); for(var i = 0;i < result.length;i++){ - addGoodsToGridPanel(result[i].goodsName, result[i].id); + addGoodsToGridPanel(result[i].goodsName, true); } }, failure : function(response, options) { Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/js/setDepartmentOption.js =================================================================== diff -u -r12331 -r16920 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/js/setDepartmentOption.js (.../setDepartmentOption.js) (revision 12331) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/js/setDepartmentOption.js (.../setDepartmentOption.js) (revision 16920) @@ -29,44 +29,51 @@ var goodsName = top.Ext.getCmp('goodsSearch').getValue(); var id = top.Ext.getCmp('goodsSearch').getRawValue(); - var isExist = false; - for (var i = 0; i < apparatusInfuTypeStore.getCount(); i++) { - var record = apparatusInfuTypeStore.getAt(i); - if(record.get('name') == goodsName){ - isExist = true; - break; + if (goodsName) { + var isExist = false; + for (var i = 0; i < apparatusInfuTypeStore.getCount(); i++) { + var record = apparatusInfuTypeStore.getAt(i); + if(record.get('name') == goodsName){ + isExist = true; + break; + } } + if(!isExist){ + var record = new goodsRecord({ + id : id, + name : goodsName + }); + apparatusInfuTypeStore.add(record); + top.Ext.getCmp('goodsSearch').setValue(''); + }else{ + showResult(goodsName+",已添加!"); + } } - if(!isExist){ - var record = new goodsRecord({ - id : id, - name : goodsName - }); - apparatusInfuTypeStore.add(record); - top.Ext.getCmp('goodsSearch').setValue(''); - }else{ - showResult(goodsName+",已添加!"); - } } function removeGridItem(p){ apparatusInfuTypeStore.remove(apparatusInfuTypeStore.getAt(p)); } - + +/** + * 设手术器械科室 + * @param model 设置的类型 + * @param code 科室编码 + */ function setapparatusInfuType(model,code){ - var rd = new Ext.data.JsonReader({ - fields : [{ - name : 'name' - }] - }); + apparatusInfuTypeStore = new top.Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : WWWROOT + '/jasperreports/jasperreportsAction!getGoodsOption.do', method : 'POST' }), baseParams : {model:model,code:code}, - reader : rd + reader : new Ext.data.JsonReader({ + fields : [{ + name : 'name' + }] + }) }); apparatusInfuTypeStore.load(); @@ -114,7 +121,7 @@ queryParam : 'spell', fieldLabel : '科室名称', minChars : 0, - valueField : 'id', + valueField : 'name', displayField : 'name', anchor : '100%', width:300, @@ -125,9 +132,6 @@ typeAhead : false, allowBlank : true, listeners : { - select : function(combo, record, index) { - top.Ext.getCmp('goodsSearch').setValue(record.data.name); - }, render : function(c) { c.getEl().on('keypress',function(e) { if (e.getKey() == 13) {// 输入;号键,grid重新加载 Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java =================================================================== diff -u -r16844 -r16920 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 16844) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 16920) @@ -46,6 +46,12 @@ public List findAllOrgUnit(); + /** + * 根据关键字进行模糊查询科室.. + * @param simpleSpell 检索关键字 + * @param related related如果等于“true”,就只查询一级供应室以及所有配置可以申请器械包的科室,否则查全部科室 + * @return + */ public List searchOrgUnitBySpellOrWbCode(String simpleSpell, String related); Index: ssts-web/src/main/webapp/systemmanage/operationNameView.js =================================================================== diff -u -r15410 -r16920 --- ssts-web/src/main/webapp/systemmanage/operationNameView.js (.../operationNameView.js) (revision 15410) +++ ssts-web/src/main/webapp/systemmanage/operationNameView.js (.../operationNameView.js) (revision 16920) @@ -81,15 +81,7 @@ amount : 'amount' }] }); - useTousseStore = new top.Ext.data.Store({ - proxy : new Ext.data.HttpProxy({ - url : WWWROOT + '/jasperreports/jasperreportsAction!getGoodsOption.do', - method : 'POST' - }), - baseParams : {id : id}, - reader : rd - }); - useTousseStore.load(); + useTousseStore = new top.Ext.data.Store({reader : rd}); var cm = new top.Ext.grid.ColumnModel([new top.Ext.grid.RowNumberer({header:"序号",width:40}),{ id:'id', Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java =================================================================== diff -u -r16844 -r16920 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 16844) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 16920) @@ -847,11 +847,14 @@ return companyList; } - @SuppressWarnings("unchecked") - @Override /** - * related如果等于true,就只查询一级供应室以及所有配置可以申请器械包的科室 + * 根据关键字进行模糊查询科室.. + * @param simpleSpell 检索关键字 + * @param related related如果等于“true”,就只查询一级供应室以及所有配置可以申请器械包的科室,否则查全部科室 + * @return */ + @SuppressWarnings("unchecked") + @Override public List searchOrgUnitBySpellOrWbCode(String simpleSpell, String related) { simpleSpell = simpleSpell.toUpperCase(); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java =================================================================== diff -u -r16622 -r16920 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 16622) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 16920) @@ -945,6 +945,13 @@ PageUtil.outPutResult(pageEntity, list); } + /** + * 根据关键字检索科室的信息(“科室编码”和“科室名称”).. + * @param spell 检索关键字 + * @param withoutBaseOrg 科室名称展现的格式,如果此参数不为空则科室名称需要有层次结果的展现如:“科室1-科室11”,为空则按原来的名称展现 + * @param related related如果等于“true”,就只查询一级供应室以及所有配置可以申请器械包的科室,否则查全部的科室 + * + */ public void getAllOrgUnitName() { String spell = StrutsParamUtils.getPraramValue("spell", ""); String withoutBaseOrg = StrutsParamUtils.getPraramValue( @@ -955,9 +962,9 @@ //验证当前登录用户是否属于临床科室 // terry kwan,需要进一步重构如下代码,目前改为了只取用户的当前科室,下面的代码可以简化。2015-10-10 String orgCodes = AcegiHelper.getLoginUser().getCurrentOrgUnitCode(); - boolean isApplicationDepart = true; + boolean isApplicationDepart = true; //当前登录用户的当前科室是否属于临床科室(即:非“一级、二级供应室的用户”) String [] orgUnitCodeArray = null ; - if(StringUtils.isNotBlank(orgCodes)){ + if(StringUtils.isNotBlank(orgCodes)){ //验证当前登录用户的当前科室是否为“一级、二级供应室的用户” orgUnitCodeArray = orgCodes.split(","); SupplyRoomConfig firstSupplyRoom = supplyRoomConfigManager.getFirstSupplyRoomConfig(); List sencondSupplyrooms = supplyRoomConfigManager.getSupplyRoomList(SupplyRoomConfig.SUPPLYROOM_TYPE_2);