From 1dfb91db022f6cfa4bcb9d953ca9aa8a503e1ca5 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期六, 12 七月 2025 11:47:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-system/src/main/java/com/ruoyi/system/model/TLocation.java | 3 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java | 322 ++++++++++++++++--------------- ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java | 17 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java | 37 +++ ruoyi-system/src/main/resources/mapper/system/TTaskMapper.xml | 29 ++ ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java | 105 +++++++-- ruoyi-system/src/main/java/com/ruoyi/system/model/TTask.java | 4 ruoyi-system/src/main/java/com/ruoyi/system/service/TTaskCleanService.java | 4 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTaskCleanServiceImpl.java | 6 ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java | 8 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTaskMapper.java | 3 ruoyi-common/src/main/java/com/ruoyi/common/utils/CodeGenerateUtils.java | 7 ruoyi-system/src/main/java/com/ruoyi/system/applet/dto/IndexDTO.java | 2 13 files changed, 353 insertions(+), 194 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 663930e..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 @@ -169,11 +169,11 @@ } 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){ + if (templateCount != null) { record.setNum1(templateCount.getTaskCount()); } // todo 应生成计划数 @@ -206,7 +206,7 @@ break; } } - LocalDateTime localDateTime = tTemplate.getCreateTime().plusDays(temp-1); + LocalDateTime localDateTime = tTemplate.getCreateTime().plusDays(temp - 1); stringBuilder.append(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); record.setTemplateDate(stringBuilder.toString()); } @@ -227,6 +227,7 @@ progressListVOPageInfo.setRecords(records); return R.ok(progressListVOPageInfo); } + @ApiOperation(value = "任务进度导出") @Log(title = "任务进度导出", businessType = BusinessType.OTHER) @PostMapping(value = "/taskProgressExport") @@ -385,7 +386,7 @@ } List<ProjectDeptDetailsVO> res = new ArrayList<>(); List<TTask> tasks = taskCleanerService.list(tTaskLambdaQueryWrapper); - if(CollectionUtils.isEmpty(tasks)){ + if (CollectionUtils.isEmpty(tasks)) { return R.ok(res); } List<TTaskDetail> taskDetails = taskDetailService.lambdaQuery().orderByDesc(BaseModel::getCreateTime).list(); @@ -430,8 +431,8 @@ 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())) + e.getProjectId().equals(projectDeptDetailsChildVO.getProjectId()) && + e.getLocationType().equals(locationTypeListByProjectVO.getId())) .map(TLocation::getId).collect(Collectors.toList()); if (locationIds.isEmpty()) { locationTypeListByProjectVO.setLocationNum(0); @@ -445,7 +446,7 @@ locationTypeListByProjectVOS1.add(temp); } List<TTask> taskList = tasks.stream().filter(e -> e.getProjectId().equals(projectDeptDetailsChildVO.getProjectId()) - ).collect(Collectors.toList()); + ).collect(Collectors.toList()); int total = taskList.size(); int num1 = 0; int num2 = 0; @@ -456,7 +457,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&&(tTask.getStatus()==5||tTask.getStatus()==6)){ + if (tTaskDetail != null && (tTask.getStatus() == 5 || tTask.getStatus() == 6)) { switch (tTaskDetail.getClearStatus()) { case 1: num1++; @@ -502,9 +503,10 @@ } 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<>(); @@ -556,7 +558,7 @@ LocationTypeListByProjectVO temp = new LocationTypeListByProjectVO(); BeanUtils.copyProperties(locationTypeListByProjectVO, temp); List<String> locationIds = locations.stream().filter(e -> - e.getProjectId().equals(projectDeptDetailsChildVO.getProjectId())&& + e.getProjectId().equals(projectDeptDetailsChildVO.getProjectId()) && e.getLocationType().equals(locationTypeListByProjectVO.getId())) .map(TLocation::getId).collect(Collectors.toList()); if (locationIds.isEmpty()) { @@ -582,7 +584,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&&(tTask.getStatus()==5||tTask.getStatus()==6)){ + if (tTaskDetail != null && (tTask.getStatus() == 5 || tTask.getStatus() == 6)) { switch (tTaskDetail.getClearStatus()) { case 1: num1++; @@ -640,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); @@ -719,89 +721,89 @@ 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()+" :00:00:00"); - tLeaveLambdaQueryWrapper.le(TLeave::getCreateTime, query.getEndTime()+" :23:59:59"); + 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<>()); } query.setDeptIds(projectIds); - if (StringUtils.hasLength(query.getPhonenumber())){ + if (StringUtils.hasLength(query.getPhonenumber())) { List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser -> 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())){ + 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()){ + 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().contains(query.getPhonenumber()) ).map(SysUser::getUserId).collect(Collectors.toList()); - if (query.getPatrolInspectorIds()!=null&&!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())){ + 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()){ + 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 (query.getDeptIds()!=null&&!query.getDeptIds().isEmpty()){ + 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()){ + 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<>()); } } List<PatrolInspectorVO> res = new ArrayList<>(); LambdaQueryWrapper<TTask> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); - if (StringUtils.hasLength(query.getStartTime())){ - tTaskLambdaQueryWrapper.ge(TTask::getImplementTime, query.getStartTime()+" :00:00:00"); - tTaskLambdaQueryWrapper.le(TTask::getImplementTime, query.getEndTime()+" :23:59:59"); + 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&& !query.getPatrolInspectorIds().isEmpty()){ + 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()); } @@ -813,39 +815,39 @@ 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()); - if (taskIds.isEmpty()){ + 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()); + 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()){ + if (taskIdsFinish.isEmpty()) { taskIdsFinish.add("-1"); } List<TTaskDetail> list = taskDetailService.lambdaQuery() .eq(TTaskDetail::getAuditStatus, 1) - .eq(TTaskDetail::getHandleType,1) + .eq(TTaskDetail::getHandleType, 1) .isNotNull(TTaskDetail::getClearStatus).orderByDesc(BaseModel::getCreateTime) - .in(!taskIds.isEmpty(), TTaskDetail::getTaskId,taskIdsFinish).list(); + .in(!taskIds.isEmpty(), TTaskDetail::getTaskId, taskIdsFinish).list(); list = new ArrayList<>(list.stream() .collect(Collectors.groupingBy( TTaskDetail::getTaskId, @@ -864,8 +866,8 @@ patrolInspectorVO.setNum2(clearStatus2.size()); 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); + .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()); @@ -878,106 +880,107 @@ patrolInspectorVO.setNum6(status3.size()); patrolInspectorVO.setNum7(status4.size()); patrolInspectorVO.setNum8(status5.size()); - patrolInspectorVO.setNum9(!status5.isEmpty()||!status4.isEmpty()?new BigDecimal(status5.size()) - .divide(new BigDecimal(status4.size()).add(new BigDecimal(status5.size())),2,RoundingMode.HALF_DOWN) - .multiply(new BigDecimal(100)):BigDecimal.ZERO); + patrolInspectorVO.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(!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.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.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()+" :00:00:00"); - tLeaveLambdaQueryWrapper.le(TLeave::getCreateTime, query.getEndTime()+" :23:59:59"); + 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()) { projectIds.add("-1"); } query.setDeptIds(projectIds); - 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.getNickName())){ + 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()){ + 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()!=null&&!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())){ + 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()){ + 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 (query.getDeptIds()!=null&&!query.getDeptIds().isEmpty()){ + 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()){ + 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); } } List<PatrolInspectorVO> res = new ArrayList<>(); LambdaQueryWrapper<TTask> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); - if (StringUtils.hasLength(query.getStartTime())){ - tTaskLambdaQueryWrapper.ge(TTask::getImplementTime, query.getStartTime()+" :00:00:00"); - tTaskLambdaQueryWrapper.le(TTask::getImplementTime, query.getEndTime()+" :23:59:59"); + 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&& !query.getPatrolInspectorIds().isEmpty()){ + 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()); } @@ -989,39 +992,39 @@ 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) + 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()); - if (taskIds.isEmpty()){ + 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) + List<String> taskIdsFinish = tasks.stream().filter(e -> + (e.getStatus() == 5 || e.getStatus() == 6) && - e.getPatrolInspector().equals(sysUser.getUserId()+"")).map(TTask::getId).collect(Collectors.toList()); + e.getPatrolInspector().equals(sysUser.getUserId() + "")).map(TTask::getId).collect(Collectors.toList()); - if (taskIdsFinish.isEmpty()){ + if (taskIdsFinish.isEmpty()) { taskIdsFinish.add("-1"); } List<TTaskDetail> list = taskDetailService.lambdaQuery() .eq(TTaskDetail::getAuditStatus, 1) - .eq(TTaskDetail::getHandleType,1) + .eq(TTaskDetail::getHandleType, 1) .isNotNull(TTaskDetail::getClearStatus).orderByDesc(BaseModel::getCreateTime) - .in(!taskIds.isEmpty(), TTaskDetail::getTaskId,taskIdsFinish).list(); + .in(!taskIds.isEmpty(), TTaskDetail::getTaskId, taskIdsFinish).list(); list = new ArrayList<>(list.stream() .collect(Collectors.groupingBy( TTaskDetail::getTaskId, @@ -1040,8 +1043,8 @@ patrolInspectorVO.setNum2(clearStatus2.size()); 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); + .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()); @@ -1054,12 +1057,12 @@ patrolInspectorVO.setNum6(status3.size()); patrolInspectorVO.setNum7(status4.size()); patrolInspectorVO.setNum8(status5.size()); - patrolInspectorVO.setNum9(!status5.isEmpty()||!status4.isEmpty()?new BigDecimal(status5.size()) - .divide(new BigDecimal(status4.size()).add(new BigDecimal(status5.size())),2,RoundingMode.HALF_DOWN) - .multiply(new BigDecimal(100)):BigDecimal.ZERO); + patrolInspectorVO.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(!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.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); } @@ -1091,48 +1094,48 @@ List<SysUser> sysUsers = sysUserService.selectAllList(); List<TTask> listAll = taskCleanerService.list(); List<String> listAllTaskIds = listAll.stream().map(TTask::getId).collect(Collectors.toList()); - 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())){ + 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().isEmpty()){ + if (query.getPatrolInspectorIds() != null) { + if (query.getPatrolInspectorIds().isEmpty()) { List<Long> patrolInspectorIds = query.getPatrolInspectorIds(); patrolInspectorIds.add(0L); query.setPatrolInspectorIds(patrolInspectorIds); @@ -1147,21 +1150,22 @@ 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()); } - List<TInspector> collect = inspectors.stream().filter(e -> listAllTaskIds.contains(e.getTaskId())).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()); @@ -1171,62 +1175,66 @@ inspectorVO.setNum1(status1.size()); inspectorVO.setNum2(status2.size()); - 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.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()||!status5.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.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().isEmpty()){ + if (query.getPatrolInspectorIds() != null) { + if (query.getPatrolInspectorIds().isEmpty()) { List<Long> patrolInspectorIds = query.getPatrolInspectorIds(); patrolInspectorIds.add(0L); query.setPatrolInspectorIds(patrolInspectorIds); @@ -1241,34 +1249,36 @@ 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()||!status2.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()||!status5.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模板 @@ -1296,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<>(); @@ -1363,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++; @@ -1423,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); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java index 70b9816..b7d84a6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTaskController.java @@ -36,6 +36,7 @@ import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import oshi.driver.mac.net.NetStat; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; @@ -63,6 +64,8 @@ private TNoticeService noticeService; @Resource private TNoticeSetService noticeSetService; + @Resource + private TEarlyWarningService earlyWarningService; @Resource private TTaskDetailService taskDetailService; @@ -206,6 +209,21 @@ tNotice.setDataId(task.getId()); tNotice.setNoticeSetType(noticeSet.getNoticeType()); if (dto.getAuditStatus()==2){ + if (StringUtils.hasLength(location.getUnqualifiedTaskId())){ + if (location.getUnqualifiedTaskId().split(",").length==2){ + // 已经两条不合格了 生成点位不合格预警记录 + location.setUnqualifiedTaskId(location.getUnqualifiedTaskId()+","+dto.getTaskId()); + TEarlyWarning tEarlyWarning = new TEarlyWarning(); + tEarlyWarning.setWarningType(2); + tEarlyWarning.setTaskId(location.getUnqualifiedTaskId()); + earlyWarningService.save(tEarlyWarning); + location.setUnqualifiedTaskId(""); + locationService.updateById(location); + } + }else{ + location.setUnqualifiedTaskId(dto.getTaskId()); + locationService.updateById(location); + } dto.setHandleType(3); // 将任务修改为待整改 task.setStatus(4); @@ -213,9 +231,24 @@ // 增加消息 tNotice.setNoticeType(1); tNotice.setNoticeContent("【"+location.getLocationName()+"】任务不合格,请重新上传!"); - }else{ - + if (dto.getClearStatus()==2){ + if (StringUtils.hasLength(location.getUnqualifiedTaskId())){ + if (location.getUnqualifiedTaskId().split(",").length==2){ + // 已经两条不合格了 生成点位不合格预警记录 + location.setUnqualifiedTaskId(location.getUnqualifiedTaskId()+","+dto.getTaskId()); + TEarlyWarning tEarlyWarning = new TEarlyWarning(); + tEarlyWarning.setWarningType(2); + tEarlyWarning.setTaskId(location.getUnqualifiedTaskId()); + earlyWarningService.save(tEarlyWarning); + location.setUnqualifiedTaskId(""); + locationService.updateById(location); + } + }else{ + location.setUnqualifiedTaskId(dto.getTaskId()); + locationService.updateById(location); + } + } dto.setHandleType(2); // 如果是初次审核就通过 将状态设置为已完成 List<TTaskDetail> list = tTaskDetailService.lambdaQuery() diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java index ed09dd1..79c63b8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java @@ -111,6 +111,14 @@ } } + /** + * 生成点位预警 + */ + // 每分钟执行一次 + public void earning() { + + } + public void createInspection(TTemplate template) { // 查询所有的模板详情 List<TTemplateDetail> list = templateDetailService.list(Wrappers.lambdaQuery(TTemplateDetail.class) diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java index 4d1bc33..1409ea0 100644 --- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java +++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java @@ -330,7 +330,9 @@ List<TLocation> locationList = locationService.list(); List<TLocationType> locationTypeList = locationTypeService.list(); - List<TTask> taskAll = taskCleanerService.lambdaQuery().eq(TTask::getPatrolInspector, userId).list(); + dto.setUserId(userId); + List<TTask> taskAll = taskCleanerService.indexTask(dto); +// List<TTask> taskAll = taskCleanerService.lambdaQuery().eq(TTask::getPatrolInspector, userId).list(); // 获取今天凌晨00:00:00 和今天23:59:59 类型为LocalDateTime LocalDateTime startOfToday = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); LocalDateTime endOfToday = LocalDateTime.of(LocalDate.now(), LocalTime.MAX); @@ -470,12 +472,13 @@ taskTodayVO.setLocationLat(tLocation.getLocationLat()); taskTodayVO.setLocationName(tLocation.getLocationName()); if(StringUtils.hasLength(dto.getLon())){ - Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1); - if (distance != null) { - taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN)); - } else { - taskTodayVO.setDistance(new BigDecimal("0")); - } + taskTodayVO.setDistance(tTask.getDistance().divide(new BigDecimal(1000),2, RoundingMode.HALF_DOWN)); +// Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1); +// if (distance != null) { +// taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN)); +// } else { +// taskTodayVO.setDistance(new BigDecimal("0")); +// } }else { taskTodayVO.setDistance(new BigDecimal("0")); } diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java index d5284d1..4360667 100644 --- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java +++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java @@ -562,16 +562,37 @@ for (SysUser sysUser : collect) { Long userRole1 = sysUserService.getUserRole(sysUser.getUserId()); SysRole sysRole1 = roleService.selectRoleById(userRole1); - +// if (sysRole1 != null && sysRole1.getRoleName().equals("项目部负责人")) { +// if (userDept.getId().equals(sysUser.getDeptId())){ +// LeaveAuditVO tLeaveAudit = new LeaveAuditVO(); +// tLeaveAudit.setAvatar(sysUser.getAvatar()); +// tLeaveAudit.setNickName(sysUser.getNickName()); +// res.setAuditPerson(tLeaveAudit); +// res.setAuditPersonId(sysUser.getUserId() + ""); +// break; +// } +// } if (sysRole1 != null && sysRole1.getRoleName().equals("项目部负责人")) { - if (userDept.getParentId().equals(sysUser.getDeptId())){ - LeaveAuditVO tLeaveAudit = new LeaveAuditVO(); - tLeaveAudit.setAvatar(sysUser.getAvatar()); - tLeaveAudit.setNickName(sysUser.getNickName()); - res.setAuditPerson(tLeaveAudit); - res.setAuditPersonId(sysUser.getUserId() + ""); - break; + if (!sysRole.getRoleName().contains("项目部助理")){ + if (userDept.getParentId().equals(sysUser.getDeptId())){ + LeaveAuditVO tLeaveAudit = new LeaveAuditVO(); + tLeaveAudit.setAvatar(sysUser.getAvatar()); + tLeaveAudit.setNickName(sysUser.getNickName()); + res.setAuditPerson(tLeaveAudit); + res.setAuditPersonId(sysUser.getUserId() + ""); + break; + } + }else{ + if (userDept.getId().equals(sysUser.getDeptId())){ + LeaveAuditVO tLeaveAudit = new LeaveAuditVO(); + tLeaveAudit.setAvatar(sysUser.getAvatar()); + tLeaveAudit.setNickName(sysUser.getNickName()); + res.setAuditPerson(tLeaveAudit); + res.setAuditPersonId(sysUser.getUserId() + ""); + break; + } } + } } } @@ -645,6 +666,13 @@ tLeaveAudit1.setAuditId(auditPerson.getUserId() + ""); tLeaveAudit1.setAuditType(1); leaveAuditService.save(tLeaveAudit1); + TLeaveAudit tLeaveAudit2 = new TLeaveAudit(); + tLeaveAudit2.setLeaveId(leaveDTO.getId()); + tLeaveAudit2.setAuditStatus(2); + tLeaveAudit2.setAuditId(user.getUserId() + "," + auditPerson.getUserId()); + tLeaveAudit2.setAuditType(2); + tLeaveAudit2.setAuditTime(LocalDateTime.now()); + leaveAuditService.save(tLeaveAudit2); } else if (!sysRole.getRoleName().equals("部门助理")) { // 审批人根据当前角色类型来 if (sysRole.getRoleName().contains("片区负责人") || sysRole.getRoleName().contains("组长")|| sysRole.getRoleName().contains("队长") @@ -657,25 +685,48 @@ SysRole sysRole1 = roleService.selectRoleById(userRole1); if (sysRole1 != null && sysRole1.getRoleName().equals("项目部负责人")) { - if (userDept.getParentId().equals(sysUser.getDeptId())){ - LeaveAuditVO tLeaveAudit = new LeaveAuditVO(); - tLeaveAudit.setAvatar(sysUser.getAvatar()); - tLeaveAudit.setNickName(sysUser.getNickName()); - TLeaveAudit tLeaveAudit1 = new TLeaveAudit(); - tLeaveAudit1.setLeaveId(leaveDTO.getId()); - tLeaveAudit1.setAuditStatus(1); - tLeaveAudit1.setAuditId(sysUser.getUserId() + ""); - tLeaveAudit1.setAuditType(1); - leaveAuditService.save(tLeaveAudit1); - TLeaveAudit tLeaveAudit2 = new TLeaveAudit(); - tLeaveAudit2.setLeaveId(leaveDTO.getId()); - tLeaveAudit2.setAuditStatus(2); - tLeaveAudit2.setAuditId(user.getUserId() + "," + sysUser.getUserId()); - tLeaveAudit2.setAuditType(2); - tLeaveAudit2.setAuditTime(LocalDateTime.now()); - leaveAuditService.save(tLeaveAudit2); - break; - } + if (!sysRole.getRoleName().contains("项目部助理")){ + if (userDept.getParentId().equals(sysUser.getDeptId())){ + LeaveAuditVO tLeaveAudit = new LeaveAuditVO(); + tLeaveAudit.setAvatar(sysUser.getAvatar()); + tLeaveAudit.setNickName(sysUser.getNickName()); + TLeaveAudit tLeaveAudit1 = new TLeaveAudit(); + tLeaveAudit1.setLeaveId(leaveDTO.getId()); + tLeaveAudit1.setAuditStatus(1); + tLeaveAudit1.setAuditId(sysUser.getUserId() + ""); + tLeaveAudit1.setAuditType(1); + leaveAuditService.save(tLeaveAudit1); + TLeaveAudit tLeaveAudit2 = new TLeaveAudit(); + tLeaveAudit2.setLeaveId(leaveDTO.getId()); + tLeaveAudit2.setAuditStatus(2); + tLeaveAudit2.setAuditId(user.getUserId() + "," + sysUser.getUserId()); + tLeaveAudit2.setAuditType(2); + tLeaveAudit2.setAuditTime(LocalDateTime.now()); + leaveAuditService.save(tLeaveAudit2); + break; + } + }else{ + if (userDept.getId().equals(sysUser.getDeptId())){ + LeaveAuditVO tLeaveAudit = new LeaveAuditVO(); + tLeaveAudit.setAvatar(sysUser.getAvatar()); + tLeaveAudit.setNickName(sysUser.getNickName()); + TLeaveAudit tLeaveAudit1 = new TLeaveAudit(); + tLeaveAudit1.setLeaveId(leaveDTO.getId()); + tLeaveAudit1.setAuditStatus(1); + tLeaveAudit1.setAuditId(sysUser.getUserId() + ""); + tLeaveAudit1.setAuditType(1); + leaveAuditService.save(tLeaveAudit1); + TLeaveAudit tLeaveAudit2 = new TLeaveAudit(); + tLeaveAudit2.setLeaveId(leaveDTO.getId()); + tLeaveAudit2.setAuditStatus(2); + tLeaveAudit2.setAuditId(user.getUserId() + "," + sysUser.getUserId()); + tLeaveAudit2.setAuditType(2); + tLeaveAudit2.setAuditTime(LocalDateTime.now()); + leaveAuditService.save(tLeaveAudit2); + break; + } + } + } } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/CodeGenerateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/CodeGenerateUtils.java index 43fdfb0..fe7d2df 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/CodeGenerateUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/CodeGenerateUtils.java @@ -69,7 +69,7 @@ dateTime = dateTime.substring(0); String timestampPart = "" + (Math.random() * 10000) * (System.currentTimeMillis() / 10000); timestampPart = timestampPart.replace(".", "").replace("E", ""); - timestampPart = timestampPart.substring(0, 0); + timestampPart = timestampPart.substring(0, 6); return dateTime + timestampPart; } /** @@ -89,7 +89,10 @@ } public static void main(String[] args) { - System.err.println(generateVolumeSn("2")); + for (int i = 0; i < 5; i++) { + System.err.println(generateVolumeSn()); + + } } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/applet/dto/IndexDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/applet/dto/IndexDTO.java index d77b697..978c0e0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/applet/dto/IndexDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/applet/dto/IndexDTO.java @@ -13,4 +13,6 @@ private String lon; @ApiModelProperty(value = "纬度") private String lat; + @ApiModelProperty(value = "用户id 前端忽略") + private Long userId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTaskMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTaskMapper.java index 25c5c91..7580118 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTaskMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTaskMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.system.applet.dto.IndexDTO; import com.ruoyi.system.applet.query.TaskUserListQuery; import com.ruoyi.system.applet.vo.TaskUserListVO; import com.ruoyi.system.model.TTask; @@ -43,4 +44,6 @@ List<ProgressListVO> taskProgressExport(@Param("query")TaskProgressQuery query); List<TLocationTaskListVO> pointInspectionHeatDetailTaskList(@Param("query")PointDetailQuery query, @Param("pageInfo")PageInfo<TLocationTaskListVO> pageInfo); + + List<TTask> indexTask(@Param("query") IndexDTO dto); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLocation.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLocation.java index 8c314db..96c9c17 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLocation.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLocation.java @@ -76,6 +76,9 @@ @ApiModelProperty(value = "点位纬度 终点") @TableField("location_lat_end") private String locationLatEnd; + @ApiModelProperty(value = "不合格任务id 用于生成点位不合格预警,多个逗号拼接") + @TableField("unqualified_task_id") + private String unqualifiedTaskId; @ApiModelProperty(value = "任务数量") @TableField(exist = false) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TTask.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TTask.java index 641564a..9b437ee 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TTask.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TTask.java @@ -10,6 +10,7 @@ import lombok.EqualsAndHashCode; import java.io.Serializable; +import java.math.BigDecimal; import java.time.LocalDateTime; /** @@ -47,6 +48,9 @@ @ApiModelProperty(value = "点位id") @TableField("location_id") private String locationId; + @ApiModelProperty(value = "距离 米") + @TableField(exist = false) + private BigDecimal distance; @ApiModelProperty(value = "巡检员id 对应sys_user表") @TableField("patrol_inspector") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TTaskCleanService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TTaskCleanService.java index b8542f2..b47279d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TTaskCleanService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TTaskCleanService.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.system.applet.dto.IndexDTO; import com.ruoyi.system.applet.query.TaskUserListQuery; import com.ruoyi.system.applet.vo.TaskUserListVO; import com.ruoyi.system.model.TTask; @@ -47,4 +48,7 @@ * @return */ PageInfo<TLocationTaskListVO> pointInspectionHeatDetailTaskList(PointDetailQuery query); + + List<TTask> indexTask(IndexDTO dto); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTaskCleanServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTaskCleanServiceImpl.java index bd54a6d..3e8c4ab 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTaskCleanServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTaskCleanServiceImpl.java @@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.BaseModel; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.system.applet.dto.IndexDTO; import com.ruoyi.system.applet.query.TaskUserListQuery; import com.ruoyi.system.applet.vo.TaskUserListVO; import com.ruoyi.system.mapper.*; @@ -198,5 +199,10 @@ return pageInfo; } + @Override + public List<TTask> indexTask(IndexDTO dto) { + return this.baseMapper.indexTask(dto); + } + } diff --git a/ruoyi-system/src/main/resources/mapper/system/TTaskMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTaskMapper.xml index cbedca2..9443e27 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TTaskMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TTaskMapper.xml @@ -242,5 +242,34 @@ </where> order by t1.implement_time desc </select> + <select id="indexTask" resultType="com.ruoyi.system.model.TTask"> + select t1.*, + ROUND( + 6378.138 * 2 * ASIN( + SQRT( + POW( + SIN( + ( + #{query.lat} * PI() / 180 - t2.location_lat * PI() / 180 + ) / 2 + ), + 2 + ) + COS(#{query.lat} * PI() / 180) * COS(t2.location_lat * PI() / 180) * POW( + SIN( + ( + #{query.lon} * PI() / 180 - t2.location_lon * PI() / 180 + ) / 2 + ), + 2 + ) + ) + ) * 1000 + ) AS distance + from t_task t1 + left join t_location t2 on t1.location_id = t2.id + where t1.`disabled` = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + + and t1.patrol_inspector = #{query.userId} + </select> </mapper> -- Gitblit v1.7.1