Browse Source

入职登记导出

sangwenwei 5 months ago
parent
commit
7a13ad8170

+ 26 - 43
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/controller/EnrollmentRegistrationController.java

@@ -1,76 +1,37 @@
 package com.jeeplus.human.enrollment.enrollmentRegistration.controller;
 
-import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.extra.spring.SpringUtil;
-import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.ExcelWriter;
-import com.alibaba.excel.write.metadata.WriteSheet;
-import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.common.collect.Lists;
-import com.jeeplus.common.TokenProvider;
 import com.jeeplus.common.excel.EasyExcelUtils;
+import com.jeeplus.common.excel.ExcelOptions;
+import com.jeeplus.common.excel.annotation.ExportMode;
 import com.jeeplus.common.utils.ResponseUtil;
-import com.jeeplus.flowable.feign.IFlowableApi;
 import com.jeeplus.human.depart.handover.domain.Handover;
 import com.jeeplus.human.depart.handover.service.HandoverService;
 import com.jeeplus.human.enrollment.enrollmentRegistration.domain.*;
 import com.jeeplus.human.enrollment.enrollmentRegistration.service.*;
+import com.jeeplus.human.enrollment.enrollmentRegistration.service.dto.ExportDTO;
 import com.jeeplus.human.enrollment.enrollmentRegistration.service.dto.UserTemplate;
-import com.jeeplus.human.enrollment.enrollmentRegistration.utils.HunamFreemarkerUtil;
-import com.jeeplus.human.enrollment.enrollmentRegistration.utils.IdCardUtil;
-import com.jeeplus.human.practice.register.domain.Registration;
 import com.jeeplus.logging.annotation.ApiLog;
 import com.jeeplus.logging.constant.enums.LogTypeEnum;
-import com.jeeplus.sys.feign.IOfficeApi;
-import com.jeeplus.sys.feign.IRoleApi;
-import com.jeeplus.sys.feign.IUserApi;
-import com.jeeplus.sys.service.dto.OfficeDTO;
-import com.jeeplus.sys.service.dto.RoleDTO;
-import com.jeeplus.sys.service.dto.UserDTO;
-import com.jeeplus.utils.StringUtils;
+import com.jeeplus.pubmodules.holiday.utils.EasyPoiUtil;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.models.auth.In;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.pdfbox.pdmodel.PDDocument;
-import org.apache.pdfbox.pdmodel.PDPage;
-import org.apache.pdfbox.pdmodel.PDPageContentStream;
-import org.apache.pdfbox.pdmodel.common.PDRectangle;
-import org.apache.pdfbox.pdmodel.font.PDType0Font;
-import org.apache.pdfbox.pdmodel.graphics.state.RenderingMode;
-import org.apache.pdfbox.util.Matrix;
-import org.apache.poi.xwpf.usermodel.XWPFDocument;
-import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
 
 import javax.annotation.Resource;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
 import java.io.*;
 import java.lang.reflect.Field;
 import java.lang.reflect.Type;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -664,4 +625,26 @@ public class EnrollmentRegistrationController {
         return flag;
     }
 
+    @ApiLog(value = "导出入职人员数据", type = LogTypeEnum.EXPORT)
+    @GetMapping("export")
+    @ApiOperation(value = "导出入职人员数据")
+    public void exportFile(ExportDTO exportTemplate, Page <ExportDTO> page, ExcelOptions options, HttpServletResponse response) throws Exception {
+        String fileName = options.getFilename();
+        String sheetName = options.getSheetName();
+        List<ExportDTO> result = new ArrayList<>();
+        if ( ExportMode.current.equals ( options.getMode() ) ) {
+            result = service.exportList(page,exportTemplate).getRecords();
+        } else if (ExportMode.selected.equals ( options.getMode() )) {
+            result = service.exportList(page,exportTemplate).getRecords().stream ( ).filter ( item ->
+                    options.getSelectIds ( ).contains ( item.getId ( ) )
+            ).collect ( Collectors.toList ( ) );
+        } else {
+            page.setSize (-1);
+            page.setCurrent (0);
+            result = service.exportList(page,exportTemplate).getRecords();
+        }
+        EasyPoiUtil.exportExcel ( result, sheetName,  sheetName, ExportDTO.class, fileName, response );
+
+    }
+
 }

+ 3 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/mapper/EnrollmentRegistrationMapper.java

@@ -7,6 +7,7 @@ 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.human.enrollment.enrollmentRegistration.domain.EnrollmentRegistration;
+import com.jeeplus.human.enrollment.enrollmentRegistration.service.dto.ExportDTO;
 import com.jeeplus.human.practice.register.domain.Registration;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -29,6 +30,8 @@ public interface EnrollmentRegistrationMapper extends BaseMapper<EnrollmentRegis
      * @return
      */
     IPage<EnrollmentRegistration> findList(Page<EnrollmentRegistration> page, @Param(Constants.WRAPPER) QueryWrapper<EnrollmentRegistration> queryWrapper);
