Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/dwr/table/TousseDefinitionTableManager.java =================================================================== diff -u -r17111 -r17198 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/dwr/table/TousseDefinitionTableManager.java (.../TousseDefinitionTableManager.java) (revision 17111) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/dwr/table/TousseDefinitionTableManager.java (.../TousseDefinitionTableManager.java) (revision 17198) @@ -7,12 +7,15 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import com.forgon.disinfectsystem.tousse.comboTousse.service.ComboTousseManager; +import com.forgon.disinfectsystem.tousse.comboTousse.service.ComboTousseOrgUnitHandler; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.processors.DefaultValueProcessor; import net.sf.json.util.CycleDetectionStrategy; +import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; import com.forgon.component.grid.GridManager; @@ -39,6 +42,7 @@ private TousseDefinitionManager tousseDefinitionManager; private SupplyRoomConfigManager supplyRoomConfigManager; + private ComboTousseManager comboTousseManagerImpl; private ObjectDao objectDao; @@ -60,6 +64,10 @@ this.gridManager = gridManager; } + public void setComboTousseManagerImpl(ComboTousseManager comboTousseManagerImpl) { + this.comboTousseManagerImpl = comboTousseManagerImpl; + } + public String findTousseDefinitionTableList( Map> parameterMap) { @@ -109,12 +117,19 @@ } sql += " and (po.forDisplay = 1 or po.forDisplay is null)"; - return gridManager.renderGrid(parameterMap, - TousseDefinition.class.getName(), sql, new String[] { - "fieldHandler", "materialInstances","tousseDefinitionMaterials", + String result = gridManager.renderGrid(parameterMap, + TousseDefinition.class.getName(), sql, new String[]{ + "fieldHandler", "materialInstances", "tousseDefinitionMaterials", "idCardDefinitions", "diposableGoodsItems", "image", "images", "videos", "toussePackingTeachingImage", - "tousseInstances" }); + "tousseInstances"}); + //如果是聚合包,要处理一下所属部门,因为所属部门在另外一张表 + if (ObjectUtils.equals("true", isShowComboTousse)){ + ComboTousseOrgUnitHandler comboTousseOrgUnitHandler = ComboTousseOrgUnitHandler.getInstance(); + comboTousseOrgUnitHandler.setComboTousseManagerImpl(comboTousseManagerImpl); + result = comboTousseOrgUnitHandler.handleResult(result); + } + return result; } /** Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/comboTousse/service/ComboTousseOrgUnitHandler.java =================================================================== diff -u --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/comboTousse/service/ComboTousseOrgUnitHandler.java (revision 0) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/comboTousse/service/ComboTousseOrgUnitHandler.java (revision 17198) @@ -0,0 +1,64 @@ +package com.forgon.disinfectsystem.tousse.comboTousse.service; + +import com.forgon.results.handler.ResultBackHandler; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.json.JSONArray; +import org.json.JSONObject; + +import java.util.List; +import java.util.Map; + +/** + * @author zhonghaowen + * @apiNote 聚合包所属部门结果处理类, 用于聚合包页面查询显示该聚合包的所属部门 + * @since 2017-03-02 + */ +public class ComboTousseOrgUnitHandler extends ResultBackHandler { + + private static ComboTousseOrgUnitHandler ourInstance; + + private ComboTousseManager comboTousseManagerImpl; + + public void setComboTousseManagerImpl(ComboTousseManager comboTousseManagerImpl) { + this.comboTousseManagerImpl = comboTousseManagerImpl; + } + + public static ComboTousseOrgUnitHandler getInstance() { + if (ourInstance == null) { + synchronized (ComboTousseOrgUnitHandler.class) { + if (ourInstance == null) { + ourInstance = new ComboTousseOrgUnitHandler(); + } + } + } + return ourInstance; + } + + private ComboTousseOrgUnitHandler() { + } + + @Override + public void doHandleRows(JSONArray rows) { + for (int i = 0, len = rows.length(); i < len; i++) { + JSONObject json = rows.getJSONObject(i); + if (json.has("id")) { + Long comboTousseDefinitionId = json.getLong("id"); + //根据聚合包的id去找他所属的部门 + List> orgUnits = comboTousseManagerImpl.getComboTousseOrgUnitByTdId(comboTousseDefinitionId); + StringBuilder handlerDepartName = new StringBuilder(); + for (Map orgUnit : orgUnits) { + String unitName = MapUtils.getString(orgUnit, "unitName", null); + //因为这个unitName有可能是空字符串,所以这里要用StringUtils再判定一次 + if (StringUtils.isNotBlank(unitName)) { + handlerDepartName.append(orgUnit.get("unitName")).append(","); + } + } + int length = handlerDepartName.length(); + if (length > 0) { + json.put("handlerDepartName", handlerDepartName.substring(0, length - 1)); + } + } + } + } +}