浏览代码

费用方案添加优先级

li.pengfei 2 年之前
父节点
当前提交
492553fcba

+ 15 - 2
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -109,8 +109,21 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
                     //进行费用比例赋值,给返回对象
                     feeSchemeResDto=generateSchemeResDto((PtlAgreementProductCosts)validSchemeList.get(0));
                 }else{
-                    //如果最终符合的有多条,则按特殊规则选择其中一条
-                    PtlAgreementProductCosts finalSchemeCost=changeSchemeWithSpecialRule(validSchemeList,feeSchemeReqDto);
+                   /* //如果最终符合的有多条,则按特殊规则选择其中一条 (原来使用保费多少判断优先的停用)
+                    PtlAgreementProductCosts finalSchemeCost=changeSchemeWithSpecialRule(validSchemeList,feeSchemeReqDto);*/
+                    PtlAgreementProductCosts finalSchemeCost=null;
+                    //调整为使用协议方案中优先级字段判断优先方案(循环找出对应优先级最高的)
+                    for(int i=0;i<validSchemeList.size();i++){
+                        PtlAgreementProductCosts tempCostDto=validSchemeList.get(i);
+                        int currentLevel=tempCostDto.getPriorityLevel()==null?0:tempCostDto.getPriorityLevel();
+                        if(finalSchemeCost!=null){
+                            if(finalSchemeCost.getPriorityLevel()<currentLevel){
+                                finalSchemeCost=tempCostDto;
+                            }
+                        }else{
+                            finalSchemeCost=tempCostDto;
+                        }
+                    }
                     //进行费用比例赋值,给返回对象
                     feeSchemeResDto=generateSchemeResDto(finalSchemeCost);
                 }

+ 3 - 0
src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementProductCostsSaveDto.java

@@ -193,6 +193,9 @@ public class PtlAgreementProductCostsSaveDto implements Serializable {
     @ApiModelProperty("司机乘客关联关系")
     private String driverPassengerRelation;
 
+    @ApiModelProperty("方案匹配优先级")
+    private Integer priorityLevel;
+
     public static List<PtlAgreementProductCosts> toPtlAgreementProductCosts(String agreementId, List<PltAgreementSchemeSaveDto> scheme) {
         return scheme.stream().map(x -> PtlAgreementProductCosts.toPtlAgreementProductCostsList(agreementId, x.getProductId(), x.getName(), x.getProductCosts())).flatMap(Collection::stream).collect(Collectors.toList());
     }

+ 7 - 0
src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreementProductCosts.java

@@ -399,6 +399,12 @@ public class PtlAgreementProductCosts implements Serializable {
     @TableField(value = "driver_passenger_relation")
     private String driverPassengerRelation;
 
+    /**
+     * 方案优先级别
+     */
+    @TableField(value = "priority_level")
+    private Integer priorityLevel;
+
 
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
@@ -488,6 +494,7 @@ public class PtlAgreementProductCosts implements Serializable {
         result = getObjectHashCode(this.minPassengerAmount, result);
         result = getObjectHashCode(this.maxPassengerAmount, result);
         result = getObjectHashCode(this.driverPassengerRelation, result);
+        result = getObjectHashCode(this.priorityLevel,result);
         return result;
     }