Browse Source

调整跨租户审核流程功能(修改原表中的流程id)

user5 1 year ago
parent
commit
e63bda6ffd
15 changed files with 287 additions and 8 deletions
  1. 18 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/service/ContractInfoService.java
  2. 2 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/mapper/CwFinanceInvoiceInvalidMapper.java
  3. 1 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/mapper/CwFinanceInvoiceMapper.java
  4. 26 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/service/CwFinanceInvoiceService.java
  5. 26 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReportArchive/service/CwProjectReportArchiveService.java
  6. 23 4
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java
  7. 1 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reportCancellApply/mapper/ReportCancellApplyMapper.java
  8. 48 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reportCancellApply/service/ReportCancellApplyService.java
  9. 1 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reportCancellApplyArchived/mapper/ReportCancellApplyArchivedMapper.java
  10. 23 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reportCancellApplyArchived/service/ReportCancellApplyArchivedService.java
  11. 84 2
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/UserController.java
  12. 3 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/UserMapper.java
  13. 10 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml
  14. 6 1
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/OfficeService.java
  15. 15 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/UserService.java

+ 18 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/service/ContractInfoService.java

@@ -27,8 +27,10 @@ import com.jeeplus.finance.workClientInfo.service.dto.CwWorkClientBaseDTO;
 //import com.jeeplus.pubmodules.oss.service.OssService;
 //import com.jeeplus.pubmodules.serialNumTpl.service.SerialnumTplService;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import com.jeeplus.sys.feign.IRoleApi;
 import com.jeeplus.sys.feign.IUserApi;
 import com.jeeplus.sys.feign.IWorkAttachmentApi;
+import com.jeeplus.sys.service.dto.RoleDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 //import com.jeeplus.sys.utils.UserUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -191,6 +193,22 @@ public class ContractInfoService {
             }
         }*/
 
+        //获取当前登录人所属角色
+        //若是评估部门主任,则仅展示部门主任信息
+        //若是评估员工,则仅展示自己的数据信息
+        List<RoleDTO> roleDTOList = userDTO.getRoleDTOList();
+        for (RoleDTO roleDTO : roleDTOList) {
+            //根据角色id查询角色信息
+            RoleDTO roleDTOById = SpringUtil.getBean(IRoleApi.class).getRoleDTOById(roleDTO.getId());
+            if("cwyg".equals(roleDTOById.getEnName()) && "兴光会计员工".equals(roleDTOById.getName())){
+                wrapper.eq("a.create_by_id", userDTO.getId());
+                break;
+            }else if("cw_bmzr".equals(roleDTOById.getEnName()) && "兴光会计部门主任".equals(roleDTOById.getName())){
+                wrapper.eq("c.office_id", userDTO.getOfficeDTO().getId());
+                break;
+            }
+        }
+
         IPage<ContractInfo> pageList = mapper.findPageList(page, officeIds.toString(), wrapper);
 
         return pageList;

+ 2 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/mapper/CwFinanceInvoiceInvalidMapper.java

@@ -1,10 +1,12 @@
 package com.jeeplus.finance.invoice.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jeeplus.finance.invoice.domain.CwFinanceInvoiceInvalid;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
+@InterceptorIgnore(tenantLine = "true")
 public interface CwFinanceInvoiceInvalidMapper extends BaseMapper<CwFinanceInvoiceInvalid> {
 
 }

+ 1 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/mapper/CwFinanceInvoiceMapper.java

@@ -14,11 +14,11 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 
 @Mapper
+@InterceptorIgnore(tenantLine = "true")
 public interface CwFinanceInvoiceMapper extends BaseMapper<CwFinanceInvoice> {
 
     public IPage<CwFinanceInvoiceDTO> findList(Page<CwFinanceInvoiceDTO> page, @Param(Constants.WRAPPER) QueryWrapper<CwFinanceInvoice> queryWrapper, @Param("officeIds") String officeIds);
 
-    @InterceptorIgnore(tenantLine = "true")
     public CwFinanceInvoiceDTO queryById(@Param("id") String id);
 
     public List<String> getIdByProjectId(@Param("id") String id);

+ 26 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/service/CwFinanceInvoiceService.java

@@ -27,9 +27,11 @@ import com.jeeplus.finance.workClientInfo.service.CwWorkClientService;
 //import com.jeeplus.pubmodules.oss.service.OssService;
 //import com.jeeplus.pubmodules.serialNumTpl.service.SerialnumTplService;
 import com.jeeplus.sys.domain.User;
+import com.jeeplus.sys.feign.IRoleApi;
 import com.jeeplus.sys.feign.IUserApi;
 import com.jeeplus.sys.feign.IWorkAttachmentApi;
 //import com.jeeplus.sys.service.UserService;
+import com.jeeplus.sys.service.dto.RoleDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 //import com.jeeplus.sys.utils.UserUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -280,6 +282,30 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
                 }
             }
         }*/
