From a532a0f9edfdfee9577fa36a7ecc5edbe249cd12 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期四, 24 九月 2026 19:06:42 +0800
Subject: [PATCH] feat(生产工单): 工单列表返回产品大类
---
src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 58 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
index 6e9457d..922f565 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
@@ -22,10 +22,13 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.production.bean.dto.ProductionOperationTaskDto;
import com.ruoyi.production.bean.vo.ProductionOperationTaskVo;
+import com.ruoyi.production.enums.MajorCategoryEnum;
import com.ruoyi.production.mapper.ProductionOrderMapper;
+import com.ruoyi.production.mapper.ProductionOrderRoutingOperationMapper;
import com.ruoyi.production.mapper.ProductionOperationTaskMapper;
import com.ruoyi.production.pojo.ProductionOrder;
import com.ruoyi.production.pojo.ProductionOperationTask;
+import com.ruoyi.production.pojo.ProductionOrderRoutingOperation;
import com.ruoyi.production.service.ProductionOperationTaskService;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
@@ -48,6 +51,7 @@
private final SysUserMapper sysUserMapper;
private final ProductionOrderMapper productionOrderMapper;
+ private final ProductionOrderRoutingOperationMapper productionOrderRoutingOperationMapper;
private final FileUtil fileUtil;
@@ -61,7 +65,9 @@
// 鍒嗛〉鏌ヨ鐢熶骇宸ュ簭浠诲姟
Page<ProductionOperationTaskVo> voPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
IPage<ProductionOperationTaskVo> result = baseMapper.pageProductionOperationTask(voPage, dto);
+ fillOperationTypes(result.getRecords());
fillUserNames(result.getRecords());
+ fillMajorCategories(result.getRecords());
return result;
}
@@ -69,8 +75,26 @@
public List<ProductionOperationTaskVo> listProductionOperationTask(ProductionOperationTaskDto dto) {
// 鏌ヨ宸ュ簭浠诲姟鍒楄〃
List<ProductionOperationTaskVo> result = BeanUtil.copyToList(this.list(buildQueryWrapper(dto)), ProductionOperationTaskVo.class);
+ fillOperationTypes(result);
fillUserNames(result);
+ fillMajorCategories(result);
return result;
+ }
+
+ /**
+ * 濉厖浜у搧澶х被銆傚伐鍗曟湰韬笉瀛樺ぇ绫伙紝鎸変骇鍝佸悕绉扮敤缁熶竴鐨� {@link MajorCategoryEnum} 瑙勫垯鎺ㄥ锛�
+ * 涓庢姤宸ュ啓鍏ユ椂鐨勫垽瀹氬彛寰勪繚鎸佷竴鑷达紱闈炰箰鍣紙濡傜孩鏈ㄧ瓑鍘熸枡锛変繚鎸佷负绌恒��
+ */
+ private void fillMajorCategories(List<ProductionOperationTaskVo> records) {
+ if (CollectionUtils.isEmpty(records)) {
+ return;
+ }
+ for (ProductionOperationTaskVo vo : records) {
+ if (vo == null) {
+ continue;
+ }
+ vo.setMajorCategory(MajorCategoryEnum.match(vo.getProductName()));
+ }
}
@Override
@@ -81,6 +105,7 @@
return null;
}
ProductionOperationTaskVo vo = BeanUtil.copyProperties(item, ProductionOperationTaskVo.class);
+ fillOperationTypes(Collections.singletonList(vo));
if (item.getProductionOrderId() != null) {
ProductionOrder productionOrder = productionOrderMapper.selectById(item.getProductionOrderId());
if (productionOrder != null) {
@@ -370,6 +395,38 @@
@Override
public List<ProductionOperationTaskVo> getOperation(ProductionOperationTaskDto dto) {
// 鏌ヨ宸ュ簭浠诲姟鍒楄〃
- return baseMapper.getOperation(dto);
+ List<ProductionOperationTaskVo> result = baseMapper.getOperation(dto);
+ fillOperationTypes(result);
+ return result;
+ }
+
+ private void fillOperationTypes(List<ProductionOperationTaskVo> voList) {
+ // 鍥炲~宸ュ簭绫诲瀷锛�0 璁℃椂 / 1 璁′欢锛�
+ if (voList == null || voList.isEmpty()) {
+ return;
+ }
+ Set<Long> operationIds = voList.stream()
+ .filter(Objects::nonNull)
+ .map(ProductionOperationTaskVo::getProductionOrderRoutingOperationId)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toCollection(LinkedHashSet::new));
+ if (operationIds.isEmpty()) {
+ return;
+ }
+ Map<Long, Integer> typeByOperationId = productionOrderRoutingOperationMapper
+ .selectBatchIds(new ArrayList<>(operationIds))
+ .stream()
+ .filter(Objects::nonNull)
+ .collect(Collectors.toMap(
+ ProductionOrderRoutingOperation::getId,
+ ProductionOrderRoutingOperation::getType,
+ (left, right) -> left
+ ));
+ for (ProductionOperationTaskVo vo : voList) {
+ if (vo == null || vo.getType() != null || vo.getProductionOrderRoutingOperationId() == null) {
+ continue;
+ }
+ vo.setType(typeByOperationId.get(vo.getProductionOrderRoutingOperationId()));
+ }
}
}
--
Gitblit v1.9.3