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 + + + + + +