maven
2025-11-24 3e451c90f8734835743e9cebcf02ce30e577c28d
yys
1.新增入职导入,下载模板
已添加1个文件
已修改5个文件
184 ■■■■■ 文件已修改
src/main/java/com/ruoyi/staff/controller/StaffJoinLeaveRecordController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/dto/StaffJoinLeaveRecordExcelDto.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/pojo/StaffJoinLeaveRecord.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/service/IStaffJoinLeaveRecordService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/staff/StaffJoinLeaveRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/controller/StaffJoinLeaveRecordController.java
@@ -4,9 +4,11 @@
import com.ruoyi.basic.dto.SupplierManageDto;
import com.ruoyi.basic.pojo.SupplierManage;
import com.ruoyi.basic.service.ISupplierService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.staff.dto.StaffJoinLeaveRecordExcelDto;
import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
import com.ruoyi.staff.service.IStaffJoinLeaveRecordService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -92,5 +94,28 @@
        staffJoinLeaveRecordService.staffJoinLeaveRecordExport(response, staffJoinLeaveRecord);
    }
    /**
     * æ–°å¢žå…¥èŒä¸‹è½½æ¨¡æ¿
     */
    @PostMapping("/importTemplate")
    @Log(title = "新增入职下载模板", businessType = BusinessType.EXPORT)
    public void importTemplate(HttpServletResponse response){
        ExcelUtil<StaffJoinLeaveRecordExcelDto> util = new ExcelUtil<>(StaffJoinLeaveRecordExcelDto.class);
        util.importTemplateExcel(response, "新增入职模板");
    }
    /**
     * æ–°å¢žå…¥èŒå¯¼å…¥
     */
    @PostMapping("/import")
    @Log(title = "新增入职导入", businessType = BusinessType.IMPORT)
    public AjaxResult importData(@RequestPart("file") MultipartFile file) throws  Exception{
        Boolean b = staffJoinLeaveRecordService.importData(file);
        if (b) {
            return AjaxResult.success("导入成功");
        }
        return AjaxResult.error("导入失败");
    }
}
src/main/java/com/ruoyi/staff/dto/StaffJoinLeaveRecordExcelDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,125 @@
package com.ruoyi.staff.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
 * @author :yys
 * @date : 2025/11/24 11:09
 */
@Data
public class StaffJoinLeaveRecordExcelDto {
    /**
     * è¯•用期(月)
     */
    @Excel(name = "试用期(月)")
    private Integer probationPeriod;
    /**
     * å‘˜å·¥ç¼–号
     */
    @Excel(name = "员工编号")
    private String staffNo;
    /**
     * å‘˜å·¥å§“名
     */
    @Excel(name = "员工姓名")
    private String staffName;
    /**
     * æ€§åˆ«
     */
    @Excel(name = "性别")
    private String sex;
    /**
     * ç±è´¯
     */
    @Excel(name = "籍贯")
    private String nativePlace;
    /**
     * éƒ¨é—¨å²—位id
     */
//    @Excel(name = "岗位")
    private Long deptPositionId;
    @TableField(exist = false)
    @Excel(name = "岗位")
    private String deptPositionName;
    /**
     * å®¶åº­ä½å€
     */
    @Excel(name = "家庭住址")
    private String adress;
    /**
     * ç¬¬ä¸€å­¦åކ
     */
    @Excel(name = "第一学历")
    private String firstStudy;
    /**
     * ä¸“业
     */
    @Excel(name = "专业")
    private String profession;
    /**
     * èº«ä»½è¯å·ç 
     */
    @Excel(name = "身份证号码")
    private String identityCard;
    /**
     * å¹´é¾„
     */
    @Excel(name = "年龄")
    private String age;
    /**
     * è”系电话
     */
    @Excel(name = "联系电话")
    private String phone;
    /**
     * ç´§æ€¥è”系人
     */
    @Excel(name = "紧急联系人")
    private String emergencyContact;
    /**
     * ç´§æ€¥è”系人电话
     */
    @Excel(name = "紧急联系人电话")
    private String emergencyContactPhone;
    /**
     * åˆåŒå¹´é™
     */
    @Excel(name = "合同年限")
    private String contractTerm;
    /**
     * åˆåŒå¼€å§‹æ—¥æœŸ
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date contractStartTime;
    /**
     * åˆåŒç»“束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date contractEndTime;
}
src/main/java/com/ruoyi/staff/pojo/StaffJoinLeaveRecord.java
@@ -71,7 +71,7 @@
     * éƒ¨é—¨å²—位id
     */
//    @Excel(name = "岗位")
    private Integer deptPositionId;
    private Long deptPositionId;
    @TableField(exist = false)
    @Excel(name = "岗位")
src/main/java/com/ruoyi/staff/service/IStaffJoinLeaveRecordService.java
@@ -23,4 +23,6 @@
    int delStaffJoinLeaveRecord(List<Integer> ids);
    int updateStaffJoinLeaveRecord(StaffJoinLeaveRecord staffJoinLeaveRecord);
    Boolean importData(MultipartFile file) throws Exception;
}
src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
@@ -7,7 +7,10 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.excel.ExcelUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.lavorissue.mapper.DeptPositionMapper;
import com.ruoyi.lavorissue.pojo.DeptPosition;
import com.ruoyi.staff.mapper.StaffJoinLeaveRecordMapper;
import com.ruoyi.staff.mapper.StaffOnJobMapper;
import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
@@ -17,6 +20,8 @@
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletException;
@@ -166,4 +171,27 @@
        }
        return staffJoinLeaveRecordMapper.updateById(staffJoinLeaveRecord);
    }
    private final DeptPositionMapper deptPositionMapper;
    @Override
    public Boolean importData(MultipartFile file) throws Exception{
        ExcelUtil<StaffJoinLeaveRecord> util = new ExcelUtil<>(StaffJoinLeaveRecord.class);
        List<StaffJoinLeaveRecord> staffJoinLeaveRecords = util.importExcel(file.getInputStream());
        if(CollectionUtils.isEmpty(staffJoinLeaveRecords)){
            return false;
        }
        List<DeptPosition> deptPositions = deptPositionMapper.selectList(null);
        if(CollectionUtils.isEmpty(deptPositions)){
            return false;
        }
        // é€šè¿‡éƒ¨é—¨åç§°æŸ¥è¯¢éƒ¨é—¨id
        for (StaffJoinLeaveRecord staffJoinLeaveRecord : staffJoinLeaveRecords) {
            staffJoinLeaveRecord.setStaffState(1);
            Optional<DeptPosition> deptPosition = deptPositions.stream().filter(deptPosition1 -> deptPosition1.getName().equals(staffJoinLeaveRecord.getDeptPositionName())).findFirst();
            deptPosition.ifPresent(position -> staffJoinLeaveRecord.setDeptPositionId(position.getId()));
            add(staffJoinLeaveRecord);
        }
        return true;
    }
}
src/main/resources/mapper/staff/StaffJoinLeaveRecordMapper.xml
@@ -8,7 +8,7 @@
        FROM staff_join_leave_record t1
        left join dept_position  t2 on t1.dept_position_id = t2.id and t2.type = 2
        where
        staff_state = #{staffJoinLeaveRecord.staffState}
        t1.staff_state = #{staffJoinLeaveRecord.staffState}
        <if test="staffJoinLeaveRecord.staffName != null and staffJoinLeaveRecord.staffName != '' ">
            AND t1.staff_name LIKE CONCAT('%',#{staffJoinLeaveRecord.staffName},'%')
        </if>