Quellcode durchsuchen

Merge branch 'master' into jin_dev

# Conflicts:
#	pom.xml
jinshihui vor 1 Jahr
Ursprung
Commit
5d2f2bcfeb
100 geänderte Dateien mit 6604 neuen und 1282 gelöschten Zeilen
  1. 10 0
      commons/pom.xml
  2. 52 0
      commons/src/main/java/com/jzg/commons/constants/report/enums/SearchKeyCodeEnum.java
  3. 3 0
      commons/src/main/java/com/jzg/commons/core/base/PageRequest.java
  4. 23 0
      commons/src/main/java/com/jzg/commons/entity/console/dto/TestDto.java
  5. 4 0
      commons/src/main/java/com/jzg/commons/entity/dto/AgreementAddParam.java
  6. 4 0
      commons/src/main/java/com/jzg/commons/entity/dto/AgreementEditParam.java
  7. 101 0
      commons/src/main/java/com/jzg/commons/entity/enums/HttpConstants.java
  8. 47 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/CompanySuperviseSettlementReportDto.java
  9. 113 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportOtherExcelDto.java
  10. 83 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportOtherJyExcelDto.java
  11. 95 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportOtherSettlementDetailExcelDto.java
  12. 84 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportOtherSettlementDetailJyExcelDto.java
  13. 63 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportOtherSettlementExcelDto.java
  14. 111 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportSuperviseExcelDto.java
  15. 77 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportSuperviseJyExcelDto.java
  16. 108 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportSuperviseSettlementDetailExcelDto.java
  17. 84 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportSuperviseSettlementDetailJyExcelDto.java
  18. 63 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportSuperviseSettlementExcelDto.java
  19. 19 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/InvoiceAmountDto.java
  20. 46 0
      commons/src/main/java/com/jzg/commons/entity/finance/dto/ReceiverSettlementReportDto.java
  21. 25 0
      commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncome.java
  22. 3 0
      commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncomeInvoice.java
  23. 6 0
      commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncomeInvoiceSettlement.java
  24. 53 0
      commons/src/main/java/com/jzg/commons/entity/finance/vo/InvoiceRecordQueryVo.java
  25. 63 0
      commons/src/main/java/com/jzg/commons/entity/finance/vo/InvoiceRecordResult.java
  26. 13 0
      commons/src/main/java/com/jzg/commons/entity/finance/vo/InvoiceingResult.java
  27. 26 1
      commons/src/main/java/com/jzg/commons/entity/finance/vo/ReceivableQueryVo.java
  28. 50 0
      commons/src/main/java/com/jzg/commons/entity/finance/vo/SettlementQueryVo.java
  29. 39 0
      commons/src/main/java/com/jzg/commons/entity/finance/vo/SettlementReportQueryVo.java
  30. 39 0
      commons/src/main/java/com/jzg/commons/entity/po/EsmUserReferrer.java
  31. 26 3
      commons/src/main/java/com/jzg/commons/entity/po/InsFeeOrders.java
  32. 3 0
      commons/src/main/java/com/jzg/commons/entity/po/PtlAgreement.java
  33. 4 0
      commons/src/main/java/com/jzg/commons/entity/po/SysDept.java
  34. 52 0
      commons/src/main/java/com/jzg/commons/entity/po/SysDistributionSetting.java
  35. 21 0
      commons/src/main/java/com/jzg/commons/entity/po/SysUserJzgInfo.java
  36. 7 0
      commons/src/main/java/com/jzg/commons/entity/quote/vo/CustomerInfoVo.java
  37. 31 0
      commons/src/main/java/com/jzg/commons/entity/report/dto/ReportDictDto.java
  38. 108 0
      commons/src/main/java/com/jzg/commons/entity/report/dto/ReportSearchConfigurationDto.java
  39. 70 0
      commons/src/main/java/com/jzg/commons/entity/report/dto/ReportUploadExcelTaskDto.java
  40. 61 0
      commons/src/main/java/com/jzg/commons/entity/report/dto/UserTreeDto.java
  41. 137 0
      commons/src/main/java/com/jzg/commons/entity/report/po/ReportSearchConfiguration.java
  42. 161 0
      commons/src/main/java/com/jzg/commons/entity/report/po/ReportUploadExcelTask.java
  43. 97 0
      commons/src/main/java/com/jzg/commons/entity/report/vo/ReportSearchCommonVo.java
  44. 43 0
      commons/src/main/java/com/jzg/commons/entity/report/vo/ReportUploadExcelTaskVo.java
  45. 6 0
      commons/src/main/java/com/jzg/commons/entity/vo/IsDeleteVo.java
  46. 3 0
      commons/src/main/java/com/jzg/commons/entity/vo/SysDeptVo.java
  47. 34 0
      commons/src/main/java/com/jzg/commons/util/EasyExcelUtils.java
  48. 247 0
      commons/src/main/java/com/jzg/commons/util/http/HttpServletUtils.java
  49. 128 0
      consoleStatistics/pom.xml
  50. 20 0
      consoleStatistics/src/main/java/com/jzg/console/ConsoleApplication.java
  51. 128 0
      consoleStatistics/src/main/java/com/jzg/console/controller/ReportSearchConfigurationController.java
  52. 118 0
      consoleStatistics/src/main/java/com/jzg/console/controller/ReportUploadExcelTaskController.java
  53. 110 0
      consoleStatistics/src/main/java/com/jzg/console/mapper/ReportSearchConfigurationMapper.java
  54. 42 0
      consoleStatistics/src/main/java/com/jzg/console/mapper/ReportUploadExcelTaskMapper.java
  55. 64 0
      consoleStatistics/src/main/java/com/jzg/console/service/ReportSearchConfigurationService.java
  56. 37 0
      consoleStatistics/src/main/java/com/jzg/console/service/ReportUploadExcelTaskService.java
  57. 248 0
      consoleStatistics/src/main/java/com/jzg/console/service/impl/ReportSearchConfigurationServiceImpl.java
  58. 62 0
      consoleStatistics/src/main/java/com/jzg/console/service/impl/ReportUploadExcelTaskServiceImpl.java
  59. 38 0
      consoleStatistics/src/main/resources/application-dev.yml
  60. 36 0
      consoleStatistics/src/main/resources/application-test.yml
  61. 98 0
      consoleStatistics/src/main/resources/application.yml
  62. 324 0
      consoleStatistics/src/main/resources/mapper/ReportSearchConfigurationMapper.xml
  63. 39 0
      consoleStatistics/src/main/resources/mapper/ReportUploadExcelTaskMapper.xml
  64. 7 1
      gateway/src/main/resources/application-dev.yml
  65. 5 1
      gateway/src/main/resources/application-test.yml
  66. 22 5
      pom.xml
  67. 13 8
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/client/ChengTaiAPI.java
  68. 0 52
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/client/EncryptRSA.java
  69. 151 21
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/component/ChengTaiRequestCrawlerComponent.java
  70. 1 1
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/ChengTaiCrawlerConfigureParameters.java
  71. 1 2
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiCheckCaptchaRequest.java
  72. 146 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiClientIdentifyRequest.java
  73. 69 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiFindCarModelRequest.java
  74. 37 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiFindCoreConferInfoByHandleCodeRequest.java
  75. 35 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiFindSaleManVoByDeptCodeRequest.java
  76. 1 1
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiGetCaptchaRequest.java
  77. 1 3
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiLoginRequest.java
  78. 975 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiPremiumcaRequest.java
  79. 26 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiBaseResponse.java
  80. 54 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiCheckCaptchaResponse.java
  81. 85 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiClientIdentifyResponse.java
  82. 24 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiFindAttributionOrgByUserResponse.java
  83. 154 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiFindCarModelResponse.java
  84. 55 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiFindCoreConferInfoByHandleCodeResponse.java
  85. 62 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiFindSaleManVoByDeptCodeResponse.java
  86. 31 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiGetCIModelCodeResponse.java
  87. 1 15
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiGetCaptchaResponse.java
  88. 1 1
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiLoginResponse.java
  89. 537 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiPremiumcaResponse.java
  90. 0 70
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiAcciSaleInfo.java
  91. 0 146
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiAccidentInsurance.java
  92. 0 47
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiAdjust.java
  93. 0 175
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiApplicant.java
  94. 0 52
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiAuthority.java
  95. 0 69
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiBiContract.java
  96. 0 168
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiBusinessMain.java
  97. 0 186
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiCarFullData.java
  98. 0 44
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiCarKind.java
  99. 0 186
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiCarModel.java
  100. 0 24
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiCarPlatformBean.java

+ 10 - 0
commons/pom.xml

@@ -111,6 +111,16 @@
             <version>2.0.1.Final</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>commons-httpclient</groupId>
+            <artifactId>commons-httpclient</artifactId>
+            <version>3.1</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-codec-http</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

+ 52 - 0
commons/src/main/java/com/jzg/commons/constants/report/enums/SearchKeyCodeEnum.java

@@ -0,0 +1,52 @@
+package com.jzg.commons.constants.report.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/9/17 9:10
+ *  @Description:  数据报表查询key的枚举
+ */
+@AllArgsConstructor
+@Getter
+public enum SearchKeyCodeEnum {
+
+    SEARCHKEY_COMPANYID("companyId", "保险公司",""),
+    SEARCHKEY_PARTNERCOMPANYIDS("partnerCompanyIds", "合作保险公司",""),
+    SEARCHKEY_ORGIDS("orgIds", "出单机构",""),
+    SEARCHKEY_MANAGEID("manageIds", "管理人",""),
+    SEARCHKEY_ORDERTYPES("orderTypes", "订单类型","report_order_type"),
+    SEARCHKEY_RISKTYPES("riskTypes", "险种","report_risk_code"),
+    SEARCHKEY_AGREETYPES("agreeTypes", "协议类型","report_agree_type"),
+    SEARCHKEY_SALESMANTYPES("salesmanTypes", "业务员类型","report_salesman_type"),
+    SEARCHKEY_AREACODES("areaCodes", "所在地区",""),
+    SEARCHKEY_ORDERSOURCE("orderSource", "报价来源","report_order_source"),
+    SEARCHKEY_ORDERSTATUS("orderStatus", "订单状态","report_order_status"),
+    SEARCHKEY_ORDERCHECKSTATUS("orderCheckStatus", "订单审核状态","report_order_check_status"),
+    SEARCHKEY_PRODUCTTYPE("productType", "保险产品","report_product_type");
+
+    // 编号
+    private final String code;
+    // 说明
+    private final String desc;
+
+    // 字典编码
+    private final String distCode;
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 10:05
+     *  @Description: 获取对象
+     */
+    public static SearchKeyCodeEnum getSearchKeyCode(String code) {
+        for (SearchKeyCodeEnum searchKeyCode : SearchKeyCodeEnum.values()) {
+            if (searchKeyCode.getCode().equals(code)) {
+                return searchKeyCode;
+            }
+        }
+        return null;
+    }
+}

+ 3 - 0
commons/src/main/java/com/jzg/commons/core/base/PageRequest.java

@@ -1,5 +1,6 @@
 package com.jzg.commons.core.base;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.Data;
 
