Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

wks 1 год назад
Родитель
Сommit
f5667c248b

+ 25 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlSchemeServiceImpl.java

@@ -152,6 +152,30 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
                 item.getOptionId().add(option.getOptionId());
             });
         });
+        List<PtlSchemeInsuranceVo> ptlSchemeInsurancesNew = new ArrayList<>();
+        Map<String, PtlSchemeInsuranceVo> insuranceMap = new HashMap<>();
+
+        for (PtlSchemeInsuranceVo item : ptlSchemeInsurances) {
+            String insuranceId = item.getInsuranceId();
+
+            // 如果已存在则合并
+            if (insuranceMap.containsKey(insuranceId)) {
+                PtlSchemeInsuranceVo existingVo = insuranceMap.get(insuranceId);
+                existingVo.getOptionId().addAll(item.getOptionId());
+                existingVo.getOptionVos().addAll(item.getOptionVos());
+            } else {
+                // 否则新增,并放入 Map 和 List
+                PtlSchemeInsuranceVo newVo = new PtlSchemeInsuranceVo();
+                newVo.setId(item.getId());
+                newVo.setSchemeInfoId(item.getSchemeInfoId());
+                newVo.setInsuranceId(insuranceId);
+                newVo.setKindName(item.getKindName());
+                newVo.setOptionId(new ArrayList<>(item.getOptionId()));
+                newVo.setOptionVos(new ArrayList<>(item.getOptionVos()));
+                insuranceMap.put(insuranceId, newVo);
+                ptlSchemeInsurancesNew.add(newVo);
+            }
+        }
 
         //获取驾意险
         List<PtlSchemeInsuranceDrivingIntention> ptlSchemeInsuranceDrivingIntentions = ptlSchemeInsuranceDrivingIntentionMapper.getSchemeDrivingIntention(ptlSchemeInfo.getId());
@@ -163,7 +187,7 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
         List<PtlAgreementUndwrtRulesAttr> agreementRulesVo = rulesGet(ptlScheme.getId());
 
         //拼装返回数据
-        PtlSchemeQueryVo vo = new PtlSchemeQueryVo(ptlScheme,ptlSchemeInfo,ptlSchemeInsurances,ptlSchemeInsuranceDrivingIntentions,ptlSchemeRulesAttrLinks,agreementRulesVo);
+        PtlSchemeQueryVo vo = new PtlSchemeQueryVo(ptlScheme,ptlSchemeInfo,ptlSchemeInsurancesNew,ptlSchemeInsuranceDrivingIntentions,ptlSchemeRulesAttrLinks,agreementRulesVo);
 
         return vo;
     }