瀏覽代碼

项目部门主任包含所有项目的操作权限

user5 2 年之前
父節點
當前提交
e11b8a6c92

+ 15 - 4
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/projectRecords/controller/ProjectController.java

@@ -14,6 +14,7 @@ import com.jeeplus.core.excel.ExcelOptions;
 import com.jeeplus.core.excel.ExportMode;
 import com.jeeplus.core.excel.utils.EasyPoiUtil;
 import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.sys.service.dto.RoleDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.UserUtils;
 import com.jeeplus.test.oss.domain.WorkAttachment;
@@ -89,9 +90,19 @@ public class ProjectController {
     public ResponseEntity<IPage<Project>> data(Project project, Page<Project> page) throws Exception {
         QueryWrapper<Project> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( project, Project.class );
         IPage<Project> result = projectService.selectPage (page,queryWrapper);
+        UserDTO currentUserDTO = UserUtils.getCurrentUserDTO();
+        Boolean bmzrRoleFlag = false;
+        if(null != currentUserDTO.getRoleDTOList() && currentUserDTO.getRoleDTOList().size()>0){
+            for (RoleDTO roleDTO : currentUserDTO.getRoleDTOList()) {
+                if("bmzr".equals(roleDTO.getEnName())){
+                    bmzrRoleFlag = true;
+                    break;
+                }
+            }
+        }
         List<Project> list = result.getRecords();
         for (Project info: list) {
-            if(info.getProjectHeadId().equals(UserUtils.getCurrentUserDTO().getId())){
+            if(info.getProjectHeadId().equals(currentUserDTO.getId()) || bmzrRoleFlag){
                 info.setPermissionFlag(true);
             }else{
                 info.setPermissionFlag(false);
@@ -157,7 +168,7 @@ public class ProjectController {
 
             //判断一下文号是否存在
             if(StrUtil.isNotEmpty(projectDTO.getDocumentNum())){
-                if(ObjectUtil.isNotEmpty(projectService.selectByDocumentNum(projectDTO.getDocumentNum()))){
+                if(ObjectUtil.isNotEmpty(projectService.selectByDocumentNum(projectDTO))){
                     return ResponseEntity.badRequest().body("不可使用已存在的文号");
                 }
             }
@@ -173,7 +184,7 @@ public class ProjectController {
 
             //判断一下文号是否存在
             if(StrUtil.isNotEmpty(projectDTO.getDocumentNum())){
-                Project userProjects = projectService.selectByDocumentNum(projectDTO.getDocumentNum());
+                Project userProjects = projectService.selectByDocumentNum(projectDTO);
                 if(ObjectUtil.isNotEmpty(userProjects)){
                     if(!projectDTO.getId().equals(userProjects.getId())){
                         return ResponseEntity.badRequest().body("不可使用已存在的文号");
@@ -373,7 +384,7 @@ public class ProjectController {
 
             //文号的问题
             if(StrUtil.isNotEmpty(project.getDocumentNum())) {
-                Project userProject = projectService.selectByDocumentNum(project.getDocumentNum());
+                Project userProject = projectService.selectByDocumentNum(project);
                 if(ObjectUtil.isNotEmpty(userProject)){
                     return "文件中存在已在档的文号";
                 }

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/projectRecords/mapper/ProjectMapper.java

@@ -18,7 +18,7 @@ import java.util.List;
 @Mapper
 public interface ProjectMapper extends BaseMapper<Project> {
 
-    public Project selectByDocumentNum(@Param("documentNum") String documentNum);
+    public Project selectByDocumentNum(ProjectDTO projectDTO);
 
     public Project selectByProjectId(@Param("projectId") String projectId);
 

+ 6 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/projectRecords/mapper/xml/ProjectMapper.xml

@@ -109,7 +109,12 @@
     <include refid="Base_Column_List"></include>
     from
     project_records
-    where del_flag = '0' and document_num = #{documentNum}
+    <where>
+      del_flag = '0' and document_num = #{documentNum}
+      <if test="id != null and id != ''">
+        and id = #{id}
+      </if>
+    </where>
   </select>
 
   <select id="selectByProjectId" resultType="com.jeeplus.test.projectRecords.domain.Project">

+ 16 - 4
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/projectRecords/service/ProjectService.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jeeplus.security.util.SecurityUtils;
+import com.jeeplus.sys.service.dto.RoleDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
@@ -44,7 +45,18 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
      */
     public Project selectByProjectId(String projectId){
         Project project = projectMapper.selectByProjectId(projectId);
-        if(project.getProjectHead().equals(UserUtils.getCurrentUserDTO().getId())){
+
+        UserDTO currentUserDTO = UserUtils.getCurrentUserDTO();
+        Boolean bmzrRoleFlag = false;
+        if(null != currentUserDTO.getRoleDTOList() && currentUserDTO.getRoleDTOList().size()>0){
+            for (RoleDTO roleDTO : currentUserDTO.getRoleDTOList()) {
+                if("bmzr".equals(roleDTO.getEnName())){
+                    bmzrRoleFlag = true;
+                    break;
+                }
+            }
+        }
+        if(project.getProjectHead().equals(currentUserDTO.getId()) || bmzrRoleFlag){
             project.setPermissionFlag(true);
         }else{
             project.setPermissionFlag(false);
@@ -117,11 +129,11 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
 
     /**
      * 根据文号查询项目信息
-     * @param documentNum
+     * @param projectDTO
      * @return
      */
-    public Project selectByDocumentNum(String documentNum){
-        return projectMapper.selectByDocumentNum(documentNum);
+    public Project selectByDocumentNum(ProjectDTO projectDTO){
+        return projectMapper.selectByDocumentNum(projectDTO);
     }
 
     /**