Forráskód Böngészése

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsOrdersCostsMapper.java
#	tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersCostsService.java
#	tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersCostsServiceImpl.java
xuqiang 1 éve
szülő
commit
6510d45596
49 módosított fájl, 620 hozzáadás és 97 törlés
  1. 2 0
      authentication/src/main/java/com/jzg/config/JzgAuthenticationProvider.java
  2. 9 0
      commons/src/main/java/com/jzg/commons/constants/CompanyConstants.java
  3. 11 20
      commons/src/main/java/com/jzg/commons/constants/dict/InsOrderStatusEnum.java
  4. 2 2
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrders.java
  5. 4 4
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersCarInfo.java
  6. 6 2
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersCarUserInfo.java
  7. 3 1
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersCosts.java
  8. 1 1
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersKind.java
  9. 1 1
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersOther.java
  10. 6 1
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersRisk.java
  11. 1 1
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersTax.java
  12. 4 9
      commons/src/main/java/com/jzg/commons/entity/quote/vo/CarInfoVo.java
  13. 1 1
      commons/src/main/java/com/jzg/commons/entity/quote/vo/RiskInfoVo.java
  14. 2 0
      commons/src/main/java/com/jzg/commons/entity/scheme/vo/SchemeResultVo.java
  15. 2 2
      commons/src/main/java/com/jzg/commons/exception/TokenExpireException.java
  16. 6 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/PlatformClient.java
  17. 10 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/constant/enums/base/ProductsType.java
  18. 25 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/aggregated/UnderwritingResultsVo.java
  19. 5 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/base/OrderBase.java
  20. 67 5
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java
  21. 2 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/decorator/QuoteDispatchDecorator.java
  22. 9 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsOrdersPolicyMapper.java
  23. 9 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersCarInfoService.java
  24. 9 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersCarUserInfoService.java
  25. 2 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersCostsService.java
  26. 5 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersKindService.java
  27. 2 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersOtherService.java
  28. 10 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersPolicyService.java
  29. 4 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersRiskService.java
  30. 18 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersService.java
  31. 2 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersTaxService.java
  32. 56 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersCarInfoServiceImpl.java
  33. 42 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersCarUserInfoServiceImpl.java
  34. 12 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersCostsServiceImpl.java
  35. 27 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersKindServiceImpl.java
  36. 7 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersOtherServiceImpl.java
  37. 24 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersPolicyServiceImpl.java
  38. 32 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersRiskServiceImpl.java
  39. 101 4
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java
  40. 6 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersTaxServiceImpl.java
  41. 9 0
      tenant/insurance/quotation-summary/src/main/resources/application.yaml
  42. 14 2
      tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/entity/request/YangGuangSubmitRequest.java
  43. 1 14
      tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/service/impl/YangGuangApiRequestImpl.java
  44. 2 1
      tenant/insurance/quotation-yongcheng/src/main/java/com/jzg/quotation/yongcheng/api/entity/request/PriceDiscountRatioRequest.java
  45. 6 6
      tenant/insurance/quotation-yongcheng/src/main/java/com/jzg/quotation/yongcheng/api/entity/request/QuoteRequest.java
  46. 4 3
      tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementDeptServiceImpl.java
  47. 20 15
      tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlSchemeServiceImpl.java
  48. 1 1
      tenant/organization/src/main/resources/application.yml
  49. 16 1
      tenant/organization/src/main/resources/mapper/PtlSchemeMapper.xml

+ 2 - 0
authentication/src/main/java/com/jzg/config/JzgAuthenticationProvider.java

@@ -6,6 +6,7 @@ import com.jzg.commons.entity.po.SysRoleDataScope;
 import com.jzg.commons.entity.po.SysRoleDataScopeLink;
 import com.jzg.commons.entity.po.SysSystem;
 import com.jzg.commons.entity.vo.SysRoleDataScopeVo;
+import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.MinioUtils;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.entity.SysRolePerms;
@@ -101,6 +102,7 @@ public class JzgAuthenticationProvider implements AuthenticationProvider {
         String name = "",workNumber = "",headSculpture = "";
         if(!system.equals(SystemConstants.SYSTEM_PLATFORM.getCode())){
             SysUserJzgVo jzgUserInfo = sysUserService.getJzgUserInfo(byId.getId(),system);
+            AssertionUtils.isFail(Objects.isNull(jzgUserInfo),"暂无权限登录系统");
             name = jzgUserInfo.getName();
             workNumber = jzgUserInfo.getWorkNumber();
         }else{

+ 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;
+    }
 }

+ 11 - 20
commons/src/main/java/com/jzg/commons/constants/dict/InsOrderStatusEnum.java

@@ -13,28 +13,19 @@ import java.util.Objects;
 public enum InsOrderStatusEnum implements IBaseEnum {
 
     //所有未提交核保的均为报价中(包括拒保订单 )
-    QUOTE_ING("0", "报价完成", 1, 0),
+    QUOTE_ING("0", "订单已提交", 1, 0),
 
     //已提交核保,并转人工核保状态
     WAIT_AUDIT("1", "待核保", 2, 0),
 
     //自动核保或者人工核保审核通过
-    WAIT_PAY("2", "已核保待缴费", 3, 0),
-
-    //客户缴费完成生成保单状态
-    ACCEPT_INSURANCE("3", "已承保", 4, 0),
-
-    //人工核保退回状态,直至再次提交核保,状态修改为待核保
-    TO_BACK("4", "核保退回", 6, 0),
-
-    //报价失败
-    QUOTE_FAILED("10","报价失败",8,0),
-
-    //重复投保
-    REPEAT_INSURE("11","重复投保",9,0)
-
-    //撤回二维码
-//    BACK_QR_CODE("5", "撤销二维码", 7, 0),
+    AUDIT_ING("2", "核保中", 3, 0),
+    STAFF_PROCESS("3", "人工处理", 3, 0),
+    PAY_PENDING("4", "待缴费", 3, 0),
+    UNDERWRITED("5", "已承保", 3, 0),
+    QUOTE_FAIL("6", "报价失败", 3, 0),
+    AUDIT_FAIL("7", "核保失败", 3, 0),
+    ORDER_CLOSE("8", "订单关闭", 3, 0),
     ;
 
 
@@ -58,8 +49,8 @@ public enum InsOrderStatusEnum implements IBaseEnum {
         return result;
     }
 
-    public static String[] getRefuseUnderwriting() {
-        return new String[]{WAIT_AUDIT.getCode(), TO_BACK.getCode()};
-    }
+//    public static String[] getRefuseUnderwriting() {
+//        return new String[]{WAIT_AUDIT.getCode(), TO_BACK.getCode()};
+//    }
 
 }

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

