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