| src/main/java/com/ruoyi/staff/controller/StaffJoinLeaveRecordController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/staff/dto/StaffJoinLeaveRecordExcelDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/staff/pojo/StaffJoinLeaveRecord.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/staff/service/IStaffJoinLeaveRecordService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/mapper/staff/StaffJoinLeaveRecordMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | 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>