Browse Source

数据权限更改

user5 2 years ago
parent
commit
de2f237b5d

+ 8 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/projectRecords/controller/ProjectController.java

@@ -2,6 +2,7 @@ package com.jeeplus.test.projectRecords.controller;
 
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,6 +12,8 @@ import com.jeeplus.aop.logging.annotation.ApiLog;
 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.UserDTO;
 import com.jeeplus.test.projectRecords.constant.enums.ProjectStatusEnum;
 import com.jeeplus.test.projectRecords.constant.enums.ProjectTypeEnum;
 import com.jeeplus.test.projectRecords.constant.enums.YesOrNoEnum;
@@ -71,7 +74,8 @@ public class ProjectController {
     @PreAuthorize("hasAuthority('sys:project:list')")
     @GetMapping("list")
     public ResponseEntity<IPage<Project>> data(Project project, Page<Project> page) throws Exception {
-        IPage<Project> result = projectService.selectPage (page,project);
+        QueryWrapper<Project> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( project, Project.class );
+        IPage<Project> result = projectService.selectPage (page,queryWrapper);
         return ResponseEntity.ok (result);
     }
 
@@ -442,15 +446,16 @@ public class ProjectController {
     public void exportFile(ProjectDTO userProjectDTO, Page <ProjectDTO> page, ExcelOptions options, HttpServletResponse response) throws Exception {
         String fileName = options.getFilename ( );
         Project project = ProjectWrapper.INSTANCE.toEntity (userProjectDTO);
+        QueryWrapper<Project> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( project, Project.class );
         Page <Project> userProjectPage = pageAToPageB(page);
         List <Project> result = new ArrayList<>();
         List <ProjectDTO> userProjectDTOList = new ArrayList<>();
         if ( ExportMode.current.equals ( options.getMode ( ) ) ) {
-            result = projectService.selectPage ( userProjectPage, project ).getRecords ( );
+            result = projectService.selectPage ( userProjectPage, queryWrapper ).getRecords ( );
         } else {
             userProjectPage.setSize ( -1 );
             userProjectPage.setCurrent ( 0 );
-            result = projectService.selectPage ( userProjectPage, project ).getRecords ( );
+            result = projectService.selectPage ( userProjectPage, queryWrapper ).getRecords ( );
         }
         result.stream().forEach(item->{
             ProjectDTO projectDTO = ProjectWrapper.INSTANCE.toDTO(item);

+ 18 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/projectRecords/domain/Project.java

@@ -1,11 +1,16 @@
 package com.jeeplus.test.projectRecords.domain;
 
+import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.jeeplus.core.domain.BaseEntity;
 import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import com.jeeplus.sys.service.dto.OfficeDTO;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import javax.validation.constraints.NotNull;
 import java.util.Date;
 
 /**
@@ -67,6 +72,7 @@ public class Project extends BaseEntity {
     /**
      * 项目负责人
      */
+    @Query
     private String projectHead;
 
     /**
@@ -205,4 +211,16 @@ public class Project extends BaseEntity {
     private String itemType;
 
     private static final long serialVersionUID = 1L;
+
+    /**
+     * 归属公司
+     */
+    @Query(type = QueryType.EQ, tableColumn = "su.company_id", javaField = "companyDTO.id")
+    private OfficeDTO companyDTO;
+
+    /**
+     * 归属部门
+     */
+    @Query(type = QueryType.EQ, tableColumn = "su.office.id", javaField = "officeDTO.id")
+    private OfficeDTO officeDTO;
 }

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

@@ -1,8 +1,10 @@
 package com.jeeplus.test.projectRecords.mapper;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jeeplus.test.projectRecords.domain.Project;
 import org.apache.ibatis.annotations.Mapper;
@@ -16,4 +18,6 @@ public interface ProjectMapper extends BaseMapper<Project> {
     public Project selectByProjectId(@Param("projectId") String projectId);
 
     public IPage<Project> selectPage(Page<Project> page, @Param("project") Project project);
+
+    public IPage<Project> findList(Page<Project> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
 }

+ 15 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/projectRecords/mapper/xml/ProjectMapper.xml

@@ -117,4 +117,19 @@
     order by pr.create_date desc
   </select>
 
+  <select id="findList" resultType="com.jeeplus.test.projectRecords.domain.Project">
+    select
+    <include refid="to_list"></include>,
+    su1.login_name as projectHead,
+    su2.login_name as evaluationPersonOne,
+    su3.login_name as evaluationPersonTwo
+    from project_records pr
+    left join sys_user su on pr.create_by = su.id
+    left join sys_user su1 on pr.project_head = su1.id
+    left join sys_user su2 on pr.evaluation_person_one = su2.id
+    left join sys_user su3 on pr.evaluation_person_two = su3.id
+    ${ew.customSqlSegment}
+    order by pr.create_date desc
+  </select>
+
 </mapper>

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

@@ -1,6 +1,7 @@
 package com.jeeplus.test.projectRecords.service;
 
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -21,8 +22,9 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
     @Autowired
     private ProjectMapper projectMapper;
 
-    public IPage<Project> selectPage(Page<Project> page, Project project){
-        return projectMapper.selectPage(page, project);
+    public IPage<Project> selectPage(Page<Project> page, QueryWrapper queryWrapper){
+        queryWrapper.eq ("pr.del_flag", 0 ); // 排除已经删除
+        return projectMapper.findList(page, queryWrapper);
     }
 
     /**