From de9c6aab0db642e8667b941a8db876a257e87d60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E4=BA=AE?= Date: Wed, 4 Feb 2026 16:08:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E5=8B=A4=E9=97=AE=E9=A2=98=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bonus/job/task/AttJobTask.java | 2 +- .../system/att/service/AttCalServiceImpl.java | 8 ++++++++ .../mapper/att/AttSourceDataMapper.xml | 20 +++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/AttJobTask.java b/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/AttJobTask.java index 45b9872..5ff69b4 100644 --- a/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/AttJobTask.java +++ b/bonus-modules/bonus-job/src/main/java/com/bonus/job/task/AttJobTask.java @@ -142,7 +142,7 @@ public class AttJobTask { log.info("--------月报表--是否全勤定时器开启------"); String today = ""; if(StringUtils.isEmpty(month)){ - today = DateUtil.today(); + month = StringUtils.substring(DateUtil.today(),0,7); } service.getMonthReportFullAtt(month, today, SecurityConstants.INNER); log.info("--------月报表--是否全勤定时器完毕------"); diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttCalServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttCalServiceImpl.java index e22be08..ce2a890 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttCalServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttCalServiceImpl.java @@ -315,6 +315,14 @@ public class AttCalServiceImpl implements AttCalService { List monthReportList = attSourceDataDao.selectAttMonthReport(pushDate); //月报表修改 if(!monthReportList.isEmpty()){ + monthReportList.forEach(c -> { + //有迟到早退旷工或存在不带薪假期 + if((c.getLateNum()+c.getEarlyNum()+c.getSkippingNum()) > 0.0 || (c.getLeaveUnpaidNum() != null && Double.parseDouble(c.getLeaveUnpaidNum()) > 0.0)){ + c.setIsFullAtt(0); + }else{ + c.setIsFullAtt(1); + } + }); attSourceDataDao.updateAttMonthReport(monthReportList); } } diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttSourceDataMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttSourceDataMapper.xml index a481a06..c43126c 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttSourceDataMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttSourceDataMapper.xml @@ -158,6 +158,9 @@ org_name = #{v.orgName}, + + is_full_att = #{v.isFullAtt}, + normal_num = #{v.normalNum}, late_num = #{v.lateNum}, early_num = #{v.earlyNum}, @@ -658,6 +661,23 @@ AND #{month} between left(leave_start_date,7) and left(leave_end_date,7) + + UNION + + SELECT DISTINCT + user_id + FROM + leave_apply + WHERE + is_active = 1 + AND leave_type = '临时外出' + AND is_business != 1 + + AND #{today} between leave_start_date and leave_end_date + + + AND #{month} between left(leave_start_date,7) and left(leave_end_date,7) +