ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java
@@ -19,6 +19,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -67,16 +68,29 @@ public R<List<TProjectDept>> queryProject() { Integer deptType = tokenService.getLoginUser().getUser().getDeptType(); String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); List<TProjectDept> projectDeptList = new ArrayList<>(); if (deptType == 1) { // 查询片区 TProjectDept projectDept = projectDeptService.getById(deptId); // 查询项目部 TProjectDept parent = projectDeptService.getById(projectDept.getParentId()); List<TProjectDept> children = new ArrayList<>(); children.add(projectDept); // parent.setChildren(children); projectDeptList.add(parent); if(userId != 1L){ if (deptType == 1) { // 查询片区 TProjectDept projectDept = projectDeptService.getById(deptId); // 查询项目部 TProjectDept parent = projectDeptService.getById(projectDept.getParentId()); List<TProjectDept> children = new ArrayList<>(); children.add(projectDept); parent.setChildren(children); projectDeptList.add(parent); }else { projectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus,1) .eq(TProjectDept::getParentId,0)); // 查询片区 projectDeptList.forEach(projectDept -> { List<TProjectDept> children = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getParentId, projectDept.getId())); projectDept.setChildren(children); }); } }else { projectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus,1) @@ -85,7 +99,7 @@ projectDeptList.forEach(projectDept -> { List<TProjectDept> children = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getParentId, projectDept.getId())); // projectDept.setChildren(children); projectDept.setChildren(children); }); } return R.ok(projectDeptList); @@ -93,17 +107,18 @@ @ApiOperation(value = "通过片区id查询点位类型") @GetMapping(value = "/queryLocationByProjectId") public R<List<TLocationType>> queryLocationByProjectId(@RequestParam(value = "projectId") String projectId) { List<TLocationType> locationTypes = new ArrayList<>(); // 通过片区id查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .eq(TLocation::getProjectId, projectId)); if(CollectionUtils.isEmpty(locationList)){ return R.ok(locationTypes); } List<String> typeIds = locationList.stream().map(TLocation::getLocationType).collect(Collectors.toList()); locationTypes = locationTypeService.list(Wrappers.lambdaQuery(TLocationType.class) .in(TLocationType::getId, typeIds)); public R<List<TLocationType>> queryLocationByProjectId() { // List<TLocationType> locationTypes = new ArrayList<>(); // // 通过片区id查询点位 // List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) // .eq(TLocation::getProjectId, projectId)); // if(CollectionUtils.isEmpty(locationList)){ // return R.ok(locationTypes); // } // List<String> typeIds = locationList.stream().map(TLocation::getLocationType).collect(Collectors.toList()); // locationTypes = locationTypeService.list(Wrappers.lambdaQuery(TLocationType.class) // .in(TLocationType::getId, typeIds)); List<TLocationType> locationTypes = locationTypeService.list(); return R.ok(locationTypes); } @@ -115,34 +130,80 @@ String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); String startTime = LocalDate.now() + " 00:00:00"; String endTime = LocalDate.now() + " 23:59:59"; LambdaQueryWrapper<TTask> wrapper = new LambdaQueryWrapper<>(); String startTime = LocalDate.now() + " 00:00:00"; String endTime = LocalDate.now() + " 23:59:59"; wrapper.between(TTask::getImplementTime, startTime, endTime); // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); if(userId != 1L){ // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } } List<TTask> taskList = new ArrayList<>(); if (deptType == 1) { // 项目部人员 List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); List<TTask> taskList = new ArrayList<>(); if (deptType == 1) { // 项目部人员 if(CollectionUtils.isEmpty(query.getProjectId())){ List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); } }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId) .between(TTask::getImplementTime, startTime, endTime)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(map); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } map.put("taskCount", list.size()); map.put("taskUnExecutedCount", list.stream().filter(task -> task.getStatus() == 1).count()); map.put("taskPendingCount", list.stream().filter(task -> task.getStatus() == 3).count()); map.put("taskFinishCount", list.stream().filter(task -> task.getStatus() == 6).count()); }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId) // 超级管理员 // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } // 超级管理员 查询所有任务列表 List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .between(TTask::getImplementTime, startTime, endTime)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 @@ -151,29 +212,29 @@ .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); wrapper.in(TTask::getProjectId, projectIds); query.setProjectId(projectIds); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(map); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(map); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } map.put("taskCount", list.size()); map.put("taskUnExecutedCount", list.stream().filter(task -> task.getStatus() == 1).count()); map.put("taskPendingCount", list.stream().filter(task -> task.getStatus() == 3).count()); map.put("taskFinishCount", list.stream().filter(task -> task.getStatus() == 6).count()); map.put("taskCount", list.size()); map.put("taskUnExecutedCount", list.stream().filter(task -> task.getStatus() == 1).count()); map.put("taskPendingCount", list.stream().filter(task -> task.getStatus() == 3).count()); map.put("taskFinishCount", list.stream().filter(task -> task.getStatus() == 6).count()); } return R.ok(map); } @@ -184,23 +245,73 @@ Map<String, Object> map = new HashMap<>(); Integer deptType = tokenService.getLoginUser().getUser().getDeptType(); String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); // 查询类型 TLocationType locationType = locationTypeService.getById(query.getLocationTypeId()); map.put(locationType.getLocationName(), locationList.size()); return R.ok(map); } if (deptType == 1) { // 项目部人员 List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); if(userId != 1L){ // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); // 查询类型 TLocationType locationType = locationTypeService.getById(query.getLocationTypeId()); map.put(locationType.getLocationName(), locationList.size()); return R.ok(map); } if (deptType == 1) { // 项目部人员 if(CollectionUtils.isEmpty(query.getProjectId())){ List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); } }else { if(CollectionUtils.isEmpty(query.getProjectId())) { // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if (!CollectionUtils.isEmpty(tProjectDeptList)) { List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getProjectId, projectIds)); List<String> locationTypeList = locationList.stream().map(TLocation::getLocationType).distinct().collect(Collectors.toList()); List<TLocationType> locationTypes = locationTypeService.list(Wrappers.lambdaQuery(TLocationType.class) .in(TLocationType::getId, locationTypeList)); for (TLocationType locationType : locationTypes) { List<TLocation> locationList1 = locationList.stream().filter(location -> location.getLocationType().equals(locationType.getId())).collect(Collectors.toList()); map.put(locationType.getLocationName(), locationList1.size()); } return R.ok(map); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getProjectId, query.getProjectId())); List<String> locationTypeList = locationList.stream().map(TLocation::getLocationType).distinct().collect(Collectors.toList()); List<TLocationType> locationTypes = locationTypeService.list(Wrappers.lambdaQuery(TLocationType.class) .in(TLocationType::getId, locationTypeList)); for (TLocationType locationType : locationTypes) { List<TLocation> locationList1 = locationList.stream().filter(location -> location.getLocationType().equals(locationType.getId())).collect(Collectors.toList()); map.put(locationType.getLocationName(), locationList1.size()); } return R.ok(map); } }else { // 超级管理员 // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); // 查询类型 TLocationType locationType = locationTypeService.getById(query.getLocationTypeId()); map.put(locationType.getLocationName(), locationList.size()); return R.ok(map); } if(CollectionUtils.isEmpty(query.getProjectId())) { // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) @@ -219,22 +330,21 @@ } return R.ok(map); } }else { // 查询片区 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getProjectId, query.getProjectId())); List<String> locationTypeList = locationList.stream().map(TLocation::getLocationType).distinct().collect(Collectors.toList()); List<TLocationType> locationTypes = locationTypeService.list(Wrappers.lambdaQuery(TLocationType.class) .in(TLocationType::getId, locationTypeList)); for (TLocationType locationType : locationTypes) { List<TLocation> locationList1 = locationList.stream().filter(location -> location.getLocationType().equals(locationType.getId())).collect(Collectors.toList()); map.put(locationType.getLocationName(), locationList1.size()); } return R.ok(map); } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .eq(TLocation::getProjectId, query.getProjectId())); List<String> locationTypeList = locationList.stream().map(TLocation::getLocationType).distinct().collect(Collectors.toList()); List<TLocationType> locationTypes = locationTypeService.list(Wrappers.lambdaQuery(TLocationType.class) .in(TLocationType::getId, locationTypeList)); for (TLocationType locationType : locationTypes) { List<TLocation> locationList1 = locationList.stream().filter(location -> location.getLocationType().equals(locationType.getId())).collect(Collectors.toList()); map.put(locationType.getLocationName(), locationList1.size()); } return R.ok(map); } return R.ok(map); } @@ -242,31 +352,95 @@ @PostMapping(value = "/warningSummary") public R<Map<String, Object>> warningSummary(@RequestBody DataStatisticsQuery query) { Map<String, Object> map = new HashMap<>(); map.put("timeoutWarn", 0); map.put("unqualifiedWarn", 0); Integer deptType = tokenService.getLoginUser().getUser().getDeptType(); String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); LambdaQueryWrapper<TTask> wrapper = new LambdaQueryWrapper<>(); // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); if (userId != 1L) { // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } } List<TTask> taskList = new ArrayList<>(); if (deptType == 1) { // 项目部人员 List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); List<TTask> taskList = new ArrayList<>(); if (deptType == 1) { // 项目部人员 if(CollectionUtils.isEmpty(query.getProjectId())){ List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); } }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(map); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } map.put("timeoutWarn", list.stream().filter(task -> task.getStatus() == 2).count()); List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ map.put("unqualifiedWarn", 0); return R.ok(map); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .orderByDesc(TTaskDetail::getCreateTime)); int unqualifiedWarn = 0; for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ if(Objects.nonNull(tTaskDetail.getClearStatus()) && tTaskDetail.getClearStatus() == 2){ unqualifiedWarn++; } } } map.put("unqualifiedWarn", unqualifiedWarn); }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId)); // 超级管理员 // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } // 超级管理员 查询所有的任务列表 List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) @@ -274,44 +448,44 @@ .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); wrapper.in(TTask::getProjectId, projectIds); query.setProjectId(projectIds); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(map); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(map); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } map.put("timeoutWarn", list.stream().filter(task -> task.getStatus() == 2).count()); List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ map.put("unqualifiedWarn", 0); return R.ok(map); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .orderByDesc(TTaskDetail::getCreateTime)); int unqualifiedWarn = 0; for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ if(tTaskDetail.getClearStatus() == 2){ unqualifiedWarn++; if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } map.put("timeoutWarn", list.stream().filter(task -> task.getStatus() == 2).count()); List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ map.put("unqualifiedWarn", 0); return R.ok(map); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .orderByDesc(TTaskDetail::getCreateTime)); int unqualifiedWarn = 0; for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ if(Objects.nonNull(tTaskDetail.getClearStatus()) && tTaskDetail.getClearStatus() == 2){ unqualifiedWarn++; } } } map.put("unqualifiedWarn", unqualifiedWarn); } map.put("unqualifiedWarn", unqualifiedWarn); return R.ok(map); } @@ -321,28 +495,102 @@ Integer deptType = tokenService.getLoginUser().getUser().getDeptType(); String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); AnalysisUnqualifiedCleaningVO analysisUnqualifiedCleaningVO = new AnalysisUnqualifiedCleaningVO(); LambdaQueryWrapper<TTask> wrapper = new LambdaQueryWrapper<>(); // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); if(userId != 1L){ // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } } List<TTask> taskList = new ArrayList<>(); if (deptType == 1) { // 项目部人员 List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); List<TTask> taskList = new ArrayList<>(); if (deptType == 1) { // 项目部人员 if(CollectionUtils.isEmpty(query.getProjectId())){ List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); } }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ return R.ok(); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .eq(TTaskDetail::getClearStatus, 2) .orderByDesc(TTaskDetail::getCreateTime)); List<TTaskDetail> taskDetailList = new ArrayList<>(); for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ taskDetailList.add(tTaskDetail); } } analysisUnqualifiedCleaningVO.setTotal(taskDetailList.size()); // 查询所有的不合格原因 List<TDictData> dictDataList = dictDataService.list(Wrappers.lambdaQuery(TDictData.class) .eq(TDictData::getDataType, 2)); List<AnalysisUnqualifiedCleaningDetailVO> analysisUnqualifiedCleaningDetailVOS = new ArrayList<>(); for (TDictData tDictData : dictDataList) { List<TTaskDetail> tTaskDetails = taskDetailList.stream().filter(taskDetail -> taskDetail.getUnqualified().equals(tDictData.getId())).collect(Collectors.toList()); AnalysisUnqualifiedCleaningDetailVO analysisUnqualifiedCleaningDetailVO = new AnalysisUnqualifiedCleaningDetailVO(); analysisUnqualifiedCleaningDetailVO.setUnqualifiedName(tDictData.getDataContent()); analysisUnqualifiedCleaningDetailVO.setCount(tTaskDetails.size()); analysisUnqualifiedCleaningDetailVOS.add(analysisUnqualifiedCleaningDetailVO); } analysisUnqualifiedCleaningVO.setAnalysisUnqualifiedCleaningDetailVOS(analysisUnqualifiedCleaningDetailVOS); }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId)); // 超级管理员 // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } // 超级管理员 查询所有的任务列表 List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) @@ -350,63 +598,62 @@ .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); wrapper.in(TTask::getProjectId, projectIds); query.setProjectId(projectIds); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ return R.ok(); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .eq(TTaskDetail::getClearStatus, 2) .orderByDesc(TTaskDetail::getCreateTime)); List<TTaskDetail> taskDetailList = new ArrayList<>(); for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ taskDetailList.add(tTaskDetail); // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ return R.ok(); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .eq(TTaskDetail::getClearStatus, 2) .orderByDesc(TTaskDetail::getCreateTime)); List<TTaskDetail> taskDetailList = new ArrayList<>(); for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ taskDetailList.add(tTaskDetail); } } analysisUnqualifiedCleaningVO.setTotal(taskDetailList.size()); // 查询所有的不合格原因 List<TDictData> dictDataList = dictDataService.list(Wrappers.lambdaQuery(TDictData.class) .eq(TDictData::getDataType, 2)); List<AnalysisUnqualifiedCleaningDetailVO> analysisUnqualifiedCleaningDetailVOS = new ArrayList<>(); for (TDictData tDictData : dictDataList) { List<TTaskDetail> tTaskDetails = taskDetailList.stream().filter(taskDetail -> taskDetail.getUnqualified().equals(tDictData.getId())).collect(Collectors.toList()); AnalysisUnqualifiedCleaningDetailVO analysisUnqualifiedCleaningDetailVO = new AnalysisUnqualifiedCleaningDetailVO(); analysisUnqualifiedCleaningDetailVO.setUnqualifiedName(tDictData.getDataContent()); analysisUnqualifiedCleaningDetailVO.setCount(tTaskDetails.size()); analysisUnqualifiedCleaningDetailVOS.add(analysisUnqualifiedCleaningDetailVO); } analysisUnqualifiedCleaningVO.setAnalysisUnqualifiedCleaningDetailVOS(analysisUnqualifiedCleaningDetailVOS); } AnalysisUnqualifiedCleaningVO analysisUnqualifiedCleaningVO = new AnalysisUnqualifiedCleaningVO(); analysisUnqualifiedCleaningVO.setTotal(taskDetailList.size()); // 查询所有的不合格原因 List<TDictData> dictDataList = dictDataService.list(Wrappers.lambdaQuery(TDictData.class) .eq(TDictData::getDataType, 2)); List<AnalysisUnqualifiedCleaningDetailVO> analysisUnqualifiedCleaningDetailVOS = new ArrayList<>(); for (TDictData tDictData : dictDataList) { List<TTaskDetail> tTaskDetails = taskDetailList.stream().filter(taskDetail -> taskDetail.getUnqualified().equals(tDictData.getId())).collect(Collectors.toList()); AnalysisUnqualifiedCleaningDetailVO analysisUnqualifiedCleaningDetailVO = new AnalysisUnqualifiedCleaningDetailVO(); analysisUnqualifiedCleaningDetailVO.setUnqualifiedName(tDictData.getDataContent()); analysisUnqualifiedCleaningDetailVO.setCount(tTaskDetails.size()); analysisUnqualifiedCleaningDetailVOS.add(analysisUnqualifiedCleaningDetailVO); } analysisUnqualifiedCleaningVO.setAnalysisUnqualifiedCleaningDetailVOS(analysisUnqualifiedCleaningDetailVOS); return R.ok(analysisUnqualifiedCleaningVO); } @ApiOperation(value = "巡检排行榜") @PostMapping(value = "/inspectionRankingList") public R<List<DataStatisticsRankVO>> inspectionRankingList(@RequestBody DataStatisticsRankQuery query) { public R<List<DataStatisticsRankVO>> inspectionRankingList(@Validated @RequestBody DataStatisticsRankQuery query) { Integer deptType = tokenService.getLoginUser().getUser().getDeptType(); String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); @@ -434,32 +681,169 @@ } wrapper.between(TTask::getCreateTime, startTime, endTime); // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); List<DataStatisticsRankVO> result = new ArrayList<>(); if(userId != 1L){ // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } } List<TTask> taskList = new ArrayList<>(); List<SysUser> sysUsers = new ArrayList<>(); if(query.getRankType() == 1){ sysUsers = sysUserService.selectListByDeptId(deptId); } if (deptType == 1) { // 项目部人员 List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); List<TTask> taskList = new ArrayList<>(); List<SysUser> sysUsers = new ArrayList<>(); if(query.getRankType() == 1){ sysUsers = sysUserService.selectListByDeptId(deptId); } if (deptType == 1) { // 项目部人员 if(CollectionUtils.isEmpty(query.getProjectId())){ List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); } }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId) .between(TTask::getCreateTime, startTime, endTime)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } if(query.getRankType() == 1){ // 查询所有项目部的人员 List<SysUser> sysUserList = sysUserService.selectListByDeptType(1); if(!CollectionUtils.isEmpty(sysUserList)){ sysUsers.addAll(sysUserList); } } }else { if(query.getRankType() == 1){ // 查询所有片区 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .in(TProjectDept::getId, query.getProjectId())); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).distinct().collect(Collectors.toList()); List<SysUser> sysUserList = sysUserService.selectListByDeptIds(projectIds); sysUsers.addAll(sysUserList); } } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ return R.ok(); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .eq(TTaskDetail::getClearStatus, 1) .orderByDesc(TTaskDetail::getCreateTime)); if(query.getRankType() == 1){ // 用户排名 for (SysUser sysUser : sysUsers) { DataStatisticsRankVO dataStatisticsRankVO = new DataStatisticsRankVO(); dataStatisticsRankVO.setName(sysUser.getNickName()); List<String> taskIdList = tasks.stream().filter(task -> task.getPatrolInspector().equals(String.valueOf(sysUser.getUserId()))).map(TTask::getId).collect(Collectors.toList()); dataStatisticsRankVO.setTaskCount(taskIdList.size()); long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId())).count(); dataStatisticsRankVO.setQualifiedCount(count); } }else { // 查询项目部 List<TProjectDept> projectDepts; if(deptType == 1){ projectDepts = new ArrayList<>(); // 当前项目部 TProjectDept projectDept = projectDeptService.getById(deptId); projectDepts.add(projectDept); }else { if (CollectionUtils.isEmpty(query.getProjectId())){ projectDepts = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .eq(TProjectDept::getParentId, 0)); }else { List<TProjectDept> projectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .in(TProjectDept::getId, query.getProjectId())); List<String> parentIds = projectDeptList.stream().map(TProjectDept::getParentId).collect(Collectors.toList()); projectDepts = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .in(TProjectDept::getId, parentIds)); } } if(CollectionUtils.isEmpty(projectDepts)){ return R.ok(); } // 查询所有片区 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); for (TProjectDept projectDept : projectDepts) { DataStatisticsRankVO dataStatisticsRankVO = new DataStatisticsRankVO(); dataStatisticsRankVO.setName(projectDept.getProjectName()); List<String> taskIdList; if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); taskIdList = tasks.stream().filter(task -> projectIds.contains(task.getProjectId())).map(TTask::getId).collect(Collectors.toList()); } else { taskIdList = new ArrayList<>(); } dataStatisticsRankVO.setTaskCount(taskIdList.size()); if(CollectionUtils.isEmpty(taskIdList)){ dataStatisticsRankVO.setQualifiedCount(0L); continue; } long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId())).count(); dataStatisticsRankVO.setQualifiedCount(count); } } }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId)); // 超级管理员 // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } List<SysUser> sysUsers = new ArrayList<>(); if(query.getRankType() == 1){ sysUsers = sysUserService.selectListByDeptId(deptId); } // 超级管理员 查询所有的任务列表 List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .between(TTask::getImplementTime, startTime, endTime)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) @@ -467,7 +851,7 @@ .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); wrapper.in(TTask::getProjectId, projectIds); query.setProjectId(projectIds); } if(query.getRankType() == 1){ // 查询所有项目部的人员 @@ -489,53 +873,44 @@ } } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ return R.ok(); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .eq(TTaskDetail::getClearStatus, 1) .orderByDesc(TTaskDetail::getCreateTime)); List<DataStatisticsRankVO> result = new ArrayList<>(); if(query.getRankType() == 1){ // 用户排名 for (SysUser sysUser : sysUsers) { DataStatisticsRankVO dataStatisticsRankVO = new DataStatisticsRankVO(); dataStatisticsRankVO.setName(sysUser.getNickName()); List<String> taskIdList = tasks.stream().filter(task -> task.getPatrolInspector().equals(String.valueOf(sysUser.getUserId()))).map(TTask::getId).collect(Collectors.toList()); dataStatisticsRankVO.setTaskCount(taskIdList.size()); long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId())).count(); dataStatisticsRankVO.setQualifiedCount(count); // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } }else { // 查询项目部 List<TProjectDept> projectDepts; if(deptType == 1){ projectDepts = new ArrayList<>(); // 当前项目部 TProjectDept projectDept = projectDeptService.getById(deptId); projectDepts.add(projectDept); List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ return R.ok(); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .eq(TTaskDetail::getClearStatus, 1) .orderByDesc(TTaskDetail::getCreateTime)); if(query.getRankType() == 1){ // 用户排名 for (SysUser sysUser : sysUsers) { DataStatisticsRankVO dataStatisticsRankVO = new DataStatisticsRankVO(); dataStatisticsRankVO.setName(sysUser.getNickName()); List<String> taskIdList = tasks.stream().filter(task -> task.getPatrolInspector().equals(String.valueOf(sysUser.getUserId()))).map(TTask::getId).collect(Collectors.toList()); dataStatisticsRankVO.setTaskCount(taskIdList.size()); long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId())).count(); dataStatisticsRankVO.setQualifiedCount(count); } }else { // 超级管理员 查询所有项目部 List<TProjectDept> projectDepts; if (CollectionUtils.isEmpty(query.getProjectId())){ projectDepts = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) @@ -549,31 +924,31 @@ .eq(TProjectDept::getStatus, 1) .in(TProjectDept::getId, parentIds)); } } if(CollectionUtils.isEmpty(projectDepts)){ return R.ok(); } // 查询所有片区 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); for (TProjectDept projectDept : projectDepts) { DataStatisticsRankVO dataStatisticsRankVO = new DataStatisticsRankVO(); dataStatisticsRankVO.setName(projectDept.getProjectName()); List<String> taskIdList; if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); taskIdList = tasks.stream().filter(task -> projectIds.contains(task.getProjectId())).map(TTask::getId).collect(Collectors.toList()); } else { taskIdList = new ArrayList<>(); if(CollectionUtils.isEmpty(projectDepts)){ return R.ok(); } dataStatisticsRankVO.setTaskCount(taskIdList.size()); if(CollectionUtils.isEmpty(taskIdList)){ dataStatisticsRankVO.setQualifiedCount(0L); continue; // 查询所有片区 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); for (TProjectDept projectDept : projectDepts) { DataStatisticsRankVO dataStatisticsRankVO = new DataStatisticsRankVO(); dataStatisticsRankVO.setName(projectDept.getProjectName()); List<String> taskIdList; if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); taskIdList = tasks.stream().filter(task -> projectIds.contains(task.getProjectId())).map(TTask::getId).collect(Collectors.toList()); } else { taskIdList = new ArrayList<>(); } dataStatisticsRankVO.setTaskCount(taskIdList.size()); if(CollectionUtils.isEmpty(taskIdList)){ dataStatisticsRankVO.setQualifiedCount(0L); continue; } long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId())).count(); dataStatisticsRankVO.setQualifiedCount(count); } long count = taskDetails.stream().filter(taskDetail -> taskIdList.contains(taskDetail.getTaskId())).count(); dataStatisticsRankVO.setQualifiedCount(count); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/WorkbenchesController.java
@@ -1,26 +1,34 @@ package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.WorkBenchesDTO; import com.ruoyi.system.model.TDept; import com.ruoyi.system.model.TProjectDept; import com.ruoyi.system.model.*; import com.ruoyi.system.query.DataStatisticsQuery; import com.ruoyi.system.query.TaskSituationQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.system.DeptNoLimitChildVO; import com.ruoyi.system.vo.system.DeptNoLimitParentVO; import com.ruoyi.system.vo.system.DeptNoLimitVO; import com.ruoyi.system.vo.system.WorkBenchesVO; import com.ruoyi.system.vo.system.*; import com.ruoyi.web.util.OssUploadUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; /** @@ -36,50 +44,27 @@ @RequestMapping("/workbenches") public class WorkbenchesController { @Resource private TTaskCleanService taskCleanerService; @Resource private TTaskDetailService taskDetailService; private TTaskCleanService taskCleanService; @Resource private TLocationTypeService locationTypeService; @Resource private TLocationService locationService; @Resource private TProjectDeptService projectDeptService; @Resource private TTaskDetailService tTaskDetailService; @Resource private TDeptService deptService; @Resource private ISysUserService sysUserService; @Resource private ISysRoleService roleService; private TokenService tokenService; @Resource private TDictDataService dictDataService; @Resource private TCleanerService cleanerService; @Resource private TLeaveService leaveService; @Resource private TLeaveAuditService leaveAuditService; @Resource private TokenService tokenService; @Resource private TAppealService appealService; @Resource private TInspectorService inspectorService; @Resource private TFeedbackService feedbackService; @Resource private TProblemEscalationService problemEscalationService; @PostMapping("/data") @ApiOperation(value = "工作台", tags = "工作台") public R<WorkBenchesVO> data(@RequestBody WorkBenchesDTO dto) { return R.ok(); } @ApiOperation(value = "查询部门 项目部列表 不分页") @GetMapping(value = "/listDepts") @@ -118,5 +103,983 @@ } return R.ok(res); } @ApiOperation(value = "查询片区") @GetMapping(value = "/queryProject") public R<List<TProjectDept>> queryProject() { Integer deptType = tokenService.getLoginUser().getUser().getDeptType(); String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); List<TProjectDept> projectDeptList = new ArrayList<>(); if(userId != 1L){ if (deptType == 1) { // 查询片区 TProjectDept projectDept = projectDeptService.getById(deptId); // 查询项目部 TProjectDept parent = projectDeptService.getById(projectDept.getParentId()); List<TProjectDept> children = new ArrayList<>(); children.add(projectDept); parent.setChildren(children); projectDeptList.add(parent); }else { projectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus,1) .eq(TProjectDept::getParentId,0)); // 查询片区 projectDeptList.forEach(projectDept -> { List<TProjectDept> children = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getParentId, projectDept.getId())); projectDept.setChildren(children); }); } }else { projectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus,1) .eq(TProjectDept::getParentId,0)); // 查询片区 projectDeptList.forEach(projectDept -> { List<TProjectDept> children = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getParentId, projectDept.getId())); projectDept.setChildren(children); }); } return R.ok(projectDeptList); } @ApiOperation(value = "通过片区id查询点位类型") @GetMapping(value = "/queryLocationByProjectId") public R<List<TLocationType>> queryLocationByProjectId() { List<TLocationType> locationTypes = locationTypeService.list(); return R.ok(locationTypes); } @ApiOperation(value = "顶部数量统计") @PostMapping(value = "/topQuantityStatistics") public R<Map<String, Object>> topQuantityStatistics(@RequestBody DataStatisticsQuery query) { Map<String, Object> map = new HashMap<>(); Integer deptType = tokenService.getLoginUser().getUser().getDeptType(); String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); LambdaQueryWrapper<TTask> wrapper = new LambdaQueryWrapper<>(); List<TTask> list; if (userId != 1L) { // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } map.put("totalLocationNum", locationList.size()); } List<TTask> taskList = new ArrayList<>(); if (deptType == 1) { // 项目部人员 if(CollectionUtils.isEmpty(query.getProjectId())){ List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); } }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); // 查询点位数 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getProjectId, query.getProjectId())); map.put("totalLocationNum", locationList.size()); } list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } }else { // 超级管理员 // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } map.put("totalLocationNum", locationList.size()); } // 超级管理员 查询所有的任务列表 List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getProjectId, query.getProjectId())); map.put("totalLocationNum", locationList.size()); } list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } } // 查询任务相关数据 // 总计任务数 map.put("totalTaskNum", list.size()); // 今日任务数 map.put("todayTaskNum", list.stream().filter(tTask -> tTask.getImplementTime().toLocalDate().isEqual(LocalDate.now())).count()); // 待执行任务数 map.put("waitTaskNum", list.stream().filter(tTask -> tTask.getStatus() == 1).count()); // 总计员工数 Integer totalEmployeeNum = sysUserService.selectUserCount(query.getProjectId(),deptType); if (deptType != 1) { totalEmployeeNum = totalEmployeeNum + 1; } map.put("totalEmployeeNum", totalEmployeeNum); // 今日请假员工数量 List<TLeave> leaves = leaveService.list(Wrappers.lambdaQuery(TLeave.class) .le(TLeave::getStartTime, LocalDate.now()) .ge(TLeave::getEndTime, LocalDate.now()) .eq(TLeave::getAuditStatus, 2)); if(!CollectionUtils.isEmpty(leaves)){ map.put("todayLeaveNum", leaves.size()); }else { map.put("todayLeaveNum", 0); } // 总计保洁员数 long totalCleanerNum = cleanerService.count(Wrappers.lambdaQuery(TCleaner.class) .in(TCleaner::getProjectId, query.getProjectId())); map.put("totalCleanerNum", totalCleanerNum); return R.ok(map); } @ApiOperation(value = "任务情况") @PostMapping(value = "/taskSituation") public R<TaskSituationVO> taskSituation(@RequestBody TaskSituationQuery query) { Integer deptType = tokenService.getLoginUser().getUser().getDeptType(); String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); TaskSituationVO taskSituationVO = new TaskSituationVO(); LambdaQueryWrapper<TTask> wrapper = new LambdaQueryWrapper<>(); if(StringUtils.isEmpty(query.getStartTime()) || StringUtils.isEmpty(query.getEndTime())){ LocalDate now = LocalDate.now(); String startTime = now.minusDays(6) + " 00:00:00"; String endTime = now + " 23:59:59"; query.setStartTime(startTime); query.setEndTime(endTime); }else { query.setStartTime(query.getStartTime() + " 00:00:00"); query.setEndTime(query.getEndTime() + " 23:59:59"); } wrapper.between(TTask::getImplementTime, query.getStartTime(), query.getEndTime()); List<TTask> list; if (userId != 1L) { // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } List<TTask> taskList = new ArrayList<>(); if (deptType == 1) { // 项目部人员 if(CollectionUtils.isEmpty(query.getProjectId())){ List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); } }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId) .between(TTask::getImplementTime, query.getStartTime(), query.getEndTime())); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } }else { // 超级管理员 // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } // 超级管理员 查询所有的任务列表 List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .between(TTask::getImplementTime, query.getStartTime(), query.getEndTime())); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } } // 任务总数 taskSituationVO.setTotalTaskNum(list.size()); List<TTask> result = list.stream().filter(task -> task.getStatus() == 6).collect(Collectors.toList()); // 已完成任务数 taskSituationVO.setCompletedTaskNum(result.size()); // 匹配任务详情查看合格数量 List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ taskSituationVO.setPassRate(BigDecimal.ZERO); return R.ok(taskSituationVO); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .orderByDesc(TTaskDetail::getCreateTime)); int qualifiedWarn = 0; for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ if(Objects.nonNull(tTaskDetail.getClearStatus()) && tTaskDetail.getClearStatus() == 1){ qualifiedWarn++; } } } taskSituationVO.setPassRate(new BigDecimal(qualifiedWarn).divide(new BigDecimal(tasks.size()), 2, RoundingMode.HALF_UP)); // 过滤每天的任务 LocalDateTime start = DateUtils.stringToLocalDateTime(query.getStartTime()); LocalDateTime end = DateUtils.stringToLocalDateTime(query.getEndTime()); long daysBetween = ChronoUnit.DAYS.between(start, end); List<TaskSituationDayVO> taskSituationDayVOList = new ArrayList<>(); LocalDateTime localDateTime = DateUtils.stringToLocalDateTime(query.getStartTime()); String format = null; for (long i = 0; i <= daysBetween; i++) { TaskSituationDayVO taskSituationDayVO = new TaskSituationDayVO(); if(i == 0){ format = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); }else { format = DateUtils.stringToLocalDate(format).plusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); } taskSituationDayVO.setTaskTime(format); String finalFormat = format; List<TTask> tTasks = list.stream().filter(task -> DateUtils.localDateTimeToString(task.getImplementTime()).contains(finalFormat)).collect(Collectors.toList()); // 任务数 taskSituationDayVO.setTaskNum(tTasks.size()); // 完成数 taskSituationDayVO.setCompletedNum(tTasks.stream().filter(task -> task.getStatus() == 6).collect(Collectors.toList()).size()); int qualifiedWarnChild = 0; for (TTask task : tTasks) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ if(Objects.nonNull(tTaskDetail.getClearStatus()) && tTaskDetail.getClearStatus() == 1){ qualifiedWarnChild++; } } } if(tTasks.isEmpty()){ taskSituationDayVO.setCompleteRate(BigDecimal.ZERO); }else { taskSituationDayVO.setCompleteRate(new BigDecimal(qualifiedWarnChild).divide(new BigDecimal(tTasks.size()), 2, RoundingMode.HALF_UP)); } taskSituationDayVOList.add(taskSituationDayVO); } taskSituationVO.setTaskSituationDayVO(taskSituationDayVOList); return R.ok(taskSituationVO); } @ApiOperation(value = "今日预警") @PostMapping(value = "/todayWarning") public R<List<TTask>> todayWarning(@RequestBody DataStatisticsQuery query) { Integer deptType = tokenService.getLoginUser().getUser().getDeptType(); String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); // 查询所有点位 List<TLocation> locations = locationService.list(); LambdaQueryWrapper<TTask> wrapper = new LambdaQueryWrapper<>(); String startTime = LocalDate.now() + " 00:00:00"; String endTime = LocalDate.now() + " 23:59:59"; wrapper.between(TTask::getImplementTime, startTime, endTime); if (userId != 1L) { // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } List<TTask> taskList = new ArrayList<>(); if (deptType == 1) { // 项目部人员 if(CollectionUtils.isEmpty(query.getProjectId())){ List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); } }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId) .between(TTask::getImplementTime, startTime, endTime)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> result = list.stream().filter(task -> task.getStatus() == 2).collect(Collectors.toList()); List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ for (TTask task : result) { TLocation tLocation = locations.stream().filter(location -> location.getId().equals(task.getLocationId())).findFirst().orElse(null); if(Objects.nonNull(tLocation)) { task.setLocationName(tLocation.getLocationName()); } } return R.ok(result); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .orderByDesc(TTaskDetail::getCreateTime)); for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ if(Objects.nonNull(tTaskDetail.getClearStatus()) && tTaskDetail.getClearStatus() == 2){ result.add(task); } } } for (TTask task : result) { TLocation tLocation = locations.stream().filter(location -> location.getId().equals(task.getLocationId())).findFirst().orElse(null); if(Objects.nonNull(tLocation)) { task.setLocationName(tLocation.getLocationName()); } } return R.ok(result); }else { // 超级管理员 // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } // 超级管理员 查询所有的任务列表 List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .between(TTask::getImplementTime, startTime, endTime)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> result = list.stream().filter(task -> task.getStatus() == 2).collect(Collectors.toList()); List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ for (TTask task : result) { TLocation tLocation = locations.stream().filter(location -> location.getId().equals(task.getLocationId())).findFirst().orElse(null); if(Objects.nonNull(tLocation)) { task.setLocationName(tLocation.getLocationName()); } } return R.ok(result); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .orderByDesc(TTaskDetail::getCreateTime)); for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ if(Objects.nonNull(tTaskDetail.getClearStatus()) && tTaskDetail.getClearStatus() == 2){ result.add(task); } } } for (TTask task : result) { TLocation tLocation = locations.stream().filter(location -> location.getId().equals(task.getLocationId())).findFirst().orElse(null); if(Objects.nonNull(tLocation)) { task.setLocationName(tLocation.getLocationName()); } } return R.ok(result); } } @ApiOperation(value = "待审核任务") @PostMapping(value = "/pendingAuditTasks") public R<List<TTask>> pendingAuditTasks(@RequestBody DataStatisticsQuery query) { Integer deptType = tokenService.getLoginUser().getUser().getDeptType(); String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); // 查询所有点位 List<TLocation> locations = locationService.list(); LambdaQueryWrapper<TTask> wrapper = new LambdaQueryWrapper<>(); if (userId != 1L) { // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } List<TTask> taskList = new ArrayList<>(); if (deptType == 1) { // 项目部人员 if(CollectionUtils.isEmpty(query.getProjectId())){ List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); } }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> result = list.stream().filter(task -> task.getStatus() == 3).collect(Collectors.toList()); for (TTask task : result) { TLocation tLocation = locations.stream().filter(location -> location.getId().equals(task.getLocationId())).findFirst().orElse(null); if(Objects.nonNull(tLocation)) { task.setLocationName(tLocation.getLocationName()); } } return R.ok(result); }else { // 超级管理员 // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } // 超级管理员 查询所有的任务列表 List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> result = list.stream().filter(task -> task.getStatus() == 3).collect(Collectors.toList()); for (TTask task : result) { TLocation tLocation = locations.stream().filter(location -> location.getId().equals(task.getLocationId())).findFirst().orElse(null); if(Objects.nonNull(tLocation)) { task.setLocationName(tLocation.getLocationName()); } } return R.ok(result); } } @ApiOperation(value = "保洁质量汇总") @PostMapping(value = "/cleaningQualitySummary") public R<Map<String, Object>> cleaningQualitySummary(@RequestBody DataStatisticsQuery query) { Map<String, Object> map = new HashMap<>(); Integer deptType = tokenService.getLoginUser().getUser().getDeptType(); String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); LambdaQueryWrapper<TTask> wrapper = new LambdaQueryWrapper<>(); if (userId != 1L) { // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } List<TTask> taskList = new ArrayList<>(); if (deptType == 1) { // 项目部人员 if(CollectionUtils.isEmpty(query.getProjectId())){ List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); } }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(map); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ map.put("unqualifiedWarn", 0); map.put("qualifiedWarn", 0); return R.ok(map); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .orderByDesc(TTaskDetail::getCreateTime)); int unqualifiedWarn = 0; int qualifiedWarn = 0; for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ if(Objects.nonNull(tTaskDetail.getClearStatus())){ if(tTaskDetail.getClearStatus() == 2){ unqualifiedWarn++; }else { qualifiedWarn++; } }else { unqualifiedWarn++; } } } map.put("qualifiedWarn", qualifiedWarn); map.put("unqualifiedWarn", unqualifiedWarn); }else { // 超级管理员 // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } // 超级管理员 查询所有的任务列表 List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(map); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ map.put("unqualifiedWarn", 0); map.put("qualifiedWarn", 0); return R.ok(map); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .orderByDesc(TTaskDetail::getCreateTime)); int unqualifiedWarn = 0; int qualifiedWarn = 0; for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ if(Objects.nonNull(tTaskDetail.getClearStatus())){ if(tTaskDetail.getClearStatus() == 2){ unqualifiedWarn++; }else { qualifiedWarn++; } }else { unqualifiedWarn++; } } } map.put("unqualifiedWarn", unqualifiedWarn); map.put("qualifiedWarn", qualifiedWarn); } return R.ok(map); } @ApiOperation(value = "清洁不合格分析") @PostMapping(value = "/analysisUnqualifiedCleaning") public R<AnalysisUnqualifiedCleaningVO> analysisUnqualifiedCleaning(@RequestBody DataStatisticsQuery query) { Integer deptType = tokenService.getLoginUser().getUser().getDeptType(); String deptId = tokenService.getLoginUser().getUser().getDeptId(); Long userId = tokenService.getLoginUser().getUserId(); AnalysisUnqualifiedCleaningVO analysisUnqualifiedCleaningVO = new AnalysisUnqualifiedCleaningVO(); LambdaQueryWrapper<TTask> wrapper = new LambdaQueryWrapper<>(); if(userId != 1L){ // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } List<TTask> taskList = new ArrayList<>(); if (deptType == 1) { // 项目部人员 if(CollectionUtils.isEmpty(query.getProjectId())){ List<String> projectIds = new ArrayList<>(); projectIds.add(deptId); query.setProjectId(projectIds); } }else { // 公司人员 // 查询自己的任务列表 taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class) .eq(TTask::getPatrolInspector, userId)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ return R.ok(); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .eq(TTaskDetail::getClearStatus, 2) .orderByDesc(TTaskDetail::getCreateTime)); List<TTaskDetail> taskDetailList = new ArrayList<>(); for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ taskDetailList.add(tTaskDetail); } } analysisUnqualifiedCleaningVO.setTotal(taskDetailList.size()); // 查询所有的不合格原因 List<TDictData> dictDataList = dictDataService.list(Wrappers.lambdaQuery(TDictData.class) .eq(TDictData::getDataType, 2)); List<AnalysisUnqualifiedCleaningDetailVO> analysisUnqualifiedCleaningDetailVOS = new ArrayList<>(); for (TDictData tDictData : dictDataList) { List<TTaskDetail> tTaskDetails = taskDetailList.stream().filter(taskDetail -> taskDetail.getUnqualified().equals(tDictData.getId())).collect(Collectors.toList()); AnalysisUnqualifiedCleaningDetailVO analysisUnqualifiedCleaningDetailVO = new AnalysisUnqualifiedCleaningDetailVO(); analysisUnqualifiedCleaningDetailVO.setUnqualifiedName(tDictData.getDataContent()); analysisUnqualifiedCleaningDetailVO.setCount(tTaskDetails.size()); analysisUnqualifiedCleaningDetailVOS.add(analysisUnqualifiedCleaningDetailVO); } analysisUnqualifiedCleaningVO.setAnalysisUnqualifiedCleaningDetailVOS(analysisUnqualifiedCleaningDetailVOS); }else { // 超级管理员 // 查询点位类型 if(StringUtils.isNotEmpty(query.getLocationTypeId())){ // 查询点位 List<TLocation> locationList = locationService.list(Wrappers.lambdaQuery(TLocation.class) .in(TLocation::getLocationType, query.getLocationTypeId())); if(!CollectionUtils.isEmpty(locationList)){ List<String> locationIds = locationList.stream().map(TLocation::getId).collect(Collectors.toList()); wrapper.in(TTask::getLocationId, locationIds); } } // 超级管理员 查询所有的任务列表 List<TTask> taskList = taskCleanService.list(Wrappers.lambdaQuery(TTask.class)); if(CollectionUtils.isEmpty(query.getProjectId())){ // 查询所有项目部的任务列表 List<TProjectDept> tProjectDeptList = projectDeptService.list(Wrappers.lambdaQuery(TProjectDept.class) .eq(TProjectDept::getStatus, 1) .ne(TProjectDept::getParentId, 0)); if(!CollectionUtils.isEmpty(tProjectDeptList)){ List<String> projectIds = tProjectDeptList.stream().map(TProjectDept::getId).collect(Collectors.toList()); query.setProjectId(projectIds); } } // 查询片区 if(!CollectionUtils.isEmpty(query.getProjectId())){ wrapper.in(TTask::getProjectId, query.getProjectId()); } List<TTask> list = taskCleanService.list(wrapper); if(CollectionUtils.isEmpty(list)){ return R.ok(); } if(!CollectionUtils.isEmpty(taskList)){ list.addAll(taskList); } List<TTask> tasks = list.stream().filter(task -> task.getStatus() != 1 && task.getStatus() != 2).collect(Collectors.toList()); if(CollectionUtils.isEmpty(tasks)){ return R.ok(); } List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList()); List<TTaskDetail> taskDetails = tTaskDetailService.list(Wrappers.lambdaQuery(TTaskDetail.class) .in(TTaskDetail::getTaskId, taskIds) .eq(TTaskDetail::getClearStatus, 2) .orderByDesc(TTaskDetail::getCreateTime)); List<TTaskDetail> taskDetailList = new ArrayList<>(); for (TTask task : list) { TTaskDetail tTaskDetail = taskDetails.stream().filter(taskDetail -> taskDetail.getTaskId().equals(task.getId())).findFirst().orElse(null); if(Objects.nonNull(tTaskDetail)){ taskDetailList.add(tTaskDetail); } } analysisUnqualifiedCleaningVO.setTotal(taskDetailList.size()); // 查询所有的不合格原因 List<TDictData> dictDataList = dictDataService.list(Wrappers.lambdaQuery(TDictData.class) .eq(TDictData::getDataType, 2)); List<AnalysisUnqualifiedCleaningDetailVO> analysisUnqualifiedCleaningDetailVOS = new ArrayList<>(); for (TDictData tDictData : dictDataList) { List<TTaskDetail> tTaskDetails = taskDetailList.stream().filter(taskDetail -> taskDetail.getUnqualified().equals(tDictData.getId())).collect(Collectors.toList()); AnalysisUnqualifiedCleaningDetailVO analysisUnqualifiedCleaningDetailVO = new AnalysisUnqualifiedCleaningDetailVO(); analysisUnqualifiedCleaningDetailVO.setUnqualifiedName(tDictData.getDataContent()); analysisUnqualifiedCleaningDetailVO.setCount(tTaskDetails.size()); analysisUnqualifiedCleaningDetailVOS.add(analysisUnqualifiedCleaningDetailVO); } analysisUnqualifiedCleaningVO.setAnalysisUnqualifiedCleaningDetailVOS(analysisUnqualifiedCleaningDetailVOS); } return R.ok(analysisUnqualifiedCleaningVO); } } ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -40,8 +40,8 @@ //@Excel(name = "登录名称") @ApiModelProperty(value = "登录名称") private String userName; @TableField("dept_type") @ApiModelProperty(value = "部门类型 1项目部 2部门") @TableField("deptType") private Integer deptType; @TableField("code") @ApiModelProperty(value = "编号") ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -206,4 +206,5 @@ */ List<SysUser> selectListByDeptIds(@Param("projectIds")List<String> projectIds); Integer selectUserCount(@Param("projectIds")List<String> projectIds, @Param("deptType")Integer deptType); } ruoyi-system/src/main/java/com/ruoyi/system/model/TProjectDept.java
@@ -45,7 +45,7 @@ @TableField("status") private Integer status; // @TableField(exist = false) // private List<TProjectDept> children; @TableField(exist = false) private List<TProjectDept> children; } ruoyi-system/src/main/java/com/ruoyi/system/model/TTask.java
@@ -80,4 +80,7 @@ @ApiModelProperty(value = "模板id 日常任务存储") @TableField("user_id") private Long userId; @ApiModelProperty(value = "点位名称") @TableField(exist = false) private String locationName; } ruoyi-system/src/main/java/com/ruoyi/system/query/DataStatisticsRankQuery.java
@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.List; @@ -17,12 +18,15 @@ @ApiModelProperty(value = "点位类型id") private String locationTypeId; @NotNull(message = "排名类型不能为空") @ApiModelProperty(value = "排名类型 1=人员排名 2=项目部排名") private Integer rankType; @NotNull(message = "时间类型不能为空") @ApiModelProperty(value = "时间类型 1=月排行 2=季度排行 3=年度排行") private Integer timeType; @NotNull(message = "排序类型不能为空") @ApiModelProperty(value = "排序类型 1=升序 2=降序") private Integer sortType; ruoyi-system/src/main/java/com/ruoyi/system/query/TaskSituationQuery.java
New file @@ -0,0 +1,26 @@ package com.ruoyi.system.query; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.util.List; @Data @ApiModel(value = "任务情况查询参数Query") public class TaskSituationQuery implements Serializable { @ApiModelProperty(value = "片区id") private List<String> projectId; @ApiModelProperty(value = "点位类型id") private String locationTypeId; @ApiModelProperty(value = "开始时间 yyyy-MM-dd") private String startTime; @ApiModelProperty(value = "结束时间") private String endTime; } ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -291,4 +291,12 @@ PageInfo<TaskFinishListVO> pageListReport(DataReportQuery dataReportQuery); /** * 查询部门类型下的人员数量 * @param projectId * @param deptType * @return */ Integer selectUserCount(List<String> projectId, Integer deptType); } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -759,6 +759,11 @@ } @Override public Integer selectUserCount(List<String> projectId, Integer deptType) { return userMapper.selectUserCount(projectId,deptType); } @Override public SysUser selectByPhone(String phonenumber) { return userMapper.selectByPhone(phonenumber); } ruoyi-system/src/main/java/com/ruoyi/system/vo/system/TaskSituationDayVO.java
New file @@ -0,0 +1,26 @@ package com.ruoyi.system.vo.system; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; @Data @ApiModel(value = "任务情况每日VO") public class TaskSituationDayVO implements Serializable { @ApiModelProperty(value = "时间") private String taskTime; @ApiModelProperty(value = "任务数") private Integer taskNum; @ApiModelProperty(value = "完成数") private Integer completedNum; @ApiModelProperty(value = "完成率") private BigDecimal completeRate; } ruoyi-system/src/main/java/com/ruoyi/system/vo/system/TaskSituationVO.java
New file @@ -0,0 +1,27 @@ package com.ruoyi.system.vo.system; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; import java.util.List; @Data @ApiModel(value = "任务情况VO") public class TaskSituationVO implements Serializable { @ApiModelProperty(value = "总计任务数") private Integer totalTaskNum; @ApiModelProperty(value = "已完成任务数") private Integer completedTaskNum; @ApiModelProperty(value = "合格率") private BigDecimal passRate; @ApiModelProperty(value = "任务情况每日VO") private List<TaskSituationDayVO> taskSituationDayVO; } ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -28,6 +28,7 @@ <result property="businessDeptId" column="business_dept_id" /> <result property="roleName" column="role_name" /> <result property="code" column="code" /> <result property="deptType" column="deptType" /> <association property="dept" javaType="SysDept" resultMap="deptResult" /> <collection property="roles" javaType="java.util.List" resultMap="RoleResult" /> </resultMap> @@ -53,7 +54,7 @@ <sql id="selectUserVo"> select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.business_dept_id, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,u.deptType as deptType, r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.code from sys_user u left join sys_dept d on u.dept_id = d.dept_id @@ -308,14 +309,26 @@ u.login_date AS loginDate, u.create_by AS createBy, u.create_time AS createTime, u.remark AS remark,u.templateId from sys_user u where u.status = 0 and u.del_flag = 0 <if test="projectIds != null and projectIds.size() > 0"> and u.dept_id in and u.deptId in <foreach item="item" collection="projectIds" open="(" separator="," close=")"> #{item} </foreach> </if> </select> <select id="selectUserCount" resultType="java.lang.Integer"> select count(1) from sys_user where status = 0 and del_flag = 0 <if test="deptType != null"> and deptType = #{deptType} </if> <if test="projectIds != null and projectIds.size() > 0"> and deptId in <foreach item="item" collection="projectIds" open="(" separator="," close=")"> #{item} </foreach> </if> </select> <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId"> <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId"> insert into sys_user( <if test="userId != null and userId != 0">user_id,</if> <if test="deptId != null and deptId != 0">dept_id,</if>