From bb1d7eeda426e66393cf4403cb3ef082db696bd9 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 07 八月 2026 15:42:19 +0800
Subject: [PATCH] feat(report): 新增会计报表功能并完善设备维护和首页统计

---
 src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
index 5826fa7..3335de3 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
@@ -67,6 +67,7 @@
         if (StringUtils.isNotBlank(inspectionTaskDto.getInspectionProject())) {
             queryWrapper.like(InspectionTask::getInspectionProject, inspectionTaskDto.getInspectionProject());
         }
+        queryWrapper.orderByDesc(InspectionTask::getCreateTime);
         IPage<InspectionTask> entityPage = inspectionTaskMapper.selectPage(page, queryWrapper);
 
         //  鏃犳暟鎹彁鍓嶈繑鍥�
@@ -186,9 +187,63 @@
         // 淇濆瓨鏂囦欢锛堝瓧娈典笉浼犲垯淇濈暀鍘嗗彶锛�
         saveInspectionAttachments(inspectionTask.getId(), inspectionTaskDto);
 
+        // 宸℃缁撴灉璁剧疆鍚庯紝鑷姩鏍囪涓哄凡瀹屾垚
+        if (StringUtils.isNotBlank(inspectionTaskDto.getInspectionResult())) {
+            InspectionTask statusUpdate = new InspectionTask();
+            statusUpdate.setId(inspectionTask.getId());
+            statusUpdate.setStatus(1);
+            inspectionTaskMapper.updateById(statusUpdate);
+        }
+
         return i;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int complete(Long id) {
+        InspectionTask task = inspectionTaskMapper.selectById(id);
+        if (task == null) {
+            throw new IllegalArgumentException("宸℃浠诲姟涓嶅瓨鍦�");
+        }
+        if (task.getStatus() != null && task.getStatus() == 1) {
+            throw new IllegalArgumentException("璇ュ贰妫�浠诲姟宸插畬鎴�");
+        }
+        task.setStatus(1);
+        if (task.getInspectionResult() == null) {
+            task.setInspectionResult("1");
+        }
+        return inspectionTaskMapper.updateById(task);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int batchComplete(String dateStr) {
+        if (StringUtils.isBlank(dateStr)) {
+            throw new IllegalArgumentException("鏃ユ湡鍙傛暟涓嶈兘涓虹┖");
+        }
+        java.time.LocalDate date = java.time.LocalDate.parse(dateStr);
+        java.time.LocalDateTime startOfDay = date.atStartOfDay();
+        java.time.LocalDateTime endOfDay = date.atTime(java.time.LocalTime.MAX);
+        List<InspectionTask> tasks = inspectionTaskMapper.selectList(
+                new LambdaQueryWrapper<InspectionTask>()
+                        .eq(InspectionTask::getStatus, 0)
+                        .ge(InspectionTask::getCreateTime, startOfDay)
+                        .le(InspectionTask::getCreateTime, endOfDay));
+        if (tasks.isEmpty()) {
+            throw new IllegalArgumentException("璇ユ棩鏈熶笅娌℃湁寰呭畬鎴愮殑宸℃璁板綍");
+        }
+        int count = 0;
+        for (InspectionTask task : tasks) {
+            task.setStatus(1);
+            if (task.getInspectionResult() == null) {
+                task.setInspectionResult("1");
+            }
+            inspectionTaskMapper.updateById(task);
+            count++;
+        }
+        return count;
+    }
+
     private void validateInspectionInput(InspectionTaskDto inspectionTaskDto, InspectionTask oldInspectionTask) {
         String inspectionResult = inspectionTaskDto.getInspectionResult();
         if (StringUtils.isBlank(inspectionResult) && oldInspectionTask != null) {

--
Gitblit v1.9.3