Browse Source

提交客户服务报价页面回显数据接口

hxl13994548489 1 year ago
parent
commit
7efadd98cb
24 changed files with 1972 additions and 0 deletions
  1. 33 0
      src/main/java/com/ydtech/modules/admin/controller/SysCustController.java
  2. 20 0
      src/main/java/com/ydtech/modules/admin/dao/CustInfoMapper.java
  3. 28 0
      src/main/java/com/ydtech/modules/admin/dao/CustVehicleInfoMapper.java
  4. 30 0
      src/main/java/com/ydtech/modules/admin/dao/CustVehiclePhotoInfoMapper.java
  5. 28 0
      src/main/java/com/ydtech/modules/admin/dao/CustVehiclePolicyInfoMapper.java
  6. 25 0
      src/main/java/com/ydtech/modules/admin/model/dto/CustInfoDto.java
  7. 214 0
      src/main/java/com/ydtech/modules/admin/model/po/CustInfo.java
  8. 466 0
      src/main/java/com/ydtech/modules/admin/model/po/CustVehicleInfo.java
  9. 149 0
      src/main/java/com/ydtech/modules/admin/model/po/CustVehiclePhotoInfo.java
  10. 442 0
      src/main/java/com/ydtech/modules/admin/model/po/CustVehiclePolicyInfo.java
  11. 65 0
      src/main/java/com/ydtech/modules/admin/model/vo/CustInfoVo.java
  12. 21 0
      src/main/java/com/ydtech/modules/admin/service/CustInfoService.java
  13. 21 0
      src/main/java/com/ydtech/modules/admin/service/CustVehicleInfoService.java
  14. 22 0
      src/main/java/com/ydtech/modules/admin/service/CustVehiclePhotoInfoService.java
  15. 20 0
      src/main/java/com/ydtech/modules/admin/service/CustVehiclePolicyInfoService.java
  16. 69 0
      src/main/java/com/ydtech/modules/admin/service/SysCustService.java
  17. 77 0
      src/main/java/com/ydtech/modules/admin/service/impl/CustInfoServiceImpl.java
  18. 35 0
      src/main/java/com/ydtech/modules/admin/service/impl/CustVehicleInfoServiceImpl.java
  19. 37 0
      src/main/java/com/ydtech/modules/admin/service/impl/CustVehiclePhotoInfoServiceImpl.java
  20. 35 0
      src/main/java/com/ydtech/modules/admin/service/impl/CustVehiclePolicyInfoServiceImpl.java
  21. 39 0
      src/main/resources/mapper/modules/admin/CustInfoMapper.xml
  22. 31 0
      src/main/resources/mapper/modules/admin/CustVehicleInfoMapper.xml
  23. 35 0
      src/main/resources/mapper/modules/admin/CustVehiclePhotoInfoMapper.xml
  24. 30 0
      src/main/resources/mapper/modules/admin/CustVehiclePolicyInfoMapper.xml

+ 33 - 0
src/main/java/com/ydtech/modules/admin/controller/SysCustController.java

@@ -0,0 +1,33 @@
+package com.ydtech.modules.admin.controller;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.CustInfoDto;
+import com.ydtech.modules.admin.model.vo.CustInfoVo;
+import com.ydtech.modules.admin.service.CustInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@Api(tags = "客户服务平台查询客户的相关信息")
+@RequestMapping("/sys/cust")
+@RequiredArgsConstructor
+public class SysCustController {
+
+    @Autowired
+    private CustInfoService custInfoService;
+
+    @ApiOperation(value = "通过客户id和车辆id查询客户相关信息")
+    @PostMapping(value = "/getCustInfo")
+    public HttpResult<CustInfoVo> getCustInfo(@RequestBody CustInfoDto custInfoDto) {
+        CustInfoVo custInfoVo = custInfoService.getCustInfo(custInfoDto);
+        return HttpResult.ok(custInfoVo);
+    }
+
+
+}

+ 20 - 0
src/main/java/com/ydtech/modules/admin/dao/CustInfoMapper.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.po.CustInfo;
+
+/**
+* @author Administrator
+* @description 针对表【cust_info(客户信息表)】的数据库操作Mapper
+* @createDate 2024-11-20 18:43:46
+* @Entity generator.domain.CustInfo
+*/
+@DS("cust")
+public interface CustInfoMapper extends BaseMapper<CustInfo> {
+
+}
+
+
+
+

+ 28 - 0
src/main/java/com/ydtech/modules/admin/dao/CustVehicleInfoMapper.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.dto.CustInfoDto;
+import com.ydtech.modules.admin.model.po.CustVehicleInfo;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author Administrator
+* @description 针对表【cust_vehicle_info(用户车辆信息表)】的数据库操作Mapper
+* @createDate 2024-11-21 09:49:10
+* @Entity generator.domain.CustVehicleInfo
+*/
+@DS("cust")
+public interface CustVehicleInfoMapper extends BaseMapper<CustVehicleInfo> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/21 11:30
+     *  @Description: 通过客户id和车牌号查询车辆信息
+     */
+    CustVehicleInfo getCarInfoByCustIdAndLicenseNo(@Param("vo") CustInfoDto custInfoDto);
+}
+
+
+
+

+ 30 - 0
src/main/java/com/ydtech/modules/admin/dao/CustVehiclePhotoInfoMapper.java

@@ -0,0 +1,30 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.po.CustVehiclePhotoInfo;
+import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【cust_vehicle_photo_info(车辆影像资料)】的数据库操作Mapper
+* @createDate 2024-11-21 09:49:15
+* @Entity generator.domain.CustVehiclePhotoInfo
+*/
+@DS("cust")
+public interface CustVehiclePhotoInfoMapper extends BaseMapper<CustVehiclePhotoInfo> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/21 11:31
+     *  @Description: 查询影像信息
+     */
+        List<InsTaskImagesDto> findImgList(@Param("subOrderNo") String subOrderNo);
+}
+
+
+
+

+ 28 - 0
src/main/java/com/ydtech/modules/admin/dao/CustVehiclePolicyInfoMapper.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.po.CustVehicleInfo;
+import com.ydtech.modules.admin.model.po.CustVehiclePolicyInfo;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author Administrator
+* @description 针对表【cust_vehicle_policy_info(车辆关联客户信息)】的数据库操作Mapper
+* @createDate 2024-11-21 11:10:44
+* @Entity generator.domain.CustVehiclePolicyInfo
+*/
+@DS("cust")
+public interface CustVehiclePolicyInfoMapper extends BaseMapper<CustVehiclePolicyInfo> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/21 11:28
+     *  @Description: 查询车辆相关信息
+     */
+    CustVehiclePolicyInfo findCustomerInfo(@Param("vo") CustVehicleInfo custVehicleInfo);
+}
+
+
+
+

+ 25 - 0
src/main/java/com/ydtech/modules/admin/model/dto/CustInfoDto.java

@@ -0,0 +1,25 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/11/20 18:49
+ *  @Description: 客戶服务参数
+ */
+@Data
+@ApiModel("客戶服务参数")
+public class CustInfoDto implements Serializable {
+
+
+    @ApiModelProperty(value = "客户信息")
+    private String custId;
+
+    @ApiModelProperty(value = "车牌号")
+    private String licenseNo;
+}

+ 214 - 0
src/main/java/com/ydtech/modules/admin/model/po/CustInfo.java

