Pārlūkot izejas kodu

诚泰车型座位数匹配

785834757 3 mēneši atpakaļ
vecāks
revīzija
f421e6c50b

+ 28 - 3
src/main/java/com/ydtech/modules/order/entity/api/chengtai/request/SubmitRequest.java

@@ -27,6 +27,8 @@ import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -1091,8 +1093,31 @@ public class SubmitRequest {
         @JacksonXmlProperty(localName = "sumGrossPremium")
         private BigDecimal sumGrossPremium;
 
+
+        public static int isZeroOClock(String timeStr) {
+            // 空值直接返回 false
+            if (timeStr == null || timeStr.isEmpty()) {
+                return 0;
+            }
+
+            try {
+                // 解析字符串时间
+                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+                LocalDateTime dateTime = LocalDateTime.parse(timeStr, formatter);
+
+                // 判断是否 00:00:00
+                return dateTime.getHour() == 0
+                        && dateTime.getMinute() == 0
+                        && dateTime.getSecond() == 0 ? 0 : 1;
+
+            } catch (Exception e) {
+                // 时间格式错误也返回 false
+                return 0;
+            }
+        }
+
         public static List<Risk> buildRiskList(InsOrders insOrders,InsAreaCompany insAreaCompany) {
-            List<RiskInfoVo> riskInfoVoList = insOrders.getRisk().toJavaList(RiskInfoVo.class);
+            List<RiskInfoVo> riskInfoVoList = insAreaCompany.getRiskinfo().toJavaList(RiskInfoVo.class);
             List<Risk> riskList = new ArrayList<>();
             for (RiskInfoVo riskInfoVo : riskInfoVoList) {
                 Risk risk = new Risk();
@@ -1100,13 +1125,13 @@ public class SubmitRequest {
                     risk.setRiskCode("0801");
                     risk.setStartDate(XmlDateTimeFormatter.format(riskInfoVo.getStartDate()));
                     risk.setEndDate(XmlDateTimeFormatter.format(riskInfoVo.getEndDate()));
-                    risk.setEffectFlag(riskInfoVo.getInstantFlag());
+                    risk.setEffectFlag(String.valueOf(isZeroOClock(riskInfoVo.getStartDate())));
                     risk.setSumGrossPremium(insAreaCompany.getJqpremium());
                 } else if (riskInfoVo.getRiskCode().equals("0510")) {
                     risk.setRiskCode("0808");
                     risk.setStartDate(XmlDateTimeFormatter.format(riskInfoVo.getStartDate()));
                     risk.setEndDate(XmlDateTimeFormatter.format(riskInfoVo.getEndDate()));
-                    risk.setEffectFlag(riskInfoVo.getInstantFlag());
+                    risk.setEffectFlag(String.valueOf(isZeroOClock(riskInfoVo.getStartDate())));
                     risk.setSumGrossPremium(insAreaCompany.getSypremium());
                 }
                 riskList.add(risk);

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

@@ -147,8 +147,12 @@ public class ChengTaiOrderApiServiceImpl implements ChengTaiOrderApiService {
         CarModelQueryRequest carModelQueryRequest = new CarModelQueryRequest(quoteInfoVo.getCarInfo());
         CarModelQueryResponse carModelQueryResponse = chengTaiRequestApiComponent.carModelQuery(carModelQueryRequest);
         CarModelQueryResponse.vehicle vehicle =
-                new CarModelsFilterUtils<CarModelQueryResponse.vehicle>().to(carModelQueryResponse.getVehicleList(),
-                        quoteInfoVo.getCarInfo());
+                new CarModelsFilterUtils<CarModelQueryResponse.vehicle>().to(
+                        carModelQueryResponse.getVehicleList().stream()
+                                .filter(item -> item.getSeat().equals(quoteInfoVo.getCarInfo().getSeatCount()))
+                                .collect(Collectors.toList()),
+                        quoteInfoVo.getCarInfo()
+                );
 
         /** 3. 计算车辆实际价值 */
         BigDecimal carActualValue = calculateCarActualValue(vehicle, quoteInfoVo.getCarInfo());