From 8c627df4abacbe7397d0c1831f1a71c62ebe15b2 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期三, 15 十月 2025 10:45:33 +0800
Subject: [PATCH] yys 1.随机排产
---
main-business/src/main/java/com/ruoyi/business/service/impl/InspectionTaskServiceImpl.java | 73 ++++++++++++++++++++++++++++++++++--
1 files changed, 69 insertions(+), 4 deletions(-)
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/InspectionTaskServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/InspectionTaskServiceImpl.java
index 72f00bf..2c2400a 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/InspectionTaskServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/InspectionTaskServiceImpl.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.entity.StorageAttachment;
import com.ruoyi.basic.entity.StorageBlob;
+import com.ruoyi.basic.entity.Supply;
import com.ruoyi.basic.entity.dto.StorageBlobDTO;
import com.ruoyi.basic.mapper.StorageAttachmentMapper;
import com.ruoyi.basic.mapper.StorageBlobMapper;
@@ -15,9 +16,12 @@
import com.ruoyi.business.entity.InspectionTask;
import com.ruoyi.business.mapper.InspectionTaskMapper;
import com.ruoyi.business.service.InspectionTaskService;
+import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.file.MinioUtils;
+import com.ruoyi.system.mapper.SysUserMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -50,8 +54,10 @@
private final MinioUtils minioUtils;
+ private final SysUserMapper sysUserMapper;
+
@Override
- public IPage<InspectionTaskDto> selectInspectionTaskList(Page page, InspectionTaskDto inspectionTaskDto) {
+ public IPage<InspectionTaskDto> selectInspectionTaskList(Page<InspectionTask> page, InspectionTaskDto inspectionTaskDto) {
LambdaQueryWrapper<InspectionTask> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.orderByDesc(InspectionTask::getCreateTime);
IPage<InspectionTask> entityPage = inspectionTaskMapper.selectPage(page, queryWrapper);
@@ -61,8 +67,46 @@
return new Page<>(entityPage.getCurrent(), entityPage.getSize(), entityPage.getTotal());
}
// 鑾峰彇id闆嗗悎
- List<Long> ids = entityPage.getRecords().stream().map(InspectionTask::getId).collect(Collectors.toList());
+ List<Long> ids = entityPage.getRecords().stream().map(InspectionTask::getId).toList();
+ //鐧昏浜篿ds
+ List<Long> registrantIds = entityPage.getRecords().stream().map(InspectionTask::getRegistrantId).toList();
+ // 鎵归噺鏌ヨ鐧昏浜�
+ Map<Long, SysUser> sysUserMap;
+ if (!registrantIds.isEmpty()) {
+ List<SysUser> sysUsers = sysUserMapper.selectList(registrantIds);
+ sysUserMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, Function.identity()));
+ } else {
+ sysUserMap = new HashMap<>();
+ }
+ //宸℃浜篿ds
+ List<String> inspectorIds = entityPage.getRecords().stream().map(InspectionTask::getInspectorId).toList();
+ //鑾峰彇鎵�鏈変笉閲嶅鐨勭敤鎴稩D
+ Set<Long> allUserIds = entityPage.getRecords().stream()
+ .map(InspectionTask::getInspectorId) // 鑾峰彇"2,3"杩欐牱鐨勫瓧绗︿覆
+ .filter(StringUtils::isNotBlank)
+ .flatMap(idsStr -> Arrays.stream(idsStr.split(",")))
+ .map(idStr -> {
+ try {
+ return Long.parseLong(idStr.trim());
+ } catch (NumberFormatException e) {
+ return null;
+ }
+ })
+ .filter(Objects::nonNull)
+ .collect(Collectors.toSet());
+
+ // 浣跨敤SQL鎵归噺鏌ヨ鐢ㄦ埛淇℃伅
+ Map<Long, String> userIdToNameMap = allUserIds.isEmpty()
+ ? Collections.emptyMap()
+ : sysUserMapper.selectUsersByIds(new ArrayList<>(allUserIds))
+ .stream()
+ .collect(Collectors.toMap(
+ SysUser::getUserId,
+ SysUser::getNickName,
+ (existing, replacement) -> existing));
+
+ //澶勭悊闄勪欢
Map<Long, List<StorageAttachment>> attachmentsMap = storageAttachmentMapper.selectList(new LambdaQueryWrapper<StorageAttachment>().in(StorageAttachment::getRecordId, ids)
.eq(StorageAttachment::getRecordType, InspectionTasks.ordinal()))
.stream()
@@ -82,6 +126,27 @@
List<InspectionTaskDto> dtoList = entityPage.getRecords().stream().map(inspectionTask -> {
InspectionTaskDto dto = new InspectionTaskDto();
BeanUtils.copyProperties(inspectionTask, dto); // 澶嶅埗涓诲璞″睘鎬�
+
+ // 璁剧疆鐧昏浜�
+ SysUser sysUser = sysUserMap.get(inspectionTask.getRegistrantId());
+ if (sysUser != null) {
+ dto.setRegistrant(sysUser.getNickName());
+ }
+ // 澶勭悊宸℃浜哄悕绉�
+ if (StringUtils.isNotBlank(inspectionTask.getInspectorId())) {
+ String inspectorNames = Arrays.stream(inspectionTask.getInspectorId().split(","))
+ .map(String::trim)
+ .map(idStr -> {
+ try {
+ Long userId = Long.parseLong(idStr);
+ return userIdToNameMap.getOrDefault(userId, "鏈煡鐢ㄦ埛(" + idStr + ")");
+ } catch (NumberFormatException e) {
+ return "鏃犳晥ID(" + idStr + ")";
+ }
+ })
+ .collect(Collectors.joining(","));
+ dto.setInspector(inspectorNames);
+ }
// 鍒濆鍖栦笁涓檮浠跺垪琛�
dto.setBeforeProduction(new ArrayList<>());
@@ -120,6 +185,7 @@
// 7. 鏋勫缓杩斿洖鍒嗛〉瀵硅薄
IPage<InspectionTaskDto> resultPage = new Page<>();
+ BeanUtils.copyProperties(entityPage, resultPage);
resultPage.setRecords(dtoList);
return resultPage;
}
@@ -148,7 +214,6 @@
@Override
public int addOrEditInspectionTask(InspectionTaskDto inspectionTaskDto) {
- SecurityUtils.getLoginUser().getUserId();
InspectionTask inspectionTask = new InspectionTask();
BeanUtils.copyProperties(inspectionTaskDto, inspectionTask);
inspectionTask.setRegistrantId(SecurityUtils.getLoginUser().getUserId());
@@ -183,6 +248,6 @@
if (ids == null || ids.length == 0) {
return 0;
}
- return inspectionTaskMapper.deleteByIds(Arrays.asList(ids));
+ return inspectionTaskMapper.deleteByIds(Arrays.asList(ids));
}
}
--
Gitblit v1.9.3