瀏覽代碼

调整导出状态

DESKTOP-VAEGFGM\zqc 2 月之前
父節點
當前提交
acd90c378e

+ 12 - 7
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/person/PersonInfoController.java

@@ -32,6 +32,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 
 import static com.citu.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
@@ -102,11 +103,14 @@ public class PersonInfoController {
     @Operation(summary = "导出人才信息-人才档案 Excel")
     @PreAuthorize("@ss.hasPermission('menduner:system:person-info:export')")
     @ApiAccessLog(operateType = EXPORT)
-    public void exportUserInfoExcel(@Valid PersonInfoPageReqVO pageReqVO,
+    public void exportUserInfoExcel(@Valid UserPersonPageReqVO pageReqVO,
                                     HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<PersonInfoRespExcelVO> list = BeanUtils.toBean(personInfoService.getUserInfoPage(pageReqVO).getList(), PersonInfoRespExcelVO.class);
-        for (PersonInfoRespExcelVO personInfoRespExcelVO : list) {
+        PageResult<UserPersonRespVO> pageResult = personIntegrationService.page(pageReqVO);
+        List<PersonInfoRespExcelVO> list =  new ArrayList<>();
+        for (UserPersonRespVO userPersonRespVO : pageResult.getList()) {
+            PersonInfoRespExcelVO personInfoRespExcelVO = new PersonInfoRespExcelVO();
+            BeanUtils.copyProperties(userPersonRespVO.getPerson(),personInfoRespExcelVO);
             // 替换字典信息
             if (StringUtils.isNotBlank(personInfoRespExcelVO.getJobType())) {
                 personInfoRespExcelVO.setJobType(DictFrameworkUtils.getDictDataLabel("menduner_job_type", personInfoRespExcelVO.getJobType()));
@@ -115,7 +119,7 @@ public class PersonInfoController {
             personInfoRespExcelVO.setJobStatus(DictFrameworkUtils.getDictDataLabel("menduner_job_status", personInfoRespExcelVO.getJobStatus()));
              }
             if (StringUtils.isNotBlank(personInfoRespExcelVO.getSex())) {
-                personInfoRespExcelVO.setSex(DictFrameworkUtils.getDictDataLabel("sex", personInfoRespExcelVO.getSex()));
+                personInfoRespExcelVO.setSex(DictFrameworkUtils.getDictDataLabel("menduner_sex", personInfoRespExcelVO.getSex()));
             }
             if (StringUtils.isNotBlank(personInfoRespExcelVO.getType())) {
                 personInfoRespExcelVO.setType(DictFrameworkUtils.getDictDataLabel("menduner_user_type",personInfoRespExcelVO.getType()));
@@ -129,10 +133,11 @@ public class PersonInfoController {
             if(null!=personInfoRespExcelVO.getTagList() && !personInfoRespExcelVO.getTagList().isEmpty()){
                 personInfoRespExcelVO.setTagLists(StringUtils.join(personInfoRespExcelVO.getTagList(),","));
             }
-            if(null!=personInfoRespExcelVO.getLastWorkExp()){
-                personInfoRespExcelVO.setWorkEnterpriseName(personInfoRespExcelVO.getLastWorkExp().getEnterpriseName());
-                personInfoRespExcelVO.setWorkJob(personInfoRespExcelVO.getLastWorkExp().getPositionName());
+            if(null!=userPersonRespVO.getWork()){
+                personInfoRespExcelVO.setWorkEnterpriseName(userPersonRespVO.getWork().getEnterpriseName());
+                personInfoRespExcelVO.setWorkJob(userPersonRespVO.getWork().getPositionName());
             }
+            list.add(personInfoRespExcelVO);
 
         }
         // 导出 Excel

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/person/vo/PersonInfoRespExcelVO.java

@@ -15,7 +15,7 @@ import java.util.List;
 @Data
 public class PersonInfoRespExcelVO {
 
-    @Schema(description = "类型(0求职者 1学生)", example = "18804")
+    @Schema(description = "类型", example = "18804")
     @ExcelProperty("类型")
     private String type;
 
@@ -73,7 +73,7 @@ public class PersonInfoRespExcelVO {
     private String jobType;
 
     @Schema(description = "求职状态(0离职-随时到岗 1在职-月内到岗 2在职-考虑机会 3在职-暂不考虑)", example = "1")
-    @ExcelProperty("求职状态(0离职-随时到岗 1在职-月内到岗 2在职-考虑机会 3在职-暂不考虑)")
+    @ExcelProperty("求职状态")
     private String jobStatus;
 
     @Schema(description = "首次工作时间")

+ 1 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/user/MdeUserMapper.java

@@ -62,6 +62,7 @@ public interface MdeUserMapper extends BaseMapperX<MdeUserDO> {
         query.leftJoin(PersonInfoDO.class, on -> on.eq(PersonInfoDO::getUserId, MdeUserDO::getId));
         query.leftJoin(JobInterestedDO.class, JobInterestedDO::getUserId, PersonInfoDO::getUserId);
 
+
         query.likeRightIfExists(PersonInfoDO::getName, reqVO.getName())
                 .likeRightIfExists(PersonInfoDO::getForeignName, reqVO.getForeignName());
         query.likeRightIfExists(PersonInfoDO::getPhone, reqVO.getPhone())

+ 18 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/workexp/WorkExpMapper.java

@@ -1,12 +1,16 @@
 package com.citu.module.menduner.system.dal.mysql.workexp;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.citu.framework.tenant.core.aop.TenantIgnore;
 import com.citu.module.menduner.system.controller.base.workexp.WorkExpPageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.eduexp.EduExpDO;
 import com.citu.module.menduner.system.dal.dataobject.workexp.WorkExpDO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.util.Collection;
@@ -72,4 +76,18 @@ public interface WorkExpMapper extends BaseMapperX<WorkExpDO> {
 
     @Select("select user_id  from mde_work_exp where enterprise_name LIKE concat('%',#{brand},'%') group by user_id limit 10000  ")
     List<Long> selectByEnterpriseName(String brand);
+
+    @InterceptorIgnore(tenantLine = "true", dataPermission = "true")
+    @TenantIgnore
+    @Select("<script>" +
+            "select exp.* from " +
+            "(" +
+            " select user_id,min(start_time) as start_time,min(create_time) as create_time  from mde_work_exp  group by user_id " +
+            ") tab  left join  mde_work_exp exp on tab.user_id = exp.user_id and tab.start_time = exp.start_time  and tab.create_time=exp.create_time " +
+            "where exp.id is not null and exp.user_id in  " +
+            "<foreach item='id' collection='userId' open='(' separator=',' close=')'>" +
+            "#{id}" +
+            "</foreach>" +
+            "</script>")
+    List<WorkExpDO> selectBatchUserLastOne(@Param("userId") List<Long> collect);
 }

+ 9 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationServiceImpl.java

@@ -121,10 +121,16 @@ public class PersonIntegrationServiceImpl implements PersonIntegrationService {
     @Override
     public PageResult<UserPersonRespVO> page(UserPersonPageReqVO pageReqVO) {
         PageResult<UserPersonRespVO> result = userMapper.page(pageReqVO);
+        Map<Long,WorkExpDO> expMap =new HashMap<>();
+       List<WorkExpDO> lastWorkExps  = workExpMapper.selectBatchUserLastOne(result.getList().stream().map(item -> item.getUser().getId()).collect(Collectors.toList()));
+        lastWorkExps.forEach(item->expMap.put(item.getUserId(),item));
         result.getList().forEach(item -> {
-            WorkExpDO lastWorkExp = workExpMapper.selectLastOne(item.getUser().getId());
-            if (null != lastWorkExp) {
-                item.setWork(WorkExpConvert.INSTANCE.convert(lastWorkExp));
+//            WorkExpDO lastWorkExp = workExpMapper.selectLastOne(item.getUser().getId());
+//            if (null != lastWorkExp) {
+//            }
+            WorkExpDO workExpDO = expMap.get(item.getUser().getId());
+            if(null!=workExpDO) {
+                item.setWork(WorkExpConvert.INSTANCE.convert(expMap.get(item.getUser().getId())));
             }
             if (null != item.getUser().getInviteCode()) {
                 // 查询邀请人是否填写个人简历,填写了就显示名称,没有填写则显示登录手机号