From 25b19e60e004290531f61fdf608d1adb5e531903 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 12 七月 2025 14:40:12 +0800 Subject: [PATCH] 保洁巡检本周代码 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java | 659 +++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 414 insertions(+), 245 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 a95a03e..a835e8a 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; @@ -71,6 +72,8 @@ private TTaskDetailService tTaskDetailService; @Resource private TDeptService deptService; + @Resource + private TTemplateCountService templateCountService; @Resource private ISysUserService sysUserService; @Resource @@ -166,7 +169,13 @@ } TTemplate tTemplate = templates.stream().filter(e -> e.getId().equals(record.getTemplateId())).findFirst().orElse(null); record.setNum1(1); - if(Objects.nonNull(tTemplate)){ + if (Objects.nonNull(tTemplate)) { + TTemplateCount templateCount = templateCountService.lambdaQuery().eq(TTemplateCount::getUserId, record.getUserId()) + .eq(TTemplateCount::getTemplateId, tTemplate.getId()) + .orderByDesc(TTemplateCount::getCreateTime).last("limit 1").one(); + if (templateCount != null) { + record.setNum1(templateCount.getTaskCount()); + } // todo 应生成计划数 LocalDateTime createTime = tTemplate.getCreateTime(); // 转化为yyyy-MM-dd字符串 @@ -197,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)); @@ -217,8 +227,9 @@ progressListVOPageInfo.setRecords(records); return R.ok(progressListVOPageInfo); } + @ApiOperation(value = "任务进度导出") - @Log(title = "任务进度导出", businessType = BusinessType.EXPORT) + @Log(title = "任务进度导出", businessType = BusinessType.OTHER) @PostMapping(value = "/taskProgressExport") public void taskProgressExport(@RequestBody TaskProgressQuery query) { List<SysUser> sysUsers = sysUserService.selectAllList(); @@ -375,6 +386,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(); @@ -416,7 +430,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 { @@ -424,70 +441,72 @@ && locationIds.contains(e.getLocationId())).collect(Collectors.toList()); Integer count = taskList.size(); temp.setLocationNum(count); - int total = taskList.size(); - int num1 = 0; - int num2 = 0; - int num3 = 0; - int num4 = 0; - int num5 = 0; - int num6 = 0; - int num7 = 0; - for (TTask tTask : taskList) { - TTaskDetail tTaskDetail = taskDetails.stream().filter(e -> e.getTaskId().equals(tTask.getId()) && e.getClearStatus() != null).findFirst().orElse(null); - if (tTaskDetail!=null){ - switch (tTaskDetail.getClearStatus()) { - case 1: - num1++; - break; - case 2: - num2++; - break; - } - } - // 任务状态:1未执行、2超时、3待确认、4待整改、5整改完成、6已完成 - switch (tTask.getStatus()) { - case 1: - if (tTaskDetail == null) { - num3++; - } - break; - case 2: - num6++; - break; - case 3: - break; - case 4: - num4++; - break; - case 5: - num7++; - break; - case 6: - num5++; - break; - } - } - projectDeptDetailsChildVO.setTotal(total); - projectDeptDetailsChildVO.setNum1(num1); - projectDeptDetailsChildVO.setNum2(num2); - projectDeptDetailsChildVO.setNum3(num3); - projectDeptDetailsChildVO.setNum4(num4); - projectDeptDetailsChildVO.setNum5(num5); - projectDeptDetailsChildVO.setNum6(num6); - projectDeptDetailsChildVO.setNum7(num7); + } locationTypeListByProjectVOS1.add(temp); } + List<TTask> taskList = tasks.stream().filter(e -> e.getProjectId().equals(projectDeptDetailsChildVO.getProjectId()) + ).collect(Collectors.toList()); + int total = taskList.size(); + int num1 = 0; + int num2 = 0; + int num3 = 0; + int num4 = 0; + int num5 = 0; + int num6 = 0; + int num7 = 0; + for (TTask tTask : taskList) { + TTaskDetail tTaskDetail = taskDetails.stream().filter(e -> e.getTaskId().equals(tTask.getId()) && e.getClearStatus() != null).findFirst().orElse(null); + if (tTaskDetail != null && (tTask.getStatus() == 5 || tTask.getStatus() == 6)) { + switch (tTaskDetail.getClearStatus()) { + case 1: + num1++; + break; + case 2: + num2++; + break; + } + } + // 任务状态:1未执行、2超时、3待确认、4待整改、5整改完成、6已完成 + switch (tTask.getStatus()) { + case 1: + if (tTaskDetail == null) { + num3++; + } + break; + case 2: + num6++; + break; + case 3: + break; + case 4: + num4++; + break; + case 5: + num7++; + break; + case 6: + num5++; + break; + } + } + projectDeptDetailsChildVO.setTotal(total); + projectDeptDetailsChildVO.setNum1(num1); + projectDeptDetailsChildVO.setNum2(num2); + projectDeptDetailsChildVO.setNum3(num3); + projectDeptDetailsChildVO.setNum4(num4); + projectDeptDetailsChildVO.setNum5(num5); + projectDeptDetailsChildVO.setNum6(num6); + projectDeptDetailsChildVO.setNum7(num7); projectDeptDetailsChildVO.setLocationTypeList(locationTypeListByProjectVOS1); - } - } return R.ok(res); } + @ApiOperation(value = "任务报表导出") @PostMapping(value = "/taskDetailsExport") - public void taskDetailsExport(@RequestBody TaskDetailsQuery query,HttpServletResponse response) throws IOException { + public void taskDetailsExport(@RequestBody TaskDetailsQuery query, HttpServletResponse response) throws IOException { List<TLocationType> locationTypeList = locationTypeService.list(); List<TLocation> locations = locationService.list(); LambdaQueryWrapper<TTask> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -531,73 +550,82 @@ locationTypeListByProjectVOS.add(locationTypeListByProjectVO); } for (ProjectDeptDetailsVO re : res) { - List<ProjectDeptDetailsChildVO> projectChild = re.getProjectChild(); - for (ProjectDeptDetailsChildVO projectDeptDetailsChildVO : projectChild) { + for (ProjectDeptDetailsChildVO projectDeptDetailsChildVO : re.getProjectChild()) { int cleanerCount = cleanerService.lambdaQuery().eq(TCleaner::getProjectId, projectDeptDetailsChildVO.getProjectId()).list().size(); projectDeptDetailsChildVO.setCleanerCount(cleanerCount); + List<LocationTypeListByProjectVO> locationTypeListByProjectVOS1 = new ArrayList<>(); for (LocationTypeListByProjectVO locationTypeListByProjectVO : locationTypeListByProjectVOS) { - List<String> locationIds = locations.stream().filter(e -> e.getLocationType().equals(locationTypeListByProjectVO.getId())).map(TLocation::getId).collect(Collectors.toList()); + LocationTypeListByProjectVO temp = new LocationTypeListByProjectVO(); + BeanUtils.copyProperties(locationTypeListByProjectVO, temp); + 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 { List<TTask> taskList = tasks.stream().filter(e -> e.getProjectId().equals(projectDeptDetailsChildVO.getProjectId()) && locationIds.contains(e.getLocationId())).collect(Collectors.toList()); Integer count = taskList.size(); - locationTypeListByProjectVO.setLocationNum(count); - int total = taskList.size(); - int num1 = 0; - int num2 = 0; - int num3 = 0; - int num4 = 0; - int num5 = 0; - int num6 = 0; - int num7 = 0; - for (TTask tTask : taskList) { - TTaskDetail tTaskDetail = taskDetails.stream().filter(e -> e.getTaskId().equals(tTask.getId()) && e.getClearStatus() != null).findFirst().orElse(null); - if (tTaskDetail!=null){ - switch (tTaskDetail.getClearStatus()) { - case 1: - num1++; - break; - case 2: - num2++; - break; - } - } - // 任务状态:1未执行、2超时、3待确认、4待整改、5整改完成、6已完成 - switch (tTask.getStatus()) { - case 1: - if (tTaskDetail == null) { - num3++; - } - break; - case 2: - num6++; - break; - case 3: - break; - case 4: - num4++; - break; - case 5: - num7++; - break; - case 6: - num5++; - break; - } + temp.setLocationNum(count); + + } + locationTypeListByProjectVOS1.add(temp); + } + List<TTask> taskList = tasks.stream().filter(e -> e.getProjectId().equals(projectDeptDetailsChildVO.getProjectId()) + ).collect(Collectors.toList()); + int total = taskList.size(); + int num1 = 0; + int num2 = 0; + int num3 = 0; + int num4 = 0; + int num5 = 0; + int num6 = 0; + int num7 = 0; + for (TTask tTask : taskList) { + TTaskDetail tTaskDetail = taskDetails.stream().filter(e -> e.getTaskId().equals(tTask.getId()) && e.getClearStatus() != null).findFirst().orElse(null); + if (tTaskDetail != null && (tTask.getStatus() == 5 || tTask.getStatus() == 6)) { + switch (tTaskDetail.getClearStatus()) { + case 1: + num1++; + break; + case 2: + num2++; + break; } - projectDeptDetailsChildVO.setTotal(total); - projectDeptDetailsChildVO.setNum1(num1); - projectDeptDetailsChildVO.setNum2(num2); - projectDeptDetailsChildVO.setNum3(num3); - projectDeptDetailsChildVO.setNum4(num4); - projectDeptDetailsChildVO.setNum5(num5); - projectDeptDetailsChildVO.setNum6(num6); - projectDeptDetailsChildVO.setNum7(num7); + } + // 任务状态:1未执行、2超时、3待确认、4待整改、5整改完成、6已完成 + switch (tTask.getStatus()) { + case 1: + if (tTaskDetail == null) { + num3++; + } + break; + case 2: + num6++; + break; + case 3: + break; + case 4: + num4++; + break; + case 5: + num7++; + break; + case 6: + num5++; + break; } } - projectDeptDetailsChildVO.setLocationTypeList(locationTypeListByProjectVOS); + projectDeptDetailsChildVO.setTotal(total); + projectDeptDetailsChildVO.setNum1(num1); + projectDeptDetailsChildVO.setNum2(num2); + projectDeptDetailsChildVO.setNum3(num3); + projectDeptDetailsChildVO.setNum4(num4); + projectDeptDetailsChildVO.setNum5(num5); + projectDeptDetailsChildVO.setNum6(num6); + projectDeptDetailsChildVO.setNum7(num7); + projectDeptDetailsChildVO.setLocationTypeList(locationTypeListByProjectVOS1); } } @@ -614,8 +642,8 @@ ExcelExportEntity excelExportEntity = new ExcelExportEntity("项目", "projectName", 15); excelExportEntity.setMergeVertical(true); entityList.add(excelExportEntity); - entityList.add(new ExcelExportEntity("片区名称", "areaName",15)); - entityList.add(new ExcelExportEntity("巡检保洁员数", "inspectorCount",15)); + entityList.add(new ExcelExportEntity("片区名称", "areaName", 15)); + entityList.add(new ExcelExportEntity("巡检保洁员数", "inspectorCount", 15)); // 动态添加作业类型分类 List<String> list = new ArrayList<>(allTypeNames); @@ -693,83 +721,142 @@ public R<List<PatrolInspectorVO>> patrolInspectorList(@RequestBody PatrolInspectorQuery query) { 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()); + if (StringUtils.hasLength(query.getStartTime())) { + tLeaveLambdaQueryWrapper.ge(TLeave::getCreateTime, query.getStartTime() + " :00:00:00"); + tLeaveLambdaQueryWrapper.le(TLeave::getCreateTime, query.getEndTime() + " :23:59:59"); } - tLeaveLambdaQueryWrapper.eq(TLeave::getAuditStatus,2); + tLeaveLambdaQueryWrapper.eq(TLeave::getAuditStatus, 2); List<TLeave> leaves = leaveService.list(tLeaveLambdaQueryWrapper); - if (StringUtils.hasLength(query.getDeptName())){ + if (StringUtils.hasLength(query.getDeptName())) { List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() .stream().map(TProjectDept::getId).collect(Collectors.toList()); List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() .stream().map(TDept::getId).collect(Collectors.toList()); projectIds.addAll(deptIds); - if (projectIds.isEmpty()){ + if (projectIds.isEmpty()) { return R.ok(new ArrayList<>()); } - if (StringUtils.hasLength(query.getPhonenumber())){ + query.setDeptIds(projectIds); + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> - sysUser.getPhonenumber().equals(query.getPhonenumber()) + sysUser.getPhonenumber().contains(query.getPhonenumber()) && projectIds.contains(sysUser.getDeptId()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (patrolInspectorIds.isEmpty()){ + if (patrolInspectorIds.isEmpty()) { + return R.ok(new ArrayList<>()); + } + query.setPatrolInspectorIds(patrolInspectorIds); + } + if (StringUtils.hasLength(query.getNickName())) { + List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> + sysUser.getNickName().contains(query.getNickName()) + && projectIds.contains(sysUser.getDeptId()) + ).map(SysUser::getUserId).collect(Collectors.toList()); + if (patrolInspectorIds.isEmpty()) { return R.ok(new ArrayList<>()); } query.setPatrolInspectorIds(patrolInspectorIds); } } - if (StringUtils.hasLength(query.getPhonenumber())){ + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> - sysUser.getPhonenumber().equals(query.getPhonenumber()) + sysUser.getPhonenumber().contains(query.getPhonenumber()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (!query.getPatrolInspectorIds().isEmpty()){ + if (query.getPatrolInspectorIds() != null && !query.getPatrolInspectorIds().isEmpty()) { // 取交集 patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); } query.setPatrolInspectorIds(patrolInspectorIds); - if (patrolInspectorIds.isEmpty()){ + if (patrolInspectorIds.isEmpty()) { + return R.ok(new ArrayList<>()); + } + } + if (StringUtils.hasLength(query.getNickName())) { + List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> + sysUser.getNickName().contains(query.getNickName()) + ).map(SysUser::getUserId).collect(Collectors.toList()); + if (query.getPatrolInspectorIds() != null && !query.getPatrolInspectorIds().isEmpty()) { + // 取交集 + patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); + } + query.setPatrolInspectorIds(patrolInspectorIds); + if (patrolInspectorIds.isEmpty()) { + return R.ok(new ArrayList<>()); + } + } + if (query.getDeptIds() != null && !query.getDeptIds().isEmpty()) { + List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> + query.getDeptIds().contains(sysUser.getDeptId()) + ).map(SysUser::getUserId).collect(Collectors.toList()); + if (query.getPatrolInspectorIds() != null && !query.getPatrolInspectorIds().isEmpty()) { + // 取交集 + patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); + } + query.setPatrolInspectorIds(patrolInspectorIds); + if (patrolInspectorIds.isEmpty()) { return R.ok(new ArrayList<>()); } } 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()); + if (StringUtils.hasLength(query.getStartTime())) { + tTaskLambdaQueryWrapper.ge(TTask::getImplementTime, query.getStartTime() + " :00:00:00"); + tTaskLambdaQueryWrapper.le(TTask::getImplementTime, query.getEndTime() + " :23:59:59"); } - if(query.getPatrolInspectorIds()!=null){ + if (query.getPatrolInspectorIds() != null && !query.getPatrolInspectorIds().isEmpty()) { 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(); patrolInspectorVO.setNickName(sysUser.getNickName()); patrolInspectorVO.setPhonenumber(sysUser.getPhonenumber()); - if (sysUser.getDeptType() == 1){ + if (sysUser.getDeptType() == 1) { TProjectDept tProjectDept = projectDeptService.getById(sysUser.getDeptId()); - if (tProjectDept!=null&&!tProjectDept.getParentId().equals("0")){ + if (tProjectDept != null && !tProjectDept.getParentId().equals("0")) { TProjectDept tProjectDept1 = projectDeptService.getById(tProjectDept.getParentId()); - if (tProjectDept1!=null) - patrolInspectorVO.setDeptName(tProjectDept1.getProjectName()+">"+tProjectDept.getProjectName()); - }else{ + if (tProjectDept1 != null) + patrolInspectorVO.setDeptName(tProjectDept1.getProjectName() + ">" + tProjectDept.getProjectName()); + } else { patrolInspectorVO.setDeptName(tProjectDept.getProjectName()); } - }else{ + } else { TDept tDept = deptService.getById(sysUser.getDeptId()); - if (tDept!=null) - patrolInspectorVO.setDeptName(tDept.getDeptName()); + if (tDept != null) + patrolInspectorVO.setDeptName(tDept.getDeptName()); } // 查询巡检员任务ids - List<String> taskIds = tasks.stream().filter(e->e.getPatrolInspector().equals(sysUser.getUserId()+"")).map(TTask::getId).collect(Collectors.toList()); + 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) + .eq(TTaskDetail::getHandleType, 1) .isNotNull(TTaskDetail::getClearStatus).orderByDesc(BaseModel::getCreateTime) - .in(!taskIds.isEmpty(), TTaskDetail::getTaskId,taskIds).groupBy(TTaskDetail::getTaskId).list(); + .in(!taskIds.isEmpty(), TTaskDetail::getTaskId, taskIdsFinish).list(); + list = new ArrayList<>(list.stream() + .collect(Collectors.groupingBy( + TTaskDetail::getTaskId, + Collectors.collectingAndThen( + Collectors.toList(), + listAll -> listAll.get(0) + ) + )) + .values()); // 查询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()); @@ -777,10 +864,10 @@ patrolInspectorVO.setTotal(taskList.size()); patrolInspectorVO.setNum1(clearStatus1.size()); patrolInspectorVO.setNum2(clearStatus2.size()); - patrolInspectorVO.setNum3(clearStatus1.size()+clearStatus2.size()!=0? - (new BigDecimal(clearStatus1.size()).add(new BigDecimal(clearStatus2.size()))) - .divide(new BigDecimal(clearStatus1.size()), 2, RoundingMode.HALF_DOWN) - .multiply(new BigDecimal(100)):BigDecimal.ZERO); + patrolInspectorVO.setNum3(!clearStatus1.isEmpty() ? + (new BigDecimal(clearStatus1.size())) + .divide(new BigDecimal(clearStatus1.size() + clearStatus2.size()), 2, RoundingMode.HALF_DOWN) + .multiply(new BigDecimal(100)) : BigDecimal.ZERO); // 未执行 List<TTask> status1 = taskList.stream().filter(e -> e.getStatus() == 1).collect(Collectors.toList()); List<TTask> status2 = taskList.stream().filter(e -> e.getStatus() == 3).collect(Collectors.toList()); @@ -793,100 +880,160 @@ patrolInspectorVO.setNum6(status3.size()); patrolInspectorVO.setNum7(status4.size()); patrolInspectorVO.setNum8(status5.size()); - patrolInspectorVO.setNum9(!status5.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.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); - List<TLeave> collect1 = leaves.stream().filter(e -> e.getLeavePerson().equals(sysUser.getUserId()+"")).collect(Collectors.toList()); + 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); } return R.ok(res); } + @ApiOperation(value = "巡检人员报表导出") @PostMapping(value = "/patrolInspectorListExport") - @Log(title = "巡检人员报表导出", businessType = BusinessType.EXPORT) + @Log(title = "巡检人员报表导出", businessType = BusinessType.OTHER) public void patrolInspectorListExport(@RequestBody PatrolInspectorQuery query) { 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()); + if (StringUtils.hasLength(query.getStartTime())) { + tLeaveLambdaQueryWrapper.ge(TLeave::getCreateTime, query.getStartTime() + " :00:00:00"); + tLeaveLambdaQueryWrapper.le(TLeave::getCreateTime, query.getEndTime() + " :23:59:59"); } - tLeaveLambdaQueryWrapper.eq(TLeave::getAuditStatus,2); + tLeaveLambdaQueryWrapper.eq(TLeave::getAuditStatus, 2); List<TLeave> leaves = leaveService.list(tLeaveLambdaQueryWrapper); - if (StringUtils.hasLength(query.getDeptName())){ + if (StringUtils.hasLength(query.getDeptName())) { List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() .stream().map(TProjectDept::getId).collect(Collectors.toList()); List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() .stream().map(TDept::getId).collect(Collectors.toList()); projectIds.addAll(deptIds); - if (projectIds.isEmpty()){ - projectIds.add("0"); + if (projectIds.isEmpty()) { + projectIds.add("-1"); } - if (StringUtils.hasLength(query.getPhonenumber())){ + query.setDeptIds(projectIds); + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().equals(query.getPhonenumber()) && projectIds.contains(sysUser.getDeptId()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (patrolInspectorIds.isEmpty()){ + if (patrolInspectorIds.isEmpty()) { + patrolInspectorIds.add(0L); + } + query.setPatrolInspectorIds(patrolInspectorIds); + } + if (StringUtils.hasLength(query.getNickName())) { + List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> + sysUser.getNickName().contains(query.getNickName()) + && projectIds.contains(sysUser.getDeptId()) + ).map(SysUser::getUserId).collect(Collectors.toList()); + if (patrolInspectorIds.isEmpty()) { patrolInspectorIds.add(0L); } query.setPatrolInspectorIds(patrolInspectorIds); } } - if (StringUtils.hasLength(query.getPhonenumber())){ + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().equals(query.getPhonenumber()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (!query.getPatrolInspectorIds().isEmpty()){ + if (query.getPatrolInspectorIds() != null && !query.getPatrolInspectorIds().isEmpty()) { // 取交集 patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); } query.setPatrolInspectorIds(patrolInspectorIds); - if (patrolInspectorIds.isEmpty()){ + if (patrolInspectorIds.isEmpty()) { + patrolInspectorIds.add(0L); + } + } + if (StringUtils.hasLength(query.getNickName())) { + List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> + sysUser.getNickName().contains(query.getNickName()) + ).map(SysUser::getUserId).collect(Collectors.toList()); + if (query.getPatrolInspectorIds() != null && !query.getPatrolInspectorIds().isEmpty()) { + // 取交集 + patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); + } + query.setPatrolInspectorIds(patrolInspectorIds); + if (patrolInspectorIds.isEmpty()) { + patrolInspectorIds.add(0L); + } + } + if (query.getDeptIds() != null && !query.getDeptIds().isEmpty()) { + List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> + query.getDeptIds().contains(sysUser.getDeptId()) + ).map(SysUser::getUserId).collect(Collectors.toList()); + if (query.getPatrolInspectorIds() != null && !query.getPatrolInspectorIds().isEmpty()) { + // 取交集 + patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); + } + query.setPatrolInspectorIds(patrolInspectorIds); + if (patrolInspectorIds.isEmpty()) { patrolInspectorIds.add(0L); } } 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()); + if (StringUtils.hasLength(query.getStartTime())) { + tTaskLambdaQueryWrapper.ge(TTask::getImplementTime, query.getStartTime() + " :00:00:00"); + tTaskLambdaQueryWrapper.le(TTask::getImplementTime, query.getEndTime() + " :23:59:59"); } - if(query.getPatrolInspectorIds()!=null){ + if (query.getPatrolInspectorIds() != null && !query.getPatrolInspectorIds().isEmpty()) { 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(); patrolInspectorVO.setNickName(sysUser.getNickName()); patrolInspectorVO.setPhonenumber(sysUser.getPhonenumber()); - if (sysUser.getDeptType() == 1){ + if (sysUser.getDeptType() == 1) { TProjectDept tProjectDept = projectDeptService.getById(sysUser.getDeptId()); - if (tProjectDept!=null&&!tProjectDept.getParentId().equals("0")){ + if (tProjectDept != null && !tProjectDept.getParentId().equals("0")) { TProjectDept tProjectDept1 = projectDeptService.getById(tProjectDept.getParentId()); - if (tProjectDept1!=null) - patrolInspectorVO.setDeptName(tProjectDept1.getProjectName()+">"+tProjectDept.getProjectName()); - }else{ + if (tProjectDept1 != null) + patrolInspectorVO.setDeptName(tProjectDept1.getProjectName() + ">" + tProjectDept.getProjectName()); + } else { patrolInspectorVO.setDeptName(tProjectDept.getProjectName()); } - }else{ + } else { TDept tDept = deptService.getById(sysUser.getDeptId()); - if (tDept!=null) - patrolInspectorVO.setDeptName(tDept.getDeptName()); + if (tDept != null) + patrolInspectorVO.setDeptName(tDept.getDeptName()); } // 查询巡检员任务ids - List<String> taskIds = tasks.stream().filter(e->e.getPatrolInspector().equals(sysUser.getUserId()+"")).map(TTask::getId).collect(Collectors.toList()); + 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) + .eq(TTaskDetail::getHandleType, 1) .isNotNull(TTaskDetail::getClearStatus).orderByDesc(BaseModel::getCreateTime) - .in(!taskIds.isEmpty(), TTaskDetail::getTaskId,taskIds).groupBy(TTaskDetail::getTaskId).list(); + .in(!taskIds.isEmpty(), TTaskDetail::getTaskId, taskIdsFinish).list(); + list = new ArrayList<>(list.stream() + .collect(Collectors.groupingBy( + TTaskDetail::getTaskId, + Collectors.collectingAndThen( + Collectors.toList(), + listAll -> listAll.get(0) + ) + )) + .values()); // 查询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()); @@ -894,10 +1041,10 @@ patrolInspectorVO.setTotal(taskList.size()); patrolInspectorVO.setNum1(clearStatus1.size()); patrolInspectorVO.setNum2(clearStatus2.size()); - patrolInspectorVO.setNum3(clearStatus1.size()+clearStatus2.size()!=0? - (new BigDecimal(clearStatus1.size()).add(new BigDecimal(clearStatus2.size()))) - .divide(new BigDecimal(clearStatus1.size()), 2, RoundingMode.HALF_DOWN) - .multiply(new BigDecimal(100)):BigDecimal.ZERO); + patrolInspectorVO.setNum3(!clearStatus1.isEmpty() ? + (new BigDecimal(clearStatus1.size())) + .divide(new BigDecimal(clearStatus1.size() + clearStatus2.size()), 2, RoundingMode.HALF_DOWN) + .multiply(new BigDecimal(100)) : BigDecimal.ZERO); // 未执行 List<TTask> status1 = taskList.stream().filter(e -> e.getStatus() == 1).collect(Collectors.toList()); List<TTask> status2 = taskList.stream().filter(e -> e.getStatus() == 3).collect(Collectors.toList()); @@ -910,12 +1057,12 @@ patrolInspectorVO.setNum6(status3.size()); patrolInspectorVO.setNum7(status4.size()); patrolInspectorVO.setNum8(status5.size()); - patrolInspectorVO.setNum9(!status5.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.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); - List<TLeave> collect1 = leaves.stream().filter(e -> e.getLeavePerson().equals(sysUser.getUserId()+"")).collect(Collectors.toList()); + 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); } @@ -945,171 +1092,193 @@ @PostMapping(value = "/inspectorList") public R<List<InspectorVO>> inspectorList(@RequestBody InspectorQuery query) { List<SysUser> sysUsers = sysUserService.selectAllList(); - if (StringUtils.hasLength(query.getDeptName())){ + List<TTask> listAll = taskCleanerService.list(); + List<String> listAllTaskIds = listAll.stream().map(TTask::getId).collect(Collectors.toList()); + if (StringUtils.hasLength(query.getDeptName())) { List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() .stream().map(TProjectDept::getId).collect(Collectors.toList()); List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() .stream().map(TDept::getId).collect(Collectors.toList()); projectIds.addAll(deptIds); - if (projectIds.isEmpty()){ + if (projectIds.isEmpty()) { return R.ok(new ArrayList<>()); } - if (StringUtils.hasLength(query.getPhonenumber())){ + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().equals(query.getPhonenumber()) && projectIds.contains(sysUser.getDeptId()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (patrolInspectorIds.isEmpty()){ + if (patrolInspectorIds.isEmpty()) { return R.ok(new ArrayList<>()); } query.setPatrolInspectorIds(patrolInspectorIds); } } - if (StringUtils.hasLength(query.getPhonenumber())){ + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().equals(query.getPhonenumber()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (!query.getPatrolInspectorIds().isEmpty()){ + if (!query.getPatrolInspectorIds().isEmpty()) { // 取交集 patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); } query.setPatrolInspectorIds(patrolInspectorIds); - if (patrolInspectorIds.isEmpty()){ + if (patrolInspectorIds.isEmpty()) { return R.ok(new ArrayList<>()); } } LambdaQueryWrapper<TInspector> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); - tTaskLambdaQueryWrapper.eq(TInspector::getAuditStatus,1); + tTaskLambdaQueryWrapper.eq(TInspector::getAuditStatus, 1); tTaskLambdaQueryWrapper.isNotNull(TInspector::getClearStatus); - if (StringUtils.hasLength(query.getStartTime())){ + if (StringUtils.hasLength(query.getStartTime())) { tTaskLambdaQueryWrapper.ge(TInspector::getCreateTime, query.getStartTime()); tTaskLambdaQueryWrapper.le(TInspector::getCreateTime, query.getEndTime()); } - if(query.getPatrolInspectorIds()!=null){ + if (query.getPatrolInspectorIds() != null) { + if (query.getPatrolInspectorIds().isEmpty()) { + List<Long> patrolInspectorIds = query.getPatrolInspectorIds(); + patrolInspectorIds.add(0L); + query.setPatrolInspectorIds(patrolInspectorIds); + } tTaskLambdaQueryWrapper.in(TInspector::getCommitPerson, query.getPatrolInspectorIds()); sysUsers = sysUsers.stream().filter(sysUser -> query.getPatrolInspectorIds().contains(sysUser.getUserId())).collect(Collectors.toList()); } 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()); inspectorVO.setPhonenumber(sysUser.getPhonenumber()); - if (sysUser.getDeptType() == 1){ + if (sysUser.getDeptType() == 1) { TProjectDept tProjectDept = projectDeptService.getById(sysUser.getDeptId()); - if (tProjectDept!=null&&!tProjectDept.getParentId().equals("0")){ + if (tProjectDept != null && !tProjectDept.getParentId().equals("0")) { TProjectDept tProjectDept1 = projectDeptService.getById(tProjectDept.getParentId()); - if (tProjectDept1!=null) - inspectorVO.setDeptName(tProjectDept1.getProjectName()+">"+tProjectDept.getProjectName()); - }else{ + if (tProjectDept1 != null) + inspectorVO.setDeptName(tProjectDept1.getProjectName() + ">" + tProjectDept.getProjectName()); + } else { inspectorVO.setDeptName(tProjectDept.getProjectName()); } - }else{ + } else { TDept tDept = deptService.getById(sysUser.getDeptId()); - if (tDept!=null) + if (tDept != null) inspectorVO.setDeptName(tDept.getDeptName()); } - inspectorVO.setTotal(inspectors.size()); - List<TInspector> status1 = inspectors.stream().filter(e -> e.getClearStatus() == 1).collect(Collectors.toList()); - List<TInspector> status2 = inspectors.stream().filter(e -> e.getClearStatus() == 2).collect(Collectors.toList()); - List<TInspector> status4 = inspectors.stream().filter(e -> e.getStatus() == 1).collect(Collectors.toList()); - List<TInspector> status5 = inspectors.stream().filter(e -> e.getStatus() == 2).collect(Collectors.toList()); - List<TInspector> status6 = inspectors.stream().filter(e -> e.getStatus() == 3).collect(Collectors.toList()); + List<String> collect1 = listAll.stream().filter(e -> e.getPatrolInspector().equals(sysUser.getUserId() + "")).map(TTask::getId).collect(Collectors.toList()); + List<TInspector> collect = inspectors.stream().filter(e -> collect1.contains(e.getTaskId())).collect(Collectors.toList()); + inspectorVO.setTotal(collect.size()); + List<TInspector> status1 = collect.stream().filter(e -> e.getClearStatus() == 1).collect(Collectors.toList()); + List<TInspector> status2 = collect.stream().filter(e -> e.getClearStatus() == 2).collect(Collectors.toList()); + List<TInspector> status4 = collect.stream().filter(e -> e.getStatus() == 1).collect(Collectors.toList()); + List<TInspector> status5 = collect.stream().filter(e -> e.getStatus() == 2).collect(Collectors.toList()); + List<TInspector> status6 = collect.stream().filter(e -> e.getStatus() == 3).collect(Collectors.toList()); 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); } + @ApiOperation(value = "随机督察报表导出") @PostMapping(value = "/inspectorListExport") - @Log(title = "随机督察报表导出", businessType = BusinessType.EXPORT) + @Log(title = "随机督察报表导出", businessType = BusinessType.OTHER) public void inspectorListExport(@RequestBody InspectorQuery query) { + query.setPatrolInspectorIds(null); List<SysUser> sysUsers = sysUserService.selectAllList(); - if (StringUtils.hasLength(query.getDeptName())){ + List<TTask> listAll = taskCleanerService.list(); + List<String> listAllTaskIds = listAll.stream().map(TTask::getId).collect(Collectors.toList()); + if (StringUtils.hasLength(query.getDeptName())) { List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list() .stream().map(TProjectDept::getId).collect(Collectors.toList()); List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list() .stream().map(TDept::getId).collect(Collectors.toList()); projectIds.addAll(deptIds); - if (projectIds.isEmpty()){ + if (projectIds.isEmpty()) { projectIds.add("-1"); } - if (StringUtils.hasLength(query.getPhonenumber())){ + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().equals(query.getPhonenumber()) && projectIds.contains(sysUser.getDeptId()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (patrolInspectorIds.isEmpty()){ + if (patrolInspectorIds.isEmpty()) { patrolInspectorIds.add(0L); } query.setPatrolInspectorIds(patrolInspectorIds); } } - if (StringUtils.hasLength(query.getPhonenumber())){ + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> sysUser.getPhonenumber().equals(query.getPhonenumber()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (!query.getPatrolInspectorIds().isEmpty()){ + if (!query.getPatrolInspectorIds().isEmpty()) { // 取交集 patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList()); } query.setPatrolInspectorIds(patrolInspectorIds); - if (patrolInspectorIds.isEmpty()){ + if (patrolInspectorIds.isEmpty()) { patrolInspectorIds.add(0L); } } LambdaQueryWrapper<TInspector> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); - tTaskLambdaQueryWrapper.eq(TInspector::getAuditStatus,1); + tTaskLambdaQueryWrapper.eq(TInspector::getAuditStatus, 1); tTaskLambdaQueryWrapper.isNotNull(TInspector::getClearStatus); - if (StringUtils.hasLength(query.getStartTime())){ + if (StringUtils.hasLength(query.getStartTime())) { tTaskLambdaQueryWrapper.ge(TInspector::getCreateTime, query.getStartTime()); tTaskLambdaQueryWrapper.le(TInspector::getCreateTime, query.getEndTime()); } - if(query.getPatrolInspectorIds()!=null){ + if (query.getPatrolInspectorIds() != null) { + if (query.getPatrolInspectorIds().isEmpty()) { + List<Long> patrolInspectorIds = query.getPatrolInspectorIds(); + patrolInspectorIds.add(0L); + query.setPatrolInspectorIds(patrolInspectorIds); + } tTaskLambdaQueryWrapper.in(TInspector::getCommitPerson, query.getPatrolInspectorIds()); sysUsers = sysUsers.stream().filter(sysUser -> query.getPatrolInspectorIds().contains(sysUser.getUserId())).collect(Collectors.toList()); } 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()); inspectorVO.setPhonenumber(sysUser.getPhonenumber()); - if (sysUser.getDeptType() == 1){ + if (sysUser.getDeptType() == 1) { TProjectDept tProjectDept = projectDeptService.getById(sysUser.getDeptId()); - if (tProjectDept!=null&&!tProjectDept.getParentId().equals("0")){ + if (tProjectDept != null && !tProjectDept.getParentId().equals("0")) { TProjectDept tProjectDept1 = projectDeptService.getById(tProjectDept.getParentId()); - if (tProjectDept1!=null) - inspectorVO.setDeptName(tProjectDept1.getProjectName()+">"+tProjectDept.getProjectName()); - }else{ + if (tProjectDept1 != null) + inspectorVO.setDeptName(tProjectDept1.getProjectName() + ">" + tProjectDept.getProjectName()); + } else { inspectorVO.setDeptName(tProjectDept.getProjectName()); } - }else{ + } else { TDept tDept = deptService.getById(sysUser.getDeptId()); - if (tDept!=null) + if (tDept != null) inspectorVO.setDeptName(tDept.getDeptName()); } - inspectorVO.setTotal(inspectors.size()); - List<TInspector> status1 = inspectors.stream().filter(e -> e.getClearStatus() == 1).collect(Collectors.toList()); - List<TInspector> status2 = inspectors.stream().filter(e -> e.getClearStatus() == 2).collect(Collectors.toList()); - List<TInspector> status4 = inspectors.stream().filter(e -> e.getStatus() == 1).collect(Collectors.toList()); - List<TInspector> status5 = inspectors.stream().filter(e -> e.getStatus() == 2).collect(Collectors.toList()); - List<TInspector> status6 = inspectors.stream().filter(e -> e.getStatus() == 3).collect(Collectors.toList()); + List<String> collect1 = listAll.stream().filter(e -> e.getPatrolInspector().equals(sysUser.getUserId() + "")).map(TTask::getId).collect(Collectors.toList()); + List<TInspector> collect = inspectors.stream().filter(e -> collect1.contains(e.getTaskId())).collect(Collectors.toList()); + inspectorVO.setTotal(collect.size()); + List<TInspector> status1 = collect.stream().filter(e -> e.getClearStatus() == 1).collect(Collectors.toList()); + List<TInspector> status2 = collect.stream().filter(e -> e.getClearStatus() == 2).collect(Collectors.toList()); + List<TInspector> status4 = collect.stream().filter(e -> e.getStatus() == 1).collect(Collectors.toList()); + List<TInspector> status5 = collect.stream().filter(e -> e.getStatus() == 2).collect(Collectors.toList()); + List<TInspector> status6 = collect.stream().filter(e -> e.getStatus() == 3).collect(Collectors.toList()); 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); } //1.获取excel模板 @@ -1137,7 +1306,7 @@ @ApiOperation(value = "任务报表导出模板") @PostMapping(value = "/exportExcel") - public void exportExcel(@RequestBody TaskDetailsQuery query,HttpServletResponse response) throws Exception{ + public void exportExcel(@RequestBody TaskDetailsQuery query, HttpServletResponse response) throws Exception { List<TLocationType> locationTypeList = locationTypeService.list(); List<TLocation> locations = locationService.list(); LambdaQueryWrapper<TTask> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -1204,7 +1373,7 @@ int num7 = 0; for (TTask tTask : taskList) { TTaskDetail tTaskDetail = taskDetails.stream().filter(e -> e.getTaskId().equals(tTask.getId()) && e.getClearStatus() != null).findFirst().orElse(null); - if (tTaskDetail!=null){ + if (tTaskDetail != null) { switch (tTaskDetail.getClearStatus()) { case 1: num1++; @@ -1264,8 +1433,8 @@ ExcelExportEntity excelExportEntity = new ExcelExportEntity("项目", "projectName", 15); excelExportEntity.setMergeVertical(true); entityList.add(excelExportEntity); - entityList.add(new ExcelExportEntity("片区名称", "areaName",15)); - entityList.add(new ExcelExportEntity("巡检保洁员数", "inspectorCount",15)); + entityList.add(new ExcelExportEntity("片区名称", "areaName", 15)); + entityList.add(new ExcelExportEntity("巡检保洁员数", "inspectorCount", 15)); // 动态添加作业类型分类 List<String> list = new ArrayList<>(allTypeNames); -- Gitblit v1.7.1