فهرست منبع

报价生成订单

Qchen 1 سال پیش
والد
کامیت
e215806a7f
20فایلهای تغییر یافته به همراه279 افزوده شده و 28 حذف شده
  1. 9 0
      commons/src/main/java/com/jzg/commons/constants/CompanyConstants.java
  2. 1 0
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrders.java
  3. 2 2
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersCarInfo.java
  4. 5 1
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersCarUserInfo.java
  5. 2 0
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersCosts.java
  6. 0 5
      commons/src/main/java/com/jzg/commons/entity/quote/vo/CarInfoVo.java
  7. 10 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/ProductsType.java
  8. 25 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/UnderwritingResultsVo.java
  9. 20 4
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java
  10. 2 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/decorator/QuoteDispatchDecorator.java
  11. 9 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersCarInfoService.java
  12. 9 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersCarUserInfoService.java
  13. 2 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersCostsService.java
  14. 7 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersService.java
  15. 55 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersCarInfoServiceImpl.java
  16. 40 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersCarUserInfoServiceImpl.java
  17. 8 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersCostsServiceImpl.java
  18. 58 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java
  19. 14 2
      tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/entity/request/YangGuangSubmitRequest.java
  20. 1 14
      tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/service/impl/YangGuangApiRequestImpl.java

+ 9 - 0
commons/src/main/java/com/jzg/commons/constants/CompanyConstants.java

@@ -83,4 +83,13 @@ public enum CompanyConstants {
     
     public final String companyCode;
     public final String companyName;
+
+    public static String getCompanyNameByCode(String companyCode) {
+        for (CompanyConstants companyConstant : CompanyConstants.values()) {
+            if (companyConstant.companyCode.equals(companyCode)) {
+                return companyConstant.companyName;
+            }
+        }
+        return null;
+    }
 }

+ 1 - 0
commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrders.java

@@ -83,4 +83,5 @@ public class InsOrders extends BaseModel {
     @Schema(description = "审核意见")
     private String auditComments;
 
+
 }

+ 2 - 2
commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersCarInfo.java

@@ -91,6 +91,6 @@ public class InsOrdersCarInfo extends BaseModel {
     @Schema(description = "是否过户")
     private String transfer;
 
-    @Schema(description = "车辆所属性质 1个人 2企业 3机关")
-    private String property;
+    @Schema(description = "是否商业过户")
+    private String transferBi;
 }

+ 5 - 1
commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersCarUserInfo.java

