785834757 2 лет назад
Родитель
Сommit
08fb459699

+ 10 - 1
src/main/java/com/ydtech/modules/order/entity/InsAreaCompanyCarInfo.java

@@ -16,6 +16,7 @@ import com.ydtech.utils.idgen.IdGenerate;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.springframework.beans.BeanUtils;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -29,7 +30,6 @@ import java.time.LocalDateTime;
 @TableName(value = "ins_area_company_car_info", autoResultMap = true)
 @Data
 @ApiModel(value = "子订单车辆信息")
-@NoArgsConstructor
 public class InsAreaCompanyCarInfo implements Serializable {
 
     /**
@@ -411,4 +411,13 @@ public class InsAreaCompanyCarInfo implements Serializable {
         }
         return true;
     }
+
+    public InsAreaCompanyCarInfo(){
+
+    }
+
+    public InsAreaCompanyCarInfo(InsOrdersCarInfo insOrdersCarInfo){
+        BeanUtils.copyProperties(insOrdersCarInfo,this);
+        this.id = IdGenerate.nextId();
+    }
 }

+ 6 - 6
src/main/java/com/ydtech/modules/order/entity/po/InsOrdersRisk.java

@@ -35,13 +35,13 @@ public class InsOrdersRisk implements Serializable {
      * 保额
      */
     @TableField(value = "amount")
-    private String amount;
+    private double amount;
 
     /**
      * 保费
      */
     @TableField(value = "premium")
-    private String premium;
+    private double premium;
 
     /**
      * 起保日期
@@ -76,8 +76,8 @@ public class InsOrdersRisk implements Serializable {
 
     public InsOrdersRisk(RiskInfoVo riskInfoVo, String orderNo) {
         this.orderNo = orderNo;
-        this.amount = String.valueOf(riskInfoVo.getAmount());
-        this.premium = String.valueOf(riskInfoVo.getPremium());
+        this.amount = riskInfoVo.getAmount();
+        this.premium = riskInfoVo.getPremium();
         this.startDate = riskInfoVo.getStartDate();
         this.endDate = riskInfoVo.getEndDate();
         this.riskCode = riskInfoVo.getRiskCode();
@@ -90,8 +90,8 @@ public class InsOrdersRisk implements Serializable {
 
     public RiskInfoVo toRiskInfoVo() {
         RiskInfoVo riskInfoVo = new RiskInfoVo();
-        riskInfoVo.setAmount(Double.parseDouble(this.amount));
-        riskInfoVo.setPremium(Double.parseDouble(this.premium));
+        riskInfoVo.setAmount(this.amount);
+        riskInfoVo.setPremium(this.premium);
         riskInfoVo.setStartDate(this.startDate);
         riskInfoVo.setEndDate(this.endDate);
         riskInfoVo.setRiskCode(this.riskCode);

+ 6 - 0
src/main/java/com/ydtech/modules/order/service/InsOrdersCarInfoService.java

@@ -15,6 +15,12 @@ public interface InsOrdersCarInfoService extends IService<InsOrdersCarInfo> {
 
     InsOrdersCarInfo getCarInfoByFrameNo(String frameNo);
 
+    /**
+     * 通过id获取车辆信息
+     * @param id
+     * @return
+     */
+    InsOrdersCarInfo getCarInfoById(String id);
 
 }
 

+ 10 - 1
src/main/java/com/ydtech/modules/order/service/InsOrdersCarUserInfoService.java

@@ -24,10 +24,19 @@ public interface InsOrdersCarUserInfoService extends IService<InsOrdersCarUserIn
     InsOrdersCarUserInfo getCarUserInfoByIdCard(String idCard);
 
 
+    /**
+     * 获取orders表的 车主 投保 被保人信息 如果不存在则进行更新操作
+     */
+    HashMap<String,String> saveCarUserInfo(String ownerId, String applyId, String insureId);
+
     /**
      * 获取orders表的 车主 投保 被保人信息
+     * @param ownerId
+     * @param applyId
+     * @param insureId
+     * @return
      */
