|
@@ -5,6 +5,7 @@ import com.ydtech.constants.InsuranceEnum;
|
|
|
import com.ydtech.constants.enums.InsuranceRisk;
|
|
import com.ydtech.constants.enums.InsuranceRisk;
|
|
|
import com.ydtech.modules.ins.model.vo.RiskInfoVo;
|
|
import com.ydtech.modules.ins.model.vo.RiskInfoVo;
|
|
|
import com.ydtech.modules.order.components.ZhongmeiRequestApiComponents;
|
|
import com.ydtech.modules.order.components.ZhongmeiRequestApiComponents;
|
|
|
|
|
+import com.ydtech.modules.order.components.gouren.GuorenDuplicateInsuranceComponent;
|
|
|
import com.ydtech.modules.order.entity.api.zhongmei.constants.TimeConstants;
|
|
import com.ydtech.modules.order.entity.api.zhongmei.constants.TimeConstants;
|
|
|
import com.ydtech.modules.order.entity.api.zhongmei.request.QuotedPriceRequest;
|
|
import com.ydtech.modules.order.entity.api.zhongmei.request.QuotedPriceRequest;
|
|
|
import com.ydtech.modules.order.entity.api.zhongmei.response.QuotedPriceResponse;
|
|
import com.ydtech.modules.order.entity.api.zhongmei.response.QuotedPriceResponse;
|
|
@@ -29,14 +30,57 @@ import java.util.List;
|
|
|
@Component
|
|
@Component
|
|
|
public class ZhongmeiRepeatInsuranceComponents {
|
|
public class ZhongmeiRepeatInsuranceComponents {
|
|
|
|
|
|
|
|
|
|
+ public static final String JQ = "交强险";
|
|
|
|
|
+
|
|
|
private final ZhongmeiRequestApiComponents zhongmeiRequestApiComponents;
|
|
private final ZhongmeiRequestApiComponents zhongmeiRequestApiComponents;
|
|
|
|
|
|
|
|
public ZhongmeiRepeatInsuranceComponents(@Lazy ZhongmeiRequestApiComponents zhongmeiRequestApiComponents) {
|
|
public ZhongmeiRepeatInsuranceComponents(@Lazy ZhongmeiRequestApiComponents zhongmeiRequestApiComponents) {
|
|
|
this.zhongmeiRequestApiComponents = zhongmeiRequestApiComponents;
|
|
this.zhongmeiRequestApiComponents = zhongmeiRequestApiComponents;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public QuotedPriceResponse test(QuotedPriceRequest quotedPriceRequest, QuotedPriceResponse quotedPriceResponse,
|
|
|
|
|
+ BaseQuoteInfoVo quoteInfo) {
|
|
|
|
|
+ String returnMessage = quotedPriceResponse.getHead().getReturnMessage();
|
|
|
|
|
+
|
|
|
|
|
+ QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBiz = null;
|
|
|
|
|
+ QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBusi = null;
|
|
|
|
|
+ List<QuotedPriceRequest.ContractDTO> contractDTOList = quotedPriceRequest.getBusinessData().getContract();
|
|
|
|
|
+
|
|
|
|
|
+ for (QuotedPriceRequest.ContractDTO contractDTO : contractDTOList) {
|
|
|
|
|
+ QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTO = contractDTO.getContractMain();
|
|
|
|
|
+ if ("0330".equals(contractMainDTO.getRiskCode())) {
|
|
|
|
|
+ contractMainDTOBiz = contractDTO.getContractMain();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ contractMainDTOBusi = contractDTO.getContractMain();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<RiskInfoVo> riskList = quoteInfo.getRiskList();
|
|
|
|
|
+ if (StringUtils.isNotEmpty(returnMessage) && returnMessage.contains("重复投保")) {
|
|
|
|
|
+ if (returnMessage.contains(GuorenDuplicateInsuranceComponent.JQ)) {
|
|
|
|
|
+ String jqEndDate = GuorenDuplicateInsuranceComponent.getEndDate(returnMessage,
|
|
|
|
|
+ GuorenDuplicateInsuranceComponent.THE_SECOND_REGEX);
|
|
|
|
|
+ contractMainDTOBiz = getPeriodDate(jqEndDate, contractMainDTOBiz);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for (RiskInfoVo riskInfoVo : riskList) {
|
|
|
|
|
+ if (InsuranceRisk.TRAFFIC.getCode().equals(riskInfoVo.getRiskCode())) {
|
|
|
|
|
+ riskInfoVo.setStartDate(contractMainDTOBiz.getValidDate());
|
|
|
|
|
+ riskInfoVo.setEndDate(contractMainDTOBiz.getExpiryDate());
|
|
|
|
|
+ } else if (InsuranceRisk.BUSINESS.getCode().equals(riskInfoVo.getRiskCode())) {
|
|
|
|
|
+ riskInfoVo.setStartDate(contractMainDTOBusi.getValidDate());
|
|
|
|
|
+ riskInfoVo.setEndDate(contractMainDTOBusi.getExpiryDate());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return zhongmeiRequestApiComponents.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ return quotedPriceResponse;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
|
|
|
- public QuotedPriceResponse dealRepeatDate(QuotedPriceRequest quotedPriceRequest, QuotedPriceResponse quotedPriceResponse, BaseQuoteInfoVo quoteInfo) {
|
|
|
|
|
|
|
+ public QuotedPriceResponse dealRepeatDate(QuotedPriceRequest quotedPriceRequest, QuotedPriceResponse quotedPriceResponse,
|
|
|
|
|
+ BaseQuoteInfoVo quoteInfo) {
|
|
|
String rtnMsgBz = "";
|
|
String rtnMsgBz = "";
|
|
|
String rtnMsgBusi = "";
|
|
String rtnMsgBusi = "";
|
|
|
List<RiskInfoVo> riskList = quoteInfo.getRiskList();
|
|
List<RiskInfoVo> riskList = quoteInfo.getRiskList();
|
|
@@ -47,9 +91,14 @@ public class ZhongmeiRepeatInsuranceComponents {
|
|
|
rtnMsgBusi = quotedPriceResponse.getBizPlatformMsg().getAnswer();
|
|
rtnMsgBusi = quotedPriceResponse.getBizPlatformMsg().getAnswer();
|
|
|
}
|
|
}
|
|
|
InsuranceLog.infoLog(InsuranceEnum.ZMBX.getPinyin(), "\n\t---------> {}\n\t---------> {}", "中煤财险重复投保处理", rtnMsgBz + rtnMsgBusi);
|
|
InsuranceLog.infoLog(InsuranceEnum.ZMBX.getPinyin(), "\n\t---------> {}\n\t---------> {}", "中煤财险重复投保处理", rtnMsgBz + rtnMsgBusi);
|
|
|
- /* rtnMsgBz = "交强险平台返回:号牌号码“晋HQE092”的保单发生重复投保,与其重复投保的其它公司的保单信息如下:投保确认码 02CCIC140022102196416712744293;保单号 PDFA22140123250000001413;起保日期 2022-10-24 00:00;终保日期 2023-10-24 00:00;号牌号码 晋HQE092;号牌种类 02;车架号 LSGBC5356HG101426;发动机号 170971343;地区 山西。";
|
|
|
|
|
- rtnMsgBusi = "平台校验:成功 投保查询码:V0101ZMBX140023092205710579353 平台校验,可能存在重复投保,请关注以下平台返回的信息。保单号:6605212022140193005587; 保险公司:中国人寿财产保险公司: 起保日期:2022-10-1600:00:00; 终保日期:2023-10-16; 录单日期:2022-09-15; 险种名称:机动车第三者责任保险: 号牌号码:晋A711BW; 号牌种类代码:02; 号牌底色:01; 车辆识别代号: LGWEF4A52HF424155; 发动机号:1725091016";
|
|
|
|
|
- 投保查询码:V0101ZMBX140023102198367810970平台校验,可能存在重复投保,请关注以下平台返回的信息。保单号:;保险公司:;起保日期:;终保日期:;录单日期:;车辆识别代号:LVHRE4876B5049915;发动机号:5049956;重复投保公司种类:其他公司
|
|
|
|
|
|
|
+ /* rtnMsgBz = "交强险平台返回:号牌号码“晋HQE092”的保单发生重复投保,与其重复投保的其它公司的保单信息如下:投保确认码 02CCIC140022102196416712744293;保单号
|
|
|
|
|
+ PDFA22140123250000001413;起保日期 2022-10-24 00:00;终保日期 2023-10-24 00:00;号牌号码 晋HQE092;号牌种类 02;车架号 LSGBC5356HG101426;发动机号 170971343;地区
|
|
|
|
|
+ 山西。";
|
|
|
|
|
+ rtnMsgBusi = "平台校验:成功 投保查询码:V0101ZMBX140023092205710579353 平台校验,可能存在重复投保,请关注以下平台返回的信息。保单号:6605212022140193005587;
|
|
|
|
|
+ 保险公司:中国人寿财产保险公司: 起保日期:2022-10-1600:00:00; 终保日期:2023-10-16; 录单日期:2022-09-15; 险种名称:机动车第三者责任保险: 号牌号码:晋A711BW; 号牌种类代码:02; 号牌底色:01;
|
|
|
|
|
+ 车辆识别代号: LGWEF4A52HF424155; 发动机号:1725091016";
|
|
|
|
|
+ 投保查询码:V0101ZMBX140023102198367810970平台校验,可能存在重复投保,请关注以下平台返回的信息。保单号:;保险公司:;起保日期:;终保日期:;录单日期:;车辆识别代号:LVHRE4876B5049915;
|
|
|
|
|
+ 发动机号:5049956;重复投保公司种类:其他公司
|
|
|
*/
|
|
*/
|
|
|
QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBiz = null;
|
|
QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBiz = null;
|
|
|
QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBusi = null;
|
|
QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBusi = null;
|
|
@@ -62,14 +111,14 @@ public class ZhongmeiRepeatInsuranceComponents {
|
|
|
} else {
|
|
} else {
|
|
|
contractMainDTOBusi = contractDTO.getContractMain();
|
|
contractMainDTOBusi = contractDTO.getContractMain();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
String jqEndDate = "";
|
|
String jqEndDate = "";
|
|
|
String syEndDate = "";
|
|
String syEndDate = "";
|
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(rtnMsgBz) && rtnMsgBz.contains("起保日期") && rtnMsgBz.contains("终保日期")) {
|
|
if (StringUtils.isNotEmpty(rtnMsgBz) && rtnMsgBz.contains("起保日期") && rtnMsgBz.contains("终保日期")) {
|
|
|
String coverageEndDate = rtnMsgBz.substring(rtnMsgBz.indexOf("终保日期") + 5, rtnMsgBz.indexOf("终保日期") + 5 + 16);
|
|
String coverageEndDate = rtnMsgBz.substring(rtnMsgBz.indexOf("终保日期") + 5, rtnMsgBz.indexOf("终保日期") + 5 + 16);
|
|
|
- if(coverageEndDate.contains("-")){
|
|
|
|
|
|
|
+ if (coverageEndDate.contains("-")) {
|
|
|
LocalDateTime start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN_EXT1);
|
|
LocalDateTime start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN_EXT1);
|
|
|
jqEndDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
|
|
jqEndDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
|
|
|
contractMainDTOBiz = getPeriodDate(jqEndDate, contractMainDTOBiz);
|
|
contractMainDTOBiz = getPeriodDate(jqEndDate, contractMainDTOBiz);
|
|
@@ -79,7 +128,7 @@ public class ZhongmeiRepeatInsuranceComponents {
|
|
|
riskInfoVo.setEndDate(contractMainDTOBiz.getExpiryDate());
|
|
riskInfoVo.setEndDate(contractMainDTOBiz.getExpiryDate());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
return quotedPriceResponse;
|
|
return quotedPriceResponse;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -88,7 +137,7 @@ public class ZhongmeiRepeatInsuranceComponents {
|
|
|
// 商业险
|
|
// 商业险
|
|
|
if (StringUtils.isNotEmpty(rtnMsgBusi) && rtnMsgBusi.contains("起保日期") && rtnMsgBusi.contains("终保日期")) {
|
|
if (StringUtils.isNotEmpty(rtnMsgBusi) && rtnMsgBusi.contains("起保日期") && rtnMsgBusi.contains("终保日期")) {
|
|
|
String coverageEndDate = rtnMsgBusi.substring(rtnMsgBusi.indexOf("终保日期") + 5, rtnMsgBusi.indexOf("终保日期") + 5 + 10);
|
|
String coverageEndDate = rtnMsgBusi.substring(rtnMsgBusi.indexOf("终保日期") + 5, rtnMsgBusi.indexOf("终保日期") + 5 + 10);
|
|
|
- if(coverageEndDate.contains("-")){
|
|
|
|
|
|
|
+ if (coverageEndDate.contains("-")) {
|
|
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
LocalDateTime start = LocalDate.parse(coverageEndDate, dateTimeFormatter).atStartOfDay();
|
|
LocalDateTime start = LocalDate.parse(coverageEndDate, dateTimeFormatter).atStartOfDay();
|
|
|
syEndDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
|
|
syEndDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
|
|
@@ -99,7 +148,7 @@ public class ZhongmeiRepeatInsuranceComponents {
|
|
|
riskInfoVo.setEndDate(contractMainDTOBusi.getExpiryDate());
|
|
riskInfoVo.setEndDate(contractMainDTOBusi.getExpiryDate());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
return quotedPriceResponse;
|
|
return quotedPriceResponse;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -111,12 +160,18 @@ public class ZhongmeiRepeatInsuranceComponents {
|
|
|
return zhongmeiRequestApiComponents.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
|
|
return zhongmeiRequestApiComponents.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public QuotedPriceResponse dealRepeatDateFormError(QuotedPriceRequest quotedPriceRequest, QuotedPriceResponse quotedPriceResponse, BaseQuoteInfoVo quoteInfo) {
|
|
|
|
|
- InsuranceLog.infoLog(InsuranceEnum.ZMBX.getPinyin(), "\n\t---------> {}\n\t---------> {}", "中煤财险重复投保处理", quotedPriceResponse.getHead().getReturnMessage());
|
|
|
|
|
|
|
+ public QuotedPriceResponse dealRepeatDateFormError(QuotedPriceRequest quotedPriceRequest, QuotedPriceResponse quotedPriceResponse,
|
|
|
|
|
+ BaseQuoteInfoVo quoteInfo) {
|
|
|
|
|
+ InsuranceLog.infoLog(InsuranceEnum.ZMBX.getPinyin(), "\n\t---------> {}\n\t---------> {}", "中煤财险重复投保处理",
|
|
|
|
|
+ quotedPriceResponse.getHead().getReturnMessage());
|
|
|
String rtnMsgBusi = quotedPriceResponse.getHead().getReturnMessage();
|
|
String rtnMsgBusi = quotedPriceResponse.getHead().getReturnMessage();
|
|
|
List<RiskInfoVo> riskList = quoteInfo.getRiskList();
|
|
List<RiskInfoVo> riskList = quoteInfo.getRiskList();
|
|
|
- /* rtnMsgBz = "交强险平台返回:号牌号码“晋HQE092”的保单发生重复投保,与其重复投保的其它公司的保单信息如下:投保确认码 02CCIC140022102196416712744293;保单号 PDFA22140123250000001413;起保日期 2022-10-24 00:00;终保日期 2023-10-24 00:00;号牌号码 晋HQE092;号牌种类 02;车架号 LSGBC5356HG101426;发动机号 170971343;地区 山西。";
|
|
|
|
|
- rtnMsgBusi = "平台校验:成功 投保查询码:V0101ZMBX140023092205710579353 平台校验,可能存在重复投保,请关注以下平台返回的信息。保单号:6605212022140193005587; 保险公司:中国人寿财产保险公司: 起保日期:2022-10-1600:00:00; 终保日期:2023-10-16; 录单日期:2022-09-15; 险种名称:机动车第三者责任保险: 号牌号码:晋A711BW; 号牌种类代码:02; 号牌底色:01; 车辆识别代号: LGWEF4A52HF424155; 发动机号:1725091016";
|
|
|
|
|
|
|
+ /* rtnMsgBz = "交强险平台返回:号牌号码“晋HQE092”的保单发生重复投保,与其重复投保的其它公司的保单信息如下:投保确认码 02CCIC140022102196416712744293;保单号
|
|
|
|
|
+ PDFA22140123250000001413;起保日期 2022-10-24 00:00;终保日期 2023-10-24 00:00;号牌号码 晋HQE092;号牌种类 02;车架号 LSGBC5356HG101426;发动机号 170971343;地区
|
|
|
|
|
+ 山西。";
|
|
|
|
|
+ rtnMsgBusi = "平台校验:成功 投保查询码:V0101ZMBX140023092205710579353 平台校验,可能存在重复投保,请关注以下平台返回的信息。保单号:6605212022140193005587;
|
|
|
|
|
+ 保险公司:中国人寿财产保险公司: 起保日期:2022-10-1600:00:00; 终保日期:2023-10-16; 录单日期:2022-09-15; 险种名称:机动车第三者责任保险: 号牌号码:晋A711BW; 号牌种类代码:02; 号牌底色:01;
|
|
|
|
|
+ 车辆识别代号: LGWEF4A52HF424155; 发动机号:1725091016";
|
|
|
*/
|
|
*/
|
|
|
QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBiz = null;
|
|
QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBiz = null;
|
|
|
QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBusi = null;
|
|
QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTOBusi = null;
|
|
@@ -150,7 +205,8 @@ public class ZhongmeiRepeatInsuranceComponents {
|
|
|
return zhongmeiRequestApiComponents.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
|
|
return zhongmeiRequestApiComponents.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private QuotedPriceRequest.ContractDTO.ContractMainDTO getPeriodDate(String startDate, QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTO) {
|
|
|
|
|
|
|
+ private QuotedPriceRequest.ContractDTO.ContractMainDTO getPeriodDate(String startDate,
|
|
|
|
|
+ QuotedPriceRequest.ContractDTO.ContractMainDTO contractMainDTO) {
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
LocalDate localDate = LocalDate.parse(startDate, formatter);
|
|
LocalDate localDate = LocalDate.parse(startDate, formatter);
|
|
|
LocalDate nextYears = localDate.plusYears(1);
|
|
LocalDate nextYears = localDate.plusYears(1);
|