|
@@ -512,6 +512,18 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case OUT: // 签退打卡
|
|
case OUT: // 签退打卡
|
|
|
|
+ if (Objects.nonNull(tbDing.getSignOutTime()) && CollectionUtils.isNotEmpty(otherSopDingList)) {
|
|
|
|
+ // 多次签退打卡 校验该次签退打卡必须是当天已打卡的sop打卡记录中签到时间最晚的(只能在最后一个打卡的sop上继续打签退卡)
|
|
|
|
+ Long maxSingInTime = 0L;
|
|
|
|
+ Optional<Long> optional = todayDingList.stream().map(TBDing::getSignInTime).max(Long::compareTo);
|
|
|
|
+ if (optional.isPresent()) {
|
|
|
|
+ maxSingInTime = optional.get();
|
|
|
|
+ }
|
|
|
|
+ if (!Objects.equals(maxSingInTime, tbDing.getSignInTime())) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("重复打签退卡异常");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
tbDing.setSignOutTime(signTime);
|
|
tbDing.setSignOutTime(signTime);
|
|
tbDing.setSignOutAddress(signAddress);
|
|
tbDing.setSignOutAddress(signAddress);
|
|
tbDing.setAxisOutX(axisX);
|
|
tbDing.setAxisOutX(axisX);
|