瀏覽代碼

调整方案的规则匹配

785834757 1 月之前
父節點
當前提交
4ca5004043

+ 4 - 0
commons/src/main/java/com/jzg/commons/entity/scheme/vo/SchemeRuleFilterVo.java

@@ -14,6 +14,10 @@ public class SchemeRuleFilterVo {
     @Schema(description = "产品id")
     private String productId;
 
+    // 获取方案需要添加保险公司id
+    @Schema(description = "保险公司")
+    private String companyId;
+
     @Valid
     @Schema(description =  "车辆信息")
     private CarInfoVo carInfo;

+ 1 - 1
commons/src/main/java/com/jzg/commons/entity/vo/RuleAttrMappingVo.java

@@ -327,7 +327,7 @@ public class RuleAttrMappingVo {
         // 车牌地区
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("LicenseArea", insOrdersCarInfo.getLicenseNo().substring(0, 1)));
         // 系数
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CoefficientFactor", getCoefficient(insOrdersCarInfo, insOrdersCosts).toString()));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("Coefficient", getCoefficient(insOrdersCarInfo, insOrdersCosts).toString()));
         // 商业是否有费用
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("CiMessage", (insOrdersOther.getCiMessage() == null || "".equals(insOrdersOther.getCiMessage())) ? "0" : "1"));
 

+ 3 - 3
tenant/organization/src/main/java/com/jzg/organization/controller/SchemeController.java

@@ -106,9 +106,9 @@ public class SchemeController {
     }
 
     @Operation(summary = "获取方案结果")
-    @GetMapping("/getSchemeResult")
-    public HttpResult getSchemeResult(String companyId,String productId,String seatCount,String energyType,String vehicleType,String carnature){
-         SchemeResultVo schemeResultVo = ptlSchemeService.getSchemeResult(companyId,productId,seatCount,energyType,vehicleType,carnature);
+    @PostMapping("/getSchemeResult")
+    public HttpResult getSchemeResult(@RequestBody SchemeRuleFilterVo schemeRuleFilterVo){
+         SchemeResultVo schemeResultVo = ptlSchemeService.getSchemeResult(schemeRuleFilterVo);
         return HttpResult.ok(schemeResultVo);
     }
 

+ 2 - 3
tenant/organization/src/main/java/com/jzg/organization/service/PtlSchemeService.java

@@ -76,11 +76,10 @@ public interface PtlSchemeService extends IService<PtlScheme> {
 
     /**
      * 获取方案结果
-     * @param companyId
-     * @param productId
+     * @param schemeRuleFilterVo
      * @return
      */
-    public SchemeResultVo getSchemeResult(String companyId,String productId,String seatCount,String energyType,String vehicleType,String carnature);
+    public SchemeResultVo getSchemeResult(SchemeRuleFilterVo schemeRuleFilterVo);
 
     List<InsBusinessInsuranceVo> getBusinessInsuranceListByKindType(String kindCode);
 

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

@@ -739,7 +739,15 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
 
 
     @Override
-    public SchemeResultVo getSchemeResult(String companyId, String productId, String seatCount,String energyType,String vehicleType,String carnature) {
+    public SchemeResultVo getSchemeResult(SchemeRuleFilterVo schemeRuleFilterVo) {
+
+        String companyId = schemeRuleFilterVo.getCompanyId();
+        String productId = schemeRuleFilterVo.getProductId();
+        String seatCount = schemeRuleFilterVo.getCarInfo().getSeatCount();
+        String vehicleType = schemeRuleFilterVo.getCarInfo().getCarKindCode();
+        String energyType = schemeRuleFilterVo.getCarInfo().getEnergyTypeCode();
+        String carnature = schemeRuleFilterVo.getCarInfo().getCarNatureCode();
+
         log.info("根据保司Id和产品id查询协议信息。 companyId=[{}],productId=[{}]", companyId, productId);
         List<SchemeResultVo.SchemeVo> schemeInsuranceInfo = ptlSchemeMapper.getSchemeInsuranceInfo(companyId, productId);
         List<SchemeResultVo.SchemeVo> schemeDrivingInfo = ptlSchemeMapper.getSchemeDrivingInfo(companyId, productId);
@@ -776,6 +784,15 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
                         && scheme.getCarnature().contains(carnature))
                 .collect(Collectors.toList());
 
+        // 再次过滤方案  根据方案的规则条件
+        List<String> schemeIds = newSchemeList.stream().map(SchemeResultVo.SchemeVo::getId).collect(Collectors.toList());
+        List<PtlSchemeRulesAttrLink> ptlSchemeRulesAttrLinks = ptlSchemeRulesAttrLinkMapper.selectList(new LambdaQueryWrapper<PtlSchemeRulesAttrLink>().in(PtlSchemeRulesAttrLink::getSchemeId, schemeIds));
+        ValidateSchemeRuleVo validateSchemeRuleVo = new ValidateSchemeRuleVo();
+        validateSchemeRuleVo.builderQuoteVo(schemeRuleFilterVo, redissonClient);
+        validateSchemeRuleVo.setAttrLinks(ptlSchemeRulesAttrLinks);
+        HttpResult<List<String>> esmInsCompanyHttpResult = costsRuleClient.validateSchemeRule(validateSchemeRuleVo);
+        List<String> insSchemeIds = esmInsCompanyHttpResult.getData();
+        newSchemeList.removeIf(x -> !insSchemeIds.contains(x.getId()));
         schemeInsuranceInfo = newSchemeList;
 
         // 创建一个 Map,Key: info.id, Value: List<Driving>