模块数据隔离,bug修改

Signed-off-by: lSun <15893999301@qq.com>
This commit is contained in:
lSun 2025-01-15 15:08:37 +08:00
parent 2d9fe0e148
commit 4b1b2e65d2
8 changed files with 203 additions and 108 deletions

View File

@ -7,6 +7,10 @@ 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.MapVo;
import com.bonus.system.api.domain.SysUser;
import com.bonus.system.dept.dao.ProDeptRoleDao;
import com.bonus.system.dept.entity.EightRoleBean;
import com.bonus.system.dept.entity.ProDeptRoleBean;
import com.bonus.system.dept.entity.ProDeptRoleDo;
@ -16,6 +20,8 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
@ -31,6 +37,9 @@ public class ProDeptRoleController extends BaseController {
@Resource(name = "ProDeptRoleService")
private ProDeptRoleService proDeptRoleService;
@Resource(name = "ProDeptRoleDao")
private ProDeptRoleDao proDeptRoleDao;
/**
* 获取项目部角色列表(表格)
*/
@ -39,6 +48,25 @@ public class ProDeptRoleController extends BaseController {
@Log(title = "项目部管理->项目部角色管理->列表查询", businessType = BusinessType.QUERY)
public TableDataInfo list(ProDeptRoleBean bean) {
try{
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
List<String> roleId = sysUser.getRoleList();
//管理员与人资角色可以看到所有
if( roleId !=null && !roleId.isEmpty()){
if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) {
List<MapVo> orgList = sysUser.getOrgList();
if (!orgList.isEmpty()) {
ArrayList<String> ids = new ArrayList<>();
for (MapVo mapVo : orgList) {
String id = proDeptRoleDao.getOrgChildById(mapVo.getId());
// 使用 Arrays.asList() 将数组转换为 ArrayList
ArrayList<String> idList = new ArrayList<>(Arrays.asList(id.split(",")));
ids.addAll(idList);
// ids.add(String.valueOf(mapVo.getId()));
}
bean.setOrgList(ids);
}
}
}
List<ProDeptRoleBean> roleUserList = proDeptRoleService.getRoleUserList(bean);
return endPage(roleUserList);
}catch (Exception e){
@ -91,6 +119,27 @@ public class ProDeptRoleController extends BaseController {
public TableDataInfo getRoleCheckList(ProDeptRoleBean bean) {
try{
bean.setReviewerStatus("0");
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
List<String> roleId = sysUser.getRoleList();
//管理员与人资角色可以看到所有
if( roleId !=null && !roleId.isEmpty()){
if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) {
List<MapVo> orgList = sysUser.getOrgList();
if (!orgList.isEmpty()) {
ArrayList<String> ids = new ArrayList<>();
for (MapVo mapVo : orgList) {
String id = proDeptRoleDao.getOrgChildById(mapVo.getId());
// 使用 Arrays.asList() 将数组转换为 ArrayList
ArrayList<String> idList = new ArrayList<>(Arrays.asList(id.split(",")));
ids.addAll(idList);
// ids.add(String.valueOf(mapVo.getId()));
}
bean.setOrgList(ids);
}
}
}
List<ProDeptRoleBean> roleUserList = proDeptRoleService.getRoleUserList(bean);
for(ProDeptRoleBean roleUser : roleUserList){
if (StringHelper.isEmpty(roleUser.getUserName())){
@ -142,6 +191,24 @@ public class ProDeptRoleController extends BaseController {
@Log(title = "项目部管理->项目部角色管理->列表查询", businessType = BusinessType.QUERY)
public TableDataInfo getRoleUserNoManagerList(ProDeptRoleBean bean) {
try{
//只能查自己分公司的人
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
List<String> roleId = sysUser.getRoleList();
if(roleId !=null && !roleId.isEmpty() ){
if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) {
List<MapVo> orgList = sysUser.getOrgList();
if (!orgList.isEmpty()) {
ArrayList<String> ids = new ArrayList<>();
for (MapVo mapVo : orgList) {
String id = proDeptRoleDao.getOrgChildById(mapVo.getId());
// 使用 Arrays.asList() 将数组转换为 ArrayList
ArrayList<String> idList = new ArrayList<>(Arrays.asList(id.split(",")));
ids.addAll(idList);
}
bean.setOrgList(ids);
}
}
}
List<ProDeptRoleBean> roleUserList = proDeptRoleService.getRoleUserNoManagerList(bean);
return endPage(roleUserList);
}catch (Exception e){

View File

@ -40,44 +40,25 @@ public class ProDeptRoleServiceImpl implements ProDeptRoleService {
@Override
public List<ProDeptRoleBean> getRoleUserList(ProDeptRoleBean 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 = sysUser.getOrgList();
if (!orgList.isEmpty()) {
ArrayList<String> ids = new ArrayList<>();
for (MapVo mapVo : orgList) {
ids.add(String.valueOf(mapVo.getId()));
}
bean.setOrgList(ids);
}
}
}
// //只能查自己分公司的人
// SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
// List<String> roleId = sysUser.getRoleList();
// if(roleId !=null && !roleId.isEmpty() ){
// if (Collections.frequency(roleId, "1")==0) {
// List<MapVo> orgList = sysUser.getOrgList();
// if (!orgList.isEmpty()) {
// ArrayList<String> ids = new ArrayList<>();
// for (MapVo mapVo : orgList) {
// ids.add(String.valueOf(mapVo.getId()));
// }
// bean.setOrgList(ids);
// }
// }
// }
return proDeptRoleDao.getRoleUserList(bean);
}
public List<ProDeptRoleBean> getRoleUserNoManagerList(ProDeptRoleBean 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 = sysUser.getOrgList();
if (!orgList.isEmpty()) {
ArrayList<String> ids = new ArrayList<>();
for (MapVo mapVo : orgList) {
// String id = proDeptRoleDao.getOrgChildById(orgId);
// // 使用 Arrays.asList() 将数组转换为 ArrayList
// ArrayList<String> idList = new ArrayList<>(Arrays.asList(id.split(",")));
// ids.addAll(idList);
ids.add(String.valueOf(mapVo.getId()));
}
bean.setOrgList(ids);
}
}
}
return proDeptRoleDao.getRoleUserNoManagerList(bean);
}

View File

@ -182,10 +182,29 @@ public class ExportFileController {
public void exportHoliday(HttpServletResponse response, HolidayBean bean) {
try {
List<HolidayBean> personExportVoList = new ArrayList<>();
if ("审批".equals(bean.getExportType())) {
} else {
//只能查询自己的
bean.setUserId(SecurityUtils.getLoginUser().getSysUser().getUserId());
// if ("审批".equals(bean.getExportType())) {
// } else {
// //只能查询自己的
// bean.setUserId(SecurityUtils.getLoginUser().getSysUser().getUserId());
// }
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
List<String> roleId = sysUser.getRoleList();
//管理员与人资角色可以看到所有
if( roleId !=null && !roleId.isEmpty()){
if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) {
List<MapVo> orgList = sysUser.getOrgList();
if (!orgList.isEmpty()) {
ArrayList<String> ids = new ArrayList<>();
for (MapVo mapVo : orgList) {
String id = proDeptRoleDao.getOrgChildById(mapVo.getId());
// 使用 Arrays.asList() 将数组转换为 ArrayList
ArrayList<String> idList = new ArrayList<>(Arrays.asList(id.split(",")));
ids.addAll(idList);
// ids.add(String.valueOf(mapVo.getId()));
}
bean.setOrgList(ids);
}
}
}
List<HolidayBean> personLists = holidayService.getHolidayList(bean);
for (int i = 0; i < personLists.size(); i++) {
@ -808,6 +827,25 @@ public class ExportFileController {
public void exportLeaveReporting(HttpServletResponse response, LeaveReportingBean bean) {
try {
List<LeaveReportingBean> personExportVoList = new ArrayList<>();
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
List<String> roleId = sysUser.getRoleList();
//管理员与人资角色可以看到所有
if( roleId !=null && !roleId.isEmpty()){
if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) {
List<MapVo> orgList = sysUser.getOrgList();
if (!orgList.isEmpty()) {
ArrayList<String> ids = new ArrayList<>();
for (MapVo mapVo : orgList) {
String id = proDeptRoleDao.getOrgChildById(mapVo.getId());
// 使用 Arrays.asList() 将数组转换为 ArrayList
ArrayList<String> idList = new ArrayList<>(Arrays.asList(id.split(",")));
ids.addAll(idList);
// ids.add(String.valueOf(mapVo.getId()));
}
bean.setOrgList(ids);
}
}
}
List<LeaveReportingBean> personLists = leaveReportingService.getLeaveReportingList(bean);
for (int i = 0; i < personLists.size(); i++) {
LeaveReportingBean vo = personLists.get(i);

View File

@ -11,6 +11,7 @@ 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.dao.ProDeptRoleDao;
import com.bonus.system.dept.entity.EightRoleBean;
import com.bonus.system.dept.entity.ProDeptRoleBean;
import com.bonus.system.dept.entity.ProDeptRoleDo;
@ -24,6 +25,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@ -46,6 +48,9 @@ public class HolidayController extends BaseController {
@Resource
private SysUserMapper userMapper;
@Resource(name = "ProDeptRoleDao")
private ProDeptRoleDao proDeptRoleDao;
/**
* 获取假期列表(表格)
*/
@ -54,23 +59,25 @@ public class HolidayController extends BaseController {
@Log(title = "流程管理->假期管理->列表查询", businessType = BusinessType.QUERY)
public TableDataInfo list(HolidayBean bean) {
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;
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
List<String> roleId = sysUser.getRoleList();
//管理员与人资角色可以看到所有
if( roleId !=null && !roleId.isEmpty()){
if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) {
List<MapVo> orgList = sysUser.getOrgList();
if (!orgList.isEmpty()) {
ArrayList<String> ids = new ArrayList<>();
for (MapVo mapVo : orgList) {
String id = proDeptRoleDao.getOrgChildById(mapVo.getId());
// 使用 Arrays.asList() 将数组转换为 ArrayList
ArrayList<String> idList = new ArrayList<>(Arrays.asList(id.split(",")));
ids.addAll(idList);
// ids.add(String.valueOf(mapVo.getId()));
}
bean.setOrgList(ids);
}
}
}
if(roleCount==1){
}else{
bean.setUserId(userId);
}
startPage();
return getDataTable(holidayService.getHolidayList(bean));
}catch (Exception e){
@ -149,42 +156,25 @@ public class HolidayController extends BaseController {
@Log(title = "流程管理->假期管理->列表查询", businessType = BusinessType.QUERY)
public TableDataInfo checkList(HolidayBean bean) {
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;
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
List<String> roleId = sysUser.getRoleList();
//管理员与人资角色可以看到所有
if( roleId !=null && !roleId.isEmpty()){
if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) {
List<MapVo> orgList = sysUser.getOrgList();
if (!orgList.isEmpty()) {
ArrayList<String> ids = new ArrayList<>();
for (MapVo mapVo : orgList) {
String id = proDeptRoleDao.getOrgChildById(mapVo.getId());
// 使用 Arrays.asList() 将数组转换为 ArrayList
ArrayList<String> idList = new ArrayList<>(Arrays.asList(id.split(",")));
ids.addAll(idList);
// ids.add(String.valueOf(mapVo.getId()));
}
bean.setOrgList(ids);
}
}
}
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);
return endPage(holidayList);
}catch (Exception e){

View File

@ -7,7 +7,10 @@ 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.dept.dao.ProDeptRoleDao;
import com.bonus.system.holiday.dao.WorkReportDao;
import com.bonus.system.holiday.entity.HolidayBean;
import com.bonus.system.leaveReporting.entity.LeaveReportingBean;
@ -17,6 +20,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
@ -35,6 +40,9 @@ public class LeaveReportingController extends BaseController {
@Resource(name = "WorkReportDao")
private WorkReportDao dao;
@Resource(name = "ProDeptRoleDao")
private ProDeptRoleDao proDeptRoleDao;
/**
* 获取休假报备列表(表格)
*/
@ -43,23 +51,25 @@ public class LeaveReportingController extends BaseController {
@Log(title = "流程管理->休假报备->列表查询", businessType = BusinessType.QUERY)
public TableDataInfo list(LeaveReportingBean bean) {
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;
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
List<String> roleId = sysUser.getRoleList();
//管理员与人资角色可以看到所有
if( roleId !=null && !roleId.isEmpty()){
if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) {
List<MapVo> orgList = sysUser.getOrgList();
if (!orgList.isEmpty()) {
ArrayList<String> ids = new ArrayList<>();
for (MapVo mapVo : orgList) {
String id = proDeptRoleDao.getOrgChildById(mapVo.getId());
// 使用 Arrays.asList() 将数组转换为 ArrayList
ArrayList<String> idList = new ArrayList<>(Arrays.asList(id.split(",")));
ids.addAll(idList);
// ids.add(String.valueOf(mapVo.getId()));
}
bean.setOrgList(ids);
}
}
}
if(roleCount==1){
}else{
bean.setUserId(userId);
}
startPage();
return getDataTable(leaveReportingService.getLeaveReportingList(bean));
}catch (Exception e){

View File

@ -55,15 +55,6 @@ public class LeaveReportingServiceImpl implements LeaveReportingService {
@Override
public List<LeaveReportingBean> getLeaveReportingList(LeaveReportingBean bean) {
//只能查自己部门的人
// 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 leaveReportingDao.getLeaveReportingList(bean);
}

View File

@ -101,6 +101,7 @@
leave_apply l
LEFT JOIN sys_user_post p ON p.user_id = l.user_id
LEFT JOIN sys_dict_data d on d.dict_code = p.post_id
LEFT JOIN sys_user_org suo on suo.user_id=l.user_id and suo.is_active=1
WHERE
l.is_active = '1' AND l.type = '请假' AND l.source = '1'
<if test='params.userId != null '>
@ -112,6 +113,15 @@
date_format(l.leave_end_date,'%y%m%d') between date_format(#{params.params.beginTime},'%y%m%d') and date_format(#{params.params.endTime},'%y%m%d')
)
</if>
<if test='params.orgList != null and params.orgList.size() > 0'>
and suo.org_id in (
<foreach collection="params.orgList" item="item" separator=",">
#{item}
</foreach>
)
</if>
GROUP BY
l.id,
l.user_id,

View File

@ -128,6 +128,14 @@
</foreach>
)
</if>
<if test='bean.orgList != null and bean.orgList.size() > 0'>
and suo.org_id in (
<foreach collection="bean.orgList" item="item" separator=",">
#{item}
</foreach>
)
</if>
ORDER BY la.update_time DESC
</select>