Explorar o código

ins_orders 拆表 车辆信息 车辆人员信息 risk kind

785834757 %!s(int64=2) %!d(string=hai) anos
pai
achega
84bdd534b4
Modificáronse 18 ficheiros con 890 adicións e 32 borrados
  1. 17 0
      src/main/java/com/ydtech/modules/admin/dao/SysCarInfoMapper.java
  2. 17 0
      src/main/java/com/ydtech/modules/admin/dao/SysCarUserInfoMapper.java
  3. 267 0
      src/main/java/com/ydtech/modules/admin/model/po/SysCarInfo.java
  4. 66 0
      src/main/java/com/ydtech/modules/admin/model/po/SysCarUserInfo.java
  5. 20 0
      src/main/java/com/ydtech/modules/admin/service/SysCarInfoService.java
  6. 20 0
      src/main/java/com/ydtech/modules/admin/service/SysCarUserInfoService.java
  7. 0 2
      src/main/java/com/ydtech/modules/admin/service/SysUserInfoService.java
  8. 36 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysCarInfoServiceImpl.java
  9. 38 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysCarUserInfoServiceImpl.java
  10. 3 2
      src/main/java/com/ydtech/modules/order/components/InsOrdersComponents.java
  11. 58 1
      src/main/java/com/ydtech/modules/order/entity/InsOrders.java
  12. 11 9
      src/main/java/com/ydtech/modules/order/entity/api/dajia/request/ODR1010Request.java
  13. 38 0
      src/main/java/com/ydtech/modules/order/entity/bo/InsOrdersBo.java
  14. 7 4
      src/main/java/com/ydtech/modules/order/entity/po/InsOrdersKind.java
  15. 6 3
      src/main/java/com/ydtech/modules/order/entity/po/InsOrdersRisk.java
  16. 5 3
      src/main/java/com/ydtech/modules/order/entity/vo/InsOrdersEditingVo.java
  17. 75 8
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  18. 206 0
      src/main/java/com/ydtech/modules/xxl/handler/SyncCarInfoHandler.java

+ 17 - 0
src/main/java/com/ydtech/modules/admin/dao/SysCarInfoMapper.java

@@ -0,0 +1,17 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.po.SysCarInfo;
+import com.ydtech.modules.admin.model.po.SysCarUserInfo;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface SysCarInfoMapper extends BaseMapper<SysCarInfo> {
+
+
+
+}
+
+
+
+

+ 17 - 0
src/main/java/com/ydtech/modules/admin/dao/SysCarUserInfoMapper.java

@@ -0,0 +1,17 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.SysUserInfo;
+import com.ydtech.modules.admin.model.po.SysCarUserInfo;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface SysCarUserInfoMapper extends BaseMapper<SysCarUserInfo> {
+
+
+
+}
+
+
+
+

+ 267 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysCarInfo.java

@@ -0,0 +1,267 @@
+package com.ydtech.modules.admin.model.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+*@author: tz
+*@description: 车主用户信息
+*@create: 2024年3月7日15:57:03
+*/
+@TableName(value = "sys_car_info")
+@Data
+public class SysCarInfo implements Serializable {
+
+    /**
+     * 主键
+     */
+    @TableField(value="id")
+    private String id;
+
+    /**
+     * 车架号
+     */
+    @TableField(value="frame_no")
+    private String frameNo;
+
+    /**
+     * 车牌号
+     */
+    @TableField(value="license_no")
+    private String licenseNo;
+
+    /**
+     * 转移标志
+     */
+    @TableField(value="transfer_flag")
+    private String transferFlag;
+
+    /**
+     * 车型
+     */
+    @TableField(value="car_type")
+    private String cartype;
+
+    /**
+     * 工厂ID
+     */
+    @TableField(value="factory_id")
+    private String factoryId;
+
+    /**
+     * 车型名称
+     */
+    @TableField(value="model_cname")
+    private String modelcname;
+
+    /**
+     * 购买价格
+     */
+    @TableField(value="purchase_price")
+    private String purchasePrice;
+
+    /**
+     * 转移日期
+     */
+    @TableField(value="transfer_date")
+    private String transferDate;
+
+    /**
+     * 车辆识别号
+     */
+    @TableField(value="vin_no")
+    private String vinNo;
+
+    /**
+     * 无牌标志
+     */
+    @TableField(value="no_license_flag")
+    private String noLicenseFlag;
+
+    /**
+     * 发动机描述
+     */
+    @TableField(value="engine_desc")
+    private String enginedesc;
+
+    /**
+     * 动力类型
+     */
+    @TableField(value="power_type")
+    private String powerType;
+
+    /**
+     * 动力比例
+     */
+    @TableField(value="power_scale")
+    private String powerScale;
+
+    /**
+     * 行业车型编码
+     */
+    @TableField(value="ci_model_code")
+    private String ciModelCode;
+
+    /**
+     * 排放比例
+     */
+    @TableField(value="exhaust_scale")
+    private String exhaustScale;
+
+    /**
+     * 车型代码
+     */
+    @TableField(value="model_code")
+    private String modelCode;
+
+    /**
+     * 整备质量
+     */
+    @TableField(value="complete_kerb_mass")
+    private String completeKerbMass;
+
+    /**
+     * 车系名称
+     */
+    @TableField(value="family_name")
+    private String familyName;
+
+    /**
+     * 贷款状态
+     */
+    @TableField(value="loan_status")
+    private String loanStatus;
+
+    /**
+     * 属性
+     */
+    @TableField(value="property")
+    private String property;
+
+    /**
+     * 车辆年份
+     */
+    @TableField(value="car_year")
+    private String caryear;
+
+    /**
+     * 发行日期
+     */
+    @TableField(value="issue_date")
+    private String issueDate;
+
+    /**
+     * 注册日期
+     */
+    @TableField(value="register_date")
+    private String registerDate;
+
+    /**
+     * 发动机号
+     */
+    @TableField(value="engine_no")
+    private String engineNo;
+
+    /**
+     * 工厂
+     */
+    @TableField(value="factory")
+    private String factory;
+
+    /**
+     * 品牌名称
+     */
+    @TableField(value="brand_name")
+    private String brandName;
+
+    /**
+     * 车辆品牌
+     */
+    @TableField(value="car_brand")
+    private String carBrand;
+
+    /**
+     * 二手车标志
+     */
+    @TableField(value="used_car")
+    private String usedCar;
+
+    /**
+     * 牌照类型代码
+     */
+    @TableField(value="license_type_code")
+    private String licenseTypeCode;
+
+    /**
+     * 车辆用途
+     */
+    @TableField(value="vehicle_use")
+    private String vehicleUse;
+
+    /**
+     * 车辆性质
+     */
+    @TableField(value="car_nature")
+    private String carnature;
+
+    /**
+     * 座位数量
+     */
+    @TableField(value="seat_count")
+    private String seatCount;
+
+    /**
+     * 能源类型
+     */
+    @TableField(value="energy_type")
+    private String energyType;
+
+    /**
+     * 限制载重
+     */
+    @TableField(value="limit_load")
+    private String limitLoad;
+
+    /**
+     * 车辆类别
+     */
+    @TableField(value="vehicle_class")
+    private String vehicleClass;
+
+    /**
+     * CI模型类别
+     */
+    @TableField(value="cimodel_class")
+    private String cimodelclass;
+
+    /**
+     * 过保标志
+     */
+    @TableField(value="out_of_insurance")
+    private String outOfInsurance;
+
+    /**
+     * 车辆重量
+     */
+    @TableField(value="vehicle_weight")
+    private String vehicleWeight;
+
+    /**
+     * 车辆种类
+     */
+    @TableField(value="ci_car_name")
+    private String ciCarName;
+
+    /**
+     * 动力类型代码
+     */
+    @TableField(value="power_type_code")
+    private String powerTypeCode;
+
+
+}

