Răsfoiți Sursa

1. 永诚修改特殊地区处理
2. 永诚修改车型匹配规则

ligang134 2 ani în urmă
părinte
comite
4a765eb189

+ 16 - 32
src/main/java/com/ydtech/modules/ins/model/yc/ruote/Base.java

@@ -13,6 +13,7 @@ import lombok.Data;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.List;
@@ -304,8 +305,6 @@ public class Base {
         base.setCAmtCur("01");
         base.setCPrmCur("01");
         base.setCOprCde(ycConfigureParameters.getCOprcde());
-        //@TODO 是否及时生效
-        base.setCImmeffMrk("0");
         base.setCUserType("0");
         base.setUserType("0");
         //续保标志(交强)  0 非续保   1 续保
@@ -334,33 +333,18 @@ public class Base {
         base.setAppContact(policyHolderInfo.getName());
         base.setAppYWFlag("N");
 
+
+        //是否及时生效
+        base.setCImmeffMrk("0");
         //交强
         RiskInfoVo ciRiskInfo = (RiskInfoVo) riskList.stream().filter(x -> x.getRiskCode().equals(InsuranceRisk.TRAFFIC.getCode())).findFirst().orElse(null);
         //商业
         RiskInfoVo biRiskInfo = (RiskInfoVo) riskList.stream().filter(x -> x.getRiskCode().equals(InsuranceRisk.BUSINESS.getCode())).findFirst().orElse(null);
 
 
-//        riskList.stream().forEach(a -> {
-//            //交强险
-//            if (a.getRiskCode().equals(InsuranceRisk.TRAFFIC)) {
-//                base.setTInsrncBgnTmJQ(a.getStartDate());
-//                base.setTInsrncEndTmJQ(a.getEndDate());
-//                base.setCAppJqFlag("Y");
-//                base.setCProdNoJQ("0326");
-//            }
-//            //商业险
-//            if (a.getRiskCode().equals(InsuranceRisk.BUSINESS)) {
-//                base.setTInsrncBgnTmSY(a.getStartDate());
-//                base.setTInsrncEndTmSY(a.getEndDate());
-//                base.setAppSYFlag("Y");
-//                base.setCProdNoSY("0364");
-//
-//            }
-//        });
-
 
         if (null != ciRiskInfo) {
-
+            if(base.isNowToTodayEnd(ciRiskInfo.getStartDate()))base.setCImmeffMrk("1");
             base.setTInsrncBgnTmJQ(ciRiskInfo.getStartDate());
             base.setTInsrncEndTmJQ(ciRiskInfo.getEndDate());
             base.setCAppJqFlag("Y");
@@ -368,17 +352,7 @@ public class Base {
         }
 
         if (null != biRiskInfo) {
-//            LocalDateTime startDateSy = DateTimeUtil.parseLocalDateTime(biRiskInfo.getStartDate(),DateTimeUtil.DATETIME_PATTERN);
-//            LocalDateTime endDateSy = DateTimeUtil.parseLocalDateTime(biRiskInfo.getEndDate(),DateTimeUtil.DATETIME_PATTERN);
-//            if(DateTimeUtil.inOneDay(startDateSy)){
-//                String syStart = DateTimeUtil.getStartTimeOfDayStr(startDateSy,DateTimeUtil.DATETIME_PATTERN);
-//                String syEnd = DateTimeUtil.getStartTimeOfDayStr(endDateSy,DateTimeUtil.DATETIME_PATTERN);
-//                base.setTInsrncBgnTmSY(syStart);
-//                base.setTInsrncEndTmSY(syEnd);
-//            }else{
-//                base.setTInsrncBgnTmSY(biRiskInfo.getStartDate());
-//                base.setTInsrncEndTmSY(biRiskInfo.getEndDate());
-//            }
+            if(base.isNowToTodayEnd(biRiskInfo.getStartDate()))base.setCImmeffMrk("1");
             base.setTInsrncBgnTmSY(biRiskInfo.getStartDate());
             base.setTInsrncEndTmSY(biRiskInfo.getEndDate());
             base.setAppSYFlag("Y");
@@ -389,4 +363,14 @@ public class Base {
     }
 
 
+
+    private boolean isNowToTodayEnd(String dateTime){
+        LocalDateTime now = LocalDateTime.now();
+        LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
+        LocalDateTime startDateTime = LocalDateTime.parse(dateTime);
+
+        return startDateTime.isAfter(now) && startDateTime.isBefore(todayEnd);
+    }
+
+
 }

+ 20 - 3
src/main/java/com/ydtech/modules/ins/service/impl/InsAlltrustApiServiceImpl.java

@@ -227,8 +227,9 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 
         if (CollUtil.isEmpty(rd.getVehicleInfoList())) throw new SystemException("永诚车型库查找失败");
 
-        //获取上市年份大于等于注册日期的车辆信息
-        List<ModelsQueryResponse.VehicleInfo> vehicleInfoList = rd.getVehicleInfoList().stream().filter(a -> DateTimeUtil.dateIsAfter(carInfo.getRegisterDate(), a.getVehicleYear())).collect(Collectors.toList());
+        //车辆年款不能超过注册日期
+        List<ModelsQueryResponse.VehicleInfo> vehicleInfoList = rd.getVehicleInfoList().stream().filter(a -> DateTimeUtil.dateIsAfter(carInfo.getRegisterDate(), a.getVehicleYear())).sorted(Comparator.comparing(ModelsQueryResponse.VehicleInfo::getVehiclePrice)).collect(Collectors.toList());
+//        List<ModelsQueryResponse.VehicleInfo> vehicleInfoList = rd.getVehicleInfoList().stream().filter(a -> DateTimeUtil.dateIsAfter(carInfo.getRegisterDate(), a.getVehicleYear())).collect(Collectors.toList());
 
         //匹配的车辆信息数据  为空
         if (CollUtil.isEmpty(vehicleInfoList)) {
@@ -249,8 +250,13 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         }
 
         //匹配的车辆信息数据里  未匹配成功   默认选择第一条
+        //排序  年款降序  金额升序
+        vehicleInfoList = vehicleInfoList.stream().sorted(Comparator.comparing(ModelsQueryResponse.VehicleInfo::getVehicleYear)
+                        .thenComparing((o1, o2) -> Integer.compare(StringUtils.toInt(o2.getVehiclePrice()), StringUtils.toInt(o1.getVehiclePrice()))).reversed())
+                .collect(Collectors.toList());
+
+
         carInfo.setModelCode(vehicleInfoList.get(0).getVehicleId());
-//                        carInfo.setCiModelCode(a.getModelCode());
         carInfo.setCiCarName(vehicleInfoList.get(0).getVehicleName());
         carInfo.setModelcname(vehicleInfoList.get(0).getVehicleName());
 
@@ -1789,6 +1795,17 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
             throw new SystemException("永诚报价需要录入省市县");
         }
 
+        if(info.getAddr().indexOf("湖北省仙桃市")==0){
+            InsAlltrustRegion r = new InsAlltrustRegion();
+            r.setProvinceCode("420000");
+            r.setProvince("湖北省");
+            r.setCityCode("429004");
+            r.setCity("仙桃市");
+            r.setArea("");
+            r.setAreaCode("");
+            return r;
+        }
+
         LambdaQueryWrapper<InsAlltrustRegion> lqw = new LambdaQueryWrapper<>();
         lqw.eq(StringUtils.isNotEmpty(province), InsAlltrustRegion::getProvince, province);
         lqw.eq(StringUtils.isNotEmpty(city), InsAlltrustRegion::getCity, city);

+ 1 - 1
src/main/java/com/ydtech/utils/HttpXmlUtil.java

@@ -201,7 +201,7 @@ public class HttpXmlUtil {
             log.error(textHead + "请求异常:"+e.getMessage() + ",原始返回:" + response);
             throw new SystemException("远程接口请求失败,请联系管理员。");
         } finally {
-            if(null != log) log.debug(textHead + "XML返回url:{},\n响应参数:{}", url, responseString.replaceAll("\n",""));
+            if(null != log) log.debug(textHead + "XML返回url:{},\n响应参数:{}", url, responseString.replaceAll("\n","").replaceAll("&lt;","<").replaceAll("&gt;",">"));
             response.close();
         }