Bladeren bron

Merge remote-tracking branch 'origin/test' into test

wks 1 jaar geleden
bovenliggende
commit
656ee0ea33

+ 6 - 1
src/main/java/com/ydtech/constants/enums/dict/insurance/TrafficManagementVehicleType.java

@@ -107,7 +107,7 @@ public enum TrafficManagementVehicleType implements IBaseEnum {
     K25("K25", "中型越野客车", 83, 0),
     K31("K31", "小型普通客车", 84, 0),
     K32("K32", "小型越野客车", 85, 0),
-    K33("K33", "轿车", 86, 0),
+    K33("K33", "小型轿车", 86, 0),
     K41("K41", "微型普通客车", 87, 0),
     K42("K42", "微型越野客车", 88, 0),
     K43("K43", "微型轿车", 89, 0);
@@ -148,5 +148,10 @@ public enum TrafficManagementVehicleType implements IBaseEnum {
         TrafficManagementVehicleType trafficManagementVehicleType = Arrays.stream(TrafficManagementVehicleType.values()).filter(x -> x.code.equals(code)).findFirst().orElse(null);
         return !Objects.isNull(trafficManagementVehicleType) ? trafficManagementVehicleType.getDesc() : "";
     }
+
+    public static String getCode(String desc){
+        TrafficManagementVehicleType trafficManagementVehicleType = Arrays.stream(TrafficManagementVehicleType.values()).filter(x -> x.desc.equals(desc)).findFirst().orElse(null);
+        return!Objects.isNull(trafficManagementVehicleType)? trafficManagementVehicleType.getCode() : "";
+    }
 }
 

+ 11 - 0
src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java

@@ -106,6 +106,7 @@ public class RuleAttrMappingVo {
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("VehicleAge", String.valueOf(between)));
 
 
+
         //发证日期
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("DateofIssuance", carInfo.getIssueDate()));
         //车长
@@ -125,6 +126,10 @@ public class RuleAttrMappingVo {
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnersSex", ownerInfo.getGender().equals("男") ? "1" : "2"));
             //车主地址
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnersAddress", ownerInfo.getAddr()));
+            // 车主生日
+            String carOwnersBirthday = ownerInfo.getIdentifyNumber().substring(6,10) + "-" + ownerInfo.getIdentifyNumber().substring(10,12) + "-" + ownerInfo.getIdentifyNumber().substring(12,14);
+            ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnersBirthday", carOwnersBirthday));
+
         }
         //车主 姓名
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("CarOwnerName", ownerInfo.getName()));
@@ -139,6 +144,9 @@ public class RuleAttrMappingVo {
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("ApplicantSex", policyHolderInfo.getGender().equals("男") ? "1" : "2"));
             //投保人地址
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("ApplicantAddress", policyHolderInfo.getAddr()));
+            // 投保人生日
+            String applicantBirthday = policyHolderInfo.getIdentifyNumber().substring(6,10) + "-" + policyHolderInfo.getIdentifyNumber().substring(10,12) + "-" + policyHolderInfo.getIdentifyNumber().substring(12,14);
+            ruleAttrMappingVoList.add(new RuleAttrMappingVo("ApplicantBirthday", applicantBirthday));
         }
 
         CustomerInfoVo insuredPersonInfo = insOrders.getInsureinfo().toJavaObject(CustomerInfoVo.class);
@@ -151,6 +159,9 @@ public class RuleAttrMappingVo {
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("InsuredSex", insuredPersonInfo.getGender().equals("男") ? "1" : "2"));
             //被保人地址
             ruleAttrMappingVoList.add(new RuleAttrMappingVo("InsuredAddress", insuredPersonInfo.getAddr()));
+            //被保人生日
+            String insuredBirthday = insuredPersonInfo.getIdentifyNumber().substring(6,10) + "-" + insuredPersonInfo.getIdentifyNumber().substring(10,12) + "-" + insuredPersonInfo.getIdentifyNumber().substring(12,14);
+            ruleAttrMappingVoList.add(new RuleAttrMappingVo("InsuredBirthday", insuredBirthday));
         }
         String OPIConsistent = "0";
         if(StringUtils.isNotBlank(ownerInfo.getProperty())){

+ 85 - 2
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java

@@ -48,6 +48,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.DateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -2911,8 +2912,6 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                     logs.append("<span style=\"color:red;\">规则匹配失败:" + collect.get(0).getAttrName() + "</span>\n");
                 }
 
