From 56e6aa2bc82f49e9d0502dd218f0ef43695264be Mon Sep 17 00:00:00 2001 From: andy <1042025947@qq.com> Date: Tue, 20 Jan 2026 10:30:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E8=B7=A8=E5=A4=A9=E5=8A=A0?= =?UTF-8?q?=E7=8F=AD=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../processor/impl/KQDeviceExchangeProcessor.java | 7 ++++++- .../mapper/RzOverTimeDetailMapper.java | 5 +++++ .../personnelMatters/RzOverTimeDetailMapper.xml | 11 +++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java b/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java index 409c09d..ef44732 100644 --- a/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java +++ b/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java @@ -395,7 +395,12 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP //查找加班详情 加班统计ID和加班开始时间 RzOverTimeDetail rzOverTimeDetail = rzOverTimeDetailMapper.queryRzOverTimeDetailByDateAndOverId(rzOverTime.getId(),date); if(ObjectUtils.isEmpty(rzOverTimeDetail)){ - return initMessage(1, "未找到当天的加班信息, 请补卡"); + //特殊情况, 会存在过12点的情况, 这时候需要核查下前一天没有下班的加班数据 + rzOverTimeDetail = rzOverTimeDetailMapper.queryRzOverTimeDetailByDateAndOverIdAndOverTimeEndIsNull(rzOverTime.getId(), DateUtils.addDays(date,-1)); + //如果前一天也为空 + if(ObjectUtils.isEmpty(rzOverTimeDetail)){ + return initMessage(1, "未找到当天的加班信息, 请补卡"); + } } rzOverTimeDetail.setOverTimeEnd(date); //计算加班时长 分钟 diff --git a/evo-admin/src/main/java/com/evo/personnelMatters/mapper/RzOverTimeDetailMapper.java b/evo-admin/src/main/java/com/evo/personnelMatters/mapper/RzOverTimeDetailMapper.java index 61bcda5..92e0bb8 100644 --- a/evo-admin/src/main/java/com/evo/personnelMatters/mapper/RzOverTimeDetailMapper.java +++ b/evo-admin/src/main/java/com/evo/personnelMatters/mapper/RzOverTimeDetailMapper.java @@ -53,6 +53,11 @@ public interface RzOverTimeDetailMapper extends BaseMapper */ public RzOverTimeDetail queryRzOverTimeDetailByDateAndOverId(@Param("overId") Long overId,@Param("date") Date date); + /** + * 根据加班统计ID和加班开始时间查询加班情况, 并且加班的下班时间为空的 + * @return + */ + public RzOverTimeDetail queryRzOverTimeDetailByDateAndOverIdAndOverTimeEndIsNull(@Param("overId") Long overId,@Param("date") Date date); /** * 查询加班详情 * diff --git a/evo-admin/src/main/resources/mapper/personnelMatters/RzOverTimeDetailMapper.xml b/evo-admin/src/main/resources/mapper/personnelMatters/RzOverTimeDetailMapper.xml index c4a41cf..7a9e460 100644 --- a/evo-admin/src/main/resources/mapper/personnelMatters/RzOverTimeDetailMapper.xml +++ b/evo-admin/src/main/resources/mapper/personnelMatters/RzOverTimeDetailMapper.xml @@ -91,6 +91,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" del_flag = '0' and over_time_id = #{overId} and DATE_FORMAT(over_time_start, '%Y%m%d' ) = DATE_FORMAT(#{date} , '%Y%m%d' ) order by over_time_start desc limit 1 + + + + + +