Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.jsp =================================================================== diff -u -r21844 -r22079 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.jsp (.../goodsApplicationView.jsp) (revision 21844) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.jsp (.../goodsApplicationView.jsp) (revision 22079) @@ -159,6 +159,7 @@ + @@ -188,13 +189,9 @@ var foreignTousseApplicationForm = '<%=InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION%>';//外来器械包申请单 var expansionTousseForm = '<%=InvoicePlan.TYPE_TOUSSE_EXPANSION_FORM%>';//普通器械包扩充申请单 var expensiveGoodsForm = '<%=InvoicePlan.TYPE_EXPENSIVEGOODS_FORM%>';//高值耗材申请单 -var tousseTypeCustom = '<%=TousseDefinition.PACKAGE_TYPE_CUSTOM%>';//自定义器械包 var tousseTypeDisinfect = '<%=TousseDefinition.PACKAGE_TYPE_DISINFECTION%>;<%=TousseDefinition.PACKAGE_TYPE_STERILIZATION%>';//消毒物品和灭菌物品 var endCause = ${endCause}; -var tousseType_tousse = '<%=TousseDefinition.PACKAGE_TYPE_INSIDE%>'; -var tousseType_disinfectGoods = '<%=TousseDefinition.PACKAGE_TYPE_DISINFECTION%>'; var tousseType_diposableGoods = '一次性物品'; -var tousseType_foreignTousse = '<%=TousseDefinition.PACKAGE_TYPE_FOREIGN%>'; //包大小定义 var PACKAGE_SIZE_HUGE = '<%=TousseDefinition.PACKAGE_SIZE_HUGE%>'; @@ -230,6 +227,15 @@ } var TYPE_SUPPLIER = encodeURIComponent('<%=Supplier.SUPPLIER_TYPE_RENTTOUSSE%>'); +var ALL = '全部'; +var tousseType_tousse = '<%=TousseDefinition.PACKAGE_TYPE_INSIDE%>'; //器械包 +var PACKAGE_TYPE_DRESSING = '<%=TousseDefinition.PACKAGE_TYPE_DRESSING%>'; //敷料包 +var tousseType_disinfectGoods = '<%=TousseDefinition.PACKAGE_TYPE_DISINFECTION%>'; //消毒物品 +var PACKAGE_TYPE_FOREIGNPROXY = '<%=TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY%>'; //外部代理灭菌 +var tousseType_foreignTousse = '<%=TousseDefinition.PACKAGE_TYPE_FOREIGN%>'; //外来器械包 +var tousseTypeCustom = '<%=TousseDefinition.PACKAGE_TYPE_CUSTOM%>'; //自定义器械包 + + var SSTS_RecycApplication_Create = true; SSTS_RecycApplication_Create = false; Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/ReAppTableSqlHandler.java =================================================================== diff -u -r21819 -r22079 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/ReAppTableSqlHandler.java (.../ReAppTableSqlHandler.java) (revision 21819) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/ReAppTableSqlHandler.java (.../ReAppTableSqlHandler.java) (revision 22079) @@ -50,10 +50,26 @@ this.createStatusFilterSql(sqlWhereParamMap, sqlBuilder); this.createDeptGroupFilterSql(sqlWhereParamMap, sqlBuilder); this.createTousseGroupFilterSql(sqlWhereParamMap, sqlBuilder); + this.createTousseTypeFilterSql(sqlWhereParamMap, sqlBuilder); this.createApplyTypeFilterSql(sqlWhereParamMap, sqlBuilder); } /** + * 创建按器械包类型过滤 + * + * @param sqlWhereParamMap 页面的参数 + * @param sqlBuilder 原来的sql + */ + private void createTousseTypeFilterSql( + Map sqlWhereParamMap, StringBuilder sqlBuilder) { + String tousseTypes = sqlWhereParamMap.get("tousseTypes"); + if (StringUtils.isNotBlank(tousseTypes) && tousseTypes.indexOf("全部") == -1) { + String tousseTypesSql = SqlBuilder.build_IN_Statement("ti.tousseType", SqlBuilder.IN, tousseTypes.split(Constants.IDS_SEPARATOR_COMMA)); + sqlBuilder.append(String.format(" and (po.id in (select ti.invoicePlan.id from TousseItem ti where %s))", tousseTypesSql)); + } + } + + /** * 创建按申请单类型过滤. * * @param sqlWhereParamMap 页面的参数 Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js =================================================================== diff -u -r21858 -r22079 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 21858) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 22079) @@ -1998,6 +1998,8 @@ tbar2.push({text: '按器械包分组:'}); tbar2.push(searchComboConfig.tousseGroupCombo); } + tbar2.push({text: '按器械包类型:'}); + tbar2.push(searchComboConfig.tousseTypeCombo); if (sstsConfig.accordingToApplyTypeFilter){ tbar2.push({text: '按申请单类型:'}); tbar2.push(searchComboConfig.applyTypeCombo); @@ -2231,6 +2233,62 @@ } /** + * 创建按器械包类型下拉选项 + * @returns + */ +function createTousseTypeCombo() { + var touseTypeStoreConfig = { + url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getAllTousseType.do', + model : [{name: 'tousseType', mapping: 'tousseType'}] + } + return createCombo({ + xtype : 'multiSelect', + fieldLabel : '按器械包类型', + valueField : 'tousseType', + displayField : 'tousseType', + storeConfig : touseTypeStoreConfig, + triggerAction : 'all', + id : 'tousseType', + name : 'tousseType', + allowBlank : false, + //这个要设置成false,不然多选鼠标离开之后,combo上面的值不会显示 + forceSelection : false, + readOnly:true, + listeners: { + select: function (combo, record, index) { + //1、如果选中“全部”的项,则把所有的项选中,反之全部取消选择 + if (record.get('tousseType') == ALL) { + if (record.get('checked')) { + combo.selectAll() + } else { + combo.deselectAll() + } + } + + //2、如果已经选中所有的项,则把“全部”项选中,反之把“全部”项取消选择 + var selectAll = true; + combo.store.each(function(record) { + if (record.get('tousseType') != 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()); + + reloadConditionPara(combo.getValue(), 'parm_s_tousseTypes'); + } + } + }); +} + +/** * 创建按申请单类型的下拉选项 * @returns */ @@ -2641,6 +2699,7 @@ quickScreenCombo : quickScreenCombo, departmentGroupCombo : createDeptGroupCombo(), tousseGroupCombo : createTousseGroupCombo(), + tousseTypeCombo : createTousseTypeCombo(), applyTypeCombo : createApplyTypeCombo(), printCombo : createPrintCombo() }); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r21838 -r22079 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 21838) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 22079) @@ -2276,6 +2276,36 @@ } /** + * 获取所有的器械包类型(供前台的combo用) + */ + public void getAllTousseType() { + List list = new ArrayList(); + list.add(createTousseTypeJSONObject(Constants.STR_ALL)); + list.add(createTousseTypeJSONObject(TousseDefinition.PACKAGE_TYPE_INSIDE)); + list.add(createTousseTypeJSONObject(TousseDefinition.PACKAGE_TYPE_DRESSING)); + list.add(createTousseTypeJSONObject(TousseDefinition.PACKAGE_TYPE_DISINFECTION)); + list.add(createTousseTypeJSONObject(TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY)); + list.add(createTousseTypeJSONObject(TousseDefinition.PACKAGE_TYPE_FOREIGN)); + list.add(createTousseTypeJSONObject(TousseDefinition.PACKAGE_TYPE_CUSTOM)); + + JSONObject result = new JSONObject(); + result.put("totalCount", list.size()); + result.put("data", list); + StrutsResponseUtils.output(result); + } + + /** + * 创建器械包类型的json对象 + * @param tousseType 器械包类型 + * @return + */ + private JSONObject createTousseTypeJSONObject(String tousseType) { + JSONObject obj = new JSONObject(); + obj.put("tousseType", tousseType); + return obj; + } + + /** * 获取系统上的所有的器械包的处理科室(包括但不限于一级供应室、二级供应室) * @return */