+ 66 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysCarUserInfo.java

@@ -0,0 +1,66 @@
+package com.ydtech.modules.admin.model.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+*@author: tz
+*@description: 车主用户信息
+*@create: 2024年3月7日15:57:03
+*/
+@TableName(value = "sys_car_user_info")
+@Data
+public class SysCarUserInfo implements Serializable {
+
+
+    //id
+    @TableId(value = "id")
+    private String id;
+
+    //姓名
+    @TableField(value = "name")
+    private String name;
+
+    //身份证号
+    @TableField(value = "identify_number")
+    private String identifyNumber;
+
+    //年龄
+    @TableField(value = "age")
+    private String age;
+
+    //性别
+    @TableField(value = "gender")
+    private String gender;
+
+    //地址
+    @TableField(value = "addr")
+    private String addr;
+
+    //证件有效开始时间
+    @TableField(value = "identify_valid_date")
+    private String identifyValidDate;
+
+    //证件有效结束时间
+    @TableField(value = "identify_valid_end_date")
+    private String identifyValidEndDate;
+
+    //手机号码
+    @TableField(value = "mobile")
+    private String mobile;
+
+//    //创建时间
+//    @TableField(value = "create_time")
+//    private Date createTime;
+//
+//    //修改时间
+//    @TableField(value = "update_time")
+//    private Date updateTime;
+
+
+}

+ 20 - 0
src/main/java/com/ydtech/modules/admin/service/SysCarInfoService.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.admin.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.po.SysCarInfo;
+import com.ydtech.modules.admin.model.po.SysCarUserInfo;
+
+public interface SysCarInfoService extends IService<SysCarInfo> {
+
+    /**
+     * 是否存在车辆信息
+     * @param idCard 身份证号
+     * @return
+     */
+    boolean isExist(String idCard);
+
+}
+
+
+

+ 20 - 0
src/main/java/com/ydtech/modules/admin/service/SysCarUserInfoService.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.admin.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysUserInfo;
+import com.ydtech.modules.admin.model.po.SysCarUserInfo;
+
+public interface SysCarUserInfoService extends IService<SysCarUserInfo> {
+
+    /**
+     * 是否存在车主用户信息
+     * @param idCard 身份证号
+     * @return
+     */
+    boolean isExist(String idCard);
+
+}
+
+
+

+ 0 - 2
src/main/java/com/ydtech/modules/admin/service/SysUserInfoService.java

@@ -7,8 +7,6 @@ import com.ydtech.modules.admin.model.SysUserInfo;
 public interface SysUserInfoService extends IService<SysUserInfo> {
 public interface SysUserInfoService extends IService<SysUserInfo> {
 
 
 
 
-
-
 }
 }
 
 
 
 

+ 36 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysCarInfoServiceImpl.java

@@ -0,0 +1,36 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysCarInfoMapper;
+import com.ydtech.modules.admin.dao.SysCarUserInfoMapper;
+import com.ydtech.modules.admin.model.po.SysCarInfo;
+import com.ydtech.modules.admin.model.po.SysCarUserInfo;
+import com.ydtech.modules.admin.service.SysCarInfoService;
+import com.ydtech.modules.admin.service.SysCarUserInfoService;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+
+@Service
+public class SysCarInfoServiceImpl extends ServiceImpl<SysCarInfoMapper, SysCarInfo>
+        implements SysCarInfoService {
+
+    /**
+     * 是否存在车主用户信息
+     * @param idCard 身份证号
+     * @return
+     */
+    public boolean isExist(String idCard){
+        return false;
+    }
+}
+
+
+
+
+
+
+
+

+ 38 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysCarUserInfoServiceImpl.java

