Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/service/StorageLocationManagerImpl.java =================================================================== diff -u -r41525 -r41553 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/service/StorageLocationManagerImpl.java (.../StorageLocationManagerImpl.java) (revision 41525) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/service/StorageLocationManagerImpl.java (.../StorageLocationManagerImpl.java) (revision 41553) @@ -13,6 +13,7 @@ import net.sf.json.JSONObject; import com.forgon.directory.model.OrgUnit; +import com.forgon.disinfectsystem.basedatamanager.warehouse.vo.StorageLocationVo; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.StorageLocation; @@ -352,7 +353,7 @@ @SuppressWarnings("unchecked") @Override - public List findAllStorageLocationByKeyword(String keyword, String orgUnitCode, boolean searchLeafStorageLocation) { + public List findAllStorageLocationByKeyword(String keyword, String orgUnitCode, boolean searchLeafStorageLocation) { String hql = "where id<>0 "; List paramList = new ArrayList(); if(StringUtils.isNotBlank(orgUnitCode)){ @@ -368,7 +369,26 @@ paramList.add("%" + keyword + "%"); } hql += " order by orgUnitCode, wareHouseId, id "; - return objectDao.findHqlByParam(" from StorageLocation " + hql, paramList.toArray(), -1, -1); + + List storageLocationList = objectDao.findHqlByParam(" from StorageLocation " + hql, paramList.toArray(), -1, -1); + List storageLocationVoList = new ArrayList(); + if(CollectionUtils.isNotEmpty(storageLocationList)){ + for (StorageLocation storageLocation : storageLocationList) { + StorageLocationVo storageLocationVo = new StorageLocationVo(); + storageLocationVo.setId(storageLocation.getId()); + String parentLocationPath = this.getParentStorageLocationNameById(storageLocation.getId()); + String path = ""; + if (StringUtils.isBlank(parentLocationPath)) { + path = storageLocation.getOrgUnitName() + " > " + storageLocation.getWareHouseName() + " > " + storageLocation.getName(); + } else { + path = storageLocation.getOrgUnitName() + " > " + storageLocation.getWareHouseName() + " > " + parentLocationPath + " > " + storageLocation.getName(); + } + storageLocationVo.setStorageLocationPath(path); + storageLocationVo.setStorageLocationName(storageLocation.getName()); + storageLocationVoList.add(storageLocationVo); + } + } + return storageLocationVoList; } @Override Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/vo/StorageLocationVo.java =================================================================== diff -u --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/vo/StorageLocationVo.java (revision 0) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/vo/StorageLocationVo.java (revision 41553) @@ -0,0 +1,45 @@ +package com.forgon.disinfectsystem.basedatamanager.warehouse.vo; + +/** + * 库位VO + */ +public class StorageLocationVo { + + /** + * 库位id + */ + private Long id; + /** + * 库位名称 + */ + private String storageLocationName; + /** + * 上级库位名称列表 + */ + private String storageLocationPath; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getStorageLocationName() { + return storageLocationName; + } + + public void setStorageLocationName(String storageLocationName) { + this.storageLocationName = storageLocationName; + } + + public String getStorageLocationPath() { + return storageLocationPath; + } + + public void setStorageLocationPath(String storageLocationPath) { + this.storageLocationPath = storageLocationPath; + } + +} Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/action/StorageLocationAction.java =================================================================== diff -u -r41525 -r41553 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/action/StorageLocationAction.java (.../StorageLocationAction.java) (revision 41525) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/action/StorageLocationAction.java (.../StorageLocationAction.java) (revision 41553) @@ -25,6 +25,7 @@ import com.forgon.directory.model.OrgUnit; import com.forgon.disinfectsystem.basedatamanager.warehouse.service.StorageLocationManager; import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager; +import com.forgon.disinfectsystem.basedatamanager.warehouse.vo.StorageLocationVo; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.StorageLocation; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; @@ -111,21 +112,10 @@ String orgUnitCode = StrutsParamUtils.getPraramValue("orgUnitCode", ""); //只查询叶子节点的库位 boolean searchLeafStorageLocation = StrutsParamUtils.getBoolPraramValue("searchLeafStorageLocation", false); - List list = storageLocationManager.findAllStorageLocationByKeyword(keyword, orgUnitCode, searchLeafStorageLocation); + List list = storageLocationManager.findAllStorageLocationByKeyword(keyword, orgUnitCode, searchLeafStorageLocation); JSONArray jsonArr = new JSONArray(); - for (StorageLocation storageLocation : list) { - JSONObject jsonObj = new JSONObject(); - jsonObj.put("id", storageLocation.getId()); - String parentLocationPath = storageLocationManager.getParentStorageLocationNameById(storageLocation.getId()); - String path = ""; - if (StringUtils.isBlank(parentLocationPath)) { - path = storageLocation.getOrgUnitName() + " > " + storageLocation.getWareHouseName() + " > " + storageLocation.getName(); - } else { - path = storageLocation.getOrgUnitName() + " > " + storageLocation.getWareHouseName() + " > " + parentLocationPath + " > " + storageLocation.getName(); - } - jsonObj.put("storageLocationPath", path); - jsonObj.put("storageLocationName", storageLocation.getName()); - jsonArr.add(jsonObj); + if(CollectionUtils.isNotEmpty(list)){ + jsonArr = JSONArray.fromObject(list); } JSONObject jsonObj = new JSONObject(); jsonObj.put("totalCount", jsonArr.size()); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/service/StorageLocationManager.java =================================================================== diff -u -r41525 -r41553 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/service/StorageLocationManager.java (.../StorageLocationManager.java) (revision 41525) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/service/StorageLocationManager.java (.../StorageLocationManager.java) (revision 41553) @@ -1,6 +1,8 @@ package com.forgon.disinfectsystem.basedatamanager.warehouse.service; import java.util.List; + +import com.forgon.disinfectsystem.basedatamanager.warehouse.vo.StorageLocationVo; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.StorageLocation; public interface StorageLocationManager { @@ -37,9 +39,9 @@ * @param keyword 关键字 * @param orgUnitCode 库位所属科室编码 * @param searchLeafStorageLocation 只查询叶子节点的库位 - * @return 库位 + * @return 库位Vo */ - public List findAllStorageLocationByKeyword(String keyword, String orgUnitCode, boolean searchLeafStorageLocation); + public List findAllStorageLocationByKeyword(String keyword, String orgUnitCode, boolean searchLeafStorageLocation); /** * 根据父节点id查找库位