From 0d609acb78884e900192761666a516f6c98688b6 Mon Sep 17 00:00:00 2001 From: liweidong-hj Date: Tue, 14 Apr 2026 19:27:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/entity/DsPartBasicsEntity.java | 2 +- .../desk/dashboard/mapper/PartMapper.xml | 4 +- .../service/impl/DsProModelServiceImpl.java | 96 ++++++++++++++++--- .../service/impl/DsTaskingServiceImpl.java | 2 +- 4 files changed, 88 insertions(+), 16 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsPartBasicsEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsPartBasicsEntity.java index 60485648..dcbb84ab 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsPartBasicsEntity.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsPartBasicsEntity.java @@ -50,7 +50,7 @@ public class DsPartBasicsEntity extends BaseEntity { * 是否玻璃饼 */ @Schema(description = "是否玻璃饼") - private String isClassCake; + private String isGlassCake; /** * 备注 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml index d9a95cad..6c0d4fe0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml @@ -30,7 +30,7 @@ - + @@ -93,7 +93,7 @@ - + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java index 94bfada9..5313b288 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java @@ -28,8 +28,12 @@ package org.springblade.desk.dashboard.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.tool.utils.Func; +import org.springblade.desk.basic.pojo.entity.BasicClazz; +import org.springblade.desk.basic.service.IBasicClazzService; import org.springblade.desk.dashboard.pojo.entity.*; import org.springblade.desk.dashboard.pojo.vo.DsModelAndDetailVO; import org.springblade.desk.dashboard.pojo.vo.DsProDetailVO; @@ -38,7 +42,9 @@ import org.springblade.desk.dashboard.pojo.vo.DsProModelVO; import org.springblade.desk.dashboard.excel.DsProModelExcel; import org.springblade.desk.dashboard.mapper.DsProModelMapper; import org.springblade.desk.dashboard.service.*; +import org.springblade.desk.logistics.pojo.vo.TaskVO; import org.springblade.system.feign.IUserClient; +import org.springblade.system.pojo.entity.User; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -56,12 +62,10 @@ import java.util.stream.Collectors; * @author BladeX * @since 2025-11-12 */ +@Slf4j @Service public class DsProModelServiceImpl extends BaseServiceImpl implements IDsProModelService { - @Autowired - IBsPlatingTypeService platingTypeService; - @Autowired DsProModelMapper proModelMapper; @@ -77,22 +81,90 @@ public class DsProModelServiceImpl extends BaseServiceImpl selectDsProModelPage(IPage page, DsProModelVO dsProModel) { - List DsProModelVO = baseMapper.selectDsProModelPage(page, dsProModel); - for (org.springblade.desk.dashboard.pojo.vo.DsProModelVO dsProModelVO : DsProModelVO) { - if(null != dsProModelVO.getPlatingType()){ - BsPlatingTypeEntity platingTypeEntity = platingTypeService.getById(dsProModelVO.getPlatingType()); - dsProModelVO.setPlatingTypeStr(platingTypeEntity.getPlateType()); + List dsProModelVOList = baseMapper.selectDsProModelPage(page, dsProModel); + + if (CollectionUtils.isEmpty(dsProModelVOList)) { + return page.setRecords(Collections.emptyList()); + } - dsProModelVO.setUpdateUserStr(userClient.userInfo(Func.toLong(dsProModelVO.getUpdateUser())).getData().getUser().getName()); + // 处理每个VO + for (DsProModelVO vo : dsProModelVOList) { + if (vo == null) { + continue; + } + + // 设置电镀类型名称 - 防止空指针 + if (vo.getPlatingType() != null) { + try { + BasicClazz basicClazz = basicClazzService.getById(vo.getPlatingType()); + if (basicClazz != null) { + vo.setPlatingTypeStr(basicClazz.getName()); + } + } catch (Exception e) { + log.error("查询电镀类型失败, platingType: {}", vo.getPlatingType(), e); + } + } + // 设置工序数量 - 防止空指针 + if (vo.getId() != null) { + try { + List detailList = proDetailService.selectDsProDetailByModelId(vo.getId()); + vo.setProcessNum(detailList == null ? 0L : (long) detailList.size()); + } catch (Exception e) { + log.error("查询工序数量失败, modelId: {}", vo.getId(), e); + vo.setProcessNum(0L); + } + } else { + vo.setProcessNum(0L); } - List dsProDetailEntityList = proDetailService.selectDsProDetailByModelId(dsProModelVO.getId()); - dsProModelVO.setProcessNum((long)dsProDetailEntityList.size()); + } + // 收集所有需要查询的 userId(去重) + Set userIdSet = dsProModelVOList.stream() + .map(DsProModelVO::getUpdateUser) + .filter(Objects::nonNull) + .map(String::valueOf) + .collect(Collectors.toSet()); + + if (CollectionUtils.isNotEmpty(userIdSet)) { + // 批量查询用户信息 + String userIds = userIdSet.stream() + .map(String::valueOf) + .collect(Collectors.joining(",")); + try { + List userList = userClient.userListByIds(userIds); + if (CollectionUtils.isNotEmpty(userList)) { + Map userMap = userList.stream() + .filter(user -> user != null && user.getId() != null) + .collect(Collectors.toMap( + User::getId, + user -> user, + (existing, replacement) -> existing + )); + + // 批量设置用户名称 + for (DsProModelVO dsProModelVO : dsProModelVOList) { + Long updateUser = dsProModelVO.getUpdateUser(); + if (updateUser != null) { + User user = userMap.get(updateUser); + if (user != null) { + dsProModelVO.setUpdateUserStr(user.getName()); + } + } + } + } + } catch (Exception e) { + log.error("批量获取用户信息失败, userIds: {}", userIds, e); + } } - return page.setRecords(DsProModelVO); + + + return page.setRecords(dsProModelVOList); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsTaskingServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsTaskingServiceImpl.java index 876a4cd6..3bbb9c1f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsTaskingServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsTaskingServiceImpl.java @@ -2122,7 +2122,7 @@ public class DsTaskingServiceImpl extends BaseServiceImpl