785834757 hace 1 año
padre
commit
fca9047b15

+ 2 - 2
src/main/java/com/ydtech/modules/order/aop/aspect/QuoteVerificationAspect.java

@@ -188,8 +188,8 @@ public class QuoteVerificationAspect {
                 //税源查询
                 //税源查询
                 BaseQuoteInfoVo quoteInfo = insOrdersComponents.getQuoteInfo(orderno, ((BaseQuoteVo<?>) arg).getKinds());
                 BaseQuoteInfoVo quoteInfo = insOrdersComponents.getQuoteInfo(orderno, ((BaseQuoteVo<?>) arg).getKinds());
                 //add by hxl  2024-06-12  改为从主订单表中获取数据用户id和部门id
                 //add by hxl  2024-06-12  改为从主订单表中获取数据用户id和部门id
-                SysUser user = sysUserService.getById(quoteInfo.getUserId());
-                String userId=quoteInfo.getUserId();
+                SysUser user = sysUserService.getById(quoteInfo.getUserid());
+                String userId=quoteInfo.getUserid();
                 String deptId = user.getDeptId();
                 String deptId = user.getDeptId();
                 List<KindInfoVo> kinds = Objects.isNull(quoteInfo.getKindList()) ? new ArrayList<>() : quoteInfo.getKindList();
                 List<KindInfoVo> kinds = Objects.isNull(quoteInfo.getKindList()) ? new ArrayList<>() : quoteInfo.getKindList();
                 List<RiskInfoVo> risks = quoteInfo.getRiskList();
                 List<RiskInfoVo> risks = quoteInfo.getRiskList();

+ 12 - 4
src/main/java/com/ydtech/modules/order/components/InsOrdersComponents.java

@@ -2,7 +2,9 @@ package com.ydtech.modules.order.components;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
 import com.ydtech.modules.ins.model.vo.KindInfoVo;
 import com.ydtech.modules.ins.model.vo.KindInfoVo;
+import com.ydtech.modules.ins.model.vo.RiskInfoVo;
 import com.ydtech.modules.order.constants.OrderCacheConstant;
 import com.ydtech.modules.order.constants.OrderCacheConstant;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
@@ -41,6 +43,7 @@ public class InsOrdersComponents {
      */
      */
     public BaseQuoteInfoVo getQuoteInfo(String orderNo) {
     public BaseQuoteInfoVo getQuoteInfo(String orderNo) {
         insOrdersService.existOrder(orderNo);
         insOrdersService.existOrder(orderNo);
+        insOrdersService.getOrderCacheData(orderNo);
         String s = redisTemplate.opsForValue().get(OrderCacheConstant.QUOTE_INFO_KEY + orderNo);
         String s = redisTemplate.opsForValue().get(OrderCacheConstant.QUOTE_INFO_KEY + orderNo);
 
 
         BaseQuoteInfoVo quoteInfoVo = JSON.parseObject(s, BaseQuoteInfoVo.class);
         BaseQuoteInfoVo quoteInfoVo = JSON.parseObject(s, BaseQuoteInfoVo.class);
@@ -60,20 +63,25 @@ public class InsOrdersComponents {
      * @param orderNo 订单ID
      * @param orderNo 订单ID
      * @return BaseQuoteInfoVo
      * @return BaseQuoteInfoVo
      */
      */
-    public BaseQuoteInfoVo getQuoteInfo(String orderNo,List<KindInfoVo> kindInfoVoList) {
+    public BaseQuoteInfoVo getQuoteInfo(String orderNo, List<KindInfoVo> kindInfoVoList) {
         insOrdersService.existOrder(orderNo);
         insOrdersService.existOrder(orderNo);
-        String s = redisTemplate.opsForValue().get(OrderCacheConstant.QUOTE_INFO_KEY + orderNo);
 
 
+        String s = insOrdersService.getOrderCacheData(orderNo);
+        JSONObject quoteInfoObj = JSONObject.parseObject(s);
+        //转换 risk
         BaseQuoteInfoVo quoteInfoVo = JSON.parseObject(s, BaseQuoteInfoVo.class);
         BaseQuoteInfoVo quoteInfoVo = JSON.parseObject(s, BaseQuoteInfoVo.class);
+
         if (ObjectUtils.isEmpty(quoteInfoVo)) {
         if (ObjectUtils.isEmpty(quoteInfoVo)) {
             // 缓存中不存在,在数据库中取
             // 缓存中不存在,在数据库中取
             InsOrders insOrders = insOrdersService.getById(orderNo);
             InsOrders insOrders = insOrdersService.getById(orderNo);
-            return new BaseQuoteInfoVo(insOrders);
+            quoteInfoVo = new BaseQuoteInfoVo(insOrders);
         }
         }
+        quoteInfoVo.setRiskList(JSON.parseArray(JSON.toJSONString(quoteInfoObj.getJSONArray("risk")),RiskInfoVo.class));
+        quoteInfoVo.setInsuredPersonInfo(JSON.parseObject(JSON.toJSONString(quoteInfoObj.getJSONObject("insureinfo")), CustomerInfoVo.class));
+        quoteInfoVo.setPolicyHolderInfo(JSON.parseObject(JSON.toJSONString(quoteInfoObj.getJSONObject("applyinfo")), CustomerInfoVo.class));
         quoteInfoVo.setOrderNo(orderNo);
         quoteInfoVo.setOrderNo(orderNo);
         //替换商业险信息
         //替换商业险信息
         quoteInfoVo.setKindList(kindInfoVoList);
         quoteInfoVo.setKindList(kindInfoVoList);
-        // 核保规则
         return quoteInfoVo;
         return quoteInfoVo;
     }
     }
 
 

+ 23 - 0
src/main/java/com/ydtech/modules/order/service/InsOrdersService.java

@@ -236,6 +236,29 @@ public interface InsOrdersService extends IService<InsOrders> {
      */
      */
     BasePageResult<TelemarketingAuditOrderDTO> getTelemarketingAudit(TelemarketingAuditOrderQueryVo telemarketingAuditOrderQueryVo);
     BasePageResult<TelemarketingAuditOrderDTO> getTelemarketingAudit(TelemarketingAuditOrderQueryVo telemarketingAuditOrderQueryVo);
 
 
+    /**
+     * 更新订单的起保与终保时间
+     */
+    void updateOrderStartingInsruanceTime(String orderno,String jqStartTime,String jqEndTime,String syStartTime,String syEndTime);
+
+    /**
+     * 刷新订单的缓存信息
+     */
+    void updateOrderCache(InsOrders orders);
+
+    /**
+     * 根据订单id 产品id 获取订单缓存信息
+     * @param orderno
+     * @return
+     */
+    String getOrderCacheData(String orderno);
+
+    /**
+     * 对比订单
+     * @return
+     */
+    boolean contrastOrder(InsOrders oldOrder,InsOrders newOrder);
+
     /**
     /**
      * 查询订单中的车牌
      * 查询订单中的车牌
      * @param queryLicenseInOrderVo 查询参数
      * @param queryLicenseInOrderVo 查询参数

+ 74 - 20
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -340,23 +340,30 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
         }
         InsOrders insOrders1 = baseMapper.selectById(quoteInfoVo.getOrderNo());
         InsOrders insOrders1 = baseMapper.selectById(quoteInfoVo.getOrderNo());
 
 
-//        // 2.1 查看是否有订单
-//        //一个月内的订单
-//        LocalDateTime now = LocalDateTime.now();
-//        LocalDateTime oneMonthAgo = now.minus(1, ChronoUnit.MONTHS);
-//        List<InsOrders> insOrdersList = this.list(new LambdaQueryWrapper<InsOrders>()
-//                .eq(InsOrders::getProductid,quoteInfoVo.getProductId())
-//                .eq(InsOrders::getLicenseno,quoteInfoVo.getCarInfo().getLicenseNo())
-//                .eq(InsOrders::getUserid,quoteInfoVo.getUserId())
-//                .ge(InsOrders::getCreatetime, oneMonthAgo)
-//                .le(InsOrders::getCreatetime, now));
-//
-//        if(!insOrdersList.isEmpty()){
-//            // 修改订单
-//            insOrders.setOrderno(insOrdersList.get(0).getOrderno());
-//            this.updateById(insOrders);
-//            return insOrdersList.get(0);
-//        }
+        // 2.1 查看是否有订单   如果存在订单 则更新订单后 直接返回
+        //一个月内的订单
+        LocalDateTime now = LocalDateTime.now();
+        LocalDateTime oneMonthAgo = now.minus(1, ChronoUnit.MONTHS);
+        //条件 产品  车牌 用户
+        List<InsOrders> insOrdersList = this.list(new LambdaQueryWrapper<InsOrders>()
+                .eq(InsOrders::getProductid,quoteInfoVo.getProductId())
+                .eq(InsOrders::getLicenseno,quoteInfoVo.getCarInfo().getLicenseNo())
+                .eq(InsOrders::getUserid,quoteInfoVo.getUserId())
+                .ge(InsOrders::getCreatetime, oneMonthAgo)
+                .le(InsOrders::getCreatetime, now));
+
+        if(!insOrdersList.isEmpty()){
+            InsOrders newOrders = new InsOrders(user, dept, quoteInfoVo);
+            // 同步订单id
+            newOrders.setOrderno(insOrdersList.get(0).getOrderno());
+            // 对比订单是否进行修改
+            if(!this.contrastOrder(insOrdersList.get(0),newOrders)) {
+                this.updateById(newOrders);
+                //刷新缓存
+                this.updateOrderCache(newOrders);
+            }
+            return newOrders;
+        }
 
 
         // 代课录单操作
         // 代课录单操作
         Integer entryStatus = Optional.ofNullable(insOrders1)
         Integer entryStatus = Optional.ofNullable(insOrders1)
@@ -408,8 +415,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         // 4 将报价信息存入redis 中
         // 4 将报价信息存入redis 中
         quoteInfoVo.setUserId(insOrders.getUserid());
         quoteInfoVo.setUserId(insOrders.getUserid());
         String s = JSON.toJSONString(quoteInfoVo);
         String s = JSON.toJSONString(quoteInfoVo);
-
-        redisTemplate.opsForValue().set(QUOTE_INFO_KEY + insOrders.getOrderno(), s, QUOTE_INFO_KEY_TIME, TimeUnit.DAYS);
+        this.updateOrderCache(insOrders);
 
 
         return insOrders;
         return insOrders;
     }
     }
@@ -789,7 +795,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             }
             }
             orderAndAreaCompany.setAccidentInfo(accidentInfo);
             orderAndAreaCompany.setAccidentInfo(accidentInfo);
             orderAndAreaCompany.setJyName(insAreaCompanyAccidentalDriving.getRideRiskName());
             orderAndAreaCompany.setJyName(insAreaCompanyAccidentalDriving.getRideRiskName());
-            orderAndAreaCompany.setJyQuantity(insAreaCompanyAccidentalDriving.getQuantity().toString());
+            if(!Objects.isNull(insAreaCompanyAccidentalDriving.getQuantity())) {
+                orderAndAreaCompany.setJyQuantity(insAreaCompanyAccidentalDriving.getQuantity().toString());
+            }
         } else {
         } else {
             orderAndAreaCompany.setAccidentInfo(new JSONArray());
             orderAndAreaCompany.setAccidentInfo(new JSONArray());
         }
         }
@@ -1976,4 +1984,50 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         return license;
         return license;
     }
     }
 
 
+    /**
+     * 更新订单的起保与终保时间
+     */
+    @Override
+    public void updateOrderStartingInsruanceTime(String orderno,String jqStartTime,String jqEndTime,String syStartTime,String syEndTime){
+        InsOrders order = this.getById(orderno);
+        if((Objects.isNull(order.getJqstartdate()) || !order.getJqstartdate().equals(jqStartTime)) &&
+                (Objects.isNull(order.getJqenddate()) || !order.getJqenddate().equals(jqEndTime)) &&
+                (Objects.isNull(order.getSystartdate()) || !order.getSystartdate().equals(syStartTime)) &&
+                (Objects.isNull(order.getSyenddate()) || !order.getSyenddate().equals(syEndTime))){
+            order.setJqstartdate(jqStartTime);
+            order.setJqenddate(jqEndTime);
+            order.setSystartdate(syStartTime);
+            order.setSyenddate(syEndTime);
+            this.updateById(order);
+            //更新redis缓存
+            this.updateOrderCache(order);
+        }
+    }
+
+
+    @Override
+    public void updateOrderCache(InsOrders orders){
+        // 9-24 修改 key   订单号 + 产品id
+        redisTemplate.opsForValue().set(QUOTE_INFO_KEY + orders.getOrderno(),JSONObject.toJSONString(orders), QUOTE_INFO_KEY_TIME, TimeUnit.DAYS);
+    }
+
+    @Override
+    public String getOrderCacheData(String orderno){
+        return redisTemplate.opsForValue().get(QUOTE_INFO_KEY + orderno);
+    }
+
+
+    /**
+     * 对比订单
+     * @return
+     */
+    @Override
+    public boolean contrastOrder(InsOrders oldOrder,InsOrders newOrder){
+        JSONObject oldOrderObj = JSONObject.parseObject(JSONObject.toJSONString(oldOrder));
+        JSONObject newOrderObj = JSONObject.parseObject(JSONObject.toJSONString(newOrder));
+        oldOrderObj.remove("createtime");
+        oldOrderObj.remove("entryStatus");
+        newOrderObj.remove("createtime");
+        return oldOrderObj.equals(newOrderObj);
+    }
 }
 }