|
|
|
@ -116,30 +116,72 @@ public class MaterialController { |
|
|
|
@GetMapping("/findInventory") |
|
|
|
public RestResponse findInventory(@RequestParam Map<String, Object> map, HttpServletRequest request) { |
|
|
|
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); |
|
|
|
// 查询当前用户管理的仓库
|
|
|
|
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); |
|
|
|
// 查询当前用户部门拥有的仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
|
// 定义仓库编号列表
|
|
|
|
List<Integer> didList = new ArrayList<>(); |
|
|
|
|
|
|
|
List<InventoryP> list = new ArrayList<>(); |
|
|
|
Integer total = 0; |
|
|
|
Integer size = 10, page = 1; // 定义每页展示数量
|
|
|
|
if (map.containsKey("size")) { |
|
|
|
size = ObjectFormatUtil.toInteger(map.get("size")); |
|
|
|
} |
|
|
|
if (!(map.containsKey("depositoryId") || map.containsKey("mcode") || map.containsKey("mname") || map.containsKey("version"))) { |
|
|
|
// 用于标识是一次就查询成功
|
|
|
|
boolean flag = true; |
|
|
|
for (Depository depository : depositoryByAdminorg) { |
|
|
|
Integer did = depository.getId(); |
|
|
|
didList.add(did); |
|
|
|
map.put("depositoryId", did); |
|
|
|
List<InventoryP> inventory = null; |
|
|
|
if (!flag) { |
|
|
|
// 如果不是一次成功
|
|
|
|
page = ObjectFormatUtil.toInteger(map.get("page")); |
|
|
|
if(Integer.compare(userToken.getMaindeparment(),361) != 0){ |
|
|
|
// 查询当前用户管理的仓库
|
|
|
|
List<RoleAndDepository> depositoryAndRole = roleService.findDepositoryAndRole(userToken.getId()); |
|
|
|
// 查询当前用户部门拥有的仓库
|
|
|
|
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); |
|
|
|
// 定义仓库编号列表
|
|
|
|
List<Integer> didList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
Integer size = 10, page = 1; // 定义每页展示数量
|
|
|
|
if (map.containsKey("size")) { |
|
|
|
size = ObjectFormatUtil.toInteger(map.get("size")); |
|
|
|
} |
|
|
|
if (!(map.containsKey("depositoryId") || map.containsKey("mcode") || map.containsKey("mname") || map.containsKey("version"))) { |
|
|
|
// 用于标识是一次就查询成功
|
|
|
|
boolean flag = true; |
|
|
|
for (Depository depository : depositoryByAdminorg) { |
|
|
|
Integer did = depository.getId(); |
|
|
|
didList.add(did); |
|
|
|
map.put("depositoryId", did); |
|
|
|
List<InventoryP> inventory = null; |
|
|
|
if (!flag) { |
|
|
|
// 如果不是一次成功
|
|
|
|
page = ObjectFormatUtil.toInteger(map.get("page")); |
|
|
|
if (size - list.size() != size) { |
|
|
|
// 如果当前不是崭新一页
|
|
|
|
map.put("begin", 0); |
|
|
|
} else { |
|
|
|
map.put("begin", (page - 1) * size - total); |
|
|
|
} |
|
|
|
map.put("size", size - list.size()); |
|
|
|
|
|
|
|
} |
|
|
|
if (!map.containsKey("begin")) { |
|
|
|
inventory = materialService.findInventory(map); |
|
|
|
} else { |
|
|
|
inventory = materialService.findInventoryByDepository(map); |
|
|
|
} |
|
|
|
total += materialService.findInventoryCount(map); |
|
|
|
|
|
|
|
|
|
|
|
if (list.size() < size) { |
|
|
|
list.addAll(inventory); |
|
|
|
// 如果本次没有达到数目
|
|
|
|
if (list.size() < size) { |
|
|
|
flag = false; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
for (RoleAndDepository roleAndDepository : depositoryAndRole) { |
|
|
|
Integer depositoryId = roleAndDepository.getDepositoryId(); |
|
|
|
if (didList.contains(depositoryId)) { |
|
|
|
// 如果当前仓库编号存在
|
|
|
|
continue; // 跳过本次循环
|
|
|
|
} |
|
|
|
map.put("depositoryId", depositoryId); |
|
|
|
// 如果当前数目不足
|
|
|
|
if (map.containsKey("page")) { |
|
|
|
// 当前页
|
|
|
|
page = ObjectFormatUtil.toInteger(map.get("page")); |
|
|
|
} |
|
|
|
// 计算所有页数
|
|
|
|
// 判断当前是在全新一页还是包含上述内容
|
|
|
|
if (size - list.size() != size) { |
|
|
|
// 如果当前不是崭新一页
|
|
|
|
map.put("begin", 0); |
|
|
|
@ -147,61 +189,26 @@ public class MaterialController { |
|
|
|
map.put("begin", (page - 1) * size - total); |
|
|
|
} |
|
|
|
map.put("size", size - list.size()); |
|
|
|
|
|
|
|
} |
|
|
|
if (!map.containsKey("begin")) { |
|
|
|
inventory = materialService.findInventory(map); |
|
|
|
} else { |
|
|
|
inventory = materialService.findInventoryByDepository(map); |
|
|
|
} |
|
|
|
total += materialService.findInventoryCount(map); |
|
|
|
|
|
|
|
|
|
|
|
if (list.size() < size) { |
|
|
|
list.addAll(inventory); |
|
|
|
// 如果本次没有达到数目
|
|
|
|
if (list.size() < size) { |
|
|
|
flag = false; |
|
|
|
List<InventoryP> materialByDepository = materialService.findInventoryByDepository(map); |
|
|
|
list.addAll(materialByDepository); |
|
|
|
} |
|
|
|
total += materialService.findMaterialByDepositoryCount(map); |
|
|
|
} |
|
|
|
} else { |
|
|
|
List<InventoryP> inventory = materialService.findInventory(map); |
|
|
|
list.addAll(inventory); |
|
|
|
total += materialService.findInventoryCount(map); |
|
|
|
} |
|
|
|
|
|
|
|
for (RoleAndDepository roleAndDepository : depositoryAndRole) { |
|
|
|
Integer depositoryId = roleAndDepository.getDepositoryId(); |
|
|
|
if (didList.contains(depositoryId)) { |
|
|
|
// 如果当前仓库编号存在
|
|
|
|
continue; // 跳过本次循环
|
|
|
|
} |
|
|
|
map.put("depositoryId", depositoryId); |
|
|
|
// 如果当前数目不足
|
|
|
|
if (map.containsKey("page")) { |
|
|
|
// 当前页
|
|
|
|
page = ObjectFormatUtil.toInteger(map.get("page")); |
|
|
|
} |
|
|
|
// 计算所有页数
|
|
|
|
// 判断当前是在全新一页还是包含上述内容
|
|
|
|
if (size - list.size() != size) { |
|
|
|
// 如果当前不是崭新一页
|
|
|
|
map.put("begin", 0); |
|
|
|
} else { |
|
|
|
map.put("begin", (page - 1) * size - total); |
|
|
|
} |
|
|
|
map.put("size", size - list.size()); |
|
|
|
if (list.size() < size) { |
|
|
|
List<InventoryP> materialByDepository = materialService.findInventoryByDepository(map); |
|
|
|
list.addAll(materialByDepository); |
|
|
|
} |
|
|
|
total += materialService.findMaterialByDepositoryCount(map); |
|
|
|
for (InventoryP inventoryP : list |
|
|
|
) { |
|
|
|
inventoryP.setSplitInfoList(splitUnitService.findSplitInfoByMid(inventoryP.getMid())); |
|
|
|
} |
|
|
|
} else { |
|
|
|
List<InventoryP> inventory = materialService.findInventory(map); |
|
|
|
list.addAll(inventory); |
|
|
|
total += materialService.findInventoryCount(map); |
|
|
|
} |
|
|
|
for (InventoryP inventoryP : list |
|
|
|
) { |
|
|
|
inventoryP.setSplitInfoList(splitUnitService.findSplitInfoByMid(inventoryP.getMid())); |
|
|
|
}else{ |
|
|
|
list = materialService.findInventory(map); |
|
|
|
total = materialService.findInventoryCount(map); |
|
|
|
} |
|
|
|
|
|
|
|
return new RestResponse(list, total, 200); |
|
|
|
} |
|
|
|
|
|
|
|
|