Explorar o código

承保 费用因子 bug修改

785834757 %!s(int64=2) %!d(string=hai) anos
pai
achega
6f4d7b87c7

+ 28 - 158
src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java

@@ -7,8 +7,10 @@ import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
+import com.ydtech.modules.order.service.InsOrdersService;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -33,170 +35,21 @@ public class RuleAttrMappingVo {
         this.value = value;
     }
 
-    public static List<RuleAttrMappingVo> getRuleAttrMappingVoList(BaseQuoteInfoVo baseQuoteInfoVo, QuoteRespVo quoteRespVo) {
-        List<RuleAttrMappingVo> ruleAttrMappingVoList = new ArrayList<>();
-        CarInfoVo carInfo = baseQuoteInfoVo.getCarInfo();
-        //车牌号
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("LicenseNo", carInfo.getLicenseNo()));
-        //品牌型号
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("BrandandModel", carInfo.getCarBrand()));
-        //座位数
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("NumberofSeats", carInfo.getSeatCount()));
-        //新车购置价
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("NumberofSeats", carInfo.getPurchasePrice()));
-        //车辆用途
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleUsage", carInfo.getVehicleclass()));
-        //车辆种类
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleType", carInfo.getCimodelclass()));
-        //核定载质量
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("AuthorizedLoadWeight", carInfo.getLimitLoad()));
-        //整备质量
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CurbWeight", carInfo.getVehicleweight()));
-        //能源类型
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("EnergyType", carInfo.getEnergyType()));
-        //注册日期
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("RegistrationDate", carInfo.getRegisterDate()));
-        //是否过户
-//        ruleAttrMappingVoList.add(new RuleAttrMappingVo("WhetherTransferred", carInfo.getTransferFlag()));
-        //是否新车
-//        ruleAttrMappingVoList.add(new RuleAttrMappingVo("WhetherNewCar", carInfo.getNoLicenseFlag()));
-        //发证日期
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("DateofIssuance", carInfo.getIssueDate()));
-        //车长
-//        ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleLength", carInfo.getCarLength()));
-        //转续保
-//        ruleAttrMappingVoList.add(new RuleAttrMappingVo("RenewalofInsurance", carInfo.getRenewalFlag()));
-
-        CustomerInfoVo ownerInfo = baseQuoteInfoVo.getOwnerInfo();
-        //车主 证件号码(前6位)
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnersIDNumber", ownerInfo.getIdentifyNumber().substring(0, 6)));
-        //车主 年龄
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnersAge", ownerInfo.getAge()));
-        //车主 性别
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnersSex", ownerInfo.getGender()));
-        //车主 姓名
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnerName", ownerInfo.getName()));
-
-        CustomerInfoVo policyHolderInfo = baseQuoteInfoVo.getPolicyHolderInfo();
-        //投保人 证件号码(前6位)
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("PolicyholdersIDNumber", policyHolderInfo.getIdentifyNumber().substring(0, 6)));
-        //投保人 年龄
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("PolicyholdersAge", policyHolderInfo.getAge()));
-        //投保人 性别
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("PolicyholdersSex", policyHolderInfo.getGender()));
-
-        CustomerInfoVo insuredPersonInfo = baseQuoteInfoVo.getInsuredPersonInfo();
-        //被保人 证件号码(前6位)
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("InsuredIDNumber", insuredPersonInfo.getIdentifyNumber().substring(0, 6)));
-        //被保人 年龄
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("InsuredAge", insuredPersonInfo.getAge()));
-        //被保人 性别
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("InsuredSex", insuredPersonInfo.getGender()));
-
-        //险别信息
-        List<KindInfoVo> kindInfoVos = baseQuoteInfoVo.getKindList();
-        kindInfoVos.forEach(kindInfoVo -> {
-            //机动车损失险
-            if(InsurKind.A.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("MotorVehicleDamageInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //第三者责任险
-            if(InsurKind.B.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdPartyLiabilityInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //司机责任险
-            if(InsurKind.D3.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverLiabilityInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //乘客责任险
-            if(InsurKind.D4.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerLiabilityInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //车身划痕险
-            if(InsurKind.L.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarScratchInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //绝对免赔率特约险(车损)
-            if(InsurKind.MJ1.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleDamageAbsoluteDeductibleSpecialInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //绝对免赔率特约险(三者)
-            if(InsurKind.MJ2.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdAbsoluteDeductibleSpecialInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //绝对免赔率特约险(司机)
-            if(InsurKind.MJ3.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverAbsoluteDeductibleSpecialInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //绝对免赔率特约险(乘客)
-            if(InsurKind.MJ4.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerAbsoluteDeductibleSpecialInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //附加医保-三者
-            if(InsurKind.SY_FJ_YBW1.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("ThirdPartyAdditionalMedicalInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //附加医保-座位险(乘客)
-            if(InsurKind.SY_FJ_YBW2.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerAdditionalMedicalInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //附加医保-座位险(司机)
-            if(InsurKind.SY_FJ_YBW3.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverAdditionalMedicalInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //法定节假日限额翻倍险
-            if(InsurKind.BD.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("LegalHolidayLimitDoublingInsurance", String.valueOf(kindInfoVo.getAmount())));
-            //道路救援服务特约条款
-            if(InsurKind.TY1.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("RoadsideAssistanceServiceSpecialClause", String.valueOf(kindInfoVo.getServiceTimes())));
-            //车辆安全检测特约条款
-            if(InsurKind.TY2.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleSafetyInspectionSpecialClause", String.valueOf(kindInfoVo.getServiceTimes())));
-            //代为驾驶服务特约条款
-            if(InsurKind.TY3.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("SubstituteDrivingServiceSpecialClause", String.valueOf(kindInfoVo.getServiceTimes())));
-            //代为送检服务特约条款
-            if(InsurKind.TY4.equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("SubstituteInspectionServiceSpecialClause", String.valueOf(kindInfoVo.getServiceTimes())));
-        });
-        //交强保费
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryTrafficAccidentLiabilityInsurancePremium", String.valueOf(quoteRespVo.getJqPremium())));
-        //车船税
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleandVesselTax", String.valueOf(quoteRespVo.getTaxAmount())));
-        //非车险
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("NonMotorInsurance", String.valueOf(quoteRespVo.getJyPremium())));
-        //总折扣率
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("TotalDiscountRate", String.valueOf(quoteRespVo.getTotalAdjustRate())));
-        //交强折扣
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryInsuranceDiscount", String.valueOf(quoteRespVo.getJqAdjustRate())));
-        //商业折扣
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CommercialDiscount", String.valueOf(quoteRespVo.getSyAdjustRate())));
-        //数值型总评分
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("NumericalOverallRating", String.valueOf(quoteRespVo.getILogPreUdwMess())));
-        //交强评分
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryInsuranceRating", String.valueOf(quoteRespVo.getJqScore())));
-        //商业评分
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CommercialRating", String.valueOf(quoteRespVo.getSyScore())));
-        //交强赔付率
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryInsurancePayoutRate", String.valueOf(quoteRespVo.getJqLossRation())));
-        //商业赔付率
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CommercialPayoutRate", String.valueOf(quoteRespVo.getSyLossRation())));
-        //总赔付率
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("TotalPayoutRate", String.valueOf(quoteRespVo.getLossRation())));
-        //真假单交
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("AuthenticAndFakeOrdersExchange", quoteRespVo.getIszdj()));
-        //出险次数
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("NumberOfClaims", quoteRespVo.getAccidentInfoStr()));
-        //太平的分区
-//        ruleAttrMappingVoList.add(new RuleAttrMappingVo("PeacefulDistrict", quoteRespVo.getExtendInfo()));
-        return ruleAttrMappingVoList;
-    }
-
-
     public static List<RuleAttrMappingVo> getRuleAttrMappingVoList(InsAreaCompany insAreaCompany,InsOrders insOrders) {
         List<RuleAttrMappingVo> ruleAttrMappingVoList = new ArrayList<>();
         CarInfoVo carInfo = insOrders.getCarinfo().toJavaObject(CarInfoVo.class);
         //车牌号
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("LicenseNo", carInfo.getLicenseNo()));
         //品牌型号
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("BrandandModel", carInfo.getCarBrand()));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("BrandandModel", carInfo.getModelcname()));
         //座位数
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerCarSeatingCapacity", carInfo.getSeatCount()));
         //新车购置价
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("PurchasePriceofNewVehicle", carInfo.getPurchasePrice()));
         //车辆用途
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleUsage", carInfo.getVehicleclass()));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("NatureOfUse", carInfo.getVehicleUse()));
         //车辆种类
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleType", carInfo.getCimodelclass()));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarType", carInfo.getCimodelclass()));
         //核定载质量
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("AuthorizedLoadWeight", carInfo.getLimitLoad()));
         //整备质量
@@ -229,11 +82,11 @@ public class RuleAttrMappingVo {
 
         CustomerInfoVo policyHolderInfo = insOrders.getApplyinfo().toJavaObject(CustomerInfoVo.class);
         //投保人 证件号码(前6位)
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("PolicyholdersIDNumber", policyHolderInfo.getIdentifyNumber().substring(0, 6)));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("ApplicantIDNumber", policyHolderInfo.getIdentifyNumber().substring(0, 6)));
         //投保人 年龄
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("PolicyholdersAge", policyHolderInfo.getAge()));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("ApplicantAge", policyHolderInfo.getAge()));
         //投保人 性别
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("PolicyholdersSex", policyHolderInfo.getGender()));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("ApplicantSex", policyHolderInfo.getGender()));
 
         CustomerInfoVo insuredPersonInfo = insOrders.getInsureinfo().toJavaObject(CustomerInfoVo.class);
         //被保人 证件号码(前6位)
