From 3e451c90f8734835743e9cebcf02ce30e577c28d Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 24 十一月 2025 11:27:18 +0800
Subject: [PATCH] yys 1.新增入职导入,下载模板
---
src/main/resources/mapper/staff/StaffJoinLeaveRecordMapper.xml | 2
src/main/java/com/ruoyi/staff/controller/StaffJoinLeaveRecordController.java | 25 ++++++
src/main/java/com/ruoyi/staff/pojo/StaffJoinLeaveRecord.java | 2
src/main/java/com/ruoyi/staff/dto/StaffJoinLeaveRecordExcelDto.java | 125 +++++++++++++++++++++++++++++++
src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java | 28 +++++++
src/main/java/com/ruoyi/staff/service/IStaffJoinLeaveRecordService.java | 2
6 files changed, 182 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/ruoyi/staff/controller/StaffJoinLeaveRecordController.java b/src/main/java/com/ruoyi/staff/controller/StaffJoinLeaveRecordController.java
index 7e37a91..9755c31 100644
--- a/src/main/java/com/ruoyi/staff/controller/StaffJoinLeaveRecordController.java
+++ b/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("瀵煎叆澶辫触");
+ }
+
}
diff --git a/src/main/java/com/ruoyi/staff/dto/StaffJoinLeaveRecordExcelDto.java b/src/main/java/com/ruoyi/staff/dto/StaffJoinLeaveRecordExcelDto.java
new file mode 100644
index 0000000..bd35390
--- /dev/null
+++ b/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;
+}
diff --git a/src/main/java/com/ruoyi/staff/pojo/StaffJoinLeaveRecord.java b/src/main/java/com/ruoyi/staff/pojo/StaffJoinLeaveRecord.java
index 4ee26a7..db79027 100644
--- a/src/main/java/com/ruoyi/staff/pojo/StaffJoinLeaveRecord.java
+++ b/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 = "宀椾綅")
diff --git a/src/main/java/com/ruoyi/staff/service/IStaffJoinLeaveRecordService.java b/src/main/java/com/ruoyi/staff/service/IStaffJoinLeaveRecordService.java
index 56875b3..44ba864 100644
--- a/src/main/java/com/ruoyi/staff/service/IStaffJoinLeaveRecordService.java
+++ b/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;
}
diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
index f82ecc8..50b1090 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
+++ b/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;
+ }
}
diff --git a/src/main/resources/mapper/staff/StaffJoinLeaveRecordMapper.xml b/src/main/resources/mapper/staff/StaffJoinLeaveRecordMapper.xml
index fde6af6..991e1b6 100644
--- a/src/main/resources/mapper/staff/StaffJoinLeaveRecordMapper.xml
+++ b/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>
--
Gitblit v1.9.3