@@ -0,0 +1,214 @@
+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;
+
+/**
+ * 客户信息表
+ * @TableName cust_info
+ */
+@TableName(value ="cust_info")
+@Data
+public class CustInfo implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 客户姓名
+     */
+    private String name;
+
+    /**
+     * 客户电话
+     */
+    private String phone;
+
+    /**
+     * 客户出生日期
+     */
+    private Date birthDate;
+
+    /**
+     * 所在地区
+     */
+    private String address;
+
+    /**
+     * 详细地址
+     */
+    private String detailedAddress;
+
+    /**
+     * 性别 1 男 2 女
+3未知
+     */
+    private Integer sex;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 身份证号
+     */
+    private String idcard;
+
+    /**
+     * 客户来源:1-系统导入 2-微信添加 3-其他
+     */
+    private Integer source;
+
+    /**
+     * 客户类型:1-企业微信用户 2-微信用户
+     */
+    private Integer custType;
+
+    /**
+     * 成为客户时间
+     */
+    private Date becomeCustTime;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除 0表示未删除,1表示删除
+     */
+    private Integer delFlag;
+
+    /**
+     * 省编码(方便统计)
+     */
+    private String provinceCode;
+
+    /**
+     * 市编码(方便统计)
+     */
+    private String cityCode;
+
+    /**
+     * 县编码(方便统计)
+     */
+    private String countyCode;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        CustInfo other = (CustInfo) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
+            && (this.getPhone() == null ? other.getPhone() == null : this.getPhone().equals(other.getPhone()))
+            && (this.getBirthDate() == null ? other.getBirthDate() == null : this.getBirthDate().equals(other.getBirthDate()))
+            && (this.getAddress() == null ? other.getAddress() == null : this.getAddress().equals(other.getAddress()))
+            && (this.getDetailedAddress() == null ? other.getDetailedAddress() == null : this.getDetailedAddress().equals(other.getDetailedAddress()))
+            && (this.getSex() == null ? other.getSex() == null : this.getSex().equals(other.getSex()))
+            && (this.getRemarks() == null ? other.getRemarks() == null : this.getRemarks().equals(other.getRemarks()))
+            && (this.getIdcard() == null ? other.getIdcard() == null : this.getIdcard().equals(other.getIdcard()))
+            && (this.getSource() == null ? other.getSource() == null : this.getSource().equals(other.getSource()))
+            && (this.getCustType() == null ? other.getCustType() == null : this.getCustType().equals(other.getCustType()))
+            && (this.getBecomeCustTime() == null ? other.getBecomeCustTime() == null : this.getBecomeCustTime().equals(other.getBecomeCustTime()))
+            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()))
+            && (this.getProvinceCode() == null ? other.getProvinceCode() == null : this.getProvinceCode().equals(other.getProvinceCode()))
+            && (this.getCityCode() == null ? other.getCityCode() == null : this.getCityCode().equals(other.getCityCode()))
+            && (this.getCountyCode() == null ? other.getCountyCode() == null : this.getCountyCode().equals(other.getCountyCode()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
+        result = prime * result + ((getPhone() == null) ? 0 : getPhone().hashCode());
+        result = prime * result + ((getBirthDate() == null) ? 0 : getBirthDate().hashCode());
+        result = prime * result + ((getAddress() == null) ? 0 : getAddress().hashCode());
+        result = prime * result + ((getDetailedAddress() == null) ? 0 : getDetailedAddress().hashCode());
+        result = prime * result + ((getSex() == null) ? 0 : getSex().hashCode());
+        result = prime * result + ((getRemarks() == null) ? 0 : getRemarks().hashCode());
+        result = prime * result + ((getIdcard() == null) ? 0 : getIdcard().hashCode());
+        result = prime * result + ((getSource() == null) ? 0 : getSource().hashCode());
+        result = prime * result + ((getCustType() == null) ? 0 : getCustType().hashCode());
+        result = prime * result + ((getBecomeCustTime() == null) ? 0 : getBecomeCustTime().hashCode());
+        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
+        result = prime * result + ((getProvinceCode() == null) ? 0 : getProvinceCode().hashCode());
+        result = prime * result + ((getCityCode() == null) ? 0 : getCityCode().hashCode());
+        result = prime * result + ((getCountyCode() == null) ? 0 : getCountyCode().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", name=").append(name);
+        sb.append(", phone=").append(phone);
+        sb.append(", birthDate=").append(birthDate);
+        sb.append(", address=").append(address);
+        sb.append(", detailedAddress=").append(detailedAddress);
+        sb.append(", sex=").append(sex);
+        sb.append(", remarks=").append(remarks);
+        sb.append(", idcard=").append(idcard);
+        sb.append(", source=").append(source);
+        sb.append(", custType=").append(custType);
+        sb.append(", becomeCustTime=").append(becomeCustTime);
+        sb.append(", createBy=").append(createBy);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateBy=").append(updateBy);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", delFlag=").append(delFlag);
+        sb.append(", provinceCode=").append(provinceCode);
+        sb.append(", cityCode=").append(cityCode);
+        sb.append(", countyCode=").append(countyCode);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 466 - 0
src/main/java/com/ydtech/modules/admin/model/po/CustVehicleInfo.java

@@ -0,0 +1,466 @@
+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 com.ydtech.modules.ins.model.vo.CarInfoVo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * 用户车辆信息表
+ * @TableName cust_vehicle_info
+ */
+@TableName(value ="cust_vehicle_info")
+@Data
+public class CustVehicleInfo implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 客户ID
+     */
+    private String custId;
+
+    /**
+     * 子订单号
+     */
+    private String subOrderNo;
+
+    /**
+     * 车牌号
+     */
+    private String licenseNo;
+
+    /**
+     * 车架号
+     */
+    private String frameNo;
+
+    /**
+     * 品牌型号
+     */
+    private String brandName;
+
+    /**
+     * 车辆识别代码
+     */
+    private String vinNo;
+    /**
+     *  排量
+     */
+    private  String enginedesc;
+
+    /**
+     *  总质量
+     */
+    private  String vehicleweight;
+
+
+    /**
+     * 发动机号
+     */
+    private String engineNo;
+
+    /**
+     * 年款
+     */
+    private String carYear;
+
+    /**
+     * 座位数
+     */
+    private String seatCount;
+
+    /**
+     * 整备质量
+     */
+    private String completeKerbMass;
+
+    /**
+     * 核定载质量
+     */
+    private String limitLoad;
+
+    /**
+     * 能源类型
+     */
+    private String powerTypeCode;
+
+    /**
+     * 新车购置价
+     */
+    private BigDecimal purchasePrice;
+
+    /**
+     * 车辆用途
+     */
+    private String vehicleUse;
+
+    /**
+     * 车辆种类
+     */
+    private String cimodelclass;
+
+    /**
+     * 使用性质
+     */
+    private String carnature;
+
+    /**
+     * 能源种类
+     */
+    private String energyType;
+
+    /**
+     * 车辆类型
+     */
+    private  String  cartype;
+
+    /**
+     * 所属性质(1个人 2企业 3机关)
+     */
+    private String property;
+
+    /**
+     * 车型
+     */
+    private String familyName;
+
+    /**
+     * 发动机功率
+     */
+    private String powerScale;
+
+    /**
+     *  燃料类型
+     */
+    private String  powertype;
+
+    /**
+     * 行驶证注册日期不能空
+     */
+    private Date firRegisterDate;
+
+    /**
+     * 发证日期不能为空
+     */
+    private Date issueDate;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除
+     */
+    private Integer delFlag;
+
+    /**
+     * 跟进人id
+     */
+    private String followUpUserId;
+
+    /**
+     * 跟进人名称
+     */
+    private String followUpUserName;
+
+    /**
+     * 跟进人部门id
+     */
+    private String followUpDeptId;
+
+    /**
+     * 跟进人部门名称
+     */
+    private String followUpDeptName;
+
+    /**
+     * 分配日期
+     */
+    private Date followUpTime;
+
+    /**
+     * 更进状态
+1.待分配,
+2.待跟进,
+3.跟进中,
+4.已报价,
+5.赢单,
+6.丢单,
+7.无效
+     */
+    private Integer followUpStatus;
+
+    /**
+     * 更进状态
+1.待分配,
+2.待跟进,
+3.跟进中,
+4.已报价,
+-1.关闭
+
+     */
+    private Integer followUpStatusSon;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        CustVehicleInfo other = (CustVehicleInfo) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getCustId() == null ? other.getCustId() == null : this.getCustId().equals(other.getCustId()))
+            && (this.getSubOrderNo() == null ? other.getSubOrderNo() == null : this.getSubOrderNo().equals(other.getSubOrderNo()))
+            && (this.getLicenseNo() == null ? other.getLicenseNo() == null : this.getLicenseNo().equals(other.getLicenseNo()))
+            && (this.getFrameNo() == null ? other.getFrameNo() == null : this.getFrameNo().equals(other.getFrameNo()))
+            && (this.getBrandName() == null ? other.getBrandName() == null : this.getBrandName().equals(other.getBrandName()))
+            && (this.getEngineNo() == null ? other.getEngineNo() == null : this.getEngineNo().equals(other.getEngineNo()))
+            && (this.getCarYear() == null ? other.getCarYear() == null : this.getCarYear().equals(other.getCarYear()))
+            && (this.getSeatCount() == null ? other.getSeatCount() == null : this.getSeatCount().equals(other.getSeatCount()))
+            && (this.getCompleteKerbMass() == null ? other.getCompleteKerbMass() == null : this.getCompleteKerbMass().equals(other.getCompleteKerbMass()))
+            && (this.getLimitLoad() == null ? other.getLimitLoad() == null : this.getLimitLoad().equals(other.getLimitLoad()))
+            && (this.getPowerTypeCode() == null ? other.getPowerTypeCode() == null : this.getPowerTypeCode().equals(other.getPowerTypeCode()))
+            && (this.getPurchasePrice() == null ? other.getPurchasePrice() == null : this.getPurchasePrice().equals(other.getPurchasePrice()))
+            && (this.getVehicleUse() == null ? other.getVehicleUse() == null : this.getVehicleUse().equals(other.getVehicleUse()))
+            && (this.getCimodelclass() == null ? other.getCimodelclass() == null : this.getCimodelclass().equals(other.getCimodelclass()))
+            && (this.getCarnature() == null ? other.getCarnature() == null : this.getCarnature().equals(other.getCarnature()))
+            && (this.getEnergyType() == null ? other.getEnergyType() == null : this.getEnergyType().equals(other.getEnergyType()))
+            && (this.getProperty() == null ? other.getProperty() == null : this.getProperty().equals(other.getProperty()))
+            && (this.getPowerScale() == null ? other.getPowerScale() == null : this.getPowerScale().equals(other.getPowerScale()))
+            && (this.getFirRegisterDate() == null ? other.getFirRegisterDate() == null : this.getFirRegisterDate().equals(other.getFirRegisterDate()))
+            && (this.getIssueDate() == null ? other.getIssueDate() == null : this.getIssueDate().equals(other.getIssueDate()))
+            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()))
+            && (this.getFollowUpUserId() == null ? other.getFollowUpUserId() == null : this.getFollowUpUserId().equals(other.getFollowUpUserId()))
+            && (this.getFollowUpUserName() == null ? other.getFollowUpUserName() == null : this.getFollowUpUserName().equals(other.getFollowUpUserName()))
+            && (this.getFollowUpDeptId() == null ? other.getFollowUpDeptId() == null : this.getFollowUpDeptId().equals(other.getFollowUpDeptId()))
+            && (this.getFollowUpDeptName() == null ? other.getFollowUpDeptName() == null : this.getFollowUpDeptName().equals(other.getFollowUpDeptName()))
+            && (this.getFollowUpTime() == null ? other.getFollowUpTime() == null : this.getFollowUpTime().equals(other.getFollowUpTime()))
+            && (this.getFollowUpStatus() == null ? other.getFollowUpStatus() == null : this.getFollowUpStatus().equals(other.getFollowUpStatus()))
+            && (this.getFollowUpStatusSon() == null ? other.getFollowUpStatusSon() == null : this.getFollowUpStatusSon().equals(other.getFollowUpStatusSon()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getCustId() == null) ? 0 : getCustId().hashCode());
+        result = prime * result + ((getSubOrderNo() == null) ? 0 : getSubOrderNo().hashCode());
+        result = prime * result + ((getLicenseNo() == null) ? 0 : getLicenseNo().hashCode());
+        result = prime * result + ((getFrameNo() == null) ? 0 : getFrameNo().hashCode());
+        result = prime * result + ((getBrandName() == null) ? 0 : getBrandName().hashCode());
+        result = prime * result + ((getEngineNo() == null) ? 0 : getEngineNo().hashCode());
+        result = prime * result + ((getCarYear() == null) ? 0 : getCarYear().hashCode());
+        result = prime * result + ((getSeatCount() == null) ? 0 : getSeatCount().hashCode());
+        result = prime * result + ((getCompleteKerbMass() == null) ? 0 : getCompleteKerbMass().hashCode());
+        result = prime * result + ((getLimitLoad() == null) ? 0 : getLimitLoad().hashCode());
+        result = prime * result + ((getPowerTypeCode() == null) ? 0 : getPowerTypeCode().hashCode());
+        result = prime * result + ((getPurchasePrice() == null) ? 0 : getPurchasePrice().hashCode());
+        result = prime * result + ((getVehicleUse() == null) ? 0 : getVehicleUse().hashCode());
+        result = prime * result + ((getCimodelclass() == null) ? 0 : getCimodelclass().hashCode());
+        result = prime * result + ((getCarnature() == null) ? 0 : getCarnature().hashCode());
+        result = prime * result + ((getEnergyType() == null) ? 0 : getEnergyType().hashCode());
+        result = prime * result + ((getProperty() == null) ? 0 : getProperty().hashCode());
+        result = prime * result + ((getPowerScale() == null) ? 0 : getPowerScale().hashCode());
+        result = prime * result + ((getFirRegisterDate() == null) ? 0 : getFirRegisterDate().hashCode());
+        result = prime * result + ((getIssueDate() == null) ? 0 : getIssueDate().hashCode());
+        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
+        result = prime * result + ((getFollowUpUserId() == null) ? 0 : getFollowUpUserId().hashCode());
+        result = prime * result + ((getFollowUpUserName() == null) ? 0 : getFollowUpUserName().hashCode());
+        result = prime * result + ((getFollowUpDeptId() == null) ? 0 : getFollowUpDeptId().hashCode());
+        result = prime * result + ((getFollowUpDeptName() == null) ? 0 : getFollowUpDeptName().hashCode());
+        result = prime * result + ((getFollowUpTime() == null) ? 0 : getFollowUpTime().hashCode());
+        result = prime * result + ((getFollowUpStatus() == null) ? 0 : getFollowUpStatus().hashCode());
+        result = prime * result + ((getFollowUpStatusSon() == null) ? 0 : getFollowUpStatusSon().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", custId=").append(custId);
+        sb.append(", subOrderNo=").append(subOrderNo);
+        sb.append(", licenseNo=").append(licenseNo);
+        sb.append(", frameNo=").append(frameNo);
+        sb.append(", brandName=").append(brandName);
+        sb.append(", engineNo=").append(engineNo);
+        sb.append(", carYear=").append(carYear);
+        sb.append(", seatCount=").append(seatCount);
+        sb.append(", completeKerbMass=").append(completeKerbMass);
+        sb.append(", limitLoad=").append(limitLoad);
+        sb.append(", powerTypeCode=").append(powerTypeCode);
+        sb.append(", purchasePrice=").append(purchasePrice);
+        sb.append(", vehicleUse=").append(vehicleUse);
+        sb.append(", cimodelclass=").append(cimodelclass);
+        sb.append(", carnature=").append(carnature);
+        sb.append(", energyType=").append(energyType);
+        sb.append(", property=").append(property);
+        sb.append(", powerScale=").append(powerScale);
+        sb.append(", firRegisterDate=").append(firRegisterDate);
+        sb.append(", issueDate=").append(issueDate);
+        sb.append(", createBy=").append(createBy);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateBy=").append(updateBy);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", delFlag=").append(delFlag);
+        sb.append(", followUpUserId=").append(followUpUserId);
+        sb.append(", followUpUserName=").append(followUpUserName);
+        sb.append(", followUpDeptId=").append(followUpDeptId);
+        sb.append(", followUpDeptName=").append(followUpDeptName);
+        sb.append(", followUpTime=").append(followUpTime);
+        sb.append(", followUpStatus=").append(followUpStatus);
+        sb.append(", followUpStatusSon=").append(followUpStatusSon);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+
+    public CarInfoVo trafferCarInfoVo(CustVehicleInfo custVehicleInfo) {
+        CarInfoVo carInfoVo =new CarInfoVo();
+        //品牌型号
+        carInfoVo.setBrandName(custVehicleInfo.getBrandName());
+        //车型品牌
+        //carInfoVo.setCarBrand(null);
+        //行业车型名称
+        //carInfoVo.setCiCarName(null);
+        //车型名称
+        carInfoVo.setModelcname(custVehicleInfo.getBrandName());
+        //行业车型编码
+        //carInfoVo.setCiModelCode(null);
+        //整备质量
+        carInfoVo.setCompleteKerbMass(custVehicleInfo.getCompleteKerbMass());
+        //发动机号
+        carInfoVo.setEngineNo(custVehicleInfo.getEngineNo());
+        //排量
+        // carInfoVo.setExhaustScale(custVehicleInfo.getExhaustScale());
+        //工厂名称
+        carInfoVo.setFactory(null);
+        //工厂编码
+        carInfoVo.setFactoryid(null);
+        //车架号不能为空
+        carInfoVo.setFrameNo(custVehicleInfo.getFrameNo());
+        //车牌
+        carInfoVo.setLicenseNo(custVehicleInfo.getLicenseNo());
+        //车牌种类
+        //carInfoVo.setLicenseTypeCode(custVehicleInfo.getLicenseTypeCode());
+        //精友车型编码
+       // carInfoVo.setModelCode();
+        //新车购置价
+        carInfoVo.setPurchasePrice(custVehicleInfo.getPurchasePrice()==null?null: String.valueOf(custVehicleInfo.getPurchasePrice()));
+        //座位数
+        carInfoVo.setSeatCount(custVehicleInfo.getSeatCount());
+        //车辆类型(轿车类,特种车类)
+        //carInfoVo.setVehicleclass();
+        //车架号
+        carInfoVo.setVinNo(custVehicleInfo.getVinNo());
+        //车型
+        //carInfoVo.setFamilyName(custVehicleInfo.getFamilyName());
+        // 能源类型编码
+        carInfoVo.setPowertypecode(custVehicleInfo.getPowerTypeCode());
+        //能源种类
+        carInfoVo.setEnergyType(custVehicleInfo.getEnergyType());
+        //总质量
+        carInfoVo.setVehicleweight(custVehicleInfo.getVehicleweight());
+        //核定载质量
+        carInfoVo.setLimitLoad(custVehicleInfo.getLimitLoad());
+        //年款
+        carInfoVo.setCaryear(custVehicleInfo.getCarYear());
+        //车辆种类
+        carInfoVo.setCimodelclass(custVehicleInfo.getCimodelclass());
+        //燃料类型
+        carInfoVo.setPowertype(custVehicleInfo.getPowertype());
+        //排量
+        carInfoVo.setEnginedesc(custVehicleInfo.getEnginedesc());
+        // 车辆类型
+        carInfoVo.setCartype(custVehicleInfo.getCartype());
+        //使用性质
+        carInfoVo.setCarnature(custVehicleInfo.getCarnature());
+        //车辆用途
+        carInfoVo.setVehicleUse(custVehicleInfo.getVehicleUse());
+        //所属性质(1个人 2企业 3机关)
+        carInfoVo.setProperty(custVehicleInfo.getProperty());
+        //发动机功率
+        carInfoVo.setPowerScale(custVehicleInfo.getPowerScale());
+        // 行驶证注册日期
+        Date firRegisterDate = custVehicleInfo.getFirRegisterDate();
+        String firRegisterDateStr="";
+        if(firRegisterDate!=null){
+            firRegisterDateStr = new SimpleDateFormat("yyyy-MM-dd").format(firRegisterDate);
+        }
+        carInfoVo.setRegisterDate(firRegisterDateStr);
+        Date issueDate = custVehicleInfo.getIssueDate();
+        String issueDateStr="";
+        if(issueDate!=null){
+            issueDateStr = new SimpleDateFormat("yyyy-MM-dd").format(issueDate);
+        }
+        //发证日期
+        carInfoVo.setIssueDate(issueDateStr);
+        //车型
+        carInfoVo.setFamilyName(custVehicleInfo.getFamilyName());
+        //是否过户
+       // carInfoVo.setTransferFlag(false);
+        //商业是否过户
+       // carInfoVo.setTransferFlagBi(false);
+        //是否是二手车
+       // carInfoVo.setUsedCar(false);
+        //是否脱保
+       // carInfoVo.setOutOfInsurance(false);
+        //过户日期
+        //carInfoVo.setTransferDate(null);
+        //是否贷款车
+        //carInfoVo.setLoanStatus();
+        //第一受益人(贷款车才有第一受益人)
+        //carInfoVo.setFirstBeneMan();
+        //是否有车牌号(判断是否是新车)
+        //carInfoVo.setNoLicenseFlag();
+
+        return carInfoVo;
+
+    }
+}