@@ -257,7 +110,7 @@ public class RuleAttrMappingVo {
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("DriverLiabilityInsurance", String.valueOf(kindInfoVo.getAmount())));
             //乘客责任险
             if(InsurKind.D4.getCode().equals(kindInfoVo.getKindCode()))
-                ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerLiabilityInsurance", String.valueOf(kindInfoVo.getAmount())));
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("PassengerLiabilityInsurance", String.valueOf(kindInfoVo.getUnitAmount())));
             //车身划痕险
             if(InsurKind.L.getCode().equals(kindInfoVo.getKindCode()))
                 ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarScratchInsurance", String.valueOf(kindInfoVo.getAmount())));
@@ -323,9 +176,26 @@ public class RuleAttrMappingVo {
             }
         }
         //交强评分
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryInsuranceRating", String.valueOf(insAreaCompany.getJqScore())));
+        if(insAreaCompany.getJqScore() != null){
+            if(pattern.matcher(insAreaCompany.getJqScore()).matches()) {
+                //数值型评分
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryInsuranceRating", String.valueOf(insAreaCompany.getJqScore())));
+            } else {
+                //字母型评分
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("CharacterBasedCompulsoryInsuranceRating", String.valueOf(insAreaCompany.getJqScore())));
+            }
+        }
+//        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryInsuranceRating", String.valueOf(insAreaCompany.getJqScore())));
         //商业评分
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("CommercialRating", String.valueOf(insAreaCompany.getSyScore())));
+        if(insAreaCompany.getSyScore() != null){
+            if(pattern.matcher(insAreaCompany.getSyScore()).matches()) {
+                //数值型评分
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("CommercialRating", String.valueOf(insAreaCompany.getSyScore())));
+            } else {
+                //字母型评分
+                ruleAttrMappingVoList.add(new RuleAttrMappingVo("CharacterBasedCommercialRating", String.valueOf(insAreaCompany.getSyScore())));
+            }
+        }
         //交强赔付率
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("CompulsoryInsurancePayoutRate", String.valueOf(insAreaCompany.getJqLossRation())));
         //商业赔付率

