|
|
@ -2,14 +2,19 @@ package org.dromara.platform.service.impl; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import jakarta.annotation.Resource; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.dromara.common.core.domain.dto.RoleDTO; |
|
|
|
import org.dromara.common.core.domain.model.LoginUser; |
|
|
|
import org.dromara.common.core.utils.MapstructUtils; |
|
|
|
import org.dromara.common.core.utils.StringUtils; |
|
|
|
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery; |
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import org.dromara.common.satoken.utils.LoginHelper; |
|
|
|
import org.dromara.platform.domain.Attachment; |
|
|
|
import org.dromara.platform.domain.AttachmentSerializer; |
|
|
|
import org.dromara.platform.domain.ContractInfo; |
|
|
@ -23,10 +28,7 @@ import org.dromara.platform.domain.ProjectInfo; |
|
|
|
import org.dromara.platform.mapper.ProjectInfoMapper; |
|
|
|
import org.dromara.platform.service.IProjectInfoService; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
/** |
|
|
|
* 项目信息Service业务层处理 |
|
|
@ -36,6 +38,7 @@ import java.util.Collection; |
|
|
|
*/ |
|
|
|
@RequiredArgsConstructor |
|
|
|
@Service |
|
|
|
@Slf4j |
|
|
|
public class ProjectInfoServiceImpl implements IProjectInfoService { |
|
|
|
|
|
|
|
private final ProjectInfoMapper baseMapper; |
|
|
@ -70,6 +73,19 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public TableDataInfo<ProjectInfoVo> queryPageList(ProjectInfoBo bo, PageQuery pageQuery) { |
|
|
|
LoginUser loginUser = LoginHelper.getLoginUser(); |
|
|
|
Set<String> rolePermission = loginUser.getRolePermission(); |
|
|
|
//设置权限:如果是监理和超级管理员可以访问全部的项目信息
|
|
|
|
//其余人员只能看到自己的项目信息
|
|
|
|
String[] requiredRoles = {"jianli", "superadmin"}; |
|
|
|
boolean hasAnyRole = Arrays.stream(requiredRoles) |
|
|
|
.anyMatch(rolePermission::contains); |
|
|
|
|
|
|
|
if (!hasAnyRole) { |
|
|
|
log.info("非监理和管理员登录需要根据登录用户的部门id过滤项目"); |
|
|
|
bo.setCreateDept(loginUser.getDeptId()); |
|
|
|
} |
|
|
|
|
|
|
|
LambdaQueryWrapper<ProjectInfo> lqw = buildQueryWrapper(bo); |
|
|
|
Page<ProjectInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|
|
|
return TableDataInfo.build(result); |
|
|
@ -104,6 +120,7 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { |
|
|
|
lqw.eq(StringUtils.isNotBlank(bo.getIcon()), ProjectInfo::getIcon, bo.getIcon()); |
|
|
|
lqw.eq(StringUtils.isNotBlank(bo.getAttachment()), ProjectInfo::getAttachment, bo.getAttachment()); |
|
|
|
lqw.eq(bo.getStatus() != null, ProjectInfo::getStatus, bo.getStatus()); |
|
|
|
lqw.eq(bo.getCreateDept() != null, BaseEntity::getCreateDept, bo.getCreateDept()); |
|
|
|
return lqw; |
|
|
|
} |
|
|
|
|
|
|
@ -232,4 +249,16 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { |
|
|
|
String partyB = contractInfo.getPartyB(); |
|
|
|
return partyB; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void bindUnit(String projectId,Long deptId) { |
|
|
|
LoginUser loginUser = LoginHelper.getLoginUser(); |
|
|
|
Long userDeptId = loginUser.getDeptId(); |
|
|
|
log.info("用户部门ID:{}",userDeptId); |
|
|
|
// 更新项目信息
|
|
|
|
ProjectInfo projectInfo = new ProjectInfo(); |
|
|
|
projectInfo.setId(projectId); |
|
|
|
projectInfo.setCreateDept(deptId); |
|
|
|
baseMapper.updateById(projectInfo); |
|
|
|
} |
|
|
|
} |
|
|
|