处理跨天加班的情况
This commit is contained in:
parent
5eb3a19934
commit
56e6aa2bc8
@ -394,9 +394,14 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP
|
|||||||
}
|
}
|
||||||
//查找加班详情 加班统计ID和加班开始时间
|
//查找加班详情 加班统计ID和加班开始时间
|
||||||
RzOverTimeDetail rzOverTimeDetail = rzOverTimeDetailMapper.queryRzOverTimeDetailByDateAndOverId(rzOverTime.getId(),date);
|
RzOverTimeDetail rzOverTimeDetail = rzOverTimeDetailMapper.queryRzOverTimeDetailByDateAndOverId(rzOverTime.getId(),date);
|
||||||
|
if(ObjectUtils.isEmpty(rzOverTimeDetail)){
|
||||||
|
//特殊情况, 会存在过12点的情况, 这时候需要核查下前一天没有下班的加班数据
|
||||||
|
rzOverTimeDetail = rzOverTimeDetailMapper.queryRzOverTimeDetailByDateAndOverIdAndOverTimeEndIsNull(rzOverTime.getId(), DateUtils.addDays(date,-1));
|
||||||
|
//如果前一天也为空
|
||||||
if(ObjectUtils.isEmpty(rzOverTimeDetail)){
|
if(ObjectUtils.isEmpty(rzOverTimeDetail)){
|
||||||
return initMessage(1, "未找到当天的加班信息, 请补卡");
|
return initMessage(1, "未找到当天的加班信息, 请补卡");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
rzOverTimeDetail.setOverTimeEnd(date);
|
rzOverTimeDetail.setOverTimeEnd(date);
|
||||||
//计算加班时长 分钟
|
//计算加班时长 分钟
|
||||||
KqUtils.calculateOverTimeHours(rzOverTimeDetail, sysStaff.getUserId(), sn);
|
KqUtils.calculateOverTimeHours(rzOverTimeDetail, sysStaff.getUserId(), sn);
|
||||||
|
|||||||
@ -53,6 +53,11 @@ public interface RzOverTimeDetailMapper extends BaseMapper<RzOverTimeDetail>
|
|||||||
*/
|
*/
|
||||||
public RzOverTimeDetail queryRzOverTimeDetailByDateAndOverId(@Param("overId") Long overId,@Param("date") Date date);
|
public RzOverTimeDetail queryRzOverTimeDetailByDateAndOverId(@Param("overId") Long overId,@Param("date") Date date);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据加班统计ID和加班开始时间查询加班情况, 并且加班的下班时间为空的
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public RzOverTimeDetail queryRzOverTimeDetailByDateAndOverIdAndOverTimeEndIsNull(@Param("overId") Long overId,@Param("date") Date date);
|
||||||
/**
|
/**
|
||||||
* 查询加班详情
|
* 查询加班详情
|
||||||
*
|
*
|
||||||
|
|||||||
@ -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' )
|
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
|
order by over_time_start desc limit 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="queryRzOverTimeDetailByDateAndOverIdAndOverTimeEndIsNull" resultMap="RzOverTimeDetailResult">
|
||||||
|
<include refid="selectRzOverTimeDetailVo"/>
|
||||||
|
where
|
||||||
|
del_flag = '0' and over_time_id = #{overId} and DATE_FORMAT(over_time_start, '%Y%m%d' ) = DATE_FORMAT(#{date} , '%Y%m%d' ) and over_time_end is null
|
||||||
|
order by over_time_start desc limit 1
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 根据加班统计ID查询加班情况 -->
|
<!-- 根据加班统计ID查询加班情况 -->
|
||||||
<select id="queryRzOverTimeDetailByOverId" resultMap="RzOverTimeDetailResult">
|
<select id="queryRzOverTimeDetailByOverId" resultMap="RzOverTimeDetailResult">
|
||||||
<include refid="selectRzOverTimeDetailVo"/>
|
<include refid="selectRzOverTimeDetailVo"/>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user