|
@@ -214,86 +214,56 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
map.put("cost", total);
|
|
map.put("cost", total);
|
|
map.put("state", state);
|
|
map.put("state", state);
|
|
}
|
|
}
|
|
- 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()));
|
|
|
|
- //查找当前部门经理负责的部门 或者作为其他负责人的部分
|
|
|
|
- List<Department> queryDeptList = null;
|
|
|
|
- if (deptId != null) {
|
|
|
|
- queryDeptList = allDepts.stream().filter(dp->dp.getDepartmentId().equals(deptId)).collect(Collectors.toList());
|
|
|
|
- } else {
|
|
|
|
- queryDeptList = allDepts.stream().filter(
|
|
|
|
- dp -> user.getId().equals(dp.getManagerId()) || (hasDeptWorktimePriv && dp.getDepartmentId().equals(user.getDepartmentId()))).collect(Collectors.toList());
|
|
|
|
- List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", user.getId()));
|
|
|
|
- List<Integer> otherCollect = departmentOtherManagerList.stream().distinct().map(dom -> dom.getDepartmentId()).collect(Collectors.toList());
|
|
|
|
- for (Integer integer : otherCollect) {
|
|
|
|
- Optional<Department> first = allDepts.stream().filter(ad -> ad.getDepartmentId().equals(integer)).findFirst();
|
|
|
|
- if(first.isPresent()){
|
|
|
|
- queryDeptList.add(first.get());
|
|
|
|
|
|
+ List<Integer> allVisibleDeptIdList = getAllVisibleDeptIdList(user, null);
|
|
|
|
+ //需要看可见部门(部门主要负责人和其他负责人以及查看本部门工时权限)所有人员的日报
|
|
|
|
+ if (allVisibleDeptIdList.size() > 0) {
|
|
|
|
+ nameList = reportMapper.getReportNameByDateAndDept(date,
|
|
|
|
+ allVisibleDeptIdList, targetUid, null);
|
|
|
|
+
|
|
|
|
+ if (nameList.size() > 0) {
|
|
|
|
+ List<String> userIds = new ArrayList<>();
|
|
|
|
+ nameList.forEach(n->{
|
|
|
|
+ String id = (String) n.get("id");
|
|
|
|
+ userIds.add(id);
|
|
|
|
+ });
|
|
|
|
+ List<Map<String, Object>> reportList = reportMapper.getUserReportByDate(date, userIds);
|
|
|
|
+ for (Map<String, Object> memb : nameList) {
|
|
|
|
+ //再根据人分别获取当天的报告
|
|
|
|
+ List<Map<String, Object>> rList = new ArrayList<Map<String, Object>>();
|
|
|
|
+ BigDecimal total = new BigDecimal(0);
|
|
|
|
+ for (Map<String, Object> report : reportList) {
|
|
|
|
+ if (((String)report.get("creatorId")).equals((String)memb.get("id"))) {
|
|
|
|
+ rList.add(report);
|
|
|
|
+ total = total.add((BigDecimal) report.get("cost"));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (queryDeptList.size() > 0) {
|
|
|
|
- //递归获取全部子部门
|
|
|
|
- List<Department> deptList = new ArrayList<>();
|
|
|
|
- for (Department dept : queryDeptList) {
|
|
|
|
- deptList.add(dept);
|
|
|
|
- deptList.addAll(getSubDepts(dept, allDepts));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- List ids = deptList.stream().map(Department::getDepartmentId).collect(Collectors.toList());
|
|
|
|
- nameList = reportMapper.getReportNameByDateAndDept(date,
|
|
|
|
- ids, targetUid, null);
|
|
|
|
-
|
|
|
|
- if (nameList.size() > 0) {
|
|
|
|
- List<String> userIds = new ArrayList<>();
|
|
|
|
- nameList.forEach(n->{
|
|
|
|
- String id = (String) n.get("id");
|
|
|
|
- userIds.add(id);
|
|
|
|
- });
|
|
|
|
- List<Map<String, Object>> reportList = reportMapper.getUserReportByDate(date, userIds);
|
|
|
|
- for (Map<String, Object> memb : nameList) {
|
|
|
|
- //再根据人分别获取当天的报告
|
|
|
|
- List<Map<String, Object>> rList = new ArrayList<Map<String, Object>>();
|
|
|
|
- BigDecimal total = new BigDecimal(0);
|
|
|
|
- for (Map<String, Object> report : reportList) {
|
|
|
|
- if (((String)report.get("creatorId")).equals((String)memb.get("id"))) {
|
|
|
|
- rList.add(report);
|
|
|
|
- total = total.add((BigDecimal) report.get("cost"));
|
|
|
|
|
|
+ memb.put("data", rList);
|
|
|
|
+ memb.put("cost", total);
|
|
|
|
+ double reportTime = 0;
|
|
|
|
+ if (rList.size() > 0) {
|
|
|
|
+ int state = 1;
|
|
|
|
+ for (Map<String, Object> m : rList) {
|
|
|
|
+ double t = (double) m.get("time");
|
|
|
|
+ reportTime += t;
|
|
|
|
+
|
|
|
|
+ //取最低的状态
|
|
|
|
+ if (state == 2) {
|
|
|
|
+ continue;
|
|
}
|
|
}
|
|
- }
|
|
|
|
- memb.put("data", rList);
|
|
|
|
- memb.put("cost", total);
|
|
|
|
- double reportTime = 0;
|
|
|
|
- if (rList.size() > 0) {
|
|
|
|
- int state = 1;
|
|
|
|
- for (Map<String, Object> m : rList) {
|
|
|
|
- double t = (double) m.get("time");
|
|
|
|
- reportTime += t;
|
|
|
|
-
|
|
|
|
- //取最低的状态
|
|
|
|
- if (state == 2) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- if (state == 0) {
|
|
|
|
- if ((int)m.get("state") == 2) {
|
|
|
|
- state = 2;
|
|
|
|
- } else {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
|
|
+ if (state == 0) {
|
|
|
|
+ if ((int)m.get("state") == 2) {
|
|
|
|
+ state = 2;
|
|
} else {
|
|
} else {
|
|
- state = (int)m.get("state");
|
|
|
|
|
|
+ continue;
|
|
}
|
|
}
|
|
|
|
+ } else {
|
|
|
|
+ state = (int)m.get("state");
|
|
}
|
|
}
|
|
- memb.put("state", state);
|
|
|
|
}
|
|
}
|
|
- DecimalFormat df = new DecimalFormat("0.00");
|
|
|
|
- memb.put("reportTime", df.format(reportTime));
|
|
|
|
|
|
+ memb.put("state", state);
|
|
}
|
|
}
|
|
|
|
+ DecimalFormat df = new DecimalFormat("0.00");
|
|
|
|
+ memb.put("reportTime", df.format(reportTime));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1671,8 +1641,43 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
return retList;
|
|
return retList;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //获取可见的所有的部门id List
|
|
|
|
+ public List<Integer> getAllVisibleDeptIdList(User curUser, List<Department> allDepartmentList) {
|
|
|
|
+ if (allDepartmentList == null) {
|
|
|
|
+ allDepartmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", curUser.getCompanyId()));
|
|
|
|
+ }
|
|
|
|
+ boolean hasDeptWorktimePriv = sysFunctionMapper.getRoleFunctions(curUser.getRoleId(), "查看本部门工时").size() > 0;
|
|
|
|
+ //负责的部门:先查担任主要负责人的部门
|
|
|
|
+ List<Department> allMDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", curUser.getId()));
|
|
|
|
+ //其他负责的部门
|
|
|
|
+ List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", curUser.getId()));
|
|
|
|
+ List<Integer> otherCollect = departmentOtherManagerList.stream().distinct().map(dom -> dom.getDepartmentId()).collect(Collectors.toList());
|
|
|
|
+ for (Integer integer : otherCollect) {
|
|
|
|
+ Optional<Department> first = allDepartmentList.stream().filter(ad -> ad.getDepartmentId().equals(integer)).findFirst();
|
|
|
|
+ if(first.isPresent()){
|
|
|
|
+ allMDeptList.add(first.get());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //如果有查看本部门工时的权限,加上自己所在的部门
|
|
|
|
+ if (hasDeptWorktimePriv && curUser.getDepartmentId() != null&& curUser.getDepartmentId()!=0) {
|
|
|
|
+ Department ownerDept = departmentMapper.selectById(curUser.getDepartmentId());
|
|
|
|
+ //要加上自己的部门,如果没有的话
|
|
|
|
+ if (!allMDeptList.stream().anyMatch(d->d.getDepartmentId().equals(ownerDept.getDepartmentId()))) {
|
|
|
|
+ allMDeptList.add(ownerDept);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ List<Department> subDepts = new ArrayList<>();
|
|
|
|
+ for (Department dp : allMDeptList) {
|
|
|
|
+ subDepts.addAll(getSubDepts(dp, allDepartmentList));
|
|
|
|
+ subDepts.add(dp);
|
|
|
|
+ }
|
|
|
|
+ List<Integer> collect = subDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList());
|
|
|
|
+ return collect;
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
- public HttpRespMsg getMembList(String date, Integer manageDeptId, HttpServletRequest request) {
|
|
|
|
|
|
+ public HttpRespMsg getMembList(String date, HttpServletRequest request) {
|
|
String token = request.getHeader("Token");
|
|
String token = request.getHeader("Token");
|
|
User curUser = userMapper.selectById(token);
|
|
User curUser = userMapper.selectById(token);
|
|
Integer companyId = curUser.getCompanyId();
|
|
Integer companyId = curUser.getCompanyId();
|
|
@@ -1683,7 +1688,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
List<Department> allDepartmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", curUser.getCompanyId()));
|
|
List<Department> allDepartmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", curUser.getCompanyId()));
|
|
List<DepartmentVO> list = (List<DepartmentVO>) departmentList.data;
|
|
List<DepartmentVO> list = (List<DepartmentVO>) departmentList.data;
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(curUser.getRoleId(), "查看全公司工时");
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(curUser.getRoleId(), "查看全公司工时");
|
|
- boolean hasDeptWorktimePriv = sysFunctionMapper.getRoleFunctions(curUser.getRoleId(), "查看本部门工时").size() > 0;
|
|
|
|
|
|
+
|
|
if (functionList.size() > 0) {
|
|
if (functionList.size() > 0) {
|
|
//查看全部的
|
|
//查看全部的
|
|
//加上未分配的部门
|
|
//加上未分配的部门
|
|
@@ -1691,9 +1696,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
unAssignedDept.setId(0);
|
|
unAssignedDept.setId(0);
|
|
unAssignedDept.setLabel("未分配");
|
|
unAssignedDept.setLabel("未分配");
|
|
list.add(unAssignedDept);
|
|
list.add(unAssignedDept);
|
|
- } else if (hasDeptWorktimePriv || (manageDeptId != null && manageDeptId > 0)) {
|
|
|
|
- //指定查看某个部门下的,一个人可能负责多个部门
|
|
|
|
|
|
+ } else {
|
|
|
|
+ //按权限查看
|
|
|
|
+ boolean hasDeptWorktimePriv = sysFunctionMapper.getRoleFunctions(curUser.getRoleId(), "查看本部门工时").size() > 0;
|
|
|
|
+ //负责的部门:先查担任主要负责人的部门
|
|
List<Department> allMDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", token));
|
|
List<Department> allMDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("manager_id", token));
|
|
|
|
+ //其他负责的部门
|
|
List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", curUser.getId()));
|
|
List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", curUser.getId()));
|
|
List<Integer> otherCollect = departmentOtherManagerList.stream().distinct().map(dom -> dom.getDepartmentId()).collect(Collectors.toList());
|
|
List<Integer> otherCollect = departmentOtherManagerList.stream().distinct().map(dom -> dom.getDepartmentId()).collect(Collectors.toList());
|
|
for (Integer integer : otherCollect) {
|
|
for (Integer integer : otherCollect) {
|
|
@@ -1702,26 +1710,21 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
allMDeptList.add(first.get());
|
|
allMDeptList.add(first.get());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ //如果有查看本部门工时的权限,加上自己所在的部门
|
|
if (hasDeptWorktimePriv && curUser.getDepartmentId() != null&& curUser.getDepartmentId()!=0) {
|
|
if (hasDeptWorktimePriv && curUser.getDepartmentId() != null&& curUser.getDepartmentId()!=0) {
|
|
Department ownerDept = departmentMapper.selectById(curUser.getDepartmentId());
|
|
Department ownerDept = departmentMapper.selectById(curUser.getDepartmentId());
|
|
//要加上自己的部门,如果没有的话
|
|
//要加上自己的部门,如果没有的话
|
|
if (!allMDeptList.stream().anyMatch(d->d.getDepartmentId().equals(ownerDept.getDepartmentId()))) {
|
|
if (!allMDeptList.stream().anyMatch(d->d.getDepartmentId().equals(ownerDept.getDepartmentId()))) {
|
|
allMDeptList.add(ownerDept);
|
|
allMDeptList.add(ownerDept);
|
|
}
|
|
}
|
|
- if (manageDeptId == null || manageDeptId == 0) {
|
|
|
|
- manageDeptId = curUser.getDepartmentId();
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- if (allMDeptList.size() == 1) {
|
|
|
|
- list = getSpecifiedDept(list, manageDeptId);
|
|
|
|
- } else {
|
|
|
|
- ArrayList realMDeptList = new ArrayList<>();
|
|
|
|
- for (Department d : allMDeptList) {
|
|
|
|
- realMDeptList.addAll(getSpecifiedDept(list, d.getDepartmentId()));
|
|
|
|
- }
|
|
|
|
- list = realMDeptList;
|
|
|
|
|
|
+ ArrayList realMDeptList = new ArrayList<>();
|
|
|
|
+ for (Department d : allMDeptList) {
|
|
|
|
+ realMDeptList.addAll(getSpecifiedDept(list, d.getDepartmentId()));
|
|
}
|
|
}
|
|
|
|
+ list = realMDeptList;
|
|
}
|
|
}
|
|
|
|
|
|
//获取公司全部人员; 按照人员状态,如果是已经离职的,当前日期在离职日期以后的,不需要显示该人员
|
|
//获取公司全部人员; 按照人员状态,如果是已经离职的,当前日期在离职日期以后的,不需要显示该人员
|
|
@@ -2471,20 +2474,22 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
//分角色权限:管理员看全部的,部门负责人看自己部门的,个人只能看自己的。
|
|
//分角色权限:管理员看全部的,部门负责人看自己部门的,个人只能看自己的。
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全公司工时");
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全公司工时");
|
|
if (functionList.size() == 0) {
|
|
if (functionList.size() == 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", companyId));
|
|
|
|
- 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));
|
|
|
|
- subDepts.add(dp);
|
|
|
|
- }
|
|
|
|
- List<Integer> collect = subDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList());
|
|
|
|
- list = reportMapper.getUserDailyWorkTime(companyId, startDate, endDate, collect, null);
|
|
|
|
|
|
+ List<Department> allDeptList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
|
|
|
|
+
|
|
|
|
+ //检查是不是部门负责人(含主要负责人和其他负责人)
|
|
|
|
+ List<Integer> allDeptIds = getAllVisibleDeptIdList(user, allDeptList);
|
|
|
|
+ if (allDeptIds.size() > 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()) || (hasDeptWorktimePriv && d.getDepartmentId().equals(user.getDepartmentId()))).collect(Collectors.toList());
|
|
|
|
+// List<Department> subDepts = new ArrayList<>();
|
|
|
|
+// for (Department dp : myDeptList) {
|
|
|
|
+// subDepts.addAll(getSubDepts(dp, allDepts));
|
|
|
|
+// subDepts.add(dp);
|
|
|
|
+// }
|
|
|
|
+// List<Integer> collect = subDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList());
|
|
|
|
+ list = reportMapper.getUserDailyWorkTime(companyId, startDate, endDate, allDeptIds, null);
|
|
//部门负责人看自己部门相关的
|
|
//部门负责人看自己部门相关的
|
|
- allRangeUserList = userMapper.selectList(new QueryWrapper<User>().in("department_id", collect).orderByDesc("department_id"));
|
|
|
|
|
|
+ allRangeUserList = userMapper.selectList(new QueryWrapper<User>().in("department_id", allDeptIds).orderByDesc("department_id"));
|
|
} else {
|
|
} else {
|
|
//看自己的所负责的项目相关人员的
|
|
//看自己的所负责的项目相关人员的
|
|
list = reportMapper.getUserDailyWorkTime(companyId, startDate, endDate, null, user.getId());
|
|
list = reportMapper.getUserDailyWorkTime(companyId, startDate, endDate, null, user.getId());
|
|
@@ -3102,23 +3107,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
int rowNum = 1;
|
|
int rowNum = 1;
|
|
List<HashMap<String, Object>> allReportByDate = null;
|
|
List<HashMap<String, Object>> allReportByDate = null;
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全公司工时");
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全公司工时");
|
|
- boolean hasDeptWorktimePriv = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看本部门工时").size() > 0;
|
|
|
|
-
|
|
|
|
if (functionList.size() == 0) {
|
|
if (functionList.size() == 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())|| (hasDeptWorktimePriv && dept.getDepartmentId().equals(user.getDepartmentId()))).collect(Collectors.toList());
|
|
|
|
- List<Department> allSubDepts = new ArrayList<>();
|
|
|
|
- allSubDepts.addAll(deptList);
|
|
|
|
- for (Department dept: deptList) {
|
|
|
|
- allSubDepts.addAll(getSubDepts(dept, allDeptList));
|
|
|
|
- }
|
|
|
|
- List<Integer> collect = allSubDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList());
|
|
|
|
- List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("other_manager_id", user.getId()));
|
|
|
|
- List<Integer> otherCollect = departmentOtherManagerList.stream().distinct().map(dom -> dom.getDepartmentId()).collect(Collectors.toList());
|
|
|
|
- collect.addAll(otherCollect);
|
|
|
|
- allReportByDate = reportMapper.getDeptMembReportByDate(startDate, null, collect, endDate, projectId,stateKey,departmentId);
|
|
|
|
|
|
+ List<Integer> allVisibleDeptIdList = getAllVisibleDeptIdList(user, null);
|
|
|
|
+ if (allVisibleDeptIdList.size() > 0) {
|
|
|
|
+ allReportByDate = reportMapper.getDeptMembReportByDate(startDate, null, allVisibleDeptIdList, endDate, projectId,stateKey,departmentId);
|
|
}
|
|
}
|
|
|
|
|
|
List<HashMap<String, Object>> reportsFromProjects = null;
|
|
List<HashMap<String, Object>> reportsFromProjects = null;
|
|
@@ -3491,19 +3484,20 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全公司工时");
|
|
List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全公司工时");
|
|
boolean hasDeptWorktimePriv = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看本部门工时").size() > 0;
|
|
boolean hasDeptWorktimePriv = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看本部门工时").size() > 0;
|
|
if (functionList.size() == 0) {
|
|
if (functionList.size() == 0) {
|
|
|
|
+ List<Integer> allVisibleDeptIdList = getAllVisibleDeptIdList(user, null);
|
|
//检查是不是部门负责人
|
|
//检查是不是部门负责人
|
|
- 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())|| (hasDeptWorktimePriv && d.getDepartmentId().equals(user.getDepartmentId()))).collect(Collectors.toList());
|
|
|
|
- List<Department> subDepts = new ArrayList<>();
|
|
|
|
- for (Department dp : myDeptList) {
|
|
|
|
- subDepts.addAll(getSubDepts(dp, allDepts));
|
|
|
|
- subDepts.add(dp);
|
|
|
|
- }
|
|
|
|
- List<Integer> collect = subDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList());
|
|
|
|
- list = reportMapper.getUserDailyWorkTime(companyId, startDate, endDate, collect, null);
|
|
|
|
|
|
+ if (allVisibleDeptIdList.size() > 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())|| (hasDeptWorktimePriv && d.getDepartmentId().equals(user.getDepartmentId()))).collect(Collectors.toList());
|
|
|
|
+// List<Department> subDepts = new ArrayList<>();
|
|
|
|
+// for (Department dp : myDeptList) {
|
|
|
|
+// subDepts.addAll(getSubDepts(dp, allDepts));
|
|
|
|
+// subDepts.add(dp);
|
|
|
|
+// }
|
|
|
|
+// List<Integer> collect = subDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList());
|
|
|
|
+ list = reportMapper.getUserDailyWorkTime(companyId, startDate, endDate, allVisibleDeptIdList, null);
|
|
//部门负责人看自己部门相关的
|
|
//部门负责人看自己部门相关的
|
|
- allRangeUserList = userMapper.selectList(new QueryWrapper<User>().in("department_id", collect).eq("report_status",0));
|
|
|
|
|
|
+ allRangeUserList = userMapper.selectList(new QueryWrapper<User>().in("department_id", allVisibleDeptIdList).eq("report_status",0));
|
|
} else {
|
|
} else {
|
|
//看自己的所负责的项目相关人员的
|
|
//看自己的所负责的项目相关人员的
|
|
list = reportMapper.getUserDailyWorkTime(companyId, startDate, endDate, null, user.getId());
|
|
list = reportMapper.getUserDailyWorkTime(companyId, startDate, endDate, null, user.getId());
|
|
@@ -3861,6 +3855,26 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
return new HttpRespMsg();
|
|
return new HttpRespMsg();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public HttpRespMsg getWeeklyCardTime(String dateStr, HttpServletRequest request) {
|
|
|
|
+ String userId = request.getHeader("TOKEN");
|
|
|
|
+ User user = userMapper.selectById(userId);
|
|
|
|
+ int companyId = user.getCompanyId();
|
|
|
|
+ TimeType timeType = timeTypeMapper.selectById(companyId);
|
|
|
|
+ HttpRespMsg msg = new HttpRespMsg();
|
|
|
|
+ List<String> dateList = JSONArray.parseArray(dateStr, String.class);
|
|
|
|
+ if (timeType.getShowDdCardtime() == 1) {
|
|
|
|
+ List<UserDingdingTime> dingdingTimes = userDingdingTimeMapper.selectList(new QueryWrapper<UserDingdingTime>()
|
|
|
|
+ .eq("user_id", userId).in("work_date", dateList));
|
|
|
|
+ msg.data = dingdingTimes;
|
|
|
|
+ } else if (timeType.getShowCorpwxCardtime() == 1) {
|
|
|
|
+ List<UserCorpwxTime> corpwxTimes = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>()
|
|
|
|
+ .eq("corpwx_userid", user.getCorpwxUserid()).in("create_date", dateList));
|
|
|
|
+ msg.data = corpwxTimes;
|
|
|
|
+ }
|
|
|
|
+ return msg;
|
|
|
|
+ }
|
|
|
|
+
|
|
private void selfUpdateToNextWorkFlow(Integer companyId, User auditTargetUser, List<Integer> targetRids, List<Department> allDepts) {
|
|
private void selfUpdateToNextWorkFlow(Integer companyId, User auditTargetUser, List<Integer> targetRids, List<Department> allDepts) {
|
|
List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
|
|
List<AuditWorkflowTimeSetting> settings = auditWorkflowTimeSettingMapper.selectList(
|
|
new QueryWrapper<AuditWorkflowTimeSetting>().eq("company_id", companyId)
|
|
new QueryWrapper<AuditWorkflowTimeSetting>().eq("company_id", companyId)
|