+    //导出
+    IPage<ExportDTO> exportList(Page<ExportDTO> page, @Param(Constants.WRAPPER) QueryWrapper<ExportDTO> queryWrapper);
 
     @InterceptorIgnore(tenantLine = "true")
     EnrollmentRegistration getById(@Param("id") String id);

+ 17 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/mapper/xml/EnrollmentRegistrationMapper.xml

@@ -76,6 +76,23 @@
         ${ew.customSqlSegment}
         ORDER BY a.create_time DESC
     </select>
+    <select id="exportList"
+            resultType="com.jeeplus.human.enrollment.enrollmentRegistration.service.dto.ExportDTO">
+        select
+        <include refid="Base_Column_List"></include>,
+        d.ID_ AS task_id,
+        su.name as projectManagerName,
+        so.name as departmentName,
+        so1.name as company
+        from human_resources_enrollment_registration a
+        LEFT JOIN act_ru_task d ON a.proc_ins_id = d.PROC_INST_ID_
+        left join sys_user su on a.project_manager = su.id
+        left join sys_office so on a.department = so.id
+        left join sys_office so1 on so.parent_id = so1.id
+        ${ew.customSqlSegment}
+        ORDER BY a.create_time DESC
+    </select>
+
     <select id="getById"
             resultType="com.jeeplus.human.enrollment.enrollmentRegistration.domain.EnrollmentRegistration">
         select

+ 24 - 1
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/service/EnrollmentRegistrationService.java

@@ -20,8 +20,8 @@ import com.jeeplus.human.enrollment.enrollmentRegistration.domain.EnrollmentWage
 import com.jeeplus.human.enrollment.enrollmentRegistration.mapper.EnrollmentRegistrationMapper;
 import com.jeeplus.human.enrollment.enrollmentRegistration.mapper.EnrollmentSocialSecurityCardMapper;
 import com.jeeplus.human.enrollment.enrollmentRegistration.mapper.EnrollmentWageCardMapper;
+import com.jeeplus.human.enrollment.enrollmentRegistration.service.dto.ExportDTO;
 import com.jeeplus.human.enrollment.enrollmentRegistration.utils.SnowFlake;
-import com.jeeplus.human.practice.register.domain.Registration;
 import com.jeeplus.sys.feign.IOfficeApi;
 import com.jeeplus.sys.feign.IPostApi;
 import com.jeeplus.sys.feign.IRoleApi;
@@ -90,6 +90,29 @@ public class EnrollmentRegistrationService extends ServiceImpl<EnrollmentRegistr
 
     }
 
+
+    /**
+     * 导出实习人员登记表信息
+     * @param page
+     * @param projectReportData
+     * @return
+     * @throws Exception
+     */
+    public IPage<ExportDTO> exportList(Page<ExportDTO> page, ExportDTO projectReportData) throws Exception{
+        QueryWrapper<ExportDTO> queryWrapper = QueryWrapperGenerator.buildQueryCondition (projectReportData,ExportDTO.class);
+        queryWrapper.eq("a.del_flag","0");
+        if (StringUtils.isNotBlank(projectReportData.getMobilePhone())) {
+            queryWrapper.like("a.mobile_phone",projectReportData.getMobilePhone());
+        }
+        if (StringUtils.isNotBlank(projectReportData.getName())) {
+            queryWrapper.like("a.name",projectReportData.getName());
+        }
+        IPage<ExportDTO> list = mapper.exportList(page, queryWrapper);
+        return list;
+
+    }
+
+
     public EnrollmentRegistration saveRegistration(EnrollmentRegistration registration) throws Exception {
         if (StringUtils.isNotEmpty(registration.getId())){
 

+ 45 - 0
jeeplus-modules/jeeplus-human/src/main/java/com/jeeplus/human/enrollment/enrollmentRegistration/service/dto/ExportDTO.java

@@ -0,0 +1,45 @@
+package com.jeeplus.human.enrollment.enrollmentRegistration.service.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 入职人员登记
+ * @author 王强
+ * @version 1.0
+ * @date 2023-09-27 14:14
+ */
+@Data
+public class ExportDTO extends BaseEntity {
+    @Excel(name = "姓名",width = 25)
+    private String name;                //姓名
+
+    @Excel(name = "籍贯",width = 25)
+    private String nativePlace;         //籍贯
+
+    @Excel(name = "联系电话",width = 25)
+    private String mobilePhone;         //联系电话
+    @Excel(name = "身份证号码",width = 25)
+    private String idCard;              //身份证号码
+
+    @Excel(name = "所属部门",width = 25)
+    private String departmentName;          //所属部门
+    private String entryDate;           //进所日期
+
+    @TableField(exist = false)
+    @Excel(name = "所属公司",width = 25)
+    private String company;     //所属公司
+    @TableField(exist = false)
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    @Excel(name = "进所日期",exportFormat = "yyyy-MM-dd",importFormat = "yyyy-MM-dd")
+    private Date inDate;  //进所日期
+}