-
-
                 return false;
             }
 
@@ -3070,6 +3069,8 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
             return radioEqual(ptlAgreementProductCostsAttrLink, value);
         } else if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("datetime")){ // 时间
             return dateTimeEqual(ptlAgreementProductCostsAttrLink, value);
+        } else if (ptlAgreementUndwrtRulesAttr.getAttrType().equals("date")){
+            return dateEqual(ptlAgreementProductCostsAttrLink, value);
         }
 
         return false;
@@ -3104,6 +3105,8 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
             return radioEqual(ptlAgreementUndwrtRulesAttrLink, value);
         } else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("datetime")){
             return dateTimeEqual(ptlAgreementUndwrtRulesAttrLink, value, insOrders);
+        } else if(ptlAgreementUndwrtRulesAttr.getAttrType().equals("date")){
+            return dateEqual(ptlAgreementUndwrtRulesAttrLink,value);
         }
         return false;
     }
@@ -3367,6 +3370,46 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
     }
 
 
+    public boolean dateEqual(PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink, String value){
+//        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        if(Objects.isNull(value) || value.equals("")){
+            return false;
+        }
+        LocalDateTime v = LocalDate.parse(value).atStartOfDay();
+        LocalDateTime min = null,max = null;
+        if(!Objects.isNull(ptlAgreementProductCostsAttrLink.getMin())){
+            min = LocalDate.parse(ptlAgreementProductCostsAttrLink.getMin()).atStartOfDay();
+        }
+        if(!Objects.isNull(ptlAgreementProductCostsAttrLink.getMax())){
+            max = LocalDate.parse(ptlAgreementProductCostsAttrLink.getMax()).atStartOfDay();
+        }
+
+        //统一处理数值
+        if ("1".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            if (v.isAfter(min) && v.isBefore(max)) {
+                return true;
+            }
+        } else if ("2".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            if (v.isBefore(min)) {
+                return true;
+            }
+        } else if ("3".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            if (v.isBefore(min) || v.isEqual(min)) {
+                return true;
+            }
+        } else if ("4".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            if (v.isAfter(max)) {
+                return true;
+            }
+        } else if ("5".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            if (v.isAfter(max) || v.isEqual(max)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+
     public boolean dateTimeEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value, InsOrders insOrders){
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         //判断险种 的起保时间
@@ -3415,6 +3458,46 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         return false;
     }
 
+
+    public boolean dateEqual(PtlAgreementUndwrtRulesAttrLink ptlAgreementUndwrtRulesAttrLink, String value){
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+
+        if(!Objects.isNull(value) && !value.isEmpty()) {
+            LocalDateTime v = LocalDate.parse(value).atStartOfDay();
+            LocalDateTime min = null, max = null;
+            if (!Objects.isNull(ptlAgreementUndwrtRulesAttrLink.getMin())) {
+                min = LocalDate.parse(ptlAgreementUndwrtRulesAttrLink.getMin()).atStartOfDay();
+            }
+            if (!Objects.isNull(ptlAgreementUndwrtRulesAttrLink.getMax())) {
+                max = LocalDate.parse(ptlAgreementUndwrtRulesAttrLink.getMax()).atStartOfDay();
+            }
+
+            //统一处理数值
+            if ("1".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
+                if (!v.isAfter(min) && v.isBefore(max)) {
+                    return true;
+                }
+            } else if ("2".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
+                if (!v.isBefore(min)) {
+                    return true;
+                }
+            } else if ("3".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
+                if (!v.isBefore(min)) {
+                    return true;
+                }
+            } else if ("4".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
+                if (!v.isAfter(max)) {
+                    return true;
+                }
+            } else if ("5".equals(ptlAgreementUndwrtRulesAttrLink.getOperator())) {
+                if (!v.isAfter(max)) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
     /**
      * 获取车辆新旧车信息
      *

+ 20 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java

@@ -230,6 +230,8 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
                 .in(PtlAgreementProductCostsAttrLink::getCostsId, ids));
         Map<String, List<PtlAgreementProductCostsAttrLink>> groupedByCostsId = list.stream()
                 .collect(Collectors.groupingBy(PtlAgreementProductCostsAttrLink::getCostsId));
+
+        //费用描述
         groupedByCostsId.forEach((k, v) -> {
             pages.getRecords().stream().filter(x -> x.getId().equals(k)).findFirst().ifPresent(x -> x.setDesc(buildDesc(v, undwrtRulesAttrList)));
         });
@@ -385,6 +387,9 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
                         desc += ptlAgreementUndwrtRulesAttr.getAttrName() + "为" + v.get(i).getMin() + "\n";
                     }
                 }
+                if("date".equals(ptlAgreementUndwrtRulesAttr.getAttrType())){
+                    desc += dateIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
+                }
             }
         }
         return desc;
@@ -414,6 +419,21 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         return "";
     }
 
+    private String dateIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink) {
+        if ("1".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "范围值" + ptlAgreementProductCostsAttrLink.getMin() + "到" + ptlAgreementProductCostsAttrLink.getMax();
+        } else if ("2".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于" + ptlAgreementProductCostsAttrLink.getMin();
+        } else if ("3".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于等于" + ptlAgreementProductCostsAttrLink.getMin();
+        } else if ("4".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于" + ptlAgreementProductCostsAttrLink.getMax();
+        } else if ("5".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于等于" + ptlAgreementProductCostsAttrLink.getMax();
+        }
+        return "";
+    }
+
     @Override
     public AgreementProductCostsSave costsGet(String costsId, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
         //设置费用入口信息

+ 18 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementUndwrtRulesNewServiceImpl.java

@@ -183,6 +183,9 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
                     desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("不包含").append(v.get(i).getMin()).append("\n");
                 }
             }
+            if("date".equals(ptlAgreementUndwrtRulesAttr.getAttrType())){
+                desc.append(dateIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i))).append("\n");
+            }
         }
         return desc.toString();
     }
@@ -207,6 +210,21 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
         return "";
     }
 
+    private String dateIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink ptlAgreementProductCostsAttrLink) {
+        if ("1".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "范围值" + ptlAgreementProductCostsAttrLink.getMin() + "到" + ptlAgreementProductCostsAttrLink.getMax();
+        } else if ("2".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于" + ptlAgreementProductCostsAttrLink.getMin();
+        } else if ("3".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于等于" + ptlAgreementProductCostsAttrLink.getMin();
+        } else if ("4".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于" + ptlAgreementProductCostsAttrLink.getMax();
+        } else if ("5".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于等于" + ptlAgreementProductCostsAttrLink.getMax();
+        }
+        return "";
+    }
+
     /**
      * 验证承保规则表单
      */

+ 4 - 3
src/main/java/com/ydtech/utils/baidu/MultiObjectDetect.java

@@ -3,6 +3,7 @@ package com.ydtech.utils.baidu;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.ydtech.constants.enums.dict.insurance.TrafficManagementVehicleType;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.CardUserInfo;
 import org.apache.commons.lang3.StringUtils;
@@ -135,15 +136,15 @@ public class MultiObjectDetect {
                 }else if("非营运".equals(useNature)){
                     cardUserInfo.setVehicleUse("08");
                 }
-                cardUserInfo.setCategory("H31");
+
             }else {
                 cardUserInfo.setPlateType("A0");
-                cardUserInfo.setCategory("K33");
+//                cardUserInfo.setCategory("K33");
                 if("非营运".equals(useNature)){
                     cardUserInfo.setVehicleUse("05");
                 }
             }
-
+            cardUserInfo.setCategory(TrafficManagementVehicleType.getCode(hpzl));
             //判断使用性质
             cardUserInfo.setUseNature(JSON.parseObject(jb.getString("使用性质")).getString("words"));
             cardUserInfo.setMotorUsageTypeCode("8A");