+ 64 - 12
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java

@@ -122,9 +122,14 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         PtlAgreementProductCostsExport ptlAgreementProductCostsExport = ptlAgreementProductCostsExportService.getOne(new LambdaQueryWrapper<PtlAgreementProductCostsExport>().eq(PtlAgreementProductCostsExport::getCostsId, costsId));
         InsFeeOrderNew insFeeOrderNew = new InsFeeOrderNew();
         insFeeOrderNew.setId(IdGenerate.nextId());
+        insFeeOrderNew.setCostsId(costsId);
         insFeeOrderNew.setAgreementId(ptlAgreementProductCostsNew.getAgreementId());
         //存储部门id与用户id
         InsOrders order = insOrdersService.getById(insAreaCompany.getOrderno());
+        InsFeeOrderNew insFeeOrderNewByCompanyId = insFeeOrderNewService.getInsFeeOrderNewByCompanyId(insAreaCompany.getId());
+        if(insFeeOrderNewByCompanyId != null){
+            insFeeOrderNew.setId(insFeeOrderNewByCompanyId.getId());
+        }
         insFeeOrderNew.setDeptId(order.getDeptid());
         insFeeOrderNew.setUserId(order.getUserid());
         insFeeOrderNew.setInsOrderNo(insAreaCompany.getId());