-    HashMap<String,String> getCarUserInfo(String ownerId, String applyId, String insureId);
+    HashMap<String,InsOrdersCarUserInfo> getOrdersCarUserInfo(String ownerId, String applyId, String insureId);
 }
 
 

+ 2 - 2
src/main/java/com/ydtech/modules/order/service/InsOrdersRiskService.java

@@ -12,9 +12,9 @@ import java.util.List;
 */
 public interface InsOrdersRiskService extends IService<InsOrdersRisk> {
     /**
-     * 根据订单号查询订单风控信息
+     * 根据订单号查询订单risk信息
      * @param orderNo 订单号
-     * @return 订单风控信息
+     * @return 订单risk信息
      */
     List<InsOrdersRisk> queryByOrderNo(String orderNo);
 }

+ 1 - 0
src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java

@@ -523,6 +523,7 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             }
             kind.setCoveragePremium(dto.getPremium());
             kind.setDeductibleRate(dto.getDiscountValue());
+//            kind.setServiceTimes(dto.getServiceTimes());
             kindList.add(kind);
         }
 

+ 2 - 4
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyCarInfoServiceImpl.java

@@ -46,13 +46,11 @@ public class InsAreaCompanyCarInfoServiceImpl  extends ServiceImpl<InsAreaCompan
             return collect.get(0).getId();
         }else{
             //插入一条新数据 并返回id
-            String carId = IdGenerate.nextId();
-            InsAreaCompanyCarInfo insAreaCompanyCarInfo = new InsAreaCompanyCarInfo();
-            BeanUtils.copyProperties(insOrdersCarInfo, insAreaCompanyCarInfo);
+            InsAreaCompanyCarInfo insAreaCompanyCarInfo = new InsAreaCompanyCarInfo(insOrdersCarInfo);
             if(!this.save(insAreaCompanyCarInfo)){
                 throw new SystemException("保存车辆信息失败");
             }
-            return carId;
+            return insAreaCompanyCarInfo.getId();
         }
     }
 

+ 4 - 4
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -97,18 +97,18 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
 
 
         //投保人 被保人 车主信息
-        HashMap<String,String> areaCompanyUserMap = insOrdersCarUserInfoService.getCarUserInfo(insOrder.getOwnerId(), insOrder.getApplyId(), insOrder.getInsureId());
+        HashMap<String,String> areaCompanyUserMap = insOrdersCarUserInfoService.saveCarUserInfo(insOrder.getOwnerId(), insOrder.getApplyId(), insOrder.getInsureId());
         insAreaCompany.setOwnerId(areaCompanyUserMap.get("ownerId"));
         insAreaCompany.setApplyId(areaCompanyUserMap.get("applyId"));
         insAreaCompany.setInsureId(areaCompanyUserMap.get("insureId"));
 
-        //添加risk
+        //areaCompany添加risk
         insAreaCompanyRiskService.saveRisks(insAreaCompany.getId(),insAreaCompany.getRiskinfo());
 
-        //添加kind
+        //areaCompany添加kind
         insAreaCompanyKindService.saveKinds(insAreaCompany.getId(),insAreaCompany.getKindinfo());
 
-        //添加tax
+        //areaCompany添加tax
         insAreaCompanyTaxArrearsService.saveTaxArrears(insAreaCompany.getId(),insAreaCompany.getTaxArrears());
 
         this.save(insAreaCompany);

+ 5 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersCarInfoServiceImpl.java

@@ -43,6 +43,11 @@ public class InsOrdersCarInfoServiceImpl extends ServiceImpl<InsOrdersCarInfoMap
         }
         return null;
     }
+
+    @Override
+    public InsOrdersCarInfo getCarInfoById(String id) {
+        return baseMapper.selectOne(new LambdaQueryWrapper<InsOrdersCarInfo>().eq(InsOrdersCarInfo::getId, id));
+    }
 }
 
 

+ 37 - 1
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersCarUserInfoServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.order.entity.InsAreaCompanyCarUserInfo;
@@ -50,7 +51,7 @@ public class InsOrdersCarUserInfoServiceImpl extends ServiceImpl<InsOrdersCarUse
     }
 
     @Override
