From 245e62f87e29b22b1824d5361d073acaa06ceed9 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 10 七月 2025 11:11:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java |   31 ++++++++++++++++++++++---------
 1 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java
index a95a03e..b0570e3 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ReportController.java
@@ -24,6 +24,7 @@
 import io.swagger.annotations.ApiOperation;
 import io.swagger.models.auth.In;
 import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -71,6 +72,8 @@
     private TTaskDetailService tTaskDetailService;
     @Resource
     private TDeptService deptService;
+    @Resource
+    private TTemplateCountService templateCountService;
     @Resource
     private ISysUserService sysUserService;
     @Resource
@@ -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);

--
Gitblit v1.7.1