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 fbdaa66..d2052d4 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 @@ -164,7 +164,7 @@ public class AttendanceDetailsController extends BaseController { @Log(title = "考勤报表->考勤明细->考勤修改", businessType = BusinessType.UPDATE) public AjaxResult examine(@RequestBody List list) { try{ - return toAjax(attendanceDetailsService.updateAttDetailsDataExamine(list)); + return attendanceDetailsService.updateAttDetailsDataExamine(list); }catch (Exception e){ log.error(e.toString(),e); } @@ -229,6 +229,11 @@ public class AttendanceDetailsController extends BaseController { } } } + if(Collections.frequency(roleId, "14") == 1){ // 部门负责人 + bean.setUserAuditType(1); + }else if(Collections.frequency(roleId, "16") == 1){ // 人资专员 + bean.setUserAuditType(2); + } List attDataDetailsBeans = attendanceDetailsService.selectAttUpdateList(bean); return endPage(attDataDetailsBeans); }catch (Exception e){ 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 d0729ea..b1af5c3 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 @@ -257,6 +257,10 @@ public class AttDataDetailsBean { /**当前审核状态*/ private Integer currentAuditStatus; + /**1.部门管理员审核状态 2.人资审核状态*/ + private int userAuditType; + /**角色名称ID*/ + private int roleId; /**上班附件/下班附件*/ 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 802ba08..6b0be8a 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 @@ -55,7 +55,7 @@ public interface AttendanceDetailsService { * @param list list bean * @return */ - int updateAttDetailsDataExamine(List list); + AjaxResult updateAttDetailsDataExamine(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 ba89402..cd3f6d7 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 @@ -5,9 +5,11 @@ import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; import com.bonus.system.api.domain.MapVo; +import com.bonus.system.api.domain.SysUser; import com.bonus.system.att.dao.AttendanceDetailsDao; import com.bonus.system.att.entity.*; import com.bonus.system.att.tasks.NewAttTask; +import com.bonus.system.att.utils.RoleUtil; import com.bonus.system.basic.domain.SysNotice; import com.bonus.system.basic.service.SysNoticeService; import com.bonus.system.file.service.FileUploadService; @@ -107,15 +109,23 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { } @Override - public int updateAttDetailsDataExamine(List list) { + public AjaxResult updateAttDetailsDataExamine(List list) { long userId = SecurityUtils.getLoginUser().getSysUser().getUserId(); + // 当前登录人的审核权限类型 + int auditType = RoleUtil.getAuditType(); + if(auditType == 0){ + return AjaxResult.error("当前用户无审核权限"); + } String time = DateUtils.getTime(); - list.forEach(c -> { + for (AttDataDetailsBean c : list) { c.setReviewerUserId(userId); c.setReviewerTime(time); Integer auditStatus = attendanceDetailsDao.getAuditStatus(c); c.setCurrentAuditStatus(auditStatus); if(Objects.equals(auditStatus,0)){ // 部门负责人审核 + if(auditType == 2){ + return AjaxResult.error("当前用户无审核权限"); + } c.setManagerAuditTime(time); c.setManagerAuditId(userId); c.setManagerAuditStatus(c.getReviewerStatus()); @@ -126,11 +136,14 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { c.setReviewerStatus(c.getReviewerStatus()); } }else if(Objects.equals(auditStatus,3)){ // 人资审核 + if(auditType == 1){ + return AjaxResult.error("当前用户无审核权限"); + } c.setHrAuditTime(time); c.setHrAuditId(userId); c.setHrAuditStatus(c.getReviewerStatus()); } - }); + } int i = attendanceDetailsDao.updateAttDetailsDataExamine(list); if (i > 0) { Set keys = new HashSet<>(); @@ -143,30 +156,17 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { newAttTask.updateMonthReportData(item); } } - return i; + return AjaxResult.success(); } @Override public List selectAttUpdateList(AttDataDetailsBean bean) { - //只能查自己分公司的人 -// SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); -// List roleId = sysUser.getRoleList(); -// if(roleId !=null && !roleId.isEmpty() ){ -// if (Collections.frequency(roleId, "1")==0) { -// List orgList = SecurityUtils.getLoginUser().getSysUser().getOrgList(); -// if (!orgList.isEmpty()) { -// ArrayList ids = new ArrayList<>(); -// for (MapVo mapVo : orgList) { -// ids.add(String.valueOf(mapVo.getId())); -// } -// bean.setOrgList(ids); -// } -// } -// } + int currentUserRole = RoleUtil.getCurrentUserRole(); List list = attendanceDetailsDao.selectAttUpdateList(bean); for (AttDataDetailsBean vo : list) { List filesVoList = fileUploadService.getFiles(vo); vo.setFilesVoList(filesVoList); + vo.setRoleId(currentUserRole); } return list; } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/utils/RoleUtil.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/utils/RoleUtil.java new file mode 100644 index 0000000..59e6867 --- /dev/null +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/utils/RoleUtil.java @@ -0,0 +1,48 @@ +package com.bonus.system.att.utils; + +import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.system.api.domain.SysUser; + +import java.util.Collections; +import java.util.List; + +/** + * @className:RoleUtil + * @author:cwchen + * @date:2025-02-21-15:45 + * @version:1.0 + * @description:角色工具类 + */ +public class RoleUtil { + + public static int getCurrentUserRole(){ + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + List rolesId = sysUser.getRoleList(); + int roleId; + if(Collections.frequency(rolesId, "14") == 1){ // 部门负责人 + roleId = 14; + }else if(Collections.frequency(rolesId, "16") == 1){ // 人资专员 + roleId = 16; + }else if(Collections.frequency(rolesId, "1") == 1){ // 管理员 + roleId = 1; + }else { // 其他角色 + roleId = 0; + } + return roleId; + } + + public static int getAuditType(){ + int auditType; + List roleId = SecurityUtils.getLoginUser().getSysUser().getRoleList(); + if(Collections.frequency(roleId, "14") == 1){ // 部门负责人 + auditType = 1; + }else if(Collections.frequency(roleId, "16") == 1){ // 人资专员 + auditType = 2; + }else if(Collections.frequency(roleId, "1") == 1){ // 管理员 + auditType = 3; + } else { + auditType = 0; + } + return auditType; + } +} 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 26a942e..e123fe7 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 @@ -245,6 +245,17 @@ AND v.toWorkAttStatus = #{attStatus} AND v.offWorkAttStatus = #{attStatus} + /*部门负责人*/ + + AND v.reviewer_status IN ('0','1','2','3') + AND v.manager_audit_status IN ('0','1','2') + + /*人资专员*/ + + AND v.reviewer_status IN ('1','2','3') + AND v.hr_audit_status IN ('0','1','2') + AND v.manager_audit_status = '1' +