|
@@ -207,9 +207,9 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
map.put("cost", total);
|
|
|
map.put("state", state);
|
|
|
}
|
|
|
-
|
|
|
- //部门经理需要看本部门的所有人员的日报
|
|
|
- if (user.getManageDeptId() != null && user.getManageDeptId() > 0) {
|
|
|
+ boolean hasDeptWorktimePriv = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看本部门工时").size() > 0;
|
|
|
+ //需要看本部门的所有人员的日报
|
|
|
+ if (hasDeptWorktimePriv || (user.getManageDeptId() != null && user.getManageDeptId() > 0)) {
|
|
|
//找到该部门的所有子部门
|
|
|
List<Department> allDepts = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
|
|
|
//查找当前部门经理负责的部门
|
|
@@ -218,7 +218,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
queryDeptList = allDepts.stream().filter(dp->dp.getDepartmentId().equals(deptId)).collect(Collectors.toList());
|
|
|
} else {
|
|
|
queryDeptList = allDepts.stream().filter(
|
|
|
- dp -> user.getId().equals(dp.getManagerId())).collect(Collectors.toList());
|
|
|
+ dp -> user.getId().equals(dp.getManagerId()) || (hasDeptWorktimePriv && dp.getDepartmentId().equals(user.getDepartmentId()))).collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
if (queryDeptList.size() > 0) {
|
|
@@ -1480,6 +1480,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
HttpRespMsg departmentList = departmentService.getDepartmentList(request);
|
|
|
List<DepartmentVO> list = (List<DepartmentVO>) departmentList.data;
|
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(curUser.getRoleId(), "查看全公司工时");
|
|
|
+ boolean hasDeptWorktimePriv = sysFunctionMapper.getRoleFunctions(curUser.getRoleId(), "查看本部门工时").size() > 0;
|
|
|
if (functionList.size() > 0) {
|
|
|
//查看全部的
|
|
|
//加上未分配的部门
|
|
@@ -1487,9 +1488,16 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
unAssignedDept.setId(0);
|
|
|
unAssignedDept.setLabel("未分配");
|
|
|
list.add(unAssignedDept);
|
|
|
- } else if (manageDeptId != null && manageDeptId > 0) {
|
|
|
+ } else if (hasDeptWorktimePriv || (manageDeptId != null && manageDeptId > 0)) {
|
|
|
//指定查看某个部门下的,一个人可能负责多个部门
|
|
|
List<Department> allMDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", token));
|
|
|
+ if (hasDeptWorktimePriv && curUser.getDepartmentId() != null) {
|
|
|
+ Department ownerDept = departmentMapper.selectById(curUser.getDepartmentId());
|
|
|
+ //要加上自己的部门,如果没有的话
|
|
|
+ if (!allMDeptList.stream().anyMatch(d->d.getDepartmentId().equals(ownerDept.getDepartmentId()))) {
|
|
|
+ allMDeptList.add(ownerDept);
|
|
|
+ }
|
|
|
+ }
|
|
|
if (allMDeptList.size() == 1) {
|
|
|
list = getSpecifiedDept(list, manageDeptId);
|
|
|
} else {
|
|
@@ -1515,6 +1523,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
|
|
|
if (first.isPresent()) {
|
|
|
user.put("state", first.get().get("state"));
|
|
|
+ user.put("workingTime", first.get().get("workingTime"));
|
|
|
}
|
|
|
userMapList.add(user);
|
|
|
}
|
|
@@ -2086,10 +2095,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
//分角色权限:管理员看全部的,部门负责人看自己部门的,个人只能看自己的。
|
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全公司工时");
|
|
|
if (functionList.size() == 0) {
|
|
|
+ boolean hasDeptWorktimePriv = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看本部门工时").size() > 0;
|
|
|
//检查是不是部门负责人
|
|
|
- if (user.getManageDeptId() != null && user.getManageDeptId() != 0) {
|
|
|
+ if (hasDeptWorktimePriv || (user.getManageDeptId() != null && user.getManageDeptId() != 0)) {
|
|
|
List<Department> allDepts = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
|
|
|
- List<Department> myDeptList = allDepts.stream().filter(d->user.getId().equals(d.getManagerId())).collect(Collectors.toList());
|
|
|
+ List<Department> myDeptList = allDepts.stream().filter(d->user.getId().equals(d.getManagerId()) || (hasDeptWorktimePriv && d.getDepartmentId().equals(user.getDepartmentId()))).collect(Collectors.toList());
|
|
|
List<Department> subDepts = new ArrayList<>();
|
|
|
for (Department dp : myDeptList) {
|
|
|
subDepts.addAll(getSubDepts(dp, allDepts));
|
|
@@ -2700,11 +2710,13 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
int rowNum = 1;
|
|
|
List<HashMap<String, Object>> allReportByDate = null;
|
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全公司工时");
|
|
|
+ boolean hasDeptWorktimePriv = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看本部门工时").size() > 0;
|
|
|
+
|
|
|
if (functionList.size() == 0) {
|
|
|
//检查是否是部门负责人
|
|
|
- if (user.getManageDeptId() > 0) {
|
|
|
+ if (hasDeptWorktimePriv || (user.getManageDeptId() != null && user.getManageDeptId() > 0)) {
|
|
|
List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
|
|
|
- List<Department> deptList = allDeptList.stream().filter(dept->user.getId().equals(dept.getManagerId())).collect(Collectors.toList());
|
|
|
+ List<Department> deptList = allDeptList.stream().filter(dept->user.getId().equals(dept.getManagerId())|| (hasDeptWorktimePriv && dept.getDepartmentId().equals(user.getDepartmentId()))).collect(Collectors.toList());
|
|
|
List<Department> allSubDepts = new ArrayList<>();
|
|
|
allSubDepts.addAll(deptList);
|
|
|
for (Department dept: deptList) {
|
|
@@ -3062,11 +3074,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
List<Map<String, Object>> list = null;
|
|
|
//分角色权限:管理员看全部的,部门负责人看自己部门的,个人只能看自己的。
|
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全公司工时");
|
|
|
+ boolean hasDeptWorktimePriv = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看本部门工时").size() > 0;
|
|
|
if (functionList.size() == 0) {
|
|
|
//检查是不是部门负责人
|
|
|
- if (user.getManageDeptId() != null && user.getManageDeptId() != 0) {
|
|
|
+ if (hasDeptWorktimePriv || (user.getManageDeptId() != null && user.getManageDeptId() != 0)) {
|
|
|
List<Department> allDepts = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
|
|
|
- List<Department> myDeptList = allDepts.stream().filter(d->user.getId().equals(d.getManagerId())).collect(Collectors.toList());
|
|
|
+ List<Department> myDeptList = allDepts.stream().filter(d->user.getId().equals(d.getManagerId())|| (hasDeptWorktimePriv && d.getDepartmentId().equals(user.getDepartmentId()))).collect(Collectors.toList());
|
|
|
List<Department> subDepts = new ArrayList<>();
|
|
|
for (Department dp : myDeptList) {
|
|
|
subDepts.addAll(getSubDepts(dp, allDepts));
|