Browse Source

中煤添加新能源产品报价

li.pengfei 2 years ago
parent
commit
d09beb03f7

+ 3 - 2
src/main/java/com/ydtech/constants/enums/dict/insurance/EnergyType.java

@@ -15,11 +15,12 @@ import lombok.Getter;
 @DictEnum(key = "energyType", desc = "能源种类")
 public enum EnergyType implements IBaseEnum {
 
-    ET_0("0", "油", 0, 0),
+    ET_0("0", "油", 0, 0),
     ET_1("1", "纯电动", 1, 0),
     ET_2("2", "燃料电池", 2, 0),
     ET_3("3", "插电式混合动力", 3, 0),
-    ET_4("4", "其他混合动力", 4, 0);
+    ET_4("4", "其他混合动力", 4, 0),
+    ET_9("9", "其他", 9, 0);
 
     // 编号
     private final String code;

+ 48 - 5
src/main/java/com/ydtech/modules/order/constants/InsuranceTypeCorrespondence.java

@@ -35,13 +35,43 @@ public class InsuranceTypeCorrespondence {
     // 绝对免赔
     protected static final String[] ABSOLUTE_DEDUCTIBLE = {"MJ1", "MJ2", "MJ3", "MJ4"};
 
-    protected static final Map<String, String> RISK = new HashMap<>();
+    //中煤机动车险种
+    protected static final Map<String, String> ZhongMei_RISK_1379 = new HashMap<>();
+    //中煤新能源车险种
+    protected static final Map<String, String> ZhongMei_RISK_1382 = new HashMap<>();
+    //中煤产品编码
+    protected static final Map<String, String> ZhongMei_PRODUCT=new HashMap<>();
+    //中煤险种编码
+    protected static final Map<String, Map<String, String>> ZhongMei_RISK=new HashMap<>();
+
     protected static final Map<String, String> HuaTai_RISK = new HashMap<>();
 
     static {
-        RISK.put("0507", "0330");
-        RISK.put("0510", "0361");
+        ZhongMei_RISK_1379.put("0507", "0330");
+        ZhongMei_RISK_1379.put("0510", "0361");
+    }
+
+    static {
+        ZhongMei_RISK_1382.put("0507", "0330");
+        ZhongMei_RISK_1382.put("0510", "0365");
+    }
+    static {
+        ZhongMei_PRODUCT.put("0", "1379");//燃油-机动车
+        ZhongMei_PRODUCT.put("1", "1382");//纯电动-新能源
+        ZhongMei_PRODUCT.put("2", "1382");//燃料电池-新能源
+        ZhongMei_PRODUCT.put("3", "1382");//插电混合-新能源
+        ZhongMei_PRODUCT.put("4", "1379");//其他混合动力-机动车
+        ZhongMei_PRODUCT.put("9", "1379");//其他-机动车
+    }
+    static {
+        ZhongMei_RISK.put("0", ZhongMei_RISK_1379);//燃油-机动车
+        ZhongMei_RISK.put("1", ZhongMei_RISK_1382);//纯电动-新能源
+        ZhongMei_RISK.put("2", ZhongMei_RISK_1382);//燃料电池-新能源
+        ZhongMei_RISK.put("3", ZhongMei_RISK_1382);//插电混合-新能源
+        ZhongMei_RISK.put("4", ZhongMei_RISK_1379);//燃油-机动车
+        ZhongMei_RISK.put("9", ZhongMei_RISK_1379);//燃油-机动车
     }
+
     static {
         HuaTai_RISK.put("0507", "1002");
         HuaTai_RISK.put("0510", "1251");
@@ -82,9 +112,22 @@ public class InsuranceTypeCorrespondence {
         return ABSOLUTE_DEDUCTIBLE;
     }
 
-    public static Map<String, String> getRisk() {
-        return RISK;
+    public static Map<String, String> getZhongMei_RISK_1379() {
+        return ZhongMei_RISK_1379;
+    }
+
+    public static Map<String, Map<String, String>> getZhongMei_RISK() {
+        return ZhongMei_RISK;
+    }
+
+    public static Map<String, String> getZhongMei_RISK_1382() {
+        return ZhongMei_RISK_1382;
+    }
+
+    public static Map<String, String> getZhongMei_PRODUCT() {
+        return ZhongMei_PRODUCT;
     }
+
     public static Map<String, String> getHuaTaiRisk() {
         return HuaTai_RISK;
     }

+ 11 - 5
src/main/java/com/ydtech/modules/order/entity/api/zhongmei/request/QuotedPriceRequest.java

@@ -85,6 +85,10 @@ public class QuotedPriceRequest extends BaseRequest {
         @JsonProperty("accident")
         private List<AccidentDTO> accident;
 
+        //产品代码
+        @JsonProperty("productPlan")
+        private String productPlan;
+
         public BusinessDataDTO(BaseQuoteInfoVo baseQuoteInfoVo, ModelsQueryResponse.SimpleStadarCarDTO simpleStadarCarDTO, AccidentalDrivingVo accidentalDrivingVo, ZmConfigureParameters zmConfigureParameters) {
             CarInfoVo carInfo = baseQuoteInfoVo.getCarInfo();
             List<RiskInfoVo> riskList = baseQuoteInfoVo.getRiskList();
@@ -93,12 +97,14 @@ public class QuotedPriceRequest extends BaseRequest {
             CustomerInfoVo policyHolderInfo = baseQuoteInfoVo.getPolicyHolderInfo();
             CustomerInfoVo insuredPersonInfo = baseQuoteInfoVo.getInsuredPersonInfo();
             int i = Integer.parseInt(carInfo.getSeatCount());
+            //产品编码
+            this.productPlan=InsuranceTypeCorrespondence.getZhongMei_PRODUCT().get(simpleStadarCarDTO.getEnergyTypes());
             // 保单归属地
             this.policyLocation = new PolicyLocationDTO(zmConfigureParameters);
             // 车辆信息
             this.insuredObject = new InsuredObjectDTO(carInfo, simpleStadarCarDTO);
             // 保险信息
-            this.contract = new ContractDTO().getContract(riskList, kindList, i - 1);
+            this.contract = new ContractDTO().getContract(riskList, kindList, i - 1,simpleStadarCarDTO.getEnergyTypes());
             // 客户信息
             this.customer = new CustomerDTO().getCustomers(ownerInfo, policyHolderInfo, insuredPersonInfo);
             // 驾意险
@@ -272,11 +278,11 @@ public class QuotedPriceRequest extends BaseRequest {
         @JsonProperty("coverage")
         private List<CoverageDTO> coverage;
 
-        public List<ContractDTO> getContract(List<RiskInfoVo> riskInfoVos, List<KindInfoVo> kindInfoVos, Integer quantity) {
+        public List<ContractDTO> getContract(List<RiskInfoVo> riskInfoVos, List<KindInfoVo> kindInfoVos, Integer quantity,String energyTypes) {
             List<ContractDTO> contractDTOS = new ArrayList<>();
             for (RiskInfoVo riskInfoVo : riskInfoVos) {
                 ContractDTO contractDTO = new ContractDTO();
-                contractDTO.contractMain = new ContractMainDTO(riskInfoVo);
+                contractDTO.contractMain = new ContractMainDTO(riskInfoVo,energyTypes);
                 if (InsuranceRisk.TRAFFIC.getCode().equals(riskInfoVo.getRiskCode())) {
                     contractDTO.coverage = Collections.singletonList(new CoverageDTO().fetchTraffic());
                 }
@@ -310,8 +316,8 @@ public class QuotedPriceRequest extends BaseRequest {
             @JsonProperty("reinsuranceFlag")
             private String reinsuranceFlag;
 
-            public ContractMainDTO(RiskInfoVo riskInfoVo) {
-                this.riskCode = InsuranceTypeCorrespondence.getRisk().get(riskInfoVo.getRiskCode());
+            public ContractMainDTO(RiskInfoVo riskInfoVo,String energyTypes) {
+                this.riskCode = InsuranceTypeCorrespondence.getZhongMei_RISK().get(energyTypes).get(riskInfoVo.getRiskCode());
                 String startDate = riskInfoVo.getStartDate();
                 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                 LocalDate localDate = LocalDate.parse(startDate, formatter);

+ 6 - 2
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -370,7 +370,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
         // 2. 组装请求体
         InsurancePolicyPrintRequest request = new InsurancePolicyPrintRequest();
-        request.setRiskCode(InsuranceTypeCorrespondence.getRisk().get(riskCode));
+        //获取能源种类
+        CarInfoVo carInfoVo=JSON.toJavaObject(order.getCarinfo(), CarInfoVo.class);
+        request.setRiskCode(InsuranceTypeCorrespondence.getZhongMei_RISK().get(carInfoVo.getEnergyType()).get(riskCode));
         request.setPolicyNo(policyNo);
         request.setDocumentType(code);
         request.setHead(new BaseRequestHead(zmConfigureParameters));
@@ -514,7 +516,9 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         insAreaCompany.setId(quotedPriceResponse.getBusinessNo());
         insAreaCompany.setInsOrderNo(quotedPriceResponse.getBusinessNo());
         // 车船税
-        TaxArrears taxArrears = new TaxArrears("往年欠税", quotedPriceResponse.getTaxinfo().getPrePayTax(), quotedPriceResponse.getTaxinfo().getDelayPayTax());
+        double prePayTax=quotedPriceResponse.getTaxinfo()!=null?quotedPriceResponse.getTaxinfo().getPrePayTax():0;
+        double delayPayTax=quotedPriceResponse.getTaxinfo()!=null?quotedPriceResponse.getTaxinfo().getDelayPayTax():0;
+        TaxArrears taxArrears = new TaxArrears("往年欠税", prePayTax, delayPayTax);
         List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
         insAreaCompany.setTaxArrears(JSON.parseArray(JSON.toJSONString(taxArrearsList)));