|
@@ -37,6 +37,8 @@ import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
*@author: tz
|
|
*@author: tz
|
|
@@ -105,7 +107,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
* 校验费用因子
|
|
* 校验费用因子
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
- public void verificationCostFactor(InsAreaCompany insAreaCompany,InsOrders insOrders){
|
|
|
|
|
|
|
+ public void verificationCostFactor(InsAreaCompany insAreaCompany,InsOrders insOrders,StringBuilder logs){
|
|
|
|
|
|
|
|
List<AgreementProductCosts> agreementProductCosts = ptlAgreementProductCostsNewService.costsGetList(insAreaCompany.getAgreementId(),insOrders.getProductid());
|
|
List<AgreementProductCosts> agreementProductCosts = ptlAgreementProductCostsNewService.costsGetList(insAreaCompany.getAgreementId(),insOrders.getProductid());
|
|
|
// if(agreementProductCosts == null || agreementProductCosts.size() == 0){
|
|
// if(agreementProductCosts == null || agreementProductCosts.size() == 0){
|
|
@@ -121,7 +123,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
//按优先级进行排序
|
|
//按优先级进行排序
|
|
|
Collections.sort(agreementProductCosts, Comparator.comparingInt(AgreementProductCosts::getPriorityLevel));
|
|
Collections.sort(agreementProductCosts, Comparator.comparingInt(AgreementProductCosts::getPriorityLevel));
|
|
|
//遍历费用因子
|
|
//遍历费用因子
|
|
|
- String costsId = verificationCosts(agreementProductCosts, insAreaCompany, insOrders);
|
|
|
|
|
|
|
+ String costsId = verificationCosts(agreementProductCosts, insAreaCompany, insOrders,logs);
|
|
|
if(costsId != null) {
|
|
if(costsId != null) {
|
|
|
calcCosts(costsId, insAreaCompany);
|
|
calcCosts(costsId, insAreaCompany);
|
|
|
log.debug("费用因子校验通过,子订单id:" + insAreaCompany.getId() + ",费用id:" + costsId);
|
|
log.debug("费用因子校验通过,子订单id:" + insAreaCompany.getId() + ",费用id:" + costsId);
|
|
@@ -456,7 +458,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
* @param insOrders
|
|
* @param insOrders
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
- private String verificationCosts(List<AgreementProductCosts> agreementProductCosts,InsAreaCompany insAreaCompany,InsOrders insOrders){
|
|
|
|
|
|
|
+ private String verificationCosts(List<AgreementProductCosts> agreementProductCosts,InsAreaCompany insAreaCompany,InsOrders insOrders,StringBuilder logs){
|
|
|
//匹配费用因子
|
|
//匹配费用因子
|
|
|
//获取所有费用属性
|
|
//获取所有费用属性
|
|
|
List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
|
|
List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
|
|
@@ -504,11 +506,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
// }
|
|
// }
|
|
|
for (int i = 0; i < agreementProductCosts.size(); i++) {
|
|
for (int i = 0; i < agreementProductCosts.size(); i++) {
|
|
|
//判断是否匹配
|
|
//判断是否匹配
|
|
|
-
|
|
|
|
|
log.debug("费用因子匹配开始:" + agreementProductCosts.get(i).getId());
|
|
log.debug("费用因子匹配开始:" + agreementProductCosts.get(i).getId());
|
|
|
|
|
+
|
|
|
log.debug("车牌号:" + insOrders.getLicenseno());
|
|
log.debug("车牌号:" + insOrders.getLicenseno());
|
|
|
log.debug("费用因子备注:" + agreementProductCosts.get(i).getCostsDescription());
|
|
log.debug("费用因子备注:" + agreementProductCosts.get(i).getCostsDescription());
|
|
|
- if (judgements(agreementProductCosts.get(i).getCostsAttrLinks(), undwrtRulesAttrList, ruleAttrMappingVoList)) {
|
|
|
|
|
|
|
+ logs.append("费用id:"+agreementProductCosts.get(i).getId() + "\n");
|
|
|
|
|
+ logs.append("费用因子描述:"+agreementProductCosts.get(i).getCostsDescription() + "\n");
|
|
|
|
|
+ if (judgements(agreementProductCosts.get(i).getCostsAttrLinks(), undwrtRulesAttrList, ruleAttrMappingVoList,logs)) {
|
|
|
//返回 费用id 如果需要匹配非车的情况 将返回值返回list 后赛选
|
|
//返回 费用id 如果需要匹配非车的情况 将返回值返回list 后赛选
|
|
|
return agreementProductCosts.get(i).getId();
|
|
return agreementProductCosts.get(i).getId();
|
|
|
}
|
|
}
|
|
@@ -546,7 +550,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
private boolean judgements(List<PtlAgreementProductCostsAttrLink> ptlAgreementProductCostsAttrLinks,
|
|
private boolean judgements(List<PtlAgreementProductCostsAttrLink> ptlAgreementProductCostsAttrLinks,
|
|
|
- List<PtlAgreementUndwrtRulesAttr> rulesAttrs, List<RuleAttrMappingVo> ruleAttrMappingVoList){
|
|
|
|
|
|
|
+ List<PtlAgreementUndwrtRulesAttr> rulesAttrs, List<RuleAttrMappingVo> ruleAttrMappingVoList,StringBuilder logs){
|
|
|
boolean useFlag = true;
|
|
boolean useFlag = true;
|
|
|
|
|
|
|
|
for(int i=0;i<ptlAgreementProductCostsAttrLinks.size();i++){
|
|
for(int i=0;i<ptlAgreementProductCostsAttrLinks.size();i++){
|
|
@@ -563,6 +567,11 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
if(ruleAttrMappingVo == null){
|
|
if(ruleAttrMappingVo == null){
|
|
|
log.debug("规则匹配失败:" + ptlAgreementProductCostsAttrLinks.get(i).getAttrCode());
|
|
log.debug("规则匹配失败:" + ptlAgreementProductCostsAttrLinks.get(i).getAttrCode());
|
|
|
log.debug("传入的值找不到该属性:" + ptlAgreementProductCostsAttrLinks.get(finalI).getAttrCode());
|
|
log.debug("传入的值找不到该属性:" + ptlAgreementProductCostsAttrLinks.get(finalI).getAttrCode());
|
|
|
|
|
+ int finalI1 = i;
|
|
|
|
|
+ List<PtlAgreementUndwrtRulesAttr> collect = rulesAttrs.stream().filter(x -> x.getAttrCode().equals(ptlAgreementProductCostsAttrLinks.get(finalI1).getAttrCode())).collect(Collectors.toList());
|
|
|
|
|
+ if(collect.size() > 0){
|
|
|
|
|
+ logs.append("规则匹配失败:" + collect.get(0).getAttrName() + "\n");
|
|
|
|
|
+ }
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -574,6 +583,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
|
|
|
log.debug("规则匹配失败:" + ptlAgreementProductCostsAttrLinks.get(i).getAttrCode());
|
|
log.debug("规则匹配失败:" + ptlAgreementProductCostsAttrLinks.get(i).getAttrCode());
|
|
|
log.debug("检验的值:" + ptlAgreementProductCostsAttrLinks.get(i).getMin());
|
|
log.debug("检验的值:" + ptlAgreementProductCostsAttrLinks.get(i).getMin());
|
|
|
log.debug("传入的值:" + ruleAttrMappingVo.getValue());
|
|
log.debug("传入的值:" + ruleAttrMappingVo.getValue());
|
|
|
|
|
+ int finalI1 = i;
|
|
|
|
|
+ List<PtlAgreementUndwrtRulesAttr> collect = rulesAttrs.stream().filter(x -> x.getAttrCode().equals(ptlAgreementProductCostsAttrLinks.get(finalI1).getAttrCode())).collect(Collectors.toList());
|
|
|
|
|
+ if(collect.size() > 0){
|
|
|
|
|
+ logs.append("规则匹配失败:" + collect.get(0).getAttrName() + "\n");
|
|
|
|
|
+ }
|
|
|
|
|
+ logs.append("检验的值:" + ptlAgreementProductCostsAttrLinks.get(i).getMin() + "\n");
|
|
|
|
|
+ logs.append("传入的值:" + ruleAttrMappingVo.getValue() + "\n");
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
|