消息提醒,数据隔离

Signed-off-by: lSun <15893999301@qq.com>
This commit is contained in:
lSun 2024-12-25 21:50:55 +08:00
parent 756af47a82
commit 5463501e0d
11 changed files with 130 additions and 38 deletions

View File

@ -76,8 +76,8 @@ public class WechatTasks {
/** /**
* 人员基础数据同步定时器 * 人员基础数据同步定时器
*/ */
// @Scheduled(cron = "0 0/10 * * * ?") @Scheduled(cron = "0 0/10 * * * ?")
@Scheduled(initialDelay = 6000,fixedDelay = 60000 * 10) // @Scheduled(initialDelay = 6000,fixedDelay = 60000 * 10)
@Async @Async
public void pushPersonTask() { public void pushPersonTask() {
log.info("--------人员基础数据同步定时器开启------"); log.info("--------人员基础数据同步定时器开启------");

View File

@ -52,6 +52,15 @@ public class SysNoticeController extends BaseController {
if(sysRole.getRoleName().contains("管理员")){ if(sysRole.getRoleName().contains("管理员")){
roleCount = 1; roleCount = 1;
break; 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("部门负责人")){ }else if(sysRole.getRoleName().contains("部门负责人")){
roleCount = 2; roleCount = 2;
break; break;
@ -60,17 +69,21 @@ public class SysNoticeController extends BaseController {
} }
if(roleCount==2){ if(roleCount==2){
String ids = userMapper.getOrg(userId); String ids = userMapper.getOrg(userId);
String userIdList = userMapper.getUserIdList(ids);
bean.setRoleType("2"); bean.setRoleType("2");
String[] split = userIdList.split(","); String[] split = ids.split(",");
bean.setUserIdList(split); bean.setOrgListId(split);
//查询是否存在多个部门负责人
List<SysRole> managerList = userMapper.getManagerList(userId);
if( managerList !=null && managerList.size()>0){
bean.setUserIdBr(userId);
}
}else if(roleCount==1){ }else if(roleCount==1){
bean.setRoleType("1"); bean.setRoleType("1");
} else{ } else{
bean.setRoleType("3"); bean.setRoleType("3");
bean.setUserId(userId); bean.setUserId(userId);
} }
List<SysNotice> list = noticeService.selectNoticeList(bean); List<SysNotice> list = noticeService.selectNoticeList(bean);
return endPage(list); return endPage(list);
}catch (Exception e){ }catch (Exception e){

View File

@ -232,4 +232,6 @@ public interface SysUserMapper
String getOrg(Long userId); String getOrg(Long userId);
String getUserIdList(String userIdList); String getUserIdList(String userIdList);
List<SysRole> getManagerList(Long userId);
} }

View File

@ -74,4 +74,11 @@ public class SysNotice
private String roleType; private String roleType;
private String[] userIdList; private String[] userIdList;
private String[] orgListId;
/**
* 用户编号用来判断是否是本人
*/
private Long userIdBr;
} }

View File

@ -7,10 +7,15 @@ import com.bonus.common.log.annotation.Log;
import com.bonus.common.log.enums.BusinessType; import com.bonus.common.log.enums.BusinessType;
import com.bonus.common.security.annotation.RequiresPermissions; import com.bonus.common.security.annotation.RequiresPermissions;
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.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.EightRoleBean;
import com.bonus.system.dept.entity.ProDeptRoleBean; import com.bonus.system.dept.entity.ProDeptRoleBean;
import com.bonus.system.dept.entity.ProDeptRoleDo; import com.bonus.system.dept.entity.ProDeptRoleDo;
import com.bonus.system.dept.entity.SubOrgBean; 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.entity.HolidayBean;
import com.bonus.system.holiday.service.HolidayService; import com.bonus.system.holiday.service.HolidayService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -19,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
/** /**
@ -34,6 +40,12 @@ public class HolidayController extends BaseController {
@Resource(name = "HolidayService") @Resource(name = "HolidayService")
private HolidayService 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) @Log(title = "流程管理->假期管理->列表查询", businessType = BusinessType.QUERY)
public TableDataInfo checkList(HolidayBean bean) { public TableDataInfo checkList(HolidayBean bean) {
try{ try{
//根据登录账号获取角色
//不是管理员只能查自己
Long userId = SecurityUtils.getUserId();
List<SysRole> 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<SysRole> managerList = userMapper.getManagerList(userId);
if( managerList !=null && managerList.size()>0){
bean.setUserIds(userId);
}
}
List<HolidayBean> holidayList = holidayService.getHolidayListCheck(bean); List<HolidayBean> holidayList = holidayService.getHolidayListCheck(bean);
return endPage(holidayList); return endPage(holidayList);
}catch (Exception e){ }catch (Exception e){

View File

@ -36,6 +36,11 @@ public class HolidayBean extends BaseBean {
* 请假人用户编号 * 请假人用户编号
*/ */
private Long userId; private Long userId;
/**
* 用户编号用来判断是否是本人
*/
private Long userIds;
/** /**
* 请假人姓名 * 请假人姓名
*/ */
@ -141,4 +146,10 @@ public class HolidayBean extends BaseBean {
*/ */
private String remark; private String remark;
/**
* 角色类型 1:人资专员和管理员;2:考勤员
*/
private String roleType;
private String[] orgListId;
} }

View File

@ -61,21 +61,6 @@ public class HolidayServiceImpl implements HolidayService {
@Override @Override
public List<HolidayBean> getHolidayListCheck(HolidayBean bean) { public List<HolidayBean> getHolidayListCheck(HolidayBean bean) {
//只能查自己部门的人
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);
}
}
}
return holidayDao.getHolidayList(bean); return holidayDao.getHolidayList(bean);
} }

