From 039201538c28a0f64858acd12e108345fc1c88c1 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 20 三月 2026 14:59:32 +0800
Subject: [PATCH] 根据工单id查询报工数据返回不合格处理
---
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 78 ++++++++++++++++++++++++++++++++++++++
1 files changed, 77 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index 2f943e2..9f4fe5a 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -37,6 +37,7 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -98,6 +99,27 @@
ProductProcessRouteItem productProcessRouteItem = productProcessRouteItemMapper.selectById(dto.getProductProcessRouteItemId());
if (productProcessRouteItem == null) {
throw new RuntimeException("宸ヨ壓璺嚎椤逛笉瀛樺湪");
+ }
+ //妫�鏌ヤ笂涓�涓伐搴忔槸鍚﹀凡鎶ュ伐
+ Integer currentDragSort = productProcessRouteItem.getDragSort();
+ if (currentDragSort != null && currentDragSort > 1) {
+ ProductProcessRouteItem previousItem = productProcessRouteItemMapper.selectOne(
+ Wrappers.<ProductProcessRouteItem>lambdaQuery()
+ .eq(ProductProcessRouteItem::getProductRouteId, productProcessRouteItem.getProductRouteId())
+ .eq(ProductProcessRouteItem::getDragSort, currentDragSort - 1)
+ );
+
+ if (previousItem != null) {
+ //妫�鏌ヤ笂涓�涓伐搴忔槸鍚︽湁鎶ュ伐璁板綍
+ Long count = productionProductMainMapper.selectCount(
+ Wrappers.<ProductionProductMain>lambdaQuery()
+ .eq(ProductionProductMain::getProductProcessRouteItemId, previousItem.getId())
+ );
+
+ if (count == 0) {
+ throw new RuntimeException("涓婁竴涓伐搴忓皻鏈姤宸ワ紝涓嶈兘杩涜褰撳墠宸ュ簭鎶ュ伐");
+ }
+ }
}
//褰撳墠鍏蜂綋宸ュ簭
ProductProcess productProcess = productProcessMapper.selectById(productProcessRouteItem.getProcessId());
@@ -353,4 +375,58 @@
public ArrayList<Long> listMain(List<Long> idList) {
return productionProductMainMapper.listMain(idList);
}
-}
+
+ @Override
+ public List<ProductionProductMainDto> getByProductWorkOrderId(Long productWorkOrderId) {
+ List<ProductionProductMainDto> productionProductMainDtos = productionProductMainMapper.getByProductWorkOrderId(productWorkOrderId);
+
+ if (productionProductMainDtos == null || productionProductMainDtos.isEmpty()) {
+ return productionProductMainDtos;
+ }
+
+ // 鏀堕泦鎵�鏈変骇鍝佷富璁板綍ID
+ List<Long> productMainIds = productionProductMainDtos.stream()
+ .map(ProductionProductMainDto::getId)
+ .collect(Collectors.toList());
+
+ // 鎵归噺鏌ヨ鎵�鏈夌浉鍏崇殑璐ㄦ璁板綍
+ List<QualityInspect> qualityInspects = qualityInspectMapper.selectList(
+ Wrappers.<QualityInspect>lambdaQuery()
+ .in(QualityInspect::getProductMainId, productMainIds)
+ );
+
+ if (!qualityInspects.isEmpty()) {
+ // 鏀堕泦鎵�鏈夎川妫�璁板綍ID
+ List<Long> inspectIds = qualityInspects.stream()
+ .map(QualityInspect::getId)
+ .collect(Collectors.toList());
+
+ // 鎵归噺鏌ヨ鎵�鏈夌浉鍏崇殑涓嶅悎鏍煎鐞嗚褰�
+ List<QualityUnqualified> qualityUnqualifieds = qualityUnqualifiedMapper.selectList(
+ Wrappers.<QualityUnqualified>lambdaQuery()
+ .in(QualityUnqualified::getInspectId, inspectIds)
+ );
+
+ // 鏋勫缓璐ㄦID鍒颁笉鍚堟牸澶勭悊璁板綍鐨勬槧灏�
+ Map<Long, QualityUnqualified> inspectIdToUnqualifiedMap = qualityUnqualifieds.stream()
+ .collect(Collectors.toMap(QualityUnqualified::getInspectId, q -> q, (q1, q2) -> q1));
+
+ // 鏋勫缓浜у搧涓籌D鍒拌川妫�璁板綍鐨勬槧灏�
+ Map<Long, QualityInspect> productMainIdToInspectMap = qualityInspects.stream()
+ .collect(Collectors.toMap(QualityInspect::getProductMainId, q -> q, (q1, q2) -> q1));
+
+ // 鍏宠仈澶勭悊缁撴灉鍒颁骇鍝佷富璁板綍
+ productionProductMainDtos.forEach(p -> {
+ QualityInspect qualityInspect = productMainIdToInspectMap.get(p.getId());
+ if (qualityInspect != null) {
+ QualityUnqualified qualityUnqualified = inspectIdToUnqualifiedMap.get(qualityInspect.getId());
+ if (qualityUnqualified != null) {
+ p.setDealResult(qualityUnqualified.getDealResult() == null ? "" : qualityUnqualified.getDealResult());
+ }
+ }
+ });
+ }
+
+ return productionProductMainDtos;
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3