+ 149 - 0
src/main/java/com/ydtech/modules/admin/model/po/CustVehiclePhotoInfo.java

@@ -0,0 +1,149 @@
+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;
+
+/**
+ * 车辆影像资料
+ * @TableName cust_vehicle_photo_info
+ */
+@TableName(value ="cust_vehicle_photo_info")
+@Data
+public class CustVehiclePhotoInfo implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 车辆ID
+     */
+    private String vehicleId;
+
+    /**
+     * 客户ID
+     */
+    private String custId;
+
+    /**
+     * 子订单ID
+     */
+    private String subOrderNo;
+
+    /**
+     * 影像类型
+     */
+    private String type;
+
+    /**
+     * 本地路径
+     */
+    private String loaclUrl;
+
+    /**
+     * 网络路径
+     */
+    private String netUrl;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除 0表示未删除,1表示删除
+     */
+    private Integer delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        CustVehiclePhotoInfo other = (CustVehiclePhotoInfo) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getVehicleId() == null ? other.getVehicleId() == null : this.getVehicleId().equals(other.getVehicleId()))
+            && (this.getCustId() == null ? other.getCustId() == null : this.getCustId().equals(other.getCustId()))
+            && (this.getSubOrderNo() == null ? other.getSubOrderNo() == null : this.getSubOrderNo().equals(other.getSubOrderNo()))
+            && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
+            && (this.getLoaclUrl() == null ? other.getLoaclUrl() == null : this.getLoaclUrl().equals(other.getLoaclUrl()))
+            && (this.getNetUrl() == null ? other.getNetUrl() == null : this.getNetUrl().equals(other.getNetUrl()))
+            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getVehicleId() == null) ? 0 : getVehicleId().hashCode());
+        result = prime * result + ((getCustId() == null) ? 0 : getCustId().hashCode());
+        result = prime * result + ((getSubOrderNo() == null) ? 0 : getSubOrderNo().hashCode());
+        result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
+        result = prime * result + ((getLoaclUrl() == null) ? 0 : getLoaclUrl().hashCode());
+        result = prime * result + ((getNetUrl() == null) ? 0 : getNetUrl().hashCode());
+        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", vehicleId=").append(vehicleId);
+        sb.append(", custId=").append(custId);
+        sb.append(", subOrderNo=").append(subOrderNo);
+        sb.append(", type=").append(type);
+        sb.append(", loaclUrl=").append(loaclUrl);
+        sb.append(", netUrl=").append(netUrl);
+        sb.append(", createBy=").append(createBy);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateBy=").append(updateBy);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", delFlag=").append(delFlag);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 442 - 0
src/main/java/com/ydtech/modules/admin/model/po/CustVehiclePolicyInfo.java

