Commit 02c9d567 authored by nie'hong's avatar nie'hong

完善工时统计

parent b9902faf
......@@ -286,11 +286,12 @@ public class StatisticsServiceImpl implements StatisticsService {
List<Integer> list = UserRoleLevelUtils.getlevelIds(role);
// 获取角色对应的权限
List<WorkLevel> workLevels = UserRoleLevelUtils.getlevelByIds(list);
List<Integer> rank = getUserRank(workLevels);
// 用户该权限的级别
List<Integer> rank = this.getUserRank(workLevels,LevelEnum.EXAMINE.getLevelName());
// 获取所有的类型
List<WorkType> workTypes = workTypeMapper.getAll();
// 存储所有查询的类型
// 存储查询的类型
List<Integer> types = new ArrayList<>();
// 只存储项目和商机之外的类型
for (WorkType workType : workTypes) {
......@@ -317,8 +318,7 @@ public class StatisticsServiceImpl implements StatisticsService {
workTimeAndCostCollects.addAll(workTimeAndCostCollect);
}
// 如果用户的审批权限的级别最高为部门级别
if (rank.contains(LevelRankEnum.DEPARTMENT_LEVEL.getRank()) && !rank.contains(LevelRankEnum.CENTRAL_LEVEL.getRank())) {
else if (rank.contains(LevelRankEnum.DEPARTMENT_LEVEL.getRank()) ) { // 如果用户的审批权限的级别最高为部门级别
// 获取部门下的所有项目和商机的工时统计
Map<String, Object> map = new HashMap<>();
map.put("deptId", user.getDeptId());
......@@ -330,11 +330,8 @@ public class StatisticsServiceImpl implements StatisticsService {
// 获取这些类型的所有工单
List<WorkTimeAndCostCollect> workTimeAndCostCollect = workTimeOrderMapper.getWorkTimeAndCostCollect(map);
workTimeAndCostCollects.addAll(workTimeAndCostCollect);
}
// 如果用户的审批权限的级别最高为项目/商机级别,与其他两种级别不同的是只汇总项目和商机类型的工单
if (rank.contains(LevelRankEnum.PROJECT_LEVEL.getRank()) && !rank.contains(LevelRankEnum.DEPARTMENT_LEVEL.getRank())) {
else if (rank.contains(LevelRankEnum.PROJECT_LEVEL.getRank())) { // 如果用户的审批权限的级别最高为项目/商机级别,与其他两种级别不同的是只汇总项目和商机类型的工单
// 获取部门下的所有项目和商机的工时统计
Map<String, Object> map = new HashMap<>();
// 获取用户负责项目和商机id
......@@ -342,7 +339,6 @@ public class StatisticsServiceImpl implements StatisticsService {
map.put("projectIds", projectIdByManager);
map.put("firstDayOfMonth", startTime);
workTimeAndCostCollects = workProjectTimeCostMapper.selectList(map);
}
// 获取查询结果中的类型
......@@ -350,6 +346,10 @@ public class StatisticsServiceImpl implements StatisticsService {
// 如果查询结果不包含查询条件中的类型,造对象传前端
for (WorkType workType : workTypes) {
if (!typeList.contains(workType.getId())) {
// 权限级别为项目级别的用户只返回项目和商机类型的汇总
if (rank.contains(LevelRankEnum.PROJECT_LEVEL.getRank()) && rank.size() == 1 && types.contains(workType.getId())) {
continue;
}
WorkTimeAndCostCollect workTimeAndCostCollect1 = new WorkTimeAndCostCollect();
workTimeAndCostCollect1.setType(workType.getId());
workTimeAndCostCollect1.setTypeName(workType.getName());
......@@ -357,7 +357,6 @@ public class StatisticsServiceImpl implements StatisticsService {
}
}
// 给类型赋值类型名称
for (WorkTimeAndCostCollect timeAndCostCollect : workTimeAndCostCollects) {
for (WorkType workType : workTypes) {
......@@ -520,7 +519,7 @@ public class StatisticsServiceImpl implements StatisticsService {
// 获取用户权限的级别
List<Integer> list = UserRoleLevelUtils.getlevelIds(role);
List<WorkLevel> workLevels = UserRoleLevelUtils.getlevelByIds(list);
List<Integer> rank = this.getUserRank(workLevels);
List<Integer> rank = this.getUserRank(workLevels,LevelEnum.USER_STATISTICS.getLevelName());
// 不是中心级不能选择部门
if (!rank.contains(LevelRankEnum.CENTRAL_LEVEL.getRank()) && deptId != null) {
throw new BaseCustomException(BASE_RESP_CODE_ENUM.NO_AUTHORITY);
......@@ -791,10 +790,10 @@ public class StatisticsServiceImpl implements StatisticsService {
}
// 获取用户当前权限对应的级别
public List<Integer> getUserRank(List<WorkLevel> workLevels){
public List<Integer> getUserRank(List<WorkLevel> workLevels, String levelName){
List<Integer> rank = new ArrayList<>();
for (WorkLevel workLevel : workLevels) {
if (workLevel.getName().equals(LevelEnum.EXAMINE.getLevelName())) {
if (workLevel.getName().equals(levelName)) {
rank.add(workLevel.getRank());
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment