无关风月
3 天以前 245e62f87e29b22b1824d5361d073acaa06ceed9
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java
@@ -24,6 +24,7 @@
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -71,6 +72,8 @@
    private TTaskDetailService tTaskDetailService;
    @Resource
    private TDeptService deptService;
    @Resource
    private TTemplateCountService templateCountService;
    @Resource
    private ISysUserService sysUserService;
    @Resource
@@ -167,6 +170,12 @@
            TTemplate tTemplate = templates.stream().filter(e -> e.getId().equals(record.getTemplateId())).findFirst().orElse(null);
            record.setNum1(1);
            if(Objects.nonNull(tTemplate)){
                TTemplateCount templateCount = templateCountService.lambdaQuery().eq(TTemplateCount::getUserId, record.getUserId())
                        .eq(TTemplateCount::getTemplateId, tTemplate.getId())
                        .orderByDesc(TTemplateCount::getCreateTime).last("limit 1").one();
                if (templateCount!=null){
                    record.setNum1(templateCount.getTaskCount());
                }
                // todo 应生成计划数
                LocalDateTime createTime = tTemplate.getCreateTime();
                // 转化为yyyy-MM-dd字符串
@@ -202,7 +211,8 @@
                    record.setTemplateDate(stringBuilder.toString());
                }
            }
            if (record.getNum2() != 0) {
            if (record.getNum1() != 0) {
                record.setNum4(new BigDecimal((double) record.getNum2() / (double) record.getNum1() * 100).setScale(2, RoundingMode.HALF_DOWN));
            } else {
                record.setNum4(new BigDecimal(0));
@@ -375,6 +385,9 @@
        }
        List<ProjectDeptDetailsVO> res = new ArrayList<>();
        List<TTask> tasks = taskCleanerService.list(tTaskLambdaQueryWrapper);
        if(CollectionUtils.isEmpty(tasks)){
            return R.ok(res);
        }
        List<TTaskDetail> taskDetails = taskDetailService.lambdaQuery().orderByDesc(BaseModel::getCreateTime).list();
        List<String> collect = tasks.stream().map(TTask::getProjectId).distinct().collect(Collectors.toList());
        List<TProjectDept> projectDepts = projectDeptService.list();
@@ -777,7 +790,7 @@
            patrolInspectorVO.setTotal(taskList.size());
            patrolInspectorVO.setNum1(clearStatus1.size());
            patrolInspectorVO.setNum2(clearStatus2.size());
            patrolInspectorVO.setNum3(clearStatus1.size()+clearStatus2.size()!=0?
            patrolInspectorVO.setNum3(!clearStatus1.isEmpty() ?
                    (new BigDecimal(clearStatus1.size()).add(new BigDecimal(clearStatus2.size())))
                            .divide(new BigDecimal(clearStatus1.size()), 2, RoundingMode.HALF_DOWN)
                            .multiply(new BigDecimal(100)):BigDecimal.ZERO);
@@ -793,11 +806,11 @@
            patrolInspectorVO.setNum6(status3.size());
            patrolInspectorVO.setNum7(status4.size());
            patrolInspectorVO.setNum8(status5.size());
            patrolInspectorVO.setNum9(!status5.isEmpty()?new BigDecimal(status5.size())
            patrolInspectorVO.setNum9(!status5.isEmpty()||!status4.isEmpty()?new BigDecimal(status5.size())
                    .divide(new BigDecimal(status4.size()).add(new BigDecimal(status5.size())),2,RoundingMode.HALF_DOWN)
                    .multiply(new BigDecimal(100)):BigDecimal.ZERO);
            patrolInspectorVO.setNum10(status6.size());
            patrolInspectorVO.setNum11(!status6.isEmpty()?new BigDecimal(status6.size()).divide(new BigDecimal(taskList.size()),2,RoundingMode.HALF_DOWN):BigDecimal.ZERO);
            patrolInspectorVO.setNum11(!taskList.isEmpty()?new BigDecimal(status6.size()).divide(new BigDecimal(taskList.size()),2,RoundingMode.HALF_DOWN):BigDecimal.ZERO);
            List<TLeave> collect1 = leaves.stream().filter(e -> e.getLeavePerson().equals(sysUser.getUserId()+"")).collect(Collectors.toList());
            patrolInspectorVO.setNum12(collect1.size());
            res.add(patrolInspectorVO);
@@ -894,7 +907,7 @@
            patrolInspectorVO.setTotal(taskList.size());
            patrolInspectorVO.setNum1(clearStatus1.size());
            patrolInspectorVO.setNum2(clearStatus2.size());
            patrolInspectorVO.setNum3(clearStatus1.size()+clearStatus2.size()!=0?
            patrolInspectorVO.setNum3(!clearStatus1.isEmpty() ?
                    (new BigDecimal(clearStatus1.size()).add(new BigDecimal(clearStatus2.size())))
                            .divide(new BigDecimal(clearStatus1.size()), 2, RoundingMode.HALF_DOWN)
                            .multiply(new BigDecimal(100)):BigDecimal.ZERO);
@@ -910,11 +923,11 @@
            patrolInspectorVO.setNum6(status3.size());
            patrolInspectorVO.setNum7(status4.size());
            patrolInspectorVO.setNum8(status5.size());
            patrolInspectorVO.setNum9(!status5.isEmpty()?new BigDecimal(status5.size())
            patrolInspectorVO.setNum9(!status5.isEmpty()||!status4.isEmpty()?new BigDecimal(status5.size())
                    .divide(new BigDecimal(status4.size()).add(new BigDecimal(status5.size())),2,RoundingMode.HALF_DOWN)
                    .multiply(new BigDecimal(100)):BigDecimal.ZERO);
            patrolInspectorVO.setNum10(status6.size());
            patrolInspectorVO.setNum11(!status6.isEmpty()?new BigDecimal(status6.size()).divide(new BigDecimal(taskList.size()),2,RoundingMode.HALF_DOWN):BigDecimal.ZERO);
            patrolInspectorVO.setNum11(!taskList.isEmpty()?new BigDecimal(status6.size()).divide(new BigDecimal(taskList.size()),2,RoundingMode.HALF_DOWN):BigDecimal.ZERO);
            List<TLeave> collect1 = leaves.stream().filter(e -> e.getLeavePerson().equals(sysUser.getUserId()+"")).collect(Collectors.toList());
            patrolInspectorVO.setNum12(collect1.size());
            res.add(patrolInspectorVO);
@@ -1018,11 +1031,11 @@
            inspectorVO.setNum1(status1.size());
            inspectorVO.setNum2(status2.size());
            inspectorVO.setNum3(!status1.isEmpty()?new BigDecimal(status1.size()).divide(new BigDecimal(status2.size()+status1.size()),2,RoundingMode.HALF_DOWN).multiply(new BigDecimal(100)):BigDecimal.ZERO);
            inspectorVO.setNum3(!status1.isEmpty()||!status2.isEmpty()?new BigDecimal(status1.size()).divide(new BigDecimal(status2.size()+status1.size()),2,RoundingMode.HALF_DOWN).multiply(new BigDecimal(100)):BigDecimal.ZERO);
            inspectorVO.setNum4(status4.size());
            inspectorVO.setNum5(status5.size());
            inspectorVO.setNum6(status6.size());
            inspectorVO.setNum7(!status6.isEmpty()?new BigDecimal(status6.size()).divide(new BigDecimal(status5.size()+status6.size()),2,RoundingMode.HALF_DOWN).multiply(new BigDecimal(100)):new BigDecimal(0));
            inspectorVO.setNum7(!status6.isEmpty()||!status5.isEmpty()?new BigDecimal(status6.size()).divide(new BigDecimal(status5.size()+status6.size()),2,RoundingMode.HALF_DOWN).multiply(new BigDecimal(100)):new BigDecimal(0));
            res.add(inspectorVO);
        }
        return R.ok(res);