From 5463501e0de1b4d7a98a1f2260bf8d4efb135a9d Mon Sep 17 00:00:00 2001 From: lSun <15893999301@qq.com> Date: Wed, 25 Dec 2024 21:50:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=8F=90=E9=86=92=EF=BC=8C?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9A=94=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lSun <15893999301@qq.com> --- .../bonus/system/att/tasks/WechatTasks.java | 4 +- .../basic/controller/SysNoticeController.java | 21 ++++++-- .../bonus/system/basic/dao/SysUserMapper.java | 2 + .../bonus/system/basic/domain/SysNotice.java | 7 +++ .../holiday/controller/HolidayController.java | 48 +++++++++++++++++++ .../system/holiday/entity/HolidayBean.java | 11 +++++ .../holiday/service/HolidayServiceImpl.java | 15 ------ .../mapper/att/AttendanceDetailsMapper.xml | 16 ++++--- .../mapper/basic/SysNoticeMapper.xml | 19 +++++--- .../resources/mapper/basic/SysUserMapper.xml | 11 +++++ .../mapper/holiday/HolidayMapper.xml | 14 ++++-- 11 files changed, 130 insertions(+), 38 deletions(-) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/WechatTasks.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/WechatTasks.java index 168dc26..d29276a 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/WechatTasks.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/WechatTasks.java @@ -76,8 +76,8 @@ public class WechatTasks { /** * 人员基础数据同步定时器 */ - // @Scheduled(cron = "0 0/10 * * * ?") - @Scheduled(initialDelay = 6000,fixedDelay = 60000 * 10) + @Scheduled(cron = "0 0/10 * * * ?") +// @Scheduled(initialDelay = 6000,fixedDelay = 60000 * 10) @Async public void pushPersonTask() { log.info("--------人员基础数据同步定时器开启------"); diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysNoticeController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysNoticeController.java index 75e239b..de3fcbc 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysNoticeController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/controller/SysNoticeController.java @@ -52,6 +52,15 @@ public class SysNoticeController extends BaseController { 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 = 2; break; @@ -60,17 +69,21 @@ public class SysNoticeController extends BaseController { } if(roleCount==2){ String ids = userMapper.getOrg(userId); - String userIdList = userMapper.getUserIdList(ids); bean.setRoleType("2"); - String[] split = userIdList.split(","); - bean.setUserIdList(split); + String[] split = ids.split(","); + bean.setOrgListId(split); + //查询是否存在多个部门负责人, + List managerList = userMapper.getManagerList(userId); + + if( managerList !=null && managerList.size()>0){ + bean.setUserIdBr(userId); + } }else if(roleCount==1){ bean.setRoleType("1"); } else{ bean.setRoleType("3"); bean.setUserId(userId); } - List list = noticeService.selectNoticeList(bean); return endPage(list); }catch (Exception e){ diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java index a1afaa5..e6feada 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/dao/SysUserMapper.java @@ -232,4 +232,6 @@ public interface SysUserMapper String getOrg(Long userId); String getUserIdList(String userIdList); + + List getManagerList(Long userId); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/domain/SysNotice.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/domain/SysNotice.java index df466f1..fcd3447 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/domain/SysNotice.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/domain/SysNotice.java @@ -74,4 +74,11 @@ public class SysNotice private String roleType; private String[] userIdList; + + private String[] orgListId; + + /** + * 用户编号用来判断是否是本人 + */ + private Long userIdBr; } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/controller/HolidayController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/controller/HolidayController.java index 3ba4646..fee497d 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/controller/HolidayController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/controller/HolidayController.java @@ -7,10 +7,15 @@ 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.MapVo; +import com.bonus.system.api.domain.SysRole; +import com.bonus.system.api.domain.SysUser; +import com.bonus.system.basic.dao.SysUserMapper; import com.bonus.system.dept.entity.EightRoleBean; import com.bonus.system.dept.entity.ProDeptRoleBean; import com.bonus.system.dept.entity.ProDeptRoleDo; import com.bonus.system.dept.entity.SubOrgBean; +import com.bonus.system.holiday.dao.WorkReportDao; import com.bonus.system.holiday.entity.HolidayBean; import com.bonus.system.holiday.service.HolidayService; import lombok.extern.slf4j.Slf4j; @@ -19,6 +24,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -34,6 +40,12 @@ public class HolidayController extends BaseController { @Resource(name = "HolidayService") private HolidayService holidayService; + @Resource(name = "WorkReportDao") + private WorkReportDao dao; + + @Resource + private SysUserMapper userMapper; + /** * 获取假期列表(表格) */ @@ -122,6 +134,42 @@ public class HolidayController extends BaseController { @Log(title = "流程管理->假期管理->列表查询", businessType = BusinessType.QUERY) public TableDataInfo checkList(HolidayBean 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 = 2; + break; + } + } + } + if(roleCount==2){ + String ids = userMapper.getOrg(userId); + bean.setRoleType("2"); + String[] split = ids.split(","); + bean.setOrgListId(split); + //查询是否存在多个部门负责人, + List managerList = userMapper.getManagerList(userId); + if( managerList !=null && managerList.size()>0){ + bean.setUserIds(userId); + } + } List holidayList = holidayService.getHolidayListCheck(bean); return endPage(holidayList); }catch (Exception e){ diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/entity/HolidayBean.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/entity/HolidayBean.java index dbb55e2..23c6623 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/entity/HolidayBean.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/entity/HolidayBean.java @@ -36,6 +36,11 @@ public class HolidayBean extends BaseBean { * 请假人用户编号 */ private Long userId; + + /** + * 用户编号用来判断是否是本人 + */ + private Long userIds; /** * 请假人姓名 */ @@ -141,4 +146,10 @@ public class HolidayBean extends BaseBean { */ private String remark; + /** + * 角色类型 1:人资专员和管理员;2:考勤员 + */ + private String roleType; + private String[] orgListId; + } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/service/HolidayServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/service/HolidayServiceImpl.java index 39dab19..915f024 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/service/HolidayServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/holiday/service/HolidayServiceImpl.java @@ -61,21 +61,6 @@ public class HolidayServiceImpl implements HolidayService { @Override public List getHolidayListCheck(HolidayBean 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); - } - } - } return holidayDao.getHolidayList(bean); } 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 b5a7a44..9203b84 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 @@ -247,16 +247,20 @@ AND att_current_day = #{attCurrentDay} - and ( toWorkAttStatus = #{attStatus} and offWorkAttStatus = #{attStatus} ) + and ( toWorkAttStatus = #{attStatus} OR offWorkAttStatus = #{attStatus} ) - + AND su.user_id not in ( + SELECT su.user_id FROM sys_user su + LEFT JOIN v_att_update_data a ON a.user_id = su.user_id + LEFT JOIN att_group_person_relation agpr ON agpr.user_id = su.user_id + LEFT JOIN sys_user_org org ON org.user_id = su.user_id + left join sys_organization so on so.id = org.org_id + WHERE su.is_active = 1 AND agpr.is_active = 1 AND att_current_day = #{attCurrentDay} - - - and ( toWorkAttStatus != #{attStatus} and offWorkAttStatus != #{attStatus} ) - + and ( toWorkAttStatus = #{attStatus} OR offWorkAttStatus = #{attStatus} ) + ) and ( toWorkAttStatus = #{attStatusToday} or offWorkAttStatus = #{attStatusToday} ) diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysNoticeMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysNoticeMapper.xml index fe794c2..3ebb90f 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysNoticeMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/basic/SysNoticeMapper.xml @@ -32,7 +32,7 @@ update sys_notice_user set is_read='1' where notice_id = #{noticeId} - and user_id = #{userId} + and is_active = 1 @@ -55,6 +55,7 @@ sys_notice_user snu LEFT JOIN sys_notice sn on sn.id=snu.notice_id and sn.is_active=1 LEFT JOIN sys_user su on su.user_id=sn.user_id and su.is_active=1 + LEFT JOIN sys_user_org suo on suo.user_id=sn.user_id and suo.is_active=1 LEFT JOIN sys_dict_data sdd on sdd.dict_code=sn.type and sdd.`status`=0 WHERE snu.is_active=1 @@ -64,13 +65,19 @@ and snu.is_read=#{bean.isRead} - - and sn.user_id in - - #{userId} - + + and suo.org_id in ( + + #{item} + + ) + + and sn.user_id != #{bean.userIdBr} + + GROUP BY snu.notice_id , + sn.user_id order by sn.create_time desc + + \ No newline at end of file diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/holiday/HolidayMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/holiday/HolidayMapper.xml index 003d90c..a8e5e98 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/holiday/HolidayMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/holiday/HolidayMapper.xml @@ -61,7 +61,7 @@ update leave_apply SET is_active = '0' WHERE id = #{id} - SELECT la.id, la.user_id, @@ -79,9 +79,9 @@ la.examine_status FROM leave_apply la - left join (select user_Id,GROUP_CONCAT( org_id ) AS org_id FROM sys_user_org where is_active = '1' group by user_id) suo on suo.user_id = la.user_id + LEFT JOIN sys_user_org suo on suo.user_id=la.user_id and suo.is_active=1 WHERE - is_active = '1' + la.is_active = '1' and locate(#{bean.leaveDate},la.create_time) @@ -103,9 +103,13 @@ and (la.user_id = #{bean.userId} or la.create_user_id = #{bean.userId} ) - + + and la.user_id != #{bean.userIds} + + + and suo.org_id in ( - + #{item} )