From 1729474b4c7ffacb1790bb70981e64e7744bffb2 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 26 一月 2026 17:51:06 +0800
Subject: [PATCH] feat: BOM导入模板下载接口,导入导出接口添加权限

---
 src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java |   33 +++++++++++++++++++++++++++++----
 1 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java
index 33c815e..6607d68 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.inspectiontask.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -47,7 +48,12 @@
     @Override
     public IPage<TimingTaskDto> selectTimingTaskList(Page<TimingTask> page, TimingTask timingTask) {
         // 1. 鍏堝垎椤垫煡璇㈠畾鏃朵换鍔℃暟鎹�
-        IPage<TimingTask> taskPage = timingTaskMapper.selectPage(page, null);
+        // 鏋勫缓鏌ヨ鏉′欢
+        LambdaQueryWrapper<TimingTask> queryWrapper = new LambdaQueryWrapper<>();
+        if (StringUtils.isNotBlank(timingTask.getTaskName())) {
+            queryWrapper.like(TimingTask::getTaskName, timingTask.getTaskName());
+        }
+        IPage<TimingTask> taskPage = timingTaskMapper.selectPage(page, queryWrapper);
 
         // 2. 濡傛灉娌℃湁鏁版嵁锛岀洿鎺ヨ繑鍥炵┖鍒嗛〉
         if (taskPage.getRecords().isEmpty()) {
@@ -66,6 +72,7 @@
 
         // 鏀堕泦宸℃浜篒D锛堝涓狪D浠ラ�楀彿鍒嗛殧锛�
         taskPage.getRecords().forEach(task -> {
+            task.setDateStr(task.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
             if (StringUtils.isNotBlank(task.getInspectorIds())) {
                 Arrays.stream(task.getInspectorIds().split(","))
                         .filter(StringUtils::isNotBlank)
@@ -118,7 +125,18 @@
     public int addOrEditTimingTask(TimingTaskDto timingTaskDto) throws SchedulerException {
         TimingTask timingTask = new TimingTask();
         BeanUtils.copyProperties(timingTaskDto, timingTask);
+        // 1. 瑙f瀽瀛楃涓蹭负 LocalDate锛堝彧鍖呭惈骞存湀鏃ワ級
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        LocalDate localDate = LocalDate.now();
+        if(StringUtils.isNotEmpty(timingTaskDto.getDateStr())){
+            localDate = LocalDate.parse(timingTaskDto.getDateStr(), formatter);
+        }
+        // 2. 鑾峰彇褰撳墠绯荤粺鐨� LocalTime锛堝寘鍚椂鍒嗙锛�
+        LocalTime currentTime = LocalTime.now();
 
+        // 3. 鍚堝苟 LocalDate 鍜屽綋鍓� LocalTime 涓� LocalDateTime
+        LocalDateTime localDateTime = LocalDateTime.of(localDate, currentTime);
+        timingTask.setCreateTime(localDateTime);
         // 璁剧疆鍒涘缓浜轰俊鎭拰榛樿鍊�
         if (Objects.isNull(timingTaskDto.getId())) {
             timingTask.setRegistrationDate(LocalDate.now());
@@ -127,7 +145,6 @@
             // 璁$畻棣栨鎵ц鏃堕棿
             LocalDateTime firstExecutionTime = calculateFirstExecutionTime(timingTask);
             timingTask.setNextExecutionTime(firstExecutionTime);
-
             int result = timingTaskMapper.insert(timingTask);
             if (result > 0) {
                 // 鏂板鎴愬姛鍚庢坊鍔犲埌璋冨害鍣�
@@ -135,6 +152,8 @@
             }
             return result;
         } else {
+
+
             int result = timingTaskMapper.updateById(timingTask);
             if (result > 0) {
                 // 鏇存柊鎴愬姛鍚庨噸鏂拌皟搴︿换鍔�
@@ -144,7 +163,7 @@
         }
     }
 
-    private LocalDateTime calculateFirstExecutionTime(TimingTask task) {
+    public LocalDateTime calculateFirstExecutionTime(TimingTask task) {
         // 鏍规嵁棰戠巼绫诲瀷鍜岃鎯呰绠楅娆℃墽琛屾椂闂�
         String frequencyType = task.getFrequencyType();
         if ("DAILY".equals(frequencyType)) {
@@ -444,7 +463,13 @@
 
     @Override
     public int delByIds(Long[] ids) {
-        return timingTaskMapper.deleteBatchIds(Arrays.asList(ids));
+        int i = timingTaskMapper.deleteBatchIds(Arrays.asList(ids));
+        if(i > 0){
+            for (Long id : ids) {
+                timingTaskScheduler.unscheduleTimingTask(id);
+            }
+        }
+        return i;
     }
 
 }

--
Gitblit v1.9.3