From 7b5948b5318697ca5517ef22ca0450811b73ac33 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Sun, 23 Feb 2025 22:06:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E4=BF=AE=E6=94=B9=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E6=B5=81=E7=A8=8B=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/att/dao/AttendanceDetailsDao.java | 23 +++++++++-- .../system/att/entity/AttDataDetailsBean.java | 2 + .../entity/AttDataUpdateAuditRecordVo.java | 35 ++++++++++++++++ .../service/AttendanceDetailsServiceImpl.java | 41 ++++++++++++++++--- .../mapper/att/AttendanceDetailsMapper.xml | 33 ++++++++++++++- 5 files changed, 122 insertions(+), 12 deletions(-) create mode 100644 bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDataUpdateAuditRecordVo.java 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 2966269..2bd4e6e 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 @@ -1,10 +1,7 @@ package com.bonus.system.att.dao; import com.bonus.system.api.domain.MapVo; -import com.bonus.system.att.entity.AttClockingRecordVo; -import com.bonus.system.att.entity.AttDataDetailsBean; -import com.bonus.system.att.entity.AttDayReportBean; -import com.bonus.system.att.entity.AttMonthReportBean; +import com.bonus.system.att.entity.*; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -125,4 +122,22 @@ public interface AttendanceDetailsDao { * @date 2025/2/19 18:16 */ Integer getAuditStatus(AttDataDetailsBean bean); + + /** + * 获取审核状态等信息 + * @param c + * @return AttDataDetailsBean + * @author cwchen + * @date 2025/2/23 20:46 + */ + AttDataDetailsBean getAuditInfo(AttDataDetailsBean c); + + /** + * 添加考勤修改审核记录 + * @param list + * @return void + * @author cwchen + * @date 2025/2/23 21:01 + */ + void addAttDataAuditRecord(List list); } 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 b1af5c3..ec03e13 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 @@ -261,6 +261,8 @@ public class AttDataDetailsBean { private int userAuditType; /**角色名称ID*/ private int roleId; + /**审核批次*/ + private int auditNum; /**上班附件/下班附件*/ private List filesVoList; diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDataUpdateAuditRecordVo.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDataUpdateAuditRecordVo.java new file mode 100644 index 0000000..89e7e16 --- /dev/null +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttDataUpdateAuditRecordVo.java @@ -0,0 +1,35 @@ +package com.bonus.system.att.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * @className:AttDataUpdateAuditRecordVo + * @author:cwchen + * @date:2025-02-23-20:18 + * @version:1.0 + * @description:考勤修改审核记录-vo + */ +@Data +public class AttDataUpdateAuditRecordVo { + + /**id*/ + private Long id; + /**用户编号*/ + private Long userId; + /**考勤日期*/ + private Date attCurrentDay; + /**审核人类型 0.部门负责人 3.人资专员*/ + private String auditType; + /**0.待审核 1.审核通过 2.审核驳回*/ + private String auditStatus; + /**审核人id*/ + private Long auditUserId; + /**创建时间*/ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime = new Date(); + /**审核批次*/ + private int auditNum; +} 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 57fb989..4a02149 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 @@ -1,5 +1,6 @@ package com.bonus.system.att.service; +import com.bonus.common.core.utils.DateTimeHelper; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.domain.AjaxResult; @@ -118,6 +119,7 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { @Transactional(rollbackFor = Exception.class) public AjaxResult updateAttDetailsDataExamine(List list) { try { + List auditRecordVos = new ArrayList<>(); long userId = SecurityUtils.getLoginUser().getSysUser().getUserId(); // 当前登录人的审核权限类型 int auditType = RoleUtil.getAuditType(); @@ -126,15 +128,18 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { } String time = DateUtils.getTime(); for (AttDataDetailsBean c : list) { - Integer auditStatus = attendanceDetailsDao.getAuditStatus(c); + AttDataDetailsBean bean = attendanceDetailsDao.getAuditInfo(c); + Integer auditStatus = bean.getCurrentAuditStatus(); c.setReviewerUserId(userId); c.setReviewerTime(time); c.setCurrentAuditStatus(auditStatus); - if(Objects.equals(auditStatus,1) || Objects.equals(auditStatus,2)){ // 数据审核通过|数据审核驳回 - continue; + if(Objects.equals(auditStatus,1)){ // 数据审核通过 + return AjaxResult.error(bean.getUserName() + "的考勤修改数据已审批通过,请刷新后重试"); + }else if(Objects.equals(auditStatus,2)){ // 数据审核驳回 + return AjaxResult.error(bean.getUserName() + "的考勤修改数据已被拒绝,请刷新后重试"); }else if(Objects.equals(auditStatus,0)){ // 部门负责人审核 if(auditType == 2){ // 数据处于部门负责人审核中,人资专员无权审核 - return AjaxResult.error("当前用户无审核权限"); + return AjaxResult.error(bean.getUserName() + "的考勤修改数据,当前账号无审核权限"); } c.setManagerAuditTime(time); c.setManagerAuditId(userId); @@ -147,14 +152,17 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { } }else if(Objects.equals(auditStatus,3)){ // 人资审核 if(auditType == 1){ // 数据处于人资审核中,部门负责人无权审核 - return AjaxResult.error("当前用户无审核权限"); + return AjaxResult.error(bean.getUserName() + "的考勤修改数据已被审核,请刷新后重试"); } c.setHrAuditTime(time); c.setHrAuditId(userId); c.setHrAuditStatus(c.getReviewerStatus()); } + auditRecordVos.add(setAuditRecord(c, auditType,bean.getAuditNum())); } - int i = attendanceDetailsDao.updateAttDetailsDataExamine(list); + attendanceDetailsDao.updateAttDetailsDataExamine(list); + // 添加审核记录 + attendanceDetailsDao.addAttDataAuditRecord(auditRecordVos); // 提交数据同步任务到线程池 testTaskExecutor.submit(() -> syncData(list)); return AjaxResult.success(); @@ -165,6 +173,27 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { } } + /** + * 添加审核记录 + * @param c + * @param auditType + * @return AttDataUpdateAuditRecordVo + * @author cwchen + * @date 2025/2/23 20:41 + */ + public AttDataUpdateAuditRecordVo setAuditRecord(AttDataDetailsBean c, int auditType,int auditNum) { + AttDataUpdateAuditRecordVo vo = new AttDataUpdateAuditRecordVo(); + long userId = SecurityUtils.getLoginUser().getSysUser().getUserId(); + vo.setUserId(c.getUserId()); + vo.setAttCurrentDay(DateTimeHelper.parse(c.getAttCurrentDay(),"yyyy-MM-dd")); + // 审核人类型 1.部门负责人 2.人资专员 3.管理员(兼有部门负责人和人资专员的权限) + vo.setAuditType(String.valueOf(auditType)); + vo.setAuditStatus(c.getReviewerStatus()); + vo.setAuditUserId(userId); + vo.setAuditNum(auditNum); + return vo; + } + /** * 考勤明细修改后执行定时任务 * @param 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 e123fe7..82350ee 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 @@ -3,6 +3,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + INSERT INTO att_data_update_audit_record + + user_id, + att_current_day, + audit_type, + audit_status, + audit_user_id, + create_time, + audit_num + + VALUES + ( + #{item.userId},#{item.attCurrentDay},#{item.auditType},#{item.auditStatus}, + #{item.auditUserId},#{item.createTime},#{item.auditNum} + ) + + + + update att_data_update set update_att_current_time = #{params.toWorkAttCurrentTime}, update_att_status = #{params.toWorkAttStatus}, reviewer_status = 0, is_update = 1,manager_audit_status = 0, - reason_content = #{params.toErrorRemake} + reason_content = #{params.toErrorRemake},audit_num = (IFNULL(audit_num,0) + 1) 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,manager_audit_status = 0, - reason_content = #{params.offErrorRemake} + reason_content = #{params.offErrorRemake},audit_num = (IFNULL(audit_num,0) + 1) where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 2 and att_current_day = #{params.attCurrentDay}