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 f46e824..630871d 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 @@ -6,13 +6,17 @@ import com.bonus.common.core.web.page.TableDataInfo; import com.bonus.common.log.annotation.Log; import com.bonus.common.log.enums.BusinessType; import com.bonus.common.security.annotation.RequiresPermissions; +import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.system.api.domain.SysRole; import com.bonus.system.api.domain.SysUser; 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.service.AttendanceDetailsService; +import com.bonus.system.basic.dao.SysUserMapper; import com.bonus.system.basic.domain.SysOrg; import com.bonus.system.basic.service.SysOrgService; +import com.bonus.system.holiday.dao.WorkReportDao; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -38,6 +42,12 @@ public class AttendanceDetailsController extends BaseController { @Resource(name = "sysOrgService") private SysOrgService sysOrgService; + @Resource(name = "WorkReportDao") + private WorkReportDao dao; + + @Resource + private SysUserMapper userMapper; + /** * 获取考勤原始明细列表 */ @@ -62,6 +72,39 @@ public class AttendanceDetailsController extends BaseController { @Log(title = "考勤报表->考勤明细->列表查询", businessType = BusinessType.QUERY) public TableDataInfo getDetailsList(AttDataDetailsBean bean) { try{ + // 部门负责人和部门考勤员可以在考勤明细页面看到本部门人员的考勤信息,管理员和人资专员可以看所有数据,普通人员看到自己数据 + Long userId = SecurityUtils.getUserId(); + List sysRoleList = dao.getRoleListByUserId(userId); + int roleCount = 0; + if(!sysRoleList.isEmpty()){ + for (SysRole sysRole : sysRoleList) { + if(sysRole.getRoleName().contains("管理员")){ + roleCount = 1; + break; + }else if(sysRole.getRoleName().contains("人资专员")){ + roleCount = 1; + break; + }else if(sysRole.getRoleName().contains("部门负责人")){ + roleCount = 2; + break; + }else if(sysRole.getRoleName().contains("部门考勤员")){ + roleCount = 2; + break; + }else if(sysRole.getRoleName().contains("普通人员")){ + roleCount = 3; + break; + } + } + } + + if(roleCount==2){ + String ids = userMapper.getOrg(userId); + bean.setRoleType("2"); + bean.setOrgListId(ids); + }else if(roleCount==3){ + bean.setRoleType("3"); + bean.setUserId(userId); + } startPage(); return getDataTable(attendanceDetailsService.selectAttDetailsList(bean)); }catch (Exception e){ @@ -222,4 +265,19 @@ public class AttendanceDetailsController extends BaseController { return attendanceDetailsService.synchronous(bean); } + + /** + * 获取日报表-详细记录 + */ + @GetMapping("/getAttDayList") + @Log(title = "考勤报表->日报表->今日出勤状态", businessType = BusinessType.QUERY) + public TableDataInfo getAttDayList(AttDataDetailsBean bean) { + try{ + startPage(); + return getDataTable(attendanceDetailsService.getAttDayList(bean)); + }catch (Exception e){ + log.error(e.toString(),e); + } + return getDataTableError(new ArrayList<>()); + } } 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 b5b7ad1..a2372c0 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 @@ -84,4 +84,6 @@ public interface AttendanceDetailsDao { List getAttDayReportDetailsList(AttDataDetailsBean bean); List getOutCountList(AttDataDetailsBean bean); + + List getAttDayList(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 40bc2ae..637edde 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 @@ -199,6 +199,18 @@ public class AttDataDetailsBean { /** 上班时间外出次数 */ private Integer outCount; + /** + * 角色类型 1:人资专员和管理员;2:部门考勤员,部门负责人 3:普通人员 + */ + private String roleType; + private String orgListId; + + /** + * 考勤类型 + */ + private String attendType; + private String attStatusToday; + public AttDataDetailsBean() { } 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 9e8f411..cf84418 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 @@ -99,4 +99,6 @@ public interface AttendanceDetailsService { List getOutCountList(AttDataDetailsBean bean); AjaxResult synchronous(AttDataDetailsBean bean); + + List getAttDayList(AttDataDetailsBean bean); } 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 7211727..454b165 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 @@ -183,6 +183,11 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService { } } + @Override + public List getAttDayList(AttDataDetailsBean bean) { + return attendanceDetailsDao.getAttDayList(bean); + } + public List getAttDayReportListAll(List list) { List allList = new ArrayList<>(); Map map = list.stream() diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/index/entity/IndexTodayAttBean.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/index/entity/IndexTodayAttBean.java index 5030baa..b4f08e5 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/index/entity/IndexTodayAttBean.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/index/entity/IndexTodayAttBean.java @@ -24,4 +24,9 @@ public class IndexTodayAttBean { */ private String attRate; + /** + * 未出勤 + */ + private String noActualAttNum; + } 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 db9d8a9..3765fc1 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 @@ -28,6 +28,12 @@ and ( toWorkAttStatus = #{attStatus} or offWorkAttStatus = #{attStatus} ) + + and v.org_id in (#{orgListId}) + + + and su.user_id = #{userId} + GROUP BY v.att_current_day, v.user_id @@ -141,16 +147,13 @@ + + diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml index ade5f88..fcc399b 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysUserMapper.xml @@ -161,6 +161,13 @@ and suo.org_id in (#{orgListId}) + + and agpr.user_id is not null + + + and agpr.user_id is null + + GROUP BY su.user_id order by su.update_time desc diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/index/HomePageMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/index/HomePageMapper.xml index 7476750..68748db 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/index/HomePageMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/index/HomePageMapper.xml @@ -5,13 +5,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"