|
@@ -127,7 +127,7 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
|
|
|
}
|
|
|
}
|
|
|
if(!StringUtils.isEmpty(userId)){
|
|
|
- queryWrapper.eq(Product::getCreatorId,userId);
|
|
|
+ queryWrapper.eq(Product::getInchargerId,userId);
|
|
|
}
|
|
|
if(!StringUtils.isEmpty(productName)){
|
|
|
queryWrapper.like(Product::getProductName,productName);
|
|
@@ -151,6 +151,7 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
|
|
|
pageIndex=-1;
|
|
|
pageSize=-1;
|
|
|
}
|
|
|
+ queryWrapper.orderByDesc(Product::getCreateTime);
|
|
|
IPage<Product> productIPage = productMapper.selectPage(new Page<>(pageIndex, pageSize,true), queryWrapper);
|
|
|
List<Product> records = productIPage.getRecords();
|
|
|
records.forEach(r->{
|
|
@@ -515,13 +516,71 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
|
|
|
@Override
|
|
|
public HttpRespMsg recycleList(Integer pageIndex, Integer pageSize) {
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
- User user = userMapper.selectById(request.getHeader("token"));
|
|
|
- LambdaQueryWrapper<Product> productLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- productLambdaQueryWrapper.eq(Product::getCompanyId,user.getCompanyId());
|
|
|
- productLambdaQueryWrapper.eq(Product::getIsDelete,1);
|
|
|
- IPage<Product> productIPage = productMapper.selectPage(new Page<>(pageIndex, pageSize), productLambdaQueryWrapper);
|
|
|
- Map<String,Object> map=new HashMap<>();
|
|
|
- map.put("record",productIPage.getRecords());
|
|
|
+ User targetUsr = userMapper.selectById(request.getHeader("token"));
|
|
|
+ Integer companyId=targetUsr.getCompanyId();
|
|
|
+ List<Department> departments = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, companyId));
|
|
|
+ LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(Product::getCompanyId,companyId);
|
|
|
+ queryWrapper.eq(Product::getIsDelete,1);
|
|
|
+ List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
|
|
|
+ List<SysDict> sysDictOfProductType = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, companyId).eq(SysDict::getCode, "ProductType"));
|
|
|
+ List<SysDict> sysDictOfProductUnit = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, companyId).eq(SysDict::getCode, "ProductUnit"));
|
|
|
+ boolean hasPriviledgeAll = sysFunctionService.hasPriviledge(targetUsr.getRoleId(), "查看全部产品数据");
|
|
|
+ boolean hasPriviledgeDept = sysFunctionService.hasPriviledge(targetUsr.getRoleId(), "查看负责部门产品数据");
|
|
|
+ //判断查看全部的权限
|
|
|
+ if(!hasPriviledgeAll){
|
|
|
+ //判断查看负责部门的权限
|
|
|
+ if(!hasPriviledgeDept){
|
|
|
+ //都没有就只能看自己创建的
|
|
|
+ queryWrapper.eq(Product::getCreatorId,targetUsr.getId());
|
|
|
+ }else {
|
|
|
+ List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getManagerId, targetUsr.getId()));
|
|
|
+ List<DepartmentOtherManager> otherManagerList = departmentOtherManagerMapper.selectList(new LambdaQueryWrapper<DepartmentOtherManager>().eq(DepartmentOtherManager::getOtherManagerId, targetUsr.getId()));
|
|
|
+ List<Integer> deptIds=new ArrayList<>();
|
|
|
+ deptIds.add(-1);
|
|
|
+ List<Integer> managerDeptIds = departmentList.stream().map(Department::getDepartmentId).distinct().collect(Collectors.toList());
|
|
|
+ List<Integer> otherManagerDeptIds = otherManagerList.stream().map(DepartmentOtherManager::getDepartmentId).distinct().collect(Collectors.toList());
|
|
|
+ deptIds.addAll(managerDeptIds);
|
|
|
+ List<Integer> finalDeptIds1 = deptIds;
|
|
|
+ managerDeptIds.forEach(m->{
|
|
|
+ List<Integer> branchDepartment = getBranchDepartment(m, departments);
|
|
|
+ finalDeptIds1.addAll(branchDepartment);
|
|
|
+ });
|
|
|
+ deptIds.addAll(otherManagerDeptIds);
|
|
|
+ List<Integer> finalDeptIds = deptIds;
|
|
|
+ otherManagerDeptIds.forEach(o->{
|
|
|
+ List<Integer> branchDepartment = getBranchDepartment(o, departments);
|
|
|
+ finalDeptIds.addAll(branchDepartment);
|
|
|
+ });
|
|
|
+ deptIds=deptIds.stream().distinct().collect(Collectors.toList());
|
|
|
+ List<Integer> finalDeptIds2 = deptIds;
|
|
|
+ List<String> userIds = userList.stream().filter(u -> finalDeptIds2.contains(u.getDepartmentId())).map(User::getId).collect(Collectors.toList());
|
|
|
+ userIds.add("-1");
|
|
|
+ queryWrapper.in(Product::getCreatorId,userIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ IPage<Product> productIPage = productMapper.selectPage(new Page<>(pageIndex, pageSize,true), queryWrapper);
|
|
|
+ List<Product> records = productIPage.getRecords();
|
|
|
+ records.forEach(r->{
|
|
|
+ Optional<User> user = userList.stream().filter(u -> u.getId().equals(r.getInchargerId())).findFirst();
|
|
|
+ if(user.isPresent()){
|
|
|
+ r.setInchargerName(user.get().getName());
|
|
|
+ }
|
|
|
+ Optional<User> creator = userList.stream().filter(u -> u.getId().equals(r.getCreatorId())).findFirst();
|
|
|
+ if(creator.isPresent()){
|
|
|
+ r.setCreatorName(creator.get().getName());
|
|
|
+ }
|
|
|
+ Optional<SysDict> unit = sysDictOfProductUnit.stream().filter(u -> u.getId().equals(r.getUnit())).findFirst();
|
|
|
+ if(unit.isPresent()){
|
|
|
+ r.setUnitName(unit.get().getName());
|
|
|
+ }
|
|
|
+ Optional<SysDict> type = sysDictOfProductType.stream().filter(u -> u.getId().equals(r.getType())).findFirst();
|
|
|
+ if(type.isPresent()){
|
|
|
+ r.setTypeName(type.get().getName());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ Map map=new HashMap();
|
|
|
+ map.put("record",records);
|
|
|
map.put("total",productIPage.getTotal());
|
|
|
msg.setData(map);
|
|
|
return msg;
|