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