From 6c8973d78b04b1aa132dccbd478ba8abbcf2b6c1 Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期五, 25 四月 2025 09:10:21 +0800 Subject: [PATCH] 1.国产网分仪 2.可靠性计划成品计划 --- inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java | 74 ++++++++++++++++++++++++++++++++++++- 1 files changed, 72 insertions(+), 2 deletions(-) diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java index 632d656..b225652 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReliabilityPlanProductItemServiceImpl.java @@ -9,8 +9,11 @@ import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -28,8 +31,75 @@ @Override public List<ReliabilityPlanProductItem> selectProductItem(ReliabilityPlanProductItemDto reliabilityPlanProductItemDto) { - return reliabilityPlanProductItemMapper.selectList(new LambdaQueryWrapper<ReliabilityPlanProductItem>().eq(ReliabilityPlanProductItem::getPlanId,reliabilityPlanProductItemDto.getRePlanId()) - .eq(ReliabilityPlanProductItem::getType,reliabilityPlanProductItemDto.getType())); + // 浠庢暟鎹簱涓煡璇㈡柊鐨勬暟鎹� + List<Map<String, Object>> maps = reliabilityPlanProductItemMapper.itemList(reliabilityPlanProductItemDto.getRePlanId()); + List<ReliabilityPlanProductItem> newItemList = new ArrayList<>(); + for (Map<String, Object> map : maps) { + ReliabilityPlanProductItem item = new ReliabilityPlanProductItem(); + item.setInspectionItem((String) map.get("inspectionItem")); + item.setStandard((String) map.get("standard")); + item.setFrequency((String) map.get("frequency")); + item.setPlanId(reliabilityPlanProductItemDto.getRePlanId()); + item.setType(reliabilityPlanProductItemDto.getType()); + newItemList.add(item); + } + + // 鏌ヨ鏁版嵁搴撲腑宸插瓨鍦ㄧ殑鏁版嵁 + List<ReliabilityPlanProductItem> existingItemList = reliabilityPlanProductItemMapper.selectList( + new LambdaQueryWrapper<ReliabilityPlanProductItem>() + .eq(ReliabilityPlanProductItem::getPlanId, reliabilityPlanProductItemDto.getRePlanId()) + .eq(ReliabilityPlanProductItem::getType, reliabilityPlanProductItemDto.getType()) + ); + + // 灏嗗凡瀛樺湪鐨勬暟鎹浆鎹负浠� inspectionItem_planId_type 涓洪敭鐨� Map + Map<String, ReliabilityPlanProductItem> existingItemMap = new HashMap<>(); + for (ReliabilityPlanProductItem item : existingItemList) { + StringBuilder keyBuilder = new StringBuilder(); + keyBuilder.append(item.getInspectionItem()) + .append("_") + .append(item.getPlanId()) + .append("_") + .append(item.getType()); + existingItemMap.put(keyBuilder.toString(), item); + } + + List<ReliabilityPlanProductItem> itemsToUpdate = new ArrayList<>(); + List<ReliabilityPlanProductItem> itemsToInsert = new ArrayList<>(); + + // 瀵规瘮鏂版暟鎹拰宸插瓨鍦ㄧ殑鏁版嵁锛屽尯鍒嗗嚭闇�瑕佹洿鏂板拰闇�瑕佹柊澧炵殑璁板綍 + for (ReliabilityPlanProductItem newItem : newItemList) { + StringBuilder keyBuilder = new StringBuilder(); + keyBuilder.append(newItem.getInspectionItem()) + .append("_") + .append(newItem.getPlanId()) + .append("_") + .append(newItem.getType()); + String key = keyBuilder.toString(); + ReliabilityPlanProductItem existingItem = existingItemMap.get(key); + if (existingItem != null) { + // 瀛樺湪鍒欐洿鏂� + existingItem.setStandard(newItem.getStandard()); + existingItem.setFrequency(newItem.getFrequency()); + itemsToUpdate.add(existingItem); + } else { + // 涓嶅瓨鍦ㄥ垯鏂板 + itemsToInsert.add(newItem); + } + } + + // 鎵ц鏇存柊鍜屾柊澧炴搷浣� + if (!itemsToUpdate.isEmpty()) { + saveOrUpdateBatch(itemsToUpdate); + } + if (!itemsToInsert.isEmpty()) { + saveBatch(itemsToInsert); + } + + // 鍙互鑰冭檻鍦ㄥ墠闈㈢殑鏌ヨ涓繚鐣欓渶瑕佺殑缁撴灉锛岄伩鍏嶅啀娆℃煡璇� + return existingItemList.stream() + .filter(item -> item.getPlanId().equals(reliabilityPlanProductItemDto.getRePlanId()) + && item.getType().equals(reliabilityPlanProductItemDto.getType())) + .collect(Collectors.toList()); } @Override -- Gitblit v1.9.3