@@ -1,5 +1,7 @@
 package com.jzg.commons.entity.orders.po;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jzg.commons.core.base.BaseModel;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -11,7 +13,9 @@ import java.time.LocalDateTime;
 @Data
 @Schema(description = "订单人员信息表")
 public class InsOrdersCarUserInfo extends BaseModel {
-
+    @Schema(description = "主键id")
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
     @Schema(description = "订单号")
     private Long orderNo;
 

+ 2 - 0
commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersCosts.java

@@ -1,5 +1,7 @@
 package com.jzg.commons.entity.orders.po;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import org.springframework.data.annotation.Id;

+ 0 - 5
commons/src/main/java/com/jzg/commons/entity/quote/vo/CarInfoVo.java

@@ -147,10 +147,6 @@ public class CarInfoVo implements Serializable {
      * 是否贷款车 true 贷款车
      */
     private boolean loanStatus;
-    /* *
-     * 所属性质(1个人 2企业 3机关)
-     */
-    private String property;
     /**
      * 新能源标志 true 新能源
      */
@@ -188,5 +184,4 @@ public class CarInfoVo implements Serializable {
      * 排量(单位:升(L),能源种类为燃油时必传
      */
     private String displacement;
-
 }

+ 10 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/ProductsType.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.commons.constant.enums.base;
 
+import com.jzg.commons.constants.CompanyConstants;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
@@ -23,5 +24,14 @@ public enum ProductsType {
     // 说明
     private final String desc;
 
+    public static String getProductNameByCode(String code) {
+        for (ProductsType productsType : ProductsType.values()) {
+            if (productsType.code.equals(code)) {
+                return productsType.desc;
+            }
+        }
+        return null;
+    }
+
 
 }

+ 25 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/UnderwritingResultsVo.java

@@ -0,0 +1,25 @@
+package com.jzg.quotation.commons.entity.vo.aggregated;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @description: 核保 返回结果
+ * @author quchen
+ * @date 2025/3/26 10:24
+ */
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Data
+public class UnderwritingResultsVo implements Serializable {
+    /**
+     * 交互唯一订单
+     */
+    private String ordersNo;
+
+
+}

+ 20 - 4
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java

@@ -4,15 +4,15 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.orders.po.InsOrders;
+import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
+import com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
 import com.jzg.quotation.commons.entity.vo.aggregated.UnderwritingVo;
 import com.jzg.quotation.commons.service.QuotationApiBaseService;
 import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.summary.factory.CompanyFactory;
-import com.jzg.quotation.summary.service.InsOrdersService;
-import com.jzg.quotation.summary.service.SysQuoteConfigService;
-import com.jzg.quotation.summary.service.SysQuoteRedisService;
+import com.jzg.quotation.summary.service.*;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 @RestController
 @RequestMapping("/unify/order")
 @Tag(name = "统一订单报价管理")
@@ -45,6 +47,12 @@ public class UnifyOrderManager {
     @Autowired
     InsOrdersService insOrdersService;
 
+    @Autowired
+    InsOrdersCarInfoService insOrdersCarInfoService;
+
+    @Autowired
+    InsOrdersCarUserInfoService insOrdersCarUserInfoService;
+
     /**
      * 统一报价
      * @param quoteVo
@@ -59,6 +67,7 @@ public class UnifyOrderManager {
                 platformClient,
                 baseController);
         // 生成订单
+        insOrdersService.generateOrders(quoteVo);
 
 
         // 报价
@@ -67,6 +76,8 @@ public class UnifyOrderManager {
         // 报价后更新订单
 
 
+
+
         return HttpResult.ok(quote);
     }
 
@@ -78,7 +89,12 @@ public class UnifyOrderManager {
                 sysQuoteConfigService,sysQuoteRedisService,
                 platformClient,
                 baseController);
-
+        InsOrders insOrders = insOrdersService.getById(underwritingVo.getOrder().getOrdersNo());
+        InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getByOrderId(insOrders.getId());
+        List<InsOrdersCarUserInfo> insOrdersCarUserInfos = insOrdersCarUserInfoService.getByOrderId(insOrders.getId());
+        underwritingVo.setInsOrders(insOrders);
+        underwritingVo.setInsOrdersCarInfo(insOrdersCarInfo);
+        underwritingVo.setInsOrdersCarUserInfoList(insOrdersCarUserInfos);
         quoteService.underwriting(underwritingVo);
         return HttpResult.ok();
     }

+ 2 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/decorator/QuoteDispatchDecorator.java

@@ -52,6 +52,8 @@ public class QuoteDispatchDecorator implements QuotationApiBaseService {
         String token = baseController.getToken();
         HttpResult<PtlAgreementAttribution> agreementAttribution = platformClient.getAgreementAttribution(agreementId,token);
         AssertionUtils.isFail(agreementAttribution.getCode() == 500,"获取协议属性失败");
+        // API类型设置
+        quoteVo.getOrder().setApiType(Integer.parseInt(agreementAttribution.getData().getApiType()));
         Map<String, String> fieldMap = agreementAttribution.getData().getFields().stream()
                 .map(obj -> new JSONObject((Map<String, Object>) obj))  // 转换为 JSONObject
                 .collect(Collectors.toMap(

+ 9 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersCarInfoService.java

@@ -1,7 +1,16 @@
 package com.jzg.quotation.summary.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
+import com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo;
+import com.jzg.commons.entity.quote.vo.CarInfoVo;
+
+import java.time.format.DateTimeFormatter;
+import java.util.List;
 
 public interface InsOrdersCarInfoService extends IService<InsOrdersCarInfo> {
+    InsOrdersCarInfo createCarInfo(InsOrders insOrders, CarInfoVo carInfoVo, DateTimeFormatter formatter);
+
+    InsOrdersCarInfo getByOrderId(Long orderId);
 }

+ 9 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersCarUserInfoService.java

@@ -1,7 +1,16 @@
 package com.jzg.quotation.summary.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
 import com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo;
+import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
+
+import java.time.format.DateTimeFormatter;
+import java.util.List;
 
 public interface InsOrdersCarUserInfoService extends IService<InsOrdersCarUserInfo> {
+    InsOrdersCarUserInfo createUserInfo(Long orderNo, CustomerInfoVo customerInfoVo, DateTimeFormatter formatter);
+
+
+    List<InsOrdersCarUserInfo> getByOrderId(Long orderId);
 }

+ 2 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersCostsService.java

@@ -1,7 +1,9 @@
 package com.jzg.quotation.summary.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCosts;
 
 public interface InsOrdersCostsService extends IService<InsOrdersCosts> {
+    InsOrdersCosts createCosts(InsOrders insOrders);
 }

+ 7 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersService.java

@@ -8,6 +8,7 @@ import com.jzg.commons.entity.dto.InsOrdersParam;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.vo.InsOrdersVo;
 import com.jzg.commons.entity.vo.OrdersListVo;
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
 
 public interface InsOrdersService extends IService<InsOrders> {
 
@@ -23,6 +24,12 @@ public interface InsOrdersService extends IService<InsOrders> {
 
     HttpResult updateOrders(InsOrdersAdd ordersAdd);
 
+    /**
+     * 根据报价参数生成订单
+     */
+
+    void generateOrders(QuoteVo quoteVo);
+
 
 
 

+ 55 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersCarInfoServiceImpl.java

@@ -1,11 +1,66 @@
 package com.jzg.quotation.summary.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
+import com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo;
+import com.jzg.commons.entity.po.SysUserJzgInfo;
+import com.jzg.commons.entity.quote.vo.CarInfoVo;
 import com.jzg.quotation.summary.mapper.InsOrdersCarInfoMapper;
 import com.jzg.quotation.summary.service.InsOrdersCarInfoService;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
 @Service
 public class InsOrdersCarInfoServiceImpl extends ServiceImpl<InsOrdersCarInfoMapper, InsOrdersCarInfo> implements InsOrdersCarInfoService {
+
+    @Override
+    public InsOrdersCarInfo createCarInfo(InsOrders insOrders, CarInfoVo carInfoVo, DateTimeFormatter formatter) {
+        InsOrdersCarInfo info = new InsOrdersCarInfo();
+        info.setOrderNo(insOrders.getId());
+        info.setBrandName(carInfoVo.getBrandName());
+        info.setLicenseNo(carInfoVo.getLicenseNo());
+        info.setIsRegistered(carInfoVo.getLicenseNo() == null
+                || carInfoVo.getLicenseNo().isEmpty() ? 1 : 0);
+        info.setVinNo(carInfoVo.getVinNo());
+        info.setEngineNo(carInfoVo.getEngineNo());
+        info.setCarYear(carInfoVo.getCarYear());
+        info.setDisplacement(carInfoVo.getDisplacement());
+        info.setSeatCount(Integer.parseInt(carInfoVo.getSeatCount()));
+        info.setCompleteKerbMass(new BigDecimal(carInfoVo.getCompleteKerbMass()));
+        info.setLimitLoad(new BigDecimal(carInfoVo.getLimitLoad()));
+        info.setPowerScale(new BigDecimal(carInfoVo.getPowerScale()));
+        info.setPurchasePrice(new BigDecimal(carInfoVo.getPurchasePrice()));
+        info.setCarNatureCode(carInfoVo.getCarNatureCode());
+        info.setVehicleUseCode(carInfoVo.getVehicleUseCode());
+        info.setCarTypeCode(carInfoVo.getCarTypeCode());
+        info.setCarKindCode(carInfoVo.getCarKindCode());
+        info.setEnergyTypeCode(carInfoVo.getEnergyTypeCode());
+        info.setPropertyCode(carInfoVo.getPropertyCode());
+        info.setLicenseColorCode(carInfoVo.getLicenseColorCode());
+        info.setCarKindDetailIdCode(carInfoVo.getCarKindDetailIdCode());
+        info.setLicenseKindCode(carInfoVo.getLicenseKindCode());
+        info.setRegisterDate(LocalDateTime.parse(carInfoVo.getRegisterDate(),formatter));
+        info.setIssueDate(LocalDateTime.parse(carInfoVo.getIssueDate(),formatter));
+        info.setTransfer(carInfoVo.isTransfer() ? "1" : "0");
+        if (info.getTransfer().equals("1")) {
+            info.setTransferDate(LocalDateTime.parse(carInfoVo.getTransferDate(),formatter));
+        } else {
+            info.setTransferDate(null);
+        }
+        info.setTransferBi(carInfoVo.isBiTransfer() ? "1" : "0");
+        this.save(info);
+        return info;
+    }
+
+    @Override
+    public InsOrdersCarInfo getByOrderId(Long orderId) {
+        return baseMapper.selectOne(new LambdaQueryWrapper<InsOrdersCarInfo>()
+                .eq(InsOrdersCarInfo::getOrderNo, orderId));
+    }
 }

+ 40 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersCarUserInfoServiceImpl.java

@@ -1,11 +1,51 @@
 package com.jzg.quotation.summary.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
 import com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo;
+import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
 import com.jzg.quotation.summary.mapper.InsOrdersCarUserInfoMapper;
 import com.jzg.quotation.summary.service.InsOrdersCarUserInfoService;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
 @Service
 public class InsOrdersCarUserInfoServiceImpl extends ServiceImpl<InsOrdersCarUserInfoMapper, InsOrdersCarUserInfo> implements InsOrdersCarUserInfoService {
+    @Override
+    public InsOrdersCarUserInfo createUserInfo(Long orderNo, CustomerInfoVo customerInfoVo, DateTimeFormatter formatter) {
+        InsOrdersCarUserInfo info = new InsOrdersCarUserInfo();
+        info.setOrderNo(orderNo);
+        info.setPolicyPersonType(1); // 车主
+        info.setPersonType(Integer.parseInt(customerInfoVo.getProperty()));
+        info.setName(customerInfoVo.getName());
+        info.setIdentifyNumber(customerInfoVo.getIdentifyNumber());
+        info.setAge(Integer.parseInt(customerInfoVo.getAge()));
+        info.setGender(customerInfoVo.getGender());
+        info.setAddr(customerInfoVo.getAddr());
+        info.setIdentifyValidDate(LocalDateTime.parse(customerInfoVo.getIdentifyValidDate(), formatter));
+        info.setIdentifyValidEndDate(LocalDateTime.parse(customerInfoVo.getIdentifyValidEndDate(), formatter));
+        info.setMobile(customerInfoVo.getMobile());
+        info.setEmail(customerInfoVo.getEmail());
+
+        if (customerInfoVo.getProperty().equals("1")) {
+            info.setCerType(1); // 个人
+        } else {
+            info.setCerType(2); // 法人
+            info.setProvinceCode(customerInfoVo.getProvinceCode());
+            info.setCityCode(customerInfoVo.getCityCode());
+            info.setCountyCode(customerInfoVo.getCountyCode());
+        }
+        return info;
+    }
+
+    @Override
+    public List<InsOrdersCarUserInfo> getByOrderId(Long orderId) {
+        return baseMapper.selectList(new LambdaQueryWrapper<InsOrdersCarUserInfo>().eq(InsOrdersCarUserInfo::getOrderNo, orderId));
+    }
+
+
 }

+ 8 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersCostsServiceImpl.java

@@ -1,6 +1,7 @@
 package com.jzg.quotation.summary.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCosts;
 import com.jzg.quotation.summary.mapper.InsOrdersCostsMapper;
 import com.jzg.quotation.summary.service.InsOrdersCostsService;
@@ -13,4 +14,11 @@ import org.springframework.stereotype.Service;
 
 @Service
 public class InsOrdersCostsServiceImpl extends ServiceImpl<InsOrdersCostsMapper, InsOrdersCosts> implements InsOrdersCostsService {
+    @Override
+    public InsOrdersCosts createCosts(InsOrders insOrders) {
+        InsOrdersCosts insOrdersCosts = new InsOrdersCosts();
+        insOrdersCosts.setOrderNo(insOrders.getId());
+        this.save(insOrdersCosts);
+        return insOrdersCosts;
+    }
 }

+ 58 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -2,14 +2,20 @@ package com.jzg.quotation.summary.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.constants.CompanyConstants;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.InsOrdersAdd;
 import com.jzg.commons.entity.dto.InsOrdersParam;
 import com.jzg.commons.entity.dto.InsuranceInfo;
 import com.jzg.commons.entity.orders.po.*;
+import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
 import com.jzg.commons.entity.vo.InsOrdersOtherInfoVo;
 import com.jzg.commons.entity.vo.InsOrdersVo;
 import com.jzg.commons.entity.vo.OrdersListVo;
+import com.jzg.commons.util.StringUtils;
+import com.jzg.commons.util.idgen.IdGenerate;
+import com.jzg.quotation.commons.constant.enums.base.ProductsType;
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
 import com.jzg.quotation.commons.utils.SnowFlakeUtil;
 import com.jzg.quotation.summary.mapper.InsOrdersMapper;
 import com.jzg.quotation.summary.service.*;
@@ -17,6 +23,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 import java.util.List;
 
 @Service
@@ -43,6 +53,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Autowired
     private InsOrdersTaxService insOrdersTaxService;
 
+    @Autowired
+    private InsOrdersCostsService insOrdersCostsService;
+
     /**
      * 保存订单信息
      *
@@ -144,6 +157,51 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     }
 
 
+    @Override
+    public void generateOrders(QuoteVo quoteVo) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        // 保存主订单信息
+        InsOrders insOrders = new InsOrders();
+        insOrders.setQuoteNo(SnowFlakeUtil.getSnowFlakeId());
+        insOrders.setAgreementId(quoteVo.getOrder().getAgreementId());
+        insOrders.setOrderStatus("1");
+        insOrders.setApiType(String.valueOf(quoteVo.getOrder().getApiType()));
+        insOrders.setCompanyId(quoteVo.getOrder().getInsuranceCompanyCode());
+        insOrders.setOrderStatus("1");
+        String companyName = CompanyConstants.getCompanyNameByCode(quoteVo.getOrder().getInsuranceCompanyCode());
+        insOrders.setCompanyName(companyName);
+        insOrders.setProductId(quoteVo.getOrder().getProductsCode());
+        String productName = ProductsType.getProductNameByCode(quoteVo.getOrder().getProductsCode());
+        insOrders.setProductName(productName);
+        insOrdersMapper.insert(insOrders);
+
+        // 保存订单车辆信息
+        ordersCarInfoService.createCarInfo(insOrders, quoteVo.getCarInfoVo(), formatter);
+
+        // 保存订单用户信息
+        List<InsOrdersCarUserInfo> insOrdersCarUserInfoList = new ArrayList<>();
+        // 添加车主信息
+        insOrdersCarUserInfoList.add(ordersCarUserInfoService.createUserInfo(insOrders.getId(), quoteVo.getOwnersInfo(), formatter));
+        // 添加投保人信息
+        insOrdersCarUserInfoList.add(ordersCarUserInfoService.createUserInfo(insOrders.getId(), quoteVo.getPolicyHolderInfo(), formatter));
+        // 添加被保险人信息
+        insOrdersCarUserInfoList.add(ordersCarUserInfoService.createUserInfo(insOrders.getId(), quoteVo.getInsuredPersonInfo(), formatter));
+        ordersCarUserInfoService.saveBatch(insOrdersCarUserInfoList);
+
+        // 保存订单费用信息 ins_orders_costs
+        insOrdersCostsService.createCosts(insOrders);
+
+        // 保存订单险种信息 ins_orders_kind
+
+        // 保存订单其他信息 ins_orders_other
+
+        // 保存订单投保单号 保单号信息 ins_orders_policy
+
+        // 保存订单险种信息 ins_orders_risk
+
+        // 保存订单车船税税信息 ins_orders_tax
+
+    }
 
 
 }

+ 14 - 2
tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/entity/request/YangGuangSubmitRequest.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.annotation.JSONField;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
 import com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo;
+import com.jzg.quotation.commons.entity.vo.aggregated.UnderwritingVo;
 import com.jzg.quotation.commons.entity.vo.base.OrderBase;
 import com.jzg.quotation.yangguang.api.entity.YangGuangConfigureParameters;
 import lombok.Data;
@@ -129,9 +130,20 @@ public class YangGuangSubmitRequest extends YangGuangBaseRequest{
     @JSONField(name = "NonVehicleProductInformationList")
     private List<NonVehicleProductInformationList> NonVehicleProductInformationList;
 
-    public YangGuangSubmitRequest(InsOrders insOrders,InsOrdersCarInfo insOrdersCarInfo,InsOrdersCarUserInfo policyHolder,InsOrdersCarUserInfo insured,YangGuangConfigureParameters ygConfigureParameters) {
+    public YangGuangSubmitRequest(UnderwritingVo underwritingVo, YangGuangConfigureParameters ygConfigureParameters) {
+        InsOrders insOrders = underwritingVo.getInsOrders();
+        InsOrdersCarInfo insOrdersCarInfo = underwritingVo.getInsOrdersCarInfo();
+        InsOrdersCarUserInfo owner = underwritingVo.getInsOrdersCarUserInfoList()
+                .stream().filter(insOrdersCarUserInfo -> insOrdersCarUserInfo.getPolicyPersonType().equals(1))
+                .findFirst().orElse(null);
+        InsOrdersCarUserInfo policyHolder = underwritingVo.getInsOrdersCarUserInfoList()
+                .stream().filter(insOrdersCarUserInfo -> insOrdersCarUserInfo.getPolicyPersonType().equals(2))
+                .findFirst().orElse(null);
+        InsOrdersCarUserInfo insured = underwritingVo.getInsOrdersCarUserInfoList()
+                .stream().filter(insOrdersCarUserInfo -> insOrdersCarUserInfo.getPolicyPersonType().equals(3))
+                .findFirst().orElse(null);
         //判断是否是企业车 1个人 2企业 3机关
-        if (insOrdersCarInfo.getProperty().equals("2") || insOrdersCarInfo.getProperty().equals("3")) {
+        if (insOrdersCarInfo.getPropertyCode().equals("2") || insOrdersCarInfo.getPropertyCode().equals("3")) {
             this.customerList = YangGuangSubmitRequest.CustomerList.toCustomerList(policyHolder, insured);
         }
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

+ 1 - 14
tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/service/impl/YangGuangApiRequestImpl.java

@@ -144,21 +144,8 @@ public class YangGuangApiRequestImpl implements YangGuangApiRequest {
         YangGuangConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(YangGuangConfigureParameters.class, orderBase
                 .getAttributionInformationVo()
                 .getConfigInfo());
-//        // 根据订单号获取车辆信息
-//        InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoService.getById(orderBase.getOrdersNo());
-//        // 根据订单号获取 车主 投保人 被保人信息
-//        List<InsOrdersCarUserInfo> insOrdersCarUserInfoList = insOrdersCarUserInfoService
-//                .list(new LambdaQueryWrapper<InsOrdersCarUserInfo>().eq(InsOrdersCarUserInfo::getOrderNo, orderBase.getOrdersNo()));
-//        InsOrdersCarUserInfo policyHolder = insOrdersCarUserInfoList
-//                .stream()
-//                .filter(insOrdersCarUserInfo -> insOrdersCarUserInfo.getPolicyPersonType().equals(2))
-//                .findFirst().orElse(null);
-//        InsOrdersCarUserInfo insured = insOrdersCarUserInfoList
-//                .stream()
-//                .filter(insOrdersCarUserInfo -> insOrdersCarUserInfo.getPolicyPersonType().equals(3))
-//                .findFirst().orElse(null);
         // 根据订单号获取车辆信息
-//        YangGuangSubmitRequest yangGuangSubmitRequest = new YangGuangSubmitRequest(insOrders,insOrdersCarInfo,policyHolder,insured,parameters);
+        YangGuangSubmitRequest yangGuangSubmitRequest = new YangGuangSubmitRequest(underwritingVo,parameters);
 
     }