From 2cf1565485060fd56e1f1f1cffbba7a4d70d42a6 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期五, 11 四月 2025 11:06:22 +0800
Subject: [PATCH] 优化dnc,设备结构树查询,优化原有代码

---
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java |   42 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 36 insertions(+), 6 deletions(-)

diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
index 55e48fa..2518957 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
@@ -746,16 +747,14 @@
 	}
 
 	@Override
-	public List<UserSelector> selectOperatorList(String equipmentId, String productionId, String positionCode) {
+	public List<UserSelector> selectOperatorList(String equipmentCode, String productionId, String positionCode) {
 		LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
 		queryWrapper.eq(SysUser::getPost, positionCode);
-		if(StringUtils.isNotBlank(equipmentId)) {
-			queryWrapper.isNull(SysUser::getEquipmentIds);
-			queryWrapper.or().eq(SysUser::getEquipmentIds, "");
-			queryWrapper.or().like(SysUser::getEquipmentIds, equipmentId);
+		if(StringUtils.isNotBlank(equipmentCode)) {
+			queryWrapper.and(q -> q.isNull(SysUser::getEquipmentIds).or().eq(SysUser::getEquipmentIds, "").or().like(SysUser::getEquipmentIds, equipmentCode));
 		}
 		if(StringUtils.isNotBlank(productionId)) {
-			queryWrapper.exists("select 1 from mdc_user_production t where t.user_id=id and t.pro_id={0}", productionId);
+			queryWrapper.exists("select 1 from mdc_user_production t where t.user_id=sys_user.id and t.pro_id={0}", productionId);
 		}
 		queryWrapper.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0);
 		queryWrapper.eq(SysUser::getStatus, CommonConstant.DEL_FLAG_1);
@@ -764,4 +763,35 @@
 		List<UserSelector> collect = sysUsers.stream().map(user -> new UserSelector(user.getId(), user.getUsername(), user.getRealname())).collect(Collectors.toList());
 		return collect;
 	}
+
+	/**
+	 * 鏍规嵁鐢ㄦ埛鍚嶆壒閲忚幏鍙栫湡瀹炲鍚嶆槧灏�
+	 * @param userNames 鐢ㄦ埛鍚嶅垪琛�
+	 * @return 鐢ㄦ埛鍚�->鐪熷疄濮撳悕鐨勬槧灏勶紙涓嶅瓨鍦ㄦ椂鍊间负null锛�
+	 */
+	@Override
+	public Map<String, String> getUserRealNamesByUserNames(List<String> userNames) {
+		if (CollectionUtils.isEmpty(userNames)) {
+			return Collections.emptyMap();
+		}
+
+		// 鍘婚噸骞惰繃婊ょ┖鍊�
+		Set<String> uniqueNames = userNames.stream()
+				.filter(StringUtils::isNotBlank)
+				.collect(Collectors.toSet());
+		if (uniqueNames.isEmpty()) {
+			return Collections.emptyMap();
+		}
+
+		// 鎵归噺鏌ヨ锛堣嚜鍔ㄥ鐞咺N璇彞鍒嗙墖锛�
+		List<SysUser> users = userMapper.selectUsersByNames(new ArrayList<>(uniqueNames));
+
+		// 鏋勫缓鏄犲皠鍏崇郴
+		return users.stream()
+				.collect(Collectors.toMap(
+						SysUser::getUsername,
+						SysUser::getRealname,
+						(existing, replacement) -> existing // 閲嶅閿鐞�
+				));
+	}
 }

--
Gitblit v1.9.3