-    public HashMap<String,String> getCarUserInfo(String ownerId, String applyId, String insureId) {
+    public HashMap<String,String> saveCarUserInfo(String ownerId, String applyId, String insureId) {
         HashMap<String,String> result = new HashMap<>();
         List<String> userIds = new ArrayList<>();
         userIds.add(ownerId);
@@ -95,6 +96,41 @@ public class InsOrdersCarUserInfoServiceImpl extends ServiceImpl<InsOrdersCarUse
         });
         return result;
     }
+
+    @Override
+    public HashMap<String, InsOrdersCarUserInfo> getOrdersCarUserInfo(String ownerId, String applyId, String insureId) {
+        HashMap<String,InsOrdersCarUserInfo> result = new HashMap<>();
+        List<String> userIds = new ArrayList<>();
+        userIds.add(ownerId);
+        userIds.add(applyId);
+        userIds.add(insureId);
+        List<String> uniqueUserIds = userIds.stream().distinct().collect(Collectors.toList());
+        List<InsOrdersCarUserInfo> insOrdersCarUserInfos = this.list(new LambdaQueryWrapper<>(new InsOrdersCarUserInfo()).in(InsOrdersCarUserInfo::getId, uniqueUserIds));
+        insOrdersCarUserInfos.forEach(item->{
+            if(item.getId().equals(ownerId)){
+                JSONObject jsonObject = new JSONObject();
+                InsOrdersCarUserInfo tempCarInfo = JSONObject.parseObject(jsonObject.toJSONString(item),InsOrdersCarUserInfo.class);
+                tempCarInfo.setIdentifyValidDate(tempCarInfo.getIdentifyValidDate().substring(0,10));
+                tempCarInfo.setIdentifyValidEndDate(tempCarInfo.getIdentifyValidEndDate().substring(0,10));
+                result.put("ownerInfo",tempCarInfo);
+            }
+            if(item.getId().equals(applyId)){
+                JSONObject jsonObject = new JSONObject();
+                InsOrdersCarUserInfo tempCarInfo = JSONObject.parseObject(jsonObject.toJSONString(item),InsOrdersCarUserInfo.class);
+                tempCarInfo.setIdentifyValidDate(tempCarInfo.getIdentifyValidDate().substring(0,10));
+                tempCarInfo.setIdentifyValidEndDate(tempCarInfo.getIdentifyValidEndDate().substring(0,10));
+                result.put("applyInfo",tempCarInfo);
+            }
+            if(item.getId().equals(insureId)){
+                JSONObject jsonObject = new JSONObject();
+                InsOrdersCarUserInfo tempCarInfo = JSONObject.parseObject(jsonObject.toJSONString(item),InsOrdersCarUserInfo.class);
+                tempCarInfo.setIdentifyValidDate(tempCarInfo.getIdentifyValidDate().substring(0,10));
+                tempCarInfo.setIdentifyValidEndDate(tempCarInfo.getIdentifyValidEndDate().substring(0,10));
+                result.put("insureInfo",tempCarInfo);
+            }
+        });
+        return result;
+    }
 }
 
 

+ 60 - 63
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -689,51 +689,32 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         BeanUtils.copyProperties(insOrders, insOrdersEditingVo);
 
         //获取车辆信息
-        InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getById(insOrders.getCarInfoId());
-//        insOrdersEditingVo.setCarinfo(insOrdersCarInfo);
-        //获取车主信息
-        InsOrdersCarUserInfo ownerInfo = new InsOrdersCarUserInfo();
-        InsOrdersCarUserInfo applyInfo = new InsOrdersCarUserInfo();
-        InsOrdersCarUserInfo insureInfo = new InsOrdersCarUserInfo();
-        ownerInfo = insOrdersCarUserInfoService.getById(insOrders.getOwnerId());
-        ownerInfo.setGender(ownerInfo.getGender().equals("1") ? "男" : "女");
-        ownerInfo.setIdentifyValidDate(ownerInfo.getIdentifyValidDate().substring(0,10));
-        ownerInfo.setIdentifyValidEndDate(ownerInfo.getIdentifyValidEndDate().substring(0,10));
+        InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getCarInfoById(insOrders.getCarInfoId());
+        insOrdersEditingVo.setCarinfo(insOrdersCarInfo);
+
+        //获取车主信
+        HashMap<String, InsOrdersCarUserInfo> ordersCarUserInfo = insOrdersCarUserInfoService.getOrdersCarUserInfo(insOrders.getOwnerId(), insOrders.getApplyId(), insOrders.getInsureId());
+
+        InsOrdersCarUserInfo ownerInfo = ordersCarUserInfo.get("ownerInfo");
         insOrdersEditingVo.setOwnerinfo(ownerInfo);
 
