|
|
@@ -12,12 +12,14 @@ import com.ydtech.modules.ins.model.vo.CarInfoVo;
|
|
|
import com.ydtech.modules.ins.model.vo.KindInfoVo;
|
|
|
import com.ydtech.modules.ins.model.vo.RiskInfoVo;
|
|
|
import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
|
|
|
+import com.ydtech.utils.DateTimeUtil;
|
|
|
import com.ydtech.utils.InsUtils;
|
|
|
import com.ydtech.utils.StringUtils;
|
|
|
import lombok.Data;
|
|
|
import lombok.NoArgsConstructor;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
@@ -30,10 +32,15 @@ import java.util.List;
|
|
|
@Data
|
|
|
public class PremiumReq {
|
|
|
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 交强险实体
|
|
|
+ */
|
|
|
@JsonProperty(value = "ci")
|
|
|
@JSONField(name = "ci")
|
|
|
private CiDTO ci;
|
|
|
+ /**
|
|
|
+ * 商业险实体
|
|
|
+ */
|
|
|
@JsonProperty(value = "bi")
|
|
|
@JSONField(name = "bi")
|
|
|
private BiDTO bi;
|
|
|
@@ -43,6 +50,12 @@ public class PremiumReq {
|
|
|
@JsonProperty(value = "uuid")
|
|
|
@JSONField(name = "uuid")
|
|
|
private String uuid;
|
|
|
+ /**
|
|
|
+ * 商业险重复投保提示
|
|
|
+ */
|
|
|
+ @JsonProperty(value = "bireCoverMsg")
|
|
|
+ @JSONField(name = "bireCoverMsg")
|
|
|
+ private String bireCoverMsg;
|
|
|
|
|
|
/**
|
|
|
* 构造保费计算请求参数
|
|
|
@@ -80,15 +93,6 @@ public class PremiumReq {
|
|
|
quoteReq.setBi(biDto);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-// Optional<RiskInfoVo> ciRiskInfo = riskList.stream().filter(x -> x.getRiskCode().equals("0507")).findFirst();
|
|
|
-// Optional<RiskInfoVo> biRiskInfo = riskList.stream().filter(x -> x.getRiskCode().equals("0510")).findFirst();
|
|
|
-//
|
|
|
-// CiDTO ciDto = buildCiDto(ciRiskInfo.get(),kindInfoVList);
|
|
|
-// BiDTO biDto = buildBiDto(biRiskInfo.get(), kindInfoVList);
|
|
|
-// quoteReq.setCi(ciDto);
|
|
|
-// quoteReq.setBi(biDto);
|
|
|
-
|
|
|
//车价查询uid
|
|
|
quoteReq.setUuid(carPriceResult.getInputvo());
|
|
|
//不超过业实际参考价格上下30%
|
|
|
@@ -550,6 +554,35 @@ public class PremiumReq {
|
|
|
@JSONField(name = "prpTcarshipTax")
|
|
|
private PrpTcarshipTaxDTO prpTcarshipTax;
|
|
|
|
|
|
+ public void setTrafficTime(String coverageEndDate) {
|
|
|
+ LocalDateTime start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN);
|
|
|
+ String newStartDate;
|
|
|
+ String newEndDate;
|
|
|
+
|
|
|
+ //及时起保
|
|
|
+ if (start.getHour() > 0) {
|
|
|
+ LocalDateTime end = start.plusYears(1L);
|
|
|
+ newStartDate = DateTimeUtil.format(start, DateTimeUtil.DATETIME_PATTERN);
|
|
|
+ newEndDate = DateTimeUtil.format(end, DateTimeUtil.DATETIME_PATTERN);
|
|
|
+
|
|
|
+ this.getPrpTmain().setStartHour(StringUtils.toString(start.getHour()));
|
|
|
+ this.getPrpTmain().setEndHour(StringUtils.toString(start.getHour()));
|
|
|
+ this.getPrpTmain().setImmeValidStartDate(newStartDate);
|
|
|
+ this.getPrpTmain().setImmeValidEndDate(newStartDate);
|
|
|
+ this.getPrpTmain().setImmeValiFlag("1");
|
|
|
+
|
|
|
+ } else {
|
|
|
+ LocalDateTime end = start.plusYears(1L).minusDays(1L);
|
|
|
+ newStartDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
|
|
|
+ newEndDate = DateTimeUtil.getEndTimeOfDayStr(end, DateTimeUtil.DATETIME_PATTERN);
|
|
|
+ }
|
|
|
+
|
|
|
+ this.getPrpTmain().setStartDate(newStartDate);
|
|
|
+ this.getPrpTmain().setEndDate(newEndDate);
|
|
|
+ this.getPrptitemkindList().get(0).setStartDate(newStartDate);
|
|
|
+ this.getPrptitemkindList().get(0).setEndDate(newEndDate);
|
|
|
+ }
|
|
|
+
|
|
|
@NoArgsConstructor
|
|
|
@Data
|
|
|
public static class PrpTitemCarDTO {
|
|
|
@@ -615,6 +648,8 @@ public class PremiumReq {
|
|
|
@JsonProperty(value = "startDate")
|
|
|
@JSONField(name = "startDate")
|
|
|
private String startDate;
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@NoArgsConstructor
|
|
|
@@ -724,6 +759,34 @@ public class PremiumReq {
|
|
|
@JSONField(name = "prpTmainRate")
|
|
|
private PrpTmainRateDTO prpTmainRate;
|
|
|
|
|
|
+ public void setBusinessTime(String coverageEndDate) {
|
|
|
+ LocalDateTime start = DateTimeUtil.parseLocalDateTime(coverageEndDate, DateTimeUtil.DATETIME_PATTERN);
|
|
|
+ String newStartDate;
|
|
|
+ String newEndDate;
|
|
|
+ //及时起保
|
|
|
+ if (start.getHour() > 0) {
|
|
|
+ LocalDateTime end = start.plusYears(1L);
|
|
|
+ newStartDate = DateTimeUtil.format(start, DateTimeUtil.DATETIME_PATTERN);
|
|
|
+ newEndDate = DateTimeUtil.format(end, DateTimeUtil.DATETIME_PATTERN);
|
|
|
+ this.getPrpTmain().setStartHour(StringUtils.toString(start.getHour()));
|
|
|
+ this.getPrpTmain().setEndHour(StringUtils.toString(start.getHour()));
|
|
|
+ this.getPrpTmain().setImmeValidStartDate(newStartDate);
|
|
|
+ this.getPrpTmain().setImmeValidEndDate(newStartDate);
|
|
|
+ this.getPrpTmain().setImmeValiFlag("1");
|
|
|
+
|
|
|
+ } else {
|
|
|
+ LocalDateTime end = start.plusYears(1L).minusDays(1L);
|
|
|
+ newStartDate = DateTimeUtil.getStartTimeOfDayStr(start, DateTimeUtil.DATETIME_PATTERN);
|
|
|
+ newEndDate = DateTimeUtil.getEndTimeOfDayStr(end, DateTimeUtil.DATETIME_PATTERN);
|
|
|
+ }
|
|
|
+ this.getPrpTmain().setStartDate(newStartDate);
|
|
|
+ this.getPrpTmain().setEndDate(newEndDate);
|
|
|
+ this.getPrptitemkindList().forEach(x -> {
|
|
|
+ x.setStartDate(newStartDate);
|
|
|
+ x.setEndDate(newEndDate);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
@NoArgsConstructor
|
|
|
@Data
|
|
|
public static class PrpTitemCarDTO {
|
|
|
@@ -859,6 +922,7 @@ public class PremiumReq {
|
|
|
@JsonProperty(value = "startDate")
|
|
|
@JSONField(name = "startDate")
|
|
|
private String startDate;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@NoArgsConstructor
|