|
@@ -4,6 +4,7 @@ package com.lc.ibps.components.employee.domain;
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
|
|
import com.lc.ibps.base.core.constants.StringPool;
|
|
import com.lc.ibps.base.core.constants.StringPool;
|
|
|
|
|
+import com.lc.ibps.base.web.context.ContextUtil;
|
|
|
import org.springframework.context.annotation.Scope;
|
|
import org.springframework.context.annotation.Scope;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -71,6 +72,9 @@ public class AttendanceDetail extends AbstractDomain<String, AttendanceDetailPo>
|
|
|
if(BeanUtils.isEmpty(attendanceDetailPo)){
|
|
if(BeanUtils.isEmpty(attendanceDetailPo)){
|
|
|
throw new Exception("考勤不存在!");
|
|
throw new Exception("考勤不存在!");
|
|
|
}
|
|
}
|
|
|
|
|
+ if(!attendanceDetailPo.getYongHuId().equals(ContextUtil.getCurrentUserId())){
|
|
|
|
|
+ throw new Exception("不能打其他人的卡,请登录本人账号打卡");
|
|
|
|
|
+ }
|
|
|
String end = attendanceDetailPo.getBanCiJieShu()+":00";
|
|
String end = attendanceDetailPo.getBanCiJieShu()+":00";
|
|
|
String start = attendanceDetailPo.getBanCiKaiShi()+":59";
|
|
String start = attendanceDetailPo.getBanCiKaiShi()+":59";
|
|
|
LocalDateTime endTime = LocalDateTime.parse(end, DATETIME_FORMATTER);
|
|
LocalDateTime endTime = LocalDateTime.parse(end, DATETIME_FORMATTER);
|
|
@@ -78,8 +82,15 @@ public class AttendanceDetail extends AbstractDomain<String, AttendanceDetailPo>
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
if (!now.isAfter(endTime)) {
|
|
if (!now.isAfter(endTime)) {
|
|
|
// 上班打卡
|
|
// 上班打卡
|
|
|
|
|
+ String today = LocalDateTime.now().format(DateTimeFormatter.ofPattern(StringPool.DATE_FORMAT_DATE));
|
|
|
|
|
+ if(!attendanceDetailPo.getRiQi().equals(today)){
|
|
|
|
|
+ throw new Exception("考勤对应的打卡日期是"+attendanceDetailPo.getRiQi()+",只能打当天的班次卡,请核对打卡日期");
|
|
|
|
|
+ }
|
|
|
|
|
+ if(BeanUtils.isNotEmpty(attendanceDetailPo.getDaKaShiJian1())){
|
|
|
|
|
+ throw new Exception("该班次已经打过卡了,请勿重复打卡!");
|
|
|
|
|
+ }
|
|
|
attendanceDetailPo.setDaKaShiJian1(now.format(DATETIME_FORMATTER));
|
|
attendanceDetailPo.setDaKaShiJian1(now.format(DATETIME_FORMATTER));
|
|
|
- if (!startTime.isAfter(now)){
|
|
|
|
|
|
|
+ if (!now.isAfter(startTime)){
|
|
|
attendanceDetailPo.setZhuangTai1("正常");
|
|
attendanceDetailPo.setZhuangTai1("正常");
|
|
|
}else {
|
|
}else {
|
|
|
attendanceDetailPo.setZhuangTai1("异常");
|
|
attendanceDetailPo.setZhuangTai1("异常");
|
|
@@ -93,17 +104,25 @@ public class AttendanceDetail extends AbstractDomain<String, AttendanceDetailPo>
|
|
|
Duration duration = Duration.between(now, endTime);
|
|
Duration duration = Duration.between(now, endTime);
|
|
|
attendanceDetailPo.setJiaBanShiChang(Math.max(duration.toMinutes(),0));
|
|
attendanceDetailPo.setJiaBanShiChang(Math.max(duration.toMinutes(),0));
|
|
|
|
|
|
|
|
- LocalDateTime daKaShiJian = LocalDateTime.parse(attendanceDetailPo.getDaKaShiJian1(), DATETIME_FORMATTER);
|
|
|
|
|
- Duration gongZuoShiChang = Duration.between(daKaShiJian, now);
|
|
|
|
|
- attendanceDetailPo.setGongZuoShiChan(Math.abs(gongZuoShiChang.toMinutes()));
|
|
|
|
|
|
|
+ if (BeanUtils.isNotEmpty(attendanceDetailPo.getZhuangTai1())){
|
|
|
|
|
+ LocalDateTime daKaShiJian = LocalDateTime.parse(attendanceDetailPo.getDaKaShiJian1(), DATETIME_FORMATTER);
|
|
|
|
|
+ Duration gongZuoShiChang = Duration.between(daKaShiJian, now);
|
|
|
|
|
+ attendanceDetailPo.setGongZuoShiChan(Math.abs(gongZuoShiChang.toMinutes()));
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (attendanceDetailPo.getDaKaShiJian1().equals("正常") && attendanceDetailPo.getDaKaShiJian2().equals("正常")){
|
|
|
|
|
|
|
+ if (BeanUtils.isNotEmpty(attendanceDetailPo.getZhuangTai1()) && BeanUtils.isNotEmpty(attendanceDetailPo.getZhuangTai2())
|
|
|
|
|
+ && attendanceDetailPo.getZhuangTai1().equals("正常") && attendanceDetailPo.getZhuangTai2().equals("正常")){
|
|
|
attendanceDetailPo.setKaoQinZhuangTa("正常");
|
|
attendanceDetailPo.setKaoQinZhuangTa("正常");
|
|
|
}else {
|
|
}else {
|
|
|
attendanceDetailPo.setKaoQinZhuangTa("异常");
|
|
attendanceDetailPo.setKaoQinZhuangTa("异常");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ if (BeanUtils.isEmpty(attendanceDetailPo.getDaKaCiShu())){
|
|
|
|
|
+ attendanceDetailPo.setDaKaCiShu(0L);
|
|
|
|
|
+ }
|
|
|
attendanceDetailPo.setDaKaCiShu(attendanceDetailPo.getDaKaCiShu()+1);
|
|
attendanceDetailPo.setDaKaCiShu(attendanceDetailPo.getDaKaCiShu()+1);
|
|
|
|
|
+ AttendanceDetail domain = attendanceDetailRepository.newInstance();
|
|
|
|
|
+ domain.save(attendanceDetailPo);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|