Commit e352c138 authored by nie'hong's avatar nie'hong

完善工时统计

parent dbe461df
......@@ -209,7 +209,7 @@
<include refid="table"/>
<where>
<include refid="criteria"/>
<if test="startDay != null">
<if test="startModifyTime != null">
AND modify_time>=#{startModifyTime}
</if>
<if test="startWorkTime != null">
......
......@@ -176,15 +176,17 @@ public class StatisticsServiceImpl implements StatisticsService {
statusArray.add(WorkOrderStatus.RE_SUBMIT.getCode());
//本月未审批数量查询
map.put("statusArray", statusArray);
// 查询用户负责的项目和商机id
List<Integer> projectIdList = workProjectMapper.getProjectIdByManager(userId);
// 项目和商机的未审批的数
Integer notCompletedCount1 = 0;
if (CollectionUtil.isNotEmpty(projectIdList)) {
map.put("projectIdList", projectIdList);
// 项目和商机的未审批的数
notCompletedCount1 = workTimeOrderMapper.getCountByCondition(map);
}
// 用户在该权限对应的级别
List<Integer> rank = this.getUserRank(workLevels, LevelEnum.EXAMINE.getLevelName());
// 查询用户负责审批的除项目合商机的其余类型
......@@ -580,16 +582,34 @@ public class StatisticsServiceImpl implements StatisticsService {
// 部门级别以上的用户可以查询所管理项目的成员所填的其他类型的工单
List<Integer> userIds = workUserProjectMapper.selectUserIdByProjectIds(projectIds);
if (rank.contains(LevelRankEnum.DEPARTMENT_LEVEL.getRank()) || rank.contains(LevelRankEnum.CENTRAL_LEVEL.getRank())) {
// 获取其他类型统计信息
List<UserWorkTimeStatisticsByProject> userWorkTimeStatisticsByProjectList = workTimeOrderMapper.selectListByType(startDate, endDate, queryType, userIds, false);
if (CollectionUtil.isNotEmpty(userWorkTimeStatisticsByProjectList)) {
userProjectWorkTimeStatistics.get(0).getProjectWorkTimeAndType().addAll(userWorkTimeStatisticsByProjectList.get(0).getProjectWorkTimeAndType());
// 获取查询结果的类型
UserWorkTimeStatisticsByProject userWorkTimeStatisticsByProject1 = userWorkTimeStatisticsByProjectList.get(0);
List<ProjectWorkTimeAndType> projectWorkTimeAndType1 = userWorkTimeStatisticsByProject1.getProjectWorkTimeAndType();
List<Integer> collect = projectWorkTimeAndType1.stream().map(ProjectWorkTimeAndType::getProjectType).collect(Collectors.toList());
// 缺少类型,造对象传前端
for (int i = 4; i < types.size(); i++) {
if (!collect.contains(types.get(i).getId())) {
ProjectWorkTimeAndType projectWorkTimeAndType = new ProjectWorkTimeAndType();
projectWorkTimeAndType.setWorkTime(0);
projectWorkTimeAndType.setProjectType(types.get(i).getId());
projectWorkTimeAndType.setProjectName(types.get(i).getName());
userWorkTimeStatisticsByProjectList.get(0).getProjectWorkTimeAndType().add(projectWorkTimeAndType);
}
}
// 将项目和商机统计信息和除开项目、商机、请假、调休类型的其他类型统计信息合并
userProjectWorkTimeStatistics.get(0).getProjectWorkTimeAndType().addAll(userWorkTimeStatisticsByProjectList.get(0).getProjectWorkTimeAndType());
// 查询各个项目下所有人的其他除了项目、商机、请假、调休类型的加班工时和平常工时
List<UserWorkTimeStatisticsByProject> userWorkTimeStatisticsByProjects = workTimeOrderMapper.selectListByType(startDate, endDate, queryType, userIds, true);
for (UserWorkTimeStatisticsByProject userWorkTimeStatisticsByProject : userWorkTimeStatisticsByProjects) {
for (UserWorkTimeStatisticsByProject workTimeStatisticsByProject : userProjectWorkTimeStatistics1) {
if (userWorkTimeStatisticsByProject.getUserId() != null && userWorkTimeStatisticsByProject.getUserId().equals(workTimeStatisticsByProject.getUserId())) {
workTimeStatisticsByProject.getProjectWorkTimeAndType().addAll(userWorkTimeStatisticsByProject.getProjectWorkTimeAndType());
if (CollectionUtil.isNotEmpty(userWorkTimeStatisticsByProjectList)) {
List<UserWorkTimeStatisticsByProject> userWorkTimeStatisticsByProjects = workTimeOrderMapper.selectListByType(startDate, endDate, queryType, userIds, true);
for (UserWorkTimeStatisticsByProject userWorkTimeStatisticsByProject : userWorkTimeStatisticsByProjects) {
for (UserWorkTimeStatisticsByProject workTimeStatisticsByProject : userProjectWorkTimeStatistics1) {
if (userWorkTimeStatisticsByProject.getUserId() != null && userWorkTimeStatisticsByProject.getUserId().equals(workTimeStatisticsByProject.getUserId())) {
workTimeStatisticsByProject.getProjectWorkTimeAndType().addAll(userWorkTimeStatisticsByProject.getProjectWorkTimeAndType());
}
}
}
}
......
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