+
+
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken ( ));
+        //获取当前登录人所属角色
+        //若是评估部门主任,则仅展示部门主任信息
+        //若是评估员工,则仅展示自己的数据信息
+        List<RoleDTO> roleDTOList = userDTO.getRoleDTOList();
+        for (RoleDTO roleDTO : roleDTOList) {
+            //根据角色id查询角色信息
+            RoleDTO roleDTOById = SpringUtil.getBean(IRoleApi.class).getRoleDTOById(roleDTO.getId());
+            if("cwyg".equals(roleDTOById.getEnName()) && "兴光会计员工".equals(roleDTOById.getName())){
+                queryWrapper.eq("fi.create_by_id", userDTO.getId());
+                break;
+            }else if("cw_bmzr".equals(roleDTOById.getEnName()) && "兴光会计部门主任".equals(roleDTOById.getName())){
+                queryWrapper.eq("sumo.user_id", userDTO.getId());
+                break;
+            }else if("szfbdagly".equals(roleDTOById.getEnName()) && "苏州分布档案管理员".equals(roleDTOById.getName())){
+                queryWrapper.eq("d.office_id", "1613800824395530242");
+                break;
+            }
+        }
+
+
         return cwFinanceInvoiceMapper.findList(page,queryWrapper,officeIds.toString());
     }
 

+ 26 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectReportArchive/service/CwProjectReportArchiveService.java

@@ -34,9 +34,11 @@ import com.jeeplus.flowable.feign.IFlowableApi;
 //import com.jeeplus.pubmodules.serialNumTpl.service.SerialnumTplService;
 import com.jeeplus.sys.domain.User;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import com.jeeplus.sys.feign.IRoleApi;
 import com.jeeplus.sys.feign.IUserApi;
 import com.jeeplus.sys.feign.IWorkAttachmentApi;
 //import com.jeeplus.sys.mapper.UserMapper;
+import com.jeeplus.sys.service.dto.RoleDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 //import com.jeeplus.sys.utils.UserUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -189,6 +191,30 @@ public class CwProjectReportArchiveService extends ServiceImpl<CwProjectReportAr
         if (StringUtils.isBlank(cwProjectReportArchiveDTO.getArchiveSta())) {
             cwProjectReportArchiveDTO.setArchiveSta("");
         }
+
+        //获取当前登录人所属角色
+        //若是评估部门主任,则仅展示部门主任信息
+        //若是评估员工,则仅展示自己的数据信息
+        List<RoleDTO> roleDTOList = userDTO.getRoleDTOList();
+        for (RoleDTO roleDTO : roleDTOList) {
+            //根据角色id查询角色信息
+            RoleDTO roleDTOById = SpringUtil.getBean(IRoleApi.class).getRoleDTOById(roleDTO.getId());
+            if("cwyg".equals(roleDTOById.getEnName()) && "兴光会计员工".equals(roleDTOById.getName())){
+                queryWrapper.eq("cpm.user_id", userDTO.getId());
+                break;
+            }else if("cw_bmzr".equals(roleDTOById.getEnName()) && "兴光会计部门主任".equals(roleDTOById.getName())){
+                queryWrapper.eq("sumo.user_id", userDTO.getOfficeDTO().getId());
+                break;
+            }else if("szfbdagly".equals(roleDTOById.getEnName()) && "苏州分布档案管理员".equals(roleDTOById.getName())){
+                queryWrapper.eq("so.code", "szfb");
+                break;
+            }else if("cwhtgdr".equals(roleDTOById.getEnName()) && "兴光会计报告归档管理员".equals(roleDTOById.getName())){
+                queryWrapper.ne("so.code", "szfb");
+                break;
+            }
+        }
+
+
         IPage<CwProjectReportArchiveDTO> list = cwProjectReportArchiveMapper.findList(page, userDTO, isBmzr, officeIds.toString(), queryWrapper, cwProjectReportArchiveDTO.getArchiveSta());
         List<CwProjectReportArchiveDTO> records = list.getRecords();
         if (null != records && records.size()>0){

+ 23 - 4
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java

@@ -21,12 +21,10 @@ import com.jeeplus.finance.reimbursementApproval.approvalInfo.service.dto.*;
 //import com.jeeplus.pubmodules.serialNumTpl.service.SerialnumTplService;
 import com.jeeplus.sys.domain.Office;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
-import com.jeeplus.sys.feign.IDictApi;
-import com.jeeplus.sys.feign.IOfficeApi;
-import com.jeeplus.sys.feign.IUserApi;
-import com.jeeplus.sys.feign.IWorkAttachmentApi;
+import com.jeeplus.sys.feign.*;
 //import com.jeeplus.sys.service.OfficeService;
 import com.jeeplus.sys.service.dto.OfficeDTO;
+import com.jeeplus.sys.service.dto.RoleDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 //import com.jeeplus.sys.utils.DictUtils;
 //import com.jeeplus.sys.utils.UserUtils;
@@ -209,6 +207,27 @@ public class CwReimbursementInfoService {
                 }
             }
         }*/
+
+
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken ( ));
+        //获取当前登录人所属角色
+        //若是评估部门主任,则仅展示部门主任信息
+        //若是评估员工,则仅展示自己的数据信息
+        List<RoleDTO> roleDTOList = userDTO.getRoleDTOList();
+        for (RoleDTO roleDTO : roleDTOList) {
+            //根据角色id查询角色信息
+            RoleDTO roleDTOById = SpringUtil.getBean(IRoleApi.class).getRoleDTOById(roleDTO.getId());
+            if("cwyg".equals(roleDTOById.getEnName()) && "兴光会计员工".equals(roleDTOById.getName())){
+                queryWrapper.eq("a.create_by_id", userDTO.getId());
+                break;
+            }else if("cw_bmzr".equals(roleDTOById.getEnName()) && "兴光会计部门主任".equals(roleDTOById.getName())){
+                queryWrapper.eq("sumo.user_id", userDTO.getId());
+                break;
+            }
+        }
+
+
         IPage<RetureListDto> list = infoMapper.findList(page, queryWrapper, officeIds.toString());
         list.getRecords().stream().forEach(item -> {
             if (StringUtils.isNotBlank(item.getSourceType()) && "1".equals(item.getSourceType())) { //项目报销

+ 1 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reportCancellApply/mapper/ReportCancellApplyMapper.java

@@ -25,6 +25,7 @@ public interface ReportCancellApplyMapper extends BaseMapper<ReportCancellApply>
      * @param queryWrapper
      * @return
      */
+    @InterceptorIgnore(tenantLine = "true")
     IPage<ReportInfoDto> getList(Page<ReportInfoDto> page, @Param(Constants.WRAPPER) QueryWrapper<ReportInfoDto> queryWrapper, @Param("officeIds") String officeIds);
 
     ReportInfoDto queryById(@Param("id") String id);

+ 48 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reportCancellApply/service/ReportCancellApplyService.java

@@ -25,7 +25,9 @@ import com.jeeplus.finance.reportCancellApply.mapper.ReportCancellApplyMapper;
 import com.jeeplus.finance.reportCancellApply.service.dto.ReportInfoDto;
 import com.jeeplus.flowable.feign.IFlowableApi;
 import com.jeeplus.sys.domain.User;
+import com.jeeplus.sys.feign.IRoleApi;
 import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.service.dto.RoleDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 //import com.jeeplus.sys.utils.UserUtils;
 import org.apache.commons.collections4.CollectionUtils;
@@ -113,6 +115,29 @@ public class ReportCancellApplyService extends ServiceImpl<ReportCancellApplyMap
         StringBuilder officeIds = new StringBuilder();
 //        UserDTO userDTO = UserUtils.getCurrentUserDTO();
         List<String> manageOfficeIdList= Lists.newArrayList();
+
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken ( ));
+        //获取当前登录人所属角色
+        //若是评估部门主任,则仅展示部门主任信息
+        //若是评估员工,则仅展示自己的数据信息
+        List<RoleDTO> roleDTOList = userDTO.getRoleDTOList();
+        for (RoleDTO roleDTO : roleDTOList) {
+            //根据角色id查询角色信息
+            RoleDTO roleDTOById = SpringUtil.getBean(IRoleApi.class).getRoleDTOById(roleDTO.getId());
+            if("cwyg".equals(roleDTOById.getEnName()) && "兴光会计员工".equals(roleDTOById.getName())){
+                queryWrapper.eq("a.create_by_id", userDTO.getId());
+                break;
+            }else if("cw_bmzr".equals(roleDTOById.getEnName()) && "兴光会计部门主任".equals(roleDTOById.getName())){
+                queryWrapper.eq("sumo.user_id", userDTO.getId());
+                break;
+            }else if("zkbyg".equals(roleDTOById.getEnName()) && "质控部员工".equals(roleDTOById.getName())){
+                queryWrapper.eq("cw_rev.review_by", userDTO.getId());
+                break;
+            }
+        }
+
+
         IPage<ReportInfoDto> list = applyMapper.getList(page, queryWrapper,officeIds.toString());
         list.getRecords().stream().forEach(i -> {
             // 复核
@@ -302,6 +327,29 @@ public class ReportCancellApplyService extends ServiceImpl<ReportCancellApplyMap
         if (StringUtils.isNotEmpty(reportInfoDto.getProjectName())) {
             queryWrapper.like("c.project_name", reportInfoDto.getProjectName());
         }
+
+        //获取当前登录人所属角色
+        //若是评估部门主任,则仅展示部门主任信息
+        //若是评估员工,则仅展示自己的数据信息
+        List<RoleDTO> roleDTOList = userDTO.getRoleDTOList();
+        for (RoleDTO roleDTO : roleDTOList) {
+            //根据角色id查询角色信息
+            RoleDTO roleDTOById = SpringUtil.getBean(IRoleApi.class).getRoleDTOById(roleDTO.getId());
+            if("cwyg".equals(roleDTOById.getEnName()) && "兴光会计员工".equals(roleDTOById.getName())){
+                queryWrapper.eq("a.create_by_id", userDTO.getId());
+                break;
+            }else if("cw_bmzr".equals(roleDTOById.getEnName()) && "兴光会计部门主任".equals(roleDTOById.getName())){
+                queryWrapper.eq("sumo.user_id", userDTO.getId());
+                break;
+            }else if("zkbyg".equals(roleDTOById.getEnName()) && "质控部员工".equals(roleDTOById.getName())){
+                queryWrapper.eq("cw_rev.review_by", userDTO.getId());
+                break;
+            }else if("szfbdagly".equals(roleDTOById.getEnName()) && "苏州分布档案管理员".equals(roleDTOById.getName())){
+                queryWrapper.eq("d.office_id", "1613800824395530242");
+                break;
+            }
+        }
+
         IPage<ReportInfoDto> list = applyMapper.findList(page, queryWrapper);
 
         return list;

+ 1 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reportCancellApplyArchived/mapper/ReportCancellApplyArchivedMapper.java

@@ -24,6 +24,7 @@ import java.util.List;
  * @create: 2022-11-18 17:35
  **/
 @Mapper
+@InterceptorIgnore(tenantLine = "true")
 public interface ReportCancellApplyArchivedMapper extends BaseMapper<CwProjectReportApplyArchive> {
 
     /**

+ 23 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reportCancellApplyArchived/service/ReportCancellApplyArchivedService.java

@@ -29,8 +29,10 @@ import com.jeeplus.flowable.feign.IFlowableApi;
 //import com.jeeplus.pubmodules.oss.service.OssService;
 //import com.jeeplus.pubmodules.serialNumTpl.service.SerialnumTplService;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import com.jeeplus.sys.feign.IRoleApi;
 import com.jeeplus.sys.feign.IUserApi;
 import com.jeeplus.sys.feign.IWorkAttachmentApi;
+import com.jeeplus.sys.service.dto.RoleDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 //import com.jeeplus.sys.utils.UserUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -124,6 +126,27 @@ public class ReportCancellApplyArchivedService extends ServiceImpl<ReportCancell
         StringBuilder officeIds = new StringBuilder();
 //        UserDTO userDTO = UserUtils.getCurrentUserDTO();
         List<String> manageOfficeIdList= Lists.newArrayList();
+
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken ( ));
+        //获取当前登录人所属角色
+        //若是评估部门主任,则仅展示部门主任信息
+        //若是评估员工,则仅展示自己的数据信息
+        List<RoleDTO> roleDTOList = userDTO.getRoleDTOList();
+        for (RoleDTO roleDTO : roleDTOList) {
+            //根据角色id查询角色信息
+            RoleDTO roleDTOById = SpringUtil.getBean(IRoleApi.class).getRoleDTOById(roleDTO.getId());
+            if("cwyg".equals(roleDTOById.getEnName()) && "兴光会计员工".equals(roleDTOById.getName())){
+                queryWrapper.eq("a.create_by_id", userDTO.getId());
+                break;
+            }else if("cw_bmzr".equals(roleDTOById.getEnName()) && "兴光会计部门主任".equals(roleDTOById.getName())){
+                queryWrapper.eq("sumo.user_id", userDTO.getId());
+                break;
+            }
+        }
+
+
+
         IPage<ArchivedReportInfoDto> list = applyMapper.getList(page, queryWrapper,officeIds.toString());
         list.getRecords().stream().forEach(i -> {
             // 报告作废归档

+ 84 - 2
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -142,9 +142,9 @@ public class UserController {
                     OfficeDTO officeDTO = UserUtils.getCurrentUserDTO().getOfficeDTO();
                     if (StringUtils.isNotBlank(userDTO.getCertType())) {
                         //获取当前登陆人是否事中审公司人员
-                        if(officeDTO.getParentIds().contains("1615171302381182978")){
+                        /*if(officeDTO.getParentIds().contains("1615171302381182978")){
 
-                        }
+                        }*/
                     }else{
                         // 当不是精确的部门查询时,再添加下面的筛选条件
                         if ((StringUtils.isNotBlank(userDTO.getCompanyDTO().getId()) && StringUtils.isBlank(userDTO.getOfficeDTO().getId()))
@@ -200,6 +200,88 @@ public class UserController {
     }
 
     /**
+     * 查询列表
+     *
+     * @param userDTO
+     * @param page
+     * @return
+     */
+    @ApiLog("用户数据列表")
+    @ApiOperation(value = "用户数据列表")
+    //@PreAuthorize("hasAuthority('sys:user:list')")
+    @GetMapping("userList")
+    public ResponseEntity userList(UserDTO userDTO, Page <UserDTO> page) throws Exception {
+
+        QueryWrapper <UserDTO> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( userDTO, UserDTO.class );
+        // 管理员查询不限制
+        if (!UserUtils.getCurrentUserDTO().isAdmin()) {
+            queryWrapper.isNull("a.is_admin");
+            if (ObjectUtil.isNotEmpty(userDTO)){
+                if (ObjectUtil.isNotEmpty(userDTO.getCompanyDTO()) && ObjectUtil.isNotEmpty(userDTO.getOfficeDTO())) {
+                    //OfficeDTO officeDTO = UserUtils.getCurrentUserDTO().getOfficeDTO();
+                    if (StringUtils.isNotBlank(userDTO.getCertType())) {
+                        //获取当前登陆人是否事中审公司人员
+                        /*if(officeDTO.getParentIds().contains("1615171302381182978")){
+
+                        }*/
+                    }else{
+                        // 当不是精确的部门查询时,再添加下面的筛选条件
+                        if ((StringUtils.isNotBlank(userDTO.getCompanyDTO().getId()) && StringUtils.isBlank(userDTO.getOfficeDTO().getId()))
+                                || "true".equals(userDTO.getSelectAll())) {
+                            // officeDTO.id是空,companyDTO.id不是空的话,说明前端组件点击的集团来进行查询
+                            // selectAll为‘true’的话,说明前端没有选择集团或者部门查询,这个时候要展示全部人员
+                            // 根据当前用户的部门id找到此部门的ids
+                            Office byId = officeService.getById(UserUtils.getCurrentUserDTO().getOfficeDTO().getId());
+                            if(null != byId){
+                                String ids = officeService.getById(byId).getParentIds();
+                                // 根据ids分隔后的index[2],找到当前用户的所属公司id
+                                String companyId = null;
+                                String[] split = ids.split(",");
+                                // split.length大于2,说明当前登录人所属部门是普通部门,展示部分人员信息
+                                // 否则,当前登录人所属公共类部门(忘了叫什么类部门了,就是总经办那种部门),展示全部人员信息
+                                if(split.length>2){
+                                    companyId = split[2];
+                                    // 根据公司id,找到此公司下的所有部门
+                                    List<Office> officeList = officeService.list(new QueryWrapper<Office>().lambda().eq(Office::getParentId, companyId));
+                                    Set officeIdSet = new HashSet();
+                                    for (Office office : officeList) {
+                                        if(StringUtils.isNotBlank(office.getId())){
+                                            officeIdSet.add(office.getId());
+                                        }
+                                    }
+                                    List<String> officeIdList = Lists.newArrayList(officeIdSet);
+                                    // 拿到这些部门的id
+                                    //List<String> officeIdList = officeList.stream().distinct().map(Office::getId).collect(Collectors.toList());
+                                    // 拿到所有公有部门的id
+                                    List<String> officePublicIdList = officeService.list(new LambdaQueryWrapper<Office>().eq(Office::getIsPublic,"1")).stream().map(Office::getId).collect(Collectors.toList());
+                                    // 拿到直属公司的id
+                                    officeIdList.add(companyId);
+                                    // 最后得到的所有部门的id
+                                    officeIdList.addAll(officePublicIdList);
+                                    List<String> lastIds = officeIdList.stream().distinct().collect(Collectors.toList());
+                                    // 添加筛选条件为这些部门的id
+                                    queryWrapper.in("a.office_id",lastIds);
+                                }
+                            }
+                        } else if(StringUtils.isBlank(userDTO.getCompanyDTO().getId()) && StringUtils.isNotBlank(userDTO.getOfficeDTO().getId())) {
+                            // officeDTO.id不是空,companyDTO.id是空的话,说明前端组件点击的部门查询
+                            queryWrapper.eq("a.office_id",userDTO.getOfficeDTO().getId());
+                        }
+                    }
+                }
+            }
+        }
+        if (ObjectUtil.isNotEmpty(userDTO)) {
+            // 当certType传值时,获取拥有此资格证类型的人员
+            if (StringUtils.isNotBlank(userDTO.getCertType())) {
+                queryWrapper.eq("sc.type",userDTO.getCertType());
+            }
+        }
+        IPage <UserDTO> result = userService.userFindPage ( page, queryWrapper );
+        return ResponseEntity.ok ( result );
+    }
+
+    /**
      * 查询列表(排除admin)
      *
      * @param userDTO

+ 3 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/UserMapper.java

@@ -84,6 +84,9 @@ public interface UserMapper extends BaseMapper <User> {
     @InterceptorIgnore(tenantLine = "true")
     IPage <UserDTO> findList(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
 
+
+    IPage <UserDTO> userFindPage(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
     IPage <UserDTO> findList2(Page <UserDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
 
     /**

+ 10 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -159,6 +159,16 @@
         ${ew.customSqlSegment}
     </select>
 
+    <!-- 分页查询用户信息 -->
+    <select id="userFindPage" resultMap="userResult">
+        SELECT
+        <include refid="userColumns"/>
+        FROM sys_user a
+        left join sys_cert sc on a.id = sc.user_id and sc.del_flag = '0'
+        <include refid="userJoins"/>
+        ${ew.customSqlSegment}
+    </select>
+
 
     <!-- 分页查询用户信息 -->
     <select id="findList2" resultMap="userResult">

+ 6 - 1
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/OfficeService.java

@@ -129,7 +129,7 @@ public class OfficeService extends TreeService <OfficeMapper, Office> {
         if (CollectionUtil.isNotEmpty(rootTrees)) {
             String finalCompanyId = companyId;
             rootTrees.stream().forEach(item->{
-                if ("1".equals(item.getIsPublic())) { // 找到公有的集团
+                /*if ("1".equals(item.getIsPublic())) { // 找到公有的集团
                     OfficeDTO officeDTO = item;
                     if (CollectionUtil.isNotEmpty(item.getChildren())){
                         officeDTO.setChildren(item.getChildren());
@@ -149,7 +149,12 @@ public class OfficeService extends TreeService <OfficeMapper, Office> {
                         }
                         os.add(officeDTO);
                     }
+                }*/
+                OfficeDTO officeDTO = item;
+                if (CollectionUtil.isNotEmpty(item.getChildren())){
+                    officeDTO.setChildren(item.getChildren());
                 }
+                os.add(officeDTO);
             });
         }
         return os;

+ 15 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -205,6 +205,21 @@ public class UserService extends ServiceImpl <UserMapper, User> {
     }
 
 
+    /**
+     * 自定义分页检索
+     *
+     * @param page
+     * @param queryWrapper
+     * @return
+     */
+    public IPage <UserDTO> userFindPage(Page <UserDTO> page, QueryWrapper queryWrapper) {
+        queryWrapper.eq ( "a.del_flag", CommonConstants.NOT_DELETED ); // 排除已经删除
+        return baseMapper.userFindPage ( page, queryWrapper );
+
+
+    }
+
+
     public IPage <UserDTO> findPage2(Page <UserDTO> page, QueryWrapper queryWrapper) {
         queryWrapper.eq ( "a.del_flag", CommonConstants.NOT_DELETED ); // 排除已经删除
         return baseMapper.findList2 ( page, queryWrapper );