@@ -0,0 +1,442 @@
+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 com.ydtech.modules.ins.model.vo.CustomerInfoVo;
+import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * 车辆关联客户信息
+ * @TableName cust_vehicle_policy_info
+ */
+@TableName(value ="cust_vehicle_policy_info")
+@Data
+public class CustVehiclePolicyInfo implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 客户ID
+     */
+    private String custId;
+
+    /**
+     * 子订单号
+     */
+    private String subOrderNo;
+
+    /**
+     * 车辆ID
+     */
+    private String vehicleId;
+
+    /**
+     * 投保人名称
+     */
+    private String applyName;
+
+    /**
+     * 投保人身份证号
+     */
+    private String applyIdentifyNumber;
+
+    /**
+     * 投保人身份证类型
+     */
+    private String applyIdentifyType;
+
+    /**
+     * 投保人地址
+     */
+    private String applyAddr;
+
+    /**
+     * 投保人年龄
+     */
+    private String applyAge;
+
+    /**
+     * 投保人性别
+     */
+    private String applyGender;
+
+    /**
+     * 投保人邮箱
+     */
+    private String applyEmail;
+
+    /**
+     * 投保人手机号
+     */
+    private String applyMobile;
+
+    /**
+     * 投保人有效时间开始
+     */
+    private Date applyIdentifyValidDate;
+
+    /**
+     * 投保人有效时间结束
+     */
+    private Date applyIdentifyValidEndDate;
+
+    /**
+     *  是否同车主
+     */
+    private  Boolean applyOwnerFlag;
+
+    /**
+     *  是否同车主
+     */
+    private  Boolean applyInsuranceHolderFlag;
+
+    /**
+     * 被保人名称
+     */
+    private String insureName;
+
+    /**
+     * 被保人身份证号
+     */
+    private String insureIdentifyNumber;
+
+    /**
+     * 被保人身份证类型
+     */
+    private String insureIdentifyType;
+
+    /**
+     * 被保人地址
+     */
+    private String insureAddr;
+
+    /**
+     * 被保人年齡
+     */
+    private String insureAge;
+
+    /**
+     * 被保人性別
+     */
+    private String insureGender;
+
+    /**
+     * 被保人邮箱
+     */
+    private String insureEmail;
+
+    /**
+     * 被保人手机号
+     */
+    private String insureMobile;
+
+    /**
+     * 被保人有效时间开始
+     */
+    private Date insureIdentifyValidDate;
+
+    /**
+     * 被保人有效时间结束
+     */
+    private Date insureIdentifyValidEndDate;
+
+    /**
+     *  是否同车主
+     */
+    private  Boolean insureOwnerFlag;
+
+    /**
+     *  是否同车主
+     */
+    private  Boolean insureInsuranceHolderFlag;
+
+    /**
+     * 车主名称
+     */
+    private String ownerName;
+
+    /**
+     * 车主身份证号
+     */
+    private String ownerIdentifyNumber;
+
+    /**
+     * 车主身份证类型
+     */
+    private String ownerIdentifyType;
+
+    /**
+     * 车主地址
+     */
+    private String ownerAddr;
+
+    /**
+     * 车主年齡
+     */
+    private String ownerAge;
+
+    /**
+     * 车主性別
+     */
+    private String ownerGender;
+
+    /**
+     * 车主邮箱
+     */
+    private String ownerEmail;
+
+    /**
+     * 车主手机号
+     */
+    private String ownerMobile;
+
+    /**
+     * 车主有效时间开始
+     */
+    private Date ownerIdentifyValidDate;
+
+    /**
+     * 车主有效时间结束
+     */
+    private Date ownerIdentifyValidEndDate;
+
+    /**
+     *  是否同车主
+     */
+    private  Boolean ownerOwner;
+
+    /**
+     *  是否同车主
+     */
+    private  Boolean ownerOwnerFlag;
+
+    /**
+     *  是否同车主
+     */
+    private  Boolean OwnerInsuranceHolderFlag;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除  0表示未删除,1表示删除
+     */
+    private Integer delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+
+    public CustomerInfoVo trafferCustVehiclePolicyInfo(CustVehiclePolicyInfo custVehiclePolicyInfo, int type) {
+        CustomerInfoVo customerInfoVo = new CustomerInfoVo();
+        if(type==1){
+            //姓名
+            customerInfoVo.setName(custVehiclePolicyInfo.getOwnerName());
+            //身份证号
+            customerInfoVo.setIdentifyNumber(custVehiclePolicyInfo.getOwnerIdentifyNumber());
+            //身份证类型
+            customerInfoVo.setIdentifyType(custVehiclePolicyInfo.getOwnerIdentifyType());
+            //地址
+            customerInfoVo.setAddr(custVehiclePolicyInfo.getOwnerAddr());
+            //年龄
+            customerInfoVo.setAge(getAgeByIdCard(custVehiclePolicyInfo.getOwnerIdentifyNumber()));
+            //性别
+            customerInfoVo.setGender(checkGender(custVehiclePolicyInfo.getOwnerIdentifyNumber()));
+            //邮箱
+            customerInfoVo.setEmail(custVehiclePolicyInfo.getOwnerEmail());
+            //手机号
+            customerInfoVo.setMobile(custVehiclePolicyInfo.getOwnerMobile());
+            //有效时间
+            Date ownerIdentifyValidDateBegin = custVehiclePolicyInfo.getOwnerIdentifyValidDate();
+            String ownerIdentifyValidDateBeginStr="";
+            if(ownerIdentifyValidDateBegin!=null){
+                ownerIdentifyValidDateBeginStr = new SimpleDateFormat("yyyy-MM-dd").format(ownerIdentifyValidDateBegin);
+            }
+            customerInfoVo.setIdentifyValidDate(ownerIdentifyValidDateBeginStr);
+            Date ownerIdentifyValidDateEnd = custVehiclePolicyInfo.getOwnerIdentifyValidEndDate();
+            String ownerIdentifyValidDateEndStr="";
+            if(ownerIdentifyValidDateEnd!=null){
+                ownerIdentifyValidDateEndStr = new SimpleDateFormat("yyyy-MM-dd").format(ownerIdentifyValidDateEnd);
+            }
+            //有效时间
+            customerInfoVo.setIdentifyValidEndDate(ownerIdentifyValidDateEndStr);
+            //同车主
+            customerInfoVo.setOwner(custVehiclePolicyInfo.getOwnerOwnerFlag() != null && custVehiclePolicyInfo.getOwnerOwnerFlag());
+            //同投保人
+            customerInfoVo.setInsuranceHolder(custVehiclePolicyInfo.getOwnerInsuranceHolderFlag() != null && custVehiclePolicyInfo.getOwnerInsuranceHolderFlag());
+
+        }else if(type ==2){
+            //姓名
+            customerInfoVo.setName(custVehiclePolicyInfo.getInsureName());
+            //身份证号
+            customerInfoVo.setIdentifyNumber(custVehiclePolicyInfo.getInsureIdentifyNumber());
+            //身份证类型
+            customerInfoVo.setIdentifyType(custVehiclePolicyInfo.getInsureIdentifyType());
+            //地址
+            customerInfoVo.setAddr(custVehiclePolicyInfo.getInsureAddr());
+            //年龄
+            customerInfoVo.setAge(getAgeByIdCard(custVehiclePolicyInfo.getInsureIdentifyNumber()));
+            //性别
+            customerInfoVo.setGender(checkGender(custVehiclePolicyInfo.getInsureIdentifyNumber()));
+            //邮箱
+            customerInfoVo.setEmail(custVehiclePolicyInfo.getInsureEmail());
+            //手机号
+            customerInfoVo.setMobile(custVehiclePolicyInfo.getInsureMobile());
+            //有效时间
+            Date ownerIdentifyValidDateBegin = custVehiclePolicyInfo.getInsureIdentifyValidDate();
+            String ownerIdentifyValidDateBeginStr="";
+            if(ownerIdentifyValidDateBegin!=null){
+                ownerIdentifyValidDateBeginStr = new SimpleDateFormat("yyyy-MM-dd").format(ownerIdentifyValidDateBegin);
+            }
+            customerInfoVo.setIdentifyValidDate(ownerIdentifyValidDateBeginStr);
+            Date ownerIdentifyValidDateEnd = custVehiclePolicyInfo.getInsureIdentifyValidEndDate();
+            String ownerIdentifyValidDateEndStr="";
+            if(ownerIdentifyValidDateEnd!=null){
+                ownerIdentifyValidDateEndStr = new SimpleDateFormat("yyyy-MM-dd").format(ownerIdentifyValidDateEnd);
+            }
+            //有效时间
+            customerInfoVo.setIdentifyValidEndDate(ownerIdentifyValidDateEndStr);
+
+            //同车主
+            customerInfoVo.setOwner(custVehiclePolicyInfo.getInsureOwnerFlag() != null && custVehiclePolicyInfo.getInsureOwnerFlag());
+            //同投保人
+            customerInfoVo.setInsuranceHolder(custVehiclePolicyInfo.getInsureInsuranceHolderFlag() != null && custVehiclePolicyInfo.getInsureInsuranceHolderFlag());
+
+        }else if(type ==3){
+            //姓名
+            customerInfoVo.setName(custVehiclePolicyInfo.getApplyName());
+            //身份证号
+            customerInfoVo.setIdentifyNumber(custVehiclePolicyInfo.getApplyIdentifyNumber());
+            //身份证类型
+            customerInfoVo.setIdentifyType(custVehiclePolicyInfo.getApplyIdentifyType());
+            //地址
+            customerInfoVo.setAddr(custVehiclePolicyInfo.getApplyAddr());
+            //年龄
+            customerInfoVo.setAge(getAgeByIdCard(custVehiclePolicyInfo.getApplyIdentifyNumber()));
+            //性别
+            customerInfoVo.setGender(checkGender(custVehiclePolicyInfo.getApplyIdentifyNumber()));
+            //邮箱
+            customerInfoVo.setEmail(custVehiclePolicyInfo.getApplyEmail());
+            //手机号
+            customerInfoVo.setMobile(custVehiclePolicyInfo.getApplyMobile());
+            //有效时间
+            Date ownerIdentifyValidDateBegin = custVehiclePolicyInfo.getApplyIdentifyValidDate();
+            String ownerIdentifyValidDateBeginStr="";
+            if(ownerIdentifyValidDateBegin!=null){
+                ownerIdentifyValidDateBeginStr = new SimpleDateFormat("yyyy-MM-dd").format(ownerIdentifyValidDateBegin);
+            }
+            customerInfoVo.setIdentifyValidDate(ownerIdentifyValidDateBeginStr);
+            Date ownerIdentifyValidDateEnd = custVehiclePolicyInfo.getApplyIdentifyValidEndDate();
+            String ownerIdentifyValidDateEndStr="";
+            if(ownerIdentifyValidDateEnd!=null){
+                ownerIdentifyValidDateEndStr = new SimpleDateFormat("yyyy-MM-dd").format(ownerIdentifyValidDateEnd);
+            }
+            //有效时间
+            customerInfoVo.setIdentifyValidEndDate(ownerIdentifyValidDateEndStr);
+
+            //同车主
+            customerInfoVo.setOwner(custVehiclePolicyInfo.getApplyOwnerFlag() != null && custVehiclePolicyInfo.getApplyOwnerFlag());
+            //同投保人
+            customerInfoVo.setInsuranceHolder(custVehiclePolicyInfo.getApplyInsuranceHolderFlag() != null && custVehiclePolicyInfo.getApplyInsuranceHolderFlag());
+        }
+        return customerInfoVo;
+    }
+
+    private static String farmmatSex(String sex) {
+        if(StringUtils.isNotBlank(sex)) {
+            if ("1".equals(sex)) {
+                return "女";
+            } else if ("2".equals(sex)) {
+                return "男";
+            }
+        }
+        return "";
+    }
+
+
+    public static String getAgeByIdCard(String idCard) {
+        // 截取身份证中的出生日期部分
+        String birthDateStr = idCard.substring(6, 14);
+        try {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+            Date birthDate = sdf.parse(birthDateStr);
+            Calendar birthCal = Calendar.getInstance();
+            birthCal.setTime(birthDate);
+            Calendar currentCal = Calendar.getInstance();
+            int birthYear = birthCal.get(Calendar.YEAR);
+            int currentYear = currentCal.get(Calendar.YEAR);
+            int age = currentYear - birthYear;
+            // 考虑生日是否已经过了
+            int birthMonth = birthCal.get(Calendar.MONTH);
+            int currentMonth = currentCal.get(Calendar.MONTH);
+            if (birthMonth > currentMonth) {
+                age--;
+            } else if (birthMonth == currentMonth) {
+                int birthDay = birthCal.get(Calendar.DAY_OF_MONTH);
+                int currentDay = currentCal.get(Calendar.DAY_OF_MONTH);
+                if (birthDay > currentDay) {
+                    age--;
+                }
+            }
+            return String.valueOf(age);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "";
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/22 9:10
+     *  @Description: 通过身份证号判断男女
+     */
+    public static String checkGender(String idCardNumber) {
+        if (idCardNumber.length() == 18) {
+            char genderDigit = idCardNumber.charAt(16);
+            int genderValue = Integer.parseInt(String.valueOf(genderDigit));
+            if (genderValue % 2 == 0) {
+               return "女";
+            } else {
+                return "男";
+            }
+        } else if (idCardNumber.length() == 15) {
+            char genderDigit = idCardNumber.charAt(14);
+            int genderValue = Integer.parseInt(String.valueOf(genderDigit));
+            if (genderValue % 2 == 0) {
+                return "女";
+            } else {
+                return "男";
+            }
+        } else {
+            return "";
+        }
+    }
+
+}

+ 65 - 0
src/main/java/com/ydtech/modules/admin/model/vo/CustInfoVo.java

@@ -0,0 +1,65 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.ydtech.modules.admin.model.po.CustVehicleInfo;
+import com.ydtech.modules.admin.model.po.CustVehiclePolicyInfo;
+import com.ydtech.modules.ins.model.vo.CarInfoVo;
+import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
+import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/11/20 18:49
+ *  @Description: 客戶服务参数
+ */
+@Data
+@ApiModel("客戶服务返回对象")
+public class CustInfoVo implements Serializable {
+
+
+    @ApiModelProperty(value = "车辆信息")
+    private CarInfoVo carInfo = new CarInfoVo();
+
+    @ApiModelProperty(value = "车主信息")
+    private CustomerInfoVo ownerInfo = new CustomerInfoVo();
+
+    @ApiModelProperty(value = "投保人信息")
+    private CustomerInfoVo  policyHolderInfo = new CustomerInfoVo();
+
+    @ApiModelProperty(value = "被保人信息")
+    private CustomerInfoVo  insuredPersonInfo = new CustomerInfoVo();
+
+
+    @ApiModelProperty(value = "影像信息")
+    private Map<String, InsTaskImagesDto> imageList;
+
+    public CustInfoVo() {
+    }
+
+    public CustInfoVo(CarInfoVo carInfo, CustomerInfoVo ownerInfo, CustomerInfoVo policyHolderInfo, CustomerInfoVo insuredPersonInfo, Map<String, InsTaskImagesDto> imageList) {
+        this.carInfo = carInfo;
+        this.ownerInfo = ownerInfo;
+        this.policyHolderInfo = policyHolderInfo;
+        this.insuredPersonInfo = insuredPersonInfo;
+        this.imageList = imageList;
+    }
+
+    public CustInfoVo(CustVehicleInfo custVehicleInfo, CustVehiclePolicyInfo custVehiclePolicyInfo, Map<String, InsTaskImagesDto> imageList) {
+
+        CarInfoVo carInfoVo = custVehicleInfo.trafferCarInfoVo(custVehicleInfo);
+        CustomerInfoVo ownerInfo = custVehiclePolicyInfo.trafferCustVehiclePolicyInfo(custVehiclePolicyInfo,1);
+        CustomerInfoVo policyHolderInfo = custVehiclePolicyInfo.trafferCustVehiclePolicyInfo(custVehiclePolicyInfo,2);
+        CustomerInfoVo insuredPersonInfo = custVehiclePolicyInfo.trafferCustVehiclePolicyInfo(custVehiclePolicyInfo,3);
+        this.carInfo = carInfoVo;
+        this.ownerInfo = ownerInfo;
+        this.policyHolderInfo = policyHolderInfo;
+        this.insuredPersonInfo = insuredPersonInfo;
+        this.imageList = imageList;
+    }
+}

+ 21 - 0
src/main/java/com/ydtech/modules/admin/service/CustInfoService.java

@@ -0,0 +1,21 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.dto.CustInfoDto;
+import com.ydtech.modules.admin.model.po.CustInfo;
+import com.ydtech.modules.admin.model.vo.CustInfoVo;
+
+/**
+* @author Administrator
+* @description 针对表【cust_info(客户信息表)】的数据库操作Service
+* @createDate 2024-11-20 18:43:46
+*/
+public interface CustInfoService extends IService<CustInfo> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/20 18:55
+     *  @Description:  获取车辆信息
+     */
+    CustInfoVo getCustInfo(CustInfoDto custInfoDto);
+}