@@ -468,6 +473,22 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 return false;
             //查找 费用因子规则
             PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = rulesAttrs.stream().filter(x -> x.getAttrCode().equals(ptlAgreementProductCostsAttrLinks.get(finalI).getAttrCode())).findFirst().get();
+            //如果是多选 对value进行转换
+            if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")) {
+                PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
+                        x.getCode().equals(ruleAttrMappingVo.getValue())).findFirst().orElse(null);
+                ruleAttrMappingVo.setValue(ptlAgreementUndwrtRulesDictLabal.getName());
+            }
+            //如果是单选 并且是 性别的话 转换为code
+            if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio"))
+            {
+                if("CarOwnersSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) || "ApplicantSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) ||
+                        "InsuredSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode())){
+                    PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
+                            x.getName().equals(ruleAttrMappingVo.getValue())).findFirst().orElse(null);
+                    ruleAttrMappingVo.setValue(ptlAgreementUndwrtRulesDictLabal.getCode());
+                }
+            }
             useFlag = attrEqual(ptlAgreementProductCostsAttrLinks.get(i), ptlAgreementUndwrtRulesAttr, ruleAttrMappingVo.getValue());
             if(!useFlag)
                 return false;
@@ -491,12 +512,30 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
             int finalI = i;
 
             //查找规则中的 传值属性
-            RuleAttrMappingVo ruleAttrMappingVo = ruleAttrMappingVoList.stream().filter(x -> x.getAttrCode().equals(ptlAgreementUndwrtRulesAttrLinks.get(finalI).getAttrCode())).findFirst().orElse(null);
+            RuleAttrMappingVo ruleAttrMappingVo = ruleAttrMappingVoList.stream().filter(x ->
+                    x.getAttrCode().equals(ptlAgreementUndwrtRulesAttrLinks.get(finalI).getAttrCode())).findFirst().orElse(null);
+
             //如果查找不到 传值属性 直接费用对比失败
             if(ruleAttrMappingVo == null)
                 continue;
             //查找 费用因子规则
             PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = rulesAttrs.stream().filter(x -> x.getAttrCode().equals(ptlAgreementUndwrtRulesAttrLinks.get(finalI).getAttrCode())).findFirst().get();
+            //如果是多选 对value进行转换
+            if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("checkbox")) {
+                PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
+                        x.getCode().equals(ruleAttrMappingVo.getValue())).findFirst().orElse(null);
+                ruleAttrMappingVo.setValue(ptlAgreementUndwrtRulesDictLabal.getName());
+            }
+            //如果是单选 并且是 性别的话 转换为code
+            if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio"))
+            {
+                if("CarOwnersSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) || "ApplicantSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode()) ||
+                        "InsuredSex".equals(ptlAgreementUndwrtRulesAttr.getAttrCode())){
+                    PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
+                            x.getName().equals(ruleAttrMappingVo.getValue())).findFirst().orElse(null);
+                    ruleAttrMappingVo.setValue(ptlAgreementUndwrtRulesDictLabal.getCode());
+                }
+            }
             useFlag = attrEqual(ptlAgreementUndwrtRulesAttrLinks.get(i), ptlAgreementUndwrtRulesAttr, ruleAttrMappingVo.getValue());
             if(!useFlag)
                 return false;
@@ -550,6 +589,10 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         }else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("input")){
             return inputTextEqual(ptlAgreementProductCostsAttrLink,value);
         }else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("select")){
+            //截取车牌
+            if(ptlAgreementUndwrtRulesAttr.getAttrCode().equals("LicenseNo")){
+                value = value.substring(0,2);
+            }
             return selectEqual(ptlAgreementProductCostsAttrLink,value);
         }else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("radio")){
             return radioEqual(ptlAgreementProductCostsAttrLink,value);
@@ -586,10 +629,10 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
     }
 
     private boolean checkBoxEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value){
-        if(ptlAgreementUndwrtRulesAttrLink.getMin().contains(value)){
-            return false;
+        if(!ptlAgreementUndwrtRulesAttrLink.getMin().contains(value)){
+            return true;
         }
-        return true;
+        return false;
     }
 
     /**
@@ -630,7 +673,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         double v = Double.parseDouble(value);
         //统一处理数值
         if("1".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())){
-            if(Integer.parseInt(ptlAgreementUndwrtRulesAttrLink.getMin()) <= v &&
+            if(Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMin()) <= v &&
                     Double.parseDouble(ptlAgreementUndwrtRulesAttrLink.getMax()) >= v){
                 return false;
             }
@@ -665,7 +708,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         String[] split = ptlAgreementProductCostsAttrLink.getMin().split(",");
         AtomicBoolean returnBool = new AtomicBoolean(false);
         Arrays.stream(split).forEach(x -> {
-            if(x.contains(value)){
+            if(value.contains(x)){
                 returnBool.set(true);
             }
         });
@@ -677,7 +720,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         String[] split = ptlAgreementUndwrtRulesAttrLink.getMin().split(",");
         AtomicBoolean returnBool = new AtomicBoolean(true);
         Arrays.stream(split).forEach(x -> {
-            if(x.contains(value)){
+            if(!x.equals("") && value.contains(x)){
                 returnBool.set(false);
             }
         });
@@ -698,7 +741,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
     }
 
     private boolean selectEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value){
-        if(ptlAgreementUndwrtRulesAttrLink.getMin().contains(value)){
+        if(ptlAgreementUndwrtRulesAttrLink.getMin() != null && ptlAgreementUndwrtRulesAttrLink.getMin().contains(value)){
             return false;
         }
         return true;
@@ -707,7 +750,12 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
     private boolean radioEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value){
         //新能源判断
         if("NewEnergy".equals(ptlAgreementProductCostsAttrLink.getAttrCode())){
-            if(EnergyType.isNewEnergy(ptlAgreementProductCostsAttrLink.getMin())){
+            // 是否是新能源车
+            boolean newEnergy = EnergyType.isNewEnergy(value);
+            if(newEnergy && ptlAgreementProductCostsAttrLink.getMin().equals("1")){
+                return true;
+            }else if(!newEnergy && ptlAgreementProductCostsAttrLink.getMin().equals("0"))
+            {
                 return true;
             }
         }else
@@ -720,11 +768,15 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
     private boolean radioEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value){
         //新能源判断
         if("NewEnergy".equals(ptlAgreementUndwrtRulesAttrLink.getAttrCode())){
-            if(EnergyType.isNewEnergy(ptlAgreementUndwrtRulesAttrLink.getMin())){
+            // 是否是新能源车
+            boolean newEnergy = EnergyType.isNewEnergy(value);
+            if(newEnergy && ptlAgreementUndwrtRulesAttrLink.getMin().equals("1")){
+                return false;
+            }else if(!newEnergy && ptlAgreementUndwrtRulesAttrLink.getMin().equals("0"))
+            {
                 return false;
             }
-        }else
-        if(ptlAgreementUndwrtRulesAttrLink.getMin().contains(value)){
+        }else if(ptlAgreementUndwrtRulesAttrLink.getMin().contains(value)){
             return false;
         }
         return true;

+ 0 - 1
src/main/java/com/ydtech/modules/inv/utils/excel/InvSourceDataListener.java

@@ -55,7 +55,6 @@ public class InvSourceDataListener implements ReadListener<InvSourceExcel> {
                             LocalDate o = LocalDate.parse(dateString,formatter1);
                             field.set(data,formatter.format(o));
                         }
-
                     }else{
                         if(field.get(data) == null){
                             field.set(data,"0");

+ 4 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/InsFeeOrderNew.java

@@ -30,6 +30,10 @@ public class InsFeeOrderNew {
     @TableField(value = "ins_order_no")
     private String insOrderNo;
 
+    @ApiModelProperty(value = "费用id")
+    @TableField(value = "costs_id")
+    private String costsId;
+
     @ApiModelProperty(value = "协议id")
     @TableField(value = "agreement_id")
     private String agreementId;

+ 1 - 1
src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementProductCostsNew.java

@@ -94,7 +94,7 @@ public class PtlAgreementProductCostsNew {
 
     @ApiModelProperty(value = "优先级")
     @TableField(value = "priority_level")
-    private String priorityLevel;
+    private Integer priorityLevel;
 
     @ApiModelProperty(value = "生成的描述")
     @TableField(exist = false)

+ 2 - 0
src/main/java/com/ydtech/modules/protocols/service/InsFeeOrderNewService.java

@@ -11,4 +11,6 @@ import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsAttrLink;
 */
 public interface InsFeeOrderNewService extends IService<InsFeeOrderNew> {
 
+    InsFeeOrderNew getInsFeeOrderNewByCompanyId(String companyId);
+
 }

+ 6 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.protocols.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.order.entity.InsFeeOrder;
 import com.ydtech.modules.protocols.dao.InsFeeOrderNewMapper;
@@ -19,4 +20,9 @@ import org.springframework.stereotype.Service;
 public class InsFeeOrderNewServiceImpl extends ServiceImpl<InsFeeOrderNewMapper, InsFeeOrderNew>
         implements InsFeeOrderNewService {
 
+    @Override
+    public InsFeeOrderNew getInsFeeOrderNewByCompanyId(String companyId) {
+        return baseMapper.selectOne(new LambdaQueryWrapper<InsFeeOrderNew>()
+                .eq(InsFeeOrderNew::getInsOrderNo, companyId));
+    }
 }

+ 2 - 1
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java

@@ -123,7 +123,8 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
     }
 
     private String radioIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr,PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink){
-        PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x -> x.getCode().equals(ptlAgreementProductCostsAttrLink.getMin())).findAny().get();
+        PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
+                x.getCode().equals(ptlAgreementProductCostsAttrLink.getMin())).findAny().get();
         return ptlAgreementUndwrtRulesAttr.getAttrName() + "为" + ptlAgreementUndwrtRulesDictLabal.getName();
     }