瀏覽代碼

1.平安商业险赋值取值封装
2.支付回调业务修改

hxl13994548489 2 年之前
父節點
當前提交
27688b4a21

+ 1 - 1
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/PayReturnRequest.java

@@ -27,7 +27,7 @@ public class PayReturnRequest extends PingAnBaseRequest {
     /***
      *O	备注
      */
-    private RemarkInfoDto remark;
+    private String remark;
 
 
     /***

+ 66 - 1
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/QuoteRequest.java

@@ -12,6 +12,7 @@ import com.ydtech.modules.order.entity.api.pingan.utils.checkNull.Validator;
 import com.ydtech.modules.order.entity.config.PingAnConfigureParameters;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.pingan.InsDrivingIntentionInsuranceSonVo;
+import com.ydtech.modules.order.utils.pingan.PingAnQuoteRequest;
 import lombok.Data;
 import org.apache.commons.collections4.CollectionUtils;
 
@@ -66,7 +67,6 @@ public class QuoteRequest extends PingAnBaseRequest {
      * o
      */
     private String isOnlineProducts;
-
     //==================20版-商业险报价套餐============================================
     /***
      *  机动车损失保险
@@ -74,11 +74,13 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 1:投保
      * c
      */
+    @PingAnQuoteRequest(key="A",remark="机动车损失险",flag="FXNY")
     private String amount01;
     /***
      * 机动车损失保险保额
      * c
      */
+    @PingAnQuoteRequest(key="MR",remark="机动车损失保险保额取车辆确认中的默认保额",flag="FXNY")
     private String inputAmount;
     /***
      * 车损险绝对免赔额(元)
@@ -89,6 +91,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 2000
      * c
      */
+    @PingAnQuoteRequest(key="",remark="车损险绝对免赔额",flag="FXNY")
     private String inputAmount01;
     /***
      * 机动车第三者责任保险
@@ -106,6 +109,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 10万起步,实际售卖套餐上限可以与业务确认。大于100万后需要每次增加50万额度。
      * c
      */
+    @PingAnQuoteRequest(key="B",remark="机动车第三者责任保险",flag="FXNY")
     private String amount02;
     /***
      * 机动车车上人员责任保险(司机)
@@ -120,6 +124,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 10000:1万
      * c
      */
+    @PingAnQuoteRequest(key="D3",remark="机动车车上人员责任保险(司机)",flag="FXNY")
     private String amount04;
     /***
      机动车车上人员责任保险(乘客)
@@ -134,6 +139,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 10000:1万
      * c 单座
      */
+    @PingAnQuoteRequest(key="D4",remark="机动车车上人员责任保险(乘客)",flag="FXNY")
     private String amount05;
     /***
      * 附加车上货物责任险
@@ -148,6 +154,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 限营业货车。
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加车上货物责任险",flag="HC")
     private String amount06;
     /***
      * 附加医保外用药责任险(三者)
@@ -156,6 +163,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 999:共享保额,与主险保额共享。保额字段amount07Fee不需要有值。
      * c
      */
+    @PingAnQuoteRequest(key="SY_FJ_YBW1_YN",remark="附加医保外用药责任险(三者)",flag="FXNY")
     private String amount07;
     /***
      * 附加医保外用药责任险保额(三者)
@@ -164,6 +172,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 50w 100w 150w 200w 300w 400w 600w 800w1000w
      * c
      */
+    @PingAnQuoteRequest(key="SY_FJ_YBW1",remark="附加医保外用药责任险保额(三者)",flag="FXNY")
     private String amount07Fee;
     /***
      * 附加医保外用药责任险(司机)
@@ -172,6 +181,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 999:共享保额,与主险保额共享。保额字段amount08Fee不需要有值。
      * c
      */
+    @PingAnQuoteRequest(key="SY_FJ_YBW3_YN",remark="附加医保外用药责任险(司机)",flag="FXNY")
     private String amount08;
     /***
      * 附加医保外用药责任险保额(司机),分为如下档次:
@@ -179,6 +189,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 50w 100w 150w 200w 300w 400w 600w 800w 1000w
      * c
      */
+    @PingAnQuoteRequest(key="SY_FJ_YBW3",remark="附加医保外用药责任险保额(司机)",flag="FXNY")
     private String amount08Fee;
     /***
      * 附加医保外用药责任险(乘客)
@@ -187,6 +198,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 999:共享保额,与主险保额共享。保额字段amount09Fee不需要有值。
      * c
      */
+    @PingAnQuoteRequest(key="SY_FJ_YBW2_YN",remark="附加医保外用药责任险(乘客)",flag="FXNY")
     private String amount09;
     /***
      * 附加医保外用药责任险保额(乘客),分为如下档次:
@@ -194,6 +206,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 50w 100w 150w 200w 300w 400w 600w 800w 1000w
      * c
      */
+    @PingAnQuoteRequest(key="SY_FJ_YBW2",remark="附加医保外用药责任险保额(乘客)",flag="FXNY")
     private String amount09Fee;
     /***
      * 附加修理期间费用补偿险
@@ -201,11 +214,13 @@ public class QuoteRequest extends PingAnBaseRequest {
      * [1~90]投保的天数
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加修理期间费用补偿险",flag="FXNY")
     private String amount10;
     /***
      * 修理期间费用补偿险每天补偿金额
      * c
      */
+    @PingAnQuoteRequest(key="",remark="修理期间费用补偿险每天补偿金额",flag="FXNY")
     private String amount10Fee;
     /***
      * 附加新增加设备损失险
@@ -213,6 +228,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 1:投保
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加新增加设备损失险",flag="FXNY")
     private String amount11;
     /***
      * 附加车身划痕损失险
@@ -223,6 +239,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 20000:2万
      * c
      */
+    @PingAnQuoteRequest(key="L",remark="附加车身划痕损失险",flag="FXNY")
     private String amount17;
     /***
      * 附加精神损害抚慰金责任险(三者)
@@ -230,6 +247,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * [投保金额:16位数字,最多两位小数]
      * c
      */
+    @PingAnQuoteRequest(key="L",remark="附加精神损害抚慰金责任险(三者)",flag="FXNY")
     private String amount32;
     /***
      * 附加精神损害抚慰金责任险(司机)
@@ -237,6 +255,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * [投保金额:16位数字,最多两位小数]
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加精神损害抚慰金责任险(司机)",flag="FXNY")
     private String amount30;
     /***
      * 附加精神损害抚慰金责任险(乘客)
@@ -244,6 +263,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * [投保金额:16位数字,最多两位小数]
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加精神损害抚慰金责任险(乘客)",flag="FXNY")
     private String amount31;
     /***
      * 附加车轮单独损失险
@@ -256,6 +276,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 15000:15000
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加车轮单独损失险",flag="FXNY")
     private String amount52;
     /***
      * 附加绝对免赔率特约险(车损)
@@ -268,6 +289,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 传递后台5、10等数字即可,非小数
      * c
      */
+    @PingAnQuoteRequest(key="MJ1",remark="附加绝对免赔率特约险(车损)",flag="FXNY")
     private String amount53;
     /***
      * 附加绝对免赔率特约险(三者)
@@ -280,6 +302,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 传递后台5、10等数字即可,非小数
      * c
      */
+    @PingAnQuoteRequest(key="MJ2",remark="附加绝对免赔率特约险(三者)",flag="FXNY")
     private String amount54;
     /***
      * 附加绝对免赔率特约险(车上人员司机)
@@ -292,6 +315,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 传递后台5、10等数字即可,非小数
      * c
      */
+    @PingAnQuoteRequest(key="MJ3",remark="附加绝对免赔率特约险(车上人员司机)",flag="FXNY")
     private String amount55;
     /***
      * 附加绝对免赔率特约险(车上人员乘客)
@@ -304,6 +328,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 传递后台5、10等数字即可,非小数
      * c
      */
+    @PingAnQuoteRequest(key="MJ4",remark="附加绝对免赔率特约险(车上人员乘客)",flag="FXNY")
     private String amount56;
     /***
      * 机动车钥匙丢失或损坏费用补偿险
@@ -316,6 +341,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 中保信暂未配置,平安暂不售卖
      * c
      */
+    @PingAnQuoteRequest(key="",remark="机动车钥匙丢失或损坏费用补偿险",flag="FXNY")
     private String amount73;
     /***
      * 附加法定节假日限额翻倍险
@@ -323,6 +349,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 投保金额:与三者保额一致。根据三者保额调整自动变更。
      * c
      */
+    @PingAnQuoteRequest(key="BD",remark="附加法定节假日限额翻倍险",flag="FXNY")
     private String amount74;
     /***
      * 附加发动机进水损坏除外特约条款
@@ -332,6 +359,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 无需录入保额
      * c
      */
+    @PingAnQuoteRequest(key="BD",remark="附加发动机进水损坏除外特约条款",flag="FXNY")
     private String amount75;
     /***
      * 道路救援服务特约条款(9座以下非营业客车可以投保)
@@ -347,6 +375,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 任意主险投保则带出
      * c
      */
+    @PingAnQuoteRequest(key="",remark="道路救援服务特约条款",flag="FXNY")
     private String amount01Sv;
     /***
      *车辆安全检测特约条款(9座以下非营业客车,界面可以勾选,默认带出一次)
@@ -356,6 +385,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 任意主险投保则带出
      * c
      */
+    @PingAnQuoteRequest(key="",remark="车辆安全检测特约条款",flag="FXNY")
     private String amount02Sv;
     /***
      * 代为驾驶服务特约条款(9座以下非营业客车,界面可以勾选,默认带出一次)
@@ -365,6 +395,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 任意主险投保则带出
      * c
      */
+    @PingAnQuoteRequest(key="",remark="代为驾驶服务特约条款",flag="FXNY")
     private String amount03Sv;
     /***
      * 代为送检服务特约条款(
@@ -375,6 +406,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 任意主险投保则带出
      * c
      */
+    @PingAnQuoteRequest(key="",remark="代为送检服务特约条款",flag="FXNY")
     private String amount04Sv;
     /***
      * 新增加设备损失险设备信息列表
@@ -502,11 +534,13 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 1:投保
      * C
      */
+    @PingAnQuoteRequest(key="A",remark="新能源汽车损失保险",flag="XNY")
     private String amount01XNY;
     /***
      * 新能源汽车损失保险保额
      * C
      */
+    @PingAnQuoteRequest(key="MR",remark="新能源汽车损失保险",flag="XNY")
     private String inputAmountXNY;
     /***
      * 车损险绝对免赔额(元)
@@ -514,6 +548,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 保额档次:同机动车
      * C
      */
+    @PingAnQuoteRequest(key="",remark="车损险绝对免赔额",flag="XNY")
     private String inputAmount01XNY;
     /***
      * 新能源汽车第三者责任保险
@@ -521,6 +556,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 保额档次:同机动车
      * C
      */
+    @PingAnQuoteRequest(key="B",remark="新能源汽车第三者责任保险",flag="XNY")
     private String amount02XNY;
     /***
      * 新能源汽车车上人员责任保险(司机)
@@ -528,6 +564,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 保额档次:同机动车
      * C
      */
+    @PingAnQuoteRequest(key="D3",remark="新能源汽车第三者责任保险",flag="XNY")
     private String amount03XNY;
     /***
      *新能源汽车车上人员责任保险(乘客)
@@ -535,6 +572,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 保额档次:同机动车
      * c 单座
      */
+    @PingAnQuoteRequest(key="D4",remark="新能源汽车第三者责任保险",flag="XNY")
     private String amount04XNY;
     /***
      * 附加绝对免赔率特约险(车损)
@@ -547,6 +585,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 传递后台5、10等数字即可,非小数
      * c
      */
+    @PingAnQuoteRequest(key="MJ1",remark="新能源汽车第三者责任保险",flag="XNY")
     private String amount05XNY;
     /***
      * 附加绝对免赔率特约险(三者)
@@ -559,6 +598,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 传递后台5、10等数字即可,非小数
      * c
      */
+    @PingAnQuoteRequest(key="MJ2",remark="附加绝对免赔率特约险(三者)",flag="XNY")
     private String amount06XNY;
     /***
      * 附加绝对免赔率特约险(车上人员司机)
@@ -571,6 +611,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 传递后台5、10等数字即可,非小数
      * c
      */
+    @PingAnQuoteRequest(key="MJ3",remark="附加绝对免赔率特约险(车上人员司机)",flag="XNY")
     private String amount07XNY;
     /***
      * 附加绝对免赔率特约险(车上人员乘客)
@@ -583,6 +624,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 传递后台5、10等数字即可,非小数
      * c
      */
+    @PingAnQuoteRequest(key="MJ4",remark="附加绝对免赔率特约险(车上人员司机)",flag="XNY")
     private String amount08XNY;
     /***
      * 附加车轮单独损失险
@@ -590,6 +632,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 保额档次:同机动车
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加车轮单独损失险",flag="XNY")
     private String amount09XNY;
     /***
      * 附加新增加设备损失险
@@ -597,12 +640,14 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 1:投保
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加新增加设备损失险",flag="XNY")
     private String amount10XNY;
     /***
      * 附加车身划痕损失险
      * 保额档次:同机动车
      * c
      */
+    @PingAnQuoteRequest(key="L",remark="附加新增加设备损失险",flag="XNY")
     private String amount11XNY;
     /***
      * 附加修理期间费用补偿险
@@ -610,11 +655,13 @@ public class QuoteRequest extends PingAnBaseRequest {
      * [1~90]投保的天数
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加修理期间费用补偿险",flag="XNY")
     private String amount12XNY;
     /***
      * 修理期间费用补偿险每天补偿金额
      * c
      */
+    @PingAnQuoteRequest(key="",remark="修理期间费用补偿险每天补偿金额",flag="XNY")
     private String amount12XNYFee;
     /***
      * 附加车上货物责任险
@@ -623,6 +670,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 限营业货车。
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加车上货物责任险",flag="XNY")
     private String amount13XNY;
     /***
      * 附加精神损害抚慰金责任险(三者)
@@ -630,6 +678,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * [投保金额:16位数字,最多两位小数]
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加精神损害抚慰金责任险(三者)",flag="XNY")
     private String amount14XNY;
     /***
      * 附加精神损害抚慰金责任险(三者)
@@ -637,6 +686,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * [投保金额:16位数字,最多两位小数]
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加精神损害抚慰金责任险(三者)",flag="XNY")
     private String amount15XNY;
     /***
      * 附加精神损害抚慰金责任险(乘客)
@@ -644,6 +694,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * [投保金额:16位数字,最多两位小数]
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加精神损害抚慰金责任险(乘客)",flag="XNY")
     private String amount16XNY;
     /***
      * 附加法定节假日限额翻倍险
@@ -651,6 +702,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 投保金额:与三者保额一致。根据三者保额调整自动变更
      * c
      */
+    @PingAnQuoteRequest(key="BD",remark="附加法定节假日限额翻倍险",flag="XNY")
     private String amount17XNY;
     /***
      * 附加医保外用药责任险(三者)
@@ -659,6 +711,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 999:共享保额,与主险保额共享。保额字段amount18Fee不需要有值。
      * c
      */
+    @PingAnQuoteRequest(key="SY_FJ_YBW1_YN",remark="附加医保外用药责任险保额(三者)",flag="XNY")
     private String amount18XNY;
     /***
      * 附加医保外用药责任险保额(三者)
@@ -666,6 +719,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 同机动车
      * c
      */
+    @PingAnQuoteRequest(key="SY_FJ_YBW1",remark="附加医保外用药责任险保额(三者)",flag="XNY")
     private String amount18XNYFee;
     /***
      * 附加医保外用药责任险(司机)
@@ -674,12 +728,14 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 999:共享保额,与主险保额共享。保额字段amount19Fee不需要有值。
      * c
      */
+    @PingAnQuoteRequest(key="SY_FJ_YBW3_YN",remark="附加医保外用药责任险(司机)",flag="XNY")
     private String amount19XNY;
     /***
      * 附加医保外用药责任险保额(司机),分为如下档次:
      * 同机动车
      * c
      */
+    @PingAnQuoteRequest(key="SY_FJ_YBW3",remark="附加医保外用药责任险保额(司机)",flag="XNY")
     private String amount19XNYFee;
     /***
      * 附加医保外用药责任险(乘客)
@@ -688,12 +744,14 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 999:共享保额,与主险保额共享。保额字段amount20Fee不需要有值。
      * c
      */
+    @PingAnQuoteRequest(key="SY_FJ_YBW2_YN",remark="附加医保外用药责任险(乘客)",flag="XNY")
     private String amount20XNY;
     /***
      * 附加医保外用药责任险保额(乘客),分为如下档次:
      * 同机动车
      * c
      */
+    @PingAnQuoteRequest(key="SY_FJ_YBW2",remark="附加医保外用药责任险保额(乘客)",flag="XNY")
     private String amount20XNYFee;
     /***
      * 附加外部电网故障损失险
@@ -704,6 +762,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 仅对纯电和插电混动两个能源类型的车可保,燃料电池不可保
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加外部电网故障损失险",flag="XNY")
     private String amount21XNY;
     /***
      * 附加自用充电桩损失保险
@@ -711,6 +770,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 1:投保
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加自用充电桩损失保险",flag="XNY")
     private String amount22XNY;
     /***
      * 附加自用充电桩责任保险
@@ -718,6 +778,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 1:投保
      * c
      */
+    @PingAnQuoteRequest(key="",remark="附加自用充电桩责任保险",flag="XNY")
     private String amount23XNY;
     /***
      * 道路救援服务特约条款(9座以下非营业客车可以投保)
@@ -725,6 +786,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 同机动车传值
      * c
      */
+    @PingAnQuoteRequest(key="",remark="道路救援服务特约条款",flag="XNY")
     private String amount01SvXNY;
     /***
      * 车辆安全检测特约条款(9座以下非营业客车,界面可以勾选,默认带出一次)
@@ -732,6 +794,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 同机动车传值
      * c
      */
+    @PingAnQuoteRequest(key="",remark="车辆安全检测特约条款",flag="XNY")
     private String amount02SvXNY;
     /***
      * 代为驾驶服务特约条款(9座以下非营业客车,界面可以勾选,默认带出一次)
@@ -739,6 +802,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 同机动车传值
      * c
      */
+    @PingAnQuoteRequest(key="",remark="代为驾驶服务特约条款",flag="XNY")
     private String amount03SvXNY;
     /***
      * 代为送检服务特约条款(
@@ -748,6 +812,7 @@ public class QuoteRequest extends PingAnBaseRequest {
      * 同机动车传值
      * c
      */
+    @PingAnQuoteRequest(key="",remark="代为送检服务特约条款",flag="XNY")
     private String amount04SvXNY;
     /***
      *  新增加设备损失险设备信息列表

+ 82 - 28
src/main/java/com/ydtech/modules/order/entity/api/pingan/response/QuoteResponse.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.order.entity.api.pingan.response;
 
 import com.ydtech.modules.order.entity.api.pingan.request.QuoteRequest;
+import com.ydtech.modules.order.utils.pingan.PingAnQuoteRequest;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -90,7 +91,7 @@ public class QuoteResponse extends PingAnBaseResponse {
     private XwActualPremiumDTO xwActualPremium;
 
     /***
-     * 财产险保费
+     * 组合险保费
      */
     private CombinationPremiumDTO combinationPremium;
 
@@ -203,131 +204,157 @@ public class QuoteResponse extends PingAnBaseResponse {
          * 机动车损失保险保费
          * c
          */
+        @PingAnQuoteRequest(key="A",remark="机动车损失保险保费",flag="FXNY")
         private String premium01;
         /***
          * 机动车第三者责任保险保费
          * c
          */
+        @PingAnQuoteRequest(key="B",remark="机动车第三者责任保险保费",flag="FXNY")
         private String premium02;
         /***
          * 机动车车上人员责任保险(司机)保费
          * c
          */
+        @PingAnQuoteRequest(key="D3",remark="机动车车上人员责任保险(司机)保费",flag="FXNY")
         private String premium04;
         /***
          * 机动车车上人员责任保险(乘客)保费
          * c
          */
+        @PingAnQuoteRequest(key="D4",remark="机动车车上人员责任保险(乘客)保费",flag="FXNY")
         private String premium05;
         /***
          * 附加车上货物责任险保费
          * c
          */
+        @PingAnQuoteRequest(key="",remark="机动车车上人员责任保险(乘客)保费",flag="FXNY")
         private String premium06;
         /***
          * 附加医保外用药责任险保费(三者)
          * c
          */
+        @PingAnQuoteRequest(key="SY_FJ_YBW1",remark="机动车车上人员责任保险(乘客)保费",flag="FXNY")
         private String premium07;
         /***
          * 附加医保外用药责任险保费(司机)
          * c
          */
+        @PingAnQuoteRequest(key="SY_FJ_YBW3",remark="附加医保外用药责任险保费(司机)",flag="FXNY")
         private String premium08;
         /***
          * 附加医保外用药责任险保费(乘客)
          * c
          */
+        @PingAnQuoteRequest(key="SY_FJ_YBW2",remark="附加医保外用药责任险保费(乘客)",flag="FXNY")
         private String premium09;
         /***
          * 附加修理期间费用补偿险保费
          * c
          */
+        @PingAnQuoteRequest(key="",remark="附加修理期间费用补偿险保费",flag="FXNY")
         private String premium10;
         /***
          * 附加新增加设备损失险保费
          * c
          */
+        @PingAnQuoteRequest(key="",remark="附加新增加设备损失险保费",flag="FXNY")
         private String premium11;
         /***
          * 附加车身划痕损失险保费
          * c
          */
+        @PingAnQuoteRequest(key="L",remark="附加车身划痕损失险保费",flag="FXNY")
         private String premium17;
         /***
          * 附加精神损害抚慰金责任险(三者)保费
          * c
          */
+        @PingAnQuoteRequest(key="",remark="附加精神损害抚慰金责任险(三者)保费",flag="FXNY")
         private String premium32;
         /***
          * 附加精神损害抚慰金责任险(司机)保费
          * c
          */
+        @PingAnQuoteRequest(key="",remark="附加精神损害抚慰金责任险(司机)保费",flag="FXNY")
         private String premium30;
         /***
          * 附加精神损害抚慰金责任险(乘客)保费
          * c
          */
+        @PingAnQuoteRequest(key="",remark="附加精神损害抚慰金责任险(乘客)保费",flag="FXNY")
         private String premium31;
         /***
          * 附加车轮单独损失险保费
          * c
          */
+        @PingAnQuoteRequest(key="",remark="附加车轮单独损失险保费",flag="FXNY")
         private String premium52;
         /***
          * 附加绝对免赔率特约险(车损)保费
          * c
          */
+        @PingAnQuoteRequest(key="MJ1",remark="附加车轮单独损失险保费",flag="FXNY")
         private String premium53;
         /** *
          * 附加绝对免赔率特约险(三者)保费
          * c
          */
+        @PingAnQuoteRequest(key="MJ2",remark="附加车轮单独损失险保费",flag="FXNY")
         private String premium54;
         /***
          * 附加绝对免赔率特约险(车上人员司机)保费
          * c
          */
+        @PingAnQuoteRequest(key="MJ3",remark="附加车轮单独损失险保费",flag="FXNY")
         private String premium55;
         /***
          * 附加绝对免赔率特约险(车上人员乘客)保费
          * c
          */
+        @PingAnQuoteRequest(key="MJ4",remark="附加车轮单独损失险保费",flag="FXNY")
         private String premium56;
         /***
          * 机动车钥匙丢失或损坏费用补偿险保费
          * c
          */
+        @PingAnQuoteRequest(key="",remark="机动车钥匙丢失或损坏费用补偿险保费",flag="FXNY")
         private String premium73;
         /***
          * 附加法定节假日限额翻倍险保费
          * c
          */
+        @PingAnQuoteRequest(key="BD",remark="附加法定节假日限额翻倍险保费",flag="FXNY")
         private String premium74;
         /***
          * 附加发动机损坏除外特约条款保费
          * c
          */
+        @PingAnQuoteRequest(key="",remark="附加发动机损坏除外特约条款保费",flag="FXNY")
         private String premium75;
         /***
          * 道路救援服务特约条款次数(暂时忽略)
          * c
          */
+        @PingAnQuoteRequest(key="",remark="道路救援服务特约条款次数(暂时忽略)",flag="FXNY")
         private String premium01Sv;
         /***
          * 车辆安全检测特约条款次数(暂时忽略)
          * c
          */
+        @PingAnQuoteRequest(key="",remark="车辆安全检测特约条款次数(暂时忽略)",flag="FXNY")
         private String premium02Sv;
         /***
          * 代为驾驶服务特约条款次数(暂时忽略)
          * c
          */
+        @PingAnQuoteRequest(key="",remark="代为驾驶服务特约条款次数(暂时忽略)",flag="FXNY")
         private String premium03Sv;
         /***
          * 代为送检服务特约条款次数(暂时忽略)
          * c
          */
+        @PingAnQuoteRequest(key="",remark="代为驾驶服务特约条款次数(暂时忽略)",flag="FXNY")
         private String premium04Sv;
         /***
          * 商业险出险次数
@@ -404,112 +431,139 @@ public class QuoteResponse extends PingAnBaseResponse {
          */
         private DecisionTreeResultDTO decisionTreeResult;
         /***
-         *
+         *   新能源汽车损失保险保费
          */
+        @PingAnQuoteRequest(key="A",remark="新能源汽车损失保险保费",flag="XNY")
         private String premium01XNY;
         /***
-         *
+         *  新能源汽车第三者责任保险保费
          */
+        @PingAnQuoteRequest(key="B",remark="新能源汽车第三者责任保险保费",flag="XNY")
         private String premium02XNY;
         /***
-         *
+         *  新能源汽车车上人员责任保险(司机)保费
          */
+        @PingAnQuoteRequest(key="D3",remark="新能源汽车车上人员责任保险(司机)保费",flag="XNY")
         private String premium03XNY;
         /***
-         *
+         * C单座保费*乘客座位数	新能源汽车车上人员责任保险(乘客)保费
          */
+        @PingAnQuoteRequest(key="D4",remark="新能源汽车车上人员责任保险(乘客)保费",flag="XNY")
         private String premium04XNY;
         /***
-         *
+         * 附加绝对免赔率特约险(车损)保费
          */
+        @PingAnQuoteRequest(key="MJ1",remark="附加绝对免赔率特约险(车损)保费",flag="XNY")
         private String premium05XNY;
         /***
-         *
+         * 附加绝对免赔率特约险(三者)保费
          */
+        @PingAnQuoteRequest(key="MJ2",remark="附加绝对免赔率特约险(三者)保费",flag="XNY")
         private String premium06XNY;
         /***
-         *
+         *  附加绝对免赔率特约险(车上人员司机)保费
          */
+        @PingAnQuoteRequest(key="MJ3",remark="附加绝对免赔率特约险(车上人员司机)保费",flag="XNY")
         private String premium07XNY;
         /***
-         *
+         *  附加绝对免赔率特约险(车上人员乘客)保费
          */
+        @PingAnQuoteRequest(key="MJ3",remark="附加绝对免赔率特约险(车上人员乘客)保费",flag="XNY")
         private String premium08XNY;
         /***
-         *
+         * 附加车轮单独损失险保费
          */
+        @PingAnQuoteRequest(key="",remark="附加车轮单独损失险保费",flag="XNY")
         private String premium09XNY;
         /***
-         *
+         * 附加新增加设备损失险保费
          */
+        @PingAnQuoteRequest(key="",remark="附加新增加设备损失险保费",flag="XNY")
         private String premium10XNY;
         /***
-         *
+         * 附加车身划痕损失险保费
          */
+        @PingAnQuoteRequest(key="L",remark="附加车身划痕损失险保费",flag="XNY")
         private String premium11XNY;
         /***
-         *
+         * 附加修理期间费用补偿险保费
          */
+        @PingAnQuoteRequest(key="",remark="附加修理期间费用补偿险保费",flag="XNY")
         private String premium12XNY;
         /***
-         *
+         *  附加车上货物责任险保费
          */
+        @PingAnQuoteRequest(key="",remark="附加车上货物责任险保费",flag="XNY")
         private String premium13XNY;
         /***
-         *
+         *  附加精神损害抚慰金责任险(三者保费
          */
+        @PingAnQuoteRequest(key="",remark="附加精神损害抚慰金责任险(三者保费",flag="XNY")
         private String premium14XNY;
         /***
-         *
+         *  附加精神损害抚慰金责任险(司机保费
          */
+        @PingAnQuoteRequest(key="",remark="附加精神损害抚慰金责任险(司机保费",flag="XNY")
         private String premium15XNY;
         /***
-         *
+         *  附加精神损害抚慰金责任险(乘客保费
          */
+        @PingAnQuoteRequest(key="",remark="附加精神损害抚慰金责任险(乘客保费",flag="XNY")
         private String premium16XNY;
         /***
-         *
+         * 附加法定节假日限额翻倍险保费
          */
+        @PingAnQuoteRequest(key="BD",remark="附加法定节假日限额翻倍险保费",flag="XNY")
         private String premium17XNY;
         /***
-         *
+         * 附加医保外用药责任险保额(三者)保费
          */
+        @PingAnQuoteRequest(key="SY_FJ_YBW1",remark="附加医保外用药责任险保额(三者)保费",flag="XNY")
         private String premium18XNY;
         /***
-         *
+         *  附加医保外用药责任险保额(司机)保费
          */
+        @PingAnQuoteRequest(key="SY_FJ_YBW3",remark="附加医保外用药责任险保额(司机)保费",flag="XNY")
         private String premium19XNY;
         /***
-         *
+         *  附加医保外用药责任险保额(乘客)保费
          */
+        @PingAnQuoteRequest(key="SY_FJ_YBW2",remark="附加医保外用药责任险保额(乘客)保费",flag="XNY")
         private String premium20XNY;
         /***
-         *
+         *  附加外部电网故障损失险保费
          */
+        @PingAnQuoteRequest(key="",remark="附加外部电网故障损失险保费",flag="XNY")
         private String premium21XNY;
         /***
-         *
+         *  附加自用充电桩损失保险保费
          */
+        @PingAnQuoteRequest(key="",remark="附加自用充电桩损失保险保费",flag="XNY")
         private String premium22XNY;
         /***
-         *
+         * 附加自用充电桩责任保险保费
          */
+        @PingAnQuoteRequest(key="",remark="附加自用充电桩责任保险保费",flag="XNY")
         private String premium23XNY;
         /***
-         *
+         * 道路救援服务特约条款次数(暂时忽略)
          */
+        @PingAnQuoteRequest(key="",remark="道路救援服务特约条款次数(暂时忽略)",flag="XNY")
         private String premium01SvXNY;
         /***
-         *
+         *  车辆安全检测特约条款次数(暂时忽略)
          */
+        @PingAnQuoteRequest(key="",remark="车辆安全检测特约条款次数(暂时忽略)",flag="XNY")
         private String premium02SvXNY;
         /***
-         *
+         * 代为驾驶服务特约条款次数(暂时忽略)
          */
+        @PingAnQuoteRequest(key="",remark="代为驾驶服务特约条款次数(暂时忽略)",flag="XNY")
         private String premium03SvXNY;
         /***
-         *
+         * 代为送检服务特约条款次数(暂时忽略)
          */
+        @PingAnQuoteRequest(key="",remark="附加自用充电桩责任保险保费",flag="XNY")
         private String premium04SvXNY;
 
         /***

+ 29 - 186
src/main/java/com/ydtech/modules/order/service/impl/PingAnOrderApiServiceImpl.java

@@ -1,11 +1,9 @@
 package com.ydtech.modules.order.service.impl;
 
-import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.google.gson.Gson;
 import com.ydtech.config.properties.PingAnApiConfigurationProperties;
-import com.ydtech.constants.enums.InsurKind;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
@@ -49,6 +47,7 @@ import com.ydtech.modules.order.entity.vo.pingan.StorefrontQueryVo;
 import com.ydtech.modules.order.service.*;
 import com.ydtech.modules.order.utils.MD5Util;
 import com.ydtech.modules.order.utils.PingAnUpLoadUtils;
+import com.ydtech.modules.order.utils.pingan.PingAnQuoteRequestAnnotationParser;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
 import com.ydtech.utils.CalculateUtils;
@@ -218,6 +217,11 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
             // 1. 标的信息
             IndexRequest indexRequest = new IndexRequest(parameters, carInfo);
             IndexResponse indexResponse = pinganRequestApiComponents.index(indexRequest,pinganApiLog);
+            if (indexResponse == null || !"0".equals(indexResponse.getResultCode())) {
+                throw new SystemException(indexResponse.getResultMessage());
+            }
+            //增值服务核保传入开关,打开时保费计算无需传入,保费计算返回增值服务信息,核保传入
+            String clauseCaseSwitch = indexResponse.getClauseCaseSwitch();
             // 此处返回的  flowid  4.1.续保确认  4.2.车辆信息确认  001 平安车型搜索接口  需要使用
             String flowid = indexResponse.getFlowid();
             // 2. 车型查询
@@ -237,12 +241,11 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
                 model = models.get(0);
                 //通过年款和新车购置价确定唯一
             } else if (models != null && models.size() > 1) {
-                //List<SearchPAVehicleListResponse.ModelsDto> list = models.stream()
-                //       .filter(p -> p.getMarketDate().equals(carInfo.getCaryear()==null?carInfo.getCaryear().substring(0,3):"")  && p.getPrice().equals(carInfo.getPurchasePrice()))
-                //       .collect(Collectors.toList());
-                // if(list!=null && list.size()>0){
-                model = models.get(0);
-                //}
+                String modelNames="";
+                for(SearchPAVehicleListResponse.ModelsDto dto: models){
+                    modelNames += dto.getModelName()+"||----------------------||";
+                }
+                throw new SystemException("请确认车型,检索出以下车型||----------------------||"+modelNames);
             }
             // 3. 车辆信息确认
             pinganApiLog.setId(null);
@@ -255,13 +258,15 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
             pinganApiLog.setId(null);
             QuoteRequest quoteRequest = new QuoteRequest(parameters, quoteInfo,carConfirmResponse.getFlowid(), quoteVo.getAccommodationFlag(), quoteVo.getAmount22XNYChargingPostList(), quoteVo.getAmount23XNYChargingPostList(),quoteVo.getAccidentalDrivingVo());
             //能源车 判断 赋值能源参数
+            String  flag="";
             if("1,2,3,".contains(carInfo.getEnergyType())){
                 //新能源参数传递
-                quoteRequest = quoteRequest.transferPingAnRequestMsgNY(quoteInfo.getKindList(), quoteRequest,carConfirmResponse.getBizQuoteConfig());
+                flag="XNY";
             }else{
                 //客车、货车传递
-                quoteRequest = quoteRequest.transferPingAnRequestMsg(quoteInfo.getKindList(), quoteRequest,carConfirmResponse.getBizQuoteConfig());
+                flag="FXNY";
             }
+            quoteRequest = PingAnQuoteRequestAnnotationParser.processAnnotationsQuoteRequest(quoteRequest, quoteInfo.getKindList(), carConfirmResponse.getBizQuoteConfig(), flag);
             QuoteResponse quoteResponse = null;
             try {
                 quoteResponse = pinganRequestApiComponents.quote(quoteRequest,pinganApiLog);
@@ -318,9 +323,11 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
         PingAnQuoteRespVo quoteRespVo = new PingAnQuoteRespVo();
         CarInfoVo carInfo = yaQuoteInfoVo.getCarInfo();
         //新能源返回参数不一样
-        Boolean xnyFlag=false;
+        String xnyFlag="";
         if("1,2,3,".contains(carInfo.getEnergyType())){
-            xnyFlag=true;
+            xnyFlag="XNY";
+        }else{
+            xnyFlag="FXNY";
         }
         // 交强险保费信息
         QuoteResponse.ForceQuoteResultDTO forceQuoteResult = response.getForceQuoteResult();
@@ -368,7 +375,7 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
                     kind.setKindCode(kindInfoVo.getKindCode());
                     kind.setKindName(kindInfoVo.getKindName());
                     kind.setAmount(kindInfoVo.getAmount());
-                    kind.setCoveragePremium(getPremium(bizQuoteResult,xnyFlag,kindInfoVo.getKindCode()));
+                    kind.setCoveragePremium(PingAnQuoteRequestAnnotationParser.processAnnotationsQuoteResponse(bizQuoteResult,kindInfoVo.getKindCode(),xnyFlag));
                     kind.setUnitAmount(kindInfoVo.getUnitAmount());
                     kind.setServiceTimes(String.valueOf(kindInfoVo.getServiceTimes()));
                     if (!ObjectUtils.isEmpty(kindInfoVo.getDeductibleRate())) {
@@ -428,170 +435,6 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
         quoteRespVo.setCoreModels(modelsDto.toCoreModelsVo());
         return responseOrder(response, quoteRespVo, ptlAgreementAttribution, carConfirmResponse,quoteVo);
     }
-    /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/8/6 17:46
-     *  @Description:  赋值新能源、非新能源的商业险信息
-     */
-    private double getPremium(QuoteResponse.BizQuoteResultDTO bizQuoteResult, Boolean xnyFlag,String code) {
-        double val=0;
-        //机动车损失保险保费
-        if (InsurKind.A.getCode().equalsIgnoreCase(code)) {
-            //能源车
-            if(xnyFlag){
-                //premium01XNY	C	新能源汽车损失保险保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium01XNY())?0:Double.parseDouble(bizQuoteResult.getPremium01XNY());
-            }else{
-                // premium01	C	机动车损失保险保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium01())?0:Double.parseDouble(bizQuoteResult.getPremium01());
-            }
-        }
-        //三者险
-        if (InsurKind.B.getCode().equalsIgnoreCase(code)) {
-            if(xnyFlag){
-                //premium02XNY	C	新能源汽车第三者责任保险保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium02XNY())?0:Double.parseDouble(bizQuoteResult.getPremium02XNY());
-            }else{
-                // premium02	C	机动车第三者责任保险保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium02())?0:Double.parseDouble(bizQuoteResult.getPremium02());
-            }
-        }
-        //乘客责任险
-        if (InsurKind.D4.getCode().equalsIgnoreCase(code)) {
-            if(xnyFlag){
-                //premium03XNY	C	新能源汽车车上人员责任保险(司机)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium03XNY())?0:Double.parseDouble(bizQuoteResult.getPremium03XNY());
-            }else{
-                //premium04	C	机动车车上人员责任保险(司机)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium04())?0:Double.parseDouble(bizQuoteResult.getPremium04());
-            }
-        }
-        //司机责任险
-        if (InsurKind.D3.getCode().equalsIgnoreCase(code)) {
-            if(xnyFlag){
-                // premium04XNY	C单座保费*乘客座位数	新能源汽车车上人员责任保险(乘客)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium04XNY())?0:Double.parseDouble(bizQuoteResult.getPremium04XNY());
-            }else{
-                //premium05	C单座保费*乘客座位数	机动车车上人员责任保险(乘客)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium05())?0:Double.parseDouble(bizQuoteResult.getPremium05());
-            }
-        }
-        //  客车  premium06	C      * 	附加车上货物责任险保费   能源无
-        //  附加医保外用药责任险(第三者责任保险)
-        if (InsurKind.SY_FJ_YBW1.getCode().equalsIgnoreCase(code)) {
-            if(xnyFlag){
-                //  premium18XNY	C	附加医保外用药责任险保额(三者)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium18XNY())?0:Double.parseDouble(bizQuoteResult.getPremium18XNY());
-            }else{
-                // premium07	C	附加医保外用药责任险保费(三者)
-                val = StringUtils.isBlank(bizQuoteResult.getPremium07())?0:Double.parseDouble(bizQuoteResult.getPremium07());
-            }
-        }
-        // 附加医保外用药责任险(车上人员责任保险(乘客))
-        if (InsurKind.SY_FJ_YBW2.getCode().equalsIgnoreCase(code)) {
-            if(xnyFlag){
-                //  premium19XNY	C	附加医保外用药责任险保额(司机)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium19XNY())?0:Double.parseDouble(bizQuoteResult.getPremium19XNY());
-            }else{
-                // premium08	C	附加医保外用药责任险保费(司机)
-                val = StringUtils.isBlank(bizQuoteResult.getPremium08())?0:Double.parseDouble(bizQuoteResult.getPremium08());
-            }
-        }
-        // 附加医保外用药责任险(车上人员责任保险(司机))
-        if (InsurKind.SY_FJ_YBW3.getCode().equalsIgnoreCase(code)) {
-            if(xnyFlag){
-                //   premium20XNY	C	附加医保外用药责任险保额(乘客)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium20XNY())?0:Double.parseDouble(bizQuoteResult.getPremium20XNY());
-            }else{
-                // premium09	C	附加医保外用药责任险保费(乘客)
-                val = StringUtils.isBlank(bizQuoteResult.getPremium09())?0:Double.parseDouble(bizQuoteResult.getPremium09());
-            }
-        }
-        // 附加绝对免赔率特约条款(车损)
-        if (InsurKind.MJ1.getCode().equalsIgnoreCase(code)) {
-            if(xnyFlag){
-                // premium05XNY	C     * 	附加绝对免赔率特约险(车损)保费   能源车
-                val = StringUtils.isBlank(bizQuoteResult.getPremium05XNY())?0:Double.parseDouble(bizQuoteResult.getPremium05XNY());
-            }else{
-                //premium53	C	附加绝对免赔率特约险(车损)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium53())?0:Double.parseDouble(bizQuoteResult.getPremium53());
-            }
-        }
-        // 附加绝对免赔率特约条款(机动车第三者责任保险)
-        if (InsurKind.MJ2.getCode().equalsIgnoreCase(code)) {
-            if(xnyFlag){
-                //   premium06XNY	C	附加绝对免赔率特约险(三者)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium06XNY())?0:Double.parseDouble(bizQuoteResult.getPremium06XNY());
-            }else{
-                // premium54	C	附加绝对免赔率特约险(三者)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium54())?0:Double.parseDouble(bizQuoteResult.getPremium54());
-            }
-        }
-        // 附加绝对免赔率特约条款(机动车车上人员责任保险(司机))
-        if (InsurKind.MJ3.getCode().equalsIgnoreCase(code)) {
-            if(xnyFlag){
-                //  //premium07XNY	C	附加绝对免赔率特约险(车上人员司机)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium07XNY())?0:Double.parseDouble(bizQuoteResult.getPremium07XNY());
-            }else{
-                //premium55	C	附加绝对免赔率特约险(车上人员司机)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium55())?0:Double.parseDouble(bizQuoteResult.getPremium55());
-            }
-        }
-
-
-        // 附加绝对免赔率特约条款(机动车车上人员责任保险(乘客))
-        if (InsurKind.MJ4.getCode().equalsIgnoreCase(code)) {
-            if(xnyFlag){
-                //   premium08XNY	C	附加绝对免赔率特约险(车上人员乘客)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium08XNY())?0:Double.parseDouble(bizQuoteResult.getPremium08XNY());
-            }else{
-                // * premium56	C	附加绝对免赔率特约险(车上人员乘客)保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium56())?0:Double.parseDouble(bizQuoteResult.getPremium56());
-            }
-        }
-        //附加修理期间费用补偿险  premium10	C	附加修理期间费用补偿险保费   非能源  无
-        // premium09XNY	C	附加车轮单独损失险保费   能源车  无
-        // premium10XNY	C	附加新增加设备损失险保费    能源车  无
-        //  premium11	C	附加新增加设备损失险保费    非能源  无
-        // 附加新增加设备损失险   暂时没有
-        //附加车身划痕损失险
-        if (InsurKind.L.getCode().equalsIgnoreCase(code)) {
-            if(xnyFlag){
-                //premium11XNY	C	附加车身划痕损失险保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium11XNY())?0:Double.parseDouble(bizQuoteResult.getPremium11XNY());
-            }else{
-                //premium17	C	附加车身划痕损失险保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium17())?0:Double.parseDouble(bizQuoteResult.getPremium17());
-            }
-        }
-        //附加法定节假日限额翻倍险
-        if (InsurKind.BD.getCode().equalsIgnoreCase(code)) {
-            if(xnyFlag){
-                //        * premium17XNY	C	附加法定节假日限额翻倍险保费
-                val = StringUtils.isBlank(bizQuoteResult.getPremium17XNY())?0:Double.parseDouble(bizQuoteResult.getPremium17XNY());
-            }else{
-                //premium74	C	附加法定节假日限额翻倍险保费    能源无
-                val = StringUtils.isBlank(bizQuoteResult.getPremium74())?0:Double.parseDouble(bizQuoteResult.getPremium74());
-            }
-        }
-        //premium32	C	附加精神损害抚慰金责任险(三者)保费    能源无
-        //premium30	C	附加精神损害抚慰金责任险(司机)保费      能源无
-        //         * premium31	C	附加精神损害抚慰金责任险(乘客)保费   能源无
-        //         * premium52	C	附加车轮单独损失险保费      能源无
-        //         * premium73	C	机动车钥匙丢失或损坏费用补偿险保费   能源无
-        //         *
-        //         * premium75	C	附加发动机损坏除外特约条款保费    能源无
-        // premium12XNY	C	附加修理期间费用补偿险保费    新能源  无
-        //premium13XNY	C	附加车上货物责任险保费
-        // * premium14XNY	C	附加精神损害抚慰金责任险(三者保费
-        // * premium15XNY	C	附加精神损害抚慰金责任险(司机保费
-        //* premium16XNY	C	附加精神损害抚慰金责任险(乘客保费
-        //* premium21XNY	C	附加外部电网故障损失险保费
-        //  * premium22XNY	C	附加自用充电桩损失保险保费
-        // * premium23XNY	C	附加自用充电桩责任保险保费
-        return val;
-    }
 
     public HttpResult<QuoteRespVo> responseOrder(QuoteResponse response,
                                                  PingAnQuoteRespVo quoteRespVo,
@@ -729,8 +572,7 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
         PingAnConfigureParameters parameters = configureParametersComponents.toEntity(PingAnConfigureParameters.class,
                 ptlAgreementAttribution);
         //此处的流程id必须传入   获取报价流程的返回的流程id
-        String flowid = insAreaCompany.getInsOrderNo();
-
+        String flowid = insAreaCompany.getFlowid();
         InsOrders insOrders = insOrdersService.existOrder(insAreaCompany.getOrderno());
         PinganApiLog pinganApiLog = new PinganApiLog(insAreaCompany.getOrderno(),companyId,insAreaCompany.getAgreementId());
         //组装上传的资料信息提交
@@ -1377,12 +1219,12 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
             List<InsDrivingIntentionInsuranceVo> xwList = getCYAndXWList(xiaoWeiListInfo, productDetailsRequest.getSeats(), productDetailsRequest.getCompanyId());
             List<InsDrivingIntentionInsuranceVo> zhList = getCHList(combinationInfoList, productDetailsRequest.getSeats(), productDetailsRequest.getCompanyId());
             map.put("1",cyList);
-            if(xwList==null || xwList.size()==0){
-                xwList=cyList;
-            }
-            if(zhList==null || zhList.size()==0){
-                zhList=cyList;
-            }
+            //if(xwList==null || xwList.size()==0){
+            //    xwList=cyList;
+           // }
+            //if(zhList==null || zhList.size()==0){
+            //    zhList=cyList;
+           // }
             map.put("2",xwList);
             map.put("3",zhList);
         }
@@ -1832,8 +1674,9 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
                         if (OrderStatusCodeEnum.ORDER_STATUS_CODE_B5.getCode().equals(status) && ("0".equals(insAreaCompany.getOrderstatus()) || "1".equals(insAreaCompany.getOrderstatus()) || "2".equals(insAreaCompany.getOrderstatus())) ) {
                             insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
                             insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
-                            return HttpResult.ok("支付成功");
+
                         }
+                        return HttpResult.ok("支付成功");
                     }
                 }
             }