+ 21 - 0
src/main/java/com/ydtech/modules/admin/service/CustVehicleInfoService.java

@@ -0,0 +1,21 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.dto.CustInfoDto;
+import com.ydtech.modules.admin.model.po.CustVehicleInfo;
+
+/**
+* @author Administrator
+* @description 针对表【cust_vehicle_info(用户车辆信息表)】的数据库操作Service
+* @createDate 2024-11-21 09:49:10
+*/
+public interface CustVehicleInfoService extends IService<CustVehicleInfo> {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/21 11:24
+     *  @Description:  查询车辆信息
+     */
+    CustVehicleInfo getCarInfoByCustIdAndLicenseNo(CustInfoDto custInfoDto);
+}

+ 22 - 0
src/main/java/com/ydtech/modules/admin/service/CustVehiclePhotoInfoService.java

@@ -0,0 +1,22 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.po.CustVehiclePhotoInfo;
+import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
+
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【cust_vehicle_photo_info(车辆影像资料)】的数据库操作Service
+* @createDate 2024-11-21 09:49:15
+*/
+public interface CustVehiclePhotoInfoService extends IService<CustVehiclePhotoInfo> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/21 11:25
+     *  @Description:  通过订单号查询影像信息
+     */
+    List<InsTaskImagesDto> findImgList(String subOrderNo);
+}

