From 255529c8bc744b346d3af454ee33e760e8e238f7 Mon Sep 17 00:00:00 2001 From: xupei <1779019091@qq.com> Date: Fri, 22 Sep 2023 17:04:08 +0800 Subject: [PATCH] =?UTF-8?q?getDetail=20=E4=BF=AE=E6=94=B9bug-=E7=9B=B8?= =?UTF-8?q?=E5=90=8C=E7=9A=84colorIndex=E5=AF=BC=E8=87=B4=E9=A2=9C?= =?UTF-8?q?=E8=89=B2=E8=BF=94=E5=9B=9E=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ai/da/service/impl/DesignServiceImpl.java | 6 ++++++ .../com/ai/da/service/impl/PanToneServiceImpl.java | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java index f622c848..4dd88a2d 100644 --- a/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/DesignServiceImpl.java @@ -872,6 +872,12 @@ public class DesignServiceImpl extends ServiceImpl impleme return design.getId(); } + /** + * 避免多次连接数据,所这里一次查多条颜色并利用designItemDetailId保持颜色与vo的对应关系 + * @param designItemDetails + * @param designItemDetailVO + * @return + */ private DesignItemDetailVO editResponseColor(List designItemDetails, DesignItemDetailVO designItemDetailVO) { /*designItemDetails.forEach(d -> { if (!StringUtil.isNullOrEmpty(d.getColor())){ diff --git a/src/main/java/com/ai/da/service/impl/PanToneServiceImpl.java b/src/main/java/com/ai/da/service/impl/PanToneServiceImpl.java index b3af8521..b37b846a 100644 --- a/src/main/java/com/ai/da/service/impl/PanToneServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/PanToneServiceImpl.java @@ -87,6 +87,7 @@ public class PanToneServiceImpl extends ServiceImpl impl }); List colorValueList = colorLoopUpTableService.getByColorValueList(values); colorValueList.forEach(colorValue ->{ + // 不同的colorValue可能会有相同的colorIndex colorIndexRgb.put(colorValue.getColorIndex(),colorValueRgb.get(colorValue.getColorValue())); }); @@ -98,7 +99,15 @@ public class PanToneServiceImpl extends ServiceImpl impl HashMap colorPantoneVO = new HashMap<>(); pantoneVOS.forEach(pantoneVO -> { - colorPantoneVO.put(colorIndexRgb.get(pantoneVO.getId()),pantoneVO); + int colorIndex = pantoneVO.getId(); + List collect = colorValueList.stream().filter(colorValue -> colorValue.getColorIndex().equals(colorIndex)).collect(Collectors.toList()); + if (collect.size() > 1){ + for (ColorLookupTable colorLookupTable : collect) { + colorPantoneVO.put(colorValueRgb.get(colorLookupTable.getColorValue()), pantoneVO); + } + }else if (collect.size() == 1){ + colorPantoneVO.put(colorIndexRgb.get(pantoneVO.getId()),pantoneVO); + } }); return colorPantoneVO;