From 52feee3e55403d2858da59605173ec055f601bfa Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期六, 24 十月 2026 19:47:25 +0800
Subject: [PATCH] feat(hrm): 同步新疆中亿装配的人力资源模块到北方科技
---
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/attendance/HrmAttendanceRecordController.java | 31 ++++++++++++++++++++++---------
1 files changed, 22 insertions(+), 9 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 9f94ad3..8bbe2ef 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
@@ -2,6 +2,7 @@
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -11,6 +12,7 @@
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.controller.admin.attendance.vo.HrmAttendanceMyStatusRespVO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.attendance.HrmAttendanceRecordDO;
import cn.iocoder.yudao.module.hrm.dal.dataobject.employee.HrmEmployeeDO;
import cn.iocoder.yudao.module.hrm.service.attendance.HrmAttendanceRecordService;
@@ -30,6 +32,7 @@
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -56,12 +59,13 @@
@PostMapping("/clock-in")
@Operation(summary = "涓婄彮鎵撳崱")
- @PreAuthorize("@ss.hasPermission('hrm:attendance:clock')")
+ @PreAuthorize("@ss.hasPermission('hrm:attendance-record:clock')")
public CommonResult<HrmAttendanceRecordRespVO> clockIn(@RequestParam("location") String location) {
Long loginUserId = getLoginUserId();
HrmEmployeeDO employee = employeeService.getEmployeeByUserId(loginUserId);
if (employee == null) {
- throw exception(EMPLOYEE_NOT_EXISTS, "褰撳墠鐢ㄦ埛鏈叧鑱斿憳宸ヤ俊鎭紝鏃犳硶鎵撳崱");
+ throw new ServiceException(EMPLOYEE_NOT_EXISTS.getCode(),
+ "褰撳墠鐧诲綍璐﹀彿鏈叧鑱斿憳宸ヤ俊鎭紝鏃犳硶鎵撳崱銆傝鑱旂郴绠$悊鍛樺湪銆愬憳宸ョ鐞嗐�戜腑灏嗚鐧诲綍璐﹀彿缁戝畾鍒板憳宸ャ��");
}
HrmAttendanceRecordDO record = attendanceRecordService.clockIn(employee.getId(), LocalDateTime.now(), location);
HrmAttendanceRecordRespVO respVO = BeanUtils.toBean(record, HrmAttendanceRecordRespVO.class);
@@ -77,12 +81,13 @@
@PostMapping("/clock-out")
@Operation(summary = "涓嬬彮鎵撳崱")
- @PreAuthorize("@ss.hasPermission('hrm:attendance:clock')")
+ @PreAuthorize("@ss.hasPermission('hrm:attendance-record:clock')")
public CommonResult<HrmAttendanceRecordRespVO> clockOut(@RequestParam("location") String location) {
Long loginUserId = getLoginUserId();
HrmEmployeeDO employee = employeeService.getEmployeeByUserId(loginUserId);
if (employee == null) {
- throw exception(EMPLOYEE_NOT_EXISTS, "褰撳墠鐢ㄦ埛鏈叧鑱斿憳宸ヤ俊鎭紝鏃犳硶鎵撳崱");
+ throw new ServiceException(EMPLOYEE_NOT_EXISTS.getCode(),
+ "褰撳墠鐧诲綍璐﹀彿鏈叧鑱斿憳宸ヤ俊鎭紝鏃犳硶鎵撳崱銆傝鑱旂郴绠$悊鍛樺湪銆愬憳宸ョ鐞嗐�戜腑灏嗚鐧诲綍璐﹀彿缁戝畾鍒板憳宸ャ��");
}
HrmAttendanceRecordDO record = attendanceRecordService.clockOut(employee.getId(), LocalDateTime.now(), location);
HrmAttendanceRecordRespVO respVO = BeanUtils.toBean(record, HrmAttendanceRecordRespVO.class);
@@ -96,13 +101,21 @@
return success(respVO);
}
- private Long getLoginUserId() {
- return cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId();
+ @GetMapping("/my-status")
+ @Operation(summary = "鑾峰緱褰撳墠鐧诲綍浜虹殑鑰冨嫟鐘舵��", description = "App 鎵撳崱椤典娇鐢細杩斿洖褰撴棩鑰冨嫟瑙勫垯銆佹墦鍗¤褰曚笌鍙墦鍗$姸鎬�")
+ @Parameter(name = "date", description = "鑰冨嫟鏃ユ湡锛屾牸寮� yyyy-MM-dd锛岄粯璁ゆ湇鍔″櫒褰撳ぉ", example = "2026-10-17")
+ public CommonResult<HrmAttendanceMyStatusRespVO> getMyStatus(
+ @RequestParam(value = "date", required = false)
+ @org.springframework.format.annotation.DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate date) {
+ return success(attendanceRecordService.getMyStatus(getLoginUserId(), date));
}
+
+ private Long getLoginUserId() {
+ return cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId(); }
@GetMapping("/page")
@Operation(summary = "鑾峰緱鑰冨嫟璁板綍鍒嗛〉")
- @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+ @PreAuthorize("@ss.hasPermission('hrm:attendance-record:query')")
public CommonResult<PageResult<HrmAttendanceRecordRespVO>> getAttendanceRecordPage(@Valid HrmAttendanceRecordPageReqVO pageReqVO) {
PageResult<HrmAttendanceRecordDO> pageResult = attendanceRecordService.getAttendanceRecordPage(pageReqVO);
// 杞崲涓� VO
@@ -157,7 +170,7 @@
@GetMapping("/get")
@Operation(summary = "鑾峰緱鑰冨嫟璁板綍")
@Parameter(name = "id", description = "璁板綍ID", required = true)
- @PreAuthorize("@ss.hasPermission('hrm:attendance:query')")
+ @PreAuthorize("@ss.hasPermission('hrm:attendance-record:query')")
public CommonResult<HrmAttendanceRecordRespVO> getAttendanceRecord(@RequestParam("id") Long id) {
HrmAttendanceRecordDO attendanceRecord = attendanceRecordService.getAttendanceRecord(id);
if (attendanceRecord == null) {
@@ -281,7 +294,7 @@
@GetMapping("/export-excel")
@Operation(summary = "瀵煎嚭鑰冨嫟璁板綍 Excel")
- @PreAuthorize("@ss.hasPermission('hrm:attendance:export')")
+ @PreAuthorize("@ss.hasPermission('hrm:attendance-record:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportAttendanceRecordExcel(@Valid HrmAttendanceRecordPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
--
Gitblit v1.9.3