From b2e3d6532dbbb3929e01a598dcef7eb07f39b826 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 11 七月 2025 09:30:27 +0800 Subject: [PATCH] 保洁巡检本周代码 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java | 72 +++++++++++++++++++++++++++--------- 1 files changed, 54 insertions(+), 18 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java index babec9d..f6d0d24 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java @@ -24,6 +24,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.models.auth.In; import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -205,12 +206,13 @@ break; } } - LocalDateTime localDateTime = tTemplate.getCreateTime().plusDays(temp); + LocalDateTime localDateTime = tTemplate.getCreateTime().plusDays(temp-1); stringBuilder.append(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); record.setTemplateDate(stringBuilder.toString()); } } - if (record.getNum2() != 0) { + + if (record.getNum1() != 0) { record.setNum4(new BigDecimal((double) record.getNum2() / (double) record.getNum1() * 100).setScale(2, RoundingMode.HALF_DOWN)); } else { record.setNum4(new BigDecimal(0)); @@ -383,6 +385,9 @@ } List<ProjectDeptDetailsVO> res = new ArrayList<>(); List<TTask> tasks = taskCleanerService.list(tTaskLambdaQueryWrapper); + if(CollectionUtils.isEmpty(tasks)){ + return R.ok(res); + } List<TTaskDetail> taskDetails = taskDetailService.lambdaQuery().orderByDesc(BaseModel::getCreateTime).list(); List<String> collect = tasks.stream().map(TTask::getProjectId).distinct().collect(Collectors.toList()); List<TProjectDept> projectDepts = projectDeptService.list(); @@ -424,7 +429,10 @@ for (LocationTypeListByProjectVO locationTypeListByProjectVO : locationTypeListByProjectVOS) { LocationTypeListByProjectVO temp = new LocationTypeListByProjectVO(); BeanUtils.copyProperties(locationTypeListByProjectVO, temp); - List<String> locationIds = locations.stream().filter(e -> e.getLocationType().equals(locationTypeListByProjectVO.getId())).map(TLocation::getId).collect(Collectors.toList()); + List<String> locationIds = locations.stream().filter(e -> + e.getProjectId().equals(projectDeptDetailsChildVO.getProjectId())&& + e.getLocationType().equals(locationTypeListByProjectVO.getId())) + .map(TLocation::getId).collect(Collectors.toList()); if (locationIds.isEmpty()) { locationTypeListByProjectVO.setLocationNum(0); } else { @@ -702,8 +710,8 @@ List<SysUser> sysUsers = sysUserService.selectAllList(); LambdaQueryWrapper<TLeave> tLeaveLambdaQueryWrapper = new LambdaQueryWrapper<>(); if (StringUtils.hasLength(query.getStartTime())){ - tLeaveLambdaQueryWrapper.ge(TLeave::getCreateTime, query.getStartTime()); - tLeaveLambdaQueryWrapper.le(TLeave::getCreateTime, query.getEndTime()); + tLeaveLambdaQueryWrapper.ge(TLeave::getCreateTime, query.getStartTime()+" :00:00:00"); + tLeaveLambdaQueryWrapper.le(TLeave::getCreateTime, query.getEndTime()+" :23:59:59"); } tLeaveLambdaQueryWrapper.eq(TLeave::getAuditStatus,2); List<TLeave> leaves = leaveService.list(tLeaveLambdaQueryWrapper); @@ -743,15 +751,15 @@ List<PatrolInspectorVO> res = new ArrayList<>(); LambdaQueryWrapper<TTask> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); if (StringUtils.hasLength(query.getStartTime())){ - tTaskLambdaQueryWrapper.ge(TTask::getCreateTime, query.getStartTime()); - tTaskLambdaQueryWrapper.le(TTask::getCreateTime, query.getEndTime()); + tTaskLambdaQueryWrapper.ge(TTask::getCreateTime, query.getStartTime()+" :00:00:00"); + tTaskLambdaQueryWrapper.le(TTask::getCreateTime, query.getEndTime()+" :23:59:59"); } if(query.getPatrolInspectorIds()!=null){ tTaskLambdaQueryWrapper.in(TTask::getPatrolInspector, query.getPatrolInspectorIds()); sysUsers = sysUsers.stream().filter(sysUser -> query.getPatrolInspectorIds().contains(sysUser.getUserId())).collect(Collectors.toList()); } List<TTask> tasks = taskCleanerService.list(tTaskLambdaQueryWrapper); - + sysUsers = sysUsers.stream().filter(e -> e.getUserId() != 1).collect(Collectors.toList()); for (SysUser sysUser : sysUsers) { PatrolInspectorVO patrolInspectorVO = new PatrolInspectorVO(); @@ -774,10 +782,22 @@ } // 查询巡检员任务ids List<String> taskIds = tasks.stream().filter(e->e.getPatrolInspector().equals(sysUser.getUserId()+"")).map(TTask::getId).collect(Collectors.toList()); + if (taskIds.isEmpty()){ + taskIds.add("-1"); + } + // 完成的任务 + List<String> taskIdsFinish = tasks.stream().filter(e-> + (e.getStatus()==5 || e.getStatus()==6) + && + e.getPatrolInspector().equals(sysUser.getUserId()+"")).map(TTask::getId).collect(Collectors.toList()); + + if (taskIdsFinish.isEmpty()){ + taskIdsFinish.add("-1"); + } List<TTaskDetail> list = taskDetailService.lambdaQuery() .eq(TTaskDetail::getAuditStatus, 1) .isNotNull(TTaskDetail::getClearStatus).orderByDesc(BaseModel::getCreateTime) - .in(!taskIds.isEmpty(), TTaskDetail::getTaskId,taskIds).groupBy(TTaskDetail::getTaskId).list(); + .in(!taskIds.isEmpty(), TTaskDetail::getTaskId,taskIdsFinish).groupBy(TTaskDetail::getTaskId).list(); // 查询clearStatus为1的数量 List<TTaskDetail> clearStatus1 = list.stream().filter(e -> e.getClearStatus().equals(1)).collect(Collectors.toList()); List<TTaskDetail> clearStatus2 = list.stream().filter(e -> e.getClearStatus().equals(2)).collect(Collectors.toList()); @@ -785,7 +805,7 @@ patrolInspectorVO.setTotal(taskList.size()); patrolInspectorVO.setNum1(clearStatus1.size()); patrolInspectorVO.setNum2(clearStatus2.size()); - patrolInspectorVO.setNum3(clearStatus1.size()+clearStatus2.size()!=0? + patrolInspectorVO.setNum3(!clearStatus1.isEmpty() ? (new BigDecimal(clearStatus1.size()).add(new BigDecimal(clearStatus2.size()))) .divide(new BigDecimal(clearStatus1.size()), 2, RoundingMode.HALF_DOWN) .multiply(new BigDecimal(100)):BigDecimal.ZERO); @@ -801,11 +821,11 @@ patrolInspectorVO.setNum6(status3.size()); patrolInspectorVO.setNum7(status4.size()); patrolInspectorVO.setNum8(status5.size()); - patrolInspectorVO.setNum9(!status5.isEmpty()?new BigDecimal(status5.size()) + patrolInspectorVO.setNum9(!status5.isEmpty()||!status4.isEmpty()?new BigDecimal(status5.size()) .divide(new BigDecimal(status4.size()).add(new BigDecimal(status5.size())),2,RoundingMode.HALF_DOWN) .multiply(new BigDecimal(100)):BigDecimal.ZERO); patrolInspectorVO.setNum10(status6.size()); - patrolInspectorVO.setNum11(!status6.isEmpty()?new BigDecimal(status6.size()).divide(new BigDecimal(taskList.size()),2,RoundingMode.HALF_DOWN):BigDecimal.ZERO); + patrolInspectorVO.setNum11(!taskList.isEmpty()?new BigDecimal(status6.size()).divide(new BigDecimal(taskList.size()),2,RoundingMode.HALF_DOWN):BigDecimal.ZERO); List<TLeave> collect1 = leaves.stream().filter(e -> e.getLeavePerson().equals(sysUser.getUserId()+"")).collect(Collectors.toList()); patrolInspectorVO.setNum12(collect1.size()); res.add(patrolInspectorVO); @@ -868,6 +888,7 @@ sysUsers = sysUsers.stream().filter(sysUser -> query.getPatrolInspectorIds().contains(sysUser.getUserId())).collect(Collectors.toList()); } List<TTask> tasks = taskCleanerService.list(tTaskLambdaQueryWrapper); + sysUsers = sysUsers.stream().filter(e -> e.getUserId() != 1).collect(Collectors.toList()); for (SysUser sysUser : sysUsers) { @@ -891,10 +912,22 @@ } // 查询巡检员任务ids List<String> taskIds = tasks.stream().filter(e->e.getPatrolInspector().equals(sysUser.getUserId()+"")).map(TTask::getId).collect(Collectors.toList()); + if (taskIds.isEmpty()){ + taskIds.add("-1"); + } + // 完成的任务 + List<String> taskIdsFinish = tasks.stream().filter(e-> + (e.getStatus()==5 || e.getStatus()==6) + && + e.getPatrolInspector().equals(sysUser.getUserId()+"")).map(TTask::getId).collect(Collectors.toList()); + + if (taskIdsFinish.isEmpty()){ + taskIdsFinish.add("-1"); + } List<TTaskDetail> list = taskDetailService.lambdaQuery() .eq(TTaskDetail::getAuditStatus, 1) .isNotNull(TTaskDetail::getClearStatus).orderByDesc(BaseModel::getCreateTime) - .in(!taskIds.isEmpty(), TTaskDetail::getTaskId,taskIds).groupBy(TTaskDetail::getTaskId).list(); + .in(!taskIds.isEmpty(), TTaskDetail::getTaskId,taskIdsFinish).groupBy(TTaskDetail::getTaskId).list(); // 查询clearStatus为1的数量 List<TTaskDetail> clearStatus1 = list.stream().filter(e -> e.getClearStatus().equals(1)).collect(Collectors.toList()); List<TTaskDetail> clearStatus2 = list.stream().filter(e -> e.getClearStatus().equals(2)).collect(Collectors.toList()); @@ -902,7 +935,7 @@ patrolInspectorVO.setTotal(taskList.size()); patrolInspectorVO.setNum1(clearStatus1.size()); patrolInspectorVO.setNum2(clearStatus2.size()); - patrolInspectorVO.setNum3(clearStatus1.size()+clearStatus2.size()!=0? + patrolInspectorVO.setNum3(!clearStatus1.isEmpty() ? (new BigDecimal(clearStatus1.size()).add(new BigDecimal(clearStatus2.size()))) .divide(new BigDecimal(clearStatus1.size()), 2, RoundingMode.HALF_DOWN) .multiply(new BigDecimal(100)):BigDecimal.ZERO); @@ -918,11 +951,11 @@ patrolInspectorVO.setNum6(status3.size()); patrolInspectorVO.setNum7(status4.size()); patrolInspectorVO.setNum8(status5.size()); - patrolInspectorVO.setNum9(!status5.isEmpty()?new BigDecimal(status5.size()) + patrolInspectorVO.setNum9(!status5.isEmpty()||!status4.isEmpty()?new BigDecimal(status5.size()) .divide(new BigDecimal(status4.size()).add(new BigDecimal(status5.size())),2,RoundingMode.HALF_DOWN) .multiply(new BigDecimal(100)):BigDecimal.ZERO); patrolInspectorVO.setNum10(status6.size()); - patrolInspectorVO.setNum11(!status6.isEmpty()?new BigDecimal(status6.size()).divide(new BigDecimal(taskList.size()),2,RoundingMode.HALF_DOWN):BigDecimal.ZERO); + patrolInspectorVO.setNum11(!taskList.isEmpty()?new BigDecimal(status6.size()).divide(new BigDecimal(taskList.size()),2,RoundingMode.HALF_DOWN):BigDecimal.ZERO); List<TLeave> collect1 = leaves.stream().filter(e -> e.getLeavePerson().equals(sysUser.getUserId()+"")).collect(Collectors.toList()); patrolInspectorVO.setNum12(collect1.size()); res.add(patrolInspectorVO); @@ -999,6 +1032,7 @@ } List<InspectorVO> res = new ArrayList<>(); List<TInspector> inspectors = inspectorService.list(tTaskLambdaQueryWrapper); + sysUsers = sysUsers.stream().filter(e -> e.getUserId() != 1).collect(Collectors.toList()); for (SysUser sysUser : sysUsers) { InspectorVO inspectorVO = new InspectorVO(); inspectorVO.setNickName(sysUser.getNickName()); @@ -1026,11 +1060,11 @@ inspectorVO.setNum1(status1.size()); inspectorVO.setNum2(status2.size()); - inspectorVO.setNum3(!status1.isEmpty()?new BigDecimal(status1.size()).divide(new BigDecimal(status2.size()+status1.size()),2,RoundingMode.HALF_DOWN).multiply(new BigDecimal(100)):BigDecimal.ZERO); + inspectorVO.setNum3(!status1.isEmpty()||!status2.isEmpty()?new BigDecimal(status1.size()).divide(new BigDecimal(status2.size()+status1.size()),2,RoundingMode.HALF_DOWN).multiply(new BigDecimal(100)):BigDecimal.ZERO); inspectorVO.setNum4(status4.size()); inspectorVO.setNum5(status5.size()); inspectorVO.setNum6(status6.size()); - inspectorVO.setNum7(!status6.isEmpty()?new BigDecimal(status6.size()).divide(new BigDecimal(status5.size()+status6.size()),2,RoundingMode.HALF_DOWN).multiply(new BigDecimal(100)):new BigDecimal(0)); + inspectorVO.setNum7(!status6.isEmpty()||!status5.isEmpty()?new BigDecimal(status6.size()).divide(new BigDecimal(status5.size()+status6.size()),2,RoundingMode.HALF_DOWN).multiply(new BigDecimal(100)):new BigDecimal(0)); res.add(inspectorVO); } return R.ok(res); @@ -1086,6 +1120,8 @@ } List<InspectorVO> res = new ArrayList<>(); List<TInspector> inspectors = inspectorService.list(tTaskLambdaQueryWrapper); + sysUsers = sysUsers.stream().filter(e -> e.getUserId() != 1).collect(Collectors.toList()); + for (SysUser sysUser : sysUsers) { InspectorVO inspectorVO = new InspectorVO(); inspectorVO.setNickName(sysUser.getNickName()); -- Gitblit v1.7.1