|
@@ -92,6 +92,7 @@ import com.ruoyi.common.core.domain.BaseIdPo;
|
|
|
import com.ruoyi.common.core.domain.BasePo;
|
|
|
import com.ruoyi.common.core.domain.BaseSelectDto;
|
|
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
|
|
+import com.ruoyi.common.core.domain.entity.SysRole;
|
|
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.ruoyi.common.utils.PageUtils;
|
|
@@ -101,6 +102,7 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import com.ruoyi.common.utils.wrapper.SqlField;
|
|
|
import com.ruoyi.framework.config.ThreadPoolConfig;
|
|
|
import com.ruoyi.system.service.ISysDeptService;
|
|
|
+import com.ruoyi.system.service.ISysRoleService;
|
|
|
import com.ruoyi.system.service.ISysUserService;
|
|
|
import com.ruoyi.system.utils.UserUtil;
|
|
|
import org.apache.commons.collections4.MapUtils;
|
|
@@ -225,6 +227,8 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
private SaleService saleService;
|
|
|
@Autowired
|
|
|
private CodingRuleService codingRuleService;
|
|
|
+ @Autowired
|
|
|
+ private ISysRoleService roleService;
|
|
|
|
|
|
/**
|
|
|
* 合同和样品单 下拉分页
|
|
@@ -325,6 +329,22 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
|
|
|
wrapper.in("t1", Contract::getOfCompanyId, SecurityUtils.getCompanyIds());
|
|
|
wrapper.eq("t1", Contract::getOfCompanyId, dto.getOfCompanyId());
|
|
|
|
|
|
+ //特殊权限过滤
|
|
|
+ Long userId = SecurityUtils.getUserId();
|
|
|
+ List<Long> uidList = new ArrayList<>();
|
|
|
+ List<SysRole> userRoles = UserUtil.getUserRoles(userId);
|
|
|
+ // 1、如果登陆账号的上级角色包括【顶级】,则:看自己公司所有数据 (不进入if)
|
|
|
+ if (userRoles.stream().filter(item -> ObjectUtil.equals(0L, item.getParentId())).count() == 0) {
|
|
|
+ // 2、如果登录账号不存在下级角色:只看自己的数据
|
|
|
+ uidList.add(userId);
|
|
|
+ // 3、如果登录账号存在下级角色:看看自己公司 & 创建人包含所有子集角色用户 的数据
|
|
|
+ List<SysRole> userRoleAndChildRole = UserUtil.getUserRoleAndChildRole(userId);
|
|
|
+ List<String> roleKeys = userRoleAndChildRole.stream().map(SysRole::getRoleKey).distinct().collect(Collectors.toList());
|
|
|
+ uidList.addAll(UserUtil.getUserIdsByRoleKeys(roleKeys, SecurityUtils.getCompanyId()));
|
|
|
+
|
|
|
+ wrapper.in("t1", Contract::getCreateUser, uidList);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
//生产公司过滤
|
|
|
wrapper.eq("t1", Contract::getCompanyId, dto.getCompanyId());
|