diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/controller/ProDeptRoleController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/controller/ProDeptRoleController.java index f24b7da..1eadd96 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/controller/ProDeptRoleController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/controller/ProDeptRoleController.java @@ -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 roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if( roleId !=null && !roleId.isEmpty()){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); + ids.addAll(idList); +// ids.add(String.valueOf(mapVo.getId())); + } + bean.setOrgList(ids); + } + } + } List 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 roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if( roleId !=null && !roleId.isEmpty()){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); + ids.addAll(idList); +// ids.add(String.valueOf(mapVo.getId())); + } + bean.setOrgList(ids); + } + } + } + List 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 roleId = sysUser.getRoleList(); + if(roleId !=null && !roleId.isEmpty() ){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); + ids.addAll(idList); + } + bean.setOrgList(ids); + } + } + } List roleUserList = proDeptRoleService.getRoleUserNoManagerList(bean); return endPage(roleUserList); }catch (Exception e){ diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/ProDeptRoleServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/ProDeptRoleServiceImpl.java index 613855e..d59eba0 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/ProDeptRoleServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/dept/service/ProDeptRoleServiceImpl.java @@ -40,44 +40,25 @@ public class ProDeptRoleServiceImpl implements ProDeptRoleService { @Override public List getRoleUserList(ProDeptRoleBean bean) { - //只能查自己分公司的人 - SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); - List roleId = sysUser.getRoleList(); - if(roleId !=null && !roleId.isEmpty() ){ - if (Collections.frequency(roleId, "1")==0) { - List orgList = sysUser.getOrgList(); - if (!orgList.isEmpty()) { - ArrayList ids = new ArrayList<>(); - for (MapVo mapVo : orgList) { - ids.add(String.valueOf(mapVo.getId())); - } - bean.setOrgList(ids); - } - } - } +// //只能查自己分公司的人 +// SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); +// List roleId = sysUser.getRoleList(); +// if(roleId !=null && !roleId.isEmpty() ){ +// if (Collections.frequency(roleId, "1")==0) { +// List orgList = sysUser.getOrgList(); +// if (!orgList.isEmpty()) { +// ArrayList ids = new ArrayList<>(); +// for (MapVo mapVo : orgList) { +// ids.add(String.valueOf(mapVo.getId())); +// } +// bean.setOrgList(ids); +// } +// } +// } return proDeptRoleDao.getRoleUserList(bean); } public List getRoleUserNoManagerList(ProDeptRoleBean bean) { - //只能查自己分公司的人 - SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); - List roleId = sysUser.getRoleList(); - if(roleId !=null && !roleId.isEmpty() ){ - if (Collections.frequency(roleId, "1") == 0) { - List orgList = sysUser.getOrgList(); - if (!orgList.isEmpty()) { - ArrayList ids = new ArrayList<>(); - for (MapVo mapVo : orgList) { -// String id = proDeptRoleDao.getOrgChildById(orgId); -// // 使用 Arrays.asList() 将数组转换为 ArrayList -// ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); -// ids.addAll(idList); - ids.add(String.valueOf(mapVo.getId())); - } - bean.setOrgList(ids); - } - } - } return proDeptRoleDao.getRoleUserNoManagerList(bean); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/download/ExportFileController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/download/ExportFileController.java index 08d4b8c..fccb59c 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/download/ExportFileController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/download/ExportFileController.java @@ -182,10 +182,29 @@ public class ExportFileController { public void exportHoliday(HttpServletResponse response, HolidayBean bean) { try { List 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 roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if( roleId !=null && !roleId.isEmpty()){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); + ids.addAll(idList); +// ids.add(String.valueOf(mapVo.getId())); + } + bean.setOrgList(ids); + } + } } List 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 personExportVoList = new ArrayList<>(); + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + List roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if( roleId !=null && !roleId.isEmpty()){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList idList = new ArrayList<>(Arrays.asList(id.split(","))); + ids.addAll(idList); +// ids.add(String.valueOf(mapVo.getId())); + } + bean.setOrgList(ids); + } + } + } List personLists = leaveReportingService.getLeaveReportingList(bean); for (int i = 0; i < personLists.size(); i++) { LeaveReportingBean vo = personLists.get(i); 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 7e2a555..45b3725 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 @@ -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 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 roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if( roleId !=null && !roleId.isEmpty()){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList 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 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 roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if( roleId !=null && !roleId.isEmpty()){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList 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 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/leaveReporting/controller/LeaveReportingController.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/leaveReporting/controller/LeaveReportingController.java index d503e51..894fd90 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/leaveReporting/controller/LeaveReportingController.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/leaveReporting/controller/LeaveReportingController.java @@ -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 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 roleId = sysUser.getRoleList(); + //管理员与人资角色可以看到所有 + if( roleId !=null && !roleId.isEmpty()){ + if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) { + List orgList = sysUser.getOrgList(); + if (!orgList.isEmpty()) { + ArrayList ids = new ArrayList<>(); + for (MapVo mapVo : orgList) { + String id = proDeptRoleDao.getOrgChildById(mapVo.getId()); + // 使用 Arrays.asList() 将数组转换为 ArrayList + ArrayList 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){ diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/leaveReporting/service/LeaveReportingServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/leaveReporting/service/LeaveReportingServiceImpl.java index 31dce8d..0e79a27 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/leaveReporting/service/LeaveReportingServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/leaveReporting/service/LeaveReportingServiceImpl.java @@ -55,15 +55,6 @@ public class LeaveReportingServiceImpl implements LeaveReportingService { @Override public List getLeaveReportingList(LeaveReportingBean bean) { - //只能查自己部门的人 -// 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 leaveReportingDao.getLeaveReportingList(bean); } diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/LeaveReporting/LeaveReportingMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/LeaveReporting/LeaveReportingMapper.xml index 5714d13..1fe4b47 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/LeaveReporting/LeaveReportingMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/LeaveReporting/LeaveReportingMapper.xml @@ -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' @@ -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') ) + + + and suo.org_id in ( + + #{item} + + ) + + GROUP BY l.id, l.user_id, 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 9caa499..6aedfd5 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 @@ -128,6 +128,14 @@ ) + + + and suo.org_id in ( + + #{item} + + ) + ORDER BY la.update_time DESC