785834757 %!s(int64=2) %!d(string=hai) anos
pai
achega
1c2c5ca683
Modificáronse 28 ficheiros con 713 adicións e 173 borrados
  1. 1 0
      src/main/java/com/ydtech/components/OrderComponents.java
  2. 1 1
      src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java
  3. 12 0
      src/main/java/com/ydtech/modules/ins/model/InsOrdersExcel.java
  4. 2 0
      src/main/java/com/ydtech/modules/ins/model/vo/QuoteKindRespVo.java
  5. 131 4
      src/main/java/com/ydtech/modules/order/entity/InsAreaCompanyCarInfo.java
  6. 39 1
      src/main/java/com/ydtech/modules/order/entity/InsAreaCompanyCarUserInfo.java
  7. 19 6
      src/main/java/com/ydtech/modules/order/entity/InsAreaCompanyKind.java
  8. 140 4
      src/main/java/com/ydtech/modules/order/entity/po/InsOrdersCarInfo.java
  9. 44 0
      src/main/java/com/ydtech/modules/order/entity/po/InsOrdersCarUserInfo.java
  10. 7 7
      src/main/java/com/ydtech/modules/order/entity/po/InsOrdersKind.java
  11. 12 0
      src/main/java/com/ydtech/modules/order/service/InsAreaCompanyCarInfoService.java
  12. 7 1
      src/main/java/com/ydtech/modules/order/service/InsAreaCompanyCarUserInfoService.java
  13. 2 0
      src/main/java/com/ydtech/modules/order/service/InsAreaCompanyKindService.java
  14. 2 0
      src/main/java/com/ydtech/modules/order/service/InsAreaCompanyRiskService.java
  15. 2 0
      src/main/java/com/ydtech/modules/order/service/InsAreaCompanyTaxArrearsService.java
  16. 9 0
      src/main/java/com/ydtech/modules/order/service/InsOrdersCarUserInfoService.java
  17. 7 0
      src/main/java/com/ydtech/modules/order/service/InsOrdersService.java
  18. 0 1
      src/main/java/com/ydtech/modules/order/service/impl/DaJiaOrderServiceImpl.java
  19. 41 0
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyCarInfoServiceImpl.java
  20. 61 0
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyCarUserInfoServiceImpl.java
  21. 14 0
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyKindServiceImpl.java
  22. 14 0
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyRiskServiceImpl.java
  23. 12 83
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java
  24. 14 0
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyTaxArrearsServiceImpl.java
  25. 60 0
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersCarUserInfoServiceImpl.java
  26. 53 57
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  27. 3 3
      src/main/java/com/ydtech/modules/xxl/model/InsAreaCompanyOld.java
  28. 4 5
      src/main/resources/mapper/modules/order/InsOrdersMapper.xml

+ 1 - 0
src/main/java/com/ydtech/components/OrderComponents.java