@@ -0,0 +1,38 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysCarUserInfoMapper;
+import com.ydtech.modules.admin.dao.SysUserInfoMapper;
+import com.ydtech.modules.admin.model.SysUserInfo;
+import com.ydtech.modules.admin.model.po.SysCarUserInfo;
+import com.ydtech.modules.admin.service.SysCarUserInfoService;
+import com.ydtech.modules.admin.service.SysUserInfoService;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+
+@Service
+public class SysCarUserInfoServiceImpl extends ServiceImpl<SysCarUserInfoMapper, SysCarUserInfo>
+        implements SysCarUserInfoService {
+
+    /**
+     * 是否存在车主用户信息
+     * @param idCard 身份证号
+     * @return
+     */
+    public boolean isExist(String idCard){
+        SysCarUserInfo sysCarUserInfo = baseMapper.selectOne(new LambdaQueryWrapper<SysCarUserInfo>()
+                .eq(SysCarUserInfo::getIdentifyNumber, idCard));
+        return !Objects.isNull(sysCarUserInfo);
+    }
+}
+
+
+
+
+
+
+
+

+ 3 - 2
src/main/java/com/ydtech/modules/order/components/InsOrdersComponents.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 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.bo.InsOrdersBo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.order.service.InsOrdersService;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.context.annotation.Lazy;
@@ -42,8 +43,8 @@ public class InsOrdersComponents {
         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);
-            return new BaseQuoteInfoVo(insOrders);
+            InsOrdersBo insOrdersBo = insOrdersService.queryInsOrders(orderNo);
+            return new BaseQuoteInfoVo(insOrdersBo);
         }
         }
         quoteInfoVo.setOrderNo(orderNo);
         quoteInfoVo.setOrderNo(orderNo);
         // 核保规则
         // 核保规则

+ 58 - 1
src/main/java/com/ydtech/modules/order/entity/InsOrders.java

@@ -1,15 +1,24 @@
 package com.ydtech.modules.order.entity;
 package com.ydtech.modules.order.entity;
 
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ydtech.modules.admin.model.po.SysCarInfo;
+import com.ydtech.modules.admin.model.po.SysCarUserInfo;
+import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.order.entity.bo.InsOrdersBo;
 import com.ydtech.modules.order.entity.bo.InsOrdersBo;
+import com.ydtech.modules.order.entity.po.InsOrdersKind;
+import com.ydtech.modules.order.entity.po.InsOrdersRisk;
 import lombok.*;
 import lombok.*;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
+import java.util.List;
 
 
 /**
 /**
  * 保险订单表
  * 保险订单表
@@ -154,22 +163,70 @@ public class InsOrders implements Serializable {
      * 车主id
      * 车主id
      */
      */
     @TableField(value = "owner_id")
     @TableField(value = "owner_id")
+//    @TableField(exist = false)
     private String ownerId;
     private String ownerId;
 
 
     /**
     /**
      *投保人 id
      *投保人 id
      */
      */
     @TableField(value = "apply_id")
     @TableField(value = "apply_id")
+//    @TableField(exist = false)
     private String applyId;
     private String applyId;
 
 
     /**
     /**
      * 被保人id
      * 被保人id
      */
      */
     @TableField(value = "insure_id")
     @TableField(value = "insure_id")
+//    @TableField(exist = false)
     private String insureId;
     private String insureId;
 
 
+    @TableField(value = "vehicle_and_vessel_tax", typeHandler = FastjsonTypeHandler.class)
+    private JSONObject vehicleAndVesselTax;
+
+    /**
+     * 车辆信息id
+     */
+    @TableField(value = "car_info_id")
 //    @TableField(exist = false)
 //    @TableField(exist = false)
-//    private List<InsAreaCompany> insAreaCompanyList; //子级集合
+    private String carInfoId;
+
+    @TableField(exist = false)
+    private SysCarInfo carinfo;
+
+    @TableField(exist = false)
+    private SysCarUserInfo applyinfo;
+
+    @TableField(exist = false)
+    private SysCarUserInfo ownerinfo;
+
+    @TableField(exist = false)
+    private SysCarUserInfo insureinfo;
+
+    @TableField(exist = false)
+    private List<InsOrdersRisk> risk;
+
+    @TableField(exist = false)
+    private List<InsOrdersKind> kind;
+
+//    @TableField(value = "carinfo", typeHandler = FastjsonTypeHandler.class)
+//    private JSONObject carinfo;
+//    @TableField(value = "ownerinfo", typeHandler = FastjsonTypeHandler.class)
+//    private JSONObject ownerinfo;
+//    @TableField(value = "applyinfo", typeHandler = FastjsonTypeHandler.class)
+//    private JSONObject applyinfo;
+//    @TableField(value = "insureinfo", typeHandler = FastjsonTypeHandler.class)
+//    private JSONObject insureinfo;
+//    @TableField(value = "risk", typeHandler = FastjsonTypeHandler.class)
+//    private JSONArray risk;
+//    @TableField(value = "king", typeHandler = FastjsonTypeHandler.class)
+//    private JSONArray king;
+
+
+
+
+
+    @TableField(exist = false)
+    private List<InsAreaCompany> insAreaCompanyList; //子级集合
 
 
     @TableField(exist = false)
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;

+ 11 - 9
src/main/java/com/ydtech/modules/order/entity/api/dajia/request/ODR1010Request.java

@@ -9,6 +9,7 @@ import com.ydtech.modules.order.entity.api.dajia.constants.CChannelSrc;
 import com.ydtech.modules.order.entity.api.dajia.constants.ServiceCode;
 import com.ydtech.modules.order.entity.api.dajia.constants.ServiceCode;
 import com.ydtech.modules.order.entity.api.dajia.response.NVHLODR1001Response;
 import com.ydtech.modules.order.entity.api.dajia.response.NVHLODR1001Response;
 import com.ydtech.modules.order.entity.api.dajia.response.ODR1009Response;
 import com.ydtech.modules.order.entity.api.dajia.response.ODR1009Response;