+ 20 - 0
src/main/java/com/ydtech/modules/admin/service/CustVehiclePolicyInfoService.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.CustVehicleInfo;
+import com.ydtech.modules.admin.model.po.CustVehiclePolicyInfo;
+
+/**
+* @author Administrator
+* @description 针对表【cust_vehicle_policy_info(车辆关联客户信息)】的数据库操作Service
+* @createDate 2024-11-21 11:10:44
+*/
+public interface CustVehiclePolicyInfoService extends IService<CustVehiclePolicyInfo> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/21 11:24
+     *  @Description: 查询车辆相关信息
+     */
+    CustVehiclePolicyInfo findCustomerInfo(CustVehicleInfo custVehicleInfo);
+}

+ 69 - 0
src/main/java/com/ydtech/modules/admin/service/SysCustService.java

@@ -0,0 +1,69 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.aop.annotations.DynamicName;
+import com.ydtech.modules.admin.model.SysArea;
+import com.ydtech.modules.admin.model.vo.PersonAreaVo;
+import com.ydtech.modules.admin.model.vo.SysAreaVo;
+
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @description 针对表【sys_area(省市县代码)】的数据库操作Service
+ * @createDate 2023-11-15 11:23:28
+ */
+public interface SysCustService extends IService<SysArea> {
+
+    /**
+     * 省市区树结构查询
+     */
+    List<SysAreaVo> querySysArea();
+
+    /**
+     * 按照level查询
+     */
+    List<SysArea> queryByLevel(Integer level);
+
+    /**
+     * 获取所有上级数据
+     *
+     * @param sysArea
+     * @return
+     */
+    List<SysArea> queryAllParent(SysArea sysArea);
+
+    /**
+     * 通过地址身份证号 获取省市区
+     *
+     * @param address 地址
+     * @return
+     */
+    PersonAreaVo queryByAddress(String address, String idcard);
+
+    /**
+     * 使用永诚提供地省市区 地址身份证号 获取省市区
+     *
+     * @param address 地址
+     * @param idcard  身份证
+     * @return 省市区实体
+     */
+    @DynamicName(tableName = "ins_yongcheng_area")
+    default PersonAreaVo queryByAddressYc(String address, String idcard) {
+        return queryByAddress(address, idcard);
+    }
+
+    /**
+     * 使用永诚提供地省市区 地址身份证号 获取省市区
+     *
+     * @param address 地址
+     * @param idcard  身份证
+     * @return 省市区实体
+     */
+    @DynamicName(tableName = "ins_bohai_area")
+    default PersonAreaVo queryByAddressBoHai(String address, String idcard) {
+        return queryByAddress(address, idcard);
+    }
+
+
+}