@@ -23,6 +23,7 @@ import org.springframework.util.ObjectUtils;
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
+import javax.validation.Valid;
 
 @Component
 public class OrderComponents {

+ 1 - 1
src/main/java/com/ydtech/modules/fee/dto/vo/RuleAttrMappingVo.java

@@ -57,7 +57,7 @@ public class RuleAttrMappingVo {
         //是否过户
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("TransferVehicle", carInfo.isTransferFlag() ? "1" : "0"));
         //是否新车
-        ruleAttrMappingVoList.add(new RuleAttrMappingVo("NewAndOldCars", carInfo.getNoLicenseFlag()));
+        ruleAttrMappingVoList.add(new RuleAttrMappingVo("NewAndOldCars", carInfo.isNoLicenseFlag() ? "1" : "0"));
         //发证日期
         ruleAttrMappingVoList.add(new RuleAttrMappingVo("DateofIssuance", carInfo.getIssueDate()));
         //车长

+ 12 - 0
src/main/java/com/ydtech/modules/ins/model/InsOrdersExcel.java

@@ -40,6 +40,9 @@ public class InsOrdersExcel {
     @ExcelIgnore
     private JSONObject carInfo;
 
+    @ExcelIgnore
+    private String carInfoId;
+
     @ExcelProperty(value = "车型")
     private String modelcName;
 
@@ -64,6 +67,9 @@ public class InsOrdersExcel {
     @ExcelIgnore
     private JSONObject ownerInfo;
 
+    @ExcelIgnore
+    private String ownerInfoId;
+
     @ExcelProperty(value = "车主姓名")
     private String ownerName;
 
@@ -79,6 +85,9 @@ public class InsOrdersExcel {
     @ExcelIgnore
     private JSONObject applyInfo;
 
+    @ExcelIgnore
+    private String applyInfoId;
+
     @ExcelProperty(value = "投保人姓名")
     private String applyName;
 
@@ -94,6 +103,9 @@ public class InsOrdersExcel {
     @ExcelIgnore
     private JSONObject insureInfo;
 
+    @ExcelIgnore
+    private String insureInfoId;
+
     @ExcelProperty(value = "被保险人姓名")
     private String insureName;
 

+ 2 - 0
src/main/java/com/ydtech/modules/ins/model/vo/QuoteKindRespVo.java

@@ -45,4 +45,6 @@ public class QuoteKindRespVo {
 
     private double unitAmount;
 
+
+
 }

+ 131 - 4
src/main/java/com/ydtech/modules/order/entity/InsAreaCompanyCarInfo.java

@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.modules.ins.model.vo.QuoteRespVo;
+import com.ydtech.modules.order.entity.po.InsOrdersCarInfo;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.utils.idgen.IdGenerate;
 import io.swagger.annotations.ApiModel;
@@ -101,7 +102,7 @@ public class InsAreaCompanyCarInfo implements Serializable {
      * 无牌标志
      */
     @TableField(value="no_license_flag")
-    private String noLicenseFlag;
+    private boolean noLicenseFlag;
 
     /**
      * 发动机描述
@@ -155,7 +156,7 @@ public class InsAreaCompanyCarInfo implements Serializable {
      * 贷款状态
      */
     @TableField(value="loan_status")
-    private String loanStatus;
+    private boolean loanStatus;
 
     /**
      * 属性
@@ -209,7 +210,7 @@ public class InsAreaCompanyCarInfo implements Serializable {
      * 二手车标志
      */
     @TableField(value="used_car")
-    private String usedCar;
+    private boolean usedCar;
 
     /**
      * 牌照类型代码
@@ -263,7 +264,7 @@ public class InsAreaCompanyCarInfo implements Serializable {
      * 过保标志
      */
     @TableField(value="out_of_insurance")
-    private String outOfInsurance;
+    private boolean outOfInsurance;
 
     /**
      * 车辆重量
@@ -284,4 +285,130 @@ public class InsAreaCompanyCarInfo implements Serializable {
     private String powerTypeCode;
 
 
+    public boolean compare(InsOrdersCarInfo insOrdersCarInfo){
+        if(!this.frameNo.equals(insOrdersCarInfo.getFrameNo())){
+            return false;
+        }
+        if(!this.licenseNo.equals(insOrdersCarInfo.getLicenseNo())){
+            return false;
+        }
+        if(!transferFlag == insOrdersCarInfo.isTransferFlag()){
+            return false;
+        }
+        if(!transferFlagBi == insOrdersCarInfo.isTransferFlagBi()){
+            return false;
+        }
+        if(!this.cartype.equals(insOrdersCarInfo.getCartype())){
+            return false;
+        }
+        if(!this.factoryId.equals(insOrdersCarInfo.getFactoryId())){
+            return false;
+        }
+        if(!this.modelcname.equals(insOrdersCarInfo.getModelcname())){
+            return false;
+        }
+        if(!this.purchasePrice.equals(insOrdersCarInfo.getPurchasePrice())){
+            return false;
+        }
+        if(!this.transferDate.equals(insOrdersCarInfo.getTransferDate())){
+            return false;
+        }
+        if(!this.vinNo.equals(insOrdersCarInfo.getVinNo())){
+            return false;
+        }
+        if(!this.noLicenseFlag == insOrdersCarInfo.isNoLicenseFlag()){
+            return false;
+        }
+        if(!this.enginedesc.equals(insOrdersCarInfo.getEnginedesc())){
+            return false;
+        }
+        if(!this.powerType.equals(insOrdersCarInfo.getPowerType())){
+            return false;
+        }
+        if(!this.powerScale.equals(insOrdersCarInfo.getPowerScale())){
+            return false;
+        }
+        if(!this.ciModelCode.equals(insOrdersCarInfo.getCiModelCode())){
+            return false;
+        }
+        if(!this.exhaustScale.equals(insOrdersCarInfo.getExhaustScale())){
+            return false;
+        }
+        if(!this.modelCode.equals(insOrdersCarInfo.getModelCode())){
+            return false;
+        }
+        if(!this.completeKerbMass.equals(insOrdersCarInfo.getCompleteKerbMass())){
+            return false;
+        }
+        if(!this.familyName.equals(insOrdersCarInfo.getFamilyName())){
+            return false;
+        }
+        if(!this.loanStatus == insOrdersCarInfo.isLoanStatus()){
+            return false;
+        }
+        if(!this.property.equals(insOrdersCarInfo.getProperty())){
+            return false;
+        }
+        if(!this.caryear.equals(insOrdersCarInfo.getCaryear())){
+            return false;
+        }
+        if(!this.issueDate.equals(insOrdersCarInfo.getIssueDate())){
+            return false;
+        }
+        if(!this.registerDate.equals(insOrdersCarInfo.getRegisterDate())){
+            return false;
+        }
+        if(!this.engineNo.equals(insOrdersCarInfo.getEngineNo())){
+            return false;
+        }
+        if(!this.factory.equals(insOrdersCarInfo.getFactory())){
+            return false;
+        }
+        if(!this.brandName.equals(insOrdersCarInfo.getBrandName())){
+            return false;
+        }
+        if(!this.carBrand.equals(insOrdersCarInfo.getCarBrand())){
+            return false;
+        }
+        if(!this.usedCar == insOrdersCarInfo.isUsedCar()){
+            return false;
+        }
+        if(!this.licenseTypeCode.equals(insOrdersCarInfo.getLicenseTypeCode())){
+            return false;
+        }
+        if(!this.vehicleUse.equals(insOrdersCarInfo.getVehicleUse())){
+            return false;
+        }
+        if(!this.carnature.equals(insOrdersCarInfo.getCarnature())){
+            return false;
+        }
+        if(!this.seatCount.equals(insOrdersCarInfo.getSeatCount())){
+            return false;
+        }
+        if(!this.energyType.equals(insOrdersCarInfo.getEnergyType())){
+            return false;
+        }
+        if(!this.limitLoad.equals(insOrdersCarInfo.getLimitLoad())){
+            return false;
+        }
+        if(!this.vehicleClass.equals(insOrdersCarInfo.getVehicleClass())){
+            return false;
+        }
+        if(!this.cimodelclass.equals(insOrdersCarInfo.getCimodelclass())){
+            return false;
+        }
+        if(!this.outOfInsurance == insOrdersCarInfo.isOutOfInsurance()){
+            return false;
+        }
+        if(!this.vehicleWeight.equals(insOrdersCarInfo.getVehicleWeight())){
+            return false;
+        }
+        if(!this.ciCarName.equals(insOrdersCarInfo.getCiCarName())) {
+            return false;
+        }
+        if(!this.powerType.equals(insOrdersCarInfo.getPowerType())){
+            return false;
+        }
+        return true;
+    }
 }

+ 39 - 1
src/main/java/com/ydtech/modules/order/entity/InsAreaCompanyCarUserInfo.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.entity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.ydtech.modules.order.entity.po.InsOrdersCarUserInfo;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -17,7 +18,6 @@ import java.io.Serializable;
 @TableName(value = "ins_area_company_car_user_info", autoResultMap = true)
 @Data
 @ApiModel(value = "子订单车辆人员信息")
-@NoArgsConstructor
 public class InsAreaCompanyCarUserInfo implements Serializable {
 
 
@@ -65,4 +65,42 @@ public class InsAreaCompanyCarUserInfo implements Serializable {
     @TableField(exist = false)
     private boolean insuranceHolder;
 
+    public InsAreaCompanyCarUserInfo(){
+        this.name = "";
+        this.identifyNumber = "";
+        this.age = "";
+        this.gender = "";
+        this.addr = "";
+        this.identifyValidDate = "";
+        this.identifyValidEndDate = "";
+        this.mobile = "";
+    }
+
+    public boolean compare(InsOrdersCarUserInfo insOrdersCarUserInfo){
+        if(!this.name.equals(insOrdersCarUserInfo.getName())){
+            return false;
+        }
+        if(!this.identifyNumber.equals(insOrdersCarUserInfo.getIdentifyNumber())){
+            return false;
+        }
+        if(!this.age.equals(insOrdersCarUserInfo.getAge())){
+            return false;
+        }
+        if(!this.gender.equals(insOrdersCarUserInfo.getGender())){
+            return false;
+        }
+        if(!this.addr.equals(insOrdersCarUserInfo.getAddr())){
+            return false;
+        }
+        if(!this.identifyValidDate.equals(insOrdersCarUserInfo.getIdentifyValidDate())){
+            return false;
+        }
+        if(!this.identifyValidEndDate.equals(insOrdersCarUserInfo.getIdentifyValidEndDate())){
+            return false;
+        }
+        if(!this.mobile.equals(insOrdersCarUserInfo.getMobile())){
+            return false;
+        }
+        return true;
+    }
 }

+ 19 - 6
src/main/java/com/ydtech/modules/order/entity/InsAreaCompanyKind.java

@@ -9,6 +9,7 @@ import com.ydtech.modules.order.entity.po.InsOrdersKind;
 import com.ydtech.modules.order.entity.po.InsOrdersRisk;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
+import org.apache.poi.hpsf.Decimal;
 
 import java.io.Serializable;
 import java.util.List;
@@ -39,13 +40,13 @@ public class InsAreaCompanyKind implements Serializable {
      * 保额
      */
     @TableField(value = "amount")
-    private String amount;
+    private double amount;
 
     /**
      * 单位保额
      */
     @TableField(value = "unit_amount")
-    private String unitAmount;
+    private double unitAmount;
 
     /**
      * 险种编码
@@ -68,6 +69,18 @@ public class InsAreaCompanyKind implements Serializable {
     @TableField(value = "deductible_rate")
     private String deductibleRate;
 
+    @TableField(value = "rate")
+    private double rate;
+
+    @TableField(value = "deductible")
+    private double deductible;
+
+    @TableField(value = "coverage_premium")
+    private double coveragePremium;
+
+    @TableField(value = "not_deductible_flag")
+    private String notDeductibleFlag;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 
@@ -77,8 +90,8 @@ public class InsAreaCompanyKind implements Serializable {
 
     public InsAreaCompanyKind(KindInfoVo kindInfoVo, String orderNo) {
         this.companyId = orderNo;
-        this.amount = String.valueOf(kindInfoVo.getAmount());
-        this.unitAmount = String.valueOf(kindInfoVo.getUnitAmount());
+        this.amount = kindInfoVo.getAmount();
+        this.unitAmount = kindInfoVo.getUnitAmount();
         this.kindCode = kindInfoVo.getKindCode();
         this.kindName = kindInfoVo.getKindName();
         this.deductibleRate = kindInfoVo.getDeductibleRate();
@@ -90,8 +103,8 @@ public class InsAreaCompanyKind implements Serializable {
 
     public KindInfoVo toKindInfoVo() {
         KindInfoVo kindInfoVo = new KindInfoVo();
-        kindInfoVo.setAmount(Double.parseDouble(this.amount));
-        kindInfoVo.setUnitAmount(Double.parseDouble(this.unitAmount));
+        kindInfoVo.setAmount(this.amount);
+        kindInfoVo.setUnitAmount(this.unitAmount);
         kindInfoVo.setKindCode(this.kindCode);
         kindInfoVo.setKindName(this.kindName);
         kindInfoVo.setDeductibleRate(this.deductibleRate);

+ 140 - 4
src/main/java/com/ydtech/modules/order/entity/po/InsOrdersCarInfo.java

@@ -2,7 +2,11 @@ package com.ydtech.modules.order.entity.po;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.ydtech.constants.enums.dict.insurance.EnergyType;
+import com.ydtech.modules.ins.model.vo.CarInfoVo;
+import com.ydtech.utils.idgen.IdGenerate;
 import lombok.Data;
+import org.springframework.beans.BeanUtils;
 
 import java.io.Serializable;
 
@@ -85,7 +89,7 @@ public class InsOrdersCarInfo implements Serializable {
      * 无牌标志
      */
     @TableField(value="no_license_flag")
-    private String noLicenseFlag;
+    private boolean noLicenseFlag;
 
     /**
      * 发动机描述
@@ -139,7 +143,7 @@ public class InsOrdersCarInfo implements Serializable {
      * 贷款状态
      */
     @TableField(value="loan_status")
-    private String loanStatus;
+    private boolean loanStatus;
 
     /**
      * 属性
@@ -193,7 +197,7 @@ public class InsOrdersCarInfo implements Serializable {
      * 二手车标志
      */
     @TableField(value="used_car")
-    private String usedCar;
+    private boolean usedCar;
 
     /**
      * 牌照类型代码
@@ -247,7 +251,7 @@ public class InsOrdersCarInfo implements Serializable {
      * 过保标志
      */
     @TableField(value="out_of_insurance")
-    private String outOfInsurance;
+    private boolean outOfInsurance;
 
     /**
      * 车辆重量
@@ -268,4 +272,136 @@ public class InsOrdersCarInfo implements Serializable {
     private String powerTypeCode;
 
 
+    // 判断是否是新能源车
+    public boolean isNewEnergy() {
+        return EnergyType.isNewEnergy(energyType);
+    }
+
+
+    public boolean compare(CarInfoVo carInfoVo){
+        if(!this.frameNo.equals(carInfoVo.getFrameNo())){
+            return false;
+        }
+        if(!this.licenseNo.equals(carInfoVo.getLicenseNo())){
+            return false;
+        }
+        if(!transferFlag == carInfoVo.isTransferFlag()){
+            return false;
+        }
+        if(!transferFlagBi == carInfoVo.isTransferFlagBi()){
+            return false;
+        }
+        if(!this.cartype.equals(carInfoVo.getCartype())){
+            return false;
+        }
+        if(!this.modelcname.equals(carInfoVo.getModelcname())){
+            return false;
+        }
+        if(!this.purchasePrice.equals(carInfoVo.getPurchasePrice())){
+            return false;
+        }
+        if(!this.transferDate.equals(carInfoVo.getTransferDate())){
+            return false;
+        }
+        if(!this.vinNo.equals(carInfoVo.getVinNo())){
+            return false;
+        }
+        if(!this.noLicenseFlag == carInfoVo.isNoLicenseFlag()){
+            return false;
+        }
+        if(!this.enginedesc.equals(carInfoVo.getEnginedesc())){
+            return false;
+        }
+        if(!this.powerScale.equals(carInfoVo.getPowerScale())){
+            return false;
+        }
+        if(!this.ciModelCode.equals(carInfoVo.getCiModelCode())){
+            return false;
+        }
+        if(!this.exhaustScale.equals(carInfoVo.getExhaustScale())){
+            return false;
+        }
+        if(!this.modelCode.equals(carInfoVo.getModelCode())){
+            return false;
+        }
+        if(!this.completeKerbMass.equals(carInfoVo.getCompleteKerbMass())){
+            return false;
+        }
+        if(!this.familyName.equals(carInfoVo.getFamilyName())){
+            return false;
+        }
+        if(!this.loanStatus == carInfoVo.isLoanStatus()){
+            return false;
+        }
+        if(!this.property.equals(carInfoVo.getProperty())){
+            return false;
+        }
+        if(!this.caryear.equals(carInfoVo.getCaryear())){
+            return false;
+        }
+        if(!this.issueDate.equals(carInfoVo.getIssueDate())){
+            return false;
+        }
+        if(!this.registerDate.equals(carInfoVo.getRegisterDate())){
+            return false;
+        }
+        if(!this.engineNo.equals(carInfoVo.getEngineNo())){
+            return false;
+        }
+        if(!this.factory.equals(carInfoVo.getFactory())){
+            return false;
+        }
+        if(!this.brandName.equals(carInfoVo.getBrandName())){
+            return false;
+        }
+        if(!this.carBrand.equals(carInfoVo.getCarBrand())){
+            return false;
+        }
+        if(!this.usedCar == carInfoVo.isUsedCar()){
+            return false;
+        }
+        if(!this.licenseTypeCode.equals(carInfoVo.getLicenseTypeCode())){
+            return false;
+        }
+        if(!this.vehicleUse.equals(carInfoVo.getVehicleUse())){
+            return false;
+        }
+        if(!this.carnature.equals(carInfoVo.getCarnature())){
+            return false;
+        }
+        if(!this.seatCount.equals(carInfoVo.getSeatCount())){
+            return false;
+        }
+        if(!this.energyType.equals(carInfoVo.getEnergyType())){
+            return false;
+        }
+        if(!this.limitLoad.equals(carInfoVo.getLimitLoad())){
+            return false;
+        }
+        if(!this.cimodelclass.equals(carInfoVo.getCimodelclass())){
+            return false;
+        }
+        if(!this.outOfInsurance == carInfoVo.isOutOfInsurance()){
+            return false;
+        }
+        if(!this.ciCarName.equals(carInfoVo.getCiCarName())) {
+            return false;
+        }
+        return true;
+    }
+
+
+    public InsOrdersCarInfo(){
+
+    }
+
+    public InsOrdersCarInfo(CarInfoVo carInfoVo){
+        BeanUtils.copyProperties(carInfoVo,this);
+        this.setId(IdGenerate.nextId());
+    }
+
+    public void copyProperties(CarInfoVo carInfoVo){
+        BeanUtils.copyProperties(carInfoVo,this);
+    }
+
 }

+ 44 - 0
src/main/java/com/ydtech/modules/order/entity/po/InsOrdersCarUserInfo.java

@@ -3,7 +3,11 @@ package com.ydtech.modules.order.entity.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 com.ydtech.modules.ins.model.vo.CustomerInfoVo;
+import com.ydtech.utils.idgen.IdGenerate;
 import lombok.Data;
+import org.springframework.beans.BeanUtils;
 
 import java.io.Serializable;
 
@@ -70,4 +74,44 @@ public class InsOrdersCarUserInfo implements Serializable {
 //    private Date updateTime;
 
 
+    public boolean compare(CustomerInfoVo customerInfoVo){
+        if(!this.name.equals(customerInfoVo.getName())){
+            return false;
+        }
+        if(!this.identifyNumber.equals(customerInfoVo.getIdentifyNumber())){
+            return false;
+        }
+        if(!this.age.equals(customerInfoVo.getAge())){
+            return false;
+        }
+        if(!this.gender.equals(customerInfoVo.getGender())){
+            return false;
+        }
+        if(!this.addr.equals(customerInfoVo.getAddr())){
+            return false;
+        }
+        if(!this.identifyValidDate.equals(customerInfoVo.getIdentifyValidDate())){
+            return false;
+        }
+        if(!this.identifyValidEndDate.equals(customerInfoVo.getIdentifyValidEndDate())){
+            return false;
+        }
+        if(!this.mobile.equals(customerInfoVo.getMobile())){
+            return false;
+        }
+        return true;
+    }
+
+    public InsOrdersCarUserInfo(){
+
+    }
+
+    public InsOrdersCarUserInfo(CustomerInfoVo customerInfoVo){
+        BeanUtils.copyProperties(customerInfoVo,this);
+        this.setId(IdGenerate.nextId());
+    }
+
+    public void copyProperties(CustomerInfoVo customerInfoVo){
+        BeanUtils.copyProperties(customerInfoVo,this);
+    }
 }

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

@@ -35,13 +35,13 @@ public class InsOrdersKind implements Serializable {
      * 保额
      */
     @TableField(value = "amount")
-    private String amount;
+    private double amount;
 
     /**
      * 单位保额
      */
     @TableField(value = "unit_amount")
-    private String unitAmount;
+    private double unitAmount;
 
     /**
      * 险种编码
@@ -56,7 +56,7 @@ public class InsOrdersKind implements Serializable {
     private String kindName;
 
     @TableField(value = "service_times")
-    private String serviceTimes;
+    private Integer serviceTimes;
 
     /**
      * 附加绝对免赔率
@@ -73,8 +73,8 @@ public class InsOrdersKind implements Serializable {
 
     public InsOrdersKind(KindInfoVo kindInfoVo, String orderNo) {
         this.orderNo = orderNo;
-        this.amount = String.valueOf(kindInfoVo.getAmount());
-        this.unitAmount = String.valueOf(kindInfoVo.getUnitAmount());
+        this.amount = kindInfoVo.getAmount();
+        this.unitAmount = kindInfoVo.getUnitAmount();
         this.kindCode = kindInfoVo.getKindCode();
         this.kindName = kindInfoVo.getKindName();
         this.deductibleRate = kindInfoVo.getDeductibleRate();
@@ -86,8 +86,8 @@ public class InsOrdersKind implements Serializable {
 
     public KindInfoVo toKindInfoVo() {
         KindInfoVo kindInfoVo = new KindInfoVo();
-        kindInfoVo.setAmount(Double.parseDouble(this.amount));
-        kindInfoVo.setUnitAmount(Double.parseDouble(this.unitAmount));
+        kindInfoVo.setAmount(this.amount);
+        kindInfoVo.setUnitAmount(this.unitAmount);
         kindInfoVo.setKindCode(this.kindCode);
         kindInfoVo.setKindName(this.kindName);
         kindInfoVo.setDeductibleRate(this.deductibleRate);

+ 12 - 0
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyCarInfoService.java

@@ -2,6 +2,9 @@ package com.ydtech.modules.order.service;
 
 import com.ydtech.modules.order.entity.InsAreaCompanyCarInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.order.entity.InsOrders;
+
+import java.util.List;
 
 /**
  * 子订单车辆信息(InsAreaCompanyCarInfo)表服务接口
@@ -11,5 +14,14 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface InsAreaCompanyCarInfoService extends IService<InsAreaCompanyCarInfo> {
 
+    /**
+     * 获取车辆信息id
+     */
+    String getCarInfoId(String carInfoId);
+
+    /**
+     * 根据车架号获取车辆信息
+     */
+    List<InsAreaCompanyCarInfo> getCarInfoByFrameNo(String frameNo);
 
 }

+ 7 - 1
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyCarUserInfoService.java

@@ -3,14 +3,20 @@ package com.ydtech.modules.order.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.order.entity.InsAreaCompanyCarInfo;
 import com.ydtech.modules.order.entity.InsAreaCompanyCarUserInfo;
+import com.ydtech.modules.order.entity.InsOrders;
+
+import java.util.HashMap;
 
 /**
- * 子订单车辆信息(InsAreaCompanyCarInfo)表服务接口
+ * 子订单用户信息(InsAreaCompanyCarInfo)表服务接口
  *
  * @author tz
  * @since 2024-03-15 11:19:18
  */
 public interface InsAreaCompanyCarUserInfoService extends IService<InsAreaCompanyCarUserInfo> {
 
+    HashMap<String, String> getCarUserInfo(InsOrders insOrders);
+    HashMap<String,String> getCarUserInfo(InsAreaCompanyCarInfo insAreaCompanyCarInfo);
+
 
 }

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

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.service;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.order.entity.InsAreaCompanyKind;
 import com.ydtech.modules.order.entity.InsAreaCompanyRisk;
@@ -12,5 +13,6 @@ import com.ydtech.modules.order.entity.InsAreaCompanyRisk;
  */
 public interface InsAreaCompanyKindService extends IService<InsAreaCompanyKind> {
 
+    boolean saveKinds(String companyId, JSONArray kinds);
 
 }

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

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.service;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.order.entity.InsAreaCompanyCarUserInfo;
 import com.ydtech.modules.order.entity.InsAreaCompanyRisk;
@@ -12,5 +13,6 @@ import com.ydtech.modules.order.entity.InsAreaCompanyRisk;
  */
 public interface InsAreaCompanyRiskService extends IService<InsAreaCompanyRisk> {
 
+    boolean saveRisks(String companyId, JSONArray risks);
 
 }

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

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.service;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.order.entity.InsAreaCompanyRisk;
 import com.ydtech.modules.order.entity.InsAreaCompanyTaxArrears;
@@ -12,5 +13,6 @@ import com.ydtech.modules.order.entity.InsAreaCompanyTaxArrears;
  */
 public interface InsAreaCompanyTaxArrearsService extends IService<InsAreaCompanyTaxArrears> {
 
+    boolean saveTaxArrears(String companyId, JSONArray taxArrears);
 
 }

+ 9 - 0
src/main/java/com/ydtech/modules/order/service/InsOrdersCarUserInfoService.java

@@ -4,6 +4,9 @@ package com.ydtech.modules.order.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.order.entity.po.InsOrdersCarUserInfo;
 
+import java.util.HashMap;
+import java.util.List;
+
 public interface InsOrdersCarUserInfoService extends IService<InsOrdersCarUserInfo> {
 
     /**
@@ -19,6 +22,12 @@ public interface InsOrdersCarUserInfoService extends IService<InsOrdersCarUserIn
      * @return
      */
     InsOrdersCarUserInfo getCarUserInfoByIdCard(String idCard);
+
+
+    /**
+     * 获取orders表的 车主 投保 被保人信息
+     */
+    HashMap<String,String> getCarUserInfo(String ownerId, String applyId, String insureId);
 }
 
 

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

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.InsOrdersExcelVo;
+import com.ydtech.modules.ins.model.vo.QuoteInfoVo;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.InsAreaCompany;
@@ -143,4 +144,10 @@ public interface InsOrdersService extends IService<InsOrders> {
 
 
 //    InsOrdersBo queryInsOrdersBo(String orderNo);
+
+    /**
+     * 比对车辆与用户信息数据并更新关联
+     * @return
+     */
+    boolean compareAndUpdateLink(QuoteInfoVo quoteInfoVo);
 }

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

@@ -410,7 +410,6 @@ public class DaJiaOrderServiceImpl implements DaJiaOrderService {
             List<TaxArrears> taxArrearsList = Collections.singletonList(taxArrears);
             insAreaCompany.setTaxArrears(JSON.parseArray(JSON.toJSONString(taxArrearsList)));
         }
-
         insAreaCompanyService.insertCompanyAndOrders(insAreaCompany);
         //添加调用费用匹配功能
 //        feeRuleSchemeService.dealFeeOrderInfo(quoteInfoVo, quoteRespVo, ptlAgreementAttribution.getId(),

+ 41 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyCarInfoServiceImpl.java

@@ -1,14 +1,23 @@
 package com.ydtech.modules.order.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.exception.SystemException;
 import com.ydtech.modules.order.dao.InsAreaCompanyCarInfoMapper;
 import com.ydtech.modules.order.entity.InsAreaCompanyCarInfo;
+import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.po.InsOrdersCarInfo;
 import com.ydtech.modules.order.service.InsAreaCompanyCarInfoService;
+import com.ydtech.modules.order.service.InsOrdersCarInfoService;
 import com.ydtech.modules.xxl.service.InsAreaCompanyOldService;
+import com.ydtech.utils.idgen.IdGenerate;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 子订单车辆信息(InsAreaCompanyCarInfo)表服务实现类
@@ -19,4 +28,36 @@ import java.util.List;
 @Service
 public class InsAreaCompanyCarInfoServiceImpl  extends ServiceImpl<InsAreaCompanyCarInfoMapper, InsAreaCompanyCarInfo> implements InsAreaCompanyCarInfoService {
 
+    @Autowired
+    private InsOrdersCarInfoService insOrdersCarInfoService;
+
+    @Override
+    public String getCarInfoId(String carInfoId) {
+        InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getById(carInfoId);
+        //查找area_company_car_info表是否存在该车辆信息
+        List<InsAreaCompanyCarInfo> carInfoByFrameNo = this.getCarInfoByFrameNo(insOrdersCarInfo.getFrameNo());
+        //进行对比
+        List<InsAreaCompanyCarInfo> collect = carInfoByFrameNo.stream().filter(item -> {
+            return item.compare(insOrdersCarInfo);
+        }).collect(Collectors.toList());
+        //如果存在相同数据 就返回id
+        if(collect.size() > 0)
+        {
+            return collect.get(0).getId();
+        }else{
+            //插入一条新数据 并返回id
+            String carId = IdGenerate.nextId();
+            InsAreaCompanyCarInfo insAreaCompanyCarInfo = new InsAreaCompanyCarInfo();
+            BeanUtils.copyProperties(insOrdersCarInfo, insAreaCompanyCarInfo);
+            if(!this.save(insAreaCompanyCarInfo)){
+                throw new SystemException("保存车辆信息失败");
+            }
+            return carId;
+        }
+    }
+
+    @Override
+    public List<InsAreaCompanyCarInfo> getCarInfoByFrameNo(String frameNo) {
+        return this.list(new LambdaQueryWrapper<InsAreaCompanyCarInfo>().eq(InsAreaCompanyCarInfo::getFrameNo, frameNo));
+    }
 }

+ 61 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyCarUserInfoServiceImpl.java

@@ -1,13 +1,25 @@
 package com.ydtech.modules.order.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.order.dao.InsAreaCompanyCarUserInfoMapper;
 import com.ydtech.modules.order.entity.InsAreaCompanyCarInfo;
 import com.ydtech.modules.order.entity.InsAreaCompanyCarUserInfo;
+import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.po.InsOrdersCarUserInfo;
 import com.ydtech.modules.order.service.InsAreaCompanyCarInfoService;
 import com.ydtech.modules.order.service.InsAreaCompanyCarUserInfoService;
+import com.ydtech.modules.order.service.InsOrdersCarUserInfoService;
+import com.ydtech.utils.idgen.IdGenerate;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * 子订单车辆信息(InsAreaCompanyCarInfo)表服务实现类
  *
@@ -17,4 +29,53 @@ import org.springframework.stereotype.Service;
 @Service
 public class InsAreaCompanyCarUserInfoServiceImpl extends ServiceImpl<InsAreaCompanyCarUserInfoMapper, InsAreaCompanyCarUserInfo> implements InsAreaCompanyCarUserInfoService {
 
+    @Autowired
+    private InsOrdersCarUserInfoService insOrdersCarUserInfoService;
+
+    @Autowired
+    private InsAreaCompanyCarUserInfoService insAreaCompanyCarUserInfoService;
+
+    @Override
+    public HashMap<String, String> getCarUserInfo(InsOrders insOrders) {
+        //投保人 被保人 车主信息
+        List<String> userIds = new ArrayList<>();
+        userIds.add(insOrders.getOwnerId());
+        userIds.add(insOrders.getInsureId());
+        userIds.add(insOrders.getApplyId());
+        List<String> uniqueUserIds = userIds.stream().distinct().collect(Collectors.toList());
+
+        List<InsOrdersCarUserInfo> insOrdersCarUserInfos = insOrdersCarUserInfoService.list(new LambdaQueryWrapper<>(new InsOrdersCarUserInfo()).in(InsOrdersCarUserInfo::getId, uniqueUserIds));
+        HashMap<String,String> result = new HashMap<>();
+        insOrdersCarUserInfos.forEach(item -> {
+            String oldId = item.getId();
+            String newId = IdGenerate.nextId();
+            //车主信息
+            if(oldId.equals(insOrders.getOwnerId())){
+                result.put("ownerId",newId);
+                item.setId(newId);
+            }
+            //投保人信息
+            if(oldId.equals(insOrders.getApplyId())){
+                result.put("applyId",newId);
+                item.setId(newId);
+            }
+            //被保人信息
+            if(oldId.equals(insOrders.getInsureId())){
+                result.put("insureId",newId);
+                item.setId(newId);
+            }
+        });
+
+        insOrdersCarUserInfos.forEach(sysCarUserInfo -> {
+            InsAreaCompanyCarUserInfo insAreaCompanyCarUserInfo = new InsAreaCompanyCarUserInfo();
+            BeanUtils.copyProperties(sysCarUserInfo,insAreaCompanyCarUserInfo);
+            insAreaCompanyCarUserInfoService.save(insAreaCompanyCarUserInfo);
+        });
+        return result;
+    }
+
+    @Override
+    public HashMap<String, String> getCarUserInfo(InsAreaCompanyCarInfo insAreaCompanyCarInfo) {
+        return null;
+    }
 }

+ 14 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyKindServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.order.dao.InsAreaCompanyCarUserInfoMapper;
 import com.ydtech.modules.order.dao.InsAreaCompanyKindMapper;
@@ -7,8 +8,11 @@ import com.ydtech.modules.order.entity.InsAreaCompanyCarUserInfo;
 import com.ydtech.modules.order.entity.InsAreaCompanyKind;
 import com.ydtech.modules.order.service.InsAreaCompanyCarUserInfoService;
 import com.ydtech.modules.order.service.InsAreaCompanyKindService;
+import com.ydtech.utils.idgen.IdGenerate;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 子订单车辆信息(InsAreaCompanyCarInfo)表服务实现类
  *
@@ -18,4 +22,14 @@ import org.springframework.stereotype.Service;
 @Service
 public class InsAreaCompanyKindServiceImpl extends ServiceImpl<InsAreaCompanyKindMapper, InsAreaCompanyKind> implements InsAreaCompanyKindService {
 
+    @Override
+    public boolean saveKinds(String companyId, JSONArray kinds) {
+        List<InsAreaCompanyKind> kindList = JSONArray.parseArray(kinds.toJSONString(), InsAreaCompanyKind.class);
+        kindList.forEach(kind -> {
+            kind.setCompanyId(companyId);
+            kind.setId(IdGenerate.nextId());
+        });
+        this.saveBatch(kindList);
+        return true;
+    }
 }

+ 14 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyRiskServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.order.dao.InsAreaCompanyCarUserInfoMapper;
 import com.ydtech.modules.order.dao.InsAreaCompanyRiskMapper;
@@ -7,8 +8,11 @@ import com.ydtech.modules.order.entity.InsAreaCompanyCarUserInfo;
 import com.ydtech.modules.order.entity.InsAreaCompanyRisk;
 import com.ydtech.modules.order.service.InsAreaCompanyCarUserInfoService;
 import com.ydtech.modules.order.service.InsAreaCompanyRiskService;
+import com.ydtech.utils.idgen.IdGenerate;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 子订单车辆信息(InsAreaCompanyCarInfo)表服务实现类
  *
@@ -18,4 +22,14 @@ import org.springframework.stereotype.Service;
 @Service
 public class InsAreaCompanyRiskServiceImpl extends ServiceImpl<InsAreaCompanyRiskMapper, InsAreaCompanyRisk> implements InsAreaCompanyRiskService {
 
+    @Override
+    public boolean saveRisks(String companyId,JSONArray risks) {
+        List<InsAreaCompanyRisk> riskList = JSONArray.parseArray(risks.toJSONString(), InsAreaCompanyRisk.class);
+        riskList.forEach(risk -> {
+            risk.setCompanyId(companyId);
+            risk.setId(IdGenerate.nextId());
+        });
+        this.saveBatch(riskList);
+        return true;
+    }
 }

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

@@ -21,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -91,98 +92,26 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     public void insertCompanyAndOrders(InsAreaCompany insAreaCompany) {
         InsOrders insOrder = insOrdersService.getById(insAreaCompany.getOrderno());
         //车辆信息
-        String carInfoId = insOrder.getCarInfoId();
-        InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getById(carInfoId);
-        insOrdersCarInfo.setId(IdGenerate.nextId());
-        insAreaCompany.setCarInfoId(insOrdersCarInfo.getId());
+        String carInfoId = insAreaCompanyCarInfoService.getCarInfoId(insOrder.getCarInfoId());
+        insAreaCompany.setCarInfoId(carInfoId);
+
 
         //投保人 被保人 车主信息
-        List<String> userIds = new ArrayList<>();
-        userIds.add(insOrder.getOwnerId());
-        userIds.add(insOrder.getInsureId());
-        userIds.add(insOrder.getApplyId());
-        List<String> uniqueUserIds = userIds.stream().distinct().collect(Collectors.toList());
-
-        List<InsOrdersCarUserInfo> insOrdersCarUserInfos = insOrdersCarUserInfoService.list(new LambdaQueryWrapper<>(new InsOrdersCarUserInfo()).in(InsOrdersCarUserInfo::getId, uniqueUserIds));
-
-        insOrdersCarUserInfos.forEach(item -> {
-            String id = item.getId();
-            //车主信息
-            if(id.equals(insOrder.getOwnerId())){
-                insAreaCompany.setOwnerId(item.getId());
-            }
-            //投保人信息
-            if(id.equals(insOrder.getApplyId())){
-                insAreaCompany.setApplyId(item.getId());
-            }
-            //被保人信息
-            if(id.equals(insOrder.getInsureId())){
-                insAreaCompany.setInsureId(item.getId());
-            }
-        });
-
-
-        //保存车辆信息
-        InsAreaCompanyCarInfo insAreaCompanyCarInfo = new InsAreaCompanyCarInfo();
-        BeanUtils.copyProperties(insOrdersCarInfo,insAreaCompanyCarInfo);
-        insAreaCompanyCarInfoService.save(insAreaCompanyCarInfo);
-
-
-        //保存用户信息
-        for(int i = 0; i< insOrdersCarUserInfos.size(); i++){
-            String ownerId = insAreaCompany.getOwnerId();
-            String applyId = insAreaCompany.getApplyId();
-            String insureId = insAreaCompany.getInsureId();
-            String newId = IdGenerate.nextId();
-            if(insOrdersCarUserInfos.get(i).getId().equals(ownerId)){
-                insAreaCompany.setOwnerId(newId);
-            }
-            if(insOrdersCarUserInfos.get(i).getId().equals(applyId)){
-                insAreaCompany.setApplyId(newId);
-            }
-            if(insOrdersCarUserInfos.get(i).getId().equals(insureId)){
-                insAreaCompany.setInsureId(newId);
-            }
-            insOrdersCarUserInfos.get(i).setId(newId);
-        }
-        insOrdersCarUserInfos.forEach(sysCarUserInfo -> {
-            InsAreaCompanyCarUserInfo insAreaCompanyCarUserInfo = new InsAreaCompanyCarUserInfo();
-            BeanUtils.copyProperties(sysCarUserInfo,insAreaCompanyCarUserInfo);
-            insAreaCompanyCarUserInfoService.save(insAreaCompanyCarUserInfo);
-        });
+        HashMap<String,String> areaCompanyUserMap = insOrdersCarUserInfoService.getCarUserInfo(insOrder.getOwnerId(), insOrder.getApplyId(), insOrder.getInsureId());
+        insAreaCompany.setOwnerId(areaCompanyUserMap.get("ownerId"));
+        insAreaCompany.setApplyId(areaCompanyUserMap.get("applyId"));
+        insAreaCompany.setInsureId(areaCompanyUserMap.get("insureId"));
 
-        baseMapper.insert(insAreaCompany);
         //添加risk
-        if(!Objects.isNull(insAreaCompany.getRiskinfo())){
-            List<InsAreaCompanyRisk> riskList = JSONArray.parseArray(insAreaCompany.getRiskinfo().toJSONString(), InsAreaCompanyRisk.class);
-            riskList.forEach(risk -> {
-                risk.setCompanyId(insAreaCompany.getId());
-                risk.setId(IdGenerate.nextId());
-            });
-            insAreaCompanyRiskService.saveBatch(riskList);
-        }
+        insAreaCompanyRiskService.saveRisks(insAreaCompany.getId(),insAreaCompany.getRiskinfo());
 
         //添加kind
-        if(!Objects.isNull(insAreaCompany.getKindinfo())){
-            List<InsAreaCompanyKind> kindList = JSONArray.parseArray(insAreaCompany.getKindinfo().toJSONString(), InsAreaCompanyKind.class);
-            kindList.forEach(kind -> {
-                kind.setCompanyId(insAreaCompany.getId());
-                kind.setId(IdGenerate.nextId());
-            });
-            insAreaCompanyKindService.saveBatch(kindList);
-        }
+        insAreaCompanyKindService.saveKinds(insAreaCompany.getId(),insAreaCompany.getKindinfo());
 
         //添加tax
-        if(!Objects.isNull(insAreaCompany.getTaxArrears())){
-            JSONArray taxArrears = insAreaCompany.getTaxArrears();
-            List<InsAreaCompanyTaxArrears> insAreaCompanyTaxArrears = JSONArray.parseArray(taxArrears.toJSONString(), InsAreaCompanyTaxArrears.class);
-            insAreaCompanyTaxArrears.forEach(tax -> {
-                tax.setCompanyId(insAreaCompany.getId());
-                tax.setId(IdGenerate.nextId());
-            });
-            insAreaCompanyTaxArrearsService.saveBatch(insAreaCompanyTaxArrears);
-        }
+        insAreaCompanyTaxArrearsService.saveTaxArrears(insAreaCompany.getId(),insAreaCompany.getTaxArrears());
 
+        this.save(insAreaCompany);
         insOrdersTrackService.addingTrajectories(insAreaCompany);
         insOrdersService.updateByOrderStatus(insAreaCompany);
     }

+ 14 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyTaxArrearsServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.order.dao.InsAreaCompanyRiskMapper;
 import com.ydtech.modules.order.dao.InsAreaCompanyTaxArrearsMapper;
@@ -7,8 +8,11 @@ import com.ydtech.modules.order.entity.InsAreaCompanyRisk;
 import com.ydtech.modules.order.entity.InsAreaCompanyTaxArrears;
 import com.ydtech.modules.order.service.InsAreaCompanyRiskService;
 import com.ydtech.modules.order.service.InsAreaCompanyTaxArrearsService;
+import com.ydtech.utils.idgen.IdGenerate;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 子订单车辆信息(InsAreaCompanyCarInfo)表服务实现类
  *
@@ -18,4 +22,14 @@ import org.springframework.stereotype.Service;
 @Service
 public class InsAreaCompanyTaxArrearsServiceImpl extends ServiceImpl<InsAreaCompanyTaxArrearsMapper, InsAreaCompanyTaxArrears> implements InsAreaCompanyTaxArrearsService {
 
+    @Override
+    public boolean saveTaxArrears(String companyId, JSONArray taxArrears) {
+        List<InsAreaCompanyTaxArrears> insAreaCompanyTaxArrears = JSONArray.parseArray(taxArrears.toJSONString(), InsAreaCompanyTaxArrears.class);
+        insAreaCompanyTaxArrears.forEach(tax -> {
+            tax.setCompanyId(companyId);
+            tax.setId(IdGenerate.nextId());
+        });
+        this.saveBatch(insAreaCompanyTaxArrears);
+        return true;
+    }
 }

+ 60 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersCarUserInfoServiceImpl.java

@@ -2,18 +2,31 @@ package com.ydtech.modules.order.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.order.entity.InsAreaCompanyCarUserInfo;
+import com.ydtech.modules.order.entity.po.InsOrdersCarInfo;
+import com.ydtech.modules.order.service.InsAreaCompanyCarUserInfoService;
 import com.ydtech.modules.order.service.InsOrdersCarUserInfoService;
 import com.ydtech.modules.order.entity.po.InsOrdersCarUserInfo;
 import com.ydtech.modules.order.dao.InsOrdersCarUserInfoMapper;
+import com.ydtech.utils.idgen.IdGenerate;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 
 @Service
 public class InsOrdersCarUserInfoServiceImpl extends ServiceImpl<InsOrdersCarUserInfoMapper, InsOrdersCarUserInfo>
         implements InsOrdersCarUserInfoService {
 
+    @Autowired
+    private InsAreaCompanyCarUserInfoService insAreaCompanyCarUserInfoService;
+
     /**
      * 是否存在车主用户信息
      * @param idCard 身份证号
@@ -35,6 +48,53 @@ public class InsOrdersCarUserInfoServiceImpl extends ServiceImpl<InsOrdersCarUse
         return baseMapper.selectOne(new LambdaQueryWrapper<InsOrdersCarUserInfo>()
                 .eq(InsOrdersCarUserInfo::getIdentifyNumber, idCard));
     }
+
+    @Override
+    public HashMap<String,String> getCarUserInfo(String ownerId, String applyId, String insureId) {
+        HashMap<String,String> result = new HashMap<>();
+        List<String> userIds = new ArrayList<>();
+        userIds.add(ownerId);
+        userIds.add(applyId);
+        userIds.add(insureId);
+        List<String> uniqueUserIds = userIds.stream().distinct().collect(Collectors.toList());
+        List<InsOrdersCarUserInfo> insOrdersCarUserInfos = this.list(new LambdaQueryWrapper<>(new InsOrdersCarUserInfo()).in(InsOrdersCarUserInfo::getId, uniqueUserIds));
+
+        List<String> idCards = new ArrayList<>();
+        insOrdersCarUserInfos.forEach(item->{
+            idCards.add(item.getIdentifyNumber());
+        });
+
+        List<InsAreaCompanyCarUserInfo> areaCompanyCarUserInfos = insAreaCompanyCarUserInfoService.list(new LambdaQueryWrapper<InsAreaCompanyCarUserInfo>().in(InsAreaCompanyCarUserInfo::getIdentifyNumber, idCards));
+
+        insOrdersCarUserInfos.forEach(item->{
+            String id = "";
+
+            InsAreaCompanyCarUserInfo insAreaCompanyCarUserInfo = new InsAreaCompanyCarUserInfo();
+            if(areaCompanyCarUserInfos.size() != 0){
+                insAreaCompanyCarUserInfo = areaCompanyCarUserInfos.stream().filter(x -> x.getIdentifyNumber().equals(item.getIdentifyNumber())).findFirst().get();
+                id = insAreaCompanyCarUserInfo.getId();
+            }
+
+            //如果被修改 则插入新的信息
+            if(!insAreaCompanyCarUserInfo.compare(item)){
+                id = IdGenerate.nextId();
+                InsAreaCompanyCarUserInfo areaCompanyCarUserInfo = new InsAreaCompanyCarUserInfo();
+                BeanUtils.copyProperties(item,areaCompanyCarUserInfo);
+                areaCompanyCarUserInfo.setId(id);
+                insAreaCompanyCarUserInfoService.save(areaCompanyCarUserInfo);
+            }
+            if(item.getId().equals(ownerId)){
+                result.put("ownerId",id);
+            }
+            if(item.getId().equals(applyId)){
+                result.put("applyId",id);
+            }
+            if(item.getId().equals(insureId)){
+                result.put("insureId",id);
+            }
+        });
+        return result;
+    }
 }
 
 

+ 53 - 57
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -690,7 +690,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
         //获取车辆信息
         InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getById(insOrders.getCarInfoId());
-        insOrdersEditingVo.setCarinfo(insOrdersCarInfo);
+//        insOrdersEditingVo.setCarinfo(insOrdersCarInfo);
         //获取车主信息
         InsOrdersCarUserInfo ownerInfo = new InsOrdersCarUserInfo();
         InsOrdersCarUserInfo applyInfo = new InsOrdersCarUserInfo();
@@ -798,78 +798,70 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Transactional
     public void updateInsOrders(InsOrdersBo insOrdersBo) {
         InsOrders insOrders = new InsOrders(insOrdersBo);
-        //先查找车信息
+        //先查找车信息
         CarInfoVo carinfo = insOrdersBo.getCarinfo();
-        //是否存在车主信息
         InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getCarInfoByFrameNo(carinfo.getFrameNo());
         if(Objects.isNull(insOrdersCarInfo)){
-            BeanUtils.copyProperties(carinfo, insOrdersCarInfo);
-            insOrders.setCarInfoId(IdGenerate.nextId());
-            insOrdersCarInfoService.save(insOrdersCarInfo);
+            InsOrdersCarInfo ordersCarInfo = new InsOrdersCarInfo(carinfo);
+            insOrders.setCarInfoId(ordersCarInfo.getId());
+            insOrdersCarInfoService.save(ordersCarInfo);
         }else{
-            insOrders.setCarInfoId(insOrdersCarInfo.getId());
-            insOrdersCarInfoService.updateById(insOrdersCarInfo);
+            //判断是否修改数据
+            if(!insOrdersCarInfo.compare(carinfo)){
+                insOrdersCarInfo.copyProperties(carinfo);
+                insOrdersCarInfoService.updateById(insOrdersCarInfo);
+            }
         }
 
         //更新车主信息
-        CustomerInfoVo ownerinfo = insOrdersBo.getOwnerinfo();
-        InsOrdersCarUserInfo ownerUserInfo = insOrdersCarUserInfoService.getCarUserInfoByIdCard(ownerinfo.getIdentifyNumber());
+        CustomerInfoVo ownerInfo = insOrdersBo.getOwnerinfo();
+        InsOrdersCarUserInfo ownerUserInfo = insOrdersCarUserInfoService.getCarUserInfoByIdCard(ownerInfo.getIdentifyNumber());
         //如果车主信息不存在 添加一条
         if(Objects.isNull(ownerUserInfo)) {
-            BeanUtils.copyProperties(ownerinfo, ownerUserInfo);
-            ownerUserInfo.setId(IdGenerate.nextId());
-            insOrders.setOwnerId(ownerUserInfo.getId());
-            insOrdersCarUserInfoService.save(ownerUserInfo);
+            InsOrdersCarUserInfo ordersCarUserInfo = new InsOrdersCarUserInfo(ownerInfo);
+            insOrders.setOwnerId(ordersCarUserInfo.getId());
+            insOrdersCarUserInfoService.save(ordersCarUserInfo);
         }else{
-            insOrders.setOwnerId(ownerUserInfo.getId());
-            insOrdersCarUserInfoService.updateById(ownerUserInfo);
-        }
-
-        //投保人信息和车主是否一致
-        CustomerInfoVo applyinfo = insOrdersBo.getApplyinfo();
-        InsOrdersCarUserInfo applyUserInfo;
-        if(!applyinfo.isOwner()){
-            //查询投保人信息
-            applyUserInfo = insOrdersCarUserInfoService.getCarUserInfoByIdCard(applyinfo.getIdentifyNumber());
-            //投保人信息是否存在
-            if(Objects.isNull(applyUserInfo)){
-                BeanUtils.copyProperties(applyinfo, applyUserInfo);
-                applyUserInfo.setId(IdGenerate.nextId());
-                insOrders.setApplyId(applyUserInfo.getId());
-                insOrdersCarUserInfoService.save(applyUserInfo);
-            }else{
-                insOrders.setApplyId(applyUserInfo.getId());
-                insOrdersCarUserInfoService.updateById(applyUserInfo);
+            //是否更新数据
+            if(!ownerUserInfo.compare(ownerInfo)){
+                ownerUserInfo.copyProperties(ownerInfo);
+                insOrdersCarUserInfoService.updateById(ownerUserInfo);
             }
-        }else{
-            insOrders.setApplyId(ownerUserInfo.getId());
-            applyUserInfo = ownerUserInfo;
         }
 
-        //更新被保人信息
+
+        CustomerInfoVo applyInfo = insOrdersBo.getApplyinfo();
         CustomerInfoVo insureInfo = insOrdersBo.getInsureinfo();
-        if(insureInfo.isOwner() || insureInfo.isInsuranceHolder()){
-            if(insureInfo.isOwner()){
-                insOrders.setInsureId(ownerUserInfo.getId());
-            }
-            if(insureInfo.isInsuranceHolder()){
-                insOrders.setInsureId(applyUserInfo.getId());
-            }
-        }else{
-            //查询被保人信息
-            InsOrdersCarUserInfo insureUserInfo = insOrdersCarUserInfoService.getCarUserInfoByIdCard(insureInfo.getIdentifyNumber());
-            //被保人信息是否存在
-            if(Objects.isNull(insureUserInfo)){
-                BeanUtils.copyProperties(insureInfo, insureUserInfo);
-                insureUserInfo.setId(IdGenerate.nextId());
-                insOrders.setInsureId(insureUserInfo.getId());
-                insOrdersCarUserInfoService.save(insureUserInfo);
-            }else{
-                insOrders.setInsureId(insureUserInfo.getId());
-                insOrdersCarUserInfoService.updateById(insureUserInfo);
-            }
+        //投保人 和 被保人 是否和车主一致
+        if(applyInfo.isOwner() && insureInfo.isOwner()){
+            insOrders.setApplyId(ownerUserInfo.getId());
+            insOrders.setInsureId(ownerUserInfo.getId());
         }
 
+//        //更新被保人信息
+//        CustomerInfoVo insureInfo = insOrdersBo.getInsureinfo();
+//        if(insureInfo.isOwner() || insureInfo.isInsuranceHolder()){
+//            if(insureInfo.isOwner()){
+//                insOrders.setInsureId(ownerUserInfo.getId());
+//            }
+//            if(insureInfo.isInsuranceHolder()){
+//                insOrders.setInsureId(applyUserInfo.getId());
+//            }
+//        }else{
+//            //查询被保人信息
+//            InsOrdersCarUserInfo insureUserInfo = insOrdersCarUserInfoService.getCarUserInfoByIdCard(insureInfo.getIdentifyNumber());
+//            //被保人信息是否存在
+//            if(Objects.isNull(insureUserInfo)){
+//                BeanUtils.copyProperties(insureInfo, insureUserInfo);
+//                insureUserInfo.setId(IdGenerate.nextId());
+//                insOrders.setInsureId(insureUserInfo.getId());
+//                insOrdersCarUserInfoService.save(insureUserInfo);
+//            }else{
+//                insOrders.setInsureId(insureUserInfo.getId());
+//                insOrdersCarUserInfoService.updateById(insureUserInfo);
+//            }
+//        }
+
         //更新risk
         List<RiskInfoVo> riskInfoVos = insOrdersBo.getRisk();
         List<InsOrdersRisk> insOrdersRisks = new ArrayList<>();
@@ -929,6 +921,10 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
     }
 
+    @Override
+    public boolean compareAndUpdateLink(QuoteInfoVo quoteInfoVo) {
+        return false;
+    }
 
 
     @Override

+ 3 - 3
src/main/java/com/ydtech/modules/xxl/model/InsAreaCompanyOld.java

@@ -118,13 +118,13 @@ public class InsAreaCompanyOld implements Serializable {
     /**
      * 交强险商业险
      */
-    @TableField(exist = false, typeHandler = FastjsonTypeHandler.class)
+    @TableField(value = "riskinfo", typeHandler = FastjsonTypeHandler.class)
     private JSONArray riskinfo;
 
     /**
      * 商业险信息
      */
-    @TableField(exist = false, typeHandler = FastjsonTypeHandler.class)
+    @TableField(value = "kindinfo", typeHandler = FastjsonTypeHandler.class)
     private JSONArray kindinfo;
 
     /**
@@ -244,7 +244,7 @@ public class InsAreaCompanyOld implements Serializable {
     /**
      * 欠税
      */
-    @TableField(exist = false, typeHandler = FastjsonTypeHandler.class)
+    @TableField(value = "tax_arrears", typeHandler = FastjsonTypeHandler.class)
     private JSONArray taxArrears;
 
     /**

+ 4 - 5
src/main/resources/mapper/modules/order/InsOrdersMapper.xml

@@ -351,10 +351,10 @@
         a.orderno,
         a.licenseno,
         a.frameno,
-        a.carinfo,
+        a.car_info_id,
         b.api_type,
         b.score,
-        a.ownerinfo,
+        a.owner_id,
         b.jqpremium,
         b.jqpolicyno,
         b.sypremium,
@@ -376,9 +376,8 @@
         b.agreement_id,
         a.userid,
         a.username,
-        a.applyinfo,
-        a.insureinfo,
-        b.kindinfo,
+        a.apply_id,
+        a.insure_id,
         b.pay_date,
         b.signing_time,
         b.cross_insurance