diff --git a/klp-system/src/main/java/com/klp/system/service/ISysUserService.java b/klp-system/src/main/java/com/klp/system/service/ISysUserService.java index 7f7e7458..9eefe547 100644 --- a/klp-system/src/main/java/com/klp/system/service/ISysUserService.java +++ b/klp-system/src/main/java/com/klp/system/service/ISysUserService.java @@ -5,6 +5,7 @@ import com.klp.common.core.domain.entity.SysUser; import com.klp.common.core.page.TableDataInfo; import java.util.List; +import java.util.Map; /** * 用户 业务层 @@ -40,13 +41,8 @@ public interface ISysUserService { */ TableDataInfo selectUnallocatedList(SysUser user, PageQuery pageQuery); - /** - * 通过用户名查询用户 - * - * @param userName 用户名 - * @return 用户对象信息 - */ SysUser selectUserByUserName(String userName); + Map selectNickNameMapByUserNames(List userNames); /** * 通过手机号查询用户 diff --git a/klp-system/src/main/java/com/klp/system/service/impl/SysUserServiceImpl.java b/klp-system/src/main/java/com/klp/system/service/impl/SysUserServiceImpl.java index 4ad2f771..921fdb1d 100644 --- a/klp-system/src/main/java/com/klp/system/service/impl/SysUserServiceImpl.java +++ b/klp-system/src/main/java/com/klp/system/service/impl/SysUserServiceImpl.java @@ -36,6 +36,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.HashMap; +import java.util.stream.Collectors; /** * 用户 业务层处理 @@ -140,6 +142,18 @@ public class SysUserServiceImpl implements ISysUserService, UserService { return baseMapper.selectUserByUserName(userName); } + @Override + public Map selectNickNameMapByUserNames(List userNames) { + if (CollUtil.isEmpty(userNames)) { + return new HashMap<>(); + } + List users = baseMapper.selectList(new LambdaQueryWrapper() + .select(SysUser::getUserName, SysUser::getNickName) + .in(SysUser::getUserName, userNames) + .eq(SysUser::getDelFlag, UserConstants.USER_NORMAL)); + return users.stream().collect(Collectors.toMap(SysUser::getUserName, SysUser::getNickName, (a, b) -> a)); + } + /** * 通过手机号查询用户 * diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPendingActionVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPendingActionVo.java index 8eb493d3..5e7c8dfe 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPendingActionVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilPendingActionVo.java @@ -160,5 +160,8 @@ public class WmsCoilPendingActionVo extends BaseEntity implements Serializable { * 更新人昵称 */ private String updateByName; + + private String operatorByName; + } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPendingActionServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPendingActionServiceImpl.java index 54ee2404..681a897a 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPendingActionServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsCoilPendingActionServiceImpl.java @@ -19,9 +19,8 @@ import com.klp.domain.WmsCoilPendingAction; import com.klp.mapper.WmsCoilPendingActionMapper; import com.klp.service.IWmsCoilPendingActionService; -import java.util.List; -import java.util.Collection; -import java.util.Date; +import java.util.*; +import java.util.stream.Collectors; /** * 钢卷待操作Service业务层处理 @@ -52,14 +51,26 @@ public class WmsCoilPendingActionServiceImpl implements IWmsCoilPendingActionSer public TableDataInfo queryPageList(WmsCoilPendingActionBo bo, PageQuery pageQuery) { QueryWrapper lqw = buildQueryWrapperPlus(bo); Page result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw); - result.getRecords().forEach(item -> { - if (item.getCreateBy() != null) { - item.setCreateByName(getUserNickname(item.getCreateBy())); - } - if (item.getUpdateBy() != null) { - item.setUpdateByName(getUserNickname(item.getUpdateBy())); - } - }); + List records = result.getRecords(); + Set userNames = records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getOperatorName())) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toSet()); + if (!userNames.isEmpty()) { + Map nickMap = userService.selectNickNameMapByUserNames(records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getOperatorName())) + .filter(StringUtils::isNotBlank) + .distinct() + .collect(Collectors.toList())); + records.forEach(item -> { + if (StringUtils.isNotBlank(item.getCreateBy())) { + item.setCreateByName(nickMap.getOrDefault(item.getCreateBy(), item.getCreateBy())); + } + if (StringUtils.isNotBlank(item.getOperatorName())) { + item.setOperatorByName(nickMap.getOrDefault(item.getOperatorName(), item.getOperatorName())); + } + }); + } return TableDataInfo.build(result); } @@ -79,25 +90,6 @@ public class WmsCoilPendingActionServiceImpl implements IWmsCoilPendingActionSer return qw; } - /** - * 根据用户名获取用户昵称 - * @param username 用户名 - * @return 用户昵称 - */ - private String getUserNickname(String username) { - try { - // 通过用户名查找用户 - SysUser user = userService.selectUserByUserName(username); - if (user != null) { - return user.getNickName(); - } - } catch (Exception e) { - // 出现异常时返回原用户名 - return username; - } - // 找不到用户时返回原用户名 - return username; - } /** * 查询钢卷待操作列表 */ diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java index e8c27e5d..e8381f69 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsDeliveryPlanServiceImpl.java @@ -8,20 +8,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.utils.StringUtils; -import com.klp.domain.vo.WmsDeliveryPlanStatisticsVo; -import com.klp.domain.vo.WmsDeliveryReportByTypeVo; -import com.klp.domain.vo.WmsDeliveryReportResultVo; -import com.klp.domain.vo.WmsDeliveryReportSummaryVo; +import com.klp.domain.vo.*; import com.klp.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsDeliveryPlanBo; -import com.klp.domain.vo.WmsDeliveryPlanVo; import com.klp.domain.WmsDeliveryPlan; import com.klp.mapper.WmsDeliveryPlanMapper; import com.klp.service.IWmsDeliveryPlanService; import java.util.*; +import java.util.stream.Collectors; /** * 发货计划Service业务层处理 @@ -52,35 +49,27 @@ public class WmsDeliveryPlanServiceImpl implements IWmsDeliveryPlanService { public TableDataInfo queryPageList(WmsDeliveryPlanBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - result.getRecords().forEach(item -> { - if (item.getCreateBy() != null) { - item.setCreateByName(getUserNickname(item.getCreateBy())); - } - if (item.getUpdateBy() != null) { - item.setUpdateByName(getUserNickname(item.getUpdateBy())); - } - }); - return TableDataInfo.build(result); - } - - /** - * 根据用户名获取用户昵称 - * @param username 用户名 - * @return 用户昵称 - */ - private String getUserNickname(String username) { - try { - // 通过用户名查找用户 - SysUser user = userService.selectUserByUserName(username); - if (user != null) { - return user.getNickName(); - } - } catch (Exception e) { - // 出现异常时返回原用户名 - return username; + List records = result.getRecords(); + Set userNames = records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getUpdateBy())) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toSet()); + if (!userNames.isEmpty()) { + Map nickMap = userService.selectNickNameMapByUserNames(records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getUpdateBy())) + .filter(StringUtils::isNotBlank) + .distinct() + .collect(Collectors.toList())); + records.forEach(item -> { + if (StringUtils.isNotBlank(item.getCreateBy())) { + item.setCreateByName(nickMap.getOrDefault(item.getCreateBy(), item.getCreateBy())); + } + if (StringUtils.isNotBlank(item.getUpdateBy())) { + item.setUpdateByName(nickMap.getOrDefault(item.getUpdateBy(), item.getUpdateBy())); + } + }); } - // 找不到用户时返回原用户名 - return username; + return TableDataInfo.build(result); } /** diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 27ebc74b..656f0666 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -286,14 +286,26 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { QueryWrapper qw = buildQueryWrapperPlus(bo); Page result = baseMapper.selectVoPagePlus(pageQuery.build(), qw); - result.getRecords().forEach(item -> { - if (item.getCreateBy() != null) { - item.setCreateByName(getUserNickname(item.getCreateBy())); - } - if (item.getUpdateBy() != null) { - item.setUpdateByName(getUserNickname(item.getUpdateBy())); - } - }); + List records = result.getRecords(); + Set userNames = records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getUpdateBy())) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toSet()); + if (!userNames.isEmpty()) { + Map nickMap = userService.selectNickNameMapByUserNames(records.stream() + .flatMap(v -> java.util.stream.Stream.of(v.getCreateBy(), v.getUpdateBy())) + .filter(StringUtils::isNotBlank) + .distinct() + .collect(Collectors.toList())); + records.forEach(item -> { + if (StringUtils.isNotBlank(item.getCreateBy())) { + item.setCreateByName(nickMap.getOrDefault(item.getCreateBy(), item.getCreateBy())); + } + if (StringUtils.isNotBlank(item.getUpdateBy())) { + item.setUpdateByName(nickMap.getOrDefault(item.getUpdateBy(), item.getUpdateBy())); + } + }); + } // 从联查结果中构建产品和原材料对象(避免单独查询) for (WmsMaterialCoilVo vo : result.getRecords()) { @@ -350,25 +362,6 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { qw.orderByDesc("mc.create_time"); return qw; } - /** - * 根据用户名获取用户昵称 - * @param username 用户名 - * @return 用户昵称 - */ - private String getUserNickname(String username) { - try { - // 通过用户名查找用户 - SysUser user = userService.selectUserByUserName(username); - if (user != null) { - return user.getNickName(); - } - } catch (Exception e) { - // 出现异常时返回原用户名 - return username; - } - // 找不到用户时返回原用户名 - return username; - } /** * 查询钢卷物料表列表