+ 77 - 0
src/main/java/com/ydtech/modules/admin/service/impl/CustInfoServiceImpl.java

@@ -0,0 +1,77 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.constants.InsuranceImageEnum;
+import com.ydtech.modules.admin.dao.CustInfoMapper;
+import com.ydtech.modules.admin.model.dto.CustInfoDto;
+import com.ydtech.modules.admin.model.po.CustInfo;
+import com.ydtech.modules.admin.model.po.CustVehicleInfo;
+import com.ydtech.modules.admin.model.po.CustVehiclePolicyInfo;
+import com.ydtech.modules.admin.model.vo.CustInfoVo;
+import com.ydtech.modules.admin.service.CustInfoService;
+import com.ydtech.modules.admin.service.CustVehicleInfoService;
+import com.ydtech.modules.admin.service.CustVehiclePhotoInfoService;
+import com.ydtech.modules.admin.service.CustVehiclePolicyInfoService;
+import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【cust_info(客户信息表)】的数据库操作Service实现
+* @createDate 2024-11-20 18:43:46
+*/
+@DS("cust")
+@Service
+public class CustInfoServiceImpl extends ServiceImpl<CustInfoMapper, CustInfo>
+    implements CustInfoService {
+
+     @Autowired
+     private CustVehicleInfoService  custVehicleInfoService;
+
+     @Autowired
+     private CustVehiclePolicyInfoService  custVehiclePolicyInfoService;
+
+
+    @Autowired
+    private CustVehiclePhotoInfoService  custVehiclePhotoInfoService;
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/20 18:55
+     *  @Description: 获取客户相关信息
+     */
+    @Override
+    public CustInfoVo getCustInfo(CustInfoDto custInfoDto) {
+        //通过客户id和车牌号查询订单号
+        CustVehicleInfo custVehicleInfo = custVehicleInfoService.getCarInfoByCustIdAndLicenseNo(custInfoDto);
+        //查询车主相关信息
+        CustVehiclePolicyInfo custVehiclePolicyInfo= custVehiclePolicyInfoService.findCustomerInfo(custVehicleInfo);
+        //获取影像信息
+        List<InsTaskImagesDto> insTaskImagesDtos = custVehiclePhotoInfoService.findImgList(custVehicleInfo.getSubOrderNo());
+
+        LinkedHashMap<String, InsTaskImagesDto> collect = insTaskImagesDtos
+                .stream()
+                .collect(LinkedHashMap::new, (m, v) -> m.put(v.getImageType(), v), LinkedHashMap::putAll);
+        // 没有数据的为空对象
+        for (InsuranceImageEnum insuranceImageEnum : InsuranceImageEnum.values()) {
+            String code = insuranceImageEnum.getCode();
+            InsTaskImagesDto insTaskImagesDto = collect.get(insuranceImageEnum.getCode());
+            if (ObjectUtils.isEmpty(insTaskImagesDto)) {
+                collect.put(code, new InsTaskImagesDto());
+            }
+        }
+        CustInfoVo vo = new CustInfoVo(custVehicleInfo,custVehiclePolicyInfo,collect);
+        return vo;
+    }
+}
+
+
+

