From d9edbae9ff38a2e89cc0df4a49fdfda126d37cbf Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Wed, 19 Feb 2025 19:32:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E6=B5=81=E7=A8=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AttendanceDetailsController.java | 3 +- .../system/att/dao/AttendanceDetailsDao.java | 9 ++++ .../system/att/entity/AttDataDetailsBean.java | 16 +++++++ .../att/service/AttendanceDetailsService.java | 2 +- .../service/AttendanceDetailsServiceImpl.java | 37 +++++++++++++--- .../mapper/att/AttendanceDetailsMapper.xml | 43 ++++++++++++++----- 6 files changed, 91 insertions(+), 19 deletions(-) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/AttendanceDetailsController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/AttendanceDetailsController.java index 647686f..200dc46 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/AttendanceDetailsController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/controller/AttendanceDetailsController.java @@ -148,7 +148,8 @@ public class AttendanceDetailsController extends BaseController { @Log(title = "考勤报表->考勤明细->考勤修改", businessType = BusinessType.UPDATE) public AjaxResult edit(@RequestBody List list) { try{ - return toAjax(attendanceDetailsService.updateAttDetailsData(list)); +// return toAjax(attendanceDetailsService.updateAttDetailsData(list)); + return attendanceDetailsService.updateAttDetailsData(list); }catch (Exception e){ log.error(e.toString(),e); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttendanceDetailsDao.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttendanceDetailsDao.java index 4c23c12..2966269 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttendanceDetailsDao.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttendanceDetailsDao.java @@ -116,4 +116,13 @@ public interface AttendanceDetailsDao { * @date 2025/2/18 15:59 */ List getClockingRecordListByUserId(AttMonthReportBean bean); + + /** + * 查询考勤修改的审核状态 + * @param bean + * @return List> + * @author cwchen + * @date 2025/2/19 18:16 + */ + Integer getAuditStatus(AttDataDetailsBean bean); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDataDetailsBean.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDataDetailsBean.java index 162d038..80e87d1 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDataDetailsBean.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDataDetailsBean.java @@ -238,6 +238,22 @@ public class AttDataDetailsBean { private String attendType; private String attStatusToday; + /**人资审核ID*/ + private Long hrAuditId; + /**人资审核时间*/ + private String hrAuditTime; + /**人资审核状态*/ + private String hrAuditStatus; + /**部门负责人审核ID*/ + private Long managerAuditId; + /**部门负责人审核时间*/ + private String managerAuditTime; + /**部门负责人审核状态*/ + private String managerAuditStatus; + + /**当前审核状态*/ + private Integer currentAuditStatus; + /**上班附件/下班附件*/ private List filesVoList; diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsService.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsService.java index 50879ae..2094918 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsService.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsService.java @@ -48,7 +48,7 @@ public interface AttendanceDetailsService { * @param list list bean * @return 1|0 */ - int updateAttDetailsData(List list); + AjaxResult updateAttDetailsData(List list); /** * 审核考勤 diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsServiceImpl.java index e751da4..344be14 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttendanceDetailsServiceImpl.java @@ -79,9 +79,14 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { } @Override - public int updateAttDetailsData(List list) { + public AjaxResult updateAttDetailsData(List list) { // 判断考勤修改的数据是否有处于人资审核中,如果只是处于部门领导审核中则可以修改 - + for (AttDataDetailsBean attDataDetailsBean : list) { + Integer auditStatus = attendanceDetailsDao.getAuditStatus(attDataDetailsBean); + if (Objects.equals(3, auditStatus)) { + return AjaxResult.error("姓名:"+attDataDetailsBean.getUserName() + "修改的考勤数据处于人资审核中,请等待审核完成后再修改"); + } + } int i = attendanceDetailsDao.updateAttDetailsData(list); fileUploadService.saveAttUpdateFileSource(list); if (i > 0) { @@ -108,7 +113,7 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { noticeService.insertNotice(bean); } } - return i; + return AjaxResult.success(); } @Override @@ -118,9 +123,27 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { list.forEach(c -> { c.setReviewerUserId(userId); c.setReviewerTime(time); + Integer auditStatus = attendanceDetailsDao.getAuditStatus(c); + c.setCurrentAuditStatus(auditStatus); + if(Objects.equals(auditStatus,0)){ // 部门负责人审核 + c.setManagerAuditTime(time); + c.setManagerAuditId(userId); + c.setManagerAuditStatus(c.getReviewerStatus()); + if(Objects.equals(c.getReviewerStatus(),"1")){ // 审批通过流转到人资专员审核 + c.setHrAuditStatus("0"); + c.setReviewerStatus("3"); + }else if(Objects.equals(c.getReviewerStatus(),"2")){ // 审批驳回 + c.setReviewerStatus(c.getReviewerStatus()); + } + }else if(Objects.equals(auditStatus,3)){ // 人资审核 + c.setHrAuditTime(time); + c.setHrAuditId(userId); + c.setHrAuditStatus(c.getReviewerStatus()); + } }); int i = attendanceDetailsDao.updateAttDetailsDataExamine(list); - if(i>0){ + // todo 更新月报表和日报表 + if (i > 0) { Set keys = new HashSet<>(); for (AttDataDetailsBean attDataDetailsBean : list) { keys.add(attDataDetailsBean.getAttCurrentDay()); @@ -228,8 +251,8 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { .collect(Collectors.toList()); attTasks.hisAttPush(dateList); return AjaxResult.success("数据同步成功"); - }catch (Exception e){ - log.error(e.toString(),e); + } catch (Exception e) { + log.error(e.toString(), e); return AjaxResult.error("数据同步失败"); } } @@ -288,7 +311,7 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { try { list = attendanceDetailsDao.getClockingRecordListByUserId(bean); } catch (Exception e) { - log.error(e.toString(),e); + log.error(e.toString(), e); } return list; } diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml index 032c894..568827d 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml @@ -501,17 +501,23 @@ FROM att_source_data WHERE name = #{userName} AND DATE_FORMAT(att_current_day,'%Y-%m') = #{month} AND is_active = '1' + + update att_data_update set update_att_current_time = #{params.toWorkAttCurrentTime}, - update_att_status = #{params.toWorkAttStatus}, reviewer_status = 0, is_update = 1, + update_att_status = #{params.toWorkAttStatus}, reviewer_status = 0, is_update = 1,manager_audit_status = 0, reason_content = #{params.toErrorRemake} where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 1 and att_current_day = #{params.attCurrentDay}; update att_data_update set update_att_current_time = #{params.offWorkAttCurrentTime}, - update_att_status = #{params.offWorkAttStatus}, reviewer_status = 0, is_update = 1, + update_att_status = #{params.offWorkAttStatus}, reviewer_status = 0, is_update = 1,manager_audit_status = 0, reason_content = #{params.offErrorRemake} where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 2 and att_current_day = #{params.attCurrentDay} @@ -520,15 +526,32 @@ - update att_data_update set reviewer_status = #{params.reviewerStatus}, - reviewer_user_id = #{params.reviewerUserId}, reviewer_time = #{params.reviewerTime} - where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 1 - and att_current_day = #{params.attCurrentDay}; + + update att_data_update set reviewer_status = #{params.reviewerStatus}, + manager_audit_id = #{params.managerAuditId}, manager_audit_time = #{params.managerAuditTime}, + manager_audit_status = #{params.managerAuditStatus} + where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 1 + and att_current_day = #{params.attCurrentDay}; - update att_data_update set reviewer_status = #{params.reviewerStatus}, - reviewer_user_id = #{params.reviewerUserId}, reviewer_time = #{params.reviewerTime} - where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 2 - and att_current_day = #{params.attCurrentDay} + update att_data_update set reviewer_status = #{params.reviewerStatus}, + manager_audit_id = #{params.managerAuditId}, manager_audit_time = #{params.managerAuditTime}, + manager_audit_status = #{params.managerAuditStatus} + where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 2 + and att_current_day = #{params.attCurrentDay} + + + update att_data_update set reviewer_status = #{params.reviewerStatus}, + hr_audit_id = #{params.hrAuditId}, hr_audit_time = #{params.hrAuditTime}, + hr_audit_status = #{params.hrAuditStatus} + where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 1 + and att_current_day = #{params.attCurrentDay}; + + update att_data_update set reviewer_status = #{params.reviewerStatus}, + hr_audit_id = #{params.hrAuditId}, hr_audit_time = #{params.hrAuditTime}, + hr_audit_status = #{params.hrAuditStatus} + where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 2 + and att_current_day = #{params.attCurrentDay} + \ No newline at end of file