@@ -9,10 +10,12 @@ public class PageRequest {
     /**
      * 当前页码
      */
+    @ExcelIgnore
     private int pages = 1;
     /**
      * 每页数量
      */
+    @ExcelIgnore
     private int size = 10;
 
 

+ 23 - 0
commons/src/main/java/com/jzg/commons/entity/console/dto/TestDto.java

@@ -0,0 +1,23 @@
+package com.jzg.commons.entity.console.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/9/12 15:40
+ *  @Description: 测试类
+ */
+@Data
+@Schema(description = "测试类")
+public class TestDto implements Serializable {
+
+    @Schema(description = "id")
+    private String id;
+
+    @Schema(description = "名称")
+    private String name;
+}

+ 4 - 0
commons/src/main/java/com/jzg/commons/entity/dto/AgreementAddParam.java

@@ -55,6 +55,10 @@ public class AgreementAddParam {
     @NotNull(message = "请选择保险公司")
     private String companyId;
 
+    @Schema(description = "合作-保险公司id")
+    @NotNull(message = "请选择合作保险公司")
+    private String partnerCompanyId;
+
     @Schema(description = "协议类型 1-平台协议-平台结算 2-私有协议-自行结算 3-网销协议-自行结算")
     @NotNull(message = "请选择协议类型")
     private Integer agreementType;

+ 4 - 0
commons/src/main/java/com/jzg/commons/entity/dto/AgreementEditParam.java

@@ -61,6 +61,10 @@ public class AgreementEditParam {
     @NotNull(message = "请选择保险公司")
     private String companyId;
 
+    @Schema(description = "合作-保险公司id")
+    @NotNull(message = "请选择合作保险公司")
+    private String partnerCompanyId;
+
     @Schema(description = "协议类型 1-平台协议-平台结算 2-私有协议-自行结算 3-网销协议-自行结算")
     @NotNull(message = "请选择协议类型")
     private Integer agreementType;

+ 101 - 0
commons/src/main/java/com/jzg/commons/entity/enums/HttpConstants.java

@@ -0,0 +1,101 @@
+package com.jzg.commons.entity.enums;
+
+/**
+ * @author quchen
+ * @date 2025/9/12 14:39
+ */
+
+public class HttpConstants {
+    /** ws请求匹配头 */
+    public static final String DEFAULT_FILTER_PATH = "/ws/";
+
+    /** ws请求端口偏移 */
+    public static final int WS_PORT = 10;
+
+    /** 字符集 */
+    public enum Character {
+
+        UTF8("UTF-8", "UTF-8"), GBK("GBK", "GBK");
+
+        private final String code;
+        private final String info;
+
+        Character(String code, String info) {
+            this.code = code;
+            this.info = info;
+        }
+
+        public String getCode() {
+            return code;
+        }
+
+        public String getInfo() {
+            return info;
+        }
+    }
+
+    /** 请求类型 */
+    public enum Type {
+
+        LOOKUP_RMI("rmi:", "RMI 远程方法调用"),
+        LOOKUP_LDAP("ldap:", "LDAP 远程方法调用"),
+        LOOKUP_LDAPS("ldaps:", "LDAPS 远程方法调用"),
+        HTTP("http://", "http请求"),
+        HTTPS("https://", "https请求"),
+        WS("ws://", "ws请求"),
+        WSS("wss://", "wss请求");
+
+        private final String code;
+        private final String info;
+
+        Type(String code, String info) {
+            this.code = code;
+            this.info = info;
+        }
+
+        public String getCode() {
+            return code;
+        }
+
+        public String getInfo() {
+            return info;
+        }
+    }
+
+    /** 返回状态码 */
+    public enum Status {
+
+        SUCCESS(200, "操作成功"),
+        CREATED(201, "对象创建成功"),
+        ACCEPTED(202, "请求已经被接受"),
+        NO_CONTENT(204, "操作已经执行成功,但是没有返回数据"),
+        MOVED_PERM(301, "资源已被移除"),
+        SEE_OTHER(303, "重定向"),
+        NOT_MODIFIED(304, "资源没有被修改"),
+        BAD_REQUEST(400, "参数列表错误(缺少,格式不匹配)"),
+        UNAUTHORIZED(401, "未授权"),
+        FORBIDDEN(403, "访问受限,授权过期"),
+        NOT_FOUND(404, "资源,服务未找到"),
+        BAD_METHOD(405, "不允许的http方法"),
+        CONFLICT(409, "资源冲突,或者资源被锁"),
+        UNSUPPORTED_TYPE(415, "不支持的数据,媒体类型"),
+        ERROR(500, "系统内部错误"),
+        NOT_IMPLEMENTED(501, "接口未实现");
+
+        private final int code;
+        private final String info;
+
+        Status(int code, String info) {
+            this.code = code;
+            this.info = info;
+        }
+
+        public int getCode() {
+            return code;
+        }
+
+        public String getInfo() {
+            return info;
+        }
+    }
+}

+ 47 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/CompanySuperviseSettlementReportDto.java

@@ -0,0 +1,47 @@
+package com.jzg.commons.entity.finance.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author quchen
+ * @date 2025/7/31 17:53
+ */
+
+@Data
+public class CompanySuperviseSettlementReportDto {
+    @Schema(description = "保险公司Id")
+    private String companyId;
+
+    @Schema(description = "保险公司")
+    private String companyName;
+
+    @Schema(description = "累计应收手续费")
+    private String totalReceivable;
+
+    @Schema(description = "累计应收跟单费")
+    private String totalFollowFee;
+
+    @Schema(description = "应收手续费")
+    private String superviseFee;
+
+    @Schema(description = "应收跟单费")
+    private String followFee;
+
+    @Schema(description = "已开票金额")
+    private String invoicedAmount;
+
+    @Schema(description = "已结算金额")
+    private String settledAmount;
+
+    @Schema(description = "未开票金额")
+    private String unInvoicedAmount;
+
+    @Schema(description = "未结算金额")
+    private String unSettledAmount;
+
+    @Schema(description = "子保险公司数据")
+    private List<CompanySuperviseSettlementReportDto> children;
+}

+ 113 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportOtherExcelDto.java

@@ -0,0 +1,113 @@
+package com.jzg.commons.entity.finance.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author quchen
+ * @date 2025/7/29 10:07
+ */
+
+@Data
+public class ExportOtherExcelDto {
+    @Schema(description = "签单时间")
+    @ExcelProperty(value = "签单时间")
+    private String signingTime;
+
+    @Schema(description = "订单号")
+    @ExcelProperty(value = "订单号")
+    private String orderNo;
+
+    @Schema(description = "保司名称")
+    @ExcelProperty(value = "保司名称")
+    private String companyName;
+
+    @Schema(description = "出单机构")
+    @ExcelProperty(value = "出单机构")
+    private String deptName;
+
+    @Schema(description = "出单协议")
+    @ExcelProperty(value = "出单协议")
+    private String agreementName;
+
+    @Schema(description = "订单类型")
+    @ExcelProperty(value = "订单类型")
+    private String entryStatus;
+
+    @Schema(description = "车牌号")
+    @ExcelProperty(value = "车牌号")
+    private String licenseNo;
+
+    @Schema(description = "应收跟单费")
+    @ExcelProperty(value = "应收跟单费")
+    private String receivableAmount;
+
+    @Schema(description = "险种")
+    @ExcelProperty(value = "险种")
+    private String productName;
+
+    @Schema(description = "被保人")
+    @ExcelProperty(value = "被保人")
+    private String insuredPerson;
+
+    @Schema(description = "交强保单号")
+    @ExcelProperty(value = "交强保单号")
+    private String jqPolicyNo;
+
+    @Schema(description = "交强保费")
+    @ExcelProperty(value = "交强保费")
+    private String jqPremium;
+
+    @Schema(description = "交强险不含税保费")
+    @ExcelProperty(value = "交强险不含税保费")
+    private String jqPremiumNoTax;
+
+    @Schema(description = "交强跟单费比例")
+    @ExcelProperty(value = "交强跟单费比例")
+    private String jqSuperviseCostsProportion;
+
+    @Schema(description = "交强起保日期")
+    @ExcelProperty(value = "交强起保日期")
+    private String jqStartDate;
+
+    @Schema(description = "商业保单号")
+    @ExcelProperty(value = "商业保单号")
+    private String syPolicyNo;
+
+    @Schema(description = "商业保费")
+    @ExcelProperty(value = "商业保费")
+    private String syPremium;
+
+    @Schema(description = "商业险不含税保费")
+    @ExcelProperty(value = "商业险不含税保费")
+    private String syPremiumNoTax;
+
+    @Schema(description = "商业跟单费比例")
+    @ExcelProperty(value = "商业跟单费比例")
+    private String sySuperviseCostsProportion;
+
+    @Schema(description = "商业起保日期")
+    @ExcelProperty(value = "商业起保日期")
+    private String syStartDate;
+
+    @Schema(description = "车船税")
+    @ExcelProperty(value = "车船税")
+    private String taxPremium;
+
+    @Schema(description = "创建时间")
+    @ExcelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    @Schema(description = "创建人")
+    @ExcelProperty(value = "创建人")
+    private String createBy;
+
+    @Schema(description = "对接人")
+    @ExcelProperty(value = "对接人")
+    private String contactPerson;
+}

+ 83 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportOtherJyExcelDto.java

@@ -0,0 +1,83 @@
+package com.jzg.commons.entity.finance.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author quchen
+ * @date 2025/7/29 16:16
+ */
+
+@Data
+public class ExportOtherJyExcelDto {
+    @Schema(description = "签单时间")
+    @ExcelProperty(value = "签单时间")
+    private String signingTime;
+
+    @Schema(description = "订单号")
+    @ExcelProperty(value = "订单号")
+    private String orderNo;
+
+    @Schema(description = "保司名称")
+    @ExcelProperty(value = "保司名称")
+    private String companyName;
+
+    @Schema(description = "出单机构")
+    @ExcelProperty(value = "出单机构")
+    private String deptName;
+
+    @Schema(description = "出单协议")
+    @ExcelProperty(value = "出单协议")
+    private String agreementName;
+
+    @Schema(description = "订单类型")
+    @ExcelProperty(value = "订单类型")
+    private String entryStatus;
+
+    @Schema(description = "车牌号")
+    @ExcelProperty(value = "车牌号")
+    private String licenseNo;
+
+    @Schema(description = "应收跟单费")
+    @ExcelProperty(value = "应收跟单费")
+    private String receivableAmount;
+
+    @Schema(description = "险种")
+    @ExcelProperty(value = "险种")
+    private String productName;
+
+    @Schema(description = "被保人")
+    @ExcelProperty(value = "被保人")
+    private String insuredPerson;
+
+    @Schema(description = "非车保单号")
+    @ExcelProperty(value = "非车保单号")
+    private String jqPolicyNo;
+
+    @Schema(description = "非车保费")
+    @ExcelProperty(value = "非车保费")
+    private String jqPremium;
+
+    @Schema(description = "非车险不含税保费")
+    @ExcelProperty(value = "非车险不含税保费")
+    private String jqPremiumNoTax;
+
+    @Schema(description = "非车跟单费比例")
+    @ExcelProperty(value = "非车跟单费比例")
+    private String jqSuperviseCostsProportion;
+
+    @Schema(description = "交强起保日期")
+    @ExcelProperty(value = "交强起保日期")
+    private String jqStartDate;
+
+    @Schema(description = "商业起保日期")
+    @ExcelProperty(value = "商业起保日期")
+    private String syStartDate;
+
+    @Schema(description = "创建时间")
+    @ExcelProperty(value = "创建时间")
+    private LocalDateTime createTime;
+}

+ 95 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportOtherSettlementDetailExcelDto.java

@@ -0,0 +1,95 @@
+package com.jzg.commons.entity.finance.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author quchen
+ * @date 2025/7/30 15:28
+ */
+
+@Data
+public class ExportOtherSettlementDetailExcelDto {
+    @Schema(description = "结算记录编号")
+    @ExcelProperty("结算记录编号")
+    private String settlementId;
+
+    @Schema(description = "开票记录编号")
+    @ExcelProperty("开票记录编号")
+    private String invoiceId;
+
+    @Schema(description = "保险公司")
+    @ExcelProperty(value = "保险公司")
+    private String companyName;
+
+    @Schema(description = "开票方")
+    @ExcelProperty(value = "开票方")
+    private String invoiceParty;
+
+    @Schema(description = "签单时间")
+    @ExcelProperty(value = "签单时间")
+    private String signingTime;
+
+    @Schema(description = "状态")
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    @Schema(description = "车牌号")
+    @ExcelProperty(value = "车牌号")
+    private String licenseNo;
+
+    @Schema(description = "险种")
+    @ExcelProperty(value = "险种")
+    private String productName;
+
+    @Schema(description = "应收跟单费")
+    @ExcelProperty(value = "应收跟单费")
+    private String receivableOtherCosts;
+
+    @Schema(description = "交强保单号")
+    @ExcelProperty(value = "交强保单号")
+    private String jqPolicyNo;
+
+    @Schema(description = "交强保费")
+    @ExcelProperty(value = "交强保费")
+    private String jqPremium;
+
+    @Schema(description = "交强跟单费比例")
+    @ExcelProperty(value = "交强跟单费比例")
+    private String jqOtherCostsProportion;
+
+    @Schema(description = "商业保单号")
+    @ExcelProperty(value = "商业保单号")
+    private String syPolicyNo;
+
+    @Schema(description = "商业保费")
+    @ExcelProperty(value = "商业保费")
+    private String syPremium;
+
+    @Schema(description = "商业跟单费比例")
+    @ExcelProperty(value = "商业跟单费比例")
+    private String syOtherCostsProportion;
+
+    @Schema(description = "车船税")
+    @ExcelProperty(value = "车船税")
+    private String taxPremium;
+
+    @Schema(description = "开票人")
+    @ExcelProperty(value = "开票人")
+    private String invoicePerson;
+
+    @Schema(description = "开票时间")
+    @ExcelProperty(value = "开票时间")
+    private LocalDateTime invoiceTime;
+
+    @Schema(description = "结算人")
+    @ExcelProperty(value = "结算人")
+    private String settlementPerson;
+
+    @Schema(description = "结算时间")
+    @ExcelProperty(value = "结算时间")
+    private LocalDateTime settlementTime;
+}

+ 84 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportOtherSettlementDetailJyExcelDto.java

@@ -0,0 +1,84 @@
+package com.jzg.commons.entity.finance.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author quchen
+ * @date 2025/7/30 15:29
+ */
+
+@Data
+public class ExportOtherSettlementDetailJyExcelDto {
+    @Schema(description = "开票记录编号")
+    @ExcelProperty(value = "开票记录编号")
+    private String invoiceId;
+
+    @Schema(description = "结算记录编号")
+    @ExcelProperty(value = "结算记录编号")
+    private String settlementId;
+
+    @Schema(description = "保险公司")
+    @ExcelProperty(value = "保险公司")
+    private String companyName;
+
+    @Schema(description = "开票方")
+    @ExcelProperty(value = "开票方")
+    private String invoiceParty;
+
+    @Schema(description = "签单时间")
+    @ExcelProperty(value = "签单时间")
+    private String signingTime;
+
+    @Schema(description = "状态")
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    @Schema(description = "车牌号")
+    @ExcelProperty(value = "车牌号")
+    private String licenseNo;
+
+    @Schema(description = "险种")
+    @ExcelProperty(value = "险种")
+    private String productName;
+
+    @Schema(description = "应收跟单费")
+    @ExcelProperty(value = "应收跟单费")
+    private String receivableSuperviseCosts;
+
+    @Schema(description = "非车保单号")
+    @ExcelProperty(value = "非车保单号")
+    private String jyPolicyNo;
+
+    @Schema(description = "非车保费")
+    @ExcelProperty(value = "非车保费")
+    private String jyPremium;
+
+    @Schema(description = "非车跟单费比例")
+    @ExcelProperty(value = "非车跟单费比例")
+    private String jyOtherCostsProportion;
+
+    @Schema(description = "商业保单号")
+    @ExcelProperty(value = "商业保单号")
+    private String syPolicyNo;
+
+    @Schema(description = "开票人")
+    @ExcelProperty(value = "开票人")
+    private String invoicePerson;
+
+    @Schema(description = "开票时间")
+    @ExcelProperty(value = "开票时间")
+    private LocalDateTime invoiceTime;
+
+    @Schema(description = "结算人")
+    @ExcelProperty(value = "结算人")
+    private String settlementPerson;
+
+    @Schema(description = "结算时间")
+    @ExcelProperty(value = "结算时间")
+    private LocalDateTime settlementTime;
+
+}

+ 63 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportOtherSettlementExcelDto.java

@@ -0,0 +1,63 @@
+package com.jzg.commons.entity.finance.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author quchen
+ * @date 2025/7/30 10:49
+ */
+
+@Data
+public class ExportOtherSettlementExcelDto {
+
+    @Schema(description = "结算记录编号")
+    @ExcelProperty(value = "结算记录编号")
+    private String settlementId;
+
+    @Schema(description = "保险公司")
+    @ExcelProperty(value = "保险公司")
+    private String companyName;
+
+    @Schema(description = "开票方")
+    @ExcelProperty(value = "开票方")
+    private String invoiceParty;
+
+    @Schema(description = "应收项")
+    @ExcelProperty(value = "应收项")
+    private String invoiceType;
+
+    @Schema(description = "税点")
+    @ExcelProperty(value = "税点")
+    private String taxPoint;
+
+    @Schema(description = "实收金额")
+    @ExcelProperty(value = "实收金额")
+    private String actualReceivedAmount;
+
+    @Schema(description = "收款日期")
+    @ExcelProperty(value = "收款日期")
+    private String receivePaymentDate;
+
+    @Schema(description = "结算人")
+    @ExcelProperty(value = "结算人")
+    private String createBy;
+
+    @Schema(description = "结算时间")
+    @ExcelProperty(value = "结算时间")
+    private LocalDateTime createTime;
+
+    @Schema(description = "开票记录编号")
+    @ExcelProperty(value = "开票记录编号")
+    private String invoiceId;
+
+    @Schema(description = "附件id")
+    private String fileId;
+
+    @Schema(description = "附件url")
+    private String fileUrl;
+
+}

+ 111 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportSuperviseExcelDto.java

@@ -0,0 +1,111 @@
+package com.jzg.commons.entity.finance.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author quchen
+ * @date 2025/7/25 10:05
+ * 手续费 车险应收
+ */
+
+@Data
+public class ExportSuperviseExcelDto {
+    @Schema(description = "签单时间")
+    @ExcelProperty(value = "签单时间")
+    private String signingTime;
+
+    @Schema(description = "订单号")
+    @ExcelProperty(value = "订单号")
+    private String orderNo;
+
+    @Schema(description = "保司名称")
+    @ExcelProperty(value = "保司名称")
+    private String companyName;
+
+    @Schema(description = "出单机构")
+    @ExcelProperty(value = "出单机构")
+    private String deptName;
+
+    @Schema(description = "出单协议")
+    @ExcelProperty(value = "出单协议")
+    private String agreementName;
+
+    @Schema(description = "车牌号")
+    @ExcelProperty(value = "车牌号")
+    private String licenseNo;
+
+    @Schema(description = "总应收金额")
+    @ExcelProperty(value = "总应收金额")
+    private String receivableAmount;
+
+    @Schema(description = "险种")
+    @ExcelProperty(value = "险种")
+    private String productName;
+
+    @Schema(description = "被保人")
+    @ExcelProperty(value = "被保人")
+    private String insuredPerson;
+
+    @Schema(description = "交强保单号")
+    @ExcelProperty(value = "交强保单号")
+    private String jqPolicyNo;
+
+    @Schema(description = "交强保费")
+    @ExcelProperty(value = "交强保费")
+    private String jqPremium;
+
+    @Schema(description = "交强手续费比例")
+    @ExcelProperty(value = "交强手续费比例")
+    private String jqSuperviseCostsProportion;
+
+    @Schema(description = "交强起保日期")
+    @ExcelProperty(value = "交强起保日期")
+    private String jqStartDate;
+
+    @Schema(description = "商业保单号")
+    @ExcelProperty(value = "商业保单号")
+    private String syPolicyNo;
+
+    @Schema(description = "商业保费")
+    @ExcelProperty(value = "商业保费")
+    private String syPremium;
+
+    @Schema(description = "商业手续费比例")
+    @ExcelProperty(value = "商业手续费比例")
+    private String sySuperviseCostsProportion;
+
+    @Schema(description = "商业起保日期")
+    @ExcelProperty(value = "商业起保日期")
+    private String syStartDate;
+
+    @Schema(description = "车船税")
+    @ExcelProperty(value = "车船税")
+    private String taxPremium;
+
+    @Schema(description = "创建时间")
+    @ExcelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    @Schema(description = "创建人")
+    @ExcelProperty(value = "创建人")
+    private String createBy;
+
+    @Schema(description = "操作时间")
+    @ExcelProperty(value = "操作时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    @Schema(description = "操作人")
+    @ExcelProperty(value = "操作人")
+    private String updateBy;
+
+    @Schema(description = "对接人")
+    @ExcelProperty(value = "对接人")
+    private String contactPerson;
+}

+ 77 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportSuperviseJyExcelDto.java

@@ -0,0 +1,77 @@
+package com.jzg.commons.entity.finance.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author quchen
+ * @date 2025/7/29 15:07
+ */
+
+@Data
+public class ExportSuperviseJyExcelDto {
+    @Schema(description = "签单时间")
+    @ExcelProperty(value = "签单时间")
+    private String signingTime;
+
+    @Schema(description = "订单号")
+    @ExcelProperty(value = "订单号")
+    private String orderNo;
+
+    @Schema(description = "保司名称")
+    @ExcelProperty(value = "保司名称")
+    private String companyName;
+
+    @Schema(description = "出单机构")
+    @ExcelProperty(value = "出单机构")
+    private String deptName;
+
+    @Schema(description = "出单协议")
+    @ExcelProperty(value = "出单协议")
+    private String agreementName;
+
+    @Schema(description = "订单类型")
+    @ExcelProperty(value = "订单类型")
+    private String entryStatus;
+
+    @Schema(description = "车牌号")
+    @ExcelProperty(value = "车牌号")
+    private String licenseNo;
+
+    @Schema(description = "险种")
+    @ExcelProperty(value = "险种")
+    private String productName;
+
+    @Schema(description = "被保人")
+    @ExcelProperty(value = "被保人")
+    private String insuredPerson;
+
+    @Schema(description = "非车保单号")
+    @ExcelProperty(value = "非车保单号")
+    private String jyPolicyNo;
+
+    @Schema(description = "非车保费")
+    @ExcelProperty(value = "非车保费")
+    private String jyPremium;
+
+    @Schema(description = "非车手续费比例")
+    @ExcelProperty(value = "非车手续费比例")
+    private String jySuperviseCostsProportion;
+
+    @Schema(description = "交强起保日期")
+    @ExcelProperty(value = "交强起保日期")
+    private String jqStartDate;
+
+    @Schema(description = "商业起保日期")
+    @ExcelProperty(value = "商业起保日期")
+    private String syStartDate;
+
+    @Schema(description = "创建人")
+    @ExcelProperty(value = "创建人")
+    private String createBy;
+
+    @Schema(description = "对接人")
+    @ExcelProperty(value = "对接人")
+    private String contactPerson;
+}

+ 108 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportSuperviseSettlementDetailExcelDto.java

@@ -0,0 +1,108 @@
+package com.jzg.commons.entity.finance.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author quchen
+ * @date 2025/7/28 16:37
+ */
+
+@Data
+public class ExportSuperviseSettlementDetailExcelDto {
+    @Schema(description = "结算记录编号")
+    @ExcelProperty("结算记录编号")
+    private String settlementId;
+
+    @Schema(description = "开票记录编号")
+    @ExcelProperty("开票记录编号")
+    private String invoiceId;
+
+    @Schema(description = "保险公司")
+    @ExcelProperty(value = "保险公司")
+    private String companyName;
+
+    @Schema(description = "开票方")
+    @ExcelProperty(value = "开票方")
+    private String invoiceParty;
+
+    @Schema(description = "签单时间")
+    @ExcelProperty(value = "签单时间")
+    private String signingTime;
+
+    @Schema(description = "状态")
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    @Schema(description = "车牌号")
+    @ExcelProperty(value = "车牌号")
+    private String licenseNo;
+
+    @Schema(description = "险种")
+    @ExcelProperty(value = "险种")
+    private String productName;
+
+    @Schema(description = "应收手续费")
+    @ExcelProperty(value = "应收手续费")
+    private String receivableSuperviseCosts;
+
+    @Schema(description = "交强保单号")
+    @ExcelProperty(value = "交强保单号")
+    private String jqPolicyNo;
+
+    @Schema(description = "交强保费")
+    @ExcelProperty(value = "交强保费")
+    private String jqPremium;
+
+    @Schema(description = "交强手续费比例")
+    @ExcelProperty(value = "交强手续费比例")
+    private String jqSuperviseCostsProportion;
+
+    @Schema(description = "商业保单号")
+    @ExcelProperty(value = "商业保单号")
+    private String syPolicyNo;
+
+    @Schema(description = "商业保费")
+    @ExcelProperty(value = "商业保费")
+    private String syPremium;
+
+    @Schema(description = "商业手续费比例")
+    @ExcelProperty(value = "商业手续费比例")
+    private String sySuperviseCostsProportion;
+
+    @Schema(description = "非车保单号")
+    @ExcelProperty(value = "非车保单号")
+    private String jyPolicyNo;
+
+    @Schema(description = "非车保费")
+    @ExcelProperty(value = "非车保费")
+    private String jyPremium;
+
+    @Schema(description = "非车手续费比例")
+    @ExcelProperty(value = "非车手续费比例")
+    private String jySuperviseCostsProportion;
+
+    @Schema(description = "车船税")
+    @ExcelProperty(value = "车船税")
+    private String taxPremium;
+
+    @Schema(description = "开票人")
+    @ExcelProperty(value = "开票人")
+    private String invoicePerson;
+
+    @Schema(description = "开票时间")
+    @ExcelProperty(value = "开票时间")
+    private LocalDateTime invoiceTime;
+
+    @Schema(description = "结算人")
+    @ExcelProperty(value = "结算人")
+    private String settlementPerson;
+
+    @Schema(description = "结算时间")
+    @ExcelProperty(value = "结算时间")
+    private LocalDateTime settlementTime;
+
+}

+ 84 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportSuperviseSettlementDetailJyExcelDto.java

@@ -0,0 +1,84 @@
+package com.jzg.commons.entity.finance.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author quchen
+ * @date 2025/7/29 9:25
+ */
+
+@Data
+public class ExportSuperviseSettlementDetailJyExcelDto {
+    @Schema(description = "结算记录编号")
+    @ExcelProperty("结算记录编号")
+    private String settlementId;
+
+    @Schema(description = "开票记录编号")
+    @ExcelProperty("开票记录编号")
+    private String invoiceId;
+
+    @Schema(description = "保险公司")
+    @ExcelProperty(value = "保险公司")
+    private String companyName;
+
+    @Schema(description = "开票方")
+    @ExcelProperty(value = "开票方")
+    private String invoiceParty;
+
+    @Schema(description = "签单时间")
+    @ExcelProperty(value = "签单时间")
+    private String signingTime;
+
+    @Schema(description = "状态")
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    @Schema(description = "车牌号")
+    @ExcelProperty(value = "车牌号")
+    private String licenseNo;
+
+    @Schema(description = "险种")
+    @ExcelProperty(value = "险种")
+    private String productName;
+
+    @Schema(description = "应收手续费")
+    @ExcelProperty(value = "应收手续费")
+    private String receivableSuperviseCosts;
+
+    @Schema(description = "非车保单号")
+    @ExcelProperty(value = "非车保单号")
+    private String jyPolicyNo;
+
+    @Schema(description = "非车保费")
+    @ExcelProperty(value = "非车保费")
+    private String jyPremium;
+
+    @Schema(description = "非车手续费比例")
+    @ExcelProperty(value = "非车手续费比例")
+    private String jySuperviseCostsProportion;
+
+    @Schema(description = "商业保单号")
+    @ExcelProperty(value = "商业保单号")
+    private String syPolicyNo;
+
+    @Schema(description = "开票人")
+    @ExcelProperty(value = "开票人")
+    private String invoicePerson;
+
+    @Schema(description = "开票时间")
+    @ExcelProperty(value = "开票时间")
+    private LocalDateTime invoiceTime;
+
+    @Schema(description = "结算人")
+    @ExcelProperty(value = "结算人")
+    private String settlementPerson;
+
+    @Schema(description = "结算时间")
+    @ExcelProperty(value = "结算时间")
+    private LocalDateTime settlementTime;
+
+}

+ 63 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ExportSuperviseSettlementExcelDto.java

@@ -0,0 +1,63 @@
+package com.jzg.commons.entity.finance.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author quchen
+ * @date 2025/7/28 14:42
+ */
+
+@Data
+public class ExportSuperviseSettlementExcelDto {
+
+    @Schema(description = "结算记录编号")
+    @ExcelProperty(value = "结算记录编号")
+    private String settlementId;
+
+    @Schema(description = "保险公司")
+    @ExcelProperty(value = "保险公司")
+    private String companyName;
+
+    @Schema(description = "开票方")
+    @ExcelProperty(value = "开票方")
+    private String invoiceParty;
+
+    @Schema(description = "应收项")
+    @ExcelProperty(value = "应收项")
+    private String invoiceType;
+
+    @Schema(description = "税点")
+    @ExcelProperty(value = "税点")
+    private String taxPoint;
+
+    @Schema(description = "实收金额")
+    @ExcelProperty(value = "实收金额")
+    private String actualReceivedAmount;
+
+    @Schema(description = "收款日期")
+    @ExcelProperty(value = "收款日期")
+    private String receivePaymentDate;
+
+    @Schema(description = "结算人")
+    @ExcelProperty(value = "结算人")
+    private String createBy;
+
+    @Schema(description = "结算时间")
+    @ExcelProperty(value = "结算时间")
+    private LocalDateTime createTime;
+
+    @Schema(description = "开票记录编号")
+    @ExcelProperty(value = "开票记录编号")
+    private String invoiceId;
+
+    @Schema(description = "附件id")
+    private String fileId;
+
+    @Schema(description = "附件url")
+    private String fileUrl;
+
+}

+ 19 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/InvoiceAmountDto.java

@@ -0,0 +1,19 @@
+package com.jzg.commons.entity.finance.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author quchen
+ * @date 2025/8/4 10:34
+ */
+
+@Data
+public class InvoiceAmountDto {
+    private String companyId;
+
+    private String companyName;
+
+    private BigDecimal superviseAmount;
+}

+ 46 - 0
commons/src/main/java/com/jzg/commons/entity/finance/dto/ReceiverSettlementReportDto.java

@@ -0,0 +1,46 @@
+package com.jzg.commons.entity.finance.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author quchen
+ * @date 2025/9/16 10:32
+ */
+
+@Data
+public class ReceiverSettlementReportDto {
+    @Schema(description = "对接人")
+    private String receiver;
+
+    @Schema(description = "保险公司")
+    private String companyName;
+
+    @Schema(description = "应收总计")
+    private String totalReceivable;
+
+    @Schema(description = "应收手续费")
+    private String superviseFee;
+
+    @Schema(description = "应收跟单费")
+    private String followFee;
+
+    @Schema(description = "已结算手续费")
+    private String settledSuperviseFee;
+
+    @Schema(description = "已结算跟单费")
+    private String settledFollowFee;
+
+    @Schema(description = "已结算总计")
+    private String settledAmount;
+
+    @Schema(description = "未结算手续费")
+    private String unSettledSuperviseFee;
+
+    @Schema(description = "未结算跟单费")
+    private String unSettledFollowFee;
+
+
+    @Schema(description = "未结算总计")
+    private String unSettledAmount;
+}

+ 25 - 0
commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncome.java

@@ -21,6 +21,12 @@ public class InsPlyIncome  extends BaseModel {
     @Schema(description = "机构名称")
     private String deptName;
 
+    @Schema(description = "产品id")
+    private String productId;
+
+    @Schema(description = "产品名称")
+    private String productName;
+
     @Schema(description = "险种")
     private String riskCode;
 
@@ -42,6 +48,9 @@ public class InsPlyIncome  extends BaseModel {
     @Schema(description = "协议名称")
     private String agreementName;
 
+    @Schema(description = "被保人")
+    private String insuredPerson;
+
     @Schema(description = "车牌号")
     private String licenseNo;
 
@@ -84,6 +93,9 @@ public class InsPlyIncome  extends BaseModel {
     @Schema(description = "驾意手续费比例")
     private String jySuperviseCostsProportion;
 
+    @Schema(description = "应收手续费")
+    private String superviseCostsPremiums;
+
     @Schema(description = "交强跟单费比例")
     private String jqOtherCostsProportion;
 
@@ -111,6 +123,9 @@ public class InsPlyIncome  extends BaseModel {
     @Schema(description = "驾意应收费用")
     private String jyReceivablePremium;
 
+    @Schema(description = "总应收金额")
+    private String receivableAmount;
+
     @Schema(description = "手续费是否已经结算")
     private String superviseSettlement;
 
@@ -132,4 +147,14 @@ public class InsPlyIncome  extends BaseModel {
     @Schema(description = "对接人")
     private String contactPerson;
 
+    @Schema(description = "系统code")
+    private String systemCode;
+
+    @Schema(description = "交强起保日期")
+    private String jqStartDate;
+
+    @Schema(description = "商业起保日期")
+    private String syStartDate;
+
+
 }

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncomeInvoice.java

@@ -11,6 +11,9 @@ import java.math.BigDecimal;
 public class InsPlyIncomeInvoice extends BaseModel {
     private String id;
 
+    @Schema(description = "保司id")
+    private String companyId;
+
     @Schema(description = "开票类型")
     private String invoiceType;
 

+ 6 - 0
commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncomeInvoiceSettlement.java

@@ -1,12 +1,14 @@
 package com.jzg.commons.entity.finance.po;
 
 import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.jzg.commons.core.base.BaseModel;
 import com.jzg.commons.util.idgen.IdGenerate;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 @Data
 @Schema(description = "财务应收开票结算表")
@@ -22,6 +24,10 @@ public class InsPlyIncomeInvoiceSettlement extends BaseModel {
     @Schema(description = "收款日期")
     private DateTime receivePaymentDate;
 
+    @TableField(exist = false)
+    @Schema(description = "凭证")
+    private List<String> voucherList;
+
     public InsPlyIncomeInvoiceSettlement(){
 
     }

+ 53 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/InvoiceRecordQueryVo.java

@@ -0,0 +1,53 @@
+package com.jzg.commons.entity.finance.vo;
+
+import com.jzg.commons.core.base.PageRequest;
+import lombok.Data;
+
+/**
+ * 开票记录查询vo
+ */
+@Data
+public class InvoiceRecordQueryVo extends PageRequest {
+
+    /**
+     * 记录编号
+     */
+    private String recordId;
+
+    /**
+     * 保险公司
+     */
+    private String companyId;
+
+    /**
+     * 开票类型
+     */
+    private String invoiceType;
+
+    /**
+     * 开票方
+     */
+    private String invoiceParty;
+
+    /**
+     * 应收项
+     */
+    private String accountsReceivable;
+
+    /**
+     * 结算状态
+     */
+    private String settlementStatus;
+
+    /**
+     * 开票人
+     */
+    private String invoicePerson;
+
+    /**
+     * 开票日期
+     */
+    private String invoiceDate;
+
+
+}

+ 63 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/InvoiceRecordResult.java

@@ -0,0 +1,63 @@
+package com.jzg.commons.entity.finance.vo;
+
+import com.jzg.commons.core.base.PageRequest;
+import lombok.Data;
+
+@Data
+public class InvoiceRecordResult extends PageRequest {
+
+    /**
+     * 开票记录编号
+     */
+    private String id;
+
+    /**
+     * 保险公司
+     */
+    private String companyId;
+
+    /**
+     * 开票方
+     */
+    private String invoiceParty;
+
+    /**
+     * 虚增金额
+     */
+    private String overinflatedAmount;
+
+    /**
+     * 应收项
+     */
+    private String accountsReceivable;
+
+    /**
+     * 应收费用
+     */
+    private String receivableSupervisePremium;
+
+    /**
+     * 开票金额
+     */
+    private String actualReceivedAmount;
+
+    /**
+     * 税点
+     */
+    private String taxPoint;
+
+    /**
+     * 结算状态
+     */
+    private String settlementStatus;
+
+    /**
+     * 开票人
+     */
+    private String createBy;
+
+    /**
+     * 开票日期
+     */
+    private String createTime;
+}

+ 13 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/InvoiceingResult.java

@@ -0,0 +1,13 @@
+package com.jzg.commons.entity.finance.vo;
+
+import lombok.Data;
+
+@Data
+public class InvoiceingResult {
+
+    // 开票id
+    String invoiceId;
+
+    // 开票总金额
+    String sumPrice;
+}

+ 26 - 1
commons/src/main/java/com/jzg/commons/entity/finance/vo/ReceivableQueryVo.java

@@ -1,8 +1,11 @@
 package com.jzg.commons.entity.finance.vo;
 
+import com.jzg.commons.core.base.PageRequest;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.util.List;
+
 
 /**
  * @author tz
@@ -11,7 +14,23 @@ import lombok.Data;
  */
 
 @Data
-public class ReceivableQueryVo {
+public class ReceivableQueryVo extends PageRequest {
+
+    @Schema(description = "选中类型")
+    // 1 全部数据选中  2 选中部分数据
+    private String selectedType;
+
+    @Schema(description = "选中id")
+    private List<String> selectedIds;
+
+    @Schema(description = "协议类型")
+    private String agreementType;
+
+    @Schema(description = "id")
+    private String id;
+
+    @Schema(description = "ids")
+    private List<String> ids;
 
     @Schema(description = "查询类型")
     private String queryType;
@@ -19,6 +38,9 @@ public class ReceivableQueryVo {
     @Schema(description = "车牌号")
     private String licenseNo;
 
+    @Schema(description = "险种信息")
+    private String productId;
+
     @Schema(description = "保险公司")
     private String companyId;
 
@@ -31,6 +53,9 @@ public class ReceivableQueryVo {
     @Schema(description = "订单号")
     private String orderNo;
 
+    @Schema(description = "订单号集合")
+    private List<String> orderNos;
+
     @Schema(description = "协议id")
     private String agreementId;
 

+ 50 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/SettlementQueryVo.java

@@ -0,0 +1,50 @@
+package com.jzg.commons.entity.finance.vo;
+
+import com.jzg.commons.core.base.PageRequest;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author quchen
+ * @date 2025/7/28 17:41
+ */
+
+@Data
+@Schema(description = "结算记录查询Vo")
+public class SettlementQueryVo extends PageRequest {
+
+    @Schema(description = "结算记录编号")
+    private String settlementId;
+
+    @Schema(description = "开票记录编号")
+    private String invoiceId;
+
+    @Schema(description = "保险公司Id")
+    private String companyId;
+
+    @Schema(description = "开票方")
+    private String invoiceParty;
+
+    @Schema(description = "结算状态")
+    private String status;
+
+    @Schema(description = "结算人")
+    private String settlementPerson;
+
+    @Schema(description = "结算时间开始")
+    private String settlementTimeStart;
+
+    @Schema(description = "结算时间结束")
+    private String settlementTimeEnd;
+
+    @Schema(description = "结算记录编号集合")
+    private List<String> settlementIds;
+
+    @Schema(description = "开票类型集合")
+    private List<String> invoiceTypes;
+
+    @Schema(description = "协议类型 1-平台协议 2-私有协议")
+    private String agreementType;
+}

+ 39 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/SettlementReportQueryVo.java

@@ -0,0 +1,39 @@
+package com.jzg.commons.entity.finance.vo;
+
+import com.jzg.commons.core.base.PageRequest;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author quchen
+ * @date 2025/7/31 17:59
+ */
+
+@Data
+public class SettlementReportQueryVo extends PageRequest {
+    @Schema(description = "保险公司id")
+    private String companyId;
+
+    @Schema(description = "开始时间")
+    private String startTime;
+
+    @Schema(description = "结束时间")
+    private String endTime;
+
+    @Schema(description = "结算状态")
+    private String status;
+
+    @Schema(description = "开票类型 1 手续费  2 跟单费  3 驾意险手续费 4 驾意险跟单费")
+    private List<String> invoiceTypes;
+
+    @Schema(description = "上级公司id")
+    private String parentId;
+
+    @Schema(description = "协议类型")
+    private String agreementType;
+
+    @Schema(description = "对接人")
+    private String receiver;
+}

+ 39 - 0
commons/src/main/java/com/jzg/commons/entity/po/EsmUserReferrer.java

@@ -0,0 +1,39 @@
+package com.jzg.commons.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author quchen
+ * @date 2025/8/6 16:50
+ */
+
+@Data
+@TableName("esm_user_referrer")
+@NoArgsConstructor
+@AllArgsConstructor
+public class EsmUserReferrer {
+    @TableId(type = IdType.ASSIGN_ID)
+    private String id;
+
+    @Schema(description = "推荐人id")
+    private String referrerId;
+
+    @Schema(description = "推荐人姓名")
+    private String referrerName;
+
+    @Schema(description = "推荐人机构id")
+    private String referrerDeptId;
+
+    public EsmUserReferrer(SysUserJzgInfo sysUserJzgInfo, SysUserJzgInfo referrer) {
+        this.id = sysUserJzgInfo.getId();
+        this.referrerId = referrer.getId();
+        this.referrerName = referrer.getName();
+        this.referrerDeptId = referrer.getDeptId();
+    }
+}

+ 26 - 3
commons/src/main/java/com/jzg/commons/entity/po/InsFeeOrders.java

@@ -1,14 +1,13 @@
 package com.jzg.commons.entity.po;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.jzg.commons.entity.vo.PtlAgreementCostTypeVo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.util.List;
+import java.time.LocalDateTime;
 
 /**
  * @author quchen
@@ -154,4 +153,28 @@ public class InsFeeOrders {
 
     @Schema(description = "驾意险出口比例")
     private BigDecimal jyExportRatio;
+
+    @Schema(description = "一级分销费")
+    private BigDecimal firstDistributionFee;
+
+    @Schema(description = "一级分销员id")
+    private String firstDistributorId;
+
+    @Schema(description = "二级分销费")
+    private BigDecimal secondDistributionFee;
+
+    @Schema(description = "二级分销员id")
+    private String secondDistributorId;
+
+    @Schema(description = "三级分销费")
+    private BigDecimal thirdDistributionFee;
+
+    @Schema(description = "三级分销员id")
+    private String thirdDistributorId;
+
+    @Schema(description = "签单时间")
+    @TableField(exist = false)
+    private LocalDateTime signingTime;
+
+
 }

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/po/PtlAgreement.java

@@ -52,6 +52,9 @@ public class PtlAgreement extends BaseModel {
     @Schema(description = "关联-保险公司id")
     private String companyId;
 
+    @Schema(description = "合作-保险公司id")
+    private String partnerCompanyId;
+
     /** 协议起期 */
     @Schema(description = "协议起期")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

+ 4 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysDept.java

@@ -71,6 +71,10 @@ public class SysDept extends BaseModel implements Serializable{
     @Schema(description = "系统code")
     private String systemCode;
 
+    @TableField(value = "is_distribution")
+    @Schema(description = "是否参与分销 0-否 1-是")
+    private String isDistribution;
+
     @TableField(exist = false)
     @Schema(description = "子机构")
     private List<SysDept> children;

+ 52 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysDistributionSetting.java

@@ -0,0 +1,52 @@
+package com.jzg.commons.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author quchen
+ * @date 2025/8/6 11:16
+ */
+
+@Data
+@TableName("sys_distribution_setting")
+@NoArgsConstructor
+@AllArgsConstructor
+public class SysDistributionSetting {
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    @Schema(description = "分销模式 1-一级分销 2-二级分销 3-三级分销")
+    private String distributionMode;
+
+    @Schema(description = "一级佣金比例(%)")
+    private BigDecimal commissionRatioLevel1;
+
+    @Schema(description = "二级佣金比例(%)")
+    private BigDecimal commissionRatioLevel2;
+
+    @Schema(description = "三级佣金比例(%)")
+    private BigDecimal commissionRatioLevel3;
+
+    @Schema(description = "分销员招募方式:1-手动申请 2-加入组织自动成为分销员")
+    private String recruitmentMethod;
+
+    @Schema(description = "不参与分销的机构范围:1-全部机构 2-部分机构")
+    private String excludeDeptScope;
+
+    @Schema(description = "租户code")
+    private String systemCode;
+
+    @Schema(description = "不参与分销的机构")
+    @TableField(exist = false)
+    private List<SysDept> excludeDept;
+}

+ 21 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysUserJzgInfo.java

@@ -12,6 +12,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -222,6 +223,15 @@ public class SysUserJzgInfo extends BaseModel implements Serializable {
     @Schema(description = "是否删除 0未删除 1 删除")
     private Integer isDelete;
 
+
+    @TableField(value = "is_distribution")
+    @Schema(description = "是否是分销员 0-否 1-是")
+    private String isDistribution;
+
+    @TableField(value = "distribution_time")
+    @Schema(description = "成为分销员时间")
+    private LocalDateTime distributionTime;
+
     @TableField(exist = false)
     @Schema(description = "身份证正面")
     private String sfz1;
@@ -336,6 +346,17 @@ public class SysUserJzgInfo extends BaseModel implements Serializable {
         this.referrerId = yqirInfo.getId();
     }
 
+    public SysUserJzgInfo(SysUser sysUser,SysUserJzgInfo inviterInfo) {
+        this.userId = sysUser.getId();
+        this.name = sysUser.getUsername();
+        this.status = 0;
+        this.isEnable = 0;
+        this.deptId = inviterInfo.getDeptId() == null ? "" : inviterInfo.getDeptId();
+        this.typeAttr = inviterInfo.getTypeAttr();
+        this.referrerId = inviterInfo.getId();
+        this.systemCode = inviterInfo.getSystemCode();
+    }
+
     /**
      * 重置人员类型   团队 渠道 电销 转为个代
      * @param typeAttr

+ 7 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/CustomerInfoVo.java

@@ -70,6 +70,13 @@ public class CustomerInfoVo implements Serializable {
      */
     @Schema(description = "证件类型代码")
     private String identifyType;
+
+    /**
+     * 证件类型代码名称
+     */
+    @Schema(description = "证件类型代码名称")
+    private String identifyTypeName;
+
     /**
      * 组织机构代码
      */

+ 31 - 0
commons/src/main/java/com/jzg/commons/entity/report/dto/ReportDictDto.java

@@ -0,0 +1,31 @@
+package com.jzg.commons.entity.report.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/9/17 10:09
+ *  @Description:  字典对象
+ */
+@Data
+@Schema(description = "字典对象")
+@AllArgsConstructor
+@NoArgsConstructor
+public class ReportDictDto implements Serializable {
+    /**
+     * 值
+     */
+    @Schema(description = "值")
+    private String value;
+    /**
+     *  名称
+     */
+    @Schema(description = "名称")
+    private String label;
+}

+ 108 - 0
commons/src/main/java/com/jzg/commons/entity/report/dto/ReportSearchConfigurationDto.java

@@ -0,0 +1,108 @@
+package com.jzg.commons.entity.report.dto;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.jzg.commons.entity.report.po.ReportSearchConfiguration;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/9/16 17:50
+ *  @Description:  参数列表数据
+ */
+@Data
+@Schema(description = "筛选参数对象")
+@AllArgsConstructor
+@NoArgsConstructor
+public class ReportSearchConfigurationDto implements Serializable {
+    /**
+     * 主键
+     */
+    @Schema(description = "主键")
+    private String id;
+
+    /**
+     * 查询key
+     */
+    @Schema(description = "查询key")
+    private String key;
+
+    /**
+     * 查询名称
+     */
+    @Schema(description = "查询名称")
+    private String label;
+
+    /**
+     * 是否多选  0  不参与  1 单选 2. 多选
+     */
+    @Schema(description = "是否多选  0  不参与  1 单选 2. 多选")
+    private String selectType;
+
+    /**
+     * 显示类型  input select-single select-multiple date-picker date-tree date-cascader
+     */
+    @Schema(description = "显示类型  input select-single select-multiple date-picker date-tree date-cascader")
+    private String inputType;
+
+
+    @Schema(description = "显示类型为 select-single select-multiple  或者 date-tree date-cascader 时使用")
+    private List<?>  listOption;
+
+
+    @Schema(description = "默认值")
+    private String defaultValue;
+
+
+    @Schema(description = "选中值")
+    private String selectValue;
+
+    @Schema(description = "是否是通过一级查询  保险公司查询赋值true")
+    private Boolean isFirst = false;
+
+    @Schema(description = "选中值")
+    private String isFirstLabel;
+
+    /**
+     * 屏蔽不返回前台
+     */
+    @JSONField(serialize = false)
+    @JsonIgnore
+    @Schema(description = "sql")
+    private String searchSql;
+
+    /**
+     * 是否默认   true 是  false 否
+     */
+    @Schema(description = "是否默认   true 是  false 否")
+    private boolean defaultFlag;
+
+    /**
+     * 是否可以选择   true 是  false 否
+     */
+    @Schema(description = "是否可以选择   true 是  false 否")
+    private boolean selectFlag;
+
+    /**
+     * 參數是否显示   true 是  false 否
+     */
+    @Schema(description = "參數是否显示   true 是  false 否")
+    private boolean showFlag;
+
+    /**
+     * 參數是否显示   true 是  false 否
+     */
+    @Schema(description = "參數是否显示   true 是  false 否")
+    private boolean isShowDelIcon;
+}

+ 70 - 0
commons/src/main/java/com/jzg/commons/entity/report/dto/ReportUploadExcelTaskDto.java

@@ -0,0 +1,70 @@
+package com.jzg.commons.entity.report.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/9/15 18:18
+ *  @Description: 导入任务列表
+ */
+@Data
+@Schema(description = "导入任务列表")
+@AllArgsConstructor
+@NoArgsConstructor
+public class ReportUploadExcelTaskDto implements Serializable {
+    /**
+     * 主键
+     */
+    @Schema(description = "主键")
+    private String id;
+    /**
+     * 导入数据名称
+     */
+    @Schema(description = "导入数据名称")
+    private String taskName;
+
+    /**
+     * 导入人
+     */
+    @Schema(description = "导入人id")
+    private String uploadUserId;
+
+    /**
+     * 导入人名字
+     */
+    @Schema(description = "导入人名字")
+    private String uploadUserName;
+
+    /**
+     * 导入时间
+     */
+    @Schema(description = "导入时间")
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date uploadDate;
+
+    /**
+     * 任务状态 0.失败 1 进行中  2. 完成
+     */
+    @Schema(description = "导入状态")
+    private Integer taskStatus;
+
+    /**
+     * 已读未读状态  0.未读 1.已读
+     */
+    @Schema(description = "已读未读状态  0.未读 1.已读")
+    private Integer readStatus;
+}

+ 61 - 0
commons/src/main/java/com/jzg/commons/entity/report/dto/UserTreeDto.java

@@ -0,0 +1,61 @@
+package com.jzg.commons.entity.report.dto;
+
+;
+import com.jzg.commons.entity.po.SysDept;
+import com.jzg.commons.entity.vo.SysDeptVo;
+import com.jzg.commons.util.StringUtils;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.beans.BeanUtils;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/9/22 12:04
+ *  @Description: 管理员树
+ */
+@Data
+@Schema(description = "管理员树")
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserTreeDto implements Serializable {
+    @Schema(description = "用户id")
+    private String id;
+
+    @Schema(description = "用户名称")
+    private String name;
+
+    @Schema(description = "父级用户id")
+    private String parentId;
+
+    @Schema(description = "父级用户id名称")
+    private String parentName;
+
+    @Schema(description = "机构id")
+    private String orgId;
+
+    @Schema(description = "机构名称")
+    private String  orgName;
+
+    @Schema(description = "管理员")
+    private Boolean  isManager;
+
+    @Schema(description = "子用户")
+    private List<UserTreeDto> children;
+
+
+    public UserTreeDto(UserTreeDto userTreeDto){
+        if(!Objects.isNull(userTreeDto)) {
+            BeanUtils.copyProperties(userTreeDto, this);
+        }
+    }
+
+}

+ 137 - 0
commons/src/main/java/com/jzg/commons/entity/report/po/ReportSearchConfiguration.java

@@ -0,0 +1,137 @@
+package com.jzg.commons.entity.report.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/9/16 16:59
+ *  @Description:  报表筛选项配置
+ */
+@TableName(value ="report_search_configuration")
+@Data
+@Schema(description = "导入任务表")
+@AllArgsConstructor
+@NoArgsConstructor
+public class ReportSearchConfiguration implements Serializable {
+    /**
+     * 主键
+     */
+    @Schema(description = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private String id;
+
+    /**
+     * 路由唯一标识
+     */
+    @Schema(description = "路由唯一标识")
+    private String routerPathKey;
+
+    /**
+     * 查询key
+     */
+    @Schema(description = "查询key")
+    private String searchKey;
+
+    /**
+     * 查询名称
+     */
+    @Schema(description = "查询名称")
+    private String searchName;
+
+    /**
+     * 是否多选  0  不参与  1 单选 2. 多选
+     */
+    @Schema(description = "是否多选  0  不参与  1 单选 2. 多选")
+    private String selectType;
+
+    /**
+     * 显示类型  1. input  2. select 3. tree 4.dateRange
+     */
+    @Schema(description = "显示类型  1. input  2. select 3. tree 4.dateRange ")
+    private String showType;
+
+
+    /**
+     * 查询字典或者数据的sql
+     */
+    @Schema(description = "查询字典或者数据的sql")
+    private String searchSql;
+
+    /**
+     * 创建时间
+     */
+    @Schema(description = "创建时间")
+    private Date createTime;
+
+    /**
+     * 创建用户id
+     */
+    @Schema(description = "创建用户id")
+    private String createUserId;
+
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        ReportSearchConfiguration other = (ReportSearchConfiguration) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getRouterPathKey() == null ? other.getRouterPathKey() == null : this.getRouterPathKey().equals(other.getRouterPathKey()))
+            && (this.getSearchKey() == null ? other.getSearchKey() == null : this.getSearchKey().equals(other.getSearchKey()))
+            && (this.getSearchName() == null ? other.getSearchName() == null : this.getSearchName().equals(other.getSearchName()))
+            && (this.getSelectType() == null ? other.getSelectType() == null : this.getSelectType().equals(other.getSelectType()))
+            && (this.getSearchSql() == null ? other.getSearchSql() == null : this.getSearchSql().equals(other.getSearchSql()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getCreateUserId() == null ? other.getCreateUserId() == null : this.getCreateUserId().equals(other.getCreateUserId()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getRouterPathKey() == null) ? 0 : getRouterPathKey().hashCode());
+        result = prime * result + ((getSearchKey() == null) ? 0 : getSearchKey().hashCode());
+        result = prime * result + ((getSearchName() == null) ? 0 : getSearchName().hashCode());
+        result = prime * result + ((getSelectType() == null) ? 0 : getSelectType().hashCode());
+        result = prime * result + ((getSearchSql() == null) ? 0 : getSearchSql().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getCreateUserId() == null) ? 0 : getCreateUserId().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", routerPathKey=").append(routerPathKey);
+        sb.append(", searchKey=").append(searchKey);
+        sb.append(", searchName=").append(searchName);
+        sb.append(", selectType=").append(selectType);
+        sb.append(", searchSql=").append(searchSql);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", createUserId=").append(createUserId);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 161 - 0
commons/src/main/java/com/jzg/commons/entity/report/po/ReportUploadExcelTask.java

@@ -0,0 +1,161 @@
+package com.jzg.commons.entity.report.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/9/16 15:30
+ *  @Description: 导入任务表
+ */
+@TableName(value ="report_upload_excel_task")
+@Data
+@Schema(description = "导入任务表")
+@AllArgsConstructor
+@NoArgsConstructor
+public class ReportUploadExcelTask implements Serializable {
+    /**
+     * 主键
+     */
+    @Schema(description = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private String id;
+
+    /**
+     * 导入数据名称
+     */
+    @Schema(description = "导入数据名称")
+    private String taskName;
+
+    /**
+     * 导入路由
+     */
+    @Schema(description = "导入路由")
+    private String routerPathKey;
+
+    /**
+     * 导入人
+     */
+    @Schema(description = "导入人id")
+    private String uploadUserId;
+
+    /**
+     * 导入人名字
+     */
+    @Schema(description = "导入人名字")
+    private String uploadUserName;
+
+    /**
+     * 导入时间
+     */
+    @Schema(description = "导入时间")
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date uploadDate;
+
+    /**
+     * 任务状态 0.失败 1 进行中  2. 完成
+     */
+    @Schema(description = "导入状态")
+    private Integer taskStatus;
+
+    /**
+     * 已读未读状态  0.未读 1.已读
+     */
+    @Schema(description = "已读未读状态  0.未读 1.已读")
+    private Integer readStatus;
+
+    /**
+     * 导入数据信息
+     */
+    @Schema(description = "导入数据信息")
+    private String uploadMsg;
+
+    /**
+     * 文件路径
+     */
+    @Schema(description = "文件路径")
+    private String filePath;
+
+    /**
+     *   导入时间
+     */
+    @Schema(description = "导入时间")
+    private String uploadMinutes;
+
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        ReportUploadExcelTask other = (ReportUploadExcelTask) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getTaskName() == null ? other.getTaskName() == null : this.getTaskName().equals(other.getTaskName()))
+            && (this.getRouterPathKey() == null ? other.getRouterPathKey() == null : this.getRouterPathKey().equals(other.getRouterPathKey()))
+            && (this.getUploadUserId() == null ? other.getUploadUserId() == null : this.getUploadUserId().equals(other.getUploadUserId()))
+            && (this.getUploadUserName() == null ? other.getUploadUserName() == null : this.getUploadUserName().equals(other.getUploadUserName()))
+            && (this.getUploadDate() == null ? other.getUploadDate() == null : this.getUploadDate().equals(other.getUploadDate()))
+            && (this.getTaskStatus() == null ? other.getTaskStatus() == null : this.getTaskStatus().equals(other.getTaskStatus()))
+            && (this.getReadStatus() == null ? other.getReadStatus() == null : this.getReadStatus().equals(other.getReadStatus()))
+            && (this.getUploadMsg() == null ? other.getUploadMsg() == null : this.getUploadMsg().equals(other.getUploadMsg()))
+            && (this.getFilePath() == null ? other.getFilePath() == null : this.getFilePath().equals(other.getFilePath()))
+            && (this.getUploadMinutes() == null ? other.getUploadMinutes() == null : this.getUploadMinutes().equals(other.getUploadMinutes()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getTaskName() == null) ? 0 : getTaskName().hashCode());
+        result = prime * result + ((getRouterPathKey() == null) ? 0 : getRouterPathKey().hashCode());
+        result = prime * result + ((getUploadUserId() == null) ? 0 : getUploadUserId().hashCode());
+        result = prime * result + ((getUploadUserName() == null) ? 0 : getUploadUserName().hashCode());
+        result = prime * result + ((getUploadDate() == null) ? 0 : getUploadDate().hashCode());
+        result = prime * result + ((getTaskStatus() == null) ? 0 : getTaskStatus().hashCode());
+        result = prime * result + ((getReadStatus() == null) ? 0 : getReadStatus().hashCode());
+        result = prime * result + ((getUploadMsg() == null) ? 0 : getUploadMsg().hashCode());
+        result = prime * result + ((getFilePath() == null) ? 0 : getFilePath().hashCode());
+        result = prime * result + ((getUploadMinutes() == null) ? 0 : getUploadMinutes().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", taskName=").append(taskName);
+        sb.append(", routerPathKey=").append(routerPathKey);
+        sb.append(", uploadUserId=").append(uploadUserId);
+        sb.append(", uploadUserName=").append(uploadUserName);
+        sb.append(", uploadDate=").append(uploadDate);
+        sb.append(", taskStatus=").append(taskStatus);
+        sb.append(", readStatus=").append(readStatus);
+        sb.append(", uploadMsg=").append(uploadMsg);
+        sb.append(", filePath=").append(filePath);
+        sb.append(", uploadMinutes=").append(uploadMinutes);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 97 - 0
commons/src/main/java/com/jzg/commons/entity/report/vo/ReportSearchCommonVo.java

@@ -0,0 +1,97 @@
+package com.jzg.commons.entity.report.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/9/16 17:32
+ *  @Description:  查询列表统一的请求参数
+ */
+@Data
+@Schema(description = "导入任务列表")
+@AllArgsConstructor
+@NoArgsConstructor
+public class ReportSearchCommonVo implements Serializable {
+
+     @Schema(description = "时间开始日期")
+     private String createTimeBegin;
+
+     @Schema(description = "时间结束日期")
+     private String createTimeEnd;
+
+     @Schema(description = "录单开始日期")
+     private String recordTimeBegin;
+
+     @Schema(description = "录单结束日期")
+     private String recordTimeEnd;
+
+     @Schema(description = "签单开始日期")
+     private String signTimeBegin;
+
+     @Schema(description = "签单结束日期")
+     private String signTimeEnd;
+
+     @Schema(description = "公司公司id")
+     private String companyId;
+
+     @Schema(description = "合作保险公司ids(多选)")
+     private List<String> partnerCompanyIds;
+
+
+     @Schema(description = "出单机构ids(多选)")
+     private List<String> orgIds;
+
+     @Schema(description = "订单类型(多选)")
+     private List<String> orderTypes;
+
+     @Schema(description = "险种(多选)")
+     private List<String> riskTypes;
+
+     @Schema(description = "协议类型(多选)")
+     private List<String> agreeTypes;
+
+     @Schema(description = "业务员类型(多选)")
+     private List<String> salesmanTypes;
+
+     @Schema(description = "业务员姓名")
+     private String salesmanName;
+
+     @Schema(description = "业务员手机号")
+     private String salesmanPhone;
+
+     @Schema(description = "管理人姓名")
+     private String manageName;
+
+     @Schema(description = "管理人手机号")
+     private String managePhone;
+
+    @Schema(description = "车牌号")
+    private String licenseNo;
+
+    @Schema(description = "所在地区(省+市 数组)")
+    private List<String> areaCodes;
+
+    @Schema(description = "报价来源")
+    private String orderSource;
+
+    @Schema(description = "订单状态")
+    private String orderStatus;
+
+    @Schema(description = "订单审核状态")
+    private String orderCheckStatus;
+
+    @Schema(description = "年份")
+    private String year;
+
+    @Schema(description = "保险产品")
+    private String productType;
+
+}

+ 43 - 0
commons/src/main/java/com/jzg/commons/entity/report/vo/ReportUploadExcelTaskVo.java

@@ -0,0 +1,43 @@
+package com.jzg.commons.entity.report.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.jzg.commons.core.base.PageRequest;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/9/15 18:14
+ *  @Description: 导入任务列表vo
+ */
+@Data
+@Schema(description = "导入任务表")
+@AllArgsConstructor
+@NoArgsConstructor
+public class ReportUploadExcelTaskVo extends PageRequest {
+    /**
+     * 导入人
+     */
+    @Schema(description = "导入人id")
+    private String uploadUserId;
+
+    /**
+     * 任务状态 0.失败 1 进行中  2. 完成
+     */
+    @Schema(description = "导入状态")
+    private Integer taskStatus;
+
+    /**
+     * 已读未读状态  0.未读 1.已读
+     */
+    @Schema(description = "已读未读状态  0.未读 1.已读")
+    private Integer readStatus;
+}

+ 6 - 0
commons/src/main/java/com/jzg/commons/entity/vo/IsDeleteVo.java

@@ -15,4 +15,10 @@ import java.util.List;
 public class IsDeleteVo {
     @Schema(description = "id集合")
     private List<String> ids;
+
+    @Schema(description = "分销处理类型 1不处理 分销关系保留 2 解除绑定关系 3 转移分销关系")
+    private String type;
+
+    @Schema(description = "转移手机号")
+    private String mobile;
 }

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysDeptVo.java

@@ -82,6 +82,9 @@ public class SysDeptVo implements Serializable {
     @Schema(description = "协议选中机构字段")
     private Integer isCheck;
 
+    @Schema(description = "是否参与分销 0-否 1-是")
+    private String isDistribution;
+
     public SysDeptVo(){}
 
     public SysDeptVo(SysDept sysDept){

+ 34 - 0
commons/src/main/java/com/jzg/commons/util/EasyExcelUtils.java

@@ -0,0 +1,34 @@
+package com.jzg.commons.util;
+
+import com.alibaba.excel.EasyExcel;
+import com.jzg.commons.entity.finance.dto.ExportSuperviseExcelDto;
+import com.jzg.commons.entity.finance.po.InsPlyIncome;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * @author quchen
+ * @date 2025/7/21 16:32
+ */
+
+@Component
+public class EasyExcelUtils {
+
+    public static <T> void exportForWeb(HttpServletResponse response, Class<T> clazz, List<T> datas, String fileName) {
+        try {
+            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+            response.setCharacterEncoding("utf-8");
+            String fileEName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
+            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileEName + ".xlsx");
+            EasyExcel.write(response.getOutputStream(), clazz).sheet(fileName).doWrite(datas);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+}

+ 247 - 0
commons/src/main/java/com/jzg/commons/util/http/HttpServletUtils.java

@@ -0,0 +1,247 @@
+package com.jzg.commons.util.http;
+
+import com.alibaba.fastjson.JSONObject;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.enums.HttpConstants;
+import com.jzg.commons.text.Convert;
+import com.jzg.commons.util.StringUtils;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
+import org.springframework.core.io.buffer.DataBuffer;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.server.reactive.ServerHttpResponse;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+import reactor.core.publisher.Mono;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.util.Enumeration;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+    /**
+     * 客户端工具类
+     *
+     * @author ruoyi
+     */public class HttpServletUtils {
+        /**
+         * 获取String参数
+         */
+        public static String getParameter(String name) {
+            return getRequest().getParameter(name);
+        }
+
+        /**
+         * 获取String参数
+         */
+        public static String getParameter(String name, String defaultValue) {
+            return Convert.toStr(getRequest().getParameter(name), defaultValue);
+        }
+
+        /**
+         * 获取Integer参数
+         */
+        public static Integer getParameterToInt(String name) {
+            return Convert.toInt(getRequest().getParameter(name));
+        }
+
+        /**
+         * 获取Integer参数
+         */
+        public static Integer getParameterToInt(String name, Integer defaultValue) {
+            return Convert.toInt(getRequest().getParameter(name), defaultValue);
+        }
+
+        /**
+         * 获取request
+         */
+        public static HttpServletRequest getRequest() {
+            return getRequestAttributes() == null ? null:getRequestAttributes().getRequest();
+        }
+
+        /**
+         * 获取response
+         */
+        public static HttpServletResponse getResponse() {
+            return getRequestAttributes().getResponse();
+        }
+
+        /**
+         * 获取session
+         */
+        public static HttpSession getSession() {
+            return getRequest().getSession();
+        }
+
+        public static ServletRequestAttributes getRequestAttributes() {
+            RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
+            if(attributes == null){
+                return null;
+            }
+            return (ServletRequestAttributes) attributes;
+        }
+
+//        /**
+//         * 将字符串渲染到客户端
+//         *
+//         * @param response 渲染对象
+//         * @param string   待渲染的字符串
+//         * @return null
+//         */
+//        public static String renderString(HttpServletResponse response, String string) {
+//            try {
+//                response.setStatus(200);
+//                response.setContentType("application/json");
+//                response.setCharacterEncoding("utf-8");
+//                response.getWriter().print(string);
+//            } catch (IOException e) {
+//                e.printStackTrace();
+//            }
+//            return null;
+//        }
+//
+//
+//        public static String getHeader(HttpServletRequest request, String name)
+//        {
+//            String value = request.getHeader(name);
+//            if (StringUtils.isEmpty(value))
+//            {
+//                return StringUtils.EMPTY;
+//            }
+//            return urlDecode(value);
+//        }
+//
+//        public static Map<String, String> getHeaders(HttpServletRequest request) {
+//            Map<String, String> map = new LinkedHashMap<>();
+//            Enumeration<String> enumeration = request.getHeaderNames();
+//            if (enumeration != null) {
+//                while (enumeration.hasMoreElements()) {
+//                    String key = enumeration.nextElement();
+//                    String value = request.getHeader(key);
+//                    map.put(key, value);
+//                }
+//            }
+//            return map;
+//        }
+//
+//        /**
+//         * 内容解码
+//         *
+//         * @param str 内容
+//         * @return 解码后的内容
+//         */
+//        public static String urlDecode(String str) {
+//            try {
+//                return URLDecoder.decode(str, HttpConstants.Character.UTF8.getCode());
+//            } catch (UnsupportedEncodingException e) {
+//                return StringUtils.EMPTY;
+//            }
+//        }
+//
+//
+//        /**
+//         * 是否是Ajax异步请求
+//         *
+//         * @param request
+//         */
+//        public static boolean isAjaxRequest(HttpServletRequest request) {
+//            String accept = request.getHeader("accept");
+//            if (accept != null && accept.indexOf("application/json") != -1) {
+//                return true;
+//            }
+//
+//            String xRequestedWith = request.getHeader("X-Requested-With");
+//            if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1) {
+//                return true;
+//            }
+//
+//            String uri = request.getRequestURI();
+//            if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) {
+//                return true;
+//            }
+//
+//            String ajax = request.getParameter("__ajax");
+//            if (StringUtils.inStringIgnoreCase(ajax, "json", "xml")) {
+//                return true;
+//            }
+//            return false;
+//        }
+//
+//        /**
+//         * 设置webflux模型响应
+//         *
+//         * @param response ServerHttpResponse
+//         * @param value    响应内容
+//         * @return Mono<Void>
+//         */
+//        public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, Object value) {
+//            return webFluxResponseWriter(response, HttpStatus.OK, value, 1);
+//        }
+//
+//        /**
+//         * 设置webflux模型响应
+//         *
+//         * @param response ServerHttpResponse
+//         * @param code     响应状态码
+//         * @param value    响应内容
+//         * @return Mono<Void>
+//         */
+//        public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, Object value, int code) {
+//            return webFluxResponseWriter(response, HttpStatus.OK, value, code);
+//        }
+//
+//        /**
+//         * 设置webflux模型响应
+//         *
+//         * @param response ServerHttpResponse
+//         * @param status   http状态码
+//         * @param code     响应状态码
+//         * @param value    响应内容
+//         * @return Mono<Void>
+//         */
+//        public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, HttpStatus status, Object value,
+//                                                       int code) {
+//            return webFluxResponseWriter(response, MediaType.APPLICATION_JSON_VALUE, status, value, code);
+//        }
+//
+//        /**
+//         * 设置webflux模型响应
+//         *
+//         * @param response    ServerHttpResponse
+//         * @param contentType content-type
+//         * @param status      http状态码
+//         * @param code        响应状态码
+//         * @param value       响应内容
+//         * @return Mono<Void>
+//         */
+//        public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, String contentType, HttpStatus status,
+//                                                       Object value, int code) {
+//            response.setStatusCode(status);
+//            response.getHeaders().add(HttpHeaders.CONTENT_TYPE, contentType);
+//            R<?> result = R.fail(code, value.toString());
+//            DataBuffer dataBuffer = response.bufferFactory().wrap(JSONObject.toJSONString(result).getBytes());
+//            return response.writeWith(Mono.just(dataBuffer));
+//        }
+//
+//        /**
+//         * 内容编码
+//         *
+//         * @param str 内容
+//         * @return 编码后的内容
+//         */
+//        public static String urlEncode(String str) {
+//            try {
+//                return URLEncoder.encode(str, "UTF-8");
+//            } catch (UnsupportedEncodingException e) {
+//                return StringUtils.EMPTY;
+//            }
+//        }
+
+    }
+

+ 128 - 0
consoleStatistics/pom.xml

@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.jzg</groupId>
+        <artifactId>jzg</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>com.jzg</groupId>
+    <artifactId>consoleStatistics</artifactId>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-extension</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.jzg</groupId>
+            <artifactId>commons</artifactId>
+            <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.rocketmq</groupId>
+            <artifactId>rocketmq-spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.jzg</groupId>
+            <artifactId>rocketmq</artifactId>
+        </dependency>
+
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>repackage</id>
+                        <phase>none</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>copy-dependencies</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
+                            <overWriteReleases>false</overWriteReleases>
+                            <overWriteSnapshots>false</overWriteSnapshots>
+                            <overWriteIfNewer>true</overWriteIfNewer>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <addClasspath>true</addClasspath>
+                            <classpathPrefix>lib/</classpathPrefix>
+                            <mainClass>com.jzg.console.ConsoleApplication</mainClass> <!-- 替换为你的主类 -->
+                            <useUniqueVersions>false</useUniqueVersions>
+                        </manifest>
+                        <manifestEntries>
+                            <Class-Path>config/</Class-Path>
+                        </manifestEntries>
+                    </archive>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>3.1.0</version>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 20 - 0
consoleStatistics/src/main/java/com/jzg/console/ConsoleApplication.java

@@ -0,0 +1,20 @@
+package com.jzg.console;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+@SpringBootApplication
+@EnableDiscoveryClient
+@EnableFeignClients
+@ComponentScan(basePackages = {"com.jzg.commons","com.jzg.console"})
+@MapperScan({"com.jzg.console.mapper","com.jzg.commons.mapper"})
+public class ConsoleApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(ConsoleApplication.class, args);
+    }
+
+}

+ 128 - 0
consoleStatistics/src/main/java/com/jzg/console/controller/ReportSearchConfigurationController.java

@@ -0,0 +1,128 @@
+package com.jzg.console.controller;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.jzg.commons.core.base.BaseController;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.report.dto.ReportDictDto;
+import com.jzg.commons.entity.report.dto.ReportSearchConfigurationDto;
+import com.jzg.commons.entity.report.dto.ReportUploadExcelTaskDto;
+import com.jzg.commons.entity.report.dto.UserTreeDto;
+import com.jzg.commons.entity.vo.SysDeptVo;
+import com.jzg.console.service.ReportSearchConfigurationService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.redisson.api.RedissonClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Objects;
+
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/9/16 17:59
+ *  @Description: 查询公共的查询参数
+ */
+@Slf4j
+@Tag(name="公共查询参数管理")
+@RestController
+@RequestMapping("/console/searchConfiguration")
+public class ReportSearchConfigurationController extends BaseController {
+
+
+    @Autowired
+    private RedissonClient redissonClient;
+
+    @Autowired
+    private ReportSearchConfigurationService reportSearchConfigurationService;
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/15 18:11
+     *  @Description: 导出任务中心-列表查询
+     */
+    @Operation(summary = "公共查询参数管理-列表查询", description = "公共查询参数管理-列表查询")
+    @GetMapping(value = "/getSearchConfigurationList")
+    public HttpResult<?> getSearchConfigurationList(@RequestParam(name="userId",required=true) String userId,@RequestParam(name="routerKey",required=true) String routerKey) {
+        try{
+            userId = reportSearchConfigurationService.getUserIdByUserName(userId);
+            List<ReportSearchConfigurationDto> list = reportSearchConfigurationService.getSearchConfigurationList(userId,routerKey);
+            return HttpResult.ok(list);
+        }catch (Exception e){
+            return HttpResult.error(e.getMessage());
+        }
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/15 18:11
+     *  @Description: 导出任务中心-列表查询
+     */
+    @Operation(summary = "公共查询参数管理-查询页面默认参数", description = "公共查询参数管理-查询页面默认参数")
+    @GetMapping(value = "/getSearchDefaultList")
+    public HttpResult<?> getSearchDefaultList(@RequestParam(name="userId",required=true) String userId,@RequestParam(name="routerKey",required=true) String routerKey) {
+        try{
+            userId = reportSearchConfigurationService.getUserIdByUserName(userId);
+            List<ReportSearchConfigurationDto> list = reportSearchConfigurationService.getSearchDefaultList(userId,routerKey);
+            return HttpResult.ok(list);
+        }catch (Exception e){
+            return HttpResult.error(e.getMessage());
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 14:39
+     *  @Description: 通过用户id查询所在的机构树
+     */
+    @Operation(summary = "公共查询参数管理-通过用户id查询所在的机构树", description = "公共查询参数管理-通过用户id查询所在的机构树")
+    @GetMapping(value = "/getDeptListByUserId")
+    public HttpResult<?> getDeptListByUserId(@RequestParam(name="userId",required=true) String userId) {
+        try{
+            userId = reportSearchConfigurationService.getUserIdByUserName(userId);
+            List<SysDeptVo> deptTree = reportSearchConfigurationService.getDeptTree(userId);
+            return HttpResult.ok(deptTree);
+        }catch (Exception e){
+            return HttpResult.error(e.getMessage());
+        }
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 14:41
+     *  @Description: 通过保险公司id查询合作公司列表
+     */
+    @Operation(summary = "公共查询参数管理-通过保险公司id查询合作公司列表", description = "公共查询参数管理-通过保险公司id查询合作公司列表")
+    @GetMapping(value = "/getPartnerCompanyListByCompanyId")
+    public HttpResult<?> getPartnerCompanyListByCompanyId(@RequestParam(name="companyId",required=true) String companyId) {
+        try{
+            List<ReportDictDto>  partnerCompanyList= reportSearchConfigurationService.getPartnerCompanyListByCompanyId(companyId);
+            return HttpResult.ok(partnerCompanyList);
+        }catch (Exception e){
+            return HttpResult.error(e.getMessage());
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 17:35
+     *  @Description: 查询管理员数据
+     */
+    @Operation(summary = "公共查询参数管理-查询管理员数据列表", description = "公共查询参数管理-查询管理员数据列表")
+    @GetMapping(value = "/getUserManageListByUserId")
+    public HttpResult<?> getUserManageListByUserId(@RequestParam(name="userId",required=true) String userId) {
+        try{
+            List<UserTreeDto>  userManageList= reportSearchConfigurationService.getUserManageListByUserId(userId);
+            return HttpResult.ok(userManageList);
+        }catch (Exception e){
+            return HttpResult.error(e.getMessage());
+        }
+    }
+}

+ 118 - 0
consoleStatistics/src/main/java/com/jzg/console/controller/ReportUploadExcelTaskController.java

@@ -0,0 +1,118 @@
+package com.jzg.console.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.jzg.commons.core.base.BaseController;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.report.dto.ReportUploadExcelTaskDto;
+import com.jzg.commons.entity.report.po.ReportUploadExcelTask;
+import com.jzg.commons.entity.report.vo.ReportUploadExcelTaskVo;
+import com.jzg.console.service.ReportUploadExcelTaskService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.charset.StandardCharsets;
+
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2025/9/16 11:15
+ *  @Description: 导出任务中心
+ */
+@Slf4j
+@Tag(name="数据报表管理")
+@RestController
+@RequestMapping("/console/task")
+public class ReportUploadExcelTaskController extends BaseController {
+
+
+    @Autowired
+    private ReportUploadExcelTaskService reportUploadExcelTaskService;
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/15 18:11
+     *  @Description: 导出任务中心-列表查询
+     */
+    @Operation(summary = "导出任务中心-分页列表查询", description = "导出任务中心-分页列表查询")
+    @PostMapping(value = "/getPageTaskList")
+    public HttpResult<?> getPageTaskList(@RequestBody ReportUploadExcelTaskVo reportUploadExcelTaskVo) {
+        try{
+            IPage<ReportUploadExcelTaskDto> pageList = reportUploadExcelTaskService.getPageTaskList(reportUploadExcelTaskVo);
+            return HttpResult.ok(pageList);
+        }catch (Exception e){
+            return HttpResult.error(e.getMessage());
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 10:38
+     *  @Description:
+     */
+    @Operation(summary = "导出任务中心-下載文件", description = "导出任务中心-下載文件")
+    @GetMapping(value = "/downTaskFile")
+    public void downTaskFile(@RequestParam(name="id",required=true) String id, HttpServletResponse response) throws Exception {
+        //通过id查询路径的
+        ReportUploadExcelTask entity = reportUploadExcelTaskService.getById(id);
+        //全路径
+        String fileUrl = entity.getFilePath();
+        URL url = new URL(fileUrl);
+        URLConnection connection = url.openConnection();
+        InputStream inputStream = connection.getInputStream();
+        String fileName = "导出数据.xlsx";
+        response.setContentType("application/force-download");
+        response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));
+        response.setCharacterEncoding("utf-8");
+        ServletOutputStream outputStream = response.getOutputStream();
+        byte[] buffer = new byte[1024];
+        int bytesRead;
+        while ((bytesRead = inputStream.read(buffer)) != -1) {
+            outputStream.write(buffer, 0, bytesRead);
+        }
+        outputStream.flush();
+        outputStream.close();
+        inputStream.close();
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 10:39
+     *  @Description:  更新任务的未读变为已读状态
+     */
+    @Operation(summary = "导出任务中心-更新任务的未读变为已读状态", description = "导出任务中心-更新任务的未读变为已读状态")
+    @GetMapping(value = "/updateReadStatus")
+    public HttpResult<?> updateReadStatus(@RequestParam(name="userId",required=true) String userId) {
+        try{
+            reportUploadExcelTaskService.uodateReadStatus(userId);
+        }catch (Exception e){
+            return HttpResult.error(e.getMessage());
+        }
+        return HttpResult.ok("更新任务消息成功");
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 10:40
+     *  @Description: 显示导出任务未读数
+     */
+    @Operation(summary = "导出任务中心-显示导出任务未读数", description = "导出任务中心-显示导出任务未读数")
+    @GetMapping(value = "/getTaskMessageNoReadCount")
+    public HttpResult<?> getTaskMessageNoReadCount(@RequestParam(name="userId",required=true) String userId) {
+        try{
+            int count = reportUploadExcelTaskService.getTaskMessageNoReadCount(userId);
+            return  HttpResult.ok(count);
+        }catch (Exception e){
+            return HttpResult.error(e.getMessage());
+        }
+    }
+}

+ 110 - 0
consoleStatistics/src/main/java/com/jzg/console/mapper/ReportSearchConfigurationMapper.java

@@ -0,0 +1,110 @@
+package com.jzg.console.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.po.SysArea;
+import com.jzg.commons.entity.po.SysDept;
+import com.jzg.commons.entity.po.SysUser;
+import com.jzg.commons.entity.report.dto.ReportDictDto;
+import com.jzg.commons.entity.report.dto.ReportSearchConfigurationDto;
+import com.jzg.commons.entity.report.dto.UserTreeDto;
+import com.jzg.commons.entity.report.po.ReportSearchConfiguration;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @description 针对表【report_search_configuration(报表查询配置)】的数据库操作Mapper
+ * @createDate 2025-09-16 16:57:57
+ * @Entity generator.domain.ReportSearchConfiguration
+ */
+public interface ReportSearchConfigurationMapper extends BaseMapper<ReportSearchConfiguration> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 18:07
+     *  @Description: 查询公共筛选参数
+     */
+    List<ReportSearchConfigurationDto> getSearchConfigurationList(@Param("routerPath") String routerPath);
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 11:15
+     *  @Description:  查询字典
+     */
+    List<ReportDictDto> selectDictListByCode(@Param("distCode") String distCode);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 11:48
+     *  @Description:  查询省市的二级机构
+     */
+    List<SysArea> getSecondLevelAreaList();
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 14:22
+     *  @Description:  查询用户关联的机构树
+     */
+    List<SysDept> getDeptListByUserId(@Param("userId") String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 15:05
+     *  @Description:  查询用户配置的保信公司
+     */
+    List<ReportDictDto> queryCompanyListByUserId(@Param("userId") String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 15:09
+     *  @Description: 通过保险公司查询合作公司三级id
+     */
+    List<ReportDictDto> getPartnerCompanyListByCompanyId(@Param("companyId") String companyId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/18 10:41
+     *  @Description:  查看页面默认参数
+     */
+    List<ReportSearchConfigurationDto> getSearchDefaultList(@Param("routerKey") String routerKey);
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/19 15:44
+     *  @Description: 通过用户id查询用户名称
+     */
+    String getUserIdByUserName(@Param("userId") String userId);
+
+
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/19 15:44
+     *  @Description: 通过用户id查询租户code
+     */
+    String getUserByUserId(@Param("userId") String userId);
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/19 15:44
+     *  @Description: 通过用户id查询租户code
+     */
+    String getUserByPhone(@Param("userId") String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/22 12:11
+     *  @Description:  通过租户code查询管理员树
+     */
+    List<UserTreeDto> getUserListBySystemCode(@Param("systemCode") String systemCode);
+}
+
+
+
+

+ 42 - 0
consoleStatistics/src/main/java/com/jzg/console/mapper/ReportUploadExcelTaskMapper.java

@@ -0,0 +1,42 @@
+package com.jzg.console.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.jzg.commons.entity.report.dto.ReportUploadExcelTaskDto;
+import com.jzg.commons.entity.report.po.ReportUploadExcelTask;
+import com.jzg.commons.entity.report.vo.ReportUploadExcelTaskVo;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author Administrator
+* @description 针对表【report_upload_excel_task(导入任务表)】的数据库操作Mapper
+* @createDate 2025-09-15 16:40:10
+* @Entity generator.domain.ReportUploadExcelTask
+*/
+public interface ReportUploadExcelTaskMapper extends BaseMapper<ReportUploadExcelTask> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 11:04
+     *  @Description: 获取导出任务列表数据倒序排列
+     */
+    IPage<ReportUploadExcelTaskDto> getPageTaskList(@Param("page") IPage<ReportUploadExcelTaskDto> page, @Param("vo") ReportUploadExcelTaskVo reportUploadExcelTaskVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 11:16
+     *  @Description: 查询租户用户的未读信息数量
+     */
+    int getTaskMessageNoReadCount(@Param("userId") String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/22 15:43
+     *  @Description: 更新任务的消息未读变为已读
+     */
+    void updateStatusByUserId(@Param("userId") String userId);
+}
+
+
+
+

+ 64 - 0
consoleStatistics/src/main/java/com/jzg/console/service/ReportSearchConfigurationService.java

@@ -0,0 +1,64 @@
+package com.jzg.console.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.entity.report.dto.ReportDictDto;
+import com.jzg.commons.entity.report.dto.ReportSearchConfigurationDto;
+import com.jzg.commons.entity.report.dto.UserTreeDto;
+import com.jzg.commons.entity.report.po.ReportSearchConfiguration;
+import com.jzg.commons.entity.vo.SysDeptVo;
+
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【report_search_configuration(报表查询配置)】的数据库操作Service
+* @createDate 2025-09-16 16:57:57
+*/
+public interface ReportSearchConfigurationService extends IService<ReportSearchConfiguration> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 18:05
+     *  @Description: 查询公共参数列表
+     */
+    List<ReportSearchConfigurationDto> getSearchConfigurationList(String userId,String routerKey);
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 14:35
+     *  @Description: 查询用户所在的机构树
+     */
+    List<SysDeptVo> getDeptTree(String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 15:02
+     *  @Description: 通过保险公司id查询三级的合作公司
+     */
+    List<ReportDictDto> getPartnerCompanyListByCompanyId(String companyId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 17:37
+     *  @Description:  查询管理员列表
+     */
+    List<UserTreeDto> getUserManageListByUserId(String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/18 10:34
+     *  @Description: 查询默认参数列表
+     */
+    List<ReportSearchConfigurationDto> getSearchDefaultList(String userId, String routerKey);
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/19 16:02
+     *  @Description: 通过手机号查询用户id
+     */
+    String  getUserIdByUserName(String userId);
+}

+ 37 - 0
consoleStatistics/src/main/java/com/jzg/console/service/ReportUploadExcelTaskService.java

@@ -0,0 +1,37 @@
+package com.jzg.console.service;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.entity.report.dto.ReportUploadExcelTaskDto;
+import com.jzg.commons.entity.report.po.ReportUploadExcelTask;
+import com.jzg.commons.entity.report.vo.ReportUploadExcelTaskVo;
+
+/**
+* @author Administrator
+* @description 针对表【report_upload_excel_task(导入任务表)】的数据库操作Service
+* @createDate 2025-09-15 16:40:10
+*/
+public interface ReportUploadExcelTaskService extends IService<ReportUploadExcelTask> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 10:51
+     *  @Description: 导出任务数据的列表数据
+     */
+    IPage<ReportUploadExcelTaskDto> getPageTaskList(ReportUploadExcelTaskVo reportUploadExcelTaskVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 10:55
+     *  @Description: 更新消息任务为已读
+     */
+    void uodateReadStatus(String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 10:55
+     *  @Description: 查询任务中心未读消息任务
+     */
+    int getTaskMessageNoReadCount(String userId);
+}

+ 248 - 0
consoleStatistics/src/main/java/com/jzg/console/service/impl/ReportSearchConfigurationServiceImpl.java

@@ -0,0 +1,248 @@
+package com.jzg.console.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.constants.report.enums.SearchKeyCodeEnum;
+import com.jzg.commons.entity.po.SysArea;
+import com.jzg.commons.entity.po.SysDept;
+import com.jzg.commons.entity.po.SysUser;
+import com.jzg.commons.entity.report.dto.ReportDictDto;
+import com.jzg.commons.entity.report.dto.ReportSearchConfigurationDto;
+import com.jzg.commons.entity.report.dto.UserTreeDto;
+import com.jzg.commons.entity.report.po.ReportSearchConfiguration;
+import com.jzg.commons.entity.vo.SysAreaVo;
+import com.jzg.commons.entity.vo.SysDeptVo;
+import com.jzg.console.mapper.ReportSearchConfigurationMapper;
+import com.jzg.console.service.ReportSearchConfigurationService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+* @author Administrator
+* @description 针对表【report_search_configuration(报表查询配置)】的数据库操作Service实现
+* @createDate 2025-09-16 16:57:57
+*/
+@Service
+public class ReportSearchConfigurationServiceImpl extends ServiceImpl<ReportSearchConfigurationMapper, ReportSearchConfiguration>
+    implements ReportSearchConfigurationService {
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 18:05
+     *  @Description:  查询公共参数列表
+     *   common 时公共参数 ,后期如果单独配置也是靠 routerPath 区分
+     */
+    @Override
+    public List<ReportSearchConfigurationDto> getSearchConfigurationList(String userId,String routerKey) {
+        List<ReportSearchConfigurationDto> list = this.getBaseMapper().getSearchConfigurationList(routerKey);
+        setParamList(userId, list);
+        return list;
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/19 11:12
+     *  @Description: 设置参数信息
+     */
+    private void setParamList(String userId, List<ReportSearchConfigurationDto> list) {
+        if(list !=null  && !list.isEmpty()){
+            for (ReportSearchConfigurationDto reportSearchConfigurationDto : list) {
+                //赋值多选框
+                if("2".equals(reportSearchConfigurationDto.getSelectType())){
+                    reportSearchConfigurationDto.setInputType("select-multiple");
+                }
+                if(StringUtils.isNotBlank(reportSearchConfigurationDto.getSearchSql())){
+                    //通过配置的sql查询具体的对象
+                    List<?> searchConfigurationList = getSearchConfigurationList(userId, reportSearchConfigurationDto.getSearchSql(), reportSearchConfigurationDto.getKey(), reportSearchConfigurationDto.getInputType());
+                    reportSearchConfigurationDto.setListOption(searchConfigurationList);
+                }
+                //单选、多选赋值默认值和选中值
+                if("select-single".equals(reportSearchConfigurationDto.getInputType()) || "select-multiple".equals(reportSearchConfigurationDto.getInputType())){
+                    reportSearchConfigurationDto.setDefaultValue("0");
+                    reportSearchConfigurationDto.setSelectValue("全部");
+                }
+                //保险公司添加
+                if("select-single".equals(reportSearchConfigurationDto.getInputType()) && reportSearchConfigurationDto.getKey().equals(SearchKeyCodeEnum.SEARCHKEY_COMPANYID.getCode())){
+                    reportSearchConfigurationDto.setIsFirst(true);
+                    reportSearchConfigurationDto.setDefaultValue("0");
+                    reportSearchConfigurationDto.setSelectValue("全部");
+                }
+            }
+        }
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 9:01
+     *  @Description:
+     */
+    public List<?> getSearchConfigurationList(String userId,String sqlType,String searchKey,String showType) {
+        // 查询字典列表
+        if(("select-single".equals(showType) || " select-multiple".equals(showType)   ) && SearchKeyCodeEnum.getSearchKeyCode(searchKey)!=null && StringUtils.isNotBlank(SearchKeyCodeEnum.getSearchKeyCode(searchKey).getDistCode()) && "dictSql".equals(sqlType) ){
+            String distCode = SearchKeyCodeEnum.getSearchKeyCode(searchKey).getDistCode();
+            List<ReportDictDto> reportDictDtos = this.getBaseMapper().selectDictListByCode(distCode);
+            return reportDictDtos;
+        }
+        //查询用户配置的查询保险公司
+        if("select-single".equals(showType) && searchKey.equals(SearchKeyCodeEnum.SEARCHKEY_COMPANYID.getCode())){
+            List<ReportDictDto> companyList = queryCompanyListByUserId(userId);
+            if (companyList == null) {
+                companyList = new ArrayList<>();
+            }
+            LinkedList<ReportDictDto> linkedList = new LinkedList<>(companyList);
+            ReportDictDto allItem = new ReportDictDto("0", "全部");
+            linkedList.addFirst(allItem);
+            companyList = linkedList;
+            return companyList;
+        }
+        //查询用户配置的出单机构
+        if("date-tree".equals(showType) && searchKey.equals(SearchKeyCodeEnum.SEARCHKEY_ORGIDS.getCode())){
+            return getDeptTree(userId);
+        }
+        //查询所有的省
+        if("date-cascader".equals(showType) && searchKey.equals(SearchKeyCodeEnum.SEARCHKEY_AREACODES.getCode())){
+            return querySysAreaList();
+        }
+        //查询管理人树
+        if("date-tree".equals(showType) && searchKey.equals(SearchKeyCodeEnum.SEARCHKEY_MANAGEID.getCode())){
+            return getUserManageListByUserIdByPhone(userId);
+        }
+        //查询 合作保险公司 单独写
+        return  null;
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 11:46
+     *  @Description:  查询 省、市
+     */
+    public List<SysAreaVo> querySysAreaList() {
+        List<SysArea> list = this.getBaseMapper().getSecondLevelAreaList();
+        List<SysAreaVo> collect = list.stream().map(SysAreaVo::new).collect(Collectors.toList());
+        Map<String, List<SysAreaVo>> map = collect.stream().collect(Collectors.groupingBy(SysAreaVo::getUpperCode));
+        collect.forEach(i -> i.setChild(map.getOrDefault(i.getAreaCode(), new ArrayList<>())));
+        return map.get("0");
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 14:16
+     *  @Description: 查询租户下的出单机构
+     */
+    @Override
+    public List<SysDeptVo> getDeptTree(String userId) {
+        List<SysDept> sysDeptList = this.getBaseMapper().getDeptListByUserId(userId);
+        List<SysDeptVo> voDept = new ArrayList<>();
+        sysDeptList.forEach(item->{
+            SysDeptVo sysDeptv = new SysDeptVo(item);
+            voDept.add(sysDeptv);
+        });
+        Map<String, List<SysDeptVo>> map = voDept.stream().collect(Collectors.groupingBy(SysDeptVo::getParentId));
+        voDept.forEach(i -> i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>())));
+        List<SysDeptVo> sysDeptVos = map.get("0");
+        List<SysDeptVo> newResultDept = new ArrayList<>();
+        newResultDept.addAll(sysDeptVos);
+        return newResultDept;
+    }
+
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 14:37
+     *  @Description:  查询用户所在的保险公司
+     */
+    public List<ReportDictDto> queryCompanyListByUserId(String userId) {
+        return this.getBaseMapper().queryCompanyListByUserId(userId);
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 14:43
+     *  @Description: 通过保险公司id查询合作公司的第三级
+     */
+    @Override
+    public List<ReportDictDto> getPartnerCompanyListByCompanyId(String companyId) {
+        return this.getBaseMapper().getPartnerCompanyListByCompanyId(companyId);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/22 15:08
+     *  @Description:  通过用户id查询管理员树
+     */
+    public List<UserTreeDto> getUserManageListByUserIdByPhone(String userId) {
+        //先查租户是最上级  本人不需要查询
+        //直接查询机构表中构造成树
+        String systemCode = this.getBaseMapper().getUserByPhone(userId);
+        List<UserTreeDto> userTreeDtoList = this.getBaseMapper().getUserListBySystemCode(systemCode);
+        List<UserTreeDto> voUserList = new ArrayList<>();
+        userTreeDtoList.forEach(item->{
+            UserTreeDto userTreeDto = new UserTreeDto(item);
+            voUserList.add(userTreeDto);
+        });
+        Map<String, List<UserTreeDto>> map = voUserList.stream().collect(Collectors.groupingBy(UserTreeDto::getParentId));
+        voUserList.forEach(i -> i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>())));
+        List<UserTreeDto> sysUserVos = map.get("0");
+        List<UserTreeDto> newResultDept = new ArrayList<>();
+        newResultDept.addAll(sysUserVos);
+        return newResultDept;
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/17 17:37
+     *  @Description: 查询管理员树   暂时不知道如何处理暂放
+     */
+    @Override
+    public List<UserTreeDto> getUserManageListByUserId(String userId) {
+        //先查租户是最上级  本人不需要查询
+        //直接查询机构表中构造成树
+        String systemCode = this.getBaseMapper().getUserByUserId(userId);
+        List<UserTreeDto> userTreeDtoList = this.getBaseMapper().getUserListBySystemCode(systemCode);
+        List<UserTreeDto> voUserList = new ArrayList<>();
+        userTreeDtoList.forEach(item->{
+            UserTreeDto userTreeDto = new UserTreeDto(item);
+            voUserList.add(userTreeDto);
+        });
+        Map<String, List<UserTreeDto>> map = voUserList.stream().collect(Collectors.groupingBy(UserTreeDto::getParentId));
+        voUserList.forEach(i -> i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>())));
+        List<UserTreeDto> sysUserVos = map.get("0");
+        List<UserTreeDto> newResultDept = new ArrayList<>();
+        newResultDept.addAll(sysUserVos);
+        return newResultDept;
+    }
+
+    @Override
+    public List<ReportSearchConfigurationDto> getSearchDefaultList(String userId, String routerKey) {
+        List<ReportSearchConfigurationDto> list = this.getBaseMapper().getSearchDefaultList(routerKey);
+        setParamList(userId, list);
+        return list;
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/19 16:01
+     *  @Description: 用户id
+     */
+    @Override
+    public String  getUserIdByUserName(String userId){
+        return this.getBaseMapper().getUserIdByUserName(userId);
+    }
+
+}
+
+
+
+

+ 62 - 0
consoleStatistics/src/main/java/com/jzg/console/service/impl/ReportUploadExcelTaskServiceImpl.java

@@ -0,0 +1,62 @@
+package com.jzg.console.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jzg.commons.entity.report.dto.ReportUploadExcelTaskDto;
+import com.jzg.commons.entity.report.po.ReportUploadExcelTask;
+import com.jzg.commons.entity.report.vo.ReportUploadExcelTaskVo;
+import com.jzg.commons.exception.SystemException;
+import com.jzg.commons.util.StringUtils;
+import com.jzg.console.mapper.ReportUploadExcelTaskMapper;
+import com.jzg.console.service.ReportUploadExcelTaskService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 针对表【report_upload_excel_task(导入任务表)】的数据库操作Service实现
+* @createDate 2025-09-15 16:40:10
+*/
+@Service
+public class ReportUploadExcelTaskServiceImpl extends ServiceImpl<ReportUploadExcelTaskMapper, ReportUploadExcelTask>
+    implements ReportUploadExcelTaskService {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 11:00
+     *  @Description: 导出任务列表
+     */
+    @Override
+    public IPage<ReportUploadExcelTaskDto> getPageTaskList(ReportUploadExcelTaskVo reportUploadExcelTaskVo) {
+        if (StringUtils.isBlank(reportUploadExcelTaskVo.getUploadUserId())) {
+            throw new SystemException("用户id不能为空");
+        }
+        IPage<ReportUploadExcelTaskDto> page = new Page<ReportUploadExcelTaskDto>(reportUploadExcelTaskVo.getPages(), reportUploadExcelTaskVo.getSize());
+        return  this.getBaseMapper().getPageTaskList(page, reportUploadExcelTaskVo);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 11:00
+     *  @Description: 未读变为已读
+     */
+    @Override
+    public void uodateReadStatus(String userId) {
+        this.getBaseMapper().updateStatusByUserId(userId);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/9/16 11:00
+     *  @Description: 查询租户的未读消息列表
+     */
+    @Override
+    public int getTaskMessageNoReadCount(String userId) {
+        return this.getBaseMapper().getTaskMessageNoReadCount(userId);
+    }
+}
+
+
+
+

+ 38 - 0
consoleStatistics/src/main/resources/application-dev.yml

@@ -0,0 +1,38 @@
+server:
+  port: 8086
+spring:
+  cloud:
+    nacos:
+      server-addr: 192.168.0.250:8848
+      username: nacos
+      password: nacos
+      config:
+        file-extension: yaml
+        #namespace: 1096345e-2a2d-4307-8025-ee1b669e127b
+        namespace: 83c21527-44e1-4063-9ec5-b8812928237f
+        group: DEFAULT_GROUP
+      discovery:
+        #namespace: 1096345e-2a2d-4307-8025-ee1b669e127b
+        namespace: 83c21527-44e1-4063-9ec5-b8812928237f
+  config:
+    import:
+      - nacos:mysql
+      - nacos:redisson
+      - nacos:minio
+      - nacos:rocketmq
+      - nacos:mongodb
+config:
+  sso: 1
+
+#银联API参数配置
+unionPay:
+  api:
+    appId: 10037e6f8e41423b01912b657e5c116c
+    appKey: 1110043747cb40f4911096480ea93f3e
+    accessTokenUrl: https://test-api-open.chinaums.com/v2/token/access
+    twoFactorVerifyUrl: https://test-api-open.chinaums.com/v1/datacenter/smartverification/encrypted/mobile/2factor/verify
+    threeFactorVerifyUrl: https://test-api-open.chinaums.com/v1/datacenter/smartverification/encrypted/mobile/3factor/verify
+    bankCardVerifyUrl: https://test-api-open.chinaums.com/v1/datacenter/smartverification/encrypted/bankcard/verify
+    publicKey: 0414bb7e9c3914bb65b85079b1dc6e1ca2a0ee04dd9bb55b2f8d31704a6dec0cca695739e128f9c931330e1c0f493be4d56244236434c9d344c4716ba64a4470ba
+    privateKey: 24ebfde60aecb81214605050763926ec342c487859a8da57d5badcd3c1559336
+

+ 36 - 0
consoleStatistics/src/main/resources/application-test.yml

@@ -0,0 +1,36 @@
+server:
+  port: 9084
+spring:
+  cloud:
+    nacos:
+      server-addr: 172.24.144.223:8848
+      username: nacos
+      password: nacos
+      config:
+        file-extension: yaml
+        namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45
+        group: DEFAULT_GROUP
+      discovery:
+        namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45
+  config:
+    import:
+      - nacos:mysql
+      - nacos:redisson
+      - nacos:minio
+      - nacos:rocketmq
+      - nacos:mongodb
+config:
+  sso: 1
+
+
+#银联API参数配置
+unionPay:
+  api:
+    appId: 8a81c1be8fc4b72501912b65f4bf093a
+    appKey: 43c2fc71b43740539c6c32370e12c7fd
+    accessTokenUrl: https://api-mop.chinaums.com/v2/token/access
+    twoFactorVerifyUrl: https://api-mop.chinaums.com/v1/datacenter/smartverification/encrypted/mobile/2factor/verify
+    threeFactorVerifyUrl: https://api-mop.chinaums.com/v1/datacenter/smartverification/encrypted/mobile/3factor/verify
+    bankCardVerifyUrl: https://api-mop.chinaums.com/v1/datacenter/smartverification/encrypted/bankcard/verify
+    publicKey: 0414bb7e9c3914bb65b85079b1dc6e1ca2a0ee04dd9bb55b2f8d31704a6dec0cca695739e128f9c931330e1c0f493be4d56244236434c9d344c4716ba64a4470ba
+    privateKey: 24ebfde60aecb81214605050763926ec342c487859a8da57d5badcd3c1559336

+ 98 - 0
consoleStatistics/src/main/resources/application.yml

@@ -0,0 +1,98 @@
+spring:
+  application:
+    name: jzg-console
+  main:
+    allow-circular-references: true
+    allow-bean-definition-overriding: true
+  profiles:
+    active: dev
+
+mybatis-plus:
+  mapper-locations: classpath*:/mapper/*Mapper.xml
+  global-config:
+    db-config:
+      logic-delete-field: is_delete
+      logic-delete-value: 1
+      logic-not-delete-value: 0
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+#多租户配置
+tenant:
+  enable: true
+  column: system_code
+  filterTables:
+  ignoreTables:
+    - sys_system
+    - sys_role_perms
+    - sys_area
+    - sys_dict
+    - sys_dict_type
+    - sys_user
+    - sys_user_jzg_info_bank_card
+    - sys_user_role
+    - sys_user_jzg_info_file
+    - sys_organization_user_link
+    - sys_upload_files
+    - sys_config
+    - sys_activity
+    - sys_activity_award
+    - sys_activity_dept
+    - sys_activity_record
+    - sys_poster_org
+    - sys_message_template
+    - sys_message_user
+    - sys_notice_user
+    - ptl_scheme_info
+    - ptl_scheme_insurance
+    - ptl_scheme_insurance_driving_intention
+    - ins_business_insurance_option
+    - ins_business_insurance
+    - ptl_agreement_attribution
+    - ptl_agreement_dept
+    - ptl_agreement_undwrt_rules_attr
+    - ptl_agreement_undwrt_rules_dict_labal
+    - ptl_area_license
+    - ptl_agreement_undwrt_rules
+    - ptl_agreement_undwrt_rules_attr_link
+    - ptl_scheme_rules_attr_link
+    - esm_ins_company
+    - qr_barcode_config
+    - jyx_config
+    - sys_user_jzg_app
+    - sys_dept
+    - sys_user_jzg_info_salesman
+    - dept_tree
+    - dept_path
+    - ptl_agreement_cost_type
+    - ins_orders
+    - ins_fee_orders
+    - ins_orders_costs
+    - ins_orders_car_info
+    - ins_orders_policy
+    - sys_relation_person
+    - sys_user_account
+    - report_upload_excel_task
+    - report_search_configuration
+    - esm_ins_company
+    - sys_system_bus_perms
+    - sys_system_bus_perms_link
+    - company_hierarchy
+    - report_page_set_search_param
+    - report_page_select_disable
+    - org_hierarchy
+    - sys_user_jzg_info
+    - sys_organization
+  ignoreLoginNames:
+
+data-scope:
+  tables:
+    - sys_user_jzg_info
+
+  ignoreFunction:
+    - getAuditedOrder
+
+
+logging:
+  level:
+    org.springframework.statemachine: DEBUG

+ 324 - 0
consoleStatistics/src/main/resources/mapper/ReportSearchConfigurationMapper.xml

@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jzg.console.mapper.ReportSearchConfigurationMapper">
+    <select id="getSearchConfigurationList"
+            resultType="com.jzg.commons.entity.report.dto.ReportSearchConfigurationDto">
+        SELECT
+            b.search_key AS 'key',
+            b.search_name AS label,
+            b.show_type AS inputType,
+            CASE
+                WHEN (SELECT select_type FROM report_page_set_search_param
+                      WHERE report_configuration_id = a.report_configuration_id
+                        AND router_path_key = #{ routerPath }) IS NOT NULL THEN
+                (SELECT select_type FROM report_page_set_search_param
+                 WHERE report_configuration_id = a.report_configuration_id
+                   AND router_path_key = #{ routerPath })
+                ELSE a.select_type
+            END AS selectType,
+            b.search_sql AS searchSql,
+            b.id AS id,
+            a.show_flag AS showFlag,
+            CASE
+            WHEN (
+            SELECT COUNT(0)
+            FROM report_page_set_search_param
+            WHERE report_configuration_id = a.report_configuration_id
+            AND router_path_key = #{ routerPath }
+            ) > 0 THEN true
+            ELSE false
+            END AS defaultFlag,
+            CASE
+            WHEN (
+            SELECT COUNT(0)
+            FROM report_page_select_disable
+            WHERE report_configuration_id = a.report_configuration_id
+            AND router_path_key = #{ routerPath }
+            ) > 0 THEN true
+            ELSE false
+            END AS selectFlag,
+            false AS isShowDelIcon
+        FROM
+            report_page_set_search_param a
+        LEFT JOIN report_search_configuration b ON a.report_configuration_id = b.id
+         WHERE
+             a.router_path_key = 'common'
+        ORDER BY
+            a.sort
+    </select>
+
+    <select id="selectDictListByCode" resultType="com.jzg.commons.entity.report.dto.ReportDictDto">
+        SELECT
+            p.VALUE AS value,
+            p.label AS label
+        FROM
+            sys_dict p
+            LEFT JOIN sys_dict_type c ON p.type_code = c.dict_code
+        WHERE
+            c.dict_code = #{distCode}
+        ORDER BY
+            p.sort
+    </select>
+    <select id="getSecondLevelAreaList" resultType="com.jzg.commons.entity.po.SysArea">
+        SELECT
+            *
+        FROM
+            sys_area
+        WHERE
+            `level` IN (1,2)
+    </select>
+    <select id="getDeptListByUserId" resultType="com.jzg.commons.entity.po.SysDept">
+        SELECT
+            *
+        FROM
+            sys_dept
+        WHERE
+            system_code =(
+                SELECT
+                    sys_code
+                FROM
+                    sys_system
+                WHERE
+                    user_id = #{userId}
+            )
+        order by id
+    </select>
+    <select id="queryCompanyListByUserId" resultType="com.jzg.commons.entity.report.dto.ReportDictDto">
+        SELECT
+            id AS VALUE,
+	        NAME AS label
+        FROM
+            esm_ins_company
+        WHERE
+            id IN (
+                SELECT
+                    bus_id
+                FROM
+                    sys_system_bus_perms_link
+                WHERE
+                    perms_id =(
+                        SELECT
+                            p.id
+                        FROM
+                            sys_system_bus_perms p
+                            LEFT JOIN sys_system ss ON p.system_code = ss.sys_code
+                        WHERE
+                            ss.user_id = #{userId}
+                    )
+                    AND bus_code = 'quoteCompany'
+            )
+    </select>
+    <select id="getPartnerCompanyListByCompanyId" resultType="com.jzg.commons.entity.report.dto.ReportDictDto">
+        WITH RECURSIVE company_hierarchy AS (
+            SELECT
+                id,
+                name,
+                parent_id,
+                1 AS level
+            FROM
+               esm_ins_company
+            WHERE
+                id = #{companyId}
+                AND is_delete = 0
+            UNION ALL
+                SELECT
+                    c.id,
+                    c.name,
+                    c.parent_id,
+                    ch.level + 1 AS level
+                FROM
+                   esm_ins_company c
+                   INNER JOIN  company_hierarchy ch ON c.parent_id = ch.id
+                WHERE
+                   c.is_delete = 0
+                   AND ch.level <![CDATA[< ]]>  3
+        )
+        SELECT
+            id as value,
+            name as label,
+            parent_id,
+            level
+        FROM
+        company_hierarchy
+        WHERE
+        level = 3;
+    </select>
+    <select id="getSearchDefaultList"
+            resultType="com.jzg.commons.entity.report.dto.ReportSearchConfigurationDto">
+        SELECT
+            b.search_key AS 'key',
+            b.search_name AS label,
+            b.show_type AS inputType,
+            b.select_type AS selectType,
+            b.search_sql AS searchSql,
+            b.id AS id,
+            a.show_flag AS showFlag,
+            true  as   defaultFlag,
+            true  as  selectFlag,
+            false AS isShowDelIcon
+        FROM
+            report_page_set_search_param a
+                LEFT JOIN report_search_configuration b ON a.report_configuration_id = b.id
+        WHERE
+            a.router_path_key = #{ routerKey }
+        ORDER BY
+            a.sort
+    </select>
+
+    <select id="getUserIdByUserName"
+            resultType="java.lang.String">
+        SELECT
+            id
+        FROM
+            sys_user
+        WHERE
+            mobile = #{ userId }
+    </select>
+
+    <select id="getUserByUserId" resultType="java.lang.String">
+        SELECT
+            sys_code
+        FROM
+            sys_system
+        WHERE
+            user_id = (
+                SELECT
+                    id
+                FROM
+                    sys_user
+                WHERE
+                    mobile = #{ userId }
+                )
+    </select>
+
+    <select id="getUserByPhone" resultType="java.lang.String">
+        SELECT
+            sys_code
+        FROM
+            sys_system
+        WHERE
+            user_id =  #{ userId }
+    </select>
+    <select id="getUserListBySystemCode" resultType="com.jzg.commons.entity.report.dto.UserTreeDto">
+        WITH RECURSIVE org_hierarchy AS (
+            SELECT
+                o.id AS org_id,
+                o.name AS org_name,
+                o.dept_id AS parent_org_id,
+                o.manager_id,
+                CAST(o.manager_id AS CHAR) AS manager_user_id,
+                u.name AS manager_name,
+                u.id AS user_id,
+                1 AS org_level,
+                CAST(o.id AS CHAR) AS org_path
+            FROM sys_organization o
+                     LEFT JOIN sys_user_jzg_info u ON o.manager_id = u.id AND u.is_delete = 0
+            WHERE o.system_code = #{systemCode}
+              AND o.is_delete = 0
+              AND u.id != 'admin'
+        UNION ALL
+        SELECT
+            o.id AS org_id,
+            o.name AS org_name,
+            o.dept_id AS parent_org_id,
+            o.manager_id,
+            CAST(o.manager_id AS CHAR) AS manager_user_id,
+            u.name AS manager_name,
+            u.id AS user_id,
+            oh.org_level + 1 AS org_level,
+            CONCAT(oh.org_path, ',', o.id) AS org_path
+        FROM sys_organization o
+                 INNER JOIN org_hierarchy oh ON o.dept_id = oh.org_id
+                 LEFT JOIN sys_user_jzg_info u ON o.manager_id = u.id AND u.is_delete = 0
+        WHERE o.system_code = #{systemCode}
+          AND o.is_delete = 0
+          AND u.id != 'admin'
+       )
+        SELECT DISTINCT
+            p.id as id,
+            p.name as name,
+            p.org_id as orgId,
+            p.org_name as orgName,
+            p.hierarchy_level,
+            ifnull(p.parent_id,0) as parentId,
+            p.parent_username as parentName,
+            p.is_manager as isManager,
+            p.hierarchy_path
+        FROM (
+                 SELECT
+                     CAST(oh.manager_id AS CHAR) AS id,
+                     CONCAT( oh.manager_name, '(', oh.org_name, ')') as name,
+                     oh.org_id,
+                     oh.org_name,
+                     oh.org_level AS hierarchy_level,
+                     NULL AS parent_id,
+                     NULL AS parent_username,
+                     1 AS is_manager,
+                     oh.org_path AS hierarchy_path
+                 FROM org_hierarchy oh
+                 WHERE oh.manager_id IS NOT NULL
+
+                 UNION ALL
+
+                 SELECT
+                     ul.user_id as id,
+                     CONCAT(u.name, '(', oh.org_name, ')') as name,
+                     oh.org_id,
+                     oh.org_name,
+                     oh.org_level AS hierarchy_level,
+                     CAST(oh.manager_id AS CHAR) AS parent_id,
+                     oh.manager_name AS parent_username,
+                     0 AS is_manager,
+                     oh.org_path AS hierarchy_path
+                 FROM sys_organization_user_link ul
+                          INNER JOIN sys_user_jzg_info u ON ul.user_id = u.id AND u.is_delete = 0
+                          INNER JOIN org_hierarchy oh ON ul.organization_id = oh.org_id
+                 WHERE ul.user_id != CAST(oh.manager_id AS CHAR)
+
+                 UNION ALL
+                 SELECT
+                     sub.user_id as id,
+                     sub.username as name,
+                     sub.org_id,
+                     sub.org_name,
+                     sub.hierarchy_level + 1 AS hierarchy_level,
+                     oh.manager_user_id AS parent_id,
+                     oh.manager_name AS parent_username,
+                     sub.is_manager,
+                     CONCAT(oh.org_path, ',', sub.org_id) AS hierarchy_path
+                 FROM (
+                     SELECT
+                     CAST(oh.manager_id AS CHAR) AS user_id,
+                     CONCAT(oh.manager_name, '(', oh.org_name, ')') AS username,
+                     oh.org_id,
+                     oh.org_name,
+                     oh.org_level AS hierarchy_level,
+                     1 AS is_manager,
+                     oh.org_path AS hierarchy_path,
+                     oh.parent_org_id
+                     FROM org_hierarchy oh
+                     WHERE oh.manager_id IS NOT NULL AND oh.parent_org_id IS NOT NULL
+
+                     UNION ALL
+
+                     SELECT
+                     ul.user_id as id,
+                     CONCAT(u.name, '(', oh.org_name, ')') as name,
+                     oh.org_id,
+                     oh.org_name,
+                     oh.org_level AS hierarchy_level,
+                     0 AS is_manager,
+                     oh.org_path AS hierarchy_path,
+                     oh.parent_org_id
+                     FROM sys_organization_user_link ul
+                     INNER JOIN sys_user_jzg_info u ON ul.user_id = u.id AND u.is_delete = 0
+                     INNER JOIN org_hierarchy oh ON ul.organization_id = oh.org_id
+                     WHERE ul.user_id != CAST(oh.manager_id AS CHAR) AND oh.parent_org_id IS NOT NULL
+                     ) sub
+                     INNER JOIN org_hierarchy oh ON sub.parent_org_id = oh.org_id
+             ) p
+        ORDER BY p.hierarchy_path, p.is_manager DESC;
+    </select>
+</mapper>

+ 39 - 0
consoleStatistics/src/main/resources/mapper/ReportUploadExcelTaskMapper.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jzg.console.mapper.ReportUploadExcelTaskMapper">
+    <update id="updateStatusByUserId">
+        update  report_upload_excel_task
+        set  read_status =1
+        where upload_user_id =#{userId}
+        and read_status=0
+    </update>
+
+    <select id="getPageTaskList" resultType="com.jzg.commons.entity.report.dto.ReportUploadExcelTaskDto">
+         select
+             *
+         from
+             report_upload_excel_task
+         <where>
+             <if test="vo.uploadUserId !=null and vo.uploadUserId !=''">
+                 AND  upload_user_id  =#{ vo.uploadUserId }
+             </if>
+             <if test="vo.taskStatus !=null">
+                 AND   task_status  =#{ vo.taskStatus }
+             </if>
+             <if test="vo.readStatus !=null">
+                 AND  read_status  =#{ vo.readStatus }
+             </if>
+         </where>
+          order by  upload_date desc
+    </select>
+    <select id="getTaskMessageNoReadCount" resultType="java.lang.Integer">
+        select
+            count(0)
+        from
+            report_upload_excel_task
+        where
+            upload_user_id  =#{ userId }
+            and
+            read_status = 0
+    </select>
+</mapper>

+ 7 - 1
gateway/src/main/resources/application-dev.yml

@@ -33,7 +33,7 @@ spring:
         - id: tenant_route
           uri: http://localhost:8084/
           predicates:
-            - Path=/tenant/**,/dept/**,/area/**,/dict/**,/userInfo/**,/sysOrganization/**,/activity/**,/message/**,/messageNotice/**,/poster/**,/agreement/**,/pltAgreement/**,/agreementRules/**,/plt/areaLicense/**,/scheme/**,/schemeRules/**,/schemeRulesAttrLink/**,/schemeRulesAttr/**,/schemeRulesDictLable/**,/schemeRulesUndwrt/**,/schemeRulesUndwrtAttrLink/**,/schemeRulesUndwrtAttr/**,/schemeRulesUndwrtDictLable/**,/schemeRulesUndwrtRules/**,/schemeRulesUndwrtRulesAttrLink/**,/schemeRules,/ptlAgreementCost/**,/ptlAgreementCost/**,/ptlAgreementCostExternal/**,/operatorTrajectory/**,/messageTemplate/**,/message/**,/appUser/**,/userBankCard/**,/accountCard/**,/account/**,/amountAuditing/**,/userAccount/**
+            - Path=/tenant/**,/dept/**,/area/**,/dict/**,/userInfo/**,/sysOrganization/**,/activity/**,/message/**,/messageNotice/**,/poster/**,/agreement/**,/pltAgreement/**,/agreementRules/**,/plt/areaLicense/**,/scheme/**,/schemeRules/**,/schemeRulesAttrLink/**,/schemeRulesAttr/**,/schemeRulesDictLable/**,/schemeRulesUndwrt/**,/schemeRulesUndwrtAttrLink/**,/schemeRulesUndwrtAttr/**,/schemeRulesUndwrtDictLable/**,/schemeRulesUndwrtRules/**,/schemeRulesUndwrtRulesAttrLink/**,/schemeRules,/ptlAgreementCost/**,/ptlAgreementCost/**,/ptlAgreementCostExternal/**,/operatorTrajectory/**,/messageTemplate/**,/message/**,/appUser/**,/userBankCard/**,/accountCard/**,/account/**,/amountAuditing/**,/userAccount/**,/receivable/**,/sysDistributionSetting/**,/organization/**
 
         - id: summary_route
           uri: http://localhost:9898/
@@ -44,3 +44,9 @@ spring:
           uri: http://localhost:8085/
           predicates:
             - Path=/validate/**
+
+        #控制台添加网关
+        - id: console_route
+          uri: http://localhost:8086/
+          predicates:
+            - Path=/console/**

+ 5 - 1
gateway/src/main/resources/application-test.yml

@@ -29,6 +29,10 @@ spring:
           uri: http://172.24.144.223:9084/
           predicates:
             - Path=/tenant/**,/dept/**,/area/**,/dict/**,/userInfo/**,/sysOrganization/**,/activity/**,/message/**,/messageNotice/**,,/pltAgreement/**,/agreementRules/**,/poster/**,/agreement/**,/ptl/areaLicense/**,/ptlAgreementCost/**,/scheme/**,/ptlAgreementCostExternal/**,/plt/areaLicense/**
-
+        #数据报表
+        - id: console_route
+          uri: http://172.24.144.223:9085/
+          predicates:
+            - Path=/console/**
 
 

+ 22 - 5
pom.xml

@@ -1,12 +1,10 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
-
   <groupId>com.jzg</groupId>
   <artifactId>jzg</artifactId>
   <version>1.0-SNAPSHOT</version>
   <name>jzg Maven Webapp</name>
-
   <modules>
     <module>authentication</module>
     <module>commons</module>
@@ -14,6 +12,7 @@
     <module>platform</module>
     <module>tenant</module>
     <module>rocketmq</module>
+    <module>consoleStatistics</module>
   </modules>
   <packaging>pom</packaging>
 
@@ -41,10 +40,13 @@
     <rocketmq.version>2.2.1</rocketmq.version>
     <rocket.version>1.0-SNAPSHOT</rocket.version>
     <seate.version>1.7.0</seate.version>
+    <weixin-java.version>4.7.0</weixin-java.version>
   </properties>
 
 
   <dependencies>
+
+
     <!-- Spring Boot Starter Test -->
     <dependency>
       <groupId>org.springframework.boot</groupId>
@@ -94,10 +96,11 @@
       <groupId>com.alibaba.cloud</groupId>
       <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
     </dependency>
-  </dependencies>
 
+  </dependencies>
   <dependencyManagement>
     <dependencies>
+
       <dependency>
         <groupId>com.alibaba.cloud</groupId>
         <artifactId>spring-cloud-alibaba-dependencies</artifactId>
@@ -106,6 +109,7 @@
         <scope>import</scope>
       </dependency>
 
+
       <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-openfeign</artifactId>
@@ -136,7 +140,6 @@
         <artifactId>redisson-spring-boot-starter</artifactId>
         <version>${redisson.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.redisson</groupId>
         <artifactId>redisson-spring-data-27</artifactId>
@@ -156,12 +159,19 @@
         <version>3.0.0</version>
       </dependency>
 
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-webflux</artifactId>
+      </dependency>
+
+
+
       <!-- 数据库驱动,如 MySQL -->
       <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
-        <version>${mysql.connect.version}</version>
         <scope>runtime</scope>
+        <version>${mysql.connect.version}</version>
       </dependency>
 
       <dependency>
@@ -230,6 +240,13 @@
         <artifactId>rocketmq</artifactId>
         <version>${rocket.version}</version>
       </dependency>
+
+      <dependency>
+        <groupId>com.github.binarywang</groupId>
+        <artifactId>weixin-java-cp</artifactId>
+        <version>${weixin-java.version}</version>
+      </dependency>
+
     </dependencies>
   </dependencyManagement>
 

+ 13 - 8
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/client/ChengTaiAPI.java

@@ -3,25 +3,30 @@ package com.jzg.quotation.chengtai.crawler.client;
 import com.jzg.quotation.commons.standard.CrawlerRequestUrlStandard;
 
 public enum ChengTaiAPI implements CrawlerRequestUrlStandard {
-
+    // 登录相关
     GET_CAPTCHA("/api/upms/captcha/get", "获取验证码"),
     CHECK_CAPTCHA("/api/upms/captcha/check", "验证验证码"),
-
     LOGIN("/api/upms/login", "登录"),
+    // 归属信息
+    FIND_ATTRIBUTION_ORG_BY_USER("api/vehicle/insure/channel/findAttributionOrgByUser", "查询登录用户可用的业务归属机构"),
+    FIND_SALE_MAN_VO_BY_DEPT_CODE("/api/vehicle/insure/channel/findSaleManVoByDeptCode", "查询业务人员"),
+    FIND_CORE_CONFER_INFO_BY_HANDLE_CODE("/api/vehicle/insure/channel/findCoreConferInfoByHandleCode", "查询务人员可用的中介协议和代理机构"),
+
+    FIND_CAR_MODEL("/api/vehicle/insure/findCarModel", "查询车型"),
+    GET_CI_MODEL_CODE("api/vehicle/core/getCIModelCode/", "查询车系"),
+    CLIENT_IDENTIFY("/api/vehicle/core/clientIdentify", "身份识别"),
+    PREMIUMCAL("/api/vehicle/core/premiumcal", "保费计算"),
+
+
     System("/api/upms/system", "系统信息"),
     FindAreaConfig("/api/vehicle/base/findAreaConfig", ""),
     FindDictionaryOfRisk("/api/vehicle/base/findDictionary?type=RISK_TYPE", "查询险种"),
     QueryLoginUserInfo("/api/vehicle/base/queryLoginUserInfo", "查询登录用户信息"),
     QueryRiskAuthority("/api/vehicle/insure/channel/queryRiskAuthority", "查询业务人员可用的信息"),
-    FindAttributionOrgByUser("api/vehicle/insure/channel/findAttributionOrgByUser", "查询登录用户可用的业务归属机构"),
-    FindCoreConferInfoByHandleCode("/api/vehicle/insure/channel/findCoreConferInfoByHandleCode", "查询务人员可用的中介协议和代理机构"),
-    FindSaleManVoByDeptCode("/api/vehicle/insure/channel/findSaleManVoByDeptCode", "查询业务人员"),
     QueryVehicleList("/api/vehicle/insure/carInfo/queryVehicleList", "查询车辆种类"),
     QueryCarInfo("/api/vehicle/core/queryCarInfo", "查询车型"),
-    FindCarModel("/api/vehicle/insure/findCarModel", "查询车型"),
-    ClientIdentify("/api/vehicle/core/clientIdentify", "身份识别"),
     Save("/api/vehicle/core/save", "保存"),
-    Premiumcal("/api/vehicle/core/premiumcal", "保费计算"),
+
     Submit("/api/vehicle/core/submit", "核保"),
     ImageUpload("/api/vehicle/imageUpload", "上传影像"),
     GetPolicyModel("/api/vehicle/query/getPolicyModel", "获取详情"),

+ 0 - 52
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/client/EncryptRSA.java

@@ -1,52 +0,0 @@
-package com.jzg.quotation.chengtai.crawler.client;
-
-import javax.crypto.Cipher;
-import java.security.KeyFactory;
-import java.security.PublicKey;
-import java.security.spec.X509EncodedKeySpec;
-import java.util.Base64;
-
-public class EncryptRSA {
-    private static final String defaultPublicKey = "-----BEGIN PUBLIC KEY-----\n" +
-            "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCi72JvLMxR9U6smKlV6au0HM2k\n" +
-            "QRSlSkUpWs40MUSF2IRmelEqJAf+kY6tNAw8+Lo1r+qsf9ewnDSbvL06VO3EtWCv\n" +
-            "ka64fxG+ZzjF2ClamVcP0q6fyVC4m+eygToXlW2EhfDX7t5dU9ZkFB2zC7AHgY5A\n" +
-            "dMzUUVair92xYeZ+RwIDAQAB\n" +
-            "-----END PUBLIC KEY-----";
-
-    public static String encrypt(String publicKeyStr, String password) throws Exception {
-        // 1. 处理PEM格式的公钥(移除头尾和换行符)
-        publicKeyStr = publicKeyStr
-                .replace("-----BEGIN PUBLIC KEY-----", "")
-                .replace("-----END PUBLIC KEY-----", "")
-                .replaceAll("\\s+", "");
-
-        // 2. Base64解码公钥
-        byte[] publicKeyBytes = Base64.getDecoder().decode(publicKeyStr);
-
-        // 3. 生成PublicKey对象
-        X509EncodedKeySpec keySpec = new X509EncodedKeySpec(publicKeyBytes);
-        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
-        PublicKey publicKey = keyFactory.generatePublic(keySpec);
-
-        // 4. 加密(使用PKCS#1 v1.5填充)
-        Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
-        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
-        byte[] encryptedBytes = cipher.doFinal(password.getBytes());
-
-        // 5. 返回Base64编码结果
-        return Base64.getEncoder().encodeToString(encryptedBytes);
-    }
-
-
-    public static String encrypt(String publicKeyStr) throws Exception {
-        return encrypt(defaultPublicKey, publicKeyStr);
-    }
-
-    public static void main(String[] args) throws Exception {
-        // 示例公钥(替换为实际公钥)
-        String password = "your_password_123";
-        String encrypted = encrypt(password);
-        System.out.println("Encrypted: " + encrypted);
-    }
-}

+ 151 - 21
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/component/ChengTaiRequestCrawlerComponent.java

@@ -1,20 +1,23 @@
 package com.jzg.quotation.chengtai.crawler.component;
 
+import com.jzg.commons.entity.quote.vo.CarInfoVo;
+import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
+import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.chengtai.crawler.client.ChengTaiAPI;
-import com.jzg.quotation.chengtai.crawler.model.request.ChengTaiCheckCaptchaRequest;
-import com.jzg.quotation.chengtai.crawler.model.request.ChengTaiGetCaptchaRequest;
-import com.jzg.quotation.chengtai.crawler.model.request.ChengTaiLoginRequest;
-import com.jzg.quotation.chengtai.crawler.model.response.ChengTaiCheckCaptchaResponse;
-import com.jzg.quotation.chengtai.crawler.model.response.ChengTaiGetCaptchaResponse;
-import com.jzg.quotation.chengtai.crawler.model.response.ChengTaiLoginResponse;
+import com.jzg.quotation.chengtai.crawler.entity.request.*;
+import com.jzg.quotation.chengtai.crawler.entity.response.*;
 import com.jzg.quotation.chengtai.crawler.properties.ChengTaiCrawlerProperties;
 import com.jzg.quotation.commons.component.RequestComponent;
+import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
 import lombok.RequiredArgsConstructor;
+import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 
 @Component
@@ -25,13 +28,33 @@ public class ChengTaiRequestCrawlerComponent {
 
     private final ChengTaiCrawlerProperties chengTaiCrawlerProperties;
 
-    public <Response> ResponseEntity<Response> requestBasePost(ChengTaiAPI requestUrl, Object body, Class<Response> responseClass, HttpHeaders headers) {
+
+    /**
+     * 获取响应内容
+     *
+     * @param requestUrl    请求地址
+     * @param body          请求内容
+     * @param responseClass 响应内容
+     * @param headers       请求头
+     * @return 响应内容
+     */
+    public <Response> ResponseEntity<ChengTaiBaseResponse<Response>> requestBasePost(ChengTaiAPI requestUrl, Object body, ParameterizedTypeReference<ChengTaiBaseResponse<Response>> responseClass, HttpHeaders headers) {
         String url = chengTaiCrawlerProperties.getBaseUrl() + requestUrl.uri();
-        return requestComponent.objectPost(url, body, responseClass, headers);
+        return requestComponent.basePost(url, body, responseClass, headers);
     }
 
-    public <Response> Response requestPost(ChengTaiAPI requestUrl, Object body, Class<Response> responseClass, HttpHeaders headers) {
-        return requestBasePost(requestUrl, body, responseClass, headers).getBody();
+    /**
+     * 获取响应内容
+     *
+     * @param requestUrl    请求地址
+     * @param body          请求内容
+     * @param responseClass 响应内容
+     * @param headers       请求头
+     * @return 响应内容
+     */
+    public <Response> Response requestPost(ChengTaiAPI requestUrl, Object body, ParameterizedTypeReference<ChengTaiBaseResponse<Response>> responseClass, HttpHeaders headers) {
+        ChengTaiBaseResponse<Response> response = requestBasePost(requestUrl, body, responseClass, headers).getBody();
+        return response.getBody();
     }
 
     /**
@@ -41,22 +64,19 @@ public class ChengTaiRequestCrawlerComponent {
      * @return 公钥
      */
     public static <T> String getPublicKey(ResponseEntity<T> responseEntity) {
-        return Optional.ofNullable(responseEntity)
-                .map(ResponseEntity::getHeaders)
-                .map(x -> x.get("Publickey"))
-                .map(x -> x.get(0))
-                .orElseThrow(() -> new SystemException("获取公钥失败"));
+        return Optional.ofNullable(responseEntity).map(ResponseEntity::getHeaders).map(x -> x.get("Publickey")).map(x -> x.get(0)).orElseThrow(() -> new SystemException("获取公钥失败"));
     }
 
-
     /**
      * 获取验证码
      *
      * @param request 请求内容
      * @return 验证码
      */
-    public ResponseEntity<ChengTaiGetCaptchaResponse> getCaptcha(ChengTaiGetCaptchaRequest request) {
-        return requestBasePost(ChengTaiAPI.GET_CAPTCHA, request, ChengTaiGetCaptchaResponse.class, new HttpHeaders());
+    public ChengTaiGetCaptchaResponse getCaptcha(ChengTaiGetCaptchaRequest request) {
+        return requestPost(ChengTaiAPI.GET_CAPTCHA, request, new ParameterizedTypeReference<>() {
+        }, new HttpHeaders());
+
     }
 
     /**
@@ -65,8 +85,9 @@ public class ChengTaiRequestCrawlerComponent {
      * @param request 验证码
      * @return 验证结果
      */
-    public ResponseEntity<ChengTaiCheckCaptchaResponse> checkCaptcha(ChengTaiCheckCaptchaRequest request) {
-        return requestBasePost(ChengTaiAPI.CHECK_CAPTCHA, request, ChengTaiCheckCaptchaResponse.class, new HttpHeaders());
+    public ResponseEntity<ChengTaiBaseResponse<ChengTaiCheckCaptchaResponse>> checkCaptcha(ChengTaiCheckCaptchaRequest request) {
+        return requestBasePost(ChengTaiAPI.CHECK_CAPTCHA, request, new ParameterizedTypeReference<>() {
+        }, new HttpHeaders());
     }
 
     /**
@@ -75,10 +96,119 @@ public class ChengTaiRequestCrawlerComponent {
      * @param request 登录信息
      * @return 登录结果
      */
-    public ChengTaiLoginResponse login(ChengTaiLoginRequest request){
+    public ChengTaiLoginResponse login(ChengTaiLoginRequest request) {
         ResponseEntity<ChengTaiLoginResponse> response = requestComponent.formData(ChengTaiAPI.LOGIN.getRequestUrl(chengTaiCrawlerProperties.getBaseUrl()), request, ChengTaiLoginResponse.class, new HttpHeaders());
         return response.getBody();
     }
 
+    /**
+     * 查询归属机构
+     *
+     * @param deptCode    归属机构
+     * @param httpHeaders 请求头
+     * @return 归属机构
+     */
+    public ChengTaiFindAttributionOrgByUserResponse findAttributionOrgByUser(String deptCode, HttpHeaders httpHeaders) {
+        List<ChengTaiFindAttributionOrgByUserResponse> response = requestPost(ChengTaiAPI.FIND_ATTRIBUTION_ORG_BY_USER, null, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.stream().filter(x -> deptCode.equals(x.getDeptCode())).findFirst().orElseThrow(() -> new SystemException("获取归属机构失败"));
+    }
+
+    /**
+     * 查询归属机构下的业务员
+     *
+     * @param deptCode    业务归属机构
+     * @param userCode    业务员
+     * @param httpHeaders 请求头
+     * @return 业务员
+     */
+    public ChengTaiFindSaleManVoByDeptCodeResponse findSaleManVoByDeptCode(String deptCode, String userCode, HttpHeaders httpHeaders) {
+        ChengTaiFindSaleManVoByDeptCodeRequest request = new ChengTaiFindSaleManVoByDeptCodeRequest(deptCode);
+        List<ChengTaiFindSaleManVoByDeptCodeResponse> response = requestPost(ChengTaiAPI.FIND_SALE_MAN_VO_BY_DEPT_CODE, request, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return response.stream()
+                .filter(x -> userCode.equals(x.getUserCode()))
+                .findFirst()
+                .orElseThrow(() -> new SystemException("获取归属机构下的业务员失败"));
+    }
 
+    /**
+     * 查询业务员下的中介协议
+     *
+     * @param saleCode      业务员
+     * @param agreementCode 中介协议
+     * @param httpHeaders   请求头
+     * @return 中介协议
+     */
+    public ChengTaiFindCoreConferInfoByHandleCodeResponse findCoreConferInfoByHandleCode(String saleCode, String agreementCode, HttpHeaders httpHeaders) {
+        ChengTaiFindCoreConferInfoByHandleCodeRequest request = new ChengTaiFindCoreConferInfoByHandleCodeRequest(saleCode);
+        List<ChengTaiFindCoreConferInfoByHandleCodeResponse> responses = requestPost(ChengTaiAPI.FIND_CORE_CONFER_INFO_BY_HANDLE_CODE, request, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        return responses.stream()
+                .filter(x -> agreementCode.equals(x.getAgreementCode()))
+                .findFirst()
+                .orElseThrow(() -> new SystemException("获取归属机构下的业务员失败"));
+    }
+
+    /**
+     * 客户身份信息确认
+     *
+     * @param customerInfoVo 人员信息
+     * @param role:          角色
+     * @return 查询结果
+     */
+    public ChengTaiClientIdentifyResponse clientIdentify(CustomerInfoVo customerInfoVo, String role, String comCode, HttpHeaders httpHeaders) {
+        ChengTaiClientIdentifyRequest request = new ChengTaiClientIdentifyRequest(customerInfoVo, role, comCode);
+        return requestPost(ChengTaiAPI.CLIENT_IDENTIFY, request, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+    }
+
+    /**
+     * 获取车辆信息
+     *
+     * @param carInfoVo   车辆信息
+     * @param httpHeaders 请求头
+     * @return 车辆信息
+     */
+    public ChengTaiFindCarModelResponse.DataDTO findCarModel(CarInfoVo carInfoVo, HttpHeaders httpHeaders) {
+        ChengTaiFindCarModelRequest chengTaiFindCarModelRequest = new ChengTaiFindCarModelRequest(carInfoVo.getBrandName());
+        ChengTaiFindCarModelResponse chengTaiFindCarModelResponse = requestPost(ChengTaiAPI.FIND_CAR_MODEL, chengTaiFindCarModelRequest, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+        List<ChengTaiFindCarModelResponse.DataDTO> carModel = Optional.ofNullable(chengTaiFindCarModelResponse)
+                .map(ChengTaiFindCarModelResponse::getData)
+                .orElseThrow(() -> new SystemException("获取车辆信息失败"));
+        return CarModelsFilterUtils.to(carModel, carInfoVo);
+    }
+
+    /**
+     * 获取车辆信息
+     *
+     * @param carName     车辆名称
+     * @param httpHeaders 请求头
+     * @return 车辆信息
+     */
+    public ChengTaiGetCIModelCodeResponse getCIModelCode(String carName, HttpHeaders httpHeaders) {
+        return requestComponent.get(ChengTaiAPI.CLIENT_IDENTIFY.getRequestUrl(chengTaiCrawlerProperties.getBaseUrl()) + carName, Map.of(), null, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+    }
+
+    /**
+     * 获取保费
+     *
+     * @param quoteVo       报价信息
+     * @param carModel      车辆信息
+     * @param policyHolder  投保人
+     * @param insuredPerson 被保人
+     * @param httpHeaders   请求头
+     * @return 保费
+     */
+    public ChengTaiPremiumcaResponse premiumca(QuoteVo quoteVo,
+                                               ChengTaiFindCarModelResponse.DataDTO carModel,
+                                               ChengTaiClientIdentifyResponse policyHolder,
+                                               ChengTaiClientIdentifyResponse insuredPerson,
+                                               String actualValue, HttpHeaders httpHeaders) {
+        ChengTaiPremiumcaRequest request = new ChengTaiPremiumcaRequest(quoteVo, carModel, policyHolder, insuredPerson, actualValue);
+        return requestPost(ChengTaiAPI.PREMIUMCAL, request, new ParameterizedTypeReference<>() {
+        }, httpHeaders);
+    }
 }

+ 1 - 1
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/ChengTaiCrawlerConfigureParameters.java → tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/ChengTaiCrawlerConfigureParameters.java

@@ -1,4 +1,4 @@
-package com.jzg.quotation.chengtai.crawler.model;
+package com.jzg.quotation.chengtai.crawler.entity;
 
 import com.jzg.quotation.commons.standard.ConfigureParameters;
 import lombok.AllArgsConstructor;

+ 1 - 2
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/request/ChengTaiCheckCaptchaRequest.java → tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiCheckCaptchaRequest.java

@@ -1,6 +1,5 @@
-package com.jzg.quotation.chengtai.crawler.model.request;
+package com.jzg.quotation.chengtai.crawler.entity.request;
 
-import com.alibaba.fastjson.JSON;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 146 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiClientIdentifyRequest.java

@@ -0,0 +1,146 @@
+package com.jzg.quotation.chengtai.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.entity.quote.vo.CustomerInfoVo;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @ClassName ChengTaiClientIdentifyRequest
+ * @Description 诚泰财险【爬虫】 客户识别请求参数
+ * @Author wenks
+ * @Date 2025/9/11 17:21
+ * @Version 1.0
+ */
+@Data
+public class ChengTaiClientIdentifyRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -7741886786790391773L;
+
+    @JsonProperty("type")
+    private String type;
+
+    @JsonProperty("role")
+    private String role;
+
+    @JsonProperty("isTerror")
+    private String isTerror;
+
+    @JsonProperty("name")
+    private String name;
+
+    @JsonProperty("identifyTypeCode")
+    private String identifyTypeCode;
+
+    @JsonProperty("identifyTypeName")
+    private String identifyTypeName;
+
+    @JsonProperty("identifyNumber")
+    private String identifyNumber;
+
+    @JsonProperty("province")
+    private String province;
+
+    @JsonProperty("city")
+    private String city;
+
+    @JsonProperty("district")
+    private String district;
+
+    @JsonProperty("provinceName")
+    private String provinceName;
+
+    @JsonProperty("cityName")
+    private String cityName;
+
+    @JsonProperty("districtName")
+    private String districtName;
+
+    @JsonProperty("addr")
+    private String addr;
+
+    @JsonProperty("completeAddress")
+    private String completeAddress;
+
+    @JsonProperty("mobile")
+    private String mobile;
+
+    @JsonProperty("specialClient")
+    private String specialClient;
+
+    @JsonProperty("identifyValidDate")
+    private String identifyValidDate;
+
+    @JsonProperty("identifyValidEndDate")
+    private String identifyValidEndDate;
+
+    @JsonProperty("sex")
+    private String sex;
+
+    @JsonProperty("birthday")
+    private String birthday;
+
+    @JsonProperty("email")
+    private String email;
+
+    @JsonProperty("operateFlag")
+    private String operateFlag;
+
+    @JsonProperty("longTerm")
+    private String longTerm;
+
+    @JsonProperty("terrorNationality")
+    private String terrorNationality;
+
+    @JsonProperty("terrorNationalityName")
+    private String terrorNationalityName;
+
+    @JsonProperty("individualBusinessInd")
+    private String individualBusinessInd;
+
+    @JsonProperty("microBusinessesInd")
+    private String microBusinessesInd;
+
+    @JsonProperty("signedbyOrig")
+    private String signedbyOrig;
+
+    @JsonProperty("comCode")
+    private String comCode;
+
+    public ChengTaiClientIdentifyRequest(CustomerInfoVo customerInfoVo, String role, String comCode) {
+//        this.type = type;
+        this.role = role;
+        this.isTerror = "0";
+        this.name = customerInfoVo.getName();
+        this.identifyTypeCode = customerInfoVo.getIdentifyType();
+        this.identifyTypeName = customerInfoVo.getIdentifyTypeName();
+        this.identifyNumber = customerInfoVo.getIdentifyNumber();
+        this.province = customerInfoVo.getProvinceCode();
+        this.city = customerInfoVo.getCityCode();
+        this.district = customerInfoVo.getCountyCode();
+        this.provinceName = customerInfoVo.getProvince();
+        this.cityName = customerInfoVo.getCity();
+        this.districtName = customerInfoVo.getCounty();
+        this.addr = customerInfoVo.getAddr();
+        this.completeAddress = customerInfoVo.getAddr();
+        this.mobile = customerInfoVo.getMobile();
+        this.specialClient = "00";
+        this.identifyValidDate = customerInfoVo.getIdentifyValidDate();
+        this.identifyValidEndDate = customerInfoVo.getIdentifyValidEndDate();
+        this.sex = customerInfoVo.getGender();
+        this.birthday = customerInfoVo.getBirthday();
+        this.email = customerInfoVo.getEmail();
+        this.operateFlag = "Q";
+        this.longTerm = "0";
+        this.terrorNationality = "CN";
+        this.terrorNationalityName = "中华人民共和国";
+        this.individualBusinessInd = "0";
+        this.microBusinessesInd = "0";
+        this.signedbyOrig = "0";
+        this.comCode = comCode;
+    }
+
+}

+ 69 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiFindCarModelRequest.java

@@ -0,0 +1,69 @@
+package com.jzg.quotation.chengtai.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+/**
+ * @ClassName ChengTaiFindCarModelRequest
+ * @Description 诚泰财险【爬虫】车型查询请求参数
+ * @Author wenks
+ * @Date 2025/9/11 17:15
+ * @Version 1.0
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ChengTaiFindCarModelRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -2517394103523954743L;
+
+    @JsonProperty("horthandcode")
+    private String horthandcode;
+
+    @JsonProperty("purchasepriceStart")
+    private String purchasepriceStart;
+
+    @JsonProperty("purchasepriceEnd")
+    private String purchasepriceEnd;
+
+    @JsonProperty("modelcname")
+    private String modelcname;
+
+    @JsonProperty("carbrand")
+    private String carbrand;
+
+    @JsonProperty("modelcode")
+    private String modelcode;
+
+    @JsonProperty("familyname")
+    private String familyname;
+
+    @JsonProperty("factory")
+    private String factory;
+
+    @JsonProperty("pageNo")
+    private Integer pageNo;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+    public ChengTaiFindCarModelRequest(String modelcname) {
+        this.horthandcode = "";
+        this.purchasepriceStart = "";
+        this.purchasepriceEnd = "";
+        this.modelcname = modelcname;
+        this.carbrand = "";
+        this.modelcode = "";
+        this.familyname = "";
+        this.factory = "";
+        this.pageNo = 1;
+        this.pageSize = 20;
+    }
+}

+ 37 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiFindCoreConferInfoByHandleCodeRequest.java

@@ -0,0 +1,37 @@
+package com.jzg.quotation.chengtai.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @ClassName ChengTaiFindCoreConferInfoByHandleCodeRequest
+ * @Description 诚泰财险查询中介协议
+ * @Author wenks
+ * @Date 2025/9/12 11:42
+ * @Version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class ChengTaiFindCoreConferInfoByHandleCodeRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 6084834752852069185L;
+
+    @JsonProperty("saleCode")
+    private String saleCode;
+
+    @JsonProperty("riskCodes")
+    private List<String> riskCodes;
+
+    public ChengTaiFindCoreConferInfoByHandleCodeRequest(String saleCode) {
+        this.saleCode = saleCode;
+        this.riskCodes = List.of("0801", "0821", "0822");
+    }
+
+}
+

+ 35 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiFindSaleManVoByDeptCodeRequest.java

@@ -0,0 +1,35 @@
+package com.jzg.quotation.chengtai.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @ClassName ChengTaiFindSaleManVoByDeptCodeRequest
+ * @Description 获取业务员
+ * @Author wenks
+ * @Date 2025/9/12 11:11
+ * @Version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class ChengTaiFindSaleManVoByDeptCodeRequest {
+
+    @JsonProperty("deptCode")
+    private String deptCode;
+
+    @JsonProperty("isOuter")
+    private Boolean isOuter;
+
+    @JsonProperty("riskCodes")
+    private List<String> riskCodes;
+
+    public ChengTaiFindSaleManVoByDeptCodeRequest(String deptCode) {
+        this.deptCode = deptCode;
+        this.isOuter = false;
+        this.riskCodes = List.of("0801", "0821", "0822");
+    }
+
+}

+ 1 - 1
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/request/ChengTaiGetCaptchaRequest.java → tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiGetCaptchaRequest.java

@@ -1,4 +1,4 @@
-package com.jzg.quotation.chengtai.crawler.model.request;
+package com.jzg.quotation.chengtai.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;

+ 1 - 3
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/request/ChengTaiLoginRequest.java → tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiLoginRequest.java

@@ -1,8 +1,6 @@
-package com.jzg.quotation.chengtai.crawler.model.request;
+package com.jzg.quotation.chengtai.crawler.entity.request;
 
-import com.alibaba.fastjson.JSON;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.jzg.quotation.chengtai.crawler.client.EncryptRSA;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 

+ 975 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/request/ChengTaiPremiumcaRequest.java

@@ -0,0 +1,975 @@
+package com.jzg.quotation.chengtai.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.commons.entity.quote.vo.*;
+import com.jzg.quotation.chengtai.crawler.entity.response.ChengTaiClientIdentifyResponse;
+import com.jzg.quotation.chengtai.crawler.entity.response.ChengTaiFindCarModelResponse;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @ClassName ChengTaiPremiumcaRequest
+ * @Description 诚泰财险【爬虫】保费计算请求参数
+ * @Author wenks
+ * @Date 2025/9/11 17:30
+ * @Version 1.0
+ */
+@Data
+public class ChengTaiPremiumcaRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 805487501110961692L;
+
+    @JsonProperty("combo")
+    private ComboDTO combo;
+
+    @JsonProperty("flag")
+    private FlagDTO flag;
+
+    @JsonProperty("businessMain")
+    private BusinessMainDTO businessMain;
+
+    @JsonProperty("saleInfo")
+    private SaleInfoDTO saleInfo;
+
+    @JsonProperty("insuredObject")
+    private InsuredObjectDTO insuredObject;
+
+    @JsonProperty("applicant")
+    private PersonnelDTO applicant;
+
+    @JsonProperty("insured")
+    private PersonnelDTO insured;
+
+    @JsonProperty("owner")
+    private OwnerDTO owner;
+
+    @JsonProperty("biContract")
+    private BiContractDTO biContract;
+
+    @JsonProperty("ciContract")
+    private CiContractDTO ciContract;
+
+    @JsonProperty("accidentMain")
+    private AccidentMainDTO accidentMain;
+
+    @JsonProperty("accContract")
+    private AccContractDTO accContract;
+
+    @JsonProperty("submitReqBody")
+    private SubmitReqBodyDTO submitReqBody;
+
+    @JsonProperty("acciSaleInfo")
+    private AcciSaleInfoDTO acciSaleInfo;
+
+    public ChengTaiPremiumcaRequest(QuoteVo quoteVo, ChengTaiFindCarModelResponse.DataDTO carModel,
+                                    ChengTaiClientIdentifyResponse policyHolder, ChengTaiClientIdentifyResponse insuredPerson,
+                                    String actualValue) {
+        this.combo = new ComboDTO("1");
+        this.flag = new FlagDTO(false, false);
+        // 投保人
+        this.applicant = new PersonnelDTO(policyHolder);
+        // 被保人
+        this.insured = new PersonnelDTO(insuredPerson);
+        // 车主
+        this.owner = new OwnerDTO(quoteVo.getOwnersInfo());
+        // 车辆信息
+        this.insuredObject = new InsuredObjectDTO(quoteVo.getCarInfoVo(), actualValue, carModel);
+        // 交强险
+        this.ciContract = new CiContractDTO(quoteVo.getCiRiskInfoVo(), policyHolder);
+        // 商业险
+        this.biContract = new BiContractDTO(quoteVo.getBiRiskInfoVo(), quoteVo.getKindInfoVo());
+    }
+
+    @AllArgsConstructor
+    @NoArgsConstructor
+    @Data
+    public static class ComboDTO {
+        @JsonProperty("state")
+        private String state;
+    }
+
+    @AllArgsConstructor
+    @NoArgsConstructor
+    @Data
+    public static class FlagDTO {
+        @JsonProperty("isCopy")
+        private Boolean isCopy;
+        @JsonProperty("isRenewalFlag")
+        private Boolean isRenewalFlag;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class BusinessMainDTO {
+        @JsonProperty("operatorCode")
+        private String operatorCode;
+        @JsonProperty("operatorName")
+        private String operatorName;
+        @JsonProperty("operateDate")
+        private String operateDate;
+        @JsonProperty("issueDate")
+        private String issueDate;
+        @JsonProperty("inputDate")
+        private String inputDate;
+        @JsonProperty("language")
+        private String language;
+        @JsonProperty("moneySuspiciousInd")
+        private String moneySuspiciousInd;
+        @JsonProperty("codInd")
+        private String codInd;
+        @JsonProperty("argueSolution")
+        private String argueSolution;
+        @JsonProperty("relateTradeType")
+        private String relateTradeType;
+        @JsonProperty("issueCompany")
+        private String issueCompany;
+        @JsonProperty("issueCompanyName")
+        private String issueCompanyName;
+        @JsonProperty("resourceType")
+        private String resourceType;
+        @JsonProperty("businessType")
+        private String businessType;
+        @JsonProperty("smsCheckFlag")
+        private String smsCheckFlag;
+        @JsonProperty("isTerror")
+        private String isTerror;
+        @JsonProperty("planCode")
+        private String planCode;
+        @JsonProperty("smsCodeFlag")
+        private String smsCodeFlag;
+        @JsonProperty("registerWay")
+        private String registerWay;
+        @JsonProperty("carmodel")
+        private String carmodel;
+        @JsonProperty("isCarReform")
+        private String isCarReform;
+        @JsonProperty("cashBusiness")
+        private String cashBusiness;
+        @JsonProperty("publicChanged")
+        private Boolean publicChanged;
+        @JsonProperty("biChanged")
+        private Boolean biChanged;
+        @JsonProperty("ciChanged")
+        private Boolean ciChanged;
+        @JsonProperty("carRegistFlag")
+        private String carRegistFlag;
+        @JsonProperty("biConfigAutoFlag")
+        private String biConfigAutoFlag;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class SaleInfoDTO {
+        @JsonProperty("businessMode")
+        private String businessMode;
+        @JsonProperty("businessSource")
+        private String businessSource;
+        @JsonProperty("comCode")
+        private String comCode;
+        @JsonProperty("comName")
+        private String comName;
+        @JsonProperty("channelType")
+        private String channelType;
+        @JsonProperty("agreementNo")
+        private String agreementNo;
+        @JsonProperty("agreementNoName")
+        private String agreementNoName;
+        @JsonProperty("agentCode")
+        private String agentCode;
+        @JsonProperty("agentName")
+        private String agentName;
+        @JsonProperty("solutionCode")
+        private String solutionCode;
+        @JsonProperty("permitNo")
+        private String permitNo;
+        @JsonProperty("channelTypeDetail")
+        private String channelTypeDetail;
+        @JsonProperty("handlerCode")
+        private String handlerCode;
+        @JsonProperty("handlerName")
+        private String handlerName;
+        @JsonProperty("cooperateSiteCode")
+        private String cooperateSiteCode;
+        @JsonProperty("cooperateSiteName")
+        private String cooperateSiteName;
+        @JsonProperty("userCode")
+        private String userCode;
+        @JsonProperty("userName")
+        private String userName;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class InsuredObjectDTO {
+        @JsonProperty("policyCar")
+        private PolicyCarDTO policyCar;
+
+        public InsuredObjectDTO(CarInfoVo carInfoVo, String actualValue, ChengTaiFindCarModelResponse.DataDTO carModel) {
+            this.policyCar = new PolicyCarDTO(carInfoVo, actualValue, carModel);
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class PolicyCarDTO {
+            @JsonProperty("vhlInfoType")
+            private String vhlInfoType;
+            @JsonProperty("plateNo")
+            private String plateNo;
+            @JsonProperty("vin")
+            private String vin;
+            @JsonProperty("engine")
+            private String engine;
+            @JsonProperty("noLicenseFlag")
+            private String noLicenseFlag;
+            @JsonProperty("brandName")
+            private String brandName;
+            @JsonProperty("modelCode")
+            private String modelCode;
+            @JsonProperty("printBrandName")
+            private String printBrandName;
+            @JsonProperty("registerDate")
+            private String registerDate;
+            @JsonProperty("issueDate")
+            private String issueDate;
+            @JsonProperty("enrollDate")
+            private String enrollDate;
+            @JsonProperty("transferMark")
+            private String transferMark;
+            @JsonProperty("carKindCode")
+            private String carKindCode;
+            @JsonProperty("carKindName")
+            private String carKindName;
+            @JsonProperty("useNatureCode")
+            private String useNatureCode;
+            @JsonProperty("useNatureName")
+            private String useNatureName;
+            @JsonProperty("attachNature")
+            private String attachNature;
+            @JsonProperty("attachNatureName")
+            private String attachNatureName;
+            @JsonProperty("purchasePrice")
+            private Integer purchasePrice;
+            @JsonProperty("orignPurchasePrice")
+            private Integer orignPurchasePrice;
+            @JsonProperty("actualValue")
+            private String actualValue;
+            @JsonProperty("consultValue")
+            private String consultValue;
+            @JsonProperty("plateType")
+            private String plateType;
+            @JsonProperty("plateTypeName")
+            private String plateTypeName;
+            @JsonProperty("vehicleType")
+            private String vehicleType;
+            @JsonProperty("vehicleTypeName")
+            private String vehicleTypeName;
+            @JsonProperty("energyTypes")
+            private String energyTypes;
+            @JsonProperty("carCheckStatus")
+            private String carCheckStatus;
+            @JsonProperty("carCheckerName")
+            private String carCheckerName;
+            @JsonProperty("carCheckTime")
+            private String carCheckTime;
+            @JsonProperty("approvedPassengersCapacity")
+            private Integer approvedPassengersCapacity;
+            @JsonProperty("approvedLoad")
+            private Integer approvedLoad;
+            @JsonProperty("power")
+            private String power;
+            @JsonProperty("displacement")
+            private Integer displacement;
+            @JsonProperty("exhaustScaleUnit")
+            private String exhaustScaleUnit;
+            @JsonProperty("loanVehicleFlag")
+            private String loanVehicleFlag;
+            @JsonProperty("ecdemicVehicleFlag")
+            private String ecdemicVehicleFlag;
+            @JsonProperty("deptCode")
+            private String deptCode;
+            @JsonProperty("deptName")
+            private String deptName;
+            @JsonProperty("useYears")
+            private String useYears;
+            @JsonProperty("seriesCode")
+            private String seriesCode;
+            @JsonProperty("series")
+            private String series;
+            @JsonProperty("seriesType")
+            private String seriesType;
+            @JsonProperty("brandCode")
+            private String brandCode;
+            @JsonProperty("brand")
+            private String brand;
+            @JsonProperty("shortHandCode")
+            private String shortHandCode;
+            @JsonProperty("vehicleKindCode")
+            private String vehicleKindCode;
+            @JsonProperty("carName")
+            private String carName;
+            @JsonProperty("monthDepRate")
+            private Double monthDepRate;
+            @JsonProperty("matchCiModelCode")
+            private String matchCiModelCode;
+            @JsonProperty("unladenMass")
+            private String unladenMass;
+            @JsonProperty("ciModelCode")
+            private String ciModelCode;
+            @JsonProperty("noticeType")
+            private String noticeType;
+            @JsonProperty("newCarSign")
+            private String newCarSign;
+            @JsonProperty("runArea")
+            private String runArea;
+            @JsonProperty("runAreaName")
+            private String runAreaName;
+            @JsonProperty("factoryName")
+            private String factoryName;
+            @JsonProperty("carTypeCode")
+            private String carTypeCode;
+            @JsonProperty("countryNature")
+            private String countryNature;
+            @JsonProperty("isEnergy")
+            private String isEnergy;
+            @JsonProperty("fraud")
+            private String fraud;
+            @JsonProperty("endorTransferMark")
+            private String endorTransferMark;
+            @JsonProperty("cimodelclass")
+            private String cimodelclass;
+
+            public PolicyCarDTO(CarInfoVo carInfoVo, String actualValue, ChengTaiFindCarModelResponse.DataDTO carModel) {
+                this.vhlInfoType = "1";
+                this.plateNo = carInfoVo.getLicenseNo();
+                this.vin = carInfoVo.getVinNo();
+                this.engine = carInfoVo.getEngineNo();
+                this.noLicenseFlag = "0";
+                this.brandName = carModel.getModelcname();
+                this.modelCode = carModel.getModelcode();
+                this.printBrandName = carModel.getModelcname();
+                this.registerDate = carInfoVo.getRegisterDate();
+                this.issueDate = carInfoVo.getIssueDate();
+                this.enrollDate = carInfoVo.getRegisterDate();
+                this.transferMark = carInfoVo.isTransfer() ? "1" : "0";
+                this.carKindCode = carInfoVo.getCarKindCode();
+                this.carKindName = carInfoVo.getCarKindName();
+                this.useNatureCode = carInfoVo.getVehicleUseCode();
+                this.useNatureName = carInfoVo.getVehicleUseName();
+                this.attachNature = carInfoVo.getProperty();
+                this.attachNatureName = carInfoVo.getPropertyName();
+                this.purchasePrice = Integer.valueOf(carModel.getPurchasepricenottax());
+                this.orignPurchasePrice = Integer.valueOf(carModel.getPurchasepricenottax());
+                this.actualValue = actualValue;
+                this.consultValue = actualValue;
+                this.plateType = carInfoVo.getLicenseColorCode();
+                this.plateTypeName = carInfoVo.getLicenseColorName();
+                this.vehicleType = carInfoVo.getCarTypeCode();
+                this.vehicleTypeName = carInfoVo.getCarTypeName();
+                this.energyTypes = carInfoVo.getEnergyTypeCode();
+
+                this.carCheckStatus = carCheckStatus;
+                this.carCheckerName = carCheckerName;
+                this.carCheckTime = carCheckTime;
+                this.approvedPassengersCapacity = Integer.valueOf(carInfoVo.getSeatCount());
+                this.approvedLoad = approvedLoad;
+                this.power = carModel.getPower();
+                this.displacement = Integer.valueOf(carModel.getExhaustscale());
+                this.exhaustScaleUnit = "cc";
+                this.loanVehicleFlag = "0";
+                this.ecdemicVehicleFlag = "0";
+                this.deptCode = "";
+                this.deptName = deptName;
+                this.useYears = useYears;
+                this.seriesCode = seriesCode;
+                this.series = series;
+                this.seriesType = seriesType;
+                this.brandCode = brandCode;
+                this.brand = brand;
+                this.shortHandCode = shortHandCode;
+                this.vehicleKindCode = vehicleKindCode;
+                this.carName = carName;
+                this.monthDepRate = monthDepRate;
+                this.matchCiModelCode = matchCiModelCode;
+                this.unladenMass = unladenMass;
+                this.ciModelCode = ciModelCode;
+                this.noticeType = carModel.getVehiclemodel();
+                this.newCarSign = "0";
+                this.runArea = "02";
+                this.runAreaName = "境内";
+                this.factoryName = "其他";
+                this.carTypeCode = "01";
+                this.countryNature = "0";
+                this.isEnergy = "0";
+                this.fraud = "0";
+                this.endorTransferMark = endorTransferMark;
+                this.cimodelclass = carModel.getCimodelclass();
+            }
+
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class PersonnelDTO {
+        @JsonProperty("type")
+        private String type;
+        @JsonProperty("role")
+        private String role;
+        @JsonProperty("isTerror")
+        private String isTerror;
+        @JsonProperty("customerId")
+        private String customerId;
+        @JsonProperty("name")
+        private String name;
+        @JsonProperty("identifyTypeCode")
+        private String identifyTypeCode;
+        @JsonProperty("identifyTypeName")
+        private String identifyTypeName;
+        @JsonProperty("identifyNumber")
+        private String identifyNumber;
+        @JsonProperty("province")
+        private String province;
+        @JsonProperty("city")
+        private String city;
+        @JsonProperty("district")
+        private String district;
+        @JsonProperty("provinceName")
+        private String provinceName;
+        @JsonProperty("cityName")
+        private String cityName;
+        @JsonProperty("districtName")
+        private String districtName;
+        @JsonProperty("addr")
+        private String addr;
+        @JsonProperty("completeAddress")
+        private String completeAddress;
+        @JsonProperty("mobile")
+        private String mobile;
+        @JsonProperty("specialClient")
+        private String specialClient;
+        @JsonProperty("identifyValidDate")
+        private String identifyValidDate;
+        @JsonProperty("identifyValidEndDate")
+        private String identifyValidEndDate;
+        @JsonProperty("sex")
+        private String sex;
+        @JsonProperty("birthday")
+        private String birthday;
+        @JsonProperty("email")
+        private String email;
+        @JsonProperty("operateFlag")
+        private String operateFlag;
+        @JsonProperty("longTerm")
+        private String longTerm;
+        @JsonProperty("terrorNationality")
+        private String terrorNationality;
+        @JsonProperty("terrorNationalityName")
+        private String terrorNationalityName;
+        @JsonProperty("isPolitics")
+        private String isPolitics;
+        @JsonProperty("individualBusinessInd")
+        private String individualBusinessInd;
+        @JsonProperty("microBusinessesInd")
+        private String microBusinessesInd;
+        @JsonProperty("signedbyOrig")
+        private String signedbyOrig;
+        @JsonProperty("comCode")
+        private String comCode;
+
+        public PersonnelDTO(ChengTaiClientIdentifyResponse policyHolder) {
+            this.type = policyHolder.getType();
+            this.role = policyHolder.getRole();
+            this.isTerror = policyHolder.getIsTerror();
+            this.customerId = policyHolder.getCustomerId();
+            this.name = policyHolder.getName();
+            this.identifyTypeCode = policyHolder.getIdentifyTypeCode();
+            this.identifyTypeName = policyHolder.getIdentifyTypeName();
+            this.identifyNumber = policyHolder.getIdentifyNumber();
+            this.province = policyHolder.getProvince();
+            this.city = policyHolder.getCity();
+            this.district = policyHolder.getDistrict();
+            this.provinceName = policyHolder.getProvinceName();
+            this.cityName = policyHolder.getCityName();
+            this.districtName = policyHolder.getDistrictName();
+            this.addr = policyHolder.getAddr();
+            this.completeAddress = policyHolder.getCompleteAddress();
+            this.mobile = policyHolder.getMobile();
+            this.specialClient = policyHolder.getSpecialClient();
+            this.identifyValidDate = policyHolder.getIdentifyValidDate();
+            this.identifyValidEndDate = policyHolder.getIdentifyValidEndDate();
+            this.sex = policyHolder.getSex();
+            this.birthday = policyHolder.getBirthday();
+            this.email = policyHolder.getEmail();
+            this.operateFlag = "Q";
+            this.longTerm = policyHolder.getLongTerm();
+            this.terrorNationality = policyHolder.getTerrorNationality();
+            this.terrorNationalityName = policyHolder.getTerrorNationalityName();
+            this.isPolitics = policyHolder.getIsPolitics();
+            this.individualBusinessInd = policyHolder.getIndividualBusinessInd();
+            this.microBusinessesInd = policyHolder.getMicroBusinessesInd();
+            this.signedbyOrig = "0";
+            this.comCode = policyHolder.getComCode();
+
+        }
+    }
+
+
+    @NoArgsConstructor
+    @Data
+    public static class OwnerDTO {
+        @JsonProperty("type")
+        private String type;
+        @JsonProperty("role")
+        private String role;
+        @JsonProperty("name")
+        private String name;
+        @JsonProperty("identifyTypeCode")
+        private String identifyTypeCode;
+        @JsonProperty("identifyTypeName")
+        private String identifyTypeName;
+        @JsonProperty("identifyNumber")
+        private String identifyNumber;
+        @JsonProperty("sex")
+        private String sex;
+        @JsonProperty("age")
+        private Integer age;
+        @JsonProperty("birthday")
+        private String birthday;
+        @JsonProperty("identifyValidDate")
+        private String identifyValidDate;
+        @JsonProperty("identifyValidEndDate")
+        private String identifyValidEndDate;
+        @JsonProperty("longTerm")
+        private String longTerm;
+
+        public OwnerDTO(CustomerInfoVo ownersInfo) {
+            this.type = "1";
+            this.role = "3";
+            this.name = ownersInfo.getName();
+            this.identifyTypeCode = ownersInfo.getIdentifyType();
+            this.identifyTypeName = ownersInfo.getIdentifyTypeName();
+            this.identifyNumber = ownersInfo.getIdentifyNumber();
+            this.sex = ownersInfo.getGender();
+            this.age = ownersInfo.getAge();
+            this.birthday = ownersInfo.getBirthday();
+            this.identifyValidDate = ownersInfo.getIdentifyValidDate();
+            this.identifyValidEndDate = ownersInfo.getIdentifyValidEndDate();
+            this.longTerm = "0";
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class BiContractDTO {
+        @JsonProperty("contractMain")
+        private ContractMainDTO contractMain;
+        @JsonProperty("coverage")
+        private List<CoverageDTO> coverage;
+
+        public BiContractDTO(RiskInfoVo biRiskInfoVo, List<KindInfoVo> kindInfoVo) {
+            this.contractMain = new ContractMainDTO(biRiskInfoVo);
+            this.coverage = kindInfoVo.stream().map(CoverageDTO::new).collect(Collectors.toList());
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class ContractMainDTO {
+            @JsonProperty("riskCode")
+            private String riskCode;
+            @JsonProperty("riskName")
+            private String riskName;
+            @JsonProperty("validAtOnce")
+            private String validAtOnce;
+            @JsonProperty("validDate")
+            private String validDate;
+            @JsonProperty("expiryDate")
+            private String expiryDate;
+            @JsonProperty("renewalFlag")
+            private String renewalFlag;
+            @JsonProperty("currency")
+            private String currency;
+            @JsonProperty("underWriteInd")
+            private String underWriteInd;
+
+
+            public ContractMainDTO(RiskInfoVo biRiskInfoVo) {
+                this.riskCode = riskCode;
+                this.riskName = riskName;
+                this.validAtOnce = validAtOnce;
+                this.validDate = validDate;
+                this.expiryDate = expiryDate;
+                this.renewalFlag = renewalFlag;
+                this.currency = currency;
+                this.underWriteInd = underWriteInd;
+            }
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class CoverageDTO {
+            @JsonProperty("amount")
+            private Integer amount;
+            @JsonProperty("basePremium")
+            private String basePremium;
+            @JsonProperty("coveragePremium")
+            private String coveragePremium;
+            @JsonProperty("calculateFlag")
+            private String calculateFlag;
+            @JsonProperty("ifMainKind")
+            private String ifMainKind;
+            @JsonProperty("kindCode")
+            private String kindCode;
+            @JsonProperty("kindFlag")
+            private Boolean kindFlag;
+            @JsonProperty("kindName")
+            private String kindName;
+            @JsonProperty("notDeductibleCalculateFlag")
+            private String notDeductibleCalculateFlag;
+            @JsonProperty("notDeductibleIfMainKind")
+            private String notDeductibleIfMainKind;
+            @JsonProperty("notDeductibleKindFlag")
+            private Boolean notDeductibleKindFlag;
+            @JsonProperty("relatedInd")
+            private String relatedInd;
+            @JsonProperty("validDate")
+            private String validDate;
+            @JsonProperty("expiryDate")
+            private String expiryDate;
+            @JsonProperty("currency")
+            private String currency;
+            @JsonProperty("shortRate")
+            private Integer shortRate;
+            @JsonProperty("shortRateType")
+            private String shortRateType;
+            @JsonProperty("quantity")
+            private String quantity;
+            @JsonProperty("unitAmount")
+            private String unitAmount;
+            @JsonProperty("show")
+            private Boolean show;
+
+            public CoverageDTO(KindInfoVo kindInfoVo) {
+                this.amount = amount;
+                this.basePremium = basePremium;
+                this.coveragePremium = coveragePremium;
+                this.calculateFlag = calculateFlag;
+                this.ifMainKind = ifMainKind;
+                this.kindCode = kindCode;
+                this.kindFlag = kindFlag;
+                this.kindName = kindName;
+                this.notDeductibleCalculateFlag = notDeductibleCalculateFlag;
+                this.notDeductibleIfMainKind = notDeductibleIfMainKind;
+                this.notDeductibleKindFlag = notDeductibleKindFlag;
+                this.relatedInd = relatedInd;
+                this.validDate = validDate;
+                this.expiryDate = expiryDate;
+                this.currency = currency;
+                this.shortRate = shortRate;
+                this.shortRateType = shortRateType;
+                this.quantity = quantity;
+                this.unitAmount = unitAmount;
+                this.show = show;
+            }
+
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CiContractDTO {
+        @JsonProperty("contractMain")
+        private ContractMainDTO contractMain;
+        @JsonProperty("coverage")
+        private List<CoverageDTO> coverage;
+        @JsonProperty("tax")
+        private TaxDTO tax;
+
+        public CiContractDTO(RiskInfoVo ciRiskInfoVo, ChengTaiClientIdentifyResponse policyHolder) {
+            this.contractMain = new ContractMainDTO(ciRiskInfoVo.getStartDate(), ciRiskInfoVo.getEndDate());
+            this.coverage = CoverageDTO.getCoverage(ciRiskInfoVo.getStartDate(), ciRiskInfoVo.getEndDate());
+            this.tax = new TaxDTO(policyHolder);
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class ContractMainDTO {
+            @JsonProperty("riskCode")
+            private String riskCode;
+            @JsonProperty("riskName")
+            private String riskName;
+            @JsonProperty("validAtOnce")
+            private String validAtOnce;
+            @JsonProperty("validDate")
+            private String validDate;
+            @JsonProperty("expiryDate")
+            private String expiryDate;
+            @JsonProperty("renewalFlag")
+            private String renewalFlag;
+            @JsonProperty("currency")
+            private String currency;
+            @JsonProperty("sumAmount")
+            private String sumAmount;
+            @JsonProperty("underWriteInd")
+            private String underWriteInd;
+
+            public ContractMainDTO(String startDate, String endDate) {
+                this.riskCode = "1002";
+                this.riskName = "交强险";
+                this.validAtOnce = "0";
+                this.validDate = startDate;
+                this.expiryDate = endDate;
+                this.renewalFlag = "-1";
+                this.currency = "CNY";
+                this.sumAmount = "200000";
+                this.underWriteInd = "z1";
+            }
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class TaxDTO {
+            @JsonProperty("taxConditionCode")
+            private String taxConditionCode;
+            @JsonProperty("taxStartDate")
+            private String taxStartDate;
+            @JsonProperty("taxEndDate")
+            private String taxEndDate;
+            @JsonProperty("calculateMode")
+            private String calculateMode;
+            @JsonProperty("taxPayerIdentityType")
+            private String taxPayerIdentityType;
+            @JsonProperty("taxPayerIdentityNo")
+            private String taxPayerIdentityNo;
+            @JsonProperty("taxPayerIdentificationCode")
+            private String taxPayerIdentificationCode;
+            @JsonProperty("taxPayerName")
+            private String taxPayerName;
+            @JsonProperty("lastPaidYear")
+            private Integer lastPaidYear;
+            @JsonProperty("unladenMass")
+            private String unladenMass;
+
+            public TaxDTO(ChengTaiClientIdentifyResponse policyHolder) {
+                this.taxConditionCode = "1N";
+                this.taxStartDate = taxStartDate;
+                this.taxEndDate = taxEndDate;
+                this.calculateMode = "1";
+                this.taxPayerIdentityType = taxPayerIdentityType;
+                this.taxPayerIdentityNo = taxPayerIdentityNo;
+                this.taxPayerIdentificationCode = taxPayerIdentificationCode;
+                this.taxPayerName = taxPayerName;
+                this.lastPaidYear = lastPaidYear;
+                this.unladenMass = unladenMass;
+            }
+
+
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class CoverageDTO {
+            @JsonProperty("rate")
+            private Integer rate;
+            @JsonProperty("amount")
+            private String amount;
+            @JsonProperty("calculateFlag")
+            private String calculateFlag;
+            @JsonProperty("currency")
+            private String currency;
+            @JsonProperty("validDate")
+            private String validDate;
+            @JsonProperty("expiryDate")
+            private String expiryDate;
+            @JsonProperty("ifMainKind")
+            private String ifMainKind;
+            @JsonProperty("kindCode")
+            private String kindCode;
+            @JsonProperty("kindName")
+            private String kindName;
+            @JsonProperty("shortRate")
+            private Integer shortRate;
+            @JsonProperty("shortRateType")
+            private String shortRateType;
+
+            public static List<CoverageDTO> getCoverage(String startDate, String endDate) {
+                CoverageDTO coverageDTO = new CoverageDTO();
+                coverageDTO.setRate(0);
+                coverageDTO.setAmount("200000");
+                coverageDTO.setCalculateFlag("1");
+                coverageDTO.setCurrency("CNY");
+                coverageDTO.setValidDate(startDate);
+                coverageDTO.setExpiryDate(endDate);
+                coverageDTO.setIfMainKind("1");
+                coverageDTO.setKindCode("BZ");
+                coverageDTO.setKindName("机动车交通事故责任强制保险");
+                coverageDTO.setShortRate(100);
+                coverageDTO.setShortRateType("2");
+                return List.of(coverageDTO);
+            }
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class AccidentMainDTO {
+        @JsonProperty("id")
+        private String id;
+        @JsonProperty("planCode")
+        private String planCode;
+        @JsonProperty("comCode")
+        private String comCode;
+        @JsonProperty("totalPremium")
+        private Integer totalPremium;
+        @JsonProperty("coverages")
+        private List<CoveragesDTO> coverages;
+        @JsonProperty("validDate")
+        private String validDate;
+        @JsonProperty("expiryDate")
+        private String expiryDate;
+        @JsonProperty("insuredAmount")
+        private Integer insuredAmount;
+        @JsonProperty("createTime")
+        private String createTime;
+        @JsonProperty("riskCode")
+        private String riskCode;
+        @JsonProperty("amount")
+        private Integer amount;
+        @JsonProperty("name")
+        private String name;
+        @JsonProperty("detail")
+        private String detail;
+        @JsonProperty("seat")
+        private String seat;
+        @JsonProperty("feePercent")
+        private Integer feePercent;
+        @JsonProperty("assumpsit")
+        private String assumpsit;
+        @JsonProperty("carKindCode")
+        private String carKindCode;
+        @JsonProperty("useNatureCode")
+        private String useNatureCode;
+        @JsonProperty("type")
+        private String type;
+
+        @NoArgsConstructor
+        @Data
+        public static class CoveragesDTO {
+            @JsonProperty("id")
+            private String id;
+            @JsonProperty("createTime")
+            private String createTime;
+            @JsonProperty("liabilityCode")
+            private String liabilityCode;
+            @JsonProperty("amount")
+            private Integer amount;
+            @JsonProperty("premium")
+            private Integer premium;
+            @JsonProperty("totalPremium")
+            private Integer totalPremium;
+            @JsonProperty("name")
+            private String name;
+            @JsonProperty("productId")
+            private String productId;
+            @JsonProperty("productCode")
+            private String productCode;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class AccContractDTO {
+        @JsonProperty("contractMain")
+        private ContractMainDTO contractMain;
+        @JsonProperty("coverage")
+        private List<CoverageDTO> coverage;
+
+        @NoArgsConstructor
+        @Data
+        public static class ContractMainDTO {
+            @JsonProperty("schemeName")
+            private String schemeName;
+            @JsonProperty("riskCode")
+            private String riskCode;
+            @JsonProperty("validDate")
+            private String validDate;
+            @JsonProperty("expiryDate")
+            private String expiryDate;
+            @JsonProperty("totalPremium")
+            private Integer totalPremium;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class CoverageDTO {
+            @JsonProperty("kindCode")
+            private String kindCode;
+            @JsonProperty("kindName")
+            private String kindName;
+            @JsonProperty("validDate")
+            private String validDate;
+            @JsonProperty("expiryDate")
+            private String expiryDate;
+            @JsonProperty("amount")
+            private Integer amount;
+            @JsonProperty("coveragePremium")
+            private Integer coveragePremium;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class SubmitReqBodyDTO {
+        @JsonProperty("businessType")
+        private String businessType;
+        @JsonProperty("mandatoryReviewFlag")
+        private Boolean mandatoryReviewFlag;
+        @JsonProperty("reinsuranceFlag")
+        private String reinsuranceFlag;
+        @JsonProperty("acciRelatedFlag")
+        private String acciRelatedFlag;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class AcciSaleInfoDTO {
+        @JsonProperty("comCode")
+        private String comCode;
+        @JsonProperty("comName")
+        private String comName;
+        @JsonProperty("handlerCode")
+        private String handlerCode;
+        @JsonProperty("handlerName")
+        private String handlerName;
+        @JsonProperty("agreementNo")
+        private String agreementNo;
+        @JsonProperty("agentCode")
+        private String agentCode;
+        @JsonProperty("agentName")
+        private String agentName;
+        @JsonProperty("solutionCode")
+        private String solutionCode;
+        @JsonProperty("permitNo")
+        private String permitNo;
+        @JsonProperty("businessMode")
+        private String businessMode;
+        @JsonProperty("businessSource")
+        private String businessSource;
+        @JsonProperty("channelType")
+        private String channelType;
+        @JsonProperty("channelTypeDetail")
+        private String channelTypeDetail;
+        @JsonProperty("cooperateSiteCode")
+        private String cooperateSiteCode;
+        @JsonProperty("cooperateSiteName")
+        private String cooperateSiteName;
+    }
+
+
+}

+ 26 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiBaseResponse.java

@@ -0,0 +1,26 @@
+package com.jzg.quotation.chengtai.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+public class ChengTaiBaseResponse<T> implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -939802702931900294L;
+
+    @JsonProperty("code")
+    private Integer code;
+
+    @JsonProperty("message")
+    private String message;
+
+    @JsonProperty("body")
+    private T body;
+
+}

+ 54 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiCheckCaptchaResponse.java

@@ -0,0 +1,54 @@
+package com.jzg.quotation.chengtai.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+/**
+ * @ClassName ChengTaiCheckCaptchaResponse
+ * @Description 诚泰财险校验参数返回参数
+ * @Author wenks
+ * @Date 2025/9/9 16:43
+ * @Version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class ChengTaiCheckCaptchaResponse implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 4654164343556776638L;
+
+    @JsonProperty("repCode")
+    private String repCode;
+
+    @JsonProperty("repData")
+    private RepDataDTO repData;
+
+    @JsonProperty("repMsg")
+    private String repMsg;
+
+    @JsonProperty("success")
+    private Boolean success;
+
+    @NoArgsConstructor
+    @Data
+    public static class RepDataDTO {
+
+        @JsonProperty("captchaType")
+        private String captchaType;
+
+        @JsonProperty("pointJson")
+        private String pointJson;
+
+        @JsonProperty("token")
+        private String token;
+
+        @JsonProperty("result")
+        private Boolean result;
+
+    }
+}

+ 85 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiClientIdentifyResponse.java

@@ -0,0 +1,85 @@
+package com.jzg.quotation.chengtai.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @ClassName ChengTaiClientIdentifyResponse
+ * @Description 诚泰财险【爬虫】 身份识别返回结果
+ * @Author wenks
+ * @Date 2025/9/11 17:23
+ * @Version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class ChengTaiClientIdentifyResponse implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -253652189372931548L;
+
+    @JsonProperty("isPolitics")
+    private String isPolitics;
+    @JsonProperty("type")
+    private String type;
+    @JsonProperty("role")
+    private String role;
+    @JsonProperty("isTerror")
+    private String isTerror;
+    @JsonProperty("customerId")
+    private String customerId;
+    @JsonProperty("name")
+    private String name;
+    @JsonProperty("identifyTypeCode")
+    private String identifyTypeCode;
+    @JsonProperty("identifyTypeName")
+    private String identifyTypeName;
+    @JsonProperty("identifyNumber")
+    private String identifyNumber;
+    @JsonProperty("province")
+    private String province;
+    @JsonProperty("provinceName")
+    private String provinceName;
+    @JsonProperty("city")
+    private String city;
+    @JsonProperty("cityName")
+    private String cityName;
+    @JsonProperty("district")
+    private String district;
+    @JsonProperty("districtName")
+    private String districtName;
+    @JsonProperty("addr")
+    private String addr;
+    @JsonProperty("completeAddress")
+    private String completeAddress;
+    @JsonProperty("mobile")
+    private String mobile;
+    @JsonProperty("specialClient")
+    private String specialClient;
+    @JsonProperty("sex")
+    private String sex;
+    @JsonProperty("birthday")
+    private String birthday;
+    @JsonProperty("email")
+    private String email;
+    @JsonProperty("comCode")
+    private String comCode;
+    @JsonProperty("identifyValidDate")
+    private String identifyValidDate;
+    @JsonProperty("identifyValidEndDate")
+    private String identifyValidEndDate;
+    @JsonProperty("longTerm")
+    private String longTerm;
+    @JsonProperty("terrorNationality")
+    private String terrorNationality;
+    @JsonProperty("terrorNationalityName")
+    private String terrorNationalityName;
+    @JsonProperty("microBusinessesInd")
+    private String microBusinessesInd;
+    @JsonProperty("individualBusinessInd")
+    private String individualBusinessInd;
+
+}

+ 24 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiFindAttributionOrgByUserResponse.java

@@ -0,0 +1,24 @@
+package com.jzg.quotation.chengtai.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class ChengTaiFindAttributionOrgByUserResponse implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 4348740279631674506L;
+
+    @JsonProperty("deptCode")
+    private String deptCode;
+
+    @JsonProperty("deptName")
+    private String deptName;
+
+}

+ 154 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiFindCarModelResponse.java

@@ -0,0 +1,154 @@
+package com.jzg.quotation.chengtai.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.commons.filter.CarModelsFilter;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @ClassName ChengTaiFindCarModelResponse
+ * @Description 诚泰财险 获取车系车型列表
+ * @Author wenks
+ * @Date 2025/9/11 17:16
+ * @Version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class ChengTaiFindCarModelResponse implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 754593016131642620L;
+
+    @JsonProperty("data")
+    private List<DataDTO> data;
+
+    @JsonProperty("totalCount")
+    private String totalCount;
+
+    @NoArgsConstructor
+    @Data
+    public static class DataDTO implements Serializable, CarModelsFilter {
+
+        @Serial
+        private static final long serialVersionUID = -5953082109161069755L;
+
+        @JsonProperty("modelcode")
+        private String modelcode;
+
+        @JsonProperty("modelcname")
+        private String modelcname;
+
+        @JsonProperty("vehicleclass")
+        private String vehicleclass;
+
+        @JsonProperty("vehicleType")
+        private String vehicleType;
+
+        @JsonProperty("factory")
+        private String factory;
+
+        @JsonProperty("factoryid")
+        private String factoryid;
+
+        @JsonProperty("carbrand")
+        private String carbrand;
+
+        @JsonProperty("brandid")
+        private String brandid;
+
+        @JsonProperty("familyname")
+        private String familyname;
+
+        @JsonProperty("familycode")
+        private String familycode;
+
+        @JsonProperty("purchaseprice")
+        private String purchaseprice;
+
+        @JsonProperty("analogymodelprice")
+        private String analogymodelprice;
+
+        @JsonProperty("purchasepricenottax")
+        private String purchasepricenottax;
+
+        @JsonProperty("analogymodelpricenottax")
+        private String analogymodelpricenottax;
+
+        @JsonProperty("carstyle")
+        private String carstyle;
+
+        @JsonProperty("syxclassid")
+        private String syxclassid;
+
+        @JsonProperty("syxclassname")
+        private String syxclassname;
+
+        @JsonProperty("jqxclassid")
+        private String jqxclassid;
+
+        @JsonProperty("cimodelclass")
+        private String cimodelclass;
+
+        @JsonProperty("shorthandcode")
+        private String shorthandcode;
+
+        @JsonProperty("exhaustscale")
+        private String exhaustscale;
+
+        @JsonProperty("seatcount")
+        private String seatcount;
+
+        @JsonProperty("caryear")
+        private String caryear;
+
+        @JsonProperty("transmissionttype")
+        private String transmissionttype;
+
+        @JsonProperty("remark")
+        private String remark;
+
+        @JsonProperty("vehiclequalitymin")
+        private String vehiclequalitymin;
+
+        @JsonProperty("validind")
+        private String validind;
+
+        @JsonProperty("power")
+        private String power;
+
+        @JsonProperty("vehiclemodel")
+        private String vehiclemodel;
+
+        @JsonProperty("powertype")
+        private String powertype;
+
+        @JsonProperty("hfnamenew")
+        private String hfnamenew;
+
+        @JsonProperty("hfcodenew")
+        private String hfcodenew;
+
+        @JsonProperty("fullweightmax")
+        private String fullweightmax;
+
+        @JsonProperty("fullweightmin")
+        private String fullweightmin;
+
+        @JsonProperty("updateVersion")
+        private String updateVersion;
+
+        @Override
+        public String getCarYear() {
+            return caryear;
+        }
+
+        @Override
+        public String getPurchasePrice() {
+            return purchaseprice;
+        }
+    }
+}

+ 55 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiFindCoreConferInfoByHandleCodeResponse.java

@@ -0,0 +1,55 @@
+package com.jzg.quotation.chengtai.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@NoArgsConstructor
+@Data
+public class ChengTaiFindCoreConferInfoByHandleCodeResponse implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -3055312626646637349L;
+
+    @JsonProperty("agreementCode")
+    private String agreementCode;
+
+    @JsonProperty("intermediaryCode")
+    private String intermediaryCode;
+
+    @JsonProperty("solutionCode")
+    private String solutionCode;
+
+    @JsonProperty("companyCode")
+    private String companyCode;
+
+    @JsonProperty("intermediaryName")
+    private String intermediaryName;
+
+    @JsonProperty("registerCode")
+    private String registerCode;
+
+    @JsonProperty("intermediaryKind")
+    private String intermediaryKind;
+
+    @JsonProperty("channelDetailCode")
+    private String channelDetailCode;
+
+    @JsonProperty("channelTip")
+    private String channelTip;
+
+    @JsonProperty("expireDate")
+    private String expireDate;
+
+    @JsonProperty("source")
+    private String source;
+
+    @JsonProperty("cooperateSiteCode")
+    private String cooperateSiteCode;
+
+    @JsonProperty("relationRisks")
+    private String relationRisks;
+}

+ 62 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiFindSaleManVoByDeptCodeResponse.java

@@ -0,0 +1,62 @@
+package com.jzg.quotation.chengtai.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @ClassName ChengTaiFindSaleManVoByDeptCodeResponse
+ * @Description 获取业务员响应
+ * @Author wenks
+ * @Date 2025/9/12 11:14
+ * @Version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class ChengTaiFindSaleManVoByDeptCodeResponse implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -4843754896867926635L;
+
+    @JsonProperty("id")
+    private String id;
+
+    @JsonProperty("page")
+    private PageDTO page;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("username")
+    private String username;
+
+    @JsonProperty("deptCode")
+    private String deptCode;
+
+    @JsonProperty("userInd")
+    private String userInd;
+
+    @JsonProperty("validInd")
+    private String validInd;
+
+    @JsonProperty("companyCode")
+    private String companyCode;
+
+    @NoArgsConstructor
+    @Data
+    public static class PageDTO {
+
+        @JsonProperty("pageIndex")
+        private Integer pageIndex;
+
+        @JsonProperty("pageSize")
+        private Integer pageSize;
+
+        @JsonProperty("orderBy")
+        private String orderBy;
+
+    }
+}

+ 31 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiGetCIModelCodeResponse.java

@@ -0,0 +1,31 @@
+package com.jzg.quotation.chengtai.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * @ClassName ChengTaiGetCIModelCodeResponse
+ * @Description 获取车系代码
+ * @Author wenks
+ * @Date 2025/9/12 17:20
+ * @Version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class ChengTaiGetCIModelCodeResponse {
+
+    @JsonProperty("ciModelCode")
+    private String ciModelCode;
+
+    @JsonProperty("noticeType")
+    private String noticeType;
+
+    @JsonProperty("carName")
+    private String carName;
+
+    @JsonProperty("jyModelCode")
+    private String jyModelCode;
+
+}

+ 1 - 15
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/response/ChengTaiGetCaptchaResponse.java → tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiGetCaptchaResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.quotation.chengtai.crawler.model.response;
+package com.jzg.quotation.chengtai.crawler.entity.response;
 
 
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -16,19 +16,6 @@ import lombok.NoArgsConstructor;
 @Data
 public class ChengTaiGetCaptchaResponse {
 
-    @JsonProperty("code")
-    private Integer code;
-
-    @JsonProperty("message")
-    private String message;
-
-    @JsonProperty("body")
-    private BodyDTO body;
-
-    @NoArgsConstructor
-    @Data
-    public static class BodyDTO {
-
         @JsonProperty("repCode")
         private String repCode;
 
@@ -55,5 +42,4 @@ public class ChengTaiGetCaptchaResponse {
             private String token;
 
         }
-    }
 }

+ 1 - 1
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/response/ChengTaiLoginResponse.java → tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiLoginResponse.java

@@ -1,4 +1,4 @@
-package com.jzg.quotation.chengtai.crawler.model.response;
+package com.jzg.quotation.chengtai.crawler.entity.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;

+ 537 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/entity/response/ChengTaiPremiumcaResponse.java

@@ -0,0 +1,537 @@
+package com.jzg.quotation.chengtai.crawler.entity.response;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @ClassName ChengTaiPremiumcalesponse
+ * @Description 诚泰财险【爬虫】保费计算响应参数
+ * @Author wenks
+ * @Date 2025/9/11 17:31
+ * @Version 1.0
+ */
+@NoArgsConstructor
+@Data
+public class ChengTaiPremiumcaResponse implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 5774031266902300908L;
+
+    @JsonProperty("insuredObject")
+    private InsuredObjectDTO insuredObject;
+
+    @JsonProperty("ciContract")
+    private CiContractDTO ciContract;
+
+    @JsonProperty("biContract")
+    private BiContractDTO biContract;
+
+    @JsonProperty("ubiInfo")
+    private UbiInfoDTO ubiInfo;
+
+    @JsonProperty("riskIdentifyInfo")
+    private RiskIdentifyInfoDTO riskIdentifyInfo;
+
+    @JsonProperty("sunlightId")
+    private String sunlightId;
+
+    @JsonProperty("carRegistFlag")
+    private String carRegistFlag;
+
+    @JsonProperty("ilogRuleResult")
+    private IlogRuleResultDTO ilogRuleResult;
+
+    @JsonProperty("blackId")
+    private String blackId;
+    @JsonProperty("blackRisk")
+
+    private List<?> blackRisk;
+
+    @JsonProperty("yztScore")
+    private YztScoreDTO yztScore;
+
+    @JsonProperty("ocftId")
+    private String ocftId;
+
+    @JsonProperty("planCode")
+    private String planCode;
+
+    @NoArgsConstructor
+    @Data
+    public static class InsuredObjectDTO {
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class CiContractDTO {
+        @JsonProperty("contractMain")
+        private ContractMainDTO contractMain;
+        @JsonProperty("coverage")
+        private List<CoverageDTO> coverage;
+        @JsonProperty("platFormMessage")
+        private PlatFormMessageDTO platFormMessage;
+        @JsonProperty("adjust")
+        private List<AdjustDTO> adjust;
+        @JsonProperty("tax")
+        private TaxDTO tax;
+
+        @NoArgsConstructor
+        @Data
+        public static class ContractMainDTO {
+            @JsonProperty("riskCode")
+            private String riskCode;
+            @JsonProperty("riskName")
+            private String riskName;
+            @JsonProperty("validAtOnce")
+            private String validAtOnce;
+            @JsonProperty("validDate")
+            private String validDate;
+            @JsonProperty("expiryDate")
+            private String expiryDate;
+            @JsonProperty("renewalFlag")
+            private String renewalFlag;
+            @JsonProperty("currency")
+            private String currency;
+            @JsonProperty("sumAmount")
+            private Double sumAmount;
+            @JsonProperty("totalPremium")
+            private Double totalPremium;
+            @JsonProperty("noTaxPremium")
+            private Double noTaxPremium;
+            @JsonProperty("totalStandardPremium")
+            private Double totalStandardPremium;
+            @JsonProperty("totalRiskPremium")
+            private Double totalRiskPremium;
+            @JsonProperty("vat")
+            private Double vat;
+            @JsonProperty("sumTax")
+            private Double sumTax;
+            @JsonProperty("discount")
+            private Double discount;
+            @JsonProperty("querySequenceNo")
+            private String querySequenceNo;
+            @JsonProperty("querySeqExpireDate")
+            private String querySeqExpireDate;
+            @JsonProperty("isCIFlag")
+            private String isCIFlag;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class PlatFormMessageDTO {
+            @JsonProperty("querySequenceNo")
+            private String querySequenceNo;
+            @JsonProperty("expireDate")
+            private String expireDate;
+            @JsonProperty("reinsuranceFlag")
+            private String reinsuranceFlag;
+            @JsonProperty("lastPolicyEffectiveDate")
+            private String lastPolicyEffectiveDate;
+            @JsonProperty("lastPolicyExpireDate")
+            private String lastPolicyExpireDate;
+            @JsonProperty("ciCarKind")
+            private String ciCarKind;
+            @JsonProperty("claimaAdjustReason")
+            private String claimaAdjustReason;
+            @JsonProperty("claimaAdjustReasonName")
+            private String claimaAdjustReasonName;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class TaxDTO {
+            @JsonProperty("taxConditionCode")
+            private String taxConditionCode;
+            @JsonProperty("taxStartDate")
+            private String taxStartDate;
+            @JsonProperty("taxEndDate")
+            private String taxEndDate;
+            @JsonProperty("taxItemCode")
+            private String taxItemCode;
+            @JsonProperty("taxItemName")
+            private String taxItemName;
+            @JsonProperty("calculateMode")
+            private String calculateMode;
+            @JsonProperty("taxPayerIdentityType")
+            private String taxPayerIdentityType;
+            @JsonProperty("taxPayerIdentityNo")
+            private String taxPayerIdentityNo;
+            @JsonProperty("taxPayerIdentificationCode")
+            private String taxPayerIdentificationCode;
+            @JsonProperty("taxPayerName")
+            private String taxPayerName;
+            @JsonProperty("lastPaidYear")
+            private Integer lastPaidYear;
+            @JsonProperty("annualTaxAmount")
+            private Double annualTaxAmount;
+            @JsonProperty("annualTaxDue")
+            private Double annualTaxDue;
+            @JsonProperty("sumTaxDefault")
+            private Double sumTaxDefault;
+            @JsonProperty("sumOverdue")
+            private Double sumOverdue;
+            @JsonProperty("sumTax")
+            private Double sumTax;
+            @JsonProperty("unladenMass")
+            private String unladenMass;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class CoverageDTO {
+            @JsonProperty("kindCode")
+            private String kindCode;
+            @JsonProperty("kindName")
+            private String kindName;
+            @JsonProperty("ifMainKind")
+            private String ifMainKind;
+            @JsonProperty("calculateFlag")
+            private String calculateFlag;
+            @JsonProperty("validDate")
+            private String validDate;
+            @JsonProperty("expiryDate")
+            private String expiryDate;
+            @JsonProperty("currency")
+            private String currency;
+            @JsonProperty("amount")
+            private Integer amount;
+            @JsonProperty("basePremium")
+            private Double basePremium;
+            @JsonProperty("coverageStandardPremium")
+            private Double coverageStandardPremium;
+            @JsonProperty("coveragePremium")
+            private Double coveragePremium;
+            @JsonProperty("coveragePremiumNoTax")
+            private Double coveragePremiumNoTax;
+            @JsonProperty("coverageTax")
+            private Double coverageTax;
+            @JsonProperty("rate")
+            private Integer rate;
+            @JsonProperty("shortRate")
+            private Double shortRate;
+            @JsonProperty("shortRateType")
+            private String shortRateType;
+            @JsonProperty("discount")
+            private Double discount;
+            @JsonProperty("costPrem")
+            private Double costPrem;
+            @JsonProperty("coverageRiskPremium")
+            private Double coverageRiskPremium;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class AdjustDTO {
+            @JsonProperty("adjustCode")
+            private String adjustCode;
+            @JsonProperty("adjustName")
+            private String adjustName;
+            @JsonProperty("adjustRate")
+            private Double adjustRate;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class BiContractDTO {
+        @JsonProperty("contractMain")
+        private ContractMainDTO contractMain;
+        @JsonProperty("coverage")
+        private List<CoverageDTO> coverage;
+        @JsonProperty("platFormMessage")
+        private PlatFormMessageDTO platFormMessage;
+        @JsonProperty("discountInfo")
+        private DiscountInfoDTO discountInfo;
+        @JsonProperty("adjust")
+        private List<AdjustDTO> adjust;
+
+        @NoArgsConstructor
+        @Data
+        public static class ContractMainDTO {
+            @JsonProperty("riskCode")
+            private String riskCode;
+            @JsonProperty("riskName")
+            private String riskName;
+            @JsonProperty("validAtOnce")
+            private String validAtOnce;
+            @JsonProperty("validDate")
+            private String validDate;
+            @JsonProperty("expiryDate")
+            private String expiryDate;
+            @JsonProperty("renewalFlag")
+            private String renewalFlag;
+            @JsonProperty("currency")
+            private String currency;
+            @JsonProperty("sumAmount")
+            private Double sumAmount;
+            @JsonProperty("totalPremium")
+            private Double totalPremium;
+            @JsonProperty("noTaxPremium")
+            private Double noTaxPremium;
+            @JsonProperty("totalStandardPremium")
+            private Double totalStandardPremium;
+            @JsonProperty("totalRiskPremium")
+            private Double totalRiskPremium;
+            @JsonProperty("vat")
+            private Double vat;
+            @JsonProperty("discount")
+            private Double discount;
+            @JsonProperty("hopeDiscount")
+            private Double hopeDiscount;
+            @JsonProperty("querySequenceNo")
+            private String querySequenceNo;
+            @JsonProperty("querySeqExpireDate")
+            private String querySeqExpireDate;
+            @JsonProperty("hopeCoefficient")
+            private Double hopeCoefficient;
+            @JsonProperty("isCheckRepeated")
+            private String isCheckRepeated;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class PlatFormMessageDTO {
+            @JsonProperty("querySequenceNo")
+            private String querySequenceNo;
+            @JsonProperty("queryDate")
+            private String queryDate;
+            @JsonProperty("expireDate")
+            private String expireDate;
+            @JsonProperty("reinsuranceFlag")
+            private String reinsuranceFlag;
+            @JsonProperty("nonClaimAdjust")
+            private String nonClaimAdjust;
+            @JsonProperty("lastPolicyEffectiveDate")
+            private String lastPolicyEffectiveDate;
+            @JsonProperty("lastPolicyExpireDate")
+            private String lastPolicyExpireDate;
+            @JsonProperty("ciModelCode")
+            private String ciModelCode;
+            @JsonProperty("ciCarKind")
+            private String ciCarKind;
+            @JsonProperty("insureYears")
+            private String insureYears;
+            @JsonProperty("claimTimes")
+            private String claimTimes;
+            @JsonProperty("claimAdjustLevel")
+            private String claimAdjustLevel;
+            @JsonProperty("modelEnergyType")
+            private String modelEnergyType;
+            @JsonProperty("scoreCode")
+            private String scoreCode;
+            @JsonProperty("score")
+            private Integer score;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class DiscountInfoDTO {
+            @JsonProperty("ctpCostPrem")
+            private Double ctpCostPrem;
+            @JsonProperty("entireExpDiscount")
+            private Double entireExpDiscount;
+            @JsonProperty("entireRecommenDiscount")
+            private Double entireRecommenDiscount;
+            @JsonProperty("entireUwritingDiscount")
+            private Double entireUwritingDiscount;
+            @JsonProperty("billCtpElr")
+            private Double billCtpElr;
+            @JsonProperty("billComElr")
+            private Double billComElr;
+            @JsonProperty("billElr")
+            private Double billElr;
+            @JsonProperty("commissionFlag")
+            private String commissionFlag;
+            @JsonProperty("uwDiscFixed")
+            private String uwDiscFixed;
+            @JsonProperty("uwDiscLimit")
+            private String uwDiscLimit;
+            @JsonProperty("uwDiscFloor")
+            private String uwDiscFloor;
+            @JsonProperty("ctpCostPremFlag")
+            private String ctpCostPremFlag;
+            @JsonProperty("entireRawInitialDiscount")
+            private Double entireRawInitialDiscount;
+            @JsonProperty("entireInitialDiscount")
+            private Double entireInitialDiscount;
+            @JsonProperty("entireFloatDiscount")
+            private String entireFloatDiscount;
+            @JsonProperty("billComCommission")
+            private String billComCommission;
+            @JsonProperty("billComcor")
+            private String billComcor;
+            @JsonProperty("billCtpcor")
+            private String billCtpcor;
+            @JsonProperty("billCor")
+            private String billCor;
+            @JsonProperty("ncdBpremElr")
+            private String ncdBpremElr;
+            @JsonProperty("sunlightScore")
+            private String sunlightScore;
+            @JsonProperty("exceptionFlag")
+            private String exceptionFlag;
+            @JsonProperty("initialCtpElr")
+            private Double initialCtpElr;
+            @JsonProperty("initialComElr")
+            private Double initialComElr;
+            @JsonProperty("initialElr")
+            private Double initialElr;
+            @JsonProperty("effectInfoDTOList")
+            private List<EffectInfoDTOListDTO> effectInfoDTOList;
+            @JsonProperty("entireRecommenDiscount1")
+            private Double entireRecommenDiscount1;
+            @JsonProperty("entireRecommenDiscount2")
+            private Double entireRecommenDiscount2;
+            @JsonProperty("distributionDiscount")
+            private Double distributionDiscount;
+            @JsonProperty("distributionDiscount2")
+            private Double distributionDiscount2;
+            @JsonProperty("rawRecommenElr")
+            private Double rawRecommenElr;
+            @JsonProperty("rawRecommenElr1")
+            private Double rawRecommenElr1;
+            @JsonProperty("rawDistributionElr")
+            private Double rawDistributionElr;
+            @JsonProperty("rawDistributionElr1")
+            private Double rawDistributionElr1;
+
+            @NoArgsConstructor
+            @Data
+            public static class EffectInfoDTOListDTO {
+                @JsonProperty("effectName")
+                private String effectName;
+                @JsonProperty("effectValue")
+                private String effectValue;
+                @JsonProperty("effectinfo")
+                private String effectinfo;
+                @JsonProperty("effectCode")
+                private String effectCode;
+            }
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class CoverageDTO {
+            @JsonProperty("kindCode")
+            private String kindCode;
+            @JsonProperty("kindName")
+            private String kindName;
+            @JsonProperty("ifMainKind")
+            private String ifMainKind;
+            @JsonProperty("calculateFlag")
+            private String calculateFlag;
+            @JsonProperty("validDate")
+            private String validDate;
+            @JsonProperty("expiryDate")
+            private String expiryDate;
+            @JsonProperty("currency")
+            private String currency;
+            @JsonProperty("amount")
+            private Integer amount;
+            @JsonProperty("basePremium")
+            private Double basePremium;
+            @JsonProperty("coverageStandardPremium")
+            private Double coverageStandardPremium;
+            @JsonProperty("coveragePremium")
+            private Double coveragePremium;
+            @JsonProperty("coveragePremiumNoTax")
+            private Double coveragePremiumNoTax;
+            @JsonProperty("coverageTax")
+            private Double coverageTax;
+            @JsonProperty("rate")
+            private Double rate;
+            @JsonProperty("shortRate")
+            private Double shortRate;
+            @JsonProperty("shortRateType")
+            private String shortRateType;
+            @JsonProperty("deductibleRate")
+            private Integer deductibleRate;
+            @JsonProperty("discount")
+            private Double discount;
+            @JsonProperty("costPrem")
+            private Double costPrem;
+            @JsonProperty("coverageRiskPremium")
+            private Double coverageRiskPremium;
+            @JsonProperty("quantity")
+            private Integer quantity;
+            @JsonProperty("unitAmount")
+            private Integer unitAmount;
+        }
+
+        @NoArgsConstructor
+        @Data
+        public static class AdjustDTO {
+            @JsonProperty("adjustCode")
+            private String adjustCode;
+            @JsonProperty("adjustName")
+            private String adjustName;
+            @JsonProperty("adjustRate")
+            private Double adjustRate;
+            @JsonProperty("maxRate")
+            private Double maxRate;
+            @JsonProperty("minRate")
+            private Double minRate;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class UbiInfoDTO {
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class RiskIdentifyInfoDTO {
+        @JsonProperty("highRiskHit")
+        private String highRiskHit;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class IlogRuleResultDTO {
+        @JsonProperty("underwriteDirectory")
+        private String underwriteDirectory;
+        @JsonProperty("authorityList")
+        private List<AuthorityListDTO> authorityList;
+
+        @NoArgsConstructor
+        @Data
+        public static class AuthorityListDTO {
+            @JsonProperty("authorityLevel")
+            private String authorityLevel;
+            @JsonProperty("dataType")
+            private String dataType;
+            @JsonProperty("reasondescription")
+            private String reasondescription;
+            @JsonProperty("ruleSetName")
+            private String ruleSetName;
+            @JsonProperty("riskCode")
+            private String riskCode;
+            @JsonProperty("finalRuleResult")
+            private String finalRuleResult;
+        }
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class YztScoreDTO {
+        @JsonProperty("scoreId")
+        private String scoreId;
+        @JsonProperty("centile")
+        private Integer centile;
+        @JsonProperty("commercialPureLost")
+        private Double commercialPureLost;
+        @JsonProperty("finalLossrationRate")
+        private Double finalLossrationRate;
+        @JsonProperty("forcePureLost")
+        private Double forcePureLost;
+        @JsonProperty("targetPureLost")
+        private Double targetPureLost;
+    }
+}

+ 0 - 70
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiAcciSaleInfo.java

@@ -1,70 +0,0 @@
-package com.jzg.quotation.chengtai.crawler.model.entity;
-
-import com.jzg.quotation.commons.utils.UnknownFieldEntity;
-import lombok.Getter;
-import lombok.Setter;
-
-@Setter
-@Getter
-public class ChengTaiAcciSaleInfo extends UnknownFieldEntity {
-    /**
-     * 业务模式
-     */
-    private String businessMode;
-    /**
-     * 业务来源
-     */
-    private String businessSource;
-    /**
-     * 公司代码
-     */
-    private String comCode;
-    /**
-     * 公司名称
-     */
-    private String comName;
-    /**
-     * 渠道类型
-     */
-    private String channelType;
-    /**
-     * 协议号
-     */
-    private String agreementNo;
-    /**
-     * 代理代码
-     */
-    private String agentCode;
-    /**
-     * 代理名称
-     */
-    private String agentName;
-    /**
-     * 方案代码
-     */
-    private String solutionCode;
-    /**
-     * 许可证号
-     */
-    private String permitNo;
-    /**
-     * 渠道类型明细
-     */
-    private String channelTypeDetail;
-    /**
-     * 处理人代码
-     */
-    private String handlerCode;
-    /**
-     * 处理人名称
-     */
-    private String handlerName;
-    /**
-     * 合作网点代码
-     */
-    private String cooperateSiteCode;
-    /**
-     * 合作网点名称
-     */
-    private String cooperateSiteName;
-}

+ 0 - 146
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiAccidentInsurance.java

@@ -1,146 +0,0 @@
-package com.jzg.quotation.chengtai.crawler.model.entity;
-
-import com.jzg.quotation.commons.utils.UnknownFieldEntity;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.List;
-
-@Setter
-@Getter
-public class ChengTaiAccidentInsurance extends UnknownFieldEntity {
-    /**
-     * 产品ID
-     */
-    private String id;
-
-    /**
-     * 创建时间
-     */
-    private String createTime;
-
-    /**
-     * 方案代码
-     */
-    private String planCode;
-
-    /**
-     * 险种代码
-     */
-    private String riskCode;
-
-    /**
-     * 保额(字符串类型存储double值)
-     */
-    private String amount;
-
-    /**
-     * 总保费(字符串类型存储double值)
-     */
-    private String totalPremium;
-
-    /**
-     * 公司代码
-     */
-    private String comCode;
-
-    /**
-     * 产品名称
-     */
-    private String name;
-
-    /**
-     * 产品详情
-     */
-    private String detail;
-
-    /**
-     * 座位数(字符串类型存储数值)
-     */
-    private String seat;
-
-    /**
-     * 手续费比例(字符串类型存储double值)
-     */
-    private String feePercent;
-
-    /**
-     * 特别约定条款
-     */
-    private String assumpsit;
-
-    /**
-     * 车辆种类代码
-     */
-    private String carKindCode;
-
-    /**
-     * 使用性质代码
-     */
-    private String useNatureCode;
-
-    /**
-     * 投保份数
-     */
-    private Integer insuredAmount;
-
-    /**
-     * 产品类型
-     */
-    private String type;
-
-    /**
-     * 保障责任列表
-     */
-    private List<Coverage> coverages;
-
-
-    @Getter
-    @Setter
-    public static class Coverage extends UnknownFieldEntity {
-        /**
-         * 责任ID
-         */
-        private String id;
-
-        /**
-         * 创建时间
-         */
-        private String createTime;
-
-        /**
-         * 责任代码
-         */
-        private String liabilityCode;
-
-        /**
-         * 责任保额(字符串类型存储double值)
-         */
-        private String amount;
-
-        /**
-         * 责任保费(字符串类型存储double值)
-         */
-        private String premium;
-
-        /**
-         * 责任总保费(字符串类型存储double值)
-         */
-        private String totalPremium;
-
-        /**
-         * 责任名称
-         */
-        private String name;
-
-        /**
-         * 关联产品ID
-         */
-        private String productId;
-
-        /**
-         * 责任代码
-         */
-        private String productCode;
-    }
-}

+ 0 - 47
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiAdjust.java

@@ -1,47 +0,0 @@
-package com.jzg.quotation.chengtai.crawler.model.entity;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.jzg.quotation.commons.utils.UnknownFieldEntity;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.math.BigDecimal;
-
-@Setter
-@Getter
-public class ChengTaiAdjust extends UnknownFieldEntity {
-    private String id;
-    /**
-     * 调整系数代码
-     */
-    @JsonProperty("adjustCode")
-    private String adjustCode;
-
-    /**
-     * 调整系数名称
-     */
-    @JsonProperty("adjustName")
-    private String adjustName;
-
-    /**
-     * 调整系数值
-     */
-    @JsonProperty("adjustRate")
-    private BigDecimal adjustRate;
-
-    /**
-     * 最大调整系数
-     */
-    @JsonProperty("maxRate")
-    private BigDecimal maxRate;
-
-    /**
-     * 最小调整系数
-     */
-    @JsonProperty("minRate")
-    private BigDecimal minRate;
-
-    private String createTime;
-
-    private String policyId;
-}

+ 0 - 175
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiApplicant.java

@@ -1,175 +0,0 @@
-package com.jzg.quotation.chengtai.crawler.model.entity;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Setter
-@Getter
-public class ChengTaiApplicant extends ChengTaiCustomer {
-    /**
-     * 类型
-     *
-     * 1:个人
-     * 2:团体
-     */
-    private String type;
-    /**
-     * 角色标识
-     */
-    private String role;
-    /**
-     * 涉恐标识
-     */
-    private String isTerror;
-    /**
-     * 客户ID
-     */
-    private String customerId;
-
-    /**
-     * 完整地址
-     */
-    private String completeAddress;
-    /**
-     * 手机号码
-     */
-    private String mobile;
-    /**
-     * 特殊客户标识
-     */
-    private String specialClient;
-    /**
-     * 操作标识
-     */
-    private String operateFlag;
-    /**
-     * 记录ID
-     */
-    private String id;
-    /**
-     * 国籍
-     *
-     * 01-居民身份证
-     *    CN-中国
-     *
-     * 02-护照
-     *    CN-中国
-     *    CO-哥伦比亚
-     *    CU-古巴
-     *    ...
-     *
-     * 03-军人身份证件
-     *    CN-中国
-     *
-     * 08-港澳居民来往内地通行证
-     *    HK-香港(中国特别行政区)
-     *    MO-澳门(中国特别行政区)
-     *
-     * 09-台湾居民来往大陆通行证
-     *    TW-台湾(中国的省 )
-     *
-     * 10-武警身份证件
-     *    CN-中国
-     *
-     * 11-外国人永久居留身份证
-     *    AD-安道尔
-     *
-     * 44-港澳台居民居住证
-     *    TW-台湾(中国的省 )
-     *    MO-澳门(中国特别行政区)
-     *    HK-香港(中国特别行政区)
-     */
-    private String terrorNationality;
-    /**
-     * 国籍名称
-     */
-    private String terrorNationalityName;
-    /**
-     * 政治面貌标识
-     */
-    private String isPolitics;
-    /**
-     * 个人字段
-     *
-     * 个体工商户标识
-     *
-     * 0:不是
-     * 1:是
-     */
-    private String individualBusinessInd;
-    /**
-     * 团体字段
-     *
-     * 是否小微企业
-     *
-     * 0:不是
-     * 1:是
-     */
-    private String microBusinessesInd;
-    /**
-     * 原签名人标识
-     */
-    private String signedbyOrig;
-    /**
-     * 订单ID
-     */
-    private String orderId;
-    /**
-     * 公司代码
-     */
-    private String comCode;
-    /**
-     * 团体字段
-     *
-     * 当 individualBusinessInd 为 1时,才设置此字段值。
-     */
-    private String occupationCode;
-    /**
-     * 团体字段
-     */
-    private String occupationName;
-    /**
-     * 团体字段
-     *
-     * 单位性质编码
-     *
-     */
-    private String unitTypeCode;
-    /**
-     * 团体字段
-     *
-     * 单位性质名称
-     */
-    private String unitTypeName;
-
-    /**
-     * 团体字段
-     *
-     * 邮箱
-     */
-    private String email;
-
-    /**
-     * 团体字段
-     *
-     * 联系人
-     */
-    private String linkerName;
-
-    /**
-     * 团体字段
-     *
-     * 联系电话
-     */
-    private String tel;
-
-    /**
-     * 团体字段
-     *
-     * 证件号码,与 identifyNumber 一样
-     */
-    private String organizationCode;
-
-    private String createTime;
-
-}

+ 0 - 52
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiAuthority.java

@@ -1,52 +0,0 @@
-package com.jzg.quotation.chengtai.crawler.model.entity;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.jzg.quotation.commons.utils.UnknownFieldEntity;
-import lombok.Getter;
-import lombok.Setter;
-
-@Setter
-@Getter
-public class ChengTaiAuthority extends UnknownFieldEntity {
-    /**
-     * 权限等级
-     */
-    @JsonProperty("authorityLevel")
-    private String authorityLevel;
-
-    /**
-     * 数据类型
-     */
-    @JsonProperty("dataType")
-    private String dataType;
-
-    /**
-     * 原因描述
-     */
-    @JsonProperty("reasondescription")
-    private String reasondescription;
-
-    /**
-     * 规则集名称
-     */
-    @JsonProperty("ruleSetName")
-    private String ruleSetName;
-
-    /**
-     * 险种代码
-     */
-    @JsonProperty("riskCode")
-    private String riskCode;
-
-    /**
-     * UUID
-     */
-    @JsonProperty("uuid")
-    private String uuid;
-
-    /**
-     * 最终规则结果
-     */
-    @JsonProperty("finalRuleResult")
-    private String finalRuleResult;
-}

+ 0 - 69
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiBiContract.java

@@ -1,69 +0,0 @@
-package com.jzg.quotation.chengtai.crawler.model.entity;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.jzg.quotation.commons.utils.UnknownFieldEntity;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.List;
-
-@Setter
-@Getter
-public class ChengTaiBiContract extends UnknownFieldEntity {
-
-    /**
-     * 主合同信息
-     */
-    @JsonProperty("contractMain")
-    private ChengTaiContractMain contractMain;
-
-    /**
-     * 险种列表
-     */
-    @JsonProperty("coverage")
-    private List<ChengTaiCoverage> coverage;
-
-    /**
-     * 平台消息
-     */
-    @JsonProperty("platFormMessage")
-    private ChengTaiPlatFormMessage platFormMessage;
-
-    /**
-     * 折扣信息
-     */
-    @JsonProperty("discountInfo")
-    private ChengTaiDiscountInfo discountInfo;
-
-    /**
-     * 调整系数列表
-     */
-    @JsonProperty("adjust")
-    private List<ChengTaiAdjust> adjust;
-
-    /**
-     * 再保项信息
-     */
-    @JsonProperty("reInsureItem")
-    private ChengTaiReInsureItem reInsureItem;
-
-
-    private List<ChengTaiEngage> engage;
-
-    private String proposalNo;
-
-    private String othBusinessNo;
-
-    private String uuid;
-
-    @Override
-    protected void addChildUnknownFields() {
-        addChildUnknownField("contractMain", contractMain);
-        addChildUnknownField("coverage", coverage);
-        addChildUnknownField("platFormMessage", platFormMessage);
-        addChildUnknownField("discountInfo", discountInfo);
-        addChildUnknownField("adjust", adjust);
-        addChildUnknownField("reInsureItem", reInsureItem);
-    }
-}
-

+ 0 - 168
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiBusinessMain.java

@@ -1,168 +0,0 @@
-package com.jzg.quotation.chengtai.crawler.model.entity;
-
-import com.jzg.quotation.commons.utils.UnknownFieldEntity;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.List;
-
-@Setter
-@Getter
-public class ChengTaiBusinessMain extends UnknownFieldEntity {
-
-    /**
-     * 业务唯一标识
-     *
-     * 支付连接中会用到
-     */
-    private String uuid;
-    /**
-     * 操作代码
-     */
-    private String operatorCode;
-    /**
-     * 操作名称
-     */
-    private String operatorName;
-    /**
-     * 操作日期
-     */
-    private String operateDate;
-
-    /**
-     * 不通过的原因
-     */
-    private String operateText;
-
-    private String operateTime;
-
-    private String operateUserName;
-
-    /**
-     * 签发日期
-     */
-    private String issueDate;
-    /**
-     * 录入日期
-     */
-    private String inputDate;
-    /**
-     * 语言类型
-     */
-    private String language;
-    /**
-     * 资金可疑标识
-     */
-    private String moneySuspiciousInd;
-    /**
-     * COD标识
-     */
-    private String codInd;
-    /**
-     * 争议解决方式
-     */
-    private String argueSolution;
-    /**
-     * 仲裁机构
-     */
-    private String argueSolutionCom;
-    /**
-     * 关联贸易类型
-     */
-    private String relateTradeType;
-    /**
-     * 出单公司代码
-     */
-    private String issueCompany;
-    /**
-     * 出单公司名称
-     */
-    private String issueCompanyName;
-    /**
-     * 资源类型
-     */
-    private String resourceType;
-    /**
-     * 业务类型
-     *
-     * PROPOSAL
-     * ENDORSEAPPLICATION
-     * POLICY
-     */
-    private String businessType;
-    /**
-     * 短信验证标识
-     */
-    private String smsCheckFlag;
-    /**
-     * 涉恐标识
-     */
-    private String isTerror;
-    /**
-     * 业务ID
-     */
-    private String id;
-    /**
-     * 方案代码
-     */
-    private String planCode;
-    /**
-     * 短信验证码标识
-     */
-    private String smsCodeFlag;
-    /**
-     * 登记方式
-     */
-    private String registerWay;
-    /**
-     * 缴费标识
-     */
-    private String paymentmark;
-    /**
-     * 车型代码
-     */
-    private String carmodel;
-    /**
-     * 是否车辆改革
-     */
-    private String isCarReform;
-    /**
-     * 现金业务标识
-     */
-    private String cashBusiness;
-    /**
-     * 车辆登记标识
-     */
-    private String carRegistFlag;
-    /**
-     * BI配置自动标识
-     */
-    private String biConfigAutoFlag;
-    /**
-     * 组合ID
-     */
-    private String comboId;
-    /**
-     * 黑名单ID
-     */
-    private String blackId;
-    /**
-     * 规则列表
-     */
-    private List<ChengTaiRule> rulesList;
-
-    private String biChanged;
-
-    private String ciChanged;
-
-    private String publicChanged;
-
-    private String createTime;
-
-    private String isCreateEInsurance;
-
-    @Override
-    protected void addChildUnknownFields() {
-        addChildUnknownField("rulesList", rulesList);
-    }
-}

+ 0 - 186
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiCarFullData.java

@@ -1,186 +0,0 @@
-package com.jzg.quotation.chengtai.crawler.model.entity;
-
-import com.jzg.quotation.commons.utils.UnknownFieldEntity;
-import lombok.Getter;
-import lombok.Setter;
-
-@Setter
-@Getter
-public class ChengTaiCarFullData extends UnknownFieldEntity {
-
-    /**
-     * 模型代码
-     */
-    private String modelCode;
-
-    /**
-     * 车辆代码
-     */
-    private String vehicleCode;
-
-    /**
-     * 模型名称
-     */
-    private String modelName;
-
-    /**
-     * 工厂名称
-     */
-    private String factory;
-
-    /**
-     * 品牌
-     */
-    private String brand;
-
-    /**
-     * 品牌代码
-     */
-    private String brandCode;
-
-    /**
-     * 系列
-     */
-    private String series;
-
-    /**
-     * 系列代码
-     */
-    private String seriesCode;
-
-    /**
-     * 系列类型
-     */
-    private String seriesType;
-
-    /**
-     * 系列名称
-     */
-    private String seriesName;
-
-    /**
-     * 车辆种类
-     */
-    private String carKind;
-
-    /**
-     * 保险车辆分类
-     */
-    private String insCarClass;
-
-    /**
-     * 保险车辆分类名称
-     */
-    private String insCarClassName;
-
-    /**
-     * 简称
-     */
-    private String shortHandCode;
-
-    /**
-     * 出厂年份
-     */
-    private String carYear;
-
-    /**
-     * 购车价格(不含税)
-     */
-    private String purchasePrice;
-
-    /**
-     * 购车价格(含税)
-     */
-    private String purchasePriceTax;
-
-    /**
-     * 变速器类型
-     */
-    private String transmissionType;
-
-    /**
-     * 总质量最大值
-     */
-    private String qualityMax;
-
-    /**
-     * 总质量最小值
-     */
-    private String qualityMin;
-
-    /**
-     * 核定载人数
-     */
-    private String approvedPassengersCapacity;
-
-    /**
-     * 排量
-     */
-    private String displacement;
-
-    /**
-     * 功率
-     */
-    private String power;
-
-    /**
-     * 整备质量
-     */
-    private String unladenMass;
-
-    /**
-     * 能源类型
-     */
-    private String energyTypes;
-
-    /**
-     * 车牌号
-     */
-    private String licenseNo;
-
-    /**
-     * 车架号
-     */
-    private String frameNo;
-
-    /**
-     * 发动机号
-     */
-    private String engineNo;
-
-    /**
-     * 车主
-     */
-    private String carOwer;
-
-    /**
-     * 工厂代码
-     */
-    private String factoryCode;
-
-    /**
-     * 核定载人数编码
-     */
-    private String hfCode;
-
-    /**
-     * 核定载人数名称
-     */
-    private String hfName;
-
-    /**
-     * 动力类型
-     */
-    private String powerType;
-
-    /**
-     * 车辆型号
-     */
-    private String vehicleModel;
-
-    /**
-     * 车辆名称
-     */
-    private String vehicleName;
-
-}

+ 0 - 44
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiCarKind.java

@@ -1,44 +0,0 @@
-package com.jzg.quotation.chengtai.crawler.model.entity;
-
-import com.jzg.quotation.commons.utils.UnknownFieldEntity;
-import lombok.Getter;
-import lombok.Setter;
-
-@Setter
-@Getter
-public class ChengTaiCarKind extends UnknownFieldEntity {
-    /**
-     * ID
-     */
-    private String id;
-
-    /**
-     * 类型
-     */
-    private String type;
-
-    /**
-     * 项目名称
-     */
-    private String itemName;
-
-    /**
-     * 项目值
-     */
-    private String itemValue;
-
-    /**
-     * 描述
-     */
-    private String description;
-
-    /**
-     * 创建时间
-     */
-    private String createTime;
-
-    /**
-     * 扩展数据
-     */
-    private String extdata;
-}

+ 0 - 186
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiCarModel.java

@@ -1,186 +0,0 @@
-package com.jzg.quotation.chengtai.crawler.model.entity;
-
-import com.jzg.quotation.commons.utils.UnknownFieldEntity;
-import lombok.Getter;
-import lombok.Setter;
-
-@Setter
-@Getter
-public class ChengTaiCarModel extends UnknownFieldEntity {
-
-    /**
-     * 模型代码
-     */
-    private String modelcode;
-
-    /**
-     * 模型中文名称
-     */
-    private String modelcname;
-
-    /**
-     * 车辆类别
-     */
-    private String vehicleclass;
-
-    /**
-     * 车辆类型
-     */
-    private String vehicleType;
-
-    /**
-     * 工厂名称
-     */
-    private String factory;
-
-    /**
-     * 工厂ID
-     */
-    private String factoryid;
-
-    /**
-     * 汽车品牌
-     */
-    private String carbrand;
-
-    /**
-     * 品牌ID
-     */
-    private String brandid;
-
-    /**
-     * 系列名称
-     */
-    private String familyname;
-
-    /**
-     * 系列代码
-     */
-    private String familycode;
-
-    /**
-     * 购车价格
-     */
-    private String purchaseprice;
-
-    /**
-     * 类似车型价格
-     */
-    private String analogymodelprice;
-
-    /**
-     * 不含税购车价格
-     */
-    private String purchasepricenottax;
-
-    /**
-     * 不含税类似车型价格
-     */
-    private String analogymodelpricenottax;
-
-    /**
-     * 车型
-     */
-    private String carstyle;
-
-    /**
-     * 使用性质分类ID
-     */
-    private String syxclassid;
-
-    /**
-     * 使用性质分类名称
-     */
-    private String syxclassname;
-
-    /**
-     * 交强险分类ID
-     */
-    private String jqxclassid;
-
-    /**
-     * 车辆模型分类
-     */
-    private String cimodelclass;
-
-    /**
-     * 简称
-     */
-    private String shorthandcode;
-
-    /**
-     * 排量
-     */
-    private String exhaustscale;
-
-    /**
-     * 座位数
-     */
-    private String seatcount;
-
-    /**
-     * 出厂年份
-     */
-    private String caryear;
-
-    /**
-     * 变速器类型
-     */
-    private String transmissionttype;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 车辆质量最小值
-     */
-    private String vehiclequalitymin;
-
-    /**
-     * 有效标识
-     */
-    private String validind;
-
-    /**
-     * 功率
-     */
-    private String power;
-
-    /**
-     * 车辆型号
-     */
-    private String vehiclemodel;
-
-    /**
-     * 动力类型
-     */
-    private String powertype;
-
-    /**
-     * 核定载人数新
-     */
-    private String hfnamenew;
-
-    /**
-     * 核定载人数编码新
-     */
-    private String hfcodenew;
-
-    /**
-     * 总质量最大值
-     */
-    private String fullweightmax;
-
-    /**
-     * 总质量最小值
-     */
-    private String fullweightmin;
-
-    /**
-     * 更新版本
-     */
-    private String updateVersion;
-
-}

+ 0 - 24
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/crawler/model/entity/ChengTaiCarPlatformBean.java

@@ -1,24 +0,0 @@
-package com.jzg.quotation.chengtai.crawler.model.entity;
-
-import com.jzg.quotation.commons.utils.UnknownFieldEntity;
-import lombok.Getter;
-import lombok.Setter;
-
-@Setter
-@Getter
-public class ChengTaiCarPlatformBean extends UnknownFieldEntity {
-    /**
-     * 模型代码HX
-     */
-    private String modelCodeHX;
-
-    /**
-     * 车辆名称
-     */
-    private String carName;
-
-    /**
-     * 通知类型
-     */
-    private String noticeType;
-}

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.