|
@@ -1173,6 +1173,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
|
|
|
}
|
|
|
|
|
|
|
|
|
+ //获取考勤打卡记录
|
|
|
private void reqOnceCardTime(WxCorpInfo corpInfo, long startTime, long endTime, Object[] objects, boolean showLog) throws Exception {
|
|
|
DateTimeFormatter mdFormat = DateTimeFormatter.ofPattern("yyyy/M/d");
|
|
|
String url = GET_CHECKIN_DAYDATA.replace("ACCESS_TOKEN", getCorpAccessToken(corpInfo));
|
|
@@ -1659,32 +1660,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
|
|
|
ct.setWorkHours(DateTimeUtil.getHoursFromDouble(workHours));
|
|
|
}
|
|
|
if (showLog) System.out.println("ct.getStartTime()==" + ct.getStartTime()+", ct.getEndTime()="+ct.getEndTime());
|
|
|
- //仅有一次打卡,需要补足下班的打卡时间;重新计算工作时长
|
|
|
- if (hitOnce) {
|
|
|
- if (ct.getEndTime().compareTo(baseAfternoonEnd) < 0) {
|
|
|
- if (showLog) System.out.println("打卡一次,自动补足下班时间"+baseAfternoonEnd);
|
|
|
- ct.setEndTime(baseAfternoonEnd);
|
|
|
- //重新计算时长
|
|
|
- double workTime = DateTimeUtil.getHoursFromSeconds(DateTimeUtil.getSecondsFromTime(ct.getEndTime()) - DateTimeUtil.getSecondsFromTime(ct.getStartTime()));
|
|
|
- if(showLog) System.out.println("workTime======="+workTime+", restTime="+restTime);
|
|
|
- if (ct.getStartTime().compareTo(baseMorningEnd) <= 0) {
|
|
|
- //重新计算打卡工时时,需要减去中间午休时间
|
|
|
- workTime -= restTime;
|
|
|
- }
|
|
|
- ct.setCardTime(workTime);
|
|
|
- double calTime = DateTimeUtil.getHoursFromDouble(workTime) - ct.getAskLeaveTime();
|
|
|
- if (calTime < 8.0 && ct.getOutdoorTime() > 0) {
|
|
|
- calTime += ct.getOutdoorTime();
|
|
|
- }
|
|
|
- if (corpInfo.getCompanyId() == 481) {
|
|
|
- //给盛立安元0.5单位进位
|
|
|
- ct.setWorkHours(DateTimeUtil.getHalfHoursFromDouble(calTime));
|
|
|
- } else {
|
|
|
- ct.setWorkHours(calTime);
|
|
|
- }
|
|
|
- if (showLog) System.out.println("workTime="+workTime+", 二次校正后workHours="+ct.getWorkHours());
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
//针对赛元微电子,请半天假的情况下。重新校正打卡和工作时长
|
|
|
if (corpInfo.getCorpid().equals("wpy9TkCAAAgNp4jvqxKTpXrhvwFvyFHg")) {
|
|
|
if (dtf.format(ct.getCreateDate()).equals("2024-02-09") ) {
|
|
@@ -1718,6 +1694,33 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
|
|
|
if (showLog) System.out.println("再次校正,下午请假");
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ //仅有一次打卡,需要补足下班的打卡时间;重新计算工作时长
|
|
|
+ if (hitOnce) {
|
|
|
+ if (ct.getEndTime().compareTo(baseAfternoonEnd) < 0) {
|
|
|
+ if (showLog) System.out.println("打卡一次,自动补足下班时间"+baseAfternoonEnd);
|
|
|
+ ct.setEndTime(baseAfternoonEnd);
|
|
|
+ //重新计算时长
|
|
|
+ double workTime = DateTimeUtil.getHoursFromSeconds(DateTimeUtil.getSecondsFromTime(ct.getEndTime()) - DateTimeUtil.getSecondsFromTime(ct.getStartTime()));
|
|
|
+ if(showLog) System.out.println("workTime======="+workTime+", restTime="+restTime);
|
|
|
+ if (ct.getStartTime().compareTo(baseMorningEnd) <= 0) {
|
|
|
+ //重新计算打卡工时时,需要减去中间午休时间
|
|
|
+ workTime -= restTime;
|
|
|
+ }
|
|
|
+ ct.setCardTime(workTime);
|
|
|
+ double calTime = DateTimeUtil.getHoursFromDouble(workTime) - ct.getAskLeaveTime();
|
|
|
+ if (calTime < 8.0 && ct.getOutdoorTime() > 0) {
|
|
|
+ calTime += ct.getOutdoorTime();
|
|
|
+ }
|
|
|
+ if (corpInfo.getCompanyId() == 481) {
|
|
|
+ //给盛立安元0.5单位进位
|
|
|
+ ct.setWorkHours(DateTimeUtil.getHalfHoursFromDouble(calTime));
|
|
|
+ } else {
|
|
|
+ ct.setWorkHours(calTime);
|
|
|
+ }
|
|
|
+ if (showLog) System.out.println("workTime="+workTime+", 二次校正后workHours="+ct.getWorkHours());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|