From 435316d43f8fd8ed8ec23a1679586bf439ff491b Mon Sep 17 00:00:00 2001 From: erdanergou Date: Sun, 23 Apr 2023 13:22:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=AC=E5=9C=B0=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E6=97=AD=E6=97=A5=E5=9B=BE=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DepositoryServiceImpl.java | 84 +++++++++++++------ .../InventorySunburstDataTest.java | 2 +- 2 files changed, 58 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java index 9ba1184a..d7869def 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java @@ -404,27 +404,28 @@ public class DepositoryServiceImpl implements DepositoryService { /** * 获取当前仓库下的所有可见的子仓库 + * * @param id 当前仓库id * @return */ @Override - public List findAllChildDepositoryById(Integer id,UserByPort userByPort) { + public List findAllChildDepositoryById(Integer id, UserByPort userByPort) { // 获取所有仓库 List depositoryAll = depositoryMapper.findDepositoryAll(); // 定义待返回仓库id List depositoryIdList = new ArrayList<>(); // 添加仓库id depositoryIdList.add(id); - for (Depository depository:depositoryAll - ) { + for (Depository depository : depositoryAll + ) { Integer did = depository.getParentId(); - if(depositoryIdList.contains(did)){ + if (depositoryIdList.contains(did)) { depositoryIdList.add(depository.getId()); } } //用于查询当前用户所拥有及所管理的仓库 List depositoryIdForUserHas = roleService.findDepositoryIdForUserHas(userByPort); - depositoryIdList = (List) CollectionUtils.intersection(depositoryIdList,depositoryIdForUserHas); + depositoryIdList = (List) CollectionUtils.intersection(depositoryIdList, depositoryIdForUserHas); return depositoryIdList; } @@ -795,46 +796,75 @@ public class DepositoryServiceImpl implements DepositoryService { return toDayInventoryByDNameTest; } + /** + * 获取当前仓库该类型下的库存数量 + * + * @param did 待查询仓库 + * @param mtId 待查询类型 + * @return + */ @Override public InventoryByMTAndDepository getTodayInventoryByDidAndMt(Integer did, Long mtId) { - Map map = new HashMap<>(); - map.put("depositoryId",did); - List childForMaterialTypeByParent = findChildForMaterialTypeByParent(mtId); - map.put("mtIdList",childForMaterialTypeByParent); + Map map = new HashMap<>(); + map.put("depositoryId", did); + // 获取所有子类 + List list = findChildForMaterialTypeByParent(mtId); + map.put("mtIdList", list); return depositoryMapper.getTodayInventoryByDidAndMt(map); } + /** + * 获取当前仓库下各类型目前的库存数量 + * + * @param did 待查询仓库 + * @return + */ @Override public List getTodayInventoryInfoByDidAndMt(Integer did) { - Map map = new HashMap<>(); - map.put("depositoryId",did); - return depositoryMapper.getTodayInventoryByDid(map); + List result = new ArrayList<>(); + Map map = new HashMap<>(); + map.put("depositoryId", did); + // 获取所有子类 + List materialTypeNoParent = materialTypeMapper.findMaterialTypeNoParent(); + for (MaterialType materialType : materialTypeNoParent + ) { + Long oldId = materialType.getOldId(); + List list = findChildForMaterialTypeByParent(oldId); + map.put("mtIdList", list); + InventoryByMTAndDepository todayInventoryByDidAndMt = depositoryMapper.getTodayInventoryByDidAndMt(map); + todayInventoryByDidAndMt.setMtId(oldId); + todayInventoryByDidAndMt.setInventory(todayInventoryByDidAndMt.getInventory() / 100.0); + result.add(todayInventoryByDidAndMt); + } + return result; } - + // 根据id获取子类 public List findChildForMaterialTypeByParent(Long mtId) { List result = new ArrayList<>(); result.add(mtId); - List parentIdList = new ArrayList<>(); - parentIdList.add(mtId); + List parentId = new ArrayList<>(); + parentId.add(mtId); List materialTypeAll = materialTypeMapper.findMaterialTypeAll(); for (MaterialType materialType : materialTypeAll) { - if (parentIdList.contains(materialType.getParentId())) { - parentIdList.add(materialType.getOldId()); + if (parentId.contains(materialType.getParentId())) { + parentId.add(materialType.getOldId()); result.add(materialType.getOldId()); } } return result; } + /** * 用于获取当前仓库所属部门领导的企业微信id + * * @param depositoryId 待查询仓库id - * @param userAgent userAgent + * @param userAgent userAgent * @return */ @Override - public List getDepositoryAdminorgLeaders(String depositoryId,String userAgent) { + public List getDepositoryAdminorgLeaders(String depositoryId, String userAgent) { // 获取当前选中的仓库 Depository depositoryById = depositoryMapper.findDepositoryById(Integer.parseInt(depositoryId)); @@ -958,22 +988,22 @@ public class DepositoryServiceImpl implements DepositoryService { // 获取当前用户管理的仓库 List depositoryAndRole = roleMapper.findDepositoryAndRole(userByPort.getId()); - Map paramForFindDepositoryId = new HashMap<>(); - paramForFindDepositoryId.put("type",1); - paramForFindDepositoryId.put("uid",userByPort.getId()); + Map paramForFindDepositoryId = new HashMap<>(); + paramForFindDepositoryId.put("type", 1); + paramForFindDepositoryId.put("uid", userByPort.getId()); // 查询该用户是否存在单独设置的仓库 List depositoryIdListForPerson = roleMapper.findDepositoryIdForWarehouseVisiblePermissionByCondition(paramForFindDepositoryId); - paramForFindDepositoryId.put("type",2); - paramForFindDepositoryId.put("uid",userByPort.getPosition()); + paramForFindDepositoryId.put("type", 2); + paramForFindDepositoryId.put("uid", userByPort.getPosition()); // 查询该用户职位是否存在设计的仓库 List depositoryIdListForPost = roleMapper.findDepositoryIdForWarehouseVisiblePermissionByCondition(paramForFindDepositoryId); // 取并集 List integerList = (List) CollectionUtils.union(depositoryIdListForPerson, depositoryIdListForPost); - for (RoleAndDepository role:depositoryAndRole - ) { + for (RoleAndDepository role : depositoryAndRole + ) { Integer depositoryId = role.getDepositoryId(); - if(!integerList.contains(depositoryId)){ + if (!integerList.contains(depositoryId)) { integerList.add(depositoryId); } } diff --git a/src/test/java/com/dreamchaser/depository_manage/InventorySunburstDataTest.java b/src/test/java/com/dreamchaser/depository_manage/InventorySunburstDataTest.java index bdb989fd..084c1132 100644 --- a/src/test/java/com/dreamchaser/depository_manage/InventorySunburstDataTest.java +++ b/src/test/java/com/dreamchaser/depository_manage/InventorySunburstDataTest.java @@ -210,7 +210,7 @@ public class InventorySunburstDataTest { double inventorySum = 0.0; for (InventoryByMTAndDepository item : todayInventoryInfoByDidAndMt ) { - inventorySum += (item.getInventory() / 100.0); + inventorySum += item.getInventory(); } result.put("name", depository.getDname()); result.put("id",depository.getId());