View File

@ -247,16 +247,20 @@
AND att_current_day = #{attCurrentDay} AND att_current_day = #{attCurrentDay}
</if> </if>
<if test='attStatus == "1"'> <if test='attStatus == "1"'>
and ( toWorkAttStatus = #{attStatus} and offWorkAttStatus = #{attStatus} ) and ( toWorkAttStatus = #{attStatus} OR offWorkAttStatus = #{attStatus} )
</if> </if>
</if> </if>
<if test="attendType == 2 || attendType == '2'"> <if test="attendType == 2 || attendType == '2'">
<if test="attCurrentDay != null and attCurrentDay != ''"> 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 att_current_day = #{attCurrentDay}
</if> and ( toWorkAttStatus = #{attStatus} OR offWorkAttStatus = #{attStatus} )
<if test='attStatus == "1"'> )
and ( toWorkAttStatus != #{attStatus} and offWorkAttStatus != #{attStatus} )
</if>
</if> </if>
<if test="attStatusToday != null and attStatusToday != ''"> <if test="attStatusToday != null and attStatusToday != ''">
and ( toWorkAttStatus = #{attStatusToday} or offWorkAttStatus = #{attStatusToday} ) and ( toWorkAttStatus = #{attStatusToday} or offWorkAttStatus = #{attStatusToday} )

View File

@ -32,7 +32,7 @@
update sys_notice_user update sys_notice_user
set is_read='1' set is_read='1'
where notice_id = #{noticeId} where notice_id = #{noticeId}
and user_id = #{userId}
and is_active = 1 and is_active = 1
</update> </update>
@ -55,6 +55,7 @@
sys_notice_user snu sys_notice_user snu
LEFT JOIN sys_notice sn on sn.id=snu.notice_id and sn.is_active=1 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 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 LEFT JOIN sys_dict_data sdd on sdd.dict_code=sn.type and sdd.`status`=0
WHERE snu.is_active=1 WHERE snu.is_active=1
<if test="bean.roleType =='3' || bean.roleType == 3 "> <if test="bean.roleType =='3' || bean.roleType == 3 ">
@ -64,13 +65,19 @@
and snu.is_read=#{bean.isRead} and snu.is_read=#{bean.isRead}
</if> </if>
<if test="bean.roleType =='2' || bean.roleType == 2 "> <if test="bean.roleType =='2' || bean.roleType == 2 ">
<if test="bean.userIdList != null and bean.userIdList.length > 0"> <if test="bean.OrgListId != null and bean.OrgListId.length > 0">
and sn.user_id in and suo.org_id in (
<foreach item="userId" collection="bean.userIdList" open="(" separator="," close=")"> <foreach collection="bean.OrgListId" item="item" separator=",">
#{userId} #{item}
</foreach> </foreach>
)
</if> </if>
</if> </if>
<if test="bean.userIdBr != null and bean.userIdBr != '' ">
and sn.user_id != #{bean.userIdBr}
</if>
GROUP BY snu.notice_id ,
sn.user_id
order by sn.create_time desc order by sn.create_time desc
</select> </select>
<select id="getDictData" resultType="java.lang.Long"> <select id="getDictData" resultType="java.lang.Long">

View File

@ -321,4 +321,15 @@
WHERE su.is_active = 1 WHERE su.is_active = 1
AND suo.org_id in (#{userIdList}) AND suo.org_id in (#{userIdList})
</select> </select>
<select id="getManagerList" resultType="com.bonus.system.api.domain.SysRole">
SELECT *
FROM sys_organization_head
WHERE is_active = '1'
AND org_id in (
SELECT org_id FROM sys_organization_head
WHERE is_active = '1'
AND user_id = #{userId}
)
</select>
</mapper> </mapper>

View File

@ -61,7 +61,7 @@
update leave_apply SET is_active = '0' WHERE id = #{id} update leave_apply SET is_active = '0' WHERE id = #{id}
</delete> </delete>
<select id="getHolidayList" resultType="com.bonus.system.holiday.entity.HolidayBean"> <select id="getHolidayList" resultType="com.bonus.system.holiday.entity.HolidayBean" parameterType="com.bonus.system.holiday.entity.HolidayBean">
SELECT SELECT
la.id, la.id,
la.user_id, la.user_id,
@ -79,9 +79,9 @@
la.examine_status la.examine_status
FROM FROM
leave_apply la 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 WHERE
is_active = '1' la.is_active = '1'
<if test="bean.leaveDate != null and bean.leaveDate != '' "> <if test="bean.leaveDate != null and bean.leaveDate != '' ">
and locate(#{bean.leaveDate},la.create_time) and locate(#{bean.leaveDate},la.create_time)
</if> </if>
@ -103,9 +103,13 @@
<if test="bean.userId != null and bean.userId != '' "> <if test="bean.userId != null and bean.userId != '' ">
and (la.user_id = #{bean.userId} or la.create_user_id = #{bean.userId} ) and (la.user_id = #{bean.userId} or la.create_user_id = #{bean.userId} )
</if> </if>
<if test='bean.orgList != null and bean.orgList.size() > 0'> <if test="bean.userIds != null and bean.userIds != '' ">
and la.user_id != #{bean.userIds}
</if>
<if test="bean.roleType =='2' || bean.roleType == 2 ">
and suo.org_id in ( and suo.org_id in (
<foreach collection="bean.orgList" item="item" separator=","> <foreach collection="bean.OrgListId" item="item" separator=",">
#{item} #{item}
</foreach> </foreach>
) )