diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java index 9e30c9ba..6adfa16e 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java @@ -396,6 +396,9 @@ public class MaterialController { UserByPort userToken = (UserByPort) request.getAttribute("userToken"); // 获取当前部门仓库 List depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); + // 查询当前用户管理的仓库 + List depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); + Map param = new HashMap<>(); String code = map.get("code").toString(); String type = map.get("type").toString(); @@ -414,6 +417,17 @@ public class MaterialController { break; } } + if(inventoryPByCondition.size() <= 0) { + for (RoleAndDepository depository : depositoryAndRole + ) { + param.put("depositoryId", depository.getDepositoryId()); + // 查找当前用户部门仓库中是否存在该物料 + inventoryPByCondition = materialService.findInventory(param); + if (inventoryPByCondition.size() > 0) { + break; + } + } + } MaterialP mp = null; InventoryP ip = null; Map paramByPrice = new HashMap<>(); @@ -435,7 +449,8 @@ public class MaterialController { List splitInfoByMid = splitUnitService.findSplitInfoByMid(ip.getMid()); ip.setSplitInfoList(splitInfoByMid); return new RestResponse(ip, 1, 200); - } else if ("in".equals(type)) { + } + else if ("in".equals(type)) { param.put("code", code); materialPByCondition = materialService.findMaterialPByCondition(param); if (materialPByCondition.size() > 0) { diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java index 77ca973c..584a5246 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PlaceController.java @@ -208,17 +208,42 @@ public class PlaceController { @PostMapping("/findPlaceByMid") public RestResponse findPlaceByMid(@RequestBody Map map, HttpServletRequest request){ UserByPort userToken= (UserByPort) request.getAttribute("userToken"); + // 查询当前用户部门所拥有的仓库 List depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); + // 查询当前用户管理的仓库 + List depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); Integer mid = ObjectFormatUtil.toInteger(map.get("mid")); + Inventory inventoryById = materialService.findInventoryById(mid); List placeList = new ArrayList<>(); + Map param = new HashMap<>(); + param.put("mcode", inventoryById.getCode()); + List depositoryIdList = new ArrayList<>(); for (Depository depository : depositoryByAdminorg) { - List placeByMidAndDid = placeService.findPlaceByMidAndDid(mid, depository.getId()); - for (PlaceP placeP : placeByMidAndDid) { - int index = placeList.indexOf(placeP); - if (index == -1) { - placeList.add(placeP); + depositoryIdList.add(depository.getId()); + } + for (RoleAndDepository depository : depositoryAndRole) { + if(!depositoryIdList.contains(depository.getDepositoryId())){ + depositoryIdList.add(depository.getDepositoryId()); + } + } + List inventoryPList = new ArrayList<>(); + for (Integer depositoryId:depositoryIdList + ) { + param.put("depositoryId", depositoryId); + // 查找当前用户部门仓库中是否存在该物料 + inventoryPList.addAll(materialService.findInventory(param)); + } + for (Integer depositoryId:depositoryIdList){ + for (InventoryP inventory : inventoryPList) { + List placeByMidAndDid = placeService.findPlaceByMidAndDid(inventory.getId(), depositoryId); + for (PlaceP placeP : placeByMidAndDid) { + int index = placeList.indexOf(placeP); + if (index == -1) { + placeList.add(placeP); + } } } + } return new RestResponse(placeList); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java index 60725838..c1700f3a 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/PlaceServiceImpl.java @@ -1,9 +1,7 @@ package com.dreamchaser.depository_manage.service.impl; -import com.dreamchaser.depository_manage.entity.Depository; -import com.dreamchaser.depository_manage.entity.MaterialAndPlace; -import com.dreamchaser.depository_manage.entity.PidOrDidAndCode; -import com.dreamchaser.depository_manage.entity.Place; +import com.dreamchaser.depository_manage.entity.*; +import com.dreamchaser.depository_manage.mapper.MaterialMapper; import com.dreamchaser.depository_manage.mapper.PlaceMapper; import com.dreamchaser.depository_manage.mapper.QrCodeMapper; import com.dreamchaser.depository_manage.pojo.MaterialAndPlaceForView; @@ -31,6 +29,9 @@ public class PlaceServiceImpl implements PlaceService { @Autowired QrCodeMapper qrCodeMapper; + @Autowired + MaterialMapper materialMapper; + /** * 查找所有库位 * @return @@ -200,17 +201,18 @@ public class PlaceServiceImpl implements PlaceService { Map map = new HashMap<>(); map.put("mid",mid); map.put("did",depositoryId); + Inventory inventoryById = materialMapper.findInventoryById(mid); List placeByCondition = placeMapper.findPlaceByMidAndDid(map); List placePList = new ArrayList<>(); - for (int i = 0; i < placeByCondition.size(); i++) { - Place place = placeByCondition.get(i); + for (Place place : placeByCondition) { PlaceP pp = new PlaceP(place); Integer did = place.getDid(); - if(did != 0){ + if (did != 0) { Depository depositoryRecordById = depositoryService.findDepositoryById(did); pp.setDepositoryName(depositoryRecordById.getDname()); - }else{ - pp.setDepositoryName("默认库位"); + } else { + Depository depositoryById = depositoryService.findDepositoryById(inventoryById.getDepositoryId()); + pp.setDepositoryName(depositoryById.getDname()); } placePList.add(pp); }