From ffca46b39d25439a06a27cafda2ec523a3fb67cf Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 27 十月 2026 17:53:02 +0800
Subject: [PATCH] feat(mes): 增加盘号字段支持和优化报工质检流程
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java | 33 +++++++++++++++++++++++++++------
1 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java
index 88956ea..9e2c1c8 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskServiceImpl.java
@@ -150,11 +150,7 @@
if (itemId == null) {
MesProRouteProcessDO routeProcess = routeProcessService
.getRouteProcessByRouteIdAndProcessId(createReqVO.getRouteId(), createReqVO.getProcessId());
- if (routeProcess != null && routeProcess.getOutputItemId() != null) {
- itemId = Long.valueOf(routeProcess.getOutputItemId().split(",")[0].trim());
- } else {
- itemId = workOrder.getProductId();
- }
+ itemId = resolveTaskItemId(routeProcess, workOrder.getProductId());
}
MesMdItemDO item = itemService.validateItemExists(itemId);
@@ -352,6 +348,25 @@
return routeProcesses;
}
+ /** 褰撳墠浜у搧鐨勪换鍔′骇鍑猴紝浼樺厛浣跨敤宸ュ簭鐨勪骇鍝佸綊灞為厤缃�� */
+ private Long resolveTaskItemId(MesProRouteProcessDO routeProcess, Long productId) {
+ if (routeProcess == null) {
+ return productId;
+ }
+ if (routeProcess.getId() != null) {
+ List<Long> outputIds = routeProcessService
+ .getOutputItemIdsByRouteProcessId(routeProcess.getId(), productId);
+ if (outputIds != null) {
+ return CollUtil.isNotEmpty(outputIds) ? outputIds.get(0) : productId;
+ }
+ }
+ String outputItemId = routeProcess.getOutputItemId();
+ if (outputItemId != null && !outputItemId.isBlank()) {
+ return Long.valueOf(outputItemId.split(",")[0].trim());
+ }
+ return productId;
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteTask(Long id) {
@@ -463,6 +478,12 @@
}
@Override
+ public void updateQualityQuantity(Long id, BigDecimal qualifiedQuantity, BigDecimal unqualifiedQuantity) {
+ validateTaskExists(id);
+ taskMapper.updateProducedQuantity(id, BigDecimal.ZERO, qualifiedQuantity, unqualifiedQuantity);
+ }
+
+ @Override
public void updateProducedQuantity(Long id,
BigDecimal incrProducedQuantity,
BigDecimal incrQualifyQuantity,
@@ -563,7 +584,7 @@
List<Long> taskIds = new java.util.ArrayList<>();
for (MesProRouteProcessDO rp : routeProcesses) {
cn.iocoder.yudao.module.mes.dal.dataobject.pro.process.MesProProcessDO proc = procMap.get(rp.getProcessId());
- Long itemId = rp.getOutputItemId() != null ? Long.valueOf(rp.getOutputItemId().split(",")[0].trim()) : workOrder.getProductId();
+ Long itemId = resolveTaskItemId(rp, workOrder.getProductId());
cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO item = itemService.validateItemExists(itemId);
MesProTaskDO task = new MesProTaskDO()
.setWorkOrderId(workOrder.getId())
--
Gitblit v1.9.3