From 1657989fa4076b9198efd8a8bc2a7a964a2d114a Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 12 二月 2026 14:39:22 +0800
Subject: [PATCH] 下班打卡时间判读那
---
src/main/java/com/ruoyi/staff/service/impl/PersonalAttendanceRecordsServiceImpl.java | 17 ++++++++++-------
1 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/ruoyi/staff/service/impl/PersonalAttendanceRecordsServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/PersonalAttendanceRecordsServiceImpl.java
index 8b2a7d2..0fdb298 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/PersonalAttendanceRecordsServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/PersonalAttendanceRecordsServiceImpl.java
@@ -33,6 +33,7 @@
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
@@ -98,7 +99,7 @@
throw new BaseException(String.format("鎵撳崱澶辫触锛氭偍褰撳墠浣嶇疆璺濈鑰冨嫟鐐�%.2f绫筹紝瓒呭嚭鍏佽鑼冨洿锛�%s绫筹級", actualDistance, allowedRadius));
}
/*鍒ゆ柇鎵撳崱鏃堕棿*/
- LocalDateTime endAt = locationConfig.getEndAt(); //涓嬬彮鏃堕棿
+ LocalTime endAt = locationConfig.getEndAt(); //涓嬬彮鏃堕棿
// 鑾峰彇鑰冨嫟涓嬬彮鏃堕棿鐐�
int standardHour = endAt.getHour();
int standardMinute = endAt.getMinute();
@@ -106,8 +107,8 @@
int actualHour = currentDateTime.getHour();
int actualMinute = currentDateTime.getMinute();
// 鍒ゆ柇鎵撳崱鏃堕棿鏄惁鏅氫簬褰撳墠鏃堕棿
- if (actualHour > standardHour || (actualHour == standardHour && actualMinute > standardMinute)) {
- throw new BaseException(String.format("鎵撳崱澶辫触锛氭墦鍗℃椂闂翠笉鑳芥櫄浜庝笅鐝椂闂达紙%02d:%02d锛�", standardHour, standardMinute));
+ if (actualHour < standardHour || (actualHour == standardHour && actualMinute < standardMinute)) {
+ throw new BaseException(String.format("鎵撳崱澶辫触锛氭墦鍗℃椂闂翠笉鑳芥棭浜庝笅鐝椂闂达紙%02d:%02d锛�", standardHour, standardMinute));
}
// 鏍规嵁鍛樺伐ID鍜屽綋鍓嶆棩鏈熸煡璇㈡墦鍗¤褰�
QueryWrapper<PersonalAttendanceRecords> attendanceQueryWrapper = new QueryWrapper<>();
@@ -153,9 +154,9 @@
LocalDateTime actualTime = isStart ? attendanceRecord.getWorkStartAt() : attendanceRecord.getWorkEndAt();
try {
// 鑾峰彇鑰冨嫟鏃堕棿閰嶇疆
- LocalDateTime startAt = locationConfig.getStartAt();//涓婄彮鏃堕棿
- LocalDateTime endAt = locationConfig.getEndAt();//涓嬬彮鏃堕棿
- LocalDateTime timeConfig = isStart ? startAt : endAt;
+ LocalTime startAt = locationConfig.getStartAt();//涓婄彮鏃堕棿
+ LocalTime endAt = locationConfig.getEndAt();//涓嬬彮鏃堕棿
+ LocalTime timeConfig = isStart ? startAt : endAt;
// 瑙f瀽灏忔椂鍜屽垎閽�
int standardHour = timeConfig.getHour();
int standardMinute = timeConfig.getMinute();
@@ -175,6 +176,8 @@
return 3; // 杩熷埌鏃╅��
}
return 2; // 鏃╅��
+ }else if (attendanceRecord.getStatus() == 1) {
+ return 1; // 涓嬬彮鎵撳崱姝e父浣嗘槸涓婄彮杩熷埌
}
}
return 0; // 姝e父
@@ -212,7 +215,7 @@
StaffOnJob staffOnJob = staffOnJobMapper.selectOne(staffQueryWrapper);
if (staffOnJob == null) {
- return null; // 褰撳墠鐢ㄦ埛娌℃湁瀵瑰簲鐨勫憳宸ヤ俊鎭�
+ throw new BaseException("褰撳墠鐢ㄦ埛娌℃湁瀵瑰簲鐨勫憳宸ヤ俊鎭�");
}
// 鏍规嵁鍛樺伐ID鍜屽綋鍓嶆棩鏈熸煡璇㈡墦鍗¤褰�
--
Gitblit v1.9.3