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 3a93b79..ae7660f 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 @@ -216,7 +216,19 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP }catch (Exception e){ return initMessage(1, "打卡失败,"+e.getMessage()); } - return (rzAttendanceMapper.updateRzAttendance(attendance) > 0) ? initMessage(0, "打卡成功") : initMessage(1, "打卡失败"); + //查询昨天是否未打卡 + String notBeforeEndTimeMessage = ""; + try { + RzAttendance beforeAttendance = rzAttendanceMapper.queryNowDayAttendanceByStatisticalIdAndDate(Long.valueOf(userId),DateUtils.addDays(date, -1)); + if(beforeAttendance.getWorkStartTime() != null && beforeAttendance.getWorkEndTime() == null){ + notBeforeEndTimeMessage = " - 昨天未打下班卡"; + } + } catch (Exception e) { + e.printStackTrace(); + log.error("查询前一天的打卡情况报错了"); + } + + return (rzAttendanceMapper.updateRzAttendance(attendance) > 0) ? initMessage(0, "打卡成功"+notBeforeEndTimeMessage) : initMessage(1, "打卡失败"+notBeforeEndTimeMessage); } // /*** 上班卡的下班卡 diff --git a/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzLeaveDetailServiceImpl.java b/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzLeaveDetailServiceImpl.java index f8f76a8..0ba9c65 100644 --- a/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzLeaveDetailServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/personnelMatters/service/impl/RzLeaveDetailServiceImpl.java @@ -20,6 +20,7 @@ import com.evo.personnelMatters.mapper.RzOverTimeMapper; import com.evo.personnelMatters.service.IRzLeaveDetailService; import com.evo.system.domain.SysStaff; import com.evo.system.service.ISysDictDataService; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -97,38 +98,38 @@ public class RzLeaveDetailServiceImpl extends ServiceImpl0){ endDay = rzLeaveDetail.getLeaveEndTime(); } - //获取相差天数 因为包含开始结束, 所以需要加1 - Long dayNum = DateUtils.getBetweenDays(firsDay,endDay)+1; - List dayList = Collections.emptyList(); - for (int j = 0; j < dayNum; j++) { - dayList.add(ymd.format(DateUtils.addDays(firsDay, j))); - } - List holidays = Collections.emptyList(); - if(ParamUtils.getLeaveTypeNotIncludedFaXiuAndPublicHoliday().contains(flag)){ - holidays.addAll(ParamUtils.getHoliddayList(firsDay.getYear(), 0)); - }else if(ParamUtils.getLeaveTypeNotIncludedFaXiu().contains(flag)){ - holidays.addAll(ParamUtils.getHoliddayList(firsDay.getYear(), 1)); - }else{ - holidays.addAll(ParamUtils.getHoliddayList(firsDay.getYear(), 2)); - } - //获取假期里的重复天数 - Integer doubleDayNum = Collections.findDuplicatesList(holidays, dayList).size(); - //计算实际放假天数 - Integer holidayNum = dayList.size()-doubleDayNum; + + + + + +// //获取相差天数 因为包含开始结束, 所以需要加1 +// Long dayNum = DateUtils.getBetweenDays(firsDay,endDay)+1; +// List dayList = Collections.emptyList(); +// for (int j = 0; j < dayNum; j++) { +// dayList.add(ymd.format(DateUtils.addDays(firsDay, j))); +// } +// List holidays = Collections.emptyList(); +// if(ParamUtils.getLeaveTypeNotIncludedFaXiuAndPublicHoliday().contains(flag)){ +// holidays.addAll(ParamUtils.getHoliddayList(firsDay.getYear(), 0)); +// }else if(ParamUtils.getLeaveTypeNotIncludedFaXiu().contains(flag)){ +// holidays.addAll(ParamUtils.getHoliddayList(firsDay.getYear(), 1)); +// }else{ +// holidays.addAll(ParamUtils.getHoliddayList(firsDay.getYear(), 2)); +// } +// //获取假期里的重复天数 +// Integer doubleDayNum = Collections.findDuplicatesList(holidays, dayList).size(); +// //计算实际放假天数 +// Integer holidayNum = dayList.size()-doubleDayNum; + + + + + RzLeaveDetail newRzLeaveDetail = new RzLeaveDetail(); + BeanUtils.copyProperties(rzLeaveDetail, newRzLeaveDetail); + newRzLeaveDetail.setLeaveStartTime(firsDay); + newRzLeaveDetail.setLeaveStartTime(endDay); extensionMap.put("month"+m.format(firsDay), ym.format(firsDay)); //如果只请1天, 则按照录入的时间计算, 如果 - extensionMap.put("hours"+m.format(firsDay), holidayNum*8); + extensionMap.put("hours"+m.format(firsDay), calculationLeaveHour(newRzLeaveDetail).getLeaveHour()); } } @@ -262,7 +279,7 @@ public class RzLeaveDetailServiceImpl extends ServiceImpl i dkj_list.add(com.evo.equipment.constant.Constants.EQ_DEVICE_PUBLIC_CODE); //公共 dkj_list.add(sysStaff.getTimeClock()); //下发照片 - eqSnDetailService.sendPhoto(dkj_list, Collections.asList(Collections.asMap("userId", String.valueOf(sysStaff.getUserId()), "name", sysStaff.getName(), "photoUrl", ParamUtils.getGlobalStaticUrl()+upload.getFileName()))); + eqSnDetailService.sendPhoto(dkj_list, Collections.asList(Collections.asMap("userId", String.valueOf(sysStaff.getUserId()), "name", sysStaff.getName(), "photoUrl", ParamUtils.getGlobalStaticUrl()+upload.getFileName(), "deptName", sysStaff.getDeptName()))); } }