Pārlūkot izejas kodu

修改bug:
车险报价,中煤起保日期对接的不对

jiakai 4 mēneši atpakaļ
vecāks
revīzija
a7a16fe357

+ 82 - 82
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java

@@ -282,8 +282,8 @@ public class UnifyOrderManager {
                 costs.setVvTax(formatPremium(costs.getVvTax()));               // 车船税
                 costs.setSumPremium(formatPremium(costs.getSumPremium()));     // 总保费
             }
-            quoteResultsVo.setCiRiskInfoVo(quoteVo.getCiRiskInfoVo());
-            quoteResultsVo.setBiRiskInfoVo(quoteVo.getBiRiskInfoVo());
+//            quoteResultsVo.setCiRiskInfoVo(quoteVo.getCiRiskInfoVo());
+//            quoteResultsVo.setBiRiskInfoVo(quoteVo.getBiRiskInfoVo());
             quoteResultsVo.setQuoteStatus(quoteResultsVo.getQuoteStatusEnum().getCode());
             quoteResultsVo.setOrdersNo(ordersNo);
             // 报价后更新订单
@@ -292,86 +292,86 @@ public class UnifyOrderManager {
             //////////////////////////////////////////新增营销抽奖活动////////////////////////////////////////////////
             //远程调用活动列表
             //匹配规则 每报价()次,可得()次抽奖机会,每日最多()次抽奖
-            HttpResult<List<LotteryActivityVO>> result = localLivingClient.queryActivityRules(lotteryScene);
-            if (result == null || result.getCode() != 200 || result.getData() == null) {
-                log.error("统一报价,查询本地生活的活动列表异常");
-            } else {
-                for (LotteryActivityVO activity : result.getData()) {
-                    // 检查活动是否有效
-                    if (!LocalDate.now().isBefore(activity.getActivityStartTime())
-                            && !LocalDate.now().isAfter(activity.getActivityEndTime())) {
-                        continue;
-                    }
-
-                    if (activity.getLocalActivityTables() == null) {
-                        continue;
-                    }
-                    // 遍历所有本地活动表
-                    for (LocalActivityTableVO table : activity.getLocalActivityTables()) {
-                        // 只处理 type=6 的报价规则
-                        if (!"6".equals(table.getType())) {
-                            continue;
-                        }
-
-                        // 只处理本租户的报价规则
-                        if (!baseController.getUserSystemCode().equals(table.getTenantId())) {
-                            continue;
-                        }
-                        // 查询是否在一账通绑定
-                        UnifiedUserCenterDTO unifiedUserCenterDTO = new UnifiedUserCenterDTO();
-                        unifiedUserCenterDTO.setUserId(quoteVo.getOrder().getRealQuoteUserId());
-                        unifiedUserCenterDTO.setClientId(CLIENT_ID);
-                        unifiedUserCenterDTO.setTenantId(baseController.getUserSystemCode());
-                        HttpResult<UnifiedUserClientVO> unifiedUserClientVOHttpResult = null;
-                        try {
-                            unifiedUserClientVOHttpResult = localLivingClient.queryBind(unifiedUserCenterDTO);
-                        } catch (Exception e) {
-                            log.info("业务员报价,查询用户绑定一账通接口异常,userId:{},clientId:{},tenantId:{}", quoteVo.getOrder().getRealQuoteUserId(), CLIENT_ID, baseController.getUserSystemCode());
-                            log.error("业务员报价,查询用户绑定一账通接口异常", e);
-                        }
-                        if (unifiedUserClientVOHttpResult == null || unifiedUserClientVOHttpResult.getCode() != 200 || unifiedUserClientVOHttpResult.getData() == null) {
-                            // 判断是否满足条件
-                            // 业务员报价次数是否大于等于本活动规定时间范围内的报价次数
-                            // 统计业务员的报价次数
-                            int count = insOrdersService.countQuoteNum(baseController.getUserSystemCode(), quoteVo.getOrder().getRealQuoteUserId(), activity.getActivityStartTime(), activity.getActivityEndTime());
-                            if (count >= Integer.parseInt(table.getQutNum()) && count <= Integer.parseInt(table.getQutLotteryMax())) {
-                                // 存本地记录 等绑定后更新本地记录的同步状态字段即可
-                                completeRule(baseController.getUserSystemCode(), quoteVo.getOrder().getRealQuoteUserId(), null, activity.getId(),
-                                        table.getId(), table.getQutNum() ,table.getQutLotteryNum() ,table.getQutLotteryMax() ,YesNoEnum.NO.getCode(), 6);
-                                log.info("业务员报价,满足条件插入记录,userId:{},clientId:{},tenantId:{}", quoteVo.getOrder().getRealQuoteUserId(), CLIENT_ID, baseController.getUserSystemCode());
-                            }
-                        }else {
-                            Map<String, List<UnifiedUserClientVO>> userClientGroupMap = unifiedUserClientVOHttpResult.getData().getUserClients()
-                                    .stream()
-                                    .collect(Collectors.groupingBy(UnifiedUserClientVO::getClientId));
-                            // 首先查业务员是否在一账通绑定过本地生活  【已绑定过 远程调抽奖次数增加接口 标记已同步
-                            if (userClientGroupMap.containsKey(CLIENT_ID)) {
-                                int count = insOrdersService.countQuoteNum(baseController.getUserSystemCode(), quoteVo.getOrder().getRealQuoteUserId(), activity.getActivityStartTime(), activity.getActivityEndTime());
-                                if (count >= Integer.parseInt(table.getQutNum()) && count <= Integer.parseInt(table.getQutLotteryMax())) {
-                                    LotteryCounDTO lotteryCounDTO = new LotteryCounDTO();
-                                    lotteryCounDTO.setAppUserId(quoteVo.getOrder().getRealQuoteUserId());
-                                    lotteryCounDTO.setActivityId(activity.getId());
-                                    lotteryCounDTO.setCount(Integer.parseInt(table.getQutLotteryNum()));
-                                    HttpResult<LotteryCountVO> lotteryCountVOHttpResult = null;
-                                    try {
-                                        lotteryCountVOHttpResult = localLivingClient.addLotteryCount(lotteryCounDTO);
-                                    } catch (Exception e) {
-                                        log.info("业务员报价,远程调用本地生活抽奖次数增加接口异常,userId:{},count:{},tenantId:{}", quoteVo.getOrder().getRealQuoteUserId(), table.getQutLotteryNum(), baseController.getUserSystemCode());
-                                        log.error("业务员报价,远程调用本地生活抽奖次数增加异常", e);
-                                    }
-                                    if (lotteryCountVOHttpResult != null && lotteryCountVOHttpResult.getData().getSuccess()) {
-                                        // 记录规则完成  标记已同步
-                                        completeRule(baseController.getUserSystemCode(), quoteVo.getOrder().getRealQuoteUserId(), null, activity.getId(),
-                                                table.getId(), table.getQutNum(), table.getQutLotteryNum(), table.getQutLotteryMax(), YesNoEnum.YES.getCode(), 6);
-
-                                        log.info("业务员报价,满足条件插入记录并远程同步,userId:{},clientId:{},tenantId:{}", quoteVo.getOrder().getRealQuoteUserId(), CLIENT_ID, baseController.getUserSystemCode());
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
+//            HttpResult<List<LotteryActivityVO>> result = localLivingClient.queryActivityRules(lotteryScene);
+//            if (result == null || result.getCode() != 200 || result.getData() == null) {
+//                log.error("统一报价,查询本地生活的活动列表异常");
+//            } else {
+//                for (LotteryActivityVO activity : result.getData()) {
+//                    // 检查活动是否有效
+//                    if (!LocalDate.now().isBefore(activity.getActivityStartTime())
+//                            && !LocalDate.now().isAfter(activity.getActivityEndTime())) {
+//                        continue;
+//                    }
+//
+//                    if (activity.getLocalActivityTables() == null) {
+//                        continue;
+//                    }
+//                    // 遍历所有本地活动表
+//                    for (LocalActivityTableVO table : activity.getLocalActivityTables()) {
+//                        // 只处理 type=6 的报价规则
+//                        if (!"6".equals(table.getType())) {
+//                            continue;
+//                        }
+//
+//                        // 只处理本租户的报价规则
+//                        if (!baseController.getUserSystemCode().equals(table.getTenantId())) {
+//                            continue;
+//                        }
+//                        // 查询是否在一账通绑定
+//                        UnifiedUserCenterDTO unifiedUserCenterDTO = new UnifiedUserCenterDTO();
+//                        unifiedUserCenterDTO.setUserId(quoteVo.getOrder().getRealQuoteUserId());
+//                        unifiedUserCenterDTO.setClientId(CLIENT_ID);
+//                        unifiedUserCenterDTO.setTenantId(baseController.getUserSystemCode());
+//                        HttpResult<UnifiedUserClientVO> unifiedUserClientVOHttpResult = null;
+//                        try {
+//                            unifiedUserClientVOHttpResult = localLivingClient.queryBind(unifiedUserCenterDTO);
+//                        } catch (Exception e) {
+//                            log.info("业务员报价,查询用户绑定一账通接口异常,userId:{},clientId:{},tenantId:{}", quoteVo.getOrder().getRealQuoteUserId(), CLIENT_ID, baseController.getUserSystemCode());
+//                            log.error("业务员报价,查询用户绑定一账通接口异常", e);
+//                        }
+//                        if (unifiedUserClientVOHttpResult == null || unifiedUserClientVOHttpResult.getCode() != 200 || unifiedUserClientVOHttpResult.getData() == null) {
+//                            // 判断是否满足条件
+//                            // 业务员报价次数是否大于等于本活动规定时间范围内的报价次数
+//                            // 统计业务员的报价次数
+//                            int count = insOrdersService.countQuoteNum(baseController.getUserSystemCode(), quoteVo.getOrder().getRealQuoteUserId(), activity.getActivityStartTime(), activity.getActivityEndTime());
+//                            if (count >= Integer.parseInt(table.getQutNum()) && count <= Integer.parseInt(table.getQutLotteryMax())) {
+//                                // 存本地记录 等绑定后更新本地记录的同步状态字段即可
+//                                completeRule(baseController.getUserSystemCode(), quoteVo.getOrder().getRealQuoteUserId(), null, activity.getId(),
+//                                        table.getId(), table.getQutNum() ,table.getQutLotteryNum() ,table.getQutLotteryMax() ,YesNoEnum.NO.getCode(), 6);
+//                                log.info("业务员报价,满足条件插入记录,userId:{},clientId:{},tenantId:{}", quoteVo.getOrder().getRealQuoteUserId(), CLIENT_ID, baseController.getUserSystemCode());
+//                            }
+//                        }else {
+//                            Map<String, List<UnifiedUserClientVO>> userClientGroupMap = unifiedUserClientVOHttpResult.getData().getUserClients()
+//                                    .stream()
+//                                    .collect(Collectors.groupingBy(UnifiedUserClientVO::getClientId));
+//                            // 首先查业务员是否在一账通绑定过本地生活  【已绑定过 远程调抽奖次数增加接口 标记已同步
+//                            if (userClientGroupMap.containsKey(CLIENT_ID)) {
+//                                int count = insOrdersService.countQuoteNum(baseController.getUserSystemCode(), quoteVo.getOrder().getRealQuoteUserId(), activity.getActivityStartTime(), activity.getActivityEndTime());
+//                                if (count >= Integer.parseInt(table.getQutNum()) && count <= Integer.parseInt(table.getQutLotteryMax())) {
+//                                    LotteryCounDTO lotteryCounDTO = new LotteryCounDTO();
+//                                    lotteryCounDTO.setAppUserId(quoteVo.getOrder().getRealQuoteUserId());
+//                                    lotteryCounDTO.setActivityId(activity.getId());
+//                                    lotteryCounDTO.setCount(Integer.parseInt(table.getQutLotteryNum()));
+//                                    HttpResult<LotteryCountVO> lotteryCountVOHttpResult = null;
+//                                    try {
+//                                        lotteryCountVOHttpResult = localLivingClient.addLotteryCount(lotteryCounDTO);
+//                                    } catch (Exception e) {
+//                                        log.info("业务员报价,远程调用本地生活抽奖次数增加接口异常,userId:{},count:{},tenantId:{}", quoteVo.getOrder().getRealQuoteUserId(), table.getQutLotteryNum(), baseController.getUserSystemCode());
+//                                        log.error("业务员报价,远程调用本地生活抽奖次数增加异常", e);
+//                                    }
+//                                    if (lotteryCountVOHttpResult != null && lotteryCountVOHttpResult.getData().getSuccess()) {
+//                                        // 记录规则完成  标记已同步
+//                                        completeRule(baseController.getUserSystemCode(), quoteVo.getOrder().getRealQuoteUserId(), null, activity.getId(),
+//                                                table.getId(), table.getQutNum(), table.getQutLotteryNum(), table.getQutLotteryMax(), YesNoEnum.YES.getCode(), 6);
+//
+//                                        log.info("业务员报价,满足条件插入记录并远程同步,userId:{},clientId:{},tenantId:{}", quoteVo.getOrder().getRealQuoteUserId(), CLIENT_ID, baseController.getUserSystemCode());
+//                                    }
+//                                }
+//                            }
+//                        }
+//                    }
+//                }
+//            }
 
 
         } catch (Exception e) {

+ 29 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersCarInfoServiceImpl.java

@@ -26,7 +26,9 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
 import java.util.List;
 import java.util.Objects;
 
@@ -118,8 +120,12 @@ public class InsOrdersCarInfoServiceImpl extends ServiceImpl<InsOrdersCarInfoMap
         insOrdersCarInfo.setLicenseColorCode(carInfoVo.getLicenseColorCode());
         insOrdersCarInfo.setCarKindDetailIdCode(carInfoVo.getCarKindDetailIdCode());
         insOrdersCarInfo.setLicenseKindCode(carInfoVo.getLicenseKindCode());
-        insOrdersCarInfo.setRegisterDate(LocalDate.parse(carInfoVo.getRegisterDate(),formatter).atStartOfDay());
-        insOrdersCarInfo.setIssueDate(LocalDate.parse(carInfoVo.getIssueDate(),formatter).atStartOfDay());
+        LocalDateTime registerDate = parseToLocalDateTime(carInfoVo.getRegisterDate(), formatter);
+        AssertionUtils.isEmpty(registerDate, "请填写注册日期");
+        insOrdersCarInfo.setRegisterDate(registerDate);
+        LocalDateTime issueDate = parseToLocalDateTime(carInfoVo.getIssueDate(), formatter);
+        AssertionUtils.isEmpty(issueDate, "请填写发证日期");
+        insOrdersCarInfo.setIssueDate(issueDate);
         boolean isTransfer = carInfoVo.isTransfer();
         insOrdersCarInfo.setTransfer(isTransfer ? 1 : 0);
         if (isTransfer) {
@@ -169,4 +175,25 @@ public class InsOrdersCarInfoServiceImpl extends ServiceImpl<InsOrdersCarInfoMap
         quoteVo.setInsuredPersonInfo(new CustomerInfoVo(insuredPersonInfo));
         return quoteVo;
     }
+
+    /**
+     * 格式化日期,并防止报错
+     * @param dateStr
+     * @param formatter
+     * @return
+     */
+    private LocalDateTime parseToLocalDateTime(String dateStr, DateTimeFormatter formatter) {
+        if (dateStr == null || dateStr.isBlank()) {
+            return null;
+        }
+        // 过滤不完整日期,例如 2022-02- 这种
+        if (!dateStr.matches("\\d{4}-\\d{2}-\\d{1,2}")) {
+            return null;
+        }
+        try {
+            return LocalDate.parse(dateStr, formatter).atStartOfDay();
+        } catch (DateTimeParseException e) {
+            return null;
+        }
+    }
 }