+ 35 - 0
src/main/java/com/ydtech/modules/admin/service/impl/CustVehicleInfoServiceImpl.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.CustVehicleInfoMapper;
+import com.ydtech.modules.admin.model.dto.CustInfoDto;
+import com.ydtech.modules.admin.model.po.CustVehicleInfo;
+import com.ydtech.modules.admin.service.CustVehicleInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 针对表【cust_vehicle_info(用户车辆信息表)】的数据库操作Service实现
+* @createDate 2024-11-21 09:49:10
+*/
+@DS("cust")
+@Service
+public class CustVehicleInfoServiceImpl extends ServiceImpl<CustVehicleInfoMapper, CustVehicleInfo>
+    implements CustVehicleInfoService {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/21 11:27
+     *  @Description: 查询车辆信息
+     */
+    @Override
+    public CustVehicleInfo getCarInfoByCustIdAndLicenseNo(CustInfoDto custInfoDto) {
+        return this.getBaseMapper().getCarInfoByCustIdAndLicenseNo(custInfoDto);
+    }
+}
+
+
+
+

+ 37 - 0
src/main/java/com/ydtech/modules/admin/service/impl/CustVehiclePhotoInfoServiceImpl.java

@@ -0,0 +1,37 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.CustVehiclePhotoInfoMapper;
+import com.ydtech.modules.admin.model.po.CustVehiclePhotoInfo;
+import com.ydtech.modules.admin.service.CustVehiclePhotoInfoService;
+import com.ydtech.modules.order.entity.dto.InsTaskImagesDto;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【cust_vehicle_photo_info(车辆影像资料)】的数据库操作Service实现
+* @createDate 2024-11-21 09:49:15
+*/
+@DS("cust")
+@Service
+public class CustVehiclePhotoInfoServiceImpl extends ServiceImpl<CustVehiclePhotoInfoMapper, CustVehiclePhotoInfo>
+    implements CustVehiclePhotoInfoService {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/21 11:27
+     *  @Description: 查询影像信息
+     */
+    @Override
+    public List<InsTaskImagesDto> findImgList(String subOrderNo) {
+        return this.getBaseMapper().findImgList(subOrderNo);
+    }
+}
+
+
+
+

+ 35 - 0
src/main/java/com/ydtech/modules/admin/service/impl/CustVehiclePolicyInfoServiceImpl.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.CustVehiclePolicyInfoMapper;
+import com.ydtech.modules.admin.model.po.CustVehicleInfo;
+import com.ydtech.modules.admin.model.po.CustVehiclePolicyInfo;
+import com.ydtech.modules.admin.service.CustVehiclePolicyInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 针对表【cust_vehicle_policy_info(车辆关联客户信息)】的数据库操作Service实现
+* @createDate 2024-11-21 11:10:44
+*/
+@DS("cust")
+@Service
+public class CustVehiclePolicyInfoServiceImpl extends ServiceImpl<CustVehiclePolicyInfoMapper, CustVehiclePolicyInfo>
+    implements CustVehiclePolicyInfoService {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/11/21 11:27
+     *  @Description: 查询车辆信息
+     */
+    @Override
+    public CustVehiclePolicyInfo findCustomerInfo(CustVehicleInfo custVehicleInfo) {
+        return this.getBaseMapper().findCustomerInfo(custVehicleInfo);
+    }
+}
+
+
+
+

+ 39 - 0
src/main/resources/mapper/modules/admin/CustInfoMapper.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.CustInfoMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.po.CustInfo">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="phone" column="phone" jdbcType="VARCHAR"/>
+            <result property="birthDate" column="birth_date" jdbcType="TIMESTAMP"/>
+            <result property="address" column="address" jdbcType="VARCHAR"/>
+            <result property="detailedAddress" column="detailed_address" jdbcType="VARCHAR"/>
+            <result property="sex" column="sex" jdbcType="TINYINT"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="idcard" column="idcard" jdbcType="VARCHAR"/>
+            <result property="source" column="source" jdbcType="TINYINT"/>
+            <result property="custType" column="cust_type" jdbcType="TINYINT"/>
+            <result property="becomeCustTime" column="become_cust_time" jdbcType="TIMESTAMP"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="provinceCode" column="province_code" jdbcType="VARCHAR"/>
+            <result property="cityCode" column="city_code" jdbcType="VARCHAR"/>
+            <result property="countyCode" column="county_code" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,name,phone,
+        birth_date,address,detailed_address,
+        sex,remarks,idcard,
+        source,cust_type,become_cust_time,
+        create_by,create_time,update_by,
+        update_time,del_flag,province_code,
+        city_code,county_code
+    </sql>
+</mapper>

+ 31 - 0
src/main/resources/mapper/modules/admin/CustVehicleInfoMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.CustVehicleInfoMapper">
+
+
+    <sql id="Base_Column_List">
+        id,cust_id,sub_order_no,
+        license_no,frame_no,brand_name,
+        engine_no,car_year,seat_count,
+        complete_kerb_mass,limit_load,power_type_code,
+        purchase_price,vehicle_use,cimodelclass,
+        carnature,energy_type,property,
+        power_scale,fir_register_date,issue_date,
+        create_by,create_time,update_by,
+        update_time,del_flag,follow_up_user_id,
+        follow_up_user_name,follow_up_dept_id,follow_up_dept_name,
+        follow_up_time,follow_up_status,follow_up_status_son,
+        vin_no,enginedesc,vehicleweight,powertype,cartype,family_name
+    </sql>
+    <select id="getCarInfoByCustIdAndLicenseNo" resultType="com.ydtech.modules.admin.model.po.CustVehicleInfo">
+        select
+        <include refid="Base_Column_List"/>
+        from  cust_vehicle_info
+        where  cust_id = #{vo.custId}
+          and  license_no = #{vo.licenseNo}
+         order by create_time
+         limit 1
+    </select>
+</mapper>

+ 35 - 0
src/main/resources/mapper/modules/admin/CustVehiclePhotoInfoMapper.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.CustVehiclePhotoInfoMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.po.CustVehiclePhotoInfo">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="vehicleId" column="vehicle_id" jdbcType="VARCHAR"/>
+            <result property="custId" column="cust_id" jdbcType="VARCHAR"/>
+            <result property="subOrderNo" column="sub_order_no" jdbcType="VARCHAR"/>
+            <result property="type" column="type" jdbcType="VARCHAR"/>
+            <result property="loaclUrl" column="loacl_url" jdbcType="VARCHAR"/>
+            <result property="netUrl" column="net_url" jdbcType="VARCHAR"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,vehicle_id,cust_id,
+        sub_order_no,type,loacl_url,
+        net_url,create_by,create_time,
+        update_by,update_time,del_flag
+    </sql>
+    <select id="findImgList" resultType="com.ydtech.modules.order.entity.dto.InsTaskImagesDto">
+        select
+            type  as imageType,
+            net_url as url
+        from cust_vehicle_photo_info
+        where sub_order_no = #{ subOrderNo}
+    </select>
+</mapper>

+ 30 - 0
src/main/resources/mapper/modules/admin/CustVehiclePolicyInfoMapper.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.CustVehiclePolicyInfoMapper">
+
+    <sql id="Base_Column_List">
+        id,cust_id,sub_order_no,
+        vehicle_id,apply_name,apply_identify_number,
+        apply_identify_type,apply_addr,apply_age,
+        apply_gender,apply_email,apply_mobile,
+        apply_identify_valid_date,apply_identify_valid_end_date,insure_name,
+        insure_identify_number,insure_identify_type,insure_addr,
+        insure_age,insure_gender,insure_email,
+        insure_mobile,insure_identify_valid_date,insure_identify_valid_end_date,
+        owner_name,owner_identify_number,owner_identify_type,
+        owner_addr,owner_age,owner_gender,
+        owner_email,owner_mobile,owner_identify_valid_date,
+        owner_identify_valid_end_date,create_by,create_time,
+        update_by,update_time,del_flag,
+        insure_owner_flag,insure_insurance_holder_flag,owner_owner_flag,
+        owner_insurance_holder_flag,apply_owner_flag,apply_insurance_holder_flag
+    </sql>
+    <select id="findCustomerInfo" resultType="com.ydtech.modules.admin.model.po.CustVehiclePolicyInfo">
+        select
+            <include refid="Base_Column_List"/>
+        from cust_vehicle_policy_info
+        where sub_order_no = #{vo.subOrderNo}
+    </select>
+</mapper>