Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r14910 -r14915 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 14910) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 14915) @@ -43,7 +43,6 @@ import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; -import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; import com.forgon.disinfectsystem.entity.basedatamanager.imagefilemanager.ImageFile; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; @@ -53,6 +52,7 @@ import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.tousse.imagefilemanager.service.ImageFileManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; +import com.forgon.disinfectsystem.tousse.toussedefinition.service.SearchTousseDefinitionParams; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; import com.forgon.disinfectsystem.tousse.videomanager.service.VideoFileManager; @@ -972,13 +972,20 @@ } try { spell = java.net.URLDecoder.decode(spell, "UTF-8"); + + String supplierName = StrutsParamUtils.getPraramValue("supplierName", ""); Pattern pat = Pattern.compile("[\\u4E00-\\u9FA5]+");// 匹配中文字符的正则表达式 Matcher m = pat.matcher(spell); if (!m.find()) { spell = spell.toUpperCase(); } - JSONObject json = tousseDefinitionManager.searchTousseDefinition( - spell, TousseDefinition.PACKAGE_TYPE_FOREIGN, null,false); + SearchTousseDefinitionParams params = new SearchTousseDefinitionParams(); + params.searchString = spell; + params.tousseType = TousseDefinition.PACKAGE_TYPE_FOREIGN; + params.handlerDepartCodes = null; + params.supplierName = supplierName; + params.showDisableGoods = false; + JSONObject json = tousseDefinitionManager.searchTousseDefinition(params); //外来器械去掉下划线、相同名称的物品取最后一次的包定义 Map map = new HashMap(); Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js =================================================================== diff -u -r14896 -r14915 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 14896) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 14915) @@ -426,7 +426,15 @@ {name : 'suppler',mapping : 'suppler'}, {name : 'includeImplant',mapping : 'includeImplant'}, {name : 'materials',mapping : 'materials'} - ] + ], + listeners : { + beforeload: function(store, operation, eOpts){ + var suppler1Comp = top.Ext4.getCmp("suppler1"); + if(suppler1Comp != null){ + store.proxy.extraParams.supplierName = suppler1Comp.getValue(); + } + } + } }); var foldersCompanyJsonStore = new Ext4.data.Store({ Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r14910 -r14915 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 14910) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 14915) @@ -707,18 +707,35 @@ @SuppressWarnings("unchecked") public JSONObject searchTousseDefinition(String searchString, String tousseType, String handlerDepartCodes,boolean showDisableGoods) { + SearchTousseDefinitionParams params = new SearchTousseDefinitionParams(); + params.searchString = searchString; + params.tousseType = tousseType; + params.handlerDepartCodes = handlerDepartCodes; + params.showDisableGoods = showDisableGoods; + return searchTousseDefinition(params); + } + + // TODO 效率太低,showDisableGoods可以放到sql条件里面,重复包名的处理也可以放到sql条件。数据量大时,内存处理会很慢。 + public JSONObject searchTousseDefinition(SearchTousseDefinitionParams params) { + String searchString = params.searchString; + String tousseType = params.tousseType; + + String handlerDepartCodes = params.handlerDepartCodes; + String supplierName = params.supplierName; + boolean showDisableGoods = params.showDisableGoods; JSONObject json = null; - + List tousseDefinitions = searchTousseDefinitions( - searchString, tousseType, handlerDepartCodes); - - + searchString, tousseType, handlerDepartCodes, supplierName); + List> mapList = new ArrayList>(); for (TousseDefinition tousseDefinition : tousseDefinitions) { - if(!showDisableGoods && TousseDefinition.STR_YES.equals(tousseDefinition.getIsDisable())){ + if (!showDisableGoods + && TousseDefinition.STR_YES.equals(tousseDefinition + .getIsDisable())) { continue; } - String displayName = tousseDefinition.getName(); + String displayName = tousseDefinition.getName(); boolean isDisplayNameExist = false; for (Map map : mapList) { if (StringUtils.equals(map.get("displayName").toString(), @@ -742,25 +759,31 @@ temp.put("id", tousseDefinition.getId()); temp.put("name", tousseDefinition.getName()); temp.put("displayName", displayName); - temp.put("isCleanedEntirely",tousseDefinition.getIsCleanedEntirely()); - temp.put("isApplyEntireTousse", tousseDefinition.getIsApplyEntireTousse()); + temp.put("isCleanedEntirely", + tousseDefinition.getIsCleanedEntirely()); + temp.put("isApplyEntireTousse", + tousseDefinition.getIsApplyEntireTousse()); temp.put("spelling", tousseDefinition.getSpelling()); temp.put("tousseType", tousseDefinition.getTousseType()); temp.put("isRecycling", tousseDefinition.getIsRecycling()); temp.put("isThereIdentificationCard", isThereIdCard); temp.put("suppler", tousseDefinition.getSupplierName()); temp.put("includeImplant", tousseDefinition.getIncludeImplant()); - if(tousseDefinition.isForeignTousse()){ - List materialInstances = tousseDefinition.getMaterialInstances(); - if(materialInstances != null){ + if (tousseDefinition.isForeignTousse()) { + List materialInstances = tousseDefinition + .getMaterialInstances(); + if (materialInstances != null) { JSONArray materilas = new JSONArray(); for (MaterialInstance materialInstance : materialInstances) { JSONObject obj = new JSONObject(); obj.put("id", materialInstance.getId()); - obj.put("materialName", materialInstance.getMaterialName()); + obj.put("materialName", + materialInstance.getMaterialName()); obj.put("amount", materialInstance.getCount()); - obj.put("includeImplant", materialInstance.getIncludeImplant()); - obj.put("minDismantleAmount", materialInstance.getMinDismantleAmount()); + obj.put("includeImplant", + materialInstance.getIncludeImplant()); + obj.put("minDismantleAmount", + materialInstance.getMinDismantleAmount()); materilas.add(obj); } temp.put("materials", materilas); @@ -776,7 +799,7 @@ } private List searchTousseDefinitions(String searchString, - String tousseType, String handlerDepartCodes) { + String tousseType, String handlerDepartCodes,String supplierName) { String sql = createQuerySQL(searchString); if (TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseType)) {// 内部器械包 @@ -826,6 +849,9 @@ } sql += handlerDepartCodeSql + ")"; } + if(StringUtils.isNotBlank(supplierName)){ + sql += String.format(" and po.supplierName='%s'", supplierName); + } // 包类型不是【外来器械包】时,才增加forDisplay!=0的过滤 if (!TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tousseType)) { @@ -860,7 +886,7 @@ JSONObject json = null; List tousseDefinitions = searchTousseDefinitions( - searchString, TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY, null); + searchString, TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY, null,null); List> mapList = new ArrayList>(); for (TousseDefinition tousseDefinition : tousseDefinitions) { Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java =================================================================== diff -u -r14849 -r14915 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 14849) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 14915) @@ -55,6 +55,7 @@ public JSONObject searchTousseDefinition(String searchString, String tousseType, String handlerDepartCode,boolean showDisableGoods); + public JSONObject searchTousseDefinition(SearchTousseDefinitionParams params); public JSONObject searchForeignTousseDefinition(String simpleSpell); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/SearchTousseDefinitionParams.java =================================================================== diff -u --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/SearchTousseDefinitionParams.java (revision 0) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/SearchTousseDefinitionParams.java (revision 14915) @@ -0,0 +1,18 @@ +/** + * + */ +package com.forgon.disinfectsystem.tousse.toussedefinition.service; + +/** + * @author jeffli 2016年9月9日 下午3:18:35 + * + */ +public class SearchTousseDefinitionParams { + + public String searchString; + public String tousseType; + public String handlerDepartCodes; + public String supplierName; + public boolean showDisableGoods = false; + +}