-        //是否同车主
-        if(insOrders.getOwnerId().equals(insOrders.getApplyId())){
-            BeanUtils.copyProperties(ownerInfo, applyInfo);
+        InsOrdersCarUserInfo applyInfo = ordersCarUserInfo.get("applyInfo");
+        if(ownerInfo.getIdentifyNumber().equals(applyInfo.getIdentifyNumber())){
             applyInfo.setOwner(true);
-            insOrdersEditingVo.setApplyinfo(applyInfo);
-        }else{
-            //获取投保人信息
-            applyInfo = insOrdersCarUserInfoService.getById(insOrders.getApplyId());
-            applyInfo.setGender(applyInfo.getGender().equals("1") ? "男" : "女");
-            applyInfo.setIdentifyValidDate(ownerInfo.getIdentifyValidDate().substring(0,10));
-            applyInfo.setIdentifyValidEndDate(ownerInfo.getIdentifyValidEndDate().substring(0,10));
-            insOrdersEditingVo.setApplyinfo(applyInfo);
         }
+        insOrdersEditingVo.setApplyinfo(applyInfo);
 
-        //是否同车主
-        if(insOrders.getApplyId().equals(insOrders.getInsureId())) {
-            BeanUtils.copyProperties(applyInfo, insureInfo);
-            insOrdersEditingVo.setInsureinfo(insureInfo);
-            insOrdersEditingVo.getInsureinfo().setInsuranceHolder(true);
-            insOrdersEditingVo.getInsureinfo().setOwner(false);
-        }else if(insOrders.getOwnerId().equals(insOrders.getInsureId())) {
-            insOrdersEditingVo.setInsureinfo(ownerInfo);
-            insOrdersEditingVo.getInsureinfo().setOwner(true);
-        }else{
-            //获取被保人信息
-            insureInfo = insOrdersCarUserInfoService.getById(insOrders.getInsureId());
-            insureInfo.setGender(insureInfo.getGender().equals("1") ? "男" : "女");
-            insureInfo.setIdentifyValidDate(ownerInfo.getIdentifyValidDate().substring(0,10));
-            insureInfo.setIdentifyValidEndDate(ownerInfo.getIdentifyValidEndDate().substring(0,10));
-            insOrdersEditingVo.setInsureinfo(insureInfo);
-
+        InsOrdersCarUserInfo  insureInfo = ordersCarUserInfo.get("insureInfo");
+        if(applyInfo.getIdentifyNumber().equals(insureInfo.getIdentifyNumber())){
+            insureInfo.setInsuranceHolder(true);
+        }else if(ownerInfo.getIdentifyNumber().equals(insureInfo.getIdentifyNumber())){
+            insureInfo.setOwner(true);
         }
+        insOrdersEditingVo.setInsureinfo(insureInfo);
 
+//        ownerInfo.setGender(ownerInfo.getGender().equals("1") ? "男" : "女");
+//        ownerInfo.setIdentifyValidDate(ownerInfo.getIdentifyValidDate().substring(0,10));
+//        ownerInfo.setIdentifyValidEndDate(ownerInfo.getIdentifyValidEndDate().substring(0,10));
 
         //获取 risk信息
         List<InsOrdersRisk> insOrdersRisks = insOrdersRiskService.lambdaQuery().eq(InsOrdersRisk::getOrderNo, orderNo).list();
@@ -831,36 +812,48 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
 
         CustomerInfoVo applyInfo = insOrdersBo.getApplyinfo();
-        CustomerInfoVo insureInfo = insOrdersBo.getInsureinfo();
         //投保人 和 被保人 是否和车主一致
-        if(applyInfo.isOwner() && insureInfo.isOwner()){
+        if(applyInfo.isOwner()){
             insOrders.setApplyId(ownerUserInfo.getId());
+        }else{
+            //查找投保人信息
+            InsOrdersCarUserInfo applyUserInfo = insOrdersCarUserInfoService.getCarUserInfoByIdCard(ownerInfo.getIdentifyNumber());
+            if(Objects.isNull(applyUserInfo)) {
+                InsOrdersCarUserInfo ordersCarUserInfo = new InsOrdersCarUserInfo(applyInfo);
+                insOrders.setApplyId(ordersCarUserInfo.getId());
+                insOrdersCarUserInfoService.save(ordersCarUserInfo);
+            }else{
+                //是否更新数据
+                if(applyUserInfo.compare(applyInfo)){
+                    applyUserInfo.copyProperties(applyInfo);
+                    insOrdersCarUserInfoService.updateById(applyUserInfo);
+                }
+            }
+        }
+
+        CustomerInfoVo insureInfo = insOrdersBo.getInsureinfo();
+        //被保人是否同被保人
+        if(insureInfo.isInsuranceHolder()){
+            InsOrdersCarUserInfo applyUserInfo = insOrdersCarUserInfoService.getCarUserInfoByIdCard(applyInfo.getIdentifyNumber());
+            insOrders.setInsureId(applyUserInfo.getId());
+        }else if(insureInfo.isOwner()) {
             insOrders.setInsureId(ownerUserInfo.getId());
+        }else{
+            //查找被保人信息
+            InsOrdersCarUserInfo insureUserInfo = insOrdersCarUserInfoService.getCarUserInfoByIdCard(insureInfo.getIdentifyNumber());
+            if(Objects.isNull(insureUserInfo)) {
+                InsOrdersCarUserInfo ordersCarUserInfo = new InsOrdersCarUserInfo(insureInfo);
+                insOrders.setApplyId(ordersCarUserInfo.getId());
+                insOrdersCarUserInfoService.save(ordersCarUserInfo);
+            }else{
+                //是否更新数据
+                if(insureUserInfo.compare(insureInfo)){
+                    insureUserInfo.copyProperties(applyInfo);
+                    insOrdersCarUserInfoService.updateById(insureUserInfo);
+                }
+            }
         }
 
-//        //更新被保人信息
-//        CustomerInfoVo insureInfo = insOrdersBo.getInsureinfo();
-//        if(insureInfo.isOwner() || insureInfo.isInsuranceHolder()){
-//            if(insureInfo.isOwner()){
-//                insOrders.setInsureId(ownerUserInfo.getId());
-//            }
-//            if(insureInfo.isInsuranceHolder()){
-//                insOrders.setInsureId(applyUserInfo.getId());
-//            }
-//        }else{
-//            //查询被保人信息
-//            InsOrdersCarUserInfo insureUserInfo = insOrdersCarUserInfoService.getCarUserInfoByIdCard(insureInfo.getIdentifyNumber());
-//            //被保人信息是否存在
-//            if(Objects.isNull(insureUserInfo)){
-//                BeanUtils.copyProperties(insureInfo, insureUserInfo);
-//                insureUserInfo.setId(IdGenerate.nextId());
-//                insOrders.setInsureId(insureUserInfo.getId());
-//                insOrdersCarUserInfoService.save(insureUserInfo);
-//            }else{
-//                insOrders.setInsureId(insureUserInfo.getId());
-//                insOrdersCarUserInfoService.updateById(insureUserInfo);
-//            }
-//        }
 
         //更新risk
         List<RiskInfoVo> riskInfoVos = insOrdersBo.getRisk();
@@ -917,6 +910,10 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         //获取车辆信息
         InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getById(insOrders.getCarInfoId());
         insOrdersBo.setCarAllInfo(insOrdersCarInfo);
+        //获取险种信息
+        insOrdersBo.setRiskList(insOrdersRiskService.queryByOrderNo(orderNo));
+        //获取商业信息
+        insOrdersBo.setKindList(insOrdersKindService.queryByOrderNo(orderNo));
         return insOrdersBo;
 
     }