+ 32 - 0
src/main/java/com/ydtech/modules/order/utils/pingan/PingAnQuoteRequest.java

@@ -0,0 +1,32 @@
+package com.ydtech.modules.order.utils.pingan;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 自定义导出Excel数据注解
+ *
+ * @author sunziwen
+ * @version 1.0
+ * @date 2018-12-29 15:00
+ **/
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface PingAnQuoteRequest {
+    /**
+     * 能源车和非能源的报价key
+     */
+    public String key() default "";
+
+    /***
+     *
+     * 险种说明
+     */
+    public String remark() default "";
+    /**
+     * 是否是能源车 XNY,FXNY
+     */
+    public String flag() default "";
+}

+ 105 - 0
src/main/java/com/ydtech/modules/order/utils/pingan/PingAnQuoteRequestAnnotationParser.java

@@ -0,0 +1,105 @@
+package com.ydtech.modules.order.utils.pingan;
+
+import com.ydtech.constants.enums.InsurKind;
+import com.ydtech.modules.ins.model.vo.KindInfoVo;
+import com.ydtech.modules.order.entity.api.pingan.request.QuoteRequest;
+import com.ydtech.modules.order.entity.api.pingan.response.CarConfirmResponse;
+import com.ydtech.modules.order.entity.api.pingan.response.QuoteResponse;
+import org.apache.commons.collections4.CollectionUtils;
+
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/8/8 14:11
+ *  @Description:  平安商业险赋值注解
+ */
+public class PingAnQuoteRequestAnnotationParser {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/8 14:27
+     *  @Description:  设置请求的值
+     */
+    public static QuoteRequest processAnnotationsQuoteRequest(QuoteRequest quoteRequest, List<KindInfoVo> kinds, CarConfirmResponse.BizQuoteConfigDTO bizQuoteConfig,String flag) {
+        Map<String,KindInfoVo> map =new HashMap<String,KindInfoVo>();
+        if(CollectionUtils.isNotEmpty(kinds)){
+            for(KindInfoVo kind : kinds){
+                map.put(kind.getKindCode(),kind);
+            }
+        }
+        if(map!=null && map.size()>0){
+            //车辆损失险
+            String amount01Default = bizQuoteConfig.getAmount01Default();
+            try {
+                // 获取obj对应的类
+                Class<?> clazz = quoteRequest.getClass();
+                Field[] fields = clazz.getDeclaredFields();
+                for (Field field : fields) {
+                    PingAnQuoteRequest annotation = field.getAnnotation(PingAnQuoteRequest.class);
+                    if (annotation != null) {
+                        field.setAccessible(true);
+                        // 获取注解属性的值
+                        String key = annotation.key();
+                        String nycflag = annotation.flag();
+                        KindInfoVo kindInfoVo_A = map.get("A");
+                        KindInfoVo kindInfoVo = map.get(key);
+                        if (nycflag.contains(flag)) {
+                            if ("MR".equals(key)) {
+                                field.set(quoteRequest, kindInfoVo_A.getAmount() == 0 ? "0" : amount01Default);
+                            } else {
+                                if (InsurKind.A.getCode().equals(key) || (InsurKind.A.getCode() + "_YN").equals(key)) {
+                                    field.set(quoteRequest, kindInfoVo == null ? "0" : kindInfoVo.getAmount() == 0 ? "0" : String.format("%.0f", kindInfoVo.getAmount()));
+                                } else {
+                                    if (InsurKind.MJ1.getCode().equals(key) || InsurKind.MJ2.getCode().equals(key) || InsurKind.MJ3.getCode().equals(key) || InsurKind.MJ4.getCode().equals(key)) {
+                                        field.set(quoteRequest, kindInfoVo == null ? "0" : "0".equals(kindInfoVo.getDeductibleRate()) ? "0" : kindInfoVo.getDeductibleRate().replace("%", ""));
+                                    } else {
+                                        //设置商业险的amout字段
+                                        field.set(quoteRequest, kindInfoVo == null ? "0" : kindInfoVo.getAmount() == 0 ? "0" : String.format("%.0f", kindInfoVo.getAmount()));
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return quoteRequest;
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/8 14:52
+     *  @Description:  设置请求返回的值
+     */
+    public static double processAnnotationsQuoteResponse(QuoteResponse.BizQuoteResultDTO dto, String code,String flag) {
+
+        try {
+            // 获取obj对应的类
+            Class<?> clazz = dto.getClass();
+            Field[] fields = clazz.getDeclaredFields();
+            for (Field field : fields) {
+                PingAnQuoteRequest annotation = field.getAnnotation(PingAnQuoteRequest.class);
+                if (annotation != null) {
+                    field.setAccessible(true);
+                    // 获取注解属性的值
+                    String key = annotation.key();
+                    String nycflag = annotation.flag();
+                    if(nycflag.contains(flag) && code.equals(key)){
+                       return field.get(dto)==null?0:Double.parseDouble(String.valueOf(field.get(dto)));
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+}