@@ -15,10 +15,10 @@ public class InsOrders extends BaseModel {
 
     @Schema(description = "订单ID")
     @TableId(value = "id", type = IdType.ASSIGN_ID)
-    private Long id;
+    private String id;
 
     @Schema(description = "报价订单号")
-    private Long quoteNo;
+    private String quoteNo;
 
     @Schema(description = "协议ID")
     private String agreementId;

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

@@ -13,10 +13,10 @@ import java.time.LocalDateTime;
 public class InsOrdersCarInfo extends BaseModel {
 
     @Schema(description = "订单号")
-    private Long orderNo;
+    private String orderNo;
 
     @Schema(description = "是否已上牌")
-    private int isRegistered;
+    private boolean isRegistered;
 
     @Schema(description = "车牌号")
     private String licenseNo;
@@ -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;
 }

+ 6 - 2
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,9 +13,11 @@ import java.time.LocalDateTime;
 @Data
 @Schema(description = "订单人员信息表")
 public class InsOrdersCarUserInfo extends BaseModel {
-
+    @Schema(description = "主键id")
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private String id;
     @Schema(description = "订单号")
-    private Long orderNo;
+    private String orderNo;
 
     @Schema(description = "保单人员类型 1 车主 2 投保人 3 被保人")
     private Integer policyPersonType;

+ 3 - 1
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;
@@ -12,7 +14,7 @@ public class InsOrdersCosts {
 
     @Id
     @Schema(description = "订单号")
-    private Long orderNo;
+    private String orderNo;
 
     @Schema(description = "交强险保费")
     private BigDecimal jqPremium;

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

@@ -11,7 +11,7 @@ import java.math.BigDecimal;
 public class InsOrdersKind {
 
     @Schema(description = "订单号")
-    private Long orderNo;
+    private String orderNo;
 
     @Schema(description = "金额或数量")
     private BigDecimal amount;

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

@@ -11,7 +11,7 @@ import java.math.BigDecimal;
 public class InsOrdersOther {
 
     @Schema(description = "订单号")
-    private Long orderNo;
+    private String orderNo;
 
     @Schema(description = "总评分")
     private String scope;

+ 6 - 1
commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersRisk.java

@@ -1,6 +1,8 @@
 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 io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -11,9 +13,12 @@ import java.time.LocalDateTime;
 @Data
 @Schema(description = "保险订单险种信息")
 public class InsOrdersRisk {
+    @Schema(description = "主键")
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private String id;
 
     @Schema(description = "订单号")
-    private Long orderNo;
+    private String orderNo;
 
     @Schema(description = "险种名称")
     private String riskName;

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

@@ -12,7 +12,7 @@ import java.time.LocalDateTime;
 public class InsOrdersTax {
 
     @Schema(description = "订单号")
-    private Long orderNo;
+    private String orderNo;
 
     @Schema(description = "减免税凭证号(减免税时必传)")
     private String extendChar2;

+ 4 - 9
commons/src/main/java/com/jzg/commons/entity/quote/vo/CarInfoVo.java

@@ -138,23 +138,19 @@ public class CarInfoVo implements Serializable {
     /**
      * 过户车(如果存在交强险商业险分开的情况是转为交强险过户)
      */
-    private boolean transfer;
+    private boolean transfer = false;
     /**
      * 商业险过户
      */
-    private boolean biTransfer;
+    private boolean ciTransfer = false;
     /**
      * 是否贷款车 true 贷款车
      */
-    private boolean loanStatus;
-    /* *
-     * 所属性质(1个人 2企业 3机关)
-     */
-    private String property;
+    private boolean loanStatus = false;
     /**
      * 新能源标志 true 新能源
      */
-    private boolean newEnergyMark;
+    private boolean newEnergyMark = false;
 
     /**
      * 过户日期:发证日期的正确格式为yyyy-MM-dd
@@ -188,5 +184,4 @@ public class CarInfoVo implements Serializable {
      * 排量(单位:升(L),能源种类为燃油时必传
      */
     private String displacement;
-
 }

+ 1 - 1
commons/src/main/java/com/jzg/commons/entity/quote/vo/RiskInfoVo.java

@@ -41,7 +41,7 @@ public class RiskInfoVo implements Serializable {
      * 是否及时起保
      * true 及时起保 false 不及时起保
      */
-    private boolean instantFlag;
+    private boolean instantFlag = false;
 
 
 }

+ 2 - 0
commons/src/main/java/com/jzg/commons/entity/scheme/vo/SchemeResultVo.java

@@ -1,5 +1,6 @@
 package com.jzg.commons.entity.scheme.vo;
 
+import com.jzg.commons.entity.po.JyxBlame;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -94,5 +95,6 @@ public class SchemeResultVo {
         private String coverage;
         private String premium;
         private String quantity;
+        private List<JyxBlame> blames = new ArrayList<>();
     }
 }

+ 2 - 2
commons/src/main/java/com/jzg/commons/exception/TokenExpireException.java

@@ -9,13 +9,13 @@ public class TokenExpireException extends RuntimeException {
 
     public TokenExpireException() {
         super("token过期,请重新登录");
-        this.code = "400";
+        this.code = "401";
 
     }
 
     public TokenExpireException(String message) {
         super(message);
-        this.code = "400";
+        this.code = "401";
     }
 
     public TokenExpireException(String code, String message) {

+ 6 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/PlatformClient.java

@@ -2,6 +2,7 @@ package com.jzg.quotation.commons.client;
 
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.agreement.po.PtlAgreementAttribution;
+import com.jzg.commons.entity.po.EsmInsCompany;
 import com.jzg.commons.entity.vo.PersonAreaVo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -22,4 +23,9 @@ public interface PlatformClient {
             @RequestParam("agreementId") String agreementId,
             @RequestHeader("Authorization") String authToken);
 
+    @GetMapping("/esmInsCompany/findById")
+    public HttpResult<EsmInsCompany> findById(
+            @RequestParam("id") String id,
+            @RequestHeader("Authorization") String authToken);
+
 }

+ 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;
+
+
+}

+ 5 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/entity/vo/base/OrderBase.java

@@ -24,6 +24,11 @@ public class OrderBase implements Serializable {
      */
     private String ordersNo;
 
+    /**
+     * 报价号 用于处理影像上传
+     */
+    private String quoteNo;
+
     /**
      * 保险公司代码
      */

+ 67 - 5
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java

@@ -1,25 +1,40 @@
 package com.jzg.quotation.summary.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.InsOrders;
+import com.jzg.commons.entity.po.EsmInsCompany;
+import com.jzg.commons.util.AssertionUtils;
+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.commons.utils.SnowFlakeUtil;
 import com.jzg.quotation.summary.factory.CompanyFactory;
+import com.jzg.quotation.summary.service.*;
+import com.jzg.quotation.summary.service.InsOrdersCarInfoService;
+import com.jzg.quotation.summary.service.InsOrdersService;
 import com.jzg.quotation.summary.service.InsOrdersService;
 import com.jzg.quotation.summary.service.SysQuoteConfigService;
 import com.jzg.quotation.summary.service.SysQuoteRedisService;
+import com.thoughtworks.xstream.mapper.LambdaMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.tags.Tag;
 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;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Objects;
+
+import java.util.List;
 
 @RestController
 @RequestMapping("/unify/order")
@@ -45,13 +60,52 @@ public class UnifyOrderManager {
     @Autowired
     InsOrdersService insOrdersService;
 
+    @Autowired
+    InsOrdersCarInfoService insOrdersCarInfoService;
+
+
+    @Autowired
+    InsOrdersCarUserInfoService insOrdersCarUserInfoService;
+
+
+    /**\
+     * 获取报价号
+     * @param licenseNo
+     * @param vinNo
+     * @param engineNo
+     * @return
+     */
+    @Operation(summary = "获取报价号")
+    @GetMapping("/getQuoteNo")
+    public HttpResult getQuoteNo(@Schema(description = "车牌号") String licenseNo,
+                                 @Schema(description = "车架号") String vinNo,
+                                 @Schema(description = "发动机号") String engineNo) {
+        String quoteNo = String.valueOf(SnowFlakeUtil.getSnowFlakeId());
+        InsOrdersCarInfo carInfo = insOrdersCarInfoService.getOne(new LambdaQueryWrapper<InsOrdersCarInfo>()
+                .eq(InsOrdersCarInfo::getLicenseNo, licenseNo)
+                .eq(InsOrdersCarInfo::getVinNo, vinNo)
+                .eq(InsOrdersCarInfo::getEngineNo, engineNo));
+        if(Objects.nonNull(carInfo)){
+            InsOrders insOrders = insOrdersService.getById(carInfo.getOrderNo());
+            if(Objects.nonNull(insOrders)){
+                quoteNo = String.valueOf(insOrders.getQuoteNo());
+            }
+        }
+        return HttpResult.ok(quoteNo);
+    }
+
+
     /**
      * 统一报价
      * @param quoteVo
      * @return
      */
+    @Operation(summary = "统一报价")
     @PostMapping("/quote")
     public HttpResult quote(@RequestBody QuoteVo quoteVo) throws JsonProcessingException {
+        HttpResult<EsmInsCompany> esmInsCompanyHttpResult = platformClient.findById(quoteVo.getOrder().getInsuranceCompanyCode(), baseController.getToken());
+        AssertionUtils.isFail(esmInsCompanyHttpResult.getCode() != 200,esmInsCompanyHttpResult.getMsg());
+        quoteVo.getOrder().setInsuranceCompanyCode(esmInsCompanyHttpResult.getData().getCompanyCode());
         //获取保司实体
         QuotationApiBaseService quoteService = companyFactory.getQuoteService(
                 quoteVo.getOrder().getInsuranceCompanyCode(),
@@ -59,6 +113,7 @@ public class UnifyOrderManager {
                 platformClient,
                 baseController);
         // 生成订单
+        insOrdersService.generateOrders(quoteVo);
 
 
         // 报价
@@ -67,6 +122,8 @@ public class UnifyOrderManager {
         // 报价后更新订单
 
 
+
+
         return HttpResult.ok(quote);
     }
 
@@ -78,7 +135,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/mapper/InsOrdersPolicyMapper.java

@@ -0,0 +1,9 @@
+package com.jzg.quotation.summary.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.orders.po.InsOrdersPolicy;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface InsOrdersPolicyMapper extends BaseMapper<InsOrdersPolicy> {
+}

+ 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(String 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(String orderNo, CustomerInfoVo customerInfoVo, DateTimeFormatter formatter,Integer policyPersonType);
+
+
+    List<InsOrdersCarUserInfo> getByOrderId(String 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> {
+    void createCosts(InsOrders insOrders);
 }

+ 5 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersKindService.java

@@ -1,7 +1,12 @@
 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.InsOrdersKind;
+import com.jzg.commons.entity.quote.vo.KindInfoVo;
+
+import java.util.List;
 
 public interface InsOrdersKindService extends IService<InsOrdersKind> {
+    void createKind(InsOrders insOrders, List<KindInfoVo> kindInfoVo, String companyCode);
 }

+ 2 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersOtherService.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.InsOrdersOther;
 
 public interface InsOrdersOtherService extends IService<InsOrdersOther> {
+    void createOther(InsOrders insOrders);
 }

+ 10 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersPolicyService.java

@@ -0,0 +1,10 @@
+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.InsOrdersPolicy;
+
+public interface InsOrdersPolicyService extends IService<InsOrdersPolicy> {
+    void createPolicy(InsOrders insOrders);
+
+}

+ 4 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersRiskService.java

@@ -1,7 +1,11 @@
 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.InsOrdersRisk;
+import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 
 public interface InsOrdersRiskService extends IService<InsOrdersRisk> {
+    void createRisk(InsOrders insOrders, RiskInfoVo ciRiskInfoVo, RiskInfoVo biRiskInfoVo);
+
 }

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

@@ -8,6 +8,10 @@ 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;
+
+import java.lang.reflect.InvocationTargetException;
+import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
 
 public interface InsOrdersService extends IService<InsOrders> {
 
@@ -23,6 +27,20 @@ public interface InsOrdersService extends IService<InsOrders> {
 
     HttpResult updateOrders(InsOrdersAdd ordersAdd);
 
+    /**
+     * 根据报价参数生成订单
+     */
+
+    void generateOrders(QuoteVo quoteVo);
+
+    /**
+     * 保存报价的订单
+     * @return
+     */
+    boolean saveQuoteOrders(QuoteVo quoteVo) throws InvocationTargetException, IllegalAccessException;
+
+
+
 
 
 

+ 2 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersTaxService.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.InsOrdersTax;
 
 public interface InsOrdersTaxService extends IService<InsOrdersTax> {
+    void createTax(InsOrders insOrders);
 }

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

@@ -1,11 +1,67 @@
 package com.jzg.quotation.summary.service.impl;
 
+import cn.hutool.core.date.DateTime;
+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.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+import java.util.Objects;
+
 @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.setRegistered(Objects.isNull(carInfoVo.getLicenseNo()) && carInfoVo.getLicenseNo().isEmpty());
+        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(LocalDate.parse(carInfoVo.getRegisterDate(), formatter).atStartOfDay());
+        info.setIssueDate(LocalDate.parse(carInfoVo.getIssueDate(),formatter).atStartOfDay());
+        info.setTransfer(carInfoVo.isTransfer() ? "1" : "0");
+        if (info.getTransfer().equals("1")) {
+            info.setTransferDate(LocalDate.parse(carInfoVo.getTransferDate(),formatter).atStartOfDay());
+        } else {
+            info.setTransferDate(null);
+        }
+        info.setTransferBi(carInfoVo.isCiTransfer() ? "1" : "0");
+        this.save(info);
+        return info;
+    }
+
+    @Override
+    public InsOrdersCarInfo getByOrderId(String orderId) {
+        return baseMapper.selectById(orderId);
+    }
 }

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

@@ -1,11 +1,53 @@
 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 net.sf.cglib.core.Local;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
+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(String orderNo, CustomerInfoVo customerInfoVo, DateTimeFormatter formatter, Integer policyPersonType) {
+        InsOrdersCarUserInfo info = new InsOrdersCarUserInfo();
+        info.setOrderNo(orderNo);
+        info.setPolicyPersonType(policyPersonType); // 车主
+        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(LocalDate.parse(customerInfoVo.getIdentifyValidDate(), formatter).atStartOfDay());
+        info.setIdentifyValidEndDate(LocalDate.parse(customerInfoVo.getIdentifyValidEndDate(), formatter).atStartOfDay());
+        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(String orderId) {
+        return baseMapper.selectList(new LambdaQueryWrapper<InsOrdersCarUserInfo>().eq(InsOrdersCarUserInfo::getOrderNo, orderId));
+    }
+
+
 }

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

@@ -1,11 +1,23 @@
 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;
 import org.springframework.stereotype.Service;
 
+/**
+ * @author quchen
+ * @date 2025/3/28 14:59
+ */
+
 @Service
 public class InsOrdersCostsServiceImpl extends ServiceImpl<InsOrdersCostsMapper, InsOrdersCosts> implements InsOrdersCostsService {
+    @Override
+    public void createCosts(InsOrders insOrders) {
+        InsOrdersCosts insOrdersCosts = new InsOrdersCosts();
+        insOrdersCosts.setOrderNo(insOrders.getId());
+        this.save(insOrdersCosts);
+    }
 }

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

@@ -1,11 +1,38 @@
 package com.jzg.quotation.summary.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersKind;
+import com.jzg.commons.entity.quote.vo.KindInfoVo;
+import com.jzg.commons.exception.SystemException;
+import com.jzg.quotation.commons.constant.enums.base.QuoteRuleCategory;
+import com.jzg.quotation.commons.entity.vo.base.OrderBase;
+import com.jzg.quotation.summary.converter.QuoteInfoConverter;
+import com.jzg.quotation.summary.entity.po.QuoteRuleMapping;
 import com.jzg.quotation.summary.mapper.InsOrdersKindMapper;
 import com.jzg.quotation.summary.service.InsOrdersKindService;
+import com.jzg.quotation.summary.service.QuoteRuleMappingService;
+import com.sun.tools.javac.Main;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import javax.security.auth.login.AppConfigurationEntry;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 @Service
 public class InsOrdersKindServiceImpl extends ServiceImpl<InsOrdersKindMapper, InsOrdersKind> implements InsOrdersKindService {
+    @Override
+    public void createKind(InsOrders insOrders, List<KindInfoVo> kindInfoVo, String companyCode) {
+    }
+
+
 }

+ 7 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersOtherServiceImpl.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.InsOrdersOther;
 import com.jzg.quotation.summary.mapper.InsOrdersOtherMapper;
 import com.jzg.quotation.summary.service.InsOrdersOtherService;
@@ -8,4 +9,10 @@ import org.springframework.stereotype.Service;
 
 @Service
 public class InsOrdersOtherServiceImpl extends ServiceImpl<InsOrdersOtherMapper, InsOrdersOther> implements InsOrdersOtherService {
+    @Override
+    public void createOther(InsOrders insOrders) {
+        InsOrdersOther insOrdersOther = new InsOrdersOther();
+        insOrdersOther.setOrderNo(insOrders.getId());
+        this.save(insOrdersOther);
+    }
 }

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

@@ -0,0 +1,24 @@
+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.InsOrdersPolicy;
+import com.jzg.quotation.summary.mapper.InsOrdersPolicyMapper;
+import com.jzg.quotation.summary.service.InsOrdersPolicyService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author quchen
+ * @date 2025/3/29 10:12
+ */
+
+@Service
+public class InsOrdersPolicyServiceImpl extends ServiceImpl<InsOrdersPolicyMapper, InsOrdersPolicy> implements InsOrdersPolicyService {
+
+    @Override
+    public void createPolicy(InsOrders insOrders) {
+        InsOrdersPolicy insOrdersPolicy = new InsOrdersPolicy();
+        insOrdersPolicy.setOrderNo(insOrders.getId());
+        this.save(insOrdersPolicy);
+    }
+}

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

@@ -1,11 +1,43 @@
 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.InsOrdersRisk;
+import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 import com.jzg.quotation.summary.mapper.InsOrdersRiskMapper;
 import com.jzg.quotation.summary.service.InsOrdersRiskService;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
 @Service
 public class InsOrdersRiskServiceImpl extends ServiceImpl<InsOrdersRiskMapper, InsOrdersRisk> implements InsOrdersRiskService {
+    @Override
+    public void createRisk(InsOrders insOrders, RiskInfoVo ciRiskInfoVo, RiskInfoVo biRiskInfoVo) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        List<InsOrdersRisk> insOrdersRiskList = new ArrayList<>();
+        if (Objects.nonNull(ciRiskInfoVo)) {
+            InsOrdersRisk ciInsOrdersRisk = new InsOrdersRisk();
+            ciInsOrdersRisk.setOrderNo(insOrders.getId());
+            ciInsOrdersRisk.setRiskName("交强险");
+            ciInsOrdersRisk.setRiskCode(ciRiskInfoVo.getRiskCode());
+            ciInsOrdersRisk.setStartDate(LocalDateTime.parse(ciRiskInfoVo.getStartDate(), formatter));
+            ciInsOrdersRisk.setEndDate(LocalDateTime.parse(ciRiskInfoVo.getEndDate(), formatter));
+            insOrdersRiskList.add(ciInsOrdersRisk);
+        }
+        if (Objects.nonNull(biRiskInfoVo)) {
+            InsOrdersRisk biInsOrdersRisk = new InsOrdersRisk();
+            biInsOrdersRisk.setOrderNo(insOrders.getId());
+            biInsOrdersRisk.setRiskName("商业险");
+            biInsOrdersRisk.setRiskCode(biRiskInfoVo.getRiskCode());
+            biInsOrdersRisk.setStartDate(LocalDateTime.parse(biRiskInfoVo.getStartDate(), formatter));
+            biInsOrdersRisk.setEndDate(LocalDateTime.parse(biRiskInfoVo.getEndDate(), formatter));
+            insOrdersRiskList.add(biInsOrdersRisk);
+        }
+        this.saveBatch(insOrdersRiskList);
+    }
 }

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

@@ -2,21 +2,36 @@ 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.constants.dict.InsOrderStatusEnum;
 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.commons.util.idgen.IdGenerate;
+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.*;
+import org.apache.commons.beanutils.BeanUtils;
 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.lang.reflect.InvocationTargetException;
 import java.util.List;
 
 @Service
@@ -43,6 +58,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Autowired
     private InsOrdersTaxService insOrdersTaxService;
 
+    @Autowired
+    private InsOrdersCostsService insOrdersCostsService;
+
+    @Autowired
+    private InsOrdersPolicyService insOrdersPolicyService;
+
     /**
      * 保存订单信息
      *
@@ -62,12 +83,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         try {
             // 获取订单对象并设置引用编号
             InsOrders insOrders = ordersAdd.getInsOrders();
-            Long quoteNo = SnowFlakeUtil.getSnowFlakeId();
+            String quoteNo = String.valueOf(SnowFlakeUtil.getSnowFlakeId());
             // 如果生成的引用编号为空,则返回错误信息
             if (quoteNo == null) {
                 return HttpResult.error("生成引用编号失败");
             }
-            insOrders.setQuoteNo(quoteNo);
+            insOrders.setQuoteNo(String.valueOf(quoteNo));
 
             // 插入订单信息,如果插入失败,则返回错误信息
             int insertResult = insOrdersMapper.insert(insOrders);
@@ -78,13 +99,13 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
             // 获取车辆信息对象,并设置订单编号,然后保存车辆信息
             InsOrdersCarInfo carInfoVo = ordersAdd.getCarInfoVo();
-            carInfoVo.setOrderNo(quoteNo);
+            carInfoVo.setOrderNo(String.valueOf(quoteNo));
             ordersCarInfoService.save(carInfoVo);
 
             // 获取用户信息对象,并设置订单编号,然后保存用户信息
             List<InsOrdersCarUserInfo> carUserInfoList = ordersAdd.getCarUserInfoList();
             for (InsOrdersCarUserInfo carUserInfo : carUserInfoList) {
-                carUserInfo.setOrderNo(quoteNo);
+                carUserInfo.setOrderNo(String.valueOf(quoteNo));
             }
             ordersCarUserInfoService.saveBatch(carUserInfoList);
 
@@ -131,6 +152,33 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         return null;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean saveQuoteOrders(QuoteVo quoteVo) throws InvocationTargetException, IllegalAccessException {
+        InsOrders insOrders = new InsOrders();
+        insOrders.setId(IdGenerate.nextId());
+        insOrders.setQuoteNo(quoteVo.getOrder().getQuoteNo());
+        insOrders.setOrderStatus(InsOrderStatusEnum.QUOTE_ING.getCode());
+        insOrders.setCompanyId(quoteVo.getOrder().getInsuranceCompanyCode());
+        insOrders.setProductId(quoteVo.getOrder().getProductsCode());
+//        insOrdersMapper.insert(insOrders);
+
+        InsOrdersCarInfo carInfo = new InsOrdersCarInfo();
+        BeanUtils.copyProperties(carInfo,quoteVo.getCarInfoVo());
+        carInfo.setOrderNo(insOrders.getId());
+
+        InsOrdersCarUserInfo ownersInfo = new InsOrdersCarUserInfo();
+        BeanUtils.copyProperties(ownersInfo,quoteVo.getOwnersInfo());
+
+        InsOrdersCarUserInfo insuredPersonInfo = new InsOrdersCarUserInfo();
+        BeanUtils.copyProperties(insuredPersonInfo,quoteVo.getInsuredPersonInfo());
+
+        InsOrdersCarUserInfo policyHolderInfo = new InsOrdersCarUserInfo();
+        BeanUtils.copyProperties(policyHolderInfo,quoteVo.getPolicyHolderInfo());
+
+        return true;
+    }
+
 
     @Override
     public IPage<OrdersListVo> pageList(InsOrdersParam insOrdersParam) {
@@ -144,6 +192,55 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     }
 
 
+    @Override
+    public void generateOrders(QuoteVo quoteVo) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        // 保存主订单信息
+        InsOrders insOrders = new InsOrders();
+        insOrders.setQuoteNo(String.valueOf(SnowFlakeUtil.getSnowFlakeId()));
+        insOrders.setAgreementId(quoteVo.getOrder().getAgreementId());
+        insOrders.setOrderStatus(InsOrderStatusEnum.QUOTE_ING.getCode()); // 订单状态 报价中
+        insOrders.setApiType(String.valueOf(quoteVo.getOrder().getApiType()));
+        insOrders.setCompanyId(quoteVo.getOrder().getInsuranceCompanyCode());
+        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,1));
+        // 添加投保人信息
+        insOrdersCarUserInfoList.add(ordersCarUserInfoService.createUserInfo(insOrders.getId(), quoteVo.getPolicyHolderInfo(), formatter,2));
+        // 添加被保险人信息
+        insOrdersCarUserInfoList.add(ordersCarUserInfoService.createUserInfo(insOrders.getId(), quoteVo.getInsuredPersonInfo(), formatter,3));
+        ordersCarUserInfoService.saveBatch(insOrdersCarUserInfoList);
+
+        // 保存订单费用信息 ins_orders_costs
+        insOrdersCostsService.createCosts(insOrders);
+
+        // 保存订单其他信息 ins_orders_other
+        insOrdersOtherService.createOther(insOrders);
+
+        // 保存订单投保单号 保单号信息 ins_orders_policy
+        insOrdersPolicyService.createPolicy(insOrders);
+
+        // 保存订单险种信息 ins_orders_risk
+        insOrdersRiskService.createRisk(insOrders, quoteVo.getCiRiskInfoVo(),quoteVo.getBiRiskInfoVo());
+
+        // 保存订单险种信息 ins_orders_kind
+        insOrdersKindService.createKind(insOrders, quoteVo.getKindInfoVo(),quoteVo.getOrder().getInsuranceCompanyCode());
+
+        // 保存订单车船税税信息 ins_orders_tax
+        insOrdersTaxService.createTax(insOrders);
+
+    }
 
 
 }

+ 6 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersTaxServiceImpl.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.InsOrdersTax;
 import com.jzg.quotation.summary.mapper.InsOrdersTaxMapper;
 import com.jzg.quotation.summary.service.InsOrdersTaxService;
@@ -8,4 +9,9 @@ import org.springframework.stereotype.Service;
 
 @Service
 public class InsOrdersTaxServiceImpl extends ServiceImpl<InsOrdersTaxMapper, InsOrdersTax> implements InsOrdersTaxService {
+    public void createTax(InsOrders insOrders) {
+        InsOrdersTax insOrdersTax = new InsOrdersTax();
+        insOrdersTax.setOrderNo(insOrders.getId());
+        this.save(insOrdersTax);
+    }
 }

+ 9 - 0
tenant/insurance/quotation-summary/src/main/resources/application.yaml

@@ -81,4 +81,13 @@ yangguang:
     secret: 6CPxxlHwLLphTR7gVg3hJLsH
     referer: SXJZG
 
+chengtai:
+  api:
+    partnerCode: JZG_TYTQ_SX
+    baseUrl: http://39.98.238.167/chengtai/app/SERVER_V2/4001/
+    ctPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvuUnoPTFin84nDdpNZFDiGZgUKn6d9fbp6F4/fqrb6pFoJX/wLMr0IsheP0ZnVCPpLGKLjflPNHJo/P9WRRTSM67D8fRD8GKoq+7CtSJkdIticASpN/U8AgJiNV6xdReJcMkaAWJ1ZbOQ+nYLg9OE0qQ6cuXqhy/wVrqx72CrvwIDAQAB
+    publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyVlpqmibguria884GdAYEuqCV4aQRl2N21+7l8Vxocoyz+M8KYyXqmlLKqApNL/U5pUVTjS6vpC6ojS+wvNbawijeMsm8r2NOlTHBnQ5vN0azjjPPtSrxgHL8/EYBa4lmBcexdmcUrUyWjAIYqfO8dlY+RuXvbiw7fBHZ7xpAvQIDAQAB
+    privateKey: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALJWWmqaJuC6uJrzzgZ0BgS6oJXhpBGXY3bX7uXxXGhyjLP4zwpjJeqaUsqoCk0v9TmlRVONLq+kLqiNL7C81trCKN4yybyvY06VMcGdDm83RrOOM8+1KvGAcvz8RgFriWYFx7F2ZxStTJaMAhip87x2Vj5G5e9uLDt8EdnvGkC9AgMBAAECgYEAsEOHdEvOV1pWMdj9bgVpGW14YQu3RSfTSFheqGkpg5aMmSk3QbYDeOB1KhZysB3Ri9tdLRqi5TkqYK/DTjUnSUMs0iMhx0XaY2z3w16AMpvuJ0FZ4S2h8oAFfOWe4F6bpUYU8qmXANAaXcMm6HjU8k1QuTbjlSOeLujl8W7zk8ECQQDlHbUQ911kWmsSo8NE4S1+dq/6T+yIGCJlXzlNh/z6giMpjp8Dzm3fxDHLeZa+DCrhpT1qe6O3oGwx3HeR/85NAkEAx0NUy6pX5WolV+YAoLNHAmcCP26wQTB7LZ7mXbxww4yNNH9CWHE9PaBuV4Ws4NxSAnRDxrgArkz5+wgqnXzUMQJAHr16orkdra43+XtBYsd3jCUufT4l9SiPzNwW2yEovw+g2h2JlkAnG8O+DpfUstD9G+NItzW5hJSgj5wN6ufQbQJACEtdND0a+4m3lDkWvZm40vjGty08WPpTpkp+/FfjucAYAJ9re5L7IZ2T+kCuOY3yO/fq+lKedKLvpOtqGrQfgQJBAJ1wMccz+1ez8qpyTWbzj2h0O+GV+YDHqJ9SwRWcSacZOeAyO7UMgIZEwoYfs4nhye7DZH9e4BfkwBmFHJKwJNs=
+
+
 

+ 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);
 
     }
 

+ 2 - 1
tenant/insurance/quotation-yongcheng/src/main/java/com/jzg/quotation/yongcheng/api/entity/request/PriceDiscountRatioRequest.java

@@ -11,6 +11,7 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @author quchen
@@ -99,7 +100,7 @@ public class PriceDiscountRatioRequest implements Serializable {
                 this.CFstRegYm = carInfoVo.getRegisterDate();
                 this.TInsrncBgnTm = startTime;
                 this.IsContainDamage = "1";
-                if (!kindInfoVoList.isEmpty()) {
+                if (Objects.nonNull(kindInfoVoList) && !kindInfoVoList.isEmpty()) {
                     this.CProdNo = "0364";
                     kindInfoVoList.forEach(kindInfoVo -> {
                             if (kindInfoVo.getKindCode().equals(KindCode.A.getCode())) {

+ 6 - 6
tenant/insurance/quotation-yongcheng/src/main/java/com/jzg/quotation/yongcheng/api/entity/request/QuoteRequest.java

@@ -1094,8 +1094,8 @@ public class QuoteRequest {
 
             @JsonProperty("CvrgJQ")
             @JacksonXmlElementWrapper(useWrapping = false)
-            @JacksonXmlProperty(localName = "CvrgJQ")
-            private List<CvrgJQ> CvrgJQ;
+            @JacksonXmlProperty(localName = "cvrgJQ")
+            private List<CvrgJQ> cvrgJQ;
 
             @Data
             public static class CvrgJQ {
@@ -1640,7 +1640,7 @@ public class QuoteRequest {
             @JacksonXmlProperty(localName = "CMassCarMrk")
             private String CMassCarMrk;
 
-            public Applicant(CustomerInfoVo ownerInfo, CustomerInfoVo policyHolderInfo) {
+            public Applicant(CustomerInfoVo ownerInfo, CustomerInfoVo policyHolderInfo,YcApiConfigurationProperties ycApiConfigurationProperties) {
 
                 //投保人类型: 0:法人 1:个人(中国籍) 2: 个人(非中国籍)
                 String property = policyHolderInfo.getProperty();
@@ -1679,7 +1679,7 @@ public class QuoteRequest {
                     this.setCSex(IDCardUtils.GetYcSex(policyHolderInfo.getIdentifyNumber()));
                     this.setCCntrNme(policyHolderInfo.getName());
                     // 增加团车标志
-//                    applicant.setCMassCarMrk(ycConfigureParameters.getCCntrNme());
+                    this.setCMassCarMrk(ycApiConfigurationProperties.getCCntrNme());
                     name = policyHolderInfo.getName();
                     //投保人客户分类
                     this.setCClntMrk("1");
@@ -1988,7 +1988,7 @@ public class QuoteRequest {
                 this.setCAreaCde("103132");
 
                 this.setTCertfClsValiDate(insuredPersonInfo.getIdentifyValidEndDate());
-//        insured.setCCntrNme(insuredPersonInfo.getName());
+//                insured.setCCntrNme(insuredPersonInfo.getName());
                 this.setCRelCdes(ownerInfo.getName().equals(insuredPersonInfo.getName()) ? "601005" : "601008");
 
             }
@@ -2230,7 +2230,7 @@ public class QuoteRequest {
          * 投保人信息
          * 代码:applicant
          */
-        Condition.Applicant applicant = new Condition.Applicant(ownerInfo,policyHolderInfo);
+        Condition.Applicant applicant = new Condition.Applicant(ownerInfo,policyHolderInfo,ycApiConfigurationProperties);
         condition.setApplicant(applicant);
 
         /**

+ 4 - 3
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementDeptServiceImpl.java

@@ -62,10 +62,11 @@ public class PtlAgreementDeptServiceImpl extends ServiceImpl<PtlAgreementDeptMap
         }
 
         LambdaQueryWrapper<SysDept> allWrapper = new LambdaQueryWrapper<>();
-        allWrapper.like(SysDept :: getRoute, deptId)
-                .eq(SysDept :: getIsDelete, 0);
         if (Objects.nonNull(nameDept)){
-            allWrapper.like(Objects.isNull(nameDept), SysDept :: getRoute, nameDept.getId());
+            allWrapper.like(Objects.nonNull(nameDept), SysDept :: getRoute, nameDept.getId()).eq(SysDept :: getIsDelete, 0);
+        }else{
+            allWrapper.like(SysDept :: getRoute, deptId)
+                    .eq(SysDept :: getIsDelete, 0);
         }
         List<SysDept> depts = deptMapper.selectList(allWrapper);
         List<SysDeptVo> voDept = new ArrayList<>();

+ 20 - 15
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlSchemeServiceImpl.java

@@ -369,29 +369,34 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
         SchemeResultVo schemeResultVo = new SchemeResultVo();
         //基础方案
         SchemeResultVo.SchemeVo schemeVo = schemeInsuranceInfo.stream().filter(x -> x.getSchemeType().equals("1")).findFirst().orElse(null);
-        schemeResultVo.setSchemes(schemeVo.getInfos());
-        //把基础方案的商业险的value 赋值
-        schemeResultVo.getSchemes().forEach(schemeInfoVo -> {
-            schemeInfoVo.getKinds().forEach(kind -> {
-                kind.setAmount(kind.getOptions().get(0).getValue());
-                kind.setUnitAmount(kind.getOptions().get(0).getValue());
-                kind.setServiceTimes(kind.getOptions().get(0).getValue());
+        if(Objects.nonNull(schemeVo)) {
+            schemeResultVo.setSchemes(schemeVo.getInfos());
+            //把基础方案的商业险的value 赋值
+            schemeResultVo.getSchemes().forEach(schemeInfoVo -> {
+                schemeInfoVo.getKinds().forEach(kind -> {
+                    kind.setAmount(kind.getOptions().get(0).getValue());
+                    kind.setUnitAmount(kind.getOptions().get(0).getValue());
+                    kind.setServiceTimes(kind.getOptions().get(0).getValue());
+                });
             });
-        });
+        }
 
         //自选方案
         SchemeResultVo.SchemeVo opSchemeVo = schemeInsuranceInfo.stream().filter(x -> x.getSchemeType().equals("2")).findFirst().orElse(null);
-        schemeResultVo.setOptionalScheme(opSchemeVo.getInfos().get(0));
+        if(Objects.nonNull(opSchemeVo)) {
+            schemeResultVo.setOptionalScheme(opSchemeVo.getInfos().get(0));
+            SchemeResultVo.SchemeInfoVo optionalScheme = schemeResultVo.getOptionalScheme();
+            if (optionalScheme != null && optionalScheme.getKinds() != null) {
+                optionalScheme.getKinds().removeIf(kind -> "J1".equals(kind.getKindCode()));
+            }
+        }
 
         //排除交强险的险种
-        schemeResultVo.getSchemes().removeIf(schemeInfoVo ->
-                schemeInfoVo.getKinds().stream().anyMatch(kind -> "J1".equals(kind.getKindCode()))
+        schemeResultVo.getSchemes().forEach(schemeInfoVo ->
+                schemeInfoVo.getKinds().removeIf(kind -> "J1".equals(kind.getKindCode()))
         );
 
-        SchemeResultVo.SchemeInfoVo optionalScheme = schemeResultVo.getOptionalScheme();
-        if (optionalScheme != null && optionalScheme.getKinds() != null) {
-            optionalScheme.getKinds().removeIf(kind -> "J1".equals(kind.getKindCode()));
-        }
+
 
         return schemeResultVo;
     }

+ 1 - 1
tenant/organization/src/main/resources/application.yml

@@ -56,7 +56,7 @@ tenant:
     - ptl_area_license
     - ptl_agreement_undwrt_rules
     - ptl_agreement_undwrt_rules_attr_link
-
+    - esm_ins_company
   ignoreLoginNames:
 
 data-scope:

+ 16 - 1
tenant/organization/src/main/resources/mapper/PtlSchemeMapper.xml

@@ -36,12 +36,19 @@
             <result column="scheme_type" property="schemeType"/>
             <result column="description" property="description"/>
             <collection property="drivings" ofType="com.jzg.commons.entity.scheme.vo.SchemeResultVo$Driving">
+                <result column="driving_id" property="id"/>
                 <result column="product_name" property="productName"/>
                 <result column="product_code" property="productCode"/>
                 <result column="alias" property="alias"/>
                 <result column="grouping" property="grouping"/>
                 <result column="premium" property="premium"/>
                 <result column="quantity" property="quantity"/>
+                <collection property="blames" ofType="com.jzg.commons.entity.po.JyxBlame">
+                    <result column="blame" property="blame"/>
+                    <result column="blameCode" property="blame_code"/>
+                    <result column="blameCoverage" property="blame_coverage"/>
+                    <result column="blamePremium" property="blame_premium"/>
+                </collection>
             </collection>
         </collection>
     </resultMap>
@@ -135,6 +142,7 @@
         WHERE
             ps.company_id = #{companyId}
             AND ps.product_id = #{productId}
+        ORDER BY ibi.sort asc
     </select>
 
     <select id="getSchemeDrivingInfo" resultMap="SchemeDrivingVo">
@@ -144,17 +152,24 @@
             psi.scheme_id,
             psi.scheme_type,
             psi.scheme_name,
+            jc.id AS driving_id,
             jc.product_name,
             jc.alias,
             jc.product_code,
+            jc.premium_setting,
             jc.coverage,
             jc.premium,
-            psidi.quantity
+            psidi.quantity,
+            jb.blame,
+            jb.blame_code,
+            jb.blame_coverage,
+            jb.blame_premium
         FROM
             ptl_scheme ps
                 INNER JOIN ptl_scheme_info psi ON ps.id = psi.scheme_id
                 INNER JOIN ptl_scheme_insurance_driving_intention psidi ON psidi.scheme_info_id = psi.id
                 INNER JOIN jyx_config jc ON psidi.driving_intention_id = jc.id
+                left join  jyx_blame jb on jc.id = jb.jyx_config_id
         WHERE
             ps.company_id = #{companyId}
         AND