From 21898888e7781959f746b1fe6814f7353ab4810f Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期五, 21 八月 2026 17:03:14 +0800
Subject: [PATCH] 考勤记录下载模板 导入计算迟到加班正常打卡
---
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordImportReqVO.java | 18 +++
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordImportExcelVO.java | 51 ++++++++++
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java | 10 ++
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRecordController.java | 102 ++++++++++++++++++++
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordService.java | 6 +
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeService.java | 6 +
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordServiceImpl.java | 80 ++++++++++++++++
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordRespVO.java | 4
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/employee/HrmEmployeeMapper.java | 8 +
9 files changed, 285 insertions(+), 0 deletions(-)
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRecordController.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRecordController.java
index e99c45f..9f94ad3 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRecordController.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRecordController.java
@@ -7,6 +7,8 @@
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceRecordImportExcelVO;
+import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceRecordImportReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceRecordPageReqVO;
import cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo.HrmAttendanceRecordRespVO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceRecordDO;
@@ -142,6 +144,7 @@
HrmEmployeeDO employee = employeeMap.get(respVO.getUserId());
if (employee != null) {
respVO.setUserName(employee.getName());
+ respVO.setPhone(employee.getPhone());
}
// 閮ㄩ棬鍚嶇О
DeptRespDTO dept = deptMap.get(respVO.getDeptId());
@@ -166,6 +169,7 @@
HrmEmployeeDO employee = employeeService.getEmployee(attendanceRecord.getUserId());
if (employee != null) {
respVO.setUserName(employee.getName());
+ respVO.setPhone(employee.getPhone());
}
}
if (attendanceRecord.getDeptId() != null) {
@@ -177,6 +181,104 @@
return success(respVO);
}
+ @GetMapping("/get-import-template")
+ @Operation(summary = "涓嬭浇鑰冨嫟璁板綍瀵煎叆妯℃澘")
+ @PreAuthorize("@ss.hasPermission('hrm:attendance-record:import')")
+ public void importTemplate(HttpServletResponse response) throws IOException {
+ List<HrmAttendanceRecordImportExcelVO> list = Collections.singletonList(
+ HrmAttendanceRecordImportExcelVO.builder()
+ .userName("寮犱笁")
+ .phone("13800138000")
+ .date(java.time.LocalDate.of(2026, 1, 15))
+ .clockInTime(java.time.LocalDateTime.of(2026, 1, 15, 8, 30))
+ .clockOutTime(java.time.LocalDateTime.of(2026, 1, 15, 17, 30))
+ .clockInType(1)
+ .clockOutType(1)
+ .location("鍔炲叕鍖�")
+ .remark("绀轰緥鏁版嵁")
+ .build()
+ );
+ ExcelUtils.write(response, "鑰冨嫟瀵煎叆妯℃澘.xls", "鑰冨嫟璁板綍", HrmAttendanceRecordImportExcelVO.class, list);
+ }
+
+ @PostMapping("/import")
+ @Operation(summary = "瀵煎叆鑰冨嫟璁板綍")
+ @PreAuthorize("@ss.hasPermission('hrm:attendance-record:import')")
+ public CommonResult<String> importExcel(@Valid HrmAttendanceRecordImportReqVO importReqVO) throws IOException {
+ List<HrmAttendanceRecordImportExcelVO> list = ExcelUtils.read(importReqVO.getFile(), HrmAttendanceRecordImportExcelVO.class);
+ if (CollUtil.isEmpty(list)) {
+ return success("娌℃湁鍙鍏ョ殑鏁版嵁");
+ }
+ int successCount = 0;
+ Set<String> missingNames = new LinkedHashSet<>();
+ Set<String> duplicateNames = new LinkedHashSet<>();
+ Set<String> invalidRows = new LinkedHashSet<>();
+ for (HrmAttendanceRecordImportExcelVO item : list) {
+ if (item.getDate() == null) {
+ invalidRows.add((item.getUserName() == null || item.getUserName().isBlank()) ? "鏈~濮撳悕鐨勮" : "鑰冨嫟鏃ユ湡涓虹┖(" + item.getUserName().trim() + ")");
+ continue;
+ }
+ if (item.getUserName() == null || item.getUserName().isBlank()) {
+ invalidRows.add("鑰冨嫟鏃ユ湡涓� " + item.getDate() + " 浣嗘湭濉憳宸ュ鍚�");
+ continue;
+ }
+ List<HrmEmployeeDO> employees = employeeService.getEmployeeListByName(item.getUserName().trim());
+ if (employees.isEmpty()) {
+ missingNames.add(item.getUserName().trim());
+ continue;
+ }
+ HrmEmployeeDO employee = employees.get(0);
+ // 瀛樺湪澶氫釜鍚屽悕鍛樺伐鏃讹紝鐢ㄦ墜鏈哄彿鍖哄垎
+ if (employees.size() > 1) {
+ String phone = item.getPhone() != null ? item.getPhone().trim() : null;
+ List<HrmEmployeeDO> matchedByPhone = new ArrayList<>();
+ if (phone != null && !phone.isEmpty()) {
+ for (HrmEmployeeDO emp : employees) {
+ if (phone.equals(emp.getPhone())) {
+ matchedByPhone.add(emp);
+ }
+ }
+ }
+ if (matchedByPhone.size() == 1) {
+ employee = matchedByPhone.get(0);
+ } else {
+ duplicateNames.add(item.getUserName().trim());
+ continue;
+ }
+ }
+ HrmAttendanceRecordDO record = attendanceRecordService.getAttendanceRecordByUserIdAndDate(employee.getId(), item.getDate());
+ if (record == null) {
+ record = HrmAttendanceRecordDO.builder()
+ .userId(employee.getId()).deptId(employee.getDeptId()).date(item.getDate())
+ .clockInTime(item.getClockInTime()).clockOutTime(item.getClockOutTime())
+ .clockInType(item.getClockInType()).clockOutType(item.getClockOutType())
+ .location(item.getLocation()).remark(item.getRemark())
+ .dataSource(2).build();
+ attendanceRecordService.createImportedRecord(record);
+ } else if (Boolean.TRUE.equals(importReqVO.getUpdateSupport())) {
+ record.setClockInTime(item.getClockInTime());
+ record.setClockOutTime(item.getClockOutTime());
+ record.setClockInType(item.getClockInType());
+ record.setClockOutType(item.getClockOutType());
+ record.setLocation(item.getLocation());
+ record.setRemark(item.getRemark());
+ attendanceRecordService.updateImportedRecord(record);
+ }
+ successCount++;
+ }
+ StringBuilder msg = new StringBuilder("鎴愬姛瀵煎叆 " + successCount + " 鏉�");
+ if (!missingNames.isEmpty()) {
+ msg.append("锛涗互涓嬪憳宸ヤ笉瀛樺湪锛屾湭鑳藉鍏ワ細").append(String.join("銆�", missingNames));
+ }
+ if (!duplicateNames.isEmpty()) {
+ msg.append("锛涗互涓嬪憳宸ュ瓨鍦ㄥ鍚嶅悓鍚嶅憳宸ワ紝闇�琛ュ厖鎵嬫満鍙峰尯鍒嗭紝鏈兘瀵煎叆锛�").append(String.join("銆�", duplicateNames));
+ }
+ if (!invalidRows.isEmpty()) {
+ msg.append("锛涗互涓嬭褰曟暟鎹笉瀹屾暣锛屾湭鑳藉鍏ワ細").append(String.join("銆�", invalidRows));
+ }
+ return success(msg.toString());
+ }
+
@GetMapping("/export-excel")
@Operation(summary = "瀵煎嚭鑰冨嫟璁板綍 Excel")
@PreAuthorize("@ss.hasPermission('hrm:attendance:export')")
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordImportExcelVO.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordImportExcelVO.java
new file mode 100644
index 0000000..44e4ee1
--- /dev/null
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordImportExcelVO.java
@@ -0,0 +1,51 @@
+package cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo;
+
+import cn.idev.excel.annotation.ExcelProperty;
+import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
+import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * 鑰冨嫟璁板綍 Excel 瀵煎叆妯℃澘 VO
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class HrmAttendanceRecordImportExcelVO {
+
+ @ExcelProperty("鍛樺伐濮撳悕")
+ private String userName;
+
+ @ExcelProperty("鎵嬫満鍙�")
+ private String phone;
+
+ @ExcelProperty("鑰冨嫟鏃ユ湡")
+ private LocalDate date;
+
+ @ExcelProperty("涓婄彮鎵撳崱鏃堕棿")
+ private LocalDateTime clockInTime;
+
+ @ExcelProperty("涓嬬彮鎵撳崱鏃堕棿")
+ private LocalDateTime clockOutTime;
+
+ @ExcelProperty(value = "涓婄彮鎵撳崱绫诲瀷", converter = DictConvert.class)
+ @DictFormat("hrm_clock_type")
+ private Integer clockInType;
+
+ @ExcelProperty(value = "涓嬬彮鎵撳崱绫诲瀷", converter = DictConvert.class)
+ @DictFormat("hrm_clock_type")
+ private Integer clockOutType;
+
+ @ExcelProperty("鎵撳崱鍦扮偣")
+ private String location;
+
+ @ExcelProperty("澶囨敞")
+ private String remark;
+}
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordImportReqVO.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordImportReqVO.java
new file mode 100644
index 0000000..c509a13
--- /dev/null
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordImportReqVO.java
@@ -0,0 +1,18 @@
+package cn.iocoder.yudao.module.hrm.controller.admin.attendance.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
+
+@Schema(description = "绠$悊鍚庡彴 - 鑰冨嫟璁板綍瀵煎叆 Request VO")
+@Data
+public class HrmAttendanceRecordImportReqVO {
+
+ @Schema(description = "Excel 鏂囦欢", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "Excel 鏂囦欢涓嶈兘涓虹┖")
+ private MultipartFile file;
+
+ @Schema(description = "鏄惁瑕嗙洊宸插瓨鍦ㄧ殑鏁版嵁")
+ private Boolean updateSupport = false;
+}
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordRespVO.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordRespVO.java
index 67215a6..7b91afa 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordRespVO.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/vo/HrmAttendanceRecordRespVO.java
@@ -34,6 +34,10 @@
@ExcelProperty("閮ㄩ棬鍚嶇О")
private String deptName;
+ @Schema(description = "鎵嬫満鍙�")
+ @ExcelProperty("鎵嬫満鍙�")
+ private String phone;
+
@Schema(description = "鑰冨嫟鏃ユ湡")
@ExcelProperty("鑰冨嫟鏃ユ湡")
private LocalDate date;
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/employee/HrmEmployeeMapper.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/employee/HrmEmployeeMapper.java
index 6265746..19ab24b 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/employee/HrmEmployeeMapper.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/employee/HrmEmployeeMapper.java
@@ -21,6 +21,14 @@
return selectOne(HrmEmployeeDO::getPhone, phone);
}
+ default HrmEmployeeDO selectByName(String name) {
+ return selectOne(HrmEmployeeDO::getName, name);
+ }
+
+ default List<HrmEmployeeDO> selectListByName(String name) {
+ return selectList(HrmEmployeeDO::getName, name);
+ }
+
default HrmEmployeeDO selectByEmployeeNo(String employeeNo) {
return selectOne(HrmEmployeeDO::getEmployeeNo, employeeNo);
}
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordService.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordService.java
index 352854b..25cfd62 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordService.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordService.java
@@ -37,6 +37,12 @@
*/
HrmAttendanceRecordDO getAttendanceRecordByUserIdAndDate(Long userId, LocalDate date);
+ /** 鍒涘缓瀵煎叆鐨勮�冨嫟璁板綍 */
+ void createImportedRecord(HrmAttendanceRecordDO record);
+
+ /** 鏇存柊瀵煎叆鐨勮�冨嫟璁板綍 */
+ void updateImportedRecord(HrmAttendanceRecordDO record);
+
/**
* 鎵撳崱锛堜笂鐝墦鍗★級
*
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordServiceImpl.java
index f7ff44c..60ba60d 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceRecordServiceImpl.java
@@ -67,6 +67,86 @@
}
@Override
+ public void createImportedRecord(HrmAttendanceRecordDO record) {
+ // 鎸夎�冨嫟瑙勫垯閲嶇畻鎵撳崱绫诲瀷涓庢椂闀匡紝涓嶄俊浠� Excel 濉啓鐨勫��
+ fillClockTypes(record);
+ fillCalculatedHours(record);
+ attendanceRecordMapper.insert(record);
+ }
+
+ @Override
+ public void updateImportedRecord(HrmAttendanceRecordDO record) {
+ fillClockTypes(record);
+ fillCalculatedHours(record);
+ attendanceRecordMapper.updateById(record);
+ }
+
+ /**
+ * 鎸夎�冨嫟瑙勫垯閲嶇畻涓婁笅鐝墦鍗$被鍨嬶紙姝e父/杩熷埌/鏃╅��锛夛紝涓庢墦鍗¢�昏緫淇濇寔涓�鑷�
+ */
+ private void fillClockTypes(HrmAttendanceRecordDO record) {
+ if (record.getDeptId() == null) {
+ return;
+ }
+ HrmAttendanceRuleDO rule = attendanceRuleService.getAttendanceRuleByDeptId(record.getDeptId());
+ if (rule == null) {
+ return;
+ }
+ // 涓婄彮鎵撳崱绫诲瀷锛氭櫄浜� 涓婄彮鏃堕棿+杩熷埌鍏佽 璁颁负杩熷埌
+ if (record.getClockInTime() != null && rule.getWorkStartTime() != null) {
+ int lateAllowMinutes = rule.getLateAllowMinutes() != null ? rule.getLateAllowMinutes() : 0;
+ LocalTime lateThreshold = rule.getWorkStartTime().plusMinutes(lateAllowMinutes);
+ LocalTime clockInOnly = record.getClockInTime().toLocalTime();
+ record.setClockInType(clockInOnly.isAfter(lateThreshold)
+ ? HrmAttendanceClockTypeEnum.LATE.getType()
+ : HrmAttendanceClockTypeEnum.NORMAL.getType());
+ }
+ // 涓嬬彮鎵撳崱绫诲瀷锛氭棭浜� 涓嬬彮鏃堕棿-鏃╅��鍏佽 璁颁负鏃╅��
+ if (record.getClockOutTime() != null && rule.getWorkEndTime() != null) {
+ int earlyAllowMinutes = rule.getEarlyAllowMinutes() != null ? rule.getEarlyAllowMinutes() : 0;
+ LocalTime earlyThreshold = rule.getWorkEndTime().minusMinutes(earlyAllowMinutes);
+ LocalTime clockOutOnly = record.getClockOutTime().toLocalTime();
+ record.setClockOutType(clockOutOnly.isBefore(earlyThreshold)
+ ? HrmAttendanceClockTypeEnum.EARLY.getType()
+ : HrmAttendanceClockTypeEnum.NORMAL.getType());
+ }
+ }
+
+ /**
+ * 鏍规嵁涓婁笅鐝墦鍗℃椂闂村拰鑰冨嫟瑙勫垯锛岃绠楀伐浣滄椂闀夸笌鍔犵彮鏃堕暱
+ */
+ private void fillCalculatedHours(HrmAttendanceRecordDO record) {
+ // 宸ヤ綔鏃堕暱 = 涓嬬彮鎵撳崱鏃堕棿 - 涓婄彮鎵撳崱鏃堕棿锛堜笌鎵撳崱閫昏緫涓�鑷达級
+ if (record.getClockInTime() != null && record.getClockOutTime() != null) {
+ Duration duration = Duration.between(record.getClockInTime(), record.getClockOutTime());
+ BigDecimal workHours = BigDecimal.valueOf(duration.toMinutes())
+ .divide(BigDecimal.valueOf(60), 2, RoundingMode.HALF_UP);
+ record.setWorkHours(workHours);
+ }
+ // 鍔犵彮鏃堕暱锛氭寜鑰冨嫟瑙勫垯鐨勬爣鍑嗕笅鐝椂闂磋绠楄秴棰濋儴鍒�
+ if (record.getClockOutTime() != null && record.getDeptId() != null) {
+ HrmAttendanceRuleDO rule = attendanceRuleService.getAttendanceRuleByDeptId(record.getDeptId());
+ if (rule != null && rule.getWorkEndTime() != null) {
+ LocalTime workEnd = rule.getWorkEndTime();
+ LocalDate outDate = record.getClockOutTime().toLocalDate();
+ LocalDateTime workEndDateTime = LocalDateTime.of(outDate, workEnd);
+ if (record.getClockOutTime().isAfter(workEndDateTime)) {
+ Duration overtimeDuration = Duration.between(workEndDateTime, record.getClockOutTime());
+ BigDecimal overtimeThreshold = rule.getOvertimeThreshold() != null
+ ? rule.getOvertimeThreshold() : BigDecimal.ZERO;
+ BigDecimal overtimeHours = BigDecimal.valueOf(overtimeDuration.toMinutes())
+ .divide(BigDecimal.valueOf(60), 2, RoundingMode.HALF_UP);
+ record.setOvertimeHours(overtimeHours.compareTo(overtimeThreshold) > 0 ? overtimeHours : BigDecimal.ZERO);
+ } else {
+ record.setOvertimeHours(BigDecimal.ZERO);
+ }
+ } else {
+ record.setOvertimeHours(BigDecimal.ZERO);
+ }
+ }
+ }
+
+ @Override
@Transactional(rollbackFor = Exception.class)
public HrmAttendanceRecordDO clockIn(Long userId, LocalDateTime clockTime, String location) {
LocalDate clockDate = clockTime.toLocalDate();
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeService.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeService.java
index 6ece4cb..90424ba 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeService.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeService.java
@@ -99,6 +99,12 @@
*/
HrmEmployeeDO getEmployeeByUserId(Long userId);
+ /** 鏍规嵁鍛樺伐濮撳悕鑾峰彇鍛樺伐 */
+ HrmEmployeeDO getEmployeeByName(String name);
+
+ /** 鏍规嵁鍛樺伐濮撳悕鑾峰彇鎵�鏈夊悓鍚嶅憳宸� */
+ List<HrmEmployeeDO> getEmployeeListByName(String name);
+
/**
* 瀵煎叆鍛樺伐鍒楄〃
*
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
index 02e3c20..c538b8c 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
@@ -335,6 +335,16 @@
}
@Override
+ public HrmEmployeeDO getEmployeeByName(String name) {
+ return employeeMapper.selectByName(name);
+ }
+
+ @Override
+ public List<HrmEmployeeDO> getEmployeeListByName(String name) {
+ return employeeMapper.selectListByName(name);
+ }
+
+ @Override
public HrmEmployeeImportRespVO importEmployeeList(List<HrmEmployeeImportExcelVO> importEmployees,
HrmEmployeeImportReqVO importReqVO) {
// 1. 鏍¢獙闈炵┖
--
Gitblit v1.9.3