|
@@ -6,8 +6,10 @@ import com.alibaba.fastjson2.JSONArray;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.alibaba.fastjson2.JSONWriter;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fjhx.common.constant.SourceConstant;
|
|
|
import com.fjhx.item.entity.product.po.ProductClassify;
|
|
|
import com.fjhx.item.entity.product.po.ProductInfo;
|
|
|
import com.fjhx.item.service.product.ProductClassifyService;
|
|
@@ -31,7 +33,9 @@ import com.fjhx.wms.service.warehouse.WarehouseService;
|
|
|
import com.fjhx.wms.utils.CodeEnum;
|
|
|
import com.obs.services.internal.ServiceException;
|
|
|
import com.ruoyi.common.core.domain.BaseIdPo;
|
|
|
+import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
+import com.ruoyi.system.service.ISysRoleService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -39,6 +43,7 @@ import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -64,6 +69,9 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
|
|
|
@Autowired
|
|
|
WarehouseService warehouseService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ISysRoleService sysRoleService;
|
|
|
+
|
|
|
@Override
|
|
|
public Page<StockVo> getPage(StockSelectDto dto) {
|
|
|
IWrapper<Stock> wrapper = getWrapper();
|
|
@@ -109,6 +117,19 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //添加权限过滤
|
|
|
+ DynamicDataSourceContextHolder.push(SourceConstant.BASE);
|
|
|
+ Set<String> permissionList = sysRoleService.selectRolePermissionByUserId(SecurityUtils.getUserId());
|
|
|
+ DynamicDataSourceContextHolder.poll();
|
|
|
+ if (ObjectUtil.isNotEmpty(permissionList)) {
|
|
|
+ //if当前用户的角色 in [运营专员, 运营助理] 页面仅展示产品.管理部门 == 当前用户所在部门或下级部门的相关数据
|
|
|
+ if (permissionList.contains("E-commerce operation") || permissionList.contains("Operation assistant")) {
|
|
|
+ wrapper.and(q -> q.eq("de.dept_id", SecurityUtils.getDeptId())
|
|
|
+ .or()
|
|
|
+ .like("de.ancestors", SecurityUtils.getDeptId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
wrapper.orderByDesc("s", Stock::getId);
|
|
|
Page<StockVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
|
List<StockVo> stockVos = page.getRecords();
|
|
@@ -256,6 +277,19 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //添加权限过滤
|
|
|
+ DynamicDataSourceContextHolder.push(SourceConstant.BASE);
|
|
|
+ Set<String> permissionList = sysRoleService.selectRolePermissionByUserId(SecurityUtils.getUserId());
|
|
|
+ DynamicDataSourceContextHolder.poll();
|
|
|
+ if (ObjectUtil.isNotEmpty(permissionList)) {
|
|
|
+ //if当前用户的角色 in [运营专员, 运营助理] 页面仅展示产品.管理部门 == 当前用户所在部门或下级部门的相关数据
|
|
|
+ if (permissionList.contains("E-commerce operation") || permissionList.contains("Operation assistant")) {
|
|
|
+ wrapper.and(q -> q.eq("de.dept_id", SecurityUtils.getDeptId())
|
|
|
+ .or()
|
|
|
+ .like("de.ancestors", SecurityUtils.getDeptId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
wrapper.orderByDesc("s", Stock::getId);
|
|
|
Page<StockVo> page = this.baseMapper.pageByProduct(dto.getPage(), wrapper);
|
|
|
List<StockVo> stockVos = page.getRecords();
|
|
@@ -330,6 +364,20 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
|
|
|
wrapper.orderByDesc("sum(s.quantity)");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //添加权限过滤
|
|
|
+ DynamicDataSourceContextHolder.push(SourceConstant.BASE);
|
|
|
+ Set<String> permissionList = sysRoleService.selectRolePermissionByUserId(SecurityUtils.getUserId());
|
|
|
+ DynamicDataSourceContextHolder.poll();
|
|
|
+ if (ObjectUtil.isNotEmpty(permissionList)) {
|
|
|
+ //if当前用户的角色 in [运营专员, 运营助理] 页面仅展示产品.管理部门 == 当前用户所在部门或下级部门的相关数据
|
|
|
+ if (permissionList.contains("E-commerce operation") || permissionList.contains("Operation assistant")) {
|
|
|
+ wrapper.and(q -> q.eq("de.dept_id", SecurityUtils.getDeptId())
|
|
|
+ .or()
|
|
|
+ .like("de.ancestors", SecurityUtils.getDeptId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
wrapper.orderByDesc("s", Stock::getId);
|
|
|
|
|
|
Page<StockVo> page = this.baseMapper.pageByProductSpu(dto.getPage(), wrapper);
|