无关风月
昨天 25b19e60e004290531f61fdf608d1adb5e531903
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);
        }
@@ -1089,48 +1092,50 @@
    @PostMapping(value = "/inspectorList")
    public R<List<InspectorVO>> inspectorList(@RequestBody InspectorQuery query) {
        List<SysUser> sysUsers = sysUserService.selectAllList();
        if (StringUtils.hasLength(query.getDeptName())){
        List<TTask> listAll = taskCleanerService.list();
        List<String> listAllTaskIds = listAll.stream().map(TTask::getId).collect(Collectors.toList());
        if (StringUtils.hasLength(query.getDeptName())) {
            List<String> projectIds = projectDeptService.lambdaQuery().like(TProjectDept::getProjectName, query.getDeptName()).list()
                    .stream().map(TProjectDept::getId).collect(Collectors.toList());
            List<String> deptIds = deptService.lambdaQuery().like(TDept::getDeptName, query.getDeptName()).list()
                    .stream().map(TDept::getId).collect(Collectors.toList());
            projectIds.addAll(deptIds);
            if (projectIds.isEmpty()){
            if (projectIds.isEmpty()) {
                return R.ok(new ArrayList<>());
            }
            if (StringUtils.hasLength(query.getPhonenumber())){
            if (StringUtils.hasLength(query.getPhonenumber())) {
                List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser ->
                        sysUser.getPhonenumber().equals(query.getPhonenumber())
                                && projectIds.contains(sysUser.getDeptId())
                ).map(SysUser::getUserId).collect(Collectors.toList());
                if (patrolInspectorIds.isEmpty()){
                if (patrolInspectorIds.isEmpty()) {
                    return R.ok(new ArrayList<>());
                }
                query.setPatrolInspectorIds(patrolInspectorIds);
            }
        }
        if (StringUtils.hasLength(query.getPhonenumber())){
        if (StringUtils.hasLength(query.getPhonenumber())) {
            List<Long> patrolInspectorIds = sysUsers.stream().filter(sysUser ->
                    sysUser.getPhonenumber().equals(query.getPhonenumber())
            ).map(SysUser::getUserId).collect(Collectors.toList());
            if (!query.getPatrolInspectorIds().isEmpty()){
            if (!query.getPatrolInspectorIds().isEmpty()) {
                // 取交集
                patrolInspectorIds = patrolInspectorIds.stream().filter(query.getPatrolInspectorIds()::contains).collect(Collectors.toList());
            }
            query.setPatrolInspectorIds(patrolInspectorIds);
            if (patrolInspectorIds.isEmpty()){
            if (patrolInspectorIds.isEmpty()) {
                return R.ok(new ArrayList<>());
            }
        }
        LambdaQueryWrapper<TInspector> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>();
        tTaskLambdaQueryWrapper.eq(TInspector::getAuditStatus,1);
        tTaskLambdaQueryWrapper.eq(TInspector::getAuditStatus, 1);
        tTaskLambdaQueryWrapper.isNotNull(TInspector::getClearStatus);
        if (StringUtils.hasLength(query.getStartTime())){
        if (StringUtils.hasLength(query.getStartTime())) {
            tTaskLambdaQueryWrapper.ge(TInspector::getCreateTime, query.getStartTime());
            tTaskLambdaQueryWrapper.le(TInspector::getCreateTime, query.getEndTime());
        }
        if(query.getPatrolInspectorIds()!=null){
            if (query.getPatrolInspectorIds().isEmpty()){
        if (query.getPatrolInspectorIds() != null) {
            if (query.getPatrolInspectorIds().isEmpty()) {
                List<Long> patrolInspectorIds = query.getPatrolInspectorIds();
                patrolInspectorIds.add(0L);
                query.setPatrolInspectorIds(patrolInspectorIds);
@@ -1145,85 +1150,91 @@
            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);
        }
        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);
@@ -1238,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模板
@@ -1293,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<>();
@@ -1360,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++;
@@ -1420,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);