From ba69a4fb6db917d5e4d0fb14c37add8ee859b0e1 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 13 三月 2026 17:57:51 +0800
Subject: [PATCH] 1.耗材迁移 2.仓储物流新增字段(毛重,皮重,净重) 3.设备保养多选(多条定时任务)

---
 src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java |   80 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 69 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
index 0c00da7..c590ca0 100644
--- a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
@@ -1,9 +1,15 @@
 package com.ruoyi.device.service.impl;
 
+import com.alibaba.fastjson2.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.device.mapper.DeviceLedgerMapper;
 import com.ruoyi.device.mapper.MaintenanceTaskMapper;
+import com.ruoyi.device.pojo.DeviceLedger;
 import com.ruoyi.device.pojo.MaintenanceTask;
 import com.ruoyi.device.service.MaintenanceTaskService;
 import com.ruoyi.framework.web.domain.AjaxResult;
@@ -17,6 +23,7 @@
 
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author :yys
@@ -38,36 +45,87 @@
     @Autowired
     private MaintenanceTaskScheduler maintenanceTaskScheduler;
 
+    @Autowired
+    private DeviceLedgerMapper deviceLedgerMapper;
+
     @Override
-    public AjaxResult listPage(Page page, MaintenanceTask maintenanceTask) {
-        Page<MaintenanceTask> taskPage = maintenanceTaskMapper.selectPage(page, null);
-        // 2. 濡傛灉娌℃湁鏁版嵁锛岀洿鎺ヨ繑鍥炵┖鍒嗛〉
+    public AjaxResult listPage(Page<MaintenanceTask> page, MaintenanceTask maintenanceTask) {
+        // 鏌ヨ
+        LambdaQueryWrapper<MaintenanceTask> queryWrapper = new LambdaQueryWrapper<>();
+        if (maintenanceTask.getTaskName() != null) {
+            queryWrapper.like(MaintenanceTask::getTaskName, maintenanceTask.getTaskName());
+        }
+
+        Page<MaintenanceTask> taskPage = maintenanceTaskMapper.selectPage(page, queryWrapper);
+
         if (taskPage.getRecords().isEmpty()) {
             return AjaxResult.success(taskPage);
         }
 
-        // 3. 鏀堕泦鎵�鏈夐渶瑕佹煡璇㈢殑鐢ㄦ埛ID
+        //鏀堕泦鎵�鏈夐渶瑕佹煡璇㈢殑ID
         Set<Long> userIds = new HashSet<>();
+        Set<Long> allDeviceIds = new HashSet<>();
+        //璁惧ID鍒楄〃
+        Map<Long, List<Long>> taskDeviceIdMap = new HashMap<>();
 
-        // 鏀堕泦鐧昏浜篒D
-        taskPage.getRecords().forEach(task -> {
+        // 閬嶅巻浠诲姟锛屾敹闆嗙櫥璁颁汉ID鍜岃澶嘔D
+        for (MaintenanceTask task : taskPage.getRecords()) {
+            // 鏀堕泦鐧昏浜篒D
             if (task.getRegistrantId() != null) {
                 userIds.add(task.getRegistrantId());
             }
-        });
+
+            // 鏀堕泦璁惧ID骞惰В鏋�
+            if (StringUtils.isNotEmpty(task.getDeviceIds())) {
+                try {
+                    List<Long> deviceIds = JSON.parseArray(task.getDeviceIds(), Long.class);
+                    if (CollectionUtils.isNotEmpty(deviceIds)) {
+                        allDeviceIds.addAll(deviceIds);
+                        taskDeviceIdMap.put(task.getId(), deviceIds);
+                    }
+                } catch (Exception e) {
+                    log.error("瑙f瀽璁惧ID鍒楄〃澶辫触: taskId={}, deviceIds={}", task.getId(), task.getDeviceIds(), e);
+                }
+            }
+        }
 
         // 4. 鎵归噺鏌ヨ鐢ㄦ埛淇℃伅
         Map<Long, String> userNickNameMap = new HashMap<>();
         if (!userIds.isEmpty()) {
-            List<SysUser> users = sysUserMapper.selectUserByIds((new ArrayList<>(userIds)));
-            users.forEach(user -> userNickNameMap.put(user.getUserId(), user.getNickName()));
+            List<SysUser> users = sysUserMapper.selectUserByIds(new ArrayList<>(userIds));
+            if (CollectionUtils.isNotEmpty(users)) {
+                users.forEach(user -> userNickNameMap.put(user.getUserId(), user.getNickName()));
+            }
         }
-        taskPage.getRecords().forEach(task -> {
+
+        // 5. 鎵归噺鏌ヨ璁惧淇℃伅
+        Map<Long, String> deviceNameMap = new HashMap<>();
+        if (!allDeviceIds.isEmpty()) {
+            List<DeviceLedger> devices = deviceLedgerMapper.selectBatchIds(new ArrayList<>(allDeviceIds));
+            if (CollectionUtils.isNotEmpty(devices)) {
+                devices.forEach(device -> deviceNameMap.put(device.getId(), device.getDeviceName()));
+            }
+        }
+
+        // 6. 璁剧疆杩斿洖缁撴灉
+        for (MaintenanceTask task : taskPage.getRecords()) {
             // 璁剧疆鐧昏浜烘樀绉�
             if (task.getRegistrantId() != null) {
                 task.setRegistrant(userNickNameMap.getOrDefault(task.getRegistrantId(), "鏈煡鐢ㄦ埛"));
             }
-        });
+
+            // 璁剧疆璁惧鍚嶇О
+            List<Long> deviceIds = taskDeviceIdMap.get(task.getId());
+            if (CollectionUtils.isNotEmpty(deviceIds)) {
+                List<String> deviceNames = deviceIds.stream()
+                        .map(id -> deviceNameMap.getOrDefault(id, "鏈煡璁惧"))
+                        .collect(Collectors.toList());
+                task.setDeviceName(String.join(", ", deviceNames));
+            } else {
+                task.setDeviceName("鏃犺澶�");
+            }
+        }
+
         return AjaxResult.success(taskPage);
     }
 

--
Gitblit v1.9.3