From b7ca5fcffd9ed01e5abd0f025fecb06f07b9e683 Mon Sep 17 00:00:00 2001 From: andy <1042025947@qq.com> Date: Mon, 18 Aug 2025 10:51:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=91=98=E5=B7=A5=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=83=A8=E9=97=A8=E6=8E=A8=E9=80=81,=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=91=98=E5=B7=A5=E6=B7=BB=E5=8A=A0=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E9=AA=8C=E8=AF=81=20=E8=80=83=E5=8B=A4?= =?UTF-8?q?=E4=B8=8A=E7=8F=AD=E6=89=93=E5=8D=A1,=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=98=A8=E5=A4=A9=E6=89=93=E5=8D=A1=E6=83=85=E5=86=B5=E6=8F=90?= =?UTF-8?q?=E9=86=92=20=E8=AF=B7=E5=81=87=E9=80=BB=E8=BE=91=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/KQDeviceExchangeProcessor.java | 14 +- .../impl/RzLeaveDetailServiceImpl.java | 120 +++++++++--------- .../system/controller/SysStaffController.java | 2 + .../service/impl/SysStaffServiceImpl.java | 2 +- 4 files changed, 79 insertions(+), 59 deletions(-) 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()))); } }