+import com.ydtech.modules.order.entity.bo.InsOrdersBo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
@@ -36,7 +37,7 @@ public class ODR1010Request extends DaJiaBaseRequest {
     private BodyDTO body;
     private BodyDTO body;
 
 
     public ODR1010Request(String orderNo, String busiId, DaJiaConfigureParameters daJiaConfigureParameters,
     public ODR1010Request(String orderNo, String busiId, DaJiaConfigureParameters daJiaConfigureParameters,
-                          ODR1009Response.ResultDTO odr1009Response, InsOrders insOrders) {
+                          ODR1009Response.ResultDTO odr1009Response, InsOrdersBo insOrders) {
         super(daJiaConfigureParameters.getChannelCode(), ServiceCode.ODR1010.getCode());
         super(daJiaConfigureParameters.getChannelCode(), ServiceCode.ODR1010.getCode());
         if(body == null){
         if(body == null){
             body = new BodyDTO();
             body = new BodyDTO();
@@ -225,29 +226,30 @@ public class ODR1010Request extends DaJiaBaseRequest {
     }
     }
 
 
     //校验信息
     //校验信息
-    public void setCheckInfo(InsOrders insOrders){
+    public void setCheckInfo(InsOrdersBo insOrders){
         if(Objects.isNull(body.checkInfo)){
         if(Objects.isNull(body.checkInfo)){
             body.checkInfo = new BodyDTO.CheckInfoDTO();
             body.checkInfo = new BodyDTO.CheckInfoDTO();
         }
         }
+
         //车牌号
         //车牌号
-        if(!insOrders.getCarinfo().getBooleanValue("noLicenseFlag")){
+        if(!insOrders.getCarinfo().isNoLicenseFlag()){
             body.checkInfo.setVehiclePlateNo(insOrders.getLicenseno());
             body.checkInfo.setVehiclePlateNo(insOrders.getLicenseno());
         }
         }
 
 
         //车架号
         //车架号
         body.checkInfo.setVehicleFrmNo(insOrders.getFrameno());
         body.checkInfo.setVehicleFrmNo(insOrders.getFrameno());
         //投保人名称
         //投保人名称
-        body.checkInfo.setApplicantNme(insOrders.getApplyinfo().getString("name"));
+        body.checkInfo.setApplicantNme(insOrders.getApplyinfo().getName());
         //投保人证件号码
         //投保人证件号码
-        body.checkInfo.setApplicantCCertfCde(insOrders.getApplyinfo().getString("identifyNumber"));
+        body.checkInfo.setApplicantCCertfCde(insOrders.getApplyinfo().getIdentifyNumber());
         //投保人手机号
         //投保人手机号
-        body.checkInfo.setApplicantMobile(insOrders.getApplyinfo().getString("mobile"));
+        body.checkInfo.setApplicantMobile(insOrders.getApplyinfo().getMobile());
         //被保人名称
         //被保人名称
-        body.checkInfo.setInsuredNme(insOrders.getInsureinfo().getString("name"));
+        body.checkInfo.setInsuredNme(insOrders.getInsureinfo().getName());
         //被保人证件号码
         //被保人证件号码
-        body.checkInfo.setInsuredCertfCde(insOrders.getInsureinfo().getString("identifyNumber"));
+        body.checkInfo.setInsuredCertfCde(insOrders.getInsureinfo().getIdentifyNumber());
         //被保人手机号
         //被保人手机号
-        body.checkInfo.setInsuredMobile(insOrders.getInsureinfo().getString("mobile"));
+        body.checkInfo.setInsuredMobile(insOrders.getInsureinfo().getMobile());
 
 
     }
     }
 
 

+ 38 - 0
src/main/java/com/ydtech/modules/order/entity/bo/InsOrdersBo.java

@@ -8,15 +8,20 @@ import com.ydtech.constants.enums.dict.agreement.ProductsType;
 import com.ydtech.exception.SystemException;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.po.SysCarInfo;
+import com.ydtech.modules.admin.model.po.SysCarUserInfo;
+import com.ydtech.modules.ins.model.InsOrder;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
 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.ins.model.vo.RiskInfoVo;
+import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.VehicleAndVesselTax;
 import com.ydtech.modules.order.entity.vo.VehicleAndVesselTax;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
+import org.springframework.beans.BeanUtils;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.util.List;
 import java.util.List;
@@ -84,6 +89,7 @@ public class InsOrdersBo {
      */
      */
     private CustomerInfoVo ownerinfo;
     private CustomerInfoVo ownerinfo;
 
 
+
     /**
     /**
      * 投保人信息
      * 投保人信息
      */
      */
@@ -275,6 +281,38 @@ public class InsOrdersBo {
         this.setProduct(productsType.getDesc());
         this.setProduct(productsType.getDesc());
     }
     }
 
 
+    /**
+     * SyscarUserInfo 转换 CustomerInfoVo
+     * @param sysCarUserInfo
+     */
+    private CustomerInfoVo sysCarUserInfoToCustomerInfoVo(SysCarUserInfo sysCarUserInfo){
+        CustomerInfoVo customerInfoVo = new CustomerInfoVo();
+        BeanUtils.copyProperties(sysCarUserInfo,customerInfoVo);
+        return customerInfoVo;
+    }
+
+    //设置车主信息
+    public void setCarUserInfo(InsOrders insOrders, List<SysCarUserInfo> carUserInfoList) {
+        carUserInfoList.forEach(carUserInfo -> {
+            if (carUserInfo.getId().equals(insOrders.getApplyId())) {
+                this.setApplyinfo(sysCarUserInfoToCustomerInfoVo(carUserInfo));
+            }
+            if(carUserInfo.getId().equals(insOrders.getOwnerId())){
+                this.setOwnerinfo(sysCarUserInfoToCustomerInfoVo(carUserInfo));
+            }
+            if(carUserInfo.getId().equals(insOrders.getInsureId())){
+                this.setInsureinfo(sysCarUserInfoToCustomerInfoVo(carUserInfo));
+            }
+        });
+    }
+
+    //设置车辆信息
+    public void setCarAllInfo(SysCarInfo sysCarInfo){
+        CarInfoVo carInfoVo = new CarInfoVo();
+        BeanUtils.copyProperties(sysCarInfo,carInfoVo);
+        this.setCarinfo(carInfoVo);
+    }
+
 }
 }
 
 
 
 

+ 7 - 4
src/main/java/com/ydtech/modules/order/entity/po/InsOrdersKind.java

@@ -22,13 +22,13 @@ public class InsOrdersKind implements Serializable {
     /**
     /**
      * id
      * id
      */
      */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Long id;
+    @TableId(value = "id")
+    private String id;
 
 
     /**
     /**
      * 订单号
      * 订单号
      */
      */
-    @TableField(value = "order_no")
+    @TableField(value = "orderno")
     private String orderNo;
     private String orderNo;
 
 
     /**
     /**
@@ -64,6 +64,10 @@ public class InsOrdersKind implements Serializable {
     @TableField(exist = false)
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
+    public InsOrdersKind(){
+
+    }
+
     public InsOrdersKind(KindInfoVo kindInfoVo, String orderNo) {
     public InsOrdersKind(KindInfoVo kindInfoVo, String orderNo) {
         this.orderNo = orderNo;
         this.orderNo = orderNo;
         this.amount = String.valueOf(kindInfoVo.getAmount());
         this.amount = String.valueOf(kindInfoVo.getAmount());
@@ -87,5 +91,4 @@ public class InsOrdersKind implements Serializable {
         return kindInfoVo;
         return kindInfoVo;
     }
     }
 
 
-
 }
 }

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

@@ -22,13 +22,13 @@ public class InsOrdersRisk implements Serializable {
     /**
     /**
      * id
      * id
      */
      */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Long id;
+    @TableId(value = "id")
+    private String id;
 
 
     /**
     /**
      * 订单号
      * 订单号
      */
      */
-    @TableField(value = "order_no")
+    @TableField(value = "orderno")
     private String orderNo;
     private String orderNo;
 
 
     /**
     /**
@@ -70,6 +70,9 @@ public class InsOrdersRisk implements Serializable {
     @TableField(exist = false)
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
+    public InsOrdersRisk(){
+
+    }
 
 
     public InsOrdersRisk(RiskInfoVo riskInfoVo, String orderNo) {
     public InsOrdersRisk(RiskInfoVo riskInfoVo, String orderNo) {
         this.orderNo = orderNo;
         this.orderNo = orderNo;

+ 5 - 3
src/main/java/com/ydtech/modules/order/entity/vo/InsOrdersEditingVo.java

@@ -7,6 +7,8 @@ import com.ydtech.modules.ins.model.vo.QuoteRiskRespVo;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.TaxArrears;
 import com.ydtech.modules.order.entity.TaxArrears;
+import com.ydtech.modules.order.entity.po.InsOrdersKind;
+import com.ydtech.modules.order.entity.po.InsOrdersRisk;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
@@ -49,10 +51,10 @@ public class InsOrdersEditingVo extends InsOrders implements Serializable {
         private String tips;
         private String tips;
 
 
         @ApiModelProperty("商业险险种")
         @ApiModelProperty("商业险险种")
-        private List<QuoteKindRespVo> kindList;
+        private List<InsOrdersKind> kindList;
 
 
         @ApiModelProperty("交强险和商业险")
         @ApiModelProperty("交强险和商业险")
-        private List<QuoteRiskRespVo> riskList;
+        private List<InsOrdersRisk> riskList;
 
 
 
 
         //add 交强商业开始结束起保日期 lig 2023-09-12
         //add 交强商业开始结束起保日期 lig 2023-09-12
@@ -135,7 +137,7 @@ public class InsOrdersEditingVo extends InsOrders implements Serializable {
             this.orderstatus = insAreaCompany.getOrderstatus();
             this.orderstatus = insAreaCompany.getOrderstatus();
             this.companyId = insAreaCompany.getId();
             this.companyId = insAreaCompany.getId();
             this.inscompany = insAreaCompany.getInscompany();
             this.inscompany = insAreaCompany.getInscompany();
-            this.kindList = insAreaCompany.getKindinfo().toJavaList(QuoteKindRespVo.class);
+//            this.kindList = insAreaCompany.getKindinfo();
             this.jqPremium = insAreaCompany.getJqpremium().doubleValue();
             this.jqPremium = insAreaCompany.getJqpremium().doubleValue();
             this.syPremium = insAreaCompany.getSypremium().doubleValue();
             this.syPremium = insAreaCompany.getSypremium().doubleValue();
             this.jyPremium = insAreaCompany.getJypremium().doubleValue();
             this.jyPremium = insAreaCompany.getJypremium().doubleValue();

+ 75 - 8
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -17,6 +17,10 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.constants.RoleConstants;
 import com.ydtech.modules.admin.constants.RoleConstants;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.SysUserRole;
 import com.ydtech.modules.admin.model.SysUserRole;
+import com.ydtech.modules.admin.model.po.SysCarInfo;
+import com.ydtech.modules.admin.model.po.SysCarUserInfo;
+import com.ydtech.modules.admin.service.SysCarInfoService;
+import com.ydtech.modules.admin.service.SysCarUserInfoService;
 import com.ydtech.modules.admin.service.SysUserRoleService;
 import com.ydtech.modules.admin.service.SysUserRoleService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.fee.service.impl.FeeRuleSchemeServiceImpl;
 import com.ydtech.modules.fee.service.impl.FeeRuleSchemeServiceImpl;
@@ -82,6 +86,11 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
 
     private final InsOrdersTrackService insOrdersTrackService;
     private final InsOrdersTrackService insOrdersTrackService;
 
 
+    @Autowired
+    SysCarUserInfoService sysCarUserInfoService;
+    @Autowired
+    SysCarInfoService sysCarInfoService;
+
     @Value("${upload.file.path}")
     @Value("${upload.file.path}")
     private String uploadFilePath;
     private String uploadFilePath;
 
 
@@ -148,12 +157,15 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Override
     @Override
     public List<CarModelDTO> vinSearch(String vin) {
     public List<CarModelDTO> vinSearch(String vin) {
         LambdaQueryWrapper<InsOrders> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<InsOrders> wrapper = new LambdaQueryWrapper<>();
-        wrapper.select(InsOrders::getCarinfo);
+
+
         wrapper.eq(InsOrders::getFrameno, vin).eq(InsOrders::getOrderstatus, InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()).orderByAsc(InsOrders::getCreatetime).last("limit 1");
         wrapper.eq(InsOrders::getFrameno, vin).eq(InsOrders::getOrderstatus, InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()).orderByAsc(InsOrders::getCreatetime).last("limit 1");
-        InsOrders insOrders = baseMapper.selectOne(wrapper);
-        if (!ObjectUtils.isEmpty(insOrders)) {
-            JSONObject carinfo = insOrders.getCarinfo();
-            CarInfoVo carInfoVo = JSON.parseObject(carinfo.toJSONString(), CarInfoVo.class);
+        SysCarInfo sysCarInfo = sysCarInfoService.query().eq("frame_no", vin).one();
+//        InsOrders insOrders = baseMapper.selectOne(wrapper);
+        if (!ObjectUtils.isEmpty(sysCarInfo)) {
+            CarInfoVo carInfoVo = new CarInfoVo();
+            BeanUtils.copyProperties(sysCarInfo,carInfoVo);
+//            CarInfoVo carInfoVo = JSON.parseObject(carinfo.toJSONString(), CarInfoVo.class);
             CarModelDTO carModelDTO = CarModelDTOConvert.INSTANCE.CarInfoVotoCarModelDTO(carInfoVo);
             CarModelDTO carModelDTO = CarModelDTOConvert.INSTANCE.CarInfoVotoCarModelDTO(carInfoVo);
             return Collections.singletonList(carModelDTO);
             return Collections.singletonList(carModelDTO);
         }
         }
@@ -451,15 +463,39 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         return HttpResult.ok("success", orderAndAreaCompany);
         return HttpResult.ok("success", orderAndAreaCompany);
     }
     }
 
 
+
     @Override
     @Override
     public InsOrdersEditingVo revise(String orderNo) {
     public InsOrdersEditingVo revise(String orderNo) {
         InsOrders insOrders = getById(orderNo);
         InsOrders insOrders = getById(orderNo);
-        List<InsAreaCompany> insAreaCompanyList =
-                insAreaCompanyService.lambdaQuery().eq(InsAreaCompany::getOrderno, orderNo).orderByDesc(InsAreaCompany::getCreatetime).list();
-//        insOrders.setInsAreaCompanyList(insAreaCompanyList);
         InsOrdersEditingVo insOrdersEditingVo = new InsOrdersEditingVo();
         InsOrdersEditingVo insOrdersEditingVo = new InsOrdersEditingVo();
 
 
+
         BeanUtils.copyProperties(insOrders, insOrdersEditingVo);
         BeanUtils.copyProperties(insOrders, insOrdersEditingVo);
+
+        //获取车辆信息
+        SysCarInfo sysCarInfo = sysCarInfoService.getById(insOrders.getCarInfoId());
+        insOrdersEditingVo.setCarinfo(sysCarInfo);
+
+        //获取车主信息
+        SysCarUserInfo sysCarUserInfo = sysCarUserInfoService.getById(insOrders.getOwnerId());
+        insOrdersEditingVo.setOwnerinfo(sysCarUserInfo);
+
+        //获取投保人信息
+        SysCarUserInfo  sysCarUserInfo1 = sysCarUserInfoService.getById(insOrders.getApplyId());
+        insOrdersEditingVo.setApplyinfo(sysCarUserInfo1);
+
+        //获取被保人信息
+        SysCarUserInfo sysCarUserInfo2 = sysCarUserInfoService.getById(insOrders.getInsureId());
+        insOrdersEditingVo.setInsureinfo(sysCarUserInfo2);
+
+        //获取 risk信息
+        List<InsOrdersRisk> insOrdersRisks = insOrdersRiskService.lambdaQuery().eq(InsOrdersRisk::getOrderNo, orderNo).list();
+        insOrdersEditingVo.setRisk(insOrdersRisks);
+
+        //获取 kind信息
+        List<InsOrdersKind> insOrdersKinds = insOrdersKindService.lambdaQuery().eq(InsOrdersKind::getOrderNo, orderNo).list();
+        insOrdersEditingVo.setKind(insOrdersKinds);
+
         List<InsAreaCompanyQueryDto> insAreaCompanyQueryDtos = insAreaCompanyService.getByOrderNo(orderNo);
         List<InsAreaCompanyQueryDto> insAreaCompanyQueryDtos = insAreaCompanyService.getByOrderNo(orderNo);
         List<InsOrdersEditingVo.InsAreaCompanyEditingDto> insAreaCompanyEditingDtos =
         List<InsOrdersEditingVo.InsAreaCompanyEditingDto> insAreaCompanyEditingDtos =
                 insAreaCompanyQueryDtos.stream().map(InsOrdersEditingVo.InsAreaCompanyEditingDto::new).collect(Collectors.toList());
                 insAreaCompanyQueryDtos.stream().map(InsOrdersEditingVo.InsAreaCompanyEditingDto::new).collect(Collectors.toList());
@@ -511,6 +547,37 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         return HttpResult.ok("", s);
         return HttpResult.ok("", s);
     }
     }
 
 
+    @Override
+    public void updateInsOrders(InsOrdersBo insOrdersBo) {
+
+    }
+
+
+
+
+    @Override
+    public InsOrdersBo queryInsOrders(String orderNo) {
+        InsOrdersBo insOrdersBo = new InsOrdersBo();
+        InsOrders insOrders = getById(orderNo);
+        List<String> originalList = new ArrayList<>();
+        originalList.add(insOrders.getOwnerId());
+        originalList.add(insOrders.getApplyId());
+        originalList.add(insOrders.getInsureId());
+        //车主id去重
+        List<String> uniqueList = originalList.stream()
+                .distinct()
+                .collect(Collectors.toList());
+
+        List<SysCarUserInfo> sysCarUserInfos = sysCarUserInfoService.listByIds(uniqueList);
+        //设置车主信息
+        insOrdersBo.setCarUserInfo(insOrders,sysCarUserInfos);
+        //获取车辆信息
+        SysCarInfo sysCarInfo = sysCarInfoService.getById(insOrders.getCarInfoId());
+        insOrdersBo.setCarAllInfo(sysCarInfo);
+        return insOrdersBo;
+
+    }
+
     @Autowired
     @Autowired
     private InsOrdersCarService insOrdersCarService;
     private InsOrdersCarService insOrdersCarService;
 
 

+ 206 - 0
src/main/java/com/ydtech/modules/xxl/handler/SyncCarInfoHandler.java

@@ -0,0 +1,206 @@
+package com.ydtech.modules.xxl.handler;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import com.ydtech.modules.admin.model.po.SysCarInfo;
+import com.ydtech.modules.admin.model.po.SysCarUserInfo;
+import com.ydtech.modules.admin.service.SysCarInfoService;
+import com.ydtech.modules.admin.service.SysCarUserInfoService;
+import com.ydtech.modules.ins.model.vo.KindInfoVo;
+import com.ydtech.modules.ins.model.vo.RiskInfoVo;
+import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.po.InsOrdersKind;
+import com.ydtech.modules.order.entity.po.InsOrdersRisk;
+import com.ydtech.modules.order.service.InsOrdersKindService;
+import com.ydtech.modules.order.service.InsOrdersRiskService;
+import com.ydtech.modules.order.service.InsOrdersService;
+import com.ydtech.utils.idgen.IdGenerate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+/**
+*@author: tz
+*@description: 订单数据中的车辆信息 同步 sys_car_info表
+*@create: 2024年3月7日15:13:57
+*/
+@Component
+public class SyncCarInfoHandler {
+
+    @Autowired
+    private InsOrdersService insOrdersService;
+
+    @Autowired
+    private SysCarUserInfoService sysCarUserInfoService;
+
+    @Autowired
+    private SysCarInfoService sysCarInfoService;
+
+    @Autowired
+    private InsOrdersRiskService insOrdersRiskService;
+    @Autowired
+    private InsOrdersKindService insOrdersKindService;
+
+    //同步用户信息
+    @XxlJob("SyncCarInfoHandler")
+    public void SyncCarInfoHandler() {
+
+//        List<InsOrders> list = insOrdersService.list();
+//        //需要保存的车主用户数据
+//        List<SysCarUserInfo> sysCarUserInfos = new ArrayList<>();
+//        List<SysCarInfo> sysCarInfos = new ArrayList<>();
+//        List<InsOrdersRisk> insOrdersRisks = new ArrayList<>();
+//        List<InsOrdersKind> insOrdersKinds = new ArrayList<>();
+//        list.forEach(insOrders -> {
+//            JSONObject ownerInfo = insOrders.getOwnerinfo();
+//            JSONObject applyinfo = insOrders.getApplyinfo();
+//            JSONObject insureInfo = insOrders.getInsureinfo();
+//            //车主信息是否存在
+//            if(sysCarUserInfos.stream().filter(x->x.getIdentifyNumber().equals(ownerInfo.getString("identifyNumber"))).count() > 0){
+//                List<SysCarUserInfo> identifyNumber = sysCarUserInfos.stream().filter(x -> x.getIdentifyNumber().equals(ownerInfo.getString("identifyNumber"))).collect(Collectors.toList());
+//                String id = identifyNumber.get(0).getId();
+//                insOrders.setOwnerId(id);
+//                insOrders.setInsureId(id);
+//                insOrders.setApplyId(id);
+//            }else {
+//                SysCarUserInfo sysCarUserInfo1 = ownerInfo.toJavaObject(SysCarUserInfo.class);
+//                sysCarUserInfo1.setId(IdGenerate.nextId());
+//                sysCarUserInfos.add(sysCarUserInfo1);
+//                insOrders.setOwnerId(sysCarUserInfo1.getId());
+//                insOrders.setInsureId(sysCarUserInfo1.getId());
+//                insOrders.setApplyId(sysCarUserInfo1.getId());
+//            }
+//            //同车主
+//            if(!applyinfo.getBoolean("owner")){
+//                SysCarUserInfo sysCarUserInfo = applyinfo.toJavaObject(SysCarUserInfo.class);
+//                sysCarUserInfo.setId(IdGenerate.nextId());
+//                sysCarUserInfos.add(sysCarUserInfo);
+//                insOrders.setApplyId(sysCarUserInfo.getId());
+//            }
+//            //同被保人 或 车主
+//            if(!insureInfo.getBoolean("insuranceHolder") && !insureInfo.getBoolean("owner")){
+//                SysCarUserInfo sysCarUserInfo = insureInfo.toJavaObject(SysCarUserInfo.class);
+//                sysCarUserInfo.setId(IdGenerate.nextId());
+//                sysCarUserInfos.add(sysCarUserInfo);
+//                insOrders.setInsureId(sysCarUserInfo.getId());
+//            }
+//
+//            JSONObject carInfo = insOrders.getCarinfo();
+//            //车辆信息
+//            if(sysCarInfos.stream().filter(x->x.getLicenseNo().equals(carInfo.getString("licenseNo"))).count() > 0){
+//                List<SysCarInfo> collect = sysCarInfos.stream().filter(x -> x.getLicenseNo().equals(carInfo.getString("licenseNo"))).collect(Collectors.toList());
+//                String id = collect.get(0).getId();
+//                insOrders.setCarInfoId(id);
+//            }else{
+//                SysCarInfo sysCarInfo = carInfo.toJavaObject(SysCarInfo.class);
+//                sysCarInfo.setId(IdGenerate.nextId());
+//                sysCarInfos.add(sysCarInfo);
+//                insOrders.setCarInfoId(sysCarInfo.getId());
+//            }
+//
+//            //risk  kind
+//            JSONArray risk = insOrders.getRisk();
+//            JSONArray kind = insOrders.getKing();
+//
+//            for(int i=0;i<risk.size();i++){
+//                JSONObject jsonObject = risk.getJSONObject(i);
+//                RiskInfoVo riskInfoVo = jsonObject.toJavaObject(RiskInfoVo.class);
+//                InsOrdersRisk insOrdersRisk = new InsOrdersRisk(riskInfoVo, insOrders.getOrderno());
+//                insOrdersRisks.add(insOrdersRisk);
+//            }
+//
+//            for(int i=0;i<kind.size();i++){
+//                JSONObject jsonObject = kind.getJSONObject(i);
+//                KindInfoVo javaObject = jsonObject.toJavaObject(KindInfoVo.class);
+//                InsOrdersKind insOrdersKind = new InsOrdersKind(javaObject, insOrders.getOrderno());
+//                insOrdersKinds.add(insOrdersKind);
+//            }
+//
+//        });
+//
+//        List<SysCarUserInfo> sysCarUserInfoList = sysCarUserInfos.stream()
+//                .collect(Collectors.toMap(
+//                        SysCarUserInfo::getIdentifyNumber, // 使用 licenseNo 作为 key
+//                        user -> user, // 直接使用用户信息作为 value
+//                        (existing, replacement) -> existing // 若有重复的 licenseNo,则保留第一个出现的用户信息
+//                ))
+//                .values()
+//                .stream()
+//                .collect(Collectors.toList());
+//        sysCarUserInfoService.saveBatch(sysCarUserInfoList);
+//
+//        List<SysCarInfo> sysCarInfoList = sysCarInfos.stream()
+//                .collect(Collectors.toMap(
+//                        SysCarInfo::getLicenseNo, // 使用 licenseNo 作为 key
+//                        user -> user, // 直接使用用户信息作为 value
+//                        (existing, replacement) -> existing // 若有重复的 licenseNo,则保留第一个出现的用户信息
+//                ))
+//                .values()
+//                .stream()
+//                .collect(Collectors.toList());
+//
+//        //转换transfer_flag
+//        sysCarInfoList.forEach(sysCarInfo -> {
+//            if(sysCarInfo.getTransferFlag().equals("true")){
+//                sysCarInfo.setTransferFlag("1");
+//            }else{
+//                sysCarInfo.setTransferFlag("0");
+//            }
+//        });
+//        //转换 no_license_flag
+//        sysCarInfoList.forEach(sysCarInfo -> {
+//            if(sysCarInfo.getNoLicenseFlag().equals("true")){
+//                sysCarInfo.setNoLicenseFlag("1");
+//            }else{
+//                sysCarInfo.setNoLicenseFlag("0");
+//            }
+//        });
+//        //转换 loan_status
+//        sysCarInfoList.forEach(sysCarInfo -> {
+//            if(sysCarInfo.getLoanStatus().equals("true")){
+//                sysCarInfo.setLoanStatus("1");
+//            }else{
+//                sysCarInfo.setLoanStatus("0");
+//            }
+//        });
+//
+//        //转换used_car
+//        sysCarInfoList.forEach(sysCarInfo -> {
+//            if(sysCarInfo.getUsedCar().equals("true")){
+//                sysCarInfo.setUsedCar("1");
+//            }else{
+//                sysCarInfo.setUsedCar("0");
+//            }
+//        });
+//
+//        //转换out_of_insurance
+//        sysCarInfoList.forEach(sysCarInfo -> {
+//            if(sysCarInfo.getOutOfInsurance().equals("true")){
+//                sysCarInfo.setOutOfInsurance("1");
+//            }else{
+//                sysCarInfo.setOutOfInsurance("0");
+//            }
+//        });
+//
+//        sysCarInfoService.saveBatch(sysCarInfoList);
+//
+//        for (InsOrdersRisk insOrdersRisk : insOrdersRisks) {
+//            insOrdersRisk.setId(IdGenerate.nextId());
+//        }
+//
+//        for(InsOrdersKind insOrdersKind : insOrdersKinds){
+//            insOrdersKind.setId(IdGenerate.nextId());
+//        }
+//
+//        insOrdersRiskService.saveBatch(insOrdersRisks);
+//        insOrdersKindService.saveBatch(insOrdersKinds);
+//        insOrdersService.saveOrUpdateBatch(list);
+    }
+
+
+}