审核流程配置

This commit is contained in:
cwchen 2025-02-21 16:08:11 +08:00
parent 073b63682b
commit 24422301eb
6 changed files with 91 additions and 23 deletions

View File

@ -164,7 +164,7 @@ public class AttendanceDetailsController extends BaseController {
@Log(title = "考勤报表->考勤明细->考勤修改", businessType = BusinessType.UPDATE) @Log(title = "考勤报表->考勤明细->考勤修改", businessType = BusinessType.UPDATE)
public AjaxResult examine(@RequestBody List<AttDataDetailsBean> list) { public AjaxResult examine(@RequestBody List<AttDataDetailsBean> list) {
try{ try{
return toAjax(attendanceDetailsService.updateAttDetailsDataExamine(list)); return attendanceDetailsService.updateAttDetailsDataExamine(list);
}catch (Exception e){ }catch (Exception e){
log.error(e.toString(),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<AttDataDetailsBean> attDataDetailsBeans = attendanceDetailsService.selectAttUpdateList(bean); List<AttDataDetailsBean> attDataDetailsBeans = attendanceDetailsService.selectAttUpdateList(bean);
return endPage(attDataDetailsBeans); return endPage(attDataDetailsBeans);
}catch (Exception e){ }catch (Exception e){

View File

@ -257,6 +257,10 @@ public class AttDataDetailsBean {
/**当前审核状态*/ /**当前审核状态*/
private Integer currentAuditStatus; private Integer currentAuditStatus;
/**1.部门管理员审核状态 2.人资审核状态*/
private int userAuditType;
/**角色名称ID*/
private int roleId;
/**上班附件/下班附件*/ /**上班附件/下班附件*/
private List<FilesVo> filesVoList; private List<FilesVo> filesVoList;

View File

@ -55,7 +55,7 @@ public interface AttendanceDetailsService {
* @param list list bean * @param list list bean
* @return * @return
*/ */
int updateAttDetailsDataExamine(List<AttDataDetailsBean> list); AjaxResult updateAttDetailsDataExamine(List<AttDataDetailsBean> list);
/** /**
* 获取考勤修改列表 * 获取考勤修改列表

View File

@ -5,9 +5,11 @@ import com.bonus.common.core.utils.poi.ExcelUtil;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.system.api.domain.MapVo; 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.dao.AttendanceDetailsDao;
import com.bonus.system.att.entity.*; import com.bonus.system.att.entity.*;
import com.bonus.system.att.tasks.NewAttTask; 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.domain.SysNotice;
import com.bonus.system.basic.service.SysNoticeService; import com.bonus.system.basic.service.SysNoticeService;
import com.bonus.system.file.service.FileUploadService; import com.bonus.system.file.service.FileUploadService;
@ -107,15 +109,23 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService {
} }
@Override @Override
public int updateAttDetailsDataExamine(List<AttDataDetailsBean> list) { public AjaxResult updateAttDetailsDataExamine(List<AttDataDetailsBean> list) {
long userId = SecurityUtils.getLoginUser().getSysUser().getUserId(); long userId = SecurityUtils.getLoginUser().getSysUser().getUserId();
// 当前登录人的审核权限类型
int auditType = RoleUtil.getAuditType();
if(auditType == 0){
return AjaxResult.error("当前用户无审核权限");
}
String time = DateUtils.getTime(); String time = DateUtils.getTime();
list.forEach(c -> { for (AttDataDetailsBean c : list) {
c.setReviewerUserId(userId); c.setReviewerUserId(userId);
c.setReviewerTime(time); c.setReviewerTime(time);
Integer auditStatus = attendanceDetailsDao.getAuditStatus(c); Integer auditStatus = attendanceDetailsDao.getAuditStatus(c);
c.setCurrentAuditStatus(auditStatus); c.setCurrentAuditStatus(auditStatus);
if(Objects.equals(auditStatus,0)){ // 部门负责人审核 if(Objects.equals(auditStatus,0)){ // 部门负责人审核
if(auditType == 2){
return AjaxResult.error("当前用户无审核权限");
}
c.setManagerAuditTime(time); c.setManagerAuditTime(time);
c.setManagerAuditId(userId); c.setManagerAuditId(userId);
c.setManagerAuditStatus(c.getReviewerStatus()); c.setManagerAuditStatus(c.getReviewerStatus());
@ -126,11 +136,14 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService {
c.setReviewerStatus(c.getReviewerStatus()); c.setReviewerStatus(c.getReviewerStatus());
} }
}else if(Objects.equals(auditStatus,3)){ // 人资审核 }else if(Objects.equals(auditStatus,3)){ // 人资审核
if(auditType == 1){
return AjaxResult.error("当前用户无审核权限");
}
c.setHrAuditTime(time); c.setHrAuditTime(time);
c.setHrAuditId(userId); c.setHrAuditId(userId);
c.setHrAuditStatus(c.getReviewerStatus()); c.setHrAuditStatus(c.getReviewerStatus());
} }
}); }
int i = attendanceDetailsDao.updateAttDetailsDataExamine(list); int i = attendanceDetailsDao.updateAttDetailsDataExamine(list);
if (i > 0) { if (i > 0) {
Set<String> keys = new HashSet<>(); Set<String> keys = new HashSet<>();
@ -143,30 +156,17 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService {
newAttTask.updateMonthReportData(item); newAttTask.updateMonthReportData(item);
} }
} }
return i; return AjaxResult.success();
} }
@Override @Override
public List<AttDataDetailsBean> selectAttUpdateList(AttDataDetailsBean bean) { public List<AttDataDetailsBean> selectAttUpdateList(AttDataDetailsBean bean) {
//只能查自己分公司的人 int currentUserRole = RoleUtil.getCurrentUserRole();
// SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
// List<String> roleId = sysUser.getRoleList();
// if(roleId !=null && !roleId.isEmpty() ){
// if (Collections.frequency(roleId, "1")==0) {
// List<MapVo> orgList = SecurityUtils.getLoginUser().getSysUser().getOrgList();
// if (!orgList.isEmpty()) {
// ArrayList<String> ids = new ArrayList<>();
// for (MapVo mapVo : orgList) {
// ids.add(String.valueOf(mapVo.getId()));
// }
// bean.setOrgList(ids);
// }
// }
// }
List<AttDataDetailsBean> list = attendanceDetailsDao.selectAttUpdateList(bean); List<AttDataDetailsBean> list = attendanceDetailsDao.selectAttUpdateList(bean);
for (AttDataDetailsBean vo : list) { for (AttDataDetailsBean vo : list) {
List<AttDataDetailsBean.FilesVo> filesVoList = fileUploadService.getFiles(vo); List<AttDataDetailsBean.FilesVo> filesVoList = fileUploadService.getFiles(vo);
vo.setFilesVoList(filesVoList); vo.setFilesVoList(filesVoList);
vo.setRoleId(currentUserRole);
} }
return list; return list;
} }

View File

@ -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<String> 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<String> 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;
}
}

View File

@ -245,6 +245,17 @@
<if test="attStatus != null and attStatus != ''"> <if test="attStatus != null and attStatus != ''">
AND v.toWorkAttStatus = #{attStatus} AND v.offWorkAttStatus = #{attStatus} AND v.toWorkAttStatus = #{attStatus} AND v.offWorkAttStatus = #{attStatus}
</if> </if>
/*部门负责人*/
<if test="userAuditType == 1">
AND v.reviewer_status IN ('0','1','2','3')
AND v.manager_audit_status IN ('0','1','2')
</if>
/*人资专员*/
<if test="userAuditType == 2">
AND v.reviewer_status IN ('1','2','3')
AND v.hr_audit_status IN ('0','1','2')
AND v.manager_audit_status = '1'
</if>
</select> </select>
<select id="getAttDayReportList" resultType="com.bonus.system.att.entity.AttDayReportBean"> <select id="getAttDayReportList" resultType="com.bonus.system.att.entity.AttDayReportBean">
@ -532,13 +543,13 @@
<if test="params.currentAuditStatus == 0"> <if test="params.currentAuditStatus == 0">
update att_data_update set reviewer_status = #{params.reviewerStatus}, update att_data_update set reviewer_status = #{params.reviewerStatus},
manager_audit_id = #{params.managerAuditId}, manager_audit_time = #{params.managerAuditTime}, manager_audit_id = #{params.managerAuditId}, manager_audit_time = #{params.managerAuditTime},
manager_audit_status = #{params.managerAuditStatus} manager_audit_status = #{params.managerAuditStatus},hr_audit_status = #{params.hrAuditStatus}
where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 1 where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 1
and att_current_day = #{params.attCurrentDay}; and att_current_day = #{params.attCurrentDay};
update att_data_update set reviewer_status = #{params.reviewerStatus}, update att_data_update set reviewer_status = #{params.reviewerStatus},
manager_audit_id = #{params.managerAuditId}, manager_audit_time = #{params.managerAuditTime}, manager_audit_id = #{params.managerAuditId}, manager_audit_time = #{params.managerAuditTime},
manager_audit_status = #{params.managerAuditStatus} manager_audit_status = #{params.managerAuditStatus},hr_audit_status = #{params.hrAuditStatus}
where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 2 where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 2
and att_current_day = #{params.attCurrentDay} and att_current_day = #{params.attCurrentDay}
</if> </if>