Преглед изворни кода

Merge remote-tracking branch 'origin/master'

jiakai пре 5 месеци
родитељ
комит
80d57a67ad
100 измењених фајлова са 741 додато и 467 уклоњено
  1. 18 5
      README.md
  2. 5 0
      authentication/src/main/java/com/jzg/config/JzgAuthenticationProvider.java
  3. 2 11
      authentication/src/main/java/com/jzg/controller/AuthController.java
  4. 0 5
      authentication/src/main/java/com/jzg/handler/JzgAuthenticationSuccessHandler.java
  5. 0 7
      authentication/src/main/resources/application-dev.yml
  6. 13 34
      authentication/src/main/resources/logback-spring.xml
  7. 5 0
      commons/pom.xml
  8. 44 0
      commons/src/main/java/com/jzg/commons/config/OpenTelemetryConfig.java
  9. 37 0
      commons/src/main/java/com/jzg/commons/config/OpenTelemetryMDCFilter.java
  10. 1 0
      commons/src/main/java/com/jzg/commons/core/base/BaseController.java
  11. 1 0
      commons/src/main/java/com/jzg/commons/core/base/StateResult.java
  12. 2 0
      commons/src/main/java/com/jzg/commons/entity/agreement/po/PtlAgreementAttribution.java
  13. 1 4
      commons/src/main/java/com/jzg/commons/entity/agreement/po/PtlInsAttributionTemplate.java
  14. 0 2
      commons/src/main/java/com/jzg/commons/entity/dto/JyxConfigAdd.java
  15. 49 0
      commons/src/main/java/com/jzg/commons/entity/dto/QrBarcodeConfigAddVO.java
  16. 3 1
      commons/src/main/java/com/jzg/commons/entity/finance/vo/InvoicingVo.java
  17. 1 0
      commons/src/main/java/com/jzg/commons/entity/po/EsmInsCompany.java
  18. 2 1
      commons/src/main/java/com/jzg/commons/entity/po/SysRole.java
  19. 23 18
      commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteEchoVo.java
  20. 3 2
      commons/src/main/java/com/jzg/commons/entity/scheme/vo/PtlSchemeSaveVo.java
  21. 12 12
      commons/src/main/java/com/jzg/commons/exception/GlobalExceptionHandler.java
  22. 1 0
      consoleStatistics/pom.xml
  23. 3 4
      consoleStatistics/src/main/java/com/jzg/console/controller/ReportUploadExcelTaskController.java
  24. 6 0
      consoleStatistics/src/main/java/com/jzg/console/service/impl/ReportUploadExcelTaskServiceImpl.java
  25. 0 2
      consoleStatistics/src/main/resources/application-dev.yml
  26. 34 0
      consoleStatistics/src/main/resources/application-prod.yml
  27. 2 0
      consoleStatistics/src/main/resources/application.yml
  28. 1 1
      gateway/src/main/java/com/jzg/filter/AuthFilter.java
  29. 5 0
      gateway/src/main/resources/application-dev.yml
  30. 14 1
      gateway/src/main/resources/application-prod.yml
  31. 5 0
      gateway/src/main/resources/application-test.yml
  32. 7 7
      gateway/src/main/resources/application.yml
  33. 22 0
      gateway/src/main/resources/logback-spring.xml
  34. 0 1
      partner/pom.xml
  35. 2 1
      partner/src/main/java/com/jzg/client/OrganizationClient.java
  36. 3 6
      partner/src/main/java/com/jzg/controller/DistributionController.java
  37. 3 3
      partner/src/main/java/com/jzg/controller/ExtractFeeController.java
  38. 7 7
      partner/src/main/java/com/jzg/utils/DistributionUtils.java
  39. 0 2
      partner/src/main/resources/application-dev.yml
  40. 0 2
      partner/src/main/resources/application-prod.yml
  41. 0 2
      partner/src/main/resources/application-test.yml
  42. 3 1
      partner/src/main/resources/application.yml
  43. 10 23
      partner/src/main/resources/logback-spring.xml
  44. 10 9
      partner/src/main/resources/mapper/PartnerUserMapper.xml
  45. 9 1
      platform/src/main/java/com/jzg/controller/QrBarcodeController.java
  46. 0 2
      platform/src/main/java/com/jzg/controller/SysSystemController.java
  47. 9 1
      platform/src/main/java/com/jzg/mapper/PtlAgreementMapper.java
  48. 0 1
      platform/src/main/java/com/jzg/mapper/PtlAgreementUrlMapper.java
  49. 5 4
      platform/src/main/java/com/jzg/service/PtlAgreementService.java
  50. 2 9
      platform/src/main/java/com/jzg/service/SysSystemService.java
  51. 6 1
      platform/src/main/java/com/jzg/service/impl/EsmInsCompanyServiceImpl.java
  52. 3 8
      platform/src/main/java/com/jzg/service/impl/JyxConfigServiceImpl.java
  53. 16 1
      platform/src/main/java/com/jzg/service/impl/PtlAgreementServiceImpl.java
  54. 2 5
      platform/src/main/java/com/jzg/service/impl/PtlAgreementUrlServiceImpl.java
  55. 0 3
      platform/src/main/java/com/jzg/service/impl/PtlInsAttributionTemplateServiceImpl.java
  56. 44 27
      platform/src/main/java/com/jzg/service/impl/SysSystemServiceImpl.java
  57. 1 0
      platform/src/main/resources/application-prod.yml
  58. 10 23
      platform/src/main/resources/logback-spring.xml
  59. 33 0
      pom.xml
  60. 1 9
      tenant/costsorrule/src/main/java/com/jzg/costsorrule/client/QuoteClient.java
  61. 0 2
      tenant/costsorrule/src/main/resources/application-dev.yml
  62. 0 2
      tenant/costsorrule/src/main/resources/application-prod.yml
  63. 0 2
      tenant/costsorrule/src/main/resources/application-test.yml
  64. 2 0
      tenant/costsorrule/src/main/resources/application.yml
  65. 22 0
      tenant/costsorrule/src/main/resources/logback-spring.xml
  66. 5 0
      tenant/insurance/pom.xml
  67. 0 3
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/build/BoHaiCrawlerQuoteResultsVoBuild.java
  68. 4 4
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/entity/po/BoHaiCrawlerOrder.java
  69. 0 4
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/entity/request/BoHaiCrawlerBaseRequest.java
  70. 1 5
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/entity/request/BoHaiCrawlerImageUploadRequestDto.java
  71. 0 5
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/entity/request/BoHaiCrawlerQuotationRequest2.java
  72. 0 1
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/entity/response/BoHaiCrawlerCarResponse.java
  73. 2 6
      tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/service/impl/BoHaiCrawlerOrderServiceImpl.java
  74. 77 41
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/component/ChengTaiRequestApiComponent.java
  75. 5 12
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java
  76. 0 13
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java
  77. 16 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/client/PartnerClient.java
  78. 1 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/CarModelController.java
  79. 1 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java
  80. 29 44
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java
  81. 0 10
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/CompanyFactory.java
  82. 1 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/decorator/quote/QuoteDispatchDecorator.java
  83. 2 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/SysQueryVehicleConfigMapper.java
  84. 1 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/SysQueryVehicleConfigService.java
  85. 22 6
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java
  86. 0 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersQrcodeServiceImpl.java
  87. 0 4
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java
  88. 22 0
      tenant/insurance/quotation-summary/src/main/resources/logback-spring.xml
  89. 2 5
      tenant/insurance/quotation-summary/src/main/resources/mapper/InsFeeAuditMapper.xml
  90. 0 2
      tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/component/ZiJinApiRequestComponent.java
  91. 1 2
      tenant/organization/src/main/java/com/jzg/organization/client/OrgClient.java
  92. 0 1
      tenant/organization/src/main/java/com/jzg/organization/client/QuoteClient.java
  93. 1 4
      tenant/organization/src/main/java/com/jzg/organization/controller/PtlAgreementCostController.java
  94. 3 3
      tenant/organization/src/main/java/com/jzg/organization/controller/ReceivableController.java
  95. 7 3
      tenant/organization/src/main/java/com/jzg/organization/controller/UserController.java
  96. 0 3
      tenant/organization/src/main/java/com/jzg/organization/mapper/PtlAgreementCostMapper.java
  97. 10 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysRoleMapper.java
  98. 2 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserJzgInfoMapper.java
  99. 0 2
      tenant/organization/src/main/java/com/jzg/organization/service/PtlAgreementCostService.java
  100. 1 5
      tenant/organization/src/main/java/com/jzg/organization/service/PtlSchemeService.java

+ 18 - 5
README.md

@@ -1,14 +1,27 @@
-authentication      授权服务
-commons             公共类
-gateway             网关
-platform            总控项目
+# 项目介绍
 
 
+## 微服务介绍
+
+| 序号 | 服务名                               | 端口号  | 备注        | 是否必须启动 |
+|:---|:----------------------------------|:-----|:----------|:-------|
+| 1  | authentication                    | 8081 | 认证服务      | 是      |
+| 2  | commons                           |      | 公共类       | 否      |
+| 3  | gateway                           | 8001 | 网关        | 是      |
+| 4  | platform                          | 8087 | 总控项目      | 是      |
+| 5  | consoleStatistics                 | 8086 |           | 是      |
+| 6  | tenant--costsorrule               | 8085 |           | 是      |
+| 7  | tenant-organization               | 8085 |           | 是      |
+| 8  | tenant-insurance-xxx              | xxx  | 对接不同的保险公司 | 否      |
+| 9  | rocketmq                          |      |           | 否      |
+| 10 | operation-Backend                 | xxx  | 前端:平台管理系统 | 否      |
+| 11 | tenant-Platform                   | xxx  | 前端:租户系统   | 否      |
 
-通过gateway网关转发其他服务项目   后期加入nacos 使用服务名支持负载均衡、服务健康状态管理
 
 
+## 其它
 
+通过gateway网关转发其他服务项目   后期加入nacos 使用服务名支持负载均衡、服务健康状态管理
 
 轨迹添加
 Service层 需要继承HistoryDataService  实现getHistoryData方法   更新与删除操作需要获取历史的数据

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

@@ -29,6 +29,8 @@ import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.mp.api.WxMpService;
 import org.redisson.api.RedissonClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.AuthenticationProvider;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -46,6 +48,8 @@ import java.util.stream.Collectors;
 
 public class JzgAuthenticationProvider implements AuthenticationProvider {
 
+    private static final Logger log = LoggerFactory.getLogger(JzgAuthenticationProvider.class);
+
     private UserDetailsService userDetailsService;
 
     private SysUserService sysUserService;
@@ -251,6 +255,7 @@ public class JzgAuthenticationProvider implements AuthenticationProvider {
                 .collect(Collectors.toList());
         //APP 是手机端,不进行权限校验
         if(!authorities.stream().anyMatch(x->x.getSystem().equals(system)) && !username.equals("admin") && !StringUtils.equals("APP",system) & !appLogin){
+            log.info("没有权限访问系统。system=[{}],username=[{}],appLogin=[{}]",system, username,appLogin);
             throw new SystemException("没有权限访问系统");
         }
         SysUserJzgVo jzgUserInfo = new SysUserJzgVo();

+ 2 - 11
authentication/src/main/java/com/jzg/controller/AuthController.java

@@ -4,8 +4,8 @@ import cn.hutool.core.util.HexUtil;
 import cn.hutool.crypto.BCUtil;
 import cn.hutool.crypto.SmUtil;
 import cn.hutool.crypto.asymmetric.SM2;
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
-import com.alipay.api.AlipayConfig;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.annotation.IgnoreTenant;
@@ -15,7 +15,6 @@ import com.jzg.commons.request.RequestSingleParam;
 import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.MinioUtils;
 import com.jzg.commons.util.PasswordUtils;
-import com.jzg.commons.util.sm.Sm2Util;
 import com.jzg.config.JzgTokenService;
 import com.jzg.config.JzgUserDetailsService;
 import com.jzg.config.JzgUsernamePasswordAuthenticationToken;
@@ -43,21 +42,14 @@ import jakarta.servlet.ServletException;
 import jakarta.servlet.ServletOutputStream;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
-import jodd.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.mp.api.WxMpService;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.tomcat.util.http.fileupload.IOUtils;
-import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
 import org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKey;
-import org.bouncycastle.util.encoders.Hex;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.authentication.AuthenticationManager;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.web.bind.annotation.*;
@@ -69,9 +61,7 @@ import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.security.*;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
-import java.util.Random;
 import java.util.concurrent.TimeUnit;
 import java.util.regex.Pattern;
 
@@ -138,6 +128,7 @@ public class AuthController extends BaseController {
     @PostMapping("/login")
     @IgnoreTenant
     public void login(@RequestBody LoginFormVo loginFormVo) throws ServletException, IOException {
+        log.info("登录接口。loginFormVo=[{}]", JSONUtil.toJsonStr(loginFormVo));
         HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
         HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
 

+ 0 - 5
authentication/src/main/java/com/jzg/handler/JzgAuthenticationSuccessHandler.java

@@ -65,9 +65,7 @@ public class JzgAuthenticationSuccessHandler implements AuthenticationSuccessHan
         String token = tokenService.generateToken(username);
         // 生成 JWT Token
         tokenService.saveToken(username,token,JSONObject.toJSONString(redisToken));
-
         logger.info(username+"登录成功");
-
         // 设置响应内容类型为 JSON
         response.setContentType("application/json");
         JSONObject json = new JSONObject();
@@ -78,12 +76,9 @@ public class JzgAuthenticationSuccessHandler implements AuthenticationSuccessHan
         json.put("msg","login success");
         json.put("data",data);
         json.put("type","1");
-//        json.put("code",200);
-//        json.put("msg","login success");
 //        json.put("data",token);
         // 将 Token 返回给前端
         response.getWriter().write(json.toJSONString());
-
         // 确保状态码为 200 OK,不进行重定向
         response.setStatus(HttpServletResponse.SC_OK);
     }

+ 0 - 7
authentication/src/main/resources/application-dev.yml

@@ -1,8 +1,4 @@
-server:
-  port: 8081
 spring:
-  application:
-    name: jzg-auth
   cloud:
     nacos:
       server-addr: 192.168.5.250:8848
@@ -21,7 +17,6 @@ spring:
       - nacos:minio
 config:
   sso: 0
-
 seata:
   enabled: true
   application-id: ${spring.application.name}
@@ -50,8 +45,6 @@ wechat:
       app:
         componentAppId: wx612ca90988c46947
         componentSecret: 75b7d4cda453b2075dec23f849278bc0
-
-
 feign:
   client:
     jzg-partner:

+ 13 - 34
authentication/src/main/resources/logback-spring.xml

@@ -1,43 +1,22 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
 
-<!--    <appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">-->
-<!--        &lt;!&ndash; Graylog server 的主机名或 IP 地址 &ndash;&gt;-->
-<!--        <graylogHost>192.168.0.250</graylogHost>-->
-<!--        &lt;!&ndash; Graylog 服务器端口,通常为 12201(UDP)或 12202(TCP) &ndash;&gt;-->
-<!--        <graylogPort>12201</graylogPort>-->
-<!--        &lt;!&ndash; 可选项:指定协议,默认使用 UDP &ndash;&gt;-->
-<!--        <transport>UDP</transport>-->
-<!--        &lt;!&ndash; 发送日志时是否压缩 &ndash;&gt;-->
-<!--        <compress>true</compress>-->
-<!--        &lt;!&ndash; 是否在 GELF 消息中加入时间戳 &ndash;&gt;-->
-<!--        <includeTimestamp>true</includeTimestamp>-->
-<!--        &lt;!&ndash; 日志内容最大字节数 &ndash;&gt;-->
-<!--        <maxMessageSize>32768</maxMessageSize>-->
-<!--        &lt;!&ndash; 设置自定义字段 &ndash;&gt;-->
-<!--        <additionalFields>-->
-<!--        </additionalFields>-->
-<!--    </appender>-->
-
-    <!-- 排除启动日志 -->
-<!--    <logger name="org.springframework.boot" level="WARN" additivity="false">-->
-<!--        <appender-ref ref="STDOUT"/>-->
-<!--    </logger>-->
-
-<!--    <logger name="org.springframework.context" level="WARN" additivity="false">-->
-<!--        <appender-ref ref="STDOUT"/>-->
-<!--    </logger>-->
-
-    <!-- 控制台输出日志,非必须,可以根据需要选择性启用 -->
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <layout class="ch.qos.logback.classic.layout.TTLLLayout">
-            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg  %X{traceId} %X{spanId}%n</pattern>
-        </layout>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg traceId=%X{traceId}%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="GRAYLOG" class="de.siegmar.logbackgelf.GelfTcpAppender">
+        <graylogHost>192.168.5.250</graylogHost>
+<!--        <graylogHost>172.24.144.227</graylogHost>-->
+        <graylogPort>12201</graylogPort>
+        <includeMdcData>true</includeMdcData>
+        <extractStackTrace>true</extractStackTrace>
     </appender>
 
-    <!-- 输出到控制台 -->
     <root level="INFO">
-<!--        <appender-ref ref="GELF"/>-->
         <appender-ref ref="STDOUT"/>
+        <appender-ref ref="GRAYLOG"/>
     </root>
+
 </configuration>

+ 5 - 0
commons/pom.xml

@@ -132,6 +132,11 @@
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-openfeign</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.opentelemetry</groupId>
+            <artifactId>opentelemetry-api</artifactId>
+            <version>1.41.0</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 44 - 0
commons/src/main/java/com/jzg/commons/config/OpenTelemetryConfig.java

@@ -0,0 +1,44 @@
+package com.jzg.commons.config;
+
+import io.opentelemetry.api.OpenTelemetry;
+import io.opentelemetry.sdk.OpenTelemetrySdk;
+import io.opentelemetry.sdk.resources.Resource;
+import io.opentelemetry.sdk.trace.SdkTracerProvider;
+import io.opentelemetry.sdk.trace.export.BatchSpanProcessor;
+import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
+import io.opentelemetry.api.common.Attributes;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class OpenTelemetryConfig {
+
+    @Value("${spring.application.name}")
+    private String serviceName;
+
+    @Bean
+    public OpenTelemetry openTelemetry() {
+        Resource resource = Resource.getDefault()
+                .merge(Resource.create(Attributes.builder()
+                        .put("service.name", serviceName)
+                        .build()));
+
+        // Trace exporter
+        OtlpGrpcSpanExporter spanExporter = OtlpGrpcSpanExporter.builder()
+//                .setEndpoint("http://192.168.5.250:4317")
+                .setEndpoint("http://172.24.144.227:4317")
+                .build();
+
+        // Tracer provider
+        SdkTracerProvider tracerProvider = SdkTracerProvider.builder()
+                .addSpanProcessor(BatchSpanProcessor.builder(spanExporter).build())
+                .setResource(resource)
+                .build();
+
+        // 注册 Trace
+        return OpenTelemetrySdk.builder()
+                .setTracerProvider(tracerProvider)
+                .buildAndRegisterGlobal();
+    }
+}

+ 37 - 0
commons/src/main/java/com/jzg/commons/config/OpenTelemetryMDCFilter.java

@@ -0,0 +1,37 @@
+package com.jzg.commons.config;
+
+import io.opentelemetry.api.GlobalOpenTelemetry;
+import io.opentelemetry.api.trace.Span;
+import jakarta.servlet.*;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.slf4j.MDC;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import java.io.IOException;
+
+@Component
+public class OpenTelemetryMDCFilter extends OncePerRequestFilter {
+
+    @Value("${spring.application.name}")
+    private String serviceName;
+
+    @Override
+    protected void doFilterInternal(HttpServletRequest request,
+                                    HttpServletResponse response,
+                                    FilterChain filterChain)
+            throws ServletException, IOException {
+        Span span = GlobalOpenTelemetry.getTracer(serviceName)
+                .spanBuilder(request.getRequestURI())
+                .startSpan();
+        try (var scope = span.makeCurrent()) {
+            MDC.put("traceId", span.getSpanContext().getTraceId());
+            filterChain.doFilter(request, response);
+        } finally {
+            MDC.clear();
+            span.end();
+        }
+    }
+}

+ 1 - 0
commons/src/main/java/com/jzg/commons/core/base/BaseController.java

@@ -43,6 +43,7 @@ public class BaseController {
      */
     private void valiedToken(String token){
         if (Objects.isNull(token) || Objects.isNull(redissonClient.getBucket(token).get())) {
+            log.info("登录信息过期。 token=[{}]",token);
             throw new TokenExpireException("用户登录信息过期");
         }
     }

+ 1 - 0
commons/src/main/java/com/jzg/commons/core/base/StateResult.java

@@ -1,4 +1,5 @@
 package com.jzg.commons.core.base;
+
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 2 - 0
commons/src/main/java/com/jzg/commons/entity/agreement/po/PtlAgreementAttribution.java

@@ -1,4 +1,5 @@
 package com.jzg.commons.entity.agreement.po;
+
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -12,6 +13,7 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
+
 /**
  * @author quchen
  * @date 2025/2/18 11:09

+ 1 - 4
commons/src/main/java/com/jzg/commons/entity/agreement/po/PtlInsAttributionTemplate.java

@@ -5,20 +5,17 @@ import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler;
 import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
 import com.jzg.commons.entity.agreement.vo.PtlInsAttributionTemplateSaveVo;
 import com.jzg.commons.util.idgen.IdGenerate;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
-import org.apache.ibatis.type.JdbcType;
-
 import java.io.Serializable;
 
 /**
  * 保险公司归属信息模板配置
  *
- * @TableName ptl_ins_attribution_template
+ * ptl_ins_attribution_template
  */
 @Data
 @Schema(description = "保险公司归属信息模板配置")

+ 0 - 2
commons/src/main/java/com/jzg/commons/entity/dto/JyxConfigAdd.java

@@ -5,8 +5,6 @@ import com.jzg.commons.entity.po.JyxBlame;
 import com.jzg.commons.entity.po.jyxSetting;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotEmpty;
-import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.math.BigDecimal;

+ 49 - 0
commons/src/main/java/com/jzg/commons/entity/dto/QrBarcodeConfigAddVO.java

@@ -0,0 +1,49 @@
+package com.jzg.commons.entity.dto;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+
+@Data
+@Schema(description = "二维码配置新增")
+public class QrBarcodeConfigAddVO {
+
+    /**
+     * 保险公司id
+     */
+    @Schema(description = "保险公司id")
+    @NotBlank(message = "保险公司id不能为空")
+    private String companyId;
+
+
+    /**
+     * 保险公司代码
+     */
+    @Schema(description = "保险公司代码")
+    @NotBlank(message = "保险公司代码不能为空")
+    private String companyCode;
+
+    /**
+     * 保险公司名称简称
+     */
+    @Schema(description = "保险公司名称简称")
+    @NotBlank(message = "保险公司名称简称不能为空")
+    private String companyName;
+
+    /**
+     * 类型   0:url   1:base码   2:h5
+     */
+    @Schema(description = "类型 0:url   1:base码   2:h5")
+    @NotBlank(message = "类型不能为空")
+    private String type;
+
+    /**
+     * 请求类型 1:api 2:python
+     */
+    @Schema(description = "请求类型 1:api 2:python")
+    @NotBlank(message = "请求类型不能为空")
+    private String apiType;
+
+
+}

+ 3 - 1
commons/src/main/java/com/jzg/commons/entity/finance/vo/InvoicingVo.java

@@ -15,7 +15,7 @@ public class InvoicingVo {
     /**
      * 应收订单号
      */
-    @Schema(description = "应收订单号")
+    @Schema(description = "保司结算手续费ids")
     private List<String> incomeIds;
 
     @Schema(description = "开票的保司id")
@@ -36,4 +36,6 @@ public class InvoicingVo {
 
     @Schema(description = "税点")
     private String taxPoint;
+    @Schema(description = "应收订单号")
+    private List<String> orderNos;
 }

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

@@ -1,4 +1,5 @@
 package com.jzg.commons.entity.po;
+
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;

+ 2 - 1
commons/src/main/java/com/jzg/commons/entity/po/SysRole.java

@@ -34,8 +34,9 @@ public class SysRole extends BaseModel {
     @TableField(exist = false)
     private String userId;
 
-    public SysRole(String systemCode){
+    public SysRole(String systemCode,String deptId){
         this.systemCode = systemCode;
         this.name = "管理员";
+        this.deptId = deptId;
     }
 }

+ 23 - 18
commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteEchoVo.java

@@ -369,27 +369,32 @@ public class QuoteEchoVo extends QuoteVo {
 
         //费用处理
         this.costs = new OrdersCostsVo();
-        this.costs.setCiPremium(insOrdersVo.getInsOrdersCosts().getJqPremium());
-        this.costs.setBiPremium(insOrdersVo.getInsOrdersCosts().getSyPremium());
-        this.costs.setNiPremium(insOrdersVo.getInsOrdersCosts().getJyPremium());
-        this.costs.setVvTax(insOrdersVo.getInsOrdersCosts().getTaxPremium());
-        this.costs.setSumPremium(insOrdersVo.getInsOrdersCosts().getSumPremium());
-        this.costs.setCiRatio(insOrdersVo.getInsOrdersCosts().getJqRatio());
-        this.costs.setBiRatio(insOrdersVo.getInsOrdersCosts().getSyRatio());
+        if(insOrdersVo.getInsOrdersCosts() != null){
+            this.costs.setCiPremium(insOrdersVo.getInsOrdersCosts().getJqPremium());
+            this.costs.setBiPremium(insOrdersVo.getInsOrdersCosts().getSyPremium());
+            this.costs.setNiPremium(insOrdersVo.getInsOrdersCosts().getJyPremium());
+            this.costs.setVvTax(insOrdersVo.getInsOrdersCosts().getTaxPremium());
+            this.costs.setSumPremium(insOrdersVo.getInsOrdersCosts().getSumPremium());
+            this.costs.setCiRatio(insOrdersVo.getInsOrdersCosts().getJqRatio());
+            this.costs.setBiRatio(insOrdersVo.getInsOrdersCosts().getSyRatio());
+        }
 
         //保单号信息
         this.policy = new OrdersPolicyVo();
-        this.policy.setCiApplyNumber(insOrdersVo.getInsOrdersPolicy().getJqApplyNo());
-        this.policy.setCiPolicyNumber(insOrdersVo.getInsOrdersPolicy().getJqPolicyNo());
-        this.policy.setBiApplyNumber(insOrdersVo.getInsOrdersPolicy().getSyApplyNo());
-        this.policy.setBiPolicyNumber(insOrdersVo.getInsOrdersPolicy().getSyPolicyNo());
-        this.policy.setNiApplyNumber(insOrdersVo.getInsOrdersPolicy().getJyApplyNo());
-        this.policy.setNiPolicyNumber(insOrdersVo.getInsOrdersPolicy().getJyPolicyNo());
-        this.policy.setCiPolicyUrl(insOrdersVo.getInsOrdersPdfUrl().getJqUrl());
-        this.policy.setBiPolicyUrl(insOrdersVo.getInsOrdersPdfUrl().getSyUrl());
-        this.policy.setNiPolicyUrl(insOrdersVo.getInsOrdersPdfUrl().getJyUrl());
-        this.policy.setCiPolicySignUrl(insOrdersVo.getInsOrdersPdfUrl().getJqSignUrl());
-
+        if(insOrdersVo.getInsOrdersPolicy() != null){
+            this.policy.setCiApplyNumber(insOrdersVo.getInsOrdersPolicy().getJqApplyNo());
+            this.policy.setCiPolicyNumber(insOrdersVo.getInsOrdersPolicy().getJqPolicyNo());
+            this.policy.setBiApplyNumber(insOrdersVo.getInsOrdersPolicy().getSyApplyNo());
+            this.policy.setBiPolicyNumber(insOrdersVo.getInsOrdersPolicy().getSyPolicyNo());
+            this.policy.setNiApplyNumber(insOrdersVo.getInsOrdersPolicy().getJyApplyNo());
+            this.policy.setNiPolicyNumber(insOrdersVo.getInsOrdersPolicy().getJyPolicyNo());
+        }
+        if(insOrdersVo.getInsOrdersPdfUrl() != null){
+            this.policy.setCiPolicyUrl(insOrdersVo.getInsOrdersPdfUrl().getJqUrl());
+            this.policy.setBiPolicyUrl(insOrdersVo.getInsOrdersPdfUrl().getSyUrl());
+            this.policy.setNiPolicyUrl(insOrdersVo.getInsOrdersPdfUrl().getJyUrl());
+            this.policy.setCiPolicySignUrl(insOrdersVo.getInsOrdersPdfUrl().getJqSignUrl());
+        }
 
         //评分信息
         this.scoreVo = new QuoteResultsVo.ScoreVo();

+ 3 - 2
commons/src/main/java/com/jzg/commons/entity/scheme/vo/PtlSchemeSaveVo.java

@@ -17,6 +17,7 @@ import jakarta.validation.constraints.NotNull;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
 import org.springframework.beans.BeanUtils;
 
 import java.util.ArrayList;
@@ -62,11 +63,11 @@ public class PtlSchemeSaveVo {
         private String schemeType;
 
         @NotBlank(message = "方案名称不能为空")
-        @Max(message = "方案名称不能超过50个字",value = 50)
+        @Length(message = "方案名称不能超过50个字",max = 50)
         @Schema(description = "方案名称")
         private String schemeName;
 
-        @Max(message = "方案描述不能超过500个字",value = 500)
+        @Length(message = "方案描述不能超过500个字",max = 500)
         @Schema(description = "方案描述")
         private String description;
 

+ 12 - 12
commons/src/main/java/com/jzg/commons/exception/GlobalExceptionHandler.java

@@ -1,9 +1,7 @@
 package com.jzg.commons.exception;
 
-import cn.hutool.core.util.StrUtil;
 import com.jzg.commons.core.page.HttpResult;
 import jakarta.servlet.http.HttpServletRequest;
-import jakarta.validation.ConstraintViolation;
 import jakarta.validation.ConstraintViolationException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -17,7 +15,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import java.sql.SQLIntegrityConstraintViolationException;
 import java.util.List;
-import java.util.Set;
 
 @ControllerAdvice
 public class GlobalExceptionHandler {
@@ -34,19 +31,19 @@ public class GlobalExceptionHandler {
 
     @ExceptionHandler(value = ValidateException.class)
     @ResponseBody
-    public HttpResult ValidateException(ValidateException validateException) {
+    public HttpResult validateException(ValidateException validateException) {
         return HttpResult.error(Integer.parseInt(validateException.getCode()), validateException.getMessage());
     }
 
     @ExceptionHandler(value = NoneException.class)
     @ResponseBody
-    public HttpResult NoneException(NoneException noneException) {
+    public HttpResult noneException(NoneException noneException) {
         return HttpResult.error(Integer.parseInt(noneException.getCode()), noneException.getMessage());
     }
 
     @ExceptionHandler(value = TokenExpireException.class)
     @ResponseBody
-    public HttpResult TokenExpireException(TokenExpireException tokenExpireException) {
+    public HttpResult tokenExpireException(TokenExpireException tokenExpireException) {
         return HttpResult.error(Integer.parseInt(tokenExpireException.getCode()), tokenExpireException.getMessage());
     }
 
@@ -85,12 +82,15 @@ public class GlobalExceptionHandler {
      * @param e 异常
      * @return
      */
-//    @ExceptionHandler(value = Exception.class)
-//    @ResponseBody
-//    public HttpResult exceptionGet(Exception e) {
-//        LOGGER.error("【系统异常】{}", e);
-//        return HttpResult.error(500, "程序异常,请联系管理员");
-//    }
+    @ExceptionHandler(Exception.class)
+    @ResponseBody
+    public HttpResult handleException(HttpServletRequest request, Exception e) {
+        String uri = request.getRequestURI();
+        String method = request.getMethod();
+
+        LOGGER.error("【系统异常】接口 {} {} 出错", method, uri, e);
+        return HttpResult.error(500, "程序异常,请联系管理员");
+    }
 
 
 }

+ 1 - 0
consoleStatistics/pom.xml

@@ -116,6 +116,7 @@
                             <Class-Path>config/</Class-Path>
                         </manifestEntries>
                     </archive>
+                    <outputDirectory>${project.parent.basedir}/target</outputDirectory>
                 </configuration>
             </plugin>
             <plugin>

+ 3 - 4
consoleStatistics/src/main/java/com/jzg/console/controller/ReportUploadExcelTaskController.java

@@ -15,7 +15,6 @@ 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;
@@ -23,9 +22,9 @@ import java.nio.charset.StandardCharsets;
 
 
 /**
- *  @version
- *  @author: hxl
- *  @Date: 2025/9/16 11:15
+ *  @version 1.0
+ *  @author hxl
+ *  @date 2025/9/16 11:15
  *  @Description: 导出任务中心
  */
 @Slf4j

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

@@ -1,5 +1,6 @@
 package com.jzg.console.service.impl;
 
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -10,6 +11,8 @@ 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.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 /**
@@ -21,6 +24,8 @@ import org.springframework.stereotype.Service;
 public class ReportUploadExcelTaskServiceImpl extends ServiceImpl<ReportUploadExcelTaskMapper, ReportUploadExcelTask>
     implements ReportUploadExcelTaskService {
 
+    private static final Logger log = LoggerFactory.getLogger(ReportUploadExcelTaskServiceImpl.class);
+
     /**
      *  @version
      *  @author: hxl
@@ -29,6 +34,7 @@ public class ReportUploadExcelTaskServiceImpl extends ServiceImpl<ReportUploadEx
      */
     @Override
     public IPage<ReportUploadExcelTaskDto> getPageTaskList(ReportUploadExcelTaskVo reportUploadExcelTaskVo) {
+        log.info("查询:reportUploadExcelTaskVo=[{}]", JSONUtil.toJsonStr(reportUploadExcelTaskVo));
         if (StringUtils.isBlank(reportUploadExcelTaskVo.getUploadUserId())) {
             throw new SystemException("用户id不能为空");
         }

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

@@ -1,5 +1,3 @@
-server:
-  port: 8086
 spring:
   cloud:
     nacos:

+ 34 - 0
consoleStatistics/src/main/resources/application-prod.yml

@@ -0,0 +1,34 @@
+spring:
+  cloud:
+    nacos:
+      server-addr: 172.24.144.227:8848
+      username: nacos
+      password: AnrNjNn6zCS3QdIy
+      config:
+        file-extension: yaml
+        namespace: f9ca025f-b5df-47a9-b3f6-15bcbad3ebd3
+        group: DEFAULT_GROUP
+      discovery:
+        namespace: f9ca025f-b5df-47a9-b3f6-15bcbad3ebd3
+  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
+

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

@@ -1,3 +1,5 @@
+server:
+  port: 8086
 spring:
   application:
     name: jzg-console

+ 1 - 1
gateway/src/main/java/com/jzg/filter/AuthFilter.java

@@ -35,7 +35,7 @@ public class AuthFilter implements GlobalFilter {
                 // 发生异常时记录日志(ERROR级别)
                 .doOnError(e -> {
                     long cost = Duration.between(Instant.now(), Instant.now()).toMillis();
-                    log.error("【Gateway请求异常】 请求地址:{} , 耗时: {}ms, 异常信息:{} ",path,cost, e);
+                    log.error("【Gateway请求异常】 请求地址:{} , 耗时: {}ms, 异常信息",path,cost, e);
                 });
     }
 

+ 5 - 0
gateway/src/main/resources/application-dev.yml

@@ -1,4 +1,9 @@
 spring:
+  redis:
+    redisson:
+      address: redis://192.168.5.250:6379
+      password: 123456
+      database: 0
   minio:
     url: http://192.168.0.250:9000
     access-key: v7Zb8XhyLcYNcSHlxvyK

+ 14 - 1
gateway/src/main/resources/application-prod.yml

@@ -1,4 +1,9 @@
 spring:
+  redis:
+    redisson:
+      address: redis://xxx:xxx
+      password: xxx
+      database: 0
   minio:
     url: http://172.24.144.227:9000
     access-key: v7Zb8XhyLcYNcSHlxvyK
@@ -17,7 +22,6 @@ spring:
         group: DEFAULT_GROUP
       discovery:
         namespace: f9ca025f-b5df-47a9-b3f6-15bcbad3ebd3
-
     gateway:
       routes:
         - id: auth_route
@@ -94,6 +98,8 @@ spring:
                   - /accountCard/**
                   - /amountAuditing/**
                   - /newCarJudgeRules/**
+                  - /sysDistributionSetting/**
+                  - /organization/wechat/**
 
         - id: summary_route
           uri: http://172.24.144.227:9898/
@@ -145,3 +151,10 @@ spring:
                   - /partner/rule/**
                   - /partner/**
                   - /purchaseRecord/**
+
+
+  redis:
+    redisson:
+      address: redis://172.24.144.227:6379
+      password: 123456
+      database: 0

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

@@ -1,4 +1,9 @@
 spring:
+  redis:
+    redisson:
+      address: redis://xxx:xxx
+      password: xxx
+      database: 0
   minio:
     url: http://test-api.baoxianzhanggui.com
     access-key: v7Zb8XhyLcYNcSHlxvyK

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

@@ -8,14 +8,14 @@ spring:
     allow-bean-definition-overriding: true
   application:
     name: jzg-gateway
-  redis:
-    redisson:
-#      address: redis://172.24.144.227:6379
+#  redis:
+#    redisson:
+##      address: redis://172.24.144.227:6379
+##      password: 123456
+##      database: 0
+#
+#      address: redis://192.168.5.250:6379
 #      password: 123456
 #      database: 0
 
-      address: redis://192.168.5.250:6379
-      password: 123456
-      database: 0
-
 isEncrypted: false

+ 22 - 0
gateway/src/main/resources/logback-spring.xml

@@ -0,0 +1,22 @@
+<configuration>
+
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg traceId=%X{traceId}%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="GRAYLOG" class="de.siegmar.logbackgelf.GelfTcpAppender">
+        <graylogHost>192.168.5.250</graylogHost>
+<!--        <graylogHost>172.24.144.227</graylogHost>-->
+        <graylogPort>12201</graylogPort>
+        <includeMdcData>true</includeMdcData>
+        <extractStackTrace>true</extractStackTrace>
+    </appender>
+
+    <root level="INFO">
+        <appender-ref ref="STDOUT"/>
+        <appender-ref ref="GRAYLOG"/>
+    </root>
+
+</configuration>

+ 0 - 1
partner/pom.xml

@@ -24,7 +24,6 @@
             <artifactId>commons</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
-
         <!-- 负载均衡器 -->
         <dependency>
             <groupId>org.springframework.cloud</groupId>

+ 2 - 1
partner/src/main/java/com/jzg/client/OrganizationClient.java

@@ -5,7 +5,6 @@ import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.po.SysUserJzgInfo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestParam;
 
 @FeignClient(name = "jzg-organization")
@@ -23,4 +22,6 @@ public interface OrganizationClient {
     @GetMapping(value = "userInfo/selectByUserIdInfo")
     SysUserJzgInfo selectByUserIdInfo(@RequestParam String userId);
 
+    @GetMapping("userInfo/getPartUserInfoByMobile")
+    SysUserJzgInfo getPartUserInfoByMobile(@RequestParam String mobile);
 }

+ 3 - 6
partner/src/main/java/com/jzg/controller/DistributionController.java

@@ -2,27 +2,24 @@ package com.jzg.controller;
 
 
 import cn.hutool.extra.spring.SpringUtil;
-import com.jzg.commons.core.base.BaseController;
+import com.alibaba.fastjson2.JSONObject;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.vo.DistributionVo;
 import com.jzg.utils.DistributionUtils;
 import com.jzg.utils.UpdateRatioUtils;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 @Slf4j
 @RestController
 @RequestMapping("/partnerDistribution")
-public class DistributionController extends BaseController {
-
-    @Autowired
-    private BaseController baseController;
+public class DistributionController{
 
 
     @PostMapping("generateDistributionData")
     public HttpResult distribution(@RequestBody DistributionVo vo) {
         try {
+            log.info("入参:{}", JSONObject.toJSONString(vo));
             DistributionUtils.newSaveFeeInfo(vo.getInsOrders(), vo.getOrdersCosts(), vo.getLicenseNo());
         } catch (Exception e) {
             e.printStackTrace();

+ 3 - 3
partner/src/main/java/com/jzg/controller/ExtractFeeController.java

@@ -12,7 +12,6 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
-
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
@@ -32,9 +31,10 @@ public class ExtractFeeController {
 
 
     @GetMapping("save")
-    public void distribution(@RequestParam String orderNo){
+    public void distribution(@RequestParam String orderNo,@RequestParam String orderId){
         List<PartnerPremiumDetails> partnerPremiumDetails = partnerPremiumDetailsMapper.selectList(new LambdaQueryWrapper<PartnerPremiumDetails>()
-                .eq(PartnerPremiumDetails::getCompanyId,orderNo));
+                        .eq(PartnerPremiumDetails::getOrderno,orderNo)
+                .eq(PartnerPremiumDetails::getCompanyId,orderId));
         for (PartnerPremiumDetails detail : partnerPremiumDetails) {
             PartnerPartnerAccount account1 = partnerPartnerAccountMapper.selectOne(new LambdaQueryWrapper<PartnerPartnerAccount>()
                     .eq(PartnerPartnerAccount::getUserId, detail.getUserId()).eq(PartnerPartnerAccount::getGrade,detail.getSource()));

+ 7 - 7
partner/src/main/java/com/jzg/utils/DistributionUtils.java

@@ -4,7 +4,6 @@ package com.jzg.utils;
 import cn.hutool.extra.spring.SpringUtil;
 import com.esotericsoftware.minlog.Log;
 import com.jzg.client.OrganizationClient;
-import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCosts;
 import com.jzg.commons.entity.po.SysUserJzgInfo;
@@ -13,6 +12,7 @@ import com.jzg.entity.PartnerUser;
 import com.jzg.mapper.PartnerPremiumDetailsMapper;
 import com.jzg.service.PartnerUserService;
 import jakarta.annotation.PostConstruct;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -24,6 +24,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
+@Slf4j
 @Component
 public class DistributionUtils {
     private static final Integer[] VALID_GRADES = {1, 2, 3, 4};
@@ -64,12 +65,11 @@ public class DistributionUtils {
                 || Objects.isNull(insOrders.getRealQuoteUserId())) {
             throw new IllegalArgumentException("入参不能为空,订单信息与用户ID必须有效");
         }
-        HttpResult<SysUserJzgInfo> userInfoById = organizationClient.getUserInfoById(insOrders.getRealQuoteUserId());
-        if (200 != userInfoById.getCode()){
-            throw new RuntimeException("获取用户信息异常");
+        SysUserJzgInfo userInfoById = organizationClient.getPartUserInfoByMobile(insOrders.getRealQuoteUserId());
+        if (Objects.isNull(userInfoById)){
+            log.info("当前出单员不是合伙人用户:{}");
         }
-        SysUserJzgInfo data = userInfoById.getData();
-        String userId = data.getId();
+        String userId = userInfoById.getId();
         RequestContextUtil.setStringParam(userId);
         String userId3 = CalculateCommissionUtils.querySuperiorAndSubordinate(userId, GRADE_3);
         String userId4 = CalculateCommissionUtils.querySuperiorAndSubordinate(userId, GRADE_4);
@@ -125,7 +125,7 @@ public class DistributionUtils {
         details.setIssuerId(userId);
         details.setIssuerName("");
         details.setOrderno(insOrders.getQuoteNo());
-        details.setCompanyId(insOrders.getCompanyId());
+        details.setCompanyId(insOrders.getId());
         details.setDeptId(partnerUser.getDeptId());
         details.setLicenseno(licenseNo);
         details.setSumpremium(ordersCosts.getSumPremium());

+ 0 - 2
partner/src/main/resources/application-dev.yml

@@ -1,5 +1,3 @@
-server:
-  port: 8087
 spring:
   cloud:
     nacos:

+ 0 - 2
partner/src/main/resources/application-prod.yml

@@ -1,5 +1,3 @@
-server:
-  port: 8087
 spring:
   cloud:
     nacos:

+ 0 - 2
partner/src/main/resources/application-test.yml

@@ -1,5 +1,3 @@
-server:
-  port: 9083
 spring:
   cloud:
     nacos:

+ 3 - 1
partner/src/main/resources/application.yml

@@ -1,3 +1,5 @@
+server:
+  port: 8087
 spring:
   application:
     name: jzg-partner
@@ -5,7 +7,7 @@ spring:
     allow-circular-references: true
     allow-bean-definition-overriding: true
   profiles:
-    active: dev
+    active: prod
 
 mybatis-plus:
   mapper-locations: classpath*:/mapper/*Mapper.xml

+ 10 - 23
partner/src/main/resources/logback-spring.xml

@@ -1,35 +1,22 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
-    <!-- 定义 Graylog GELF appender -->
-<!--    <appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">-->
-<!--        &lt;!&ndash; Graylog server 的主机名或 IP 地址 &ndash;&gt;-->
-<!--        <graylogHost>192.168.0.250</graylogHost>-->
-<!--        &lt;!&ndash; Graylog 服务器端口,通常为 12201(UDP)或 12202(TCP) &ndash;&gt;-->
-<!--        <graylogPort>12201</graylogPort>-->
-<!--        &lt;!&ndash; 可选项:指定协议,默认使用 UDP &ndash;&gt;-->
-<!--        <transport>UDP</transport>-->
-<!--        &lt;!&ndash; 发送日志时是否压缩 &ndash;&gt;-->
-<!--        <compress>true</compress>-->
-<!--        &lt;!&ndash; 是否在 GELF 消息中加入时间戳 &ndash;&gt;-->
-<!--        <includeTimestamp>true</includeTimestamp>-->
-<!--        &lt;!&ndash; 日志内容最大字节数 &ndash;&gt;-->
-<!--        <maxMessageSize>32768</maxMessageSize>-->
-<!--        &lt;!&ndash; 设置自定义字段 &ndash;&gt;-->
-<!--        <additionalFields>-->
-<!--        </additionalFields>-->
-<!--    </appender>-->
 
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
         <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg traceId=%X{traceId}%n</pattern>
         </encoder>
     </appender>
 
+    <appender name="GRAYLOG" class="de.siegmar.logbackgelf.GelfTcpAppender">
+        <graylogHost>192.168.5.250</graylogHost>
+<!--        <graylogHost>172.24.144.227</graylogHost>-->
+        <graylogPort>12201</graylogPort>
+        <includeMdcData>true</includeMdcData>
+        <extractStackTrace>true</extractStackTrace>
+    </appender>
 
     <root level="INFO">
         <appender-ref ref="STDOUT"/>
+        <appender-ref ref="GRAYLOG"/>
     </root>
-<!--    <root name="com.jzg" level="DEBUG">-->
-<!--        <appender-ref ref="GELF"/>-->
-<!--    </root>-->
+
 </configuration>

+ 10 - 9
partner/src/main/resources/mapper/PartnerUserMapper.xml

@@ -891,15 +891,16 @@ SELECT
 
     <select id="selectNumber" resultType="java.lang.Integer">
         SELECT COUNT(1) FROM (
-             SELECT
-                 p.user_id,
-                 p.grade,
-                 p.referrer_id,
-                 u.`status`,
-        ( SELECT t.partner_review_time FROM sys_user_jzg_info_salesman t WHERE t.sys_user_jzg_info_id = u.id ORDER BY t.partner_review_time LIMIT 1 )  approve_time
-            FROM partner_user p
-        	LEFT JOIN sys_user_jzg_info u ON u.id = p.user_id
-        WHERE p.referrer_id = #{userId} AND p.grade = #{number}
+            SELECT
+            p.user_id,
+            p.grade,
+            p.referrer_id,
+            sa.partner_status,
+            sa.partner_review_time AS approve_time
+            FROM
+            partner_user p
+            LEFT JOIN sys_user_jzg_info_salesman sa ON p.user_id = sa.sys_user_jzg_info_id
+        WHERE  sa.type_attr = 3 AND sa.partner_status = 3 AND p.referrer_id = #{userId} AND p.grade = #{number}
                 <if test="param != null and param != ''">
                     AND p.user_id != #{param}
                 </if>

+ 9 - 1
platform/src/main/java/com/jzg/controller/QrBarcodeController.java

@@ -1,10 +1,12 @@
 package com.jzg.controller;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.jzg.commons.aop.OperatorTrajectory;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.QrBarcodeConfigAdd;
+import com.jzg.commons.entity.dto.QrBarcodeConfigAddVO;
 import com.jzg.commons.entity.dto.QrBarcodeConfigEnd;
 import com.jzg.commons.entity.dto.QrBarcodeConfigParam;
 import com.jzg.commons.entity.po.QrBarcodeConfig;
@@ -13,6 +15,8 @@ import com.jzg.service.QrBarcodeService;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.validation.Valid;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -24,6 +28,7 @@ import org.springframework.web.bind.annotation.*;
 public class QrBarcodeController {
 
 
+    private static final Logger log = LoggerFactory.getLogger(QrBarcodeController.class);
     @Autowired
     private QrBarcodeService qrBarcodeService;
 
@@ -44,7 +49,10 @@ public class QrBarcodeController {
 
     @PostMapping("/save")
     @Schema(description = "二维码配置新增")
-    public HttpResult save(@Valid  @RequestBody QrBarcodeConfigAdd barcodeConfigAdd) {
+    public HttpResult save(@Valid  @RequestBody QrBarcodeConfigAddVO barcodeConfigAddVO) {
+        log.info("保险公司的支付宝配置保存。 barcodeConfigAddVO=[{}]", JSONUtil.toJsonStr(barcodeConfigAddVO));
+        QrBarcodeConfigAdd barcodeConfigAdd = new QrBarcodeConfigAdd();
+        BeanUtil.copyProperties(barcodeConfigAddVO, barcodeConfigAdd);
         LambdaQueryWrapper<QrBarcodeConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(QrBarcodeConfig::getCompanyCode, barcodeConfigAdd.getCompanyCode());
         AssertionUtils.isFail(qrBarcodeService.count(lambdaQueryWrapper) > 0, "保险公司编码重复");

+ 0 - 2
platform/src/main/java/com/jzg/controller/SysSystemController.java

@@ -228,6 +228,4 @@ public class SysSystemController {
     public HttpResult getUserCompany(String systemCode) {
         return HttpResult.ok(sysSystemService.getUserCompany(systemCode));
     }
-    //endregion
-
 }

+ 9 - 1
platform/src/main/java/com/jzg/mapper/PtlAgreementMapper.java

@@ -9,5 +9,13 @@ import java.util.List;
 @Mapper
 public interface PtlAgreementMapper extends BaseMapper<PtlAgreement> {
 
-    public List<PtlAgreement> getUserAgreementByCompanyIds(String deptId, List<String> companyIds);
+    /**
+     * 查询租户下可用的协议
+     *
+     * @param deptId 租户序号
+     * @param companyIds 保司序号集
+     * @author lipf
+     * @date 2026/3/31 9:55
+     */
+    List<PtlAgreement> getUserAgreementByCompanyIds(String deptId, List<String> companyIds);
 }

+ 0 - 1
platform/src/main/java/com/jzg/mapper/PtlAgreementUrlMapper.java

@@ -3,7 +3,6 @@ package com.jzg.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
-import com.jzg.commons.entity.agreement.vo.PtlAgreementAttributionQueryVo;
 import com.jzg.commons.entity.agreement.vo.PtlAgreementUrlVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 5 - 4
platform/src/main/java/com/jzg/service/PtlAgreementService.java

@@ -9,10 +9,11 @@ public interface PtlAgreementService extends IService<PtlAgreement> {
 
     /**
      * 根据用户的机构与保司 获取可报价的协议
-     * @param deptId
-     * @param companyIds
-     * @return
+     *
+     * @param deptId 租户编码
+     * @param companyIds 保司id信息
+     * @return List<PtlAgreement> 不同保司的协议
      */
-    public List<PtlAgreement> getUserAgreementByCompanyIds(String deptId, List<String> companyIds);
+    List<PtlAgreement> getUserAgreementByCompanyIds(String deptId, List<String> companyIds);
 
 }

+ 2 - 9
platform/src/main/java/com/jzg/service/SysSystemService.java

@@ -8,7 +8,6 @@ import com.jzg.commons.entity.dto.SysSystemParam;
 import com.jzg.commons.entity.po.EsmInsCompany;
 import com.jzg.commons.entity.po.SysConfig;
 import com.jzg.commons.entity.po.SysSystem;
-import com.jzg.commons.entity.po.SysSystemPerms;
 import com.jzg.commons.entity.system.vo.SysSystemBusPermsVo;
 import com.jzg.commons.entity.vo.SysSystemPermsVo;
 import com.jzg.commons.entity.vo.SysSystemVo;
@@ -157,10 +156,6 @@ public interface SysSystemService extends IService<SysSystem> {
      */
     boolean deleteByIds(List<String> ids);
 
-
-
-    //region 租户业务权限配置
-
     /**
      * 保存租户业务权限
      * @param sysSystemBusPermsVo
@@ -177,10 +172,8 @@ public interface SysSystemService extends IService<SysSystem> {
 
     /**
      * 根据租户配置获取保司列表
-     * @param systemCode
-     * @return
+     * @param systemCode 租户编码
+     * @return List<EsmInsCompany>
      */
     List<EsmInsCompany> getUserCompany(String systemCode);
-
-    //endregion
 }

+ 6 - 1
platform/src/main/java/com/jzg/service/impl/EsmInsCompanyServiceImpl.java

@@ -1,6 +1,7 @@
 package com.jzg.service.impl;
 
 
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
@@ -20,12 +21,13 @@ import com.jzg.mapper.EsmInsCompanyMapper;
 import com.jzg.mapper.EsmInsCompanyTenantSortMapper;
 import com.jzg.service.EsmInsCompanyService;
 import com.jzg.service.SysSystemService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
-import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -36,6 +38,8 @@ import java.util.stream.Collectors;
 public class EsmInsCompanyServiceImpl extends ServiceImpl<EsmInsCompanyMapper, EsmInsCompany>
         implements EsmInsCompanyService {
 
+    private static final Logger log = LoggerFactory.getLogger(EsmInsCompanyServiceImpl.class);
+
 //    @Override
 //    public EsmInsCompany isOpen(String company) {
 //        LambdaQueryWrapper<EsmInsCompany> wrapper = new LambdaQueryWrapper<>();
@@ -57,6 +61,7 @@ public class EsmInsCompanyServiceImpl extends ServiceImpl<EsmInsCompanyMapper, E
 
     @Override
     public List<EsmInsCompanyVo> findTree(EsmInsCompanyReq req) {
+        log.info("查询保险公司信息:req=[{}]", JSONUtil.toJsonStr(req));
         List<EsmInsCompanyVo> allList  = baseMapper.findTree(req);
         if (CollectionUtils.isEmpty(allList)){
             return new ArrayList<>(0);

+ 3 - 8
platform/src/main/java/com/jzg/service/impl/JyxConfigServiceImpl.java

@@ -14,7 +14,6 @@ import com.jzg.commons.entity.po.JyxConfig;
 import com.jzg.commons.entity.po.jyxSetting;
 import com.jzg.commons.entity.vo.JyxConfigVo;
 import com.jzg.commons.util.AssertionUtils;
-import com.jzg.commons.util.ConvertUtils;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.constants.ConstantsParent;
 import com.jzg.mapper.JyxConfigMapper;
@@ -27,7 +26,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
-import org.springframework.util.ObjectUtils;
 
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
@@ -177,13 +175,11 @@ public class JyxConfigServiceImpl extends ServiceImpl<JyxConfigMapper, JyxConfig
                     .filter(vo -> !ConstantsParent.PARENT_ID_ROOT.equals(vo.getParentId()))
                     .collect(Collectors.groupingBy(vo -> String.valueOf(vo.getParentId()), Collectors.mapping(Function.identity(), Collectors.toList())));
             List<JyxConfigVo> configVos = jyxConfigVos.stream().filter(parentConfig -> ConstantsParent.PARENT_ID_ROOT.equals(parentConfig.getParentId())).collect(Collectors.toList());
-            configVos.forEach(parentConfig -> {
-                parentConfig.setChildren(childrenMap.getOrDefault(String.valueOf(parentConfig.getId()), Collections.emptyList()));
-            });
+            configVos.forEach(parentConfig -> parentConfig.setChildren(childrenMap.getOrDefault(String.valueOf(parentConfig.getId()), Collections.emptyList())));
             return configVos;
         } catch (Exception e) {
             // 记录日志或进行其他异常处理
-            e.printStackTrace();
+            log.error("执行jyxList方法异常",e);
             return Collections.emptyList();
         }
     }
@@ -226,8 +222,7 @@ public class JyxConfigServiceImpl extends ServiceImpl<JyxConfigMapper, JyxConfig
 
     @Override
     public List<JyxConfigVo> selectMainInsurance(String company) {
-        List<JyxConfigVo> jyxConfigVos = jyxConfigMapper.selectMainInsurance(company);
-        return jyxConfigVos;
+        return jyxConfigMapper.selectMainInsurance(company);
     }
 
 

+ 16 - 1
platform/src/main/java/com/jzg/service/impl/PtlAgreementServiceImpl.java

@@ -1,9 +1,12 @@
 package com.jzg.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.entity.po.PtlAgreement;
 import com.jzg.mapper.PtlAgreementMapper;
 import com.jzg.service.PtlAgreementService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -15,8 +18,20 @@ import java.util.List;
 
 @Service
 public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, PtlAgreement> implements PtlAgreementService {
+
+    private static final Logger log = LoggerFactory.getLogger(PtlAgreementServiceImpl.class);
+
+    /**
+     * 根据用户的机构与保司 获取可报价的协议
+     *
+     * @param deptId 租户编码
+     * @param companyIds 保司id信息
+     * @return List<PtlAgreement> 不同保司的协议
+     */
     @Override
     public List<PtlAgreement> getUserAgreementByCompanyIds(String deptId, List<String> companyIds) {
-        return baseMapper.getUserAgreementByCompanyIds(deptId,companyIds);
+        List<PtlAgreement> userAgreementByCompanyIds = baseMapper.getUserAgreementByCompanyIds(deptId, companyIds);
+        log.info("租户[{}]匹配到[{}]个公司的[{}]个协议", deptId, CollUtil.size(companyIds), CollUtil.size(userAgreementByCompanyIds));
+        return userAgreementByCompanyIds;
     }
 }

+ 2 - 5
platform/src/main/java/com/jzg/service/impl/PtlAgreementUrlServiceImpl.java

@@ -3,9 +3,7 @@ package com.jzg.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.jzg.commons.entity.agreement.po.PtlAgreementAttribution;
 import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
-import com.jzg.commons.entity.agreement.po.PtlInsAttributionTemplate;
 import com.jzg.commons.entity.agreement.vo.PtlAgreementUrlVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.mapper.PtlAgreementUrlMapper;
@@ -52,14 +50,13 @@ public class PtlAgreementUrlServiceImpl extends ServiceImpl<PtlAgreementUrlMappe
         if (Objects.isNull(ptlAgreementUrl)) {
             return false;
         }
-        removeById(ptlAgreementUrl);
+        super.removeById(ptlAgreementUrl);
         return true;
     }
 
     @Override
     public Page<PtlAgreementUrl> getAgreementUrlList(Page page,PtlAgreementUrlVo ptlAgreementUrlVo) {
-        Page<PtlAgreementUrl> ptlAgreementUrlPage = ptlAgreementUrlMapper.getAgreementUrlList(page, ptlAgreementUrlVo);
-        return ptlAgreementUrlPage;
+        return ptlAgreementUrlMapper.getAgreementUrlList(page, ptlAgreementUrlVo);
     }
 
     @Override

+ 0 - 3
platform/src/main/java/com/jzg/service/impl/PtlInsAttributionTemplateServiceImpl.java

@@ -1,8 +1,6 @@
 package com.jzg.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.constants.PtlApiType;
 import com.jzg.commons.core.page.HttpResult;
@@ -88,7 +86,6 @@ public class PtlInsAttributionTemplateServiceImpl extends ServiceImpl<PtlInsAttr
                 AssertionUtils.isSucceed(b, "保险公司api请求插入失败");
             }
         });
-
         return true;
     }
 

+ 44 - 27
platform/src/main/java/com/jzg/service/impl/SysSystemServiceImpl.java

@@ -2,6 +2,7 @@ package com.jzg.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.convert.Convert;
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -27,6 +28,8 @@ import com.jzg.commons.util.StringUtils;
 import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.mapper.*;
 import com.jzg.service.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -45,6 +48,7 @@ import java.util.stream.Collectors;
 public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem>
     implements SysSystemService {
 
+    private static final Logger log = LoggerFactory.getLogger(SysSystemServiceImpl.class);
     @Autowired
     private SysRolePermsMapper sysRolePermsMapper;
     @Autowired
@@ -104,7 +108,7 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
         wrapper.eq(SysRolePerms::getRoleId,roles.get(0).getId());
         sysRolePermsMapper.delete(wrapper);
 
-        List<SysSystemPermsVo.PermsVo> permsList = JSON.parseArray(permsStr,SysSystemPermsVo.PermsVo.class);;
+        List<SysSystemPermsVo.PermsVo> permsList = JSON.parseArray(permsStr,SysSystemPermsVo.PermsVo.class);
         return this.savePerms(permsList, roles.get(0).getId());
     }
 
@@ -161,8 +165,7 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
                 .like(SysRole::getName,"管理员");
         List<SysRole> roles = sysRoleMapper.selectList(queryWrapper);
         List<SysRolePerms> sysSystemPerms = sysRolePermsMapper.getByRoleId(roles.get(0).getId());
-        List<String> permsIds = sysSystemPerms.stream().map(SysRolePerms::getPermsId).collect(Collectors.toList());
-        return permsIds;
+        return sysSystemPerms.stream().map(SysRolePerms::getPermsId).collect(Collectors.toList());
     }
 
     @Override
@@ -268,8 +271,7 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
 
     @Override
     public List<SysSystemVo> queryList(SysSystemParam param) {
-        List<SysSystemVo> sysList = baseMapper.queryList(param);
-        return sysList;
+        return baseMapper.queryList(param);
     }
 
     @Override
@@ -364,8 +366,9 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
         if(CollUtil.isNotEmpty(roles)){
             role = roles.get(0);
         }else{
-            role = new SysRole(sysSystem.getSysCode());
+            role = new SysRole(sysSystem.getSysCode(),sysDept.getId());
             sysRoleMapper.insert(role);
+            addDefaultRoles(sysSystem.getSysCode(),sysDept.getId());
         }
         // 关联用户角色
         SysUserRole userRole = new SysUserRole();
@@ -378,7 +381,7 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
                 .eq(SysConfig::getSystemCode, SystemConstants.SYSTEM_PLATFORM.getCode()));
         this.saveConfig(configs.get(0), sysSystem.getSysCode());
 
-        List<SysSystemPermsVo.PermsVo> permsList = JSON.parseArray(configs.get(0).getSysPerms(),SysSystemPermsVo.PermsVo.class);;
+        List<SysSystemPermsVo.PermsVo> permsList = JSON.parseArray(configs.get(0).getSysPerms(),SysSystemPermsVo.PermsVo.class);
 
         this.savePerms(permsList, role.getId());
         // 租户绑定管理员信息
@@ -386,6 +389,20 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
         this.updateById(sysSystem);
     }
 
+
+    public void addDefaultRoles(String sysCode,String deptId){
+        List<SysRole> defaultRoleList = Arrays.asList(
+                buildRole(sysCode, deptId,"业务员")
+        );
+        sysRoleMapper.insert(defaultRoleList);
+    }
+
+    private SysRole buildRole(String sysCode,String deptId, String roleName) {
+        SysRole role = new SysRole(sysCode,deptId);
+        role.setName(roleName);
+        return role;
+    }
+
     private boolean isExistsUserName(String username) {
         long count = sysUserMapper.selectCount(new LambdaQueryWrapper<SysUser>()
                 .eq(SysUser::getUsername, username)
@@ -473,13 +490,9 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
     @Transactional(rollbackFor = Exception.class)
     public void upAndDown(UpAndDownVo upAndDownVo) {
         if(YesNoEnum.YES.equals(upAndDownVo.getOpType())) {
-            upAndDownVo.getIds().forEach(id->{
-                reDeploy(Convert.toStr(id));
-            });
+            upAndDownVo.getIds().forEach(id-> reDeploy(Convert.toStr(id)));
         } else {
-            upAndDownVo.getIds().forEach(id->{
-                unDeploy(Convert.toStr(id));
-            });
+            upAndDownVo.getIds().forEach(id-> unDeploy(Convert.toStr(id)));
         }
     }
 
@@ -556,9 +569,7 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
         sysSystemBusPermsLinkMapper.delete(new LambdaQueryWrapper<SysSystemBusPermsLink>()
                 .eq(SysSystemBusPermsLink::getPermsId, sysSystemBusPermsVo.getId())
         );
-        sysSystemBusPermsLink.forEach(link->{
-            link.setPermsId(sysSystemBusPerms.getId());
-        });
+        sysSystemBusPermsLink.forEach(link-> link.setPermsId(sysSystemBusPerms.getId()));
         sysSystemBusPermsLinkMapper.insert(sysSystemBusPermsLink);
         return true;
     }
@@ -573,15 +584,18 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
 
         List<SysSystemBusPermsLink> sysSystemBusPermsLinks = sysSystemBusPermsLinkMapper.selectList(new LambdaQueryWrapper<SysSystemBusPermsLink>()
                 .eq(SysSystemBusPermsLink::getPermsId, sysSystemBusPerms.getId()));
-
-        SysSystemBusPermsVo sysSystemBusPermsVo = new SysSystemBusPermsVo(sysSystemBusPerms,sysSystemBusPermsLinks);
-
-        return sysSystemBusPermsVo;
+        return new SysSystemBusPermsVo(sysSystemBusPerms,sysSystemBusPermsLinks);
     }
 
     @Autowired
     SysUserJzgInfoService sysUserJzgInfoService;
 
+    /**
+     * 根据租户获取保司信息
+     * @param systemCode 租户代码
+     * @author lipf
+     * @date 2026/3/25 17:07
+     */
     @Override
     public List<EsmInsCompany> getUserCompany(String systemCode) {
         SysSystemBusPermsVo busPerms = getBusPerms(systemCode);
@@ -590,31 +604,34 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
             companyIds = busPerms.getQuoteCompanyList();
         }
         List<EsmInsCompany> companyList = new ArrayList<>();
-//        if(!companyIds.isEmpty()) {
         companyList = baseMapper.getCompanyList(companyIds);
-//        }
-        System.out.printf("------------------------------------------------------------1");
+        log.info("租户代码[{}]匹配到保险公司[{}]个。",systemCode, CollUtil.size(companyList));
+        //log.debug("匹配到的保险公司分别是[{}]", JSONUtil.toJsonStr(companyList));
         // 根据用户权限获取 可使用的协议
-        List<String> companyIdList = companyList.stream().map(x -> x.getId()).collect(Collectors.toList());
+        List<String> companyIdList = companyList.stream().map(EsmInsCompany::getId).collect(Collectors.toList());
         String userDeptId = baseController.getUserDeptId();
         if (StringUtils.isEmpty(userDeptId)){
             SysUserJzgInfo userByUserId = sysUserJzgInfoService.getUserByUserId(baseController.getUserId(), systemCode);
             userDeptId = userByUserId.getDeptId();
         }
-        System.out.printf("------------------------------------------------------------2");
         List<PtlAgreement> userAgreement = ptlAgreementService.getUserAgreementByCompanyIds(userDeptId, companyIdList);
+        log.info("租户[{}],userDeptId= [{}] 匹配保险公司的协议[{}]个", systemCode, userDeptId, CollUtil.size(userAgreement));
 
         Map<String, List<PtlAgreement>> groupedMap = userAgreement.stream()
                 .collect(Collectors.groupingBy(PtlAgreement::getCompanyId));
-        System.out.printf("------------------------------------------------------------3");
+        log.info("租户[{}]匹配到的协议按照保司分类,分为[{}]个", systemCode, CollUtil.size(groupedMap));
+        log.info("groupedMap.keys = [{}]", JSONUtil.toJsonPrettyStr(groupedMap.keySet()));
+        var ids = companyList.stream().map(EsmInsCompany::getId).toList();
+        log.info("ids=[{}]",JSONUtil.toJsonStr(ids));
         companyList.forEach(company->{
             if(groupedMap.containsKey(company.getId())){
                 company.setAgreements(groupedMap.get(company.getId()));
             }
         });
 
-        companyList = companyList.stream().filter(x -> Objects.nonNull(x.getAgreements()) && x.getAgreements().size() > 0).collect(Collectors.toList());
+        companyList = companyList.stream().filter(x -> Objects.nonNull(x.getAgreements()) && !x.getAgreements().isEmpty()).collect(Collectors.toList());
 
+        log.info("租户匹配到的保司个数[{}]",CollUtil.size(companyList));
         return companyList;
     }
 

+ 1 - 0
platform/src/main/resources/application-prod.yml

@@ -19,6 +19,7 @@ spring:
       - nacos:minio
 
 
+
 config:
   sso: 1
 

+ 10 - 23
platform/src/main/resources/logback-spring.xml

@@ -1,35 +1,22 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
-    <!-- 定义 Graylog GELF appender -->
-<!--    <appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">-->
-<!--        &lt;!&ndash; Graylog server 的主机名或 IP 地址 &ndash;&gt;-->
-<!--        <graylogHost>192.168.0.250</graylogHost>-->
-<!--        &lt;!&ndash; Graylog 服务器端口,通常为 12201(UDP)或 12202(TCP) &ndash;&gt;-->
-<!--        <graylogPort>12201</graylogPort>-->
-<!--        &lt;!&ndash; 可选项:指定协议,默认使用 UDP &ndash;&gt;-->
-<!--        <transport>UDP</transport>-->
-<!--        &lt;!&ndash; 发送日志时是否压缩 &ndash;&gt;-->
-<!--        <compress>true</compress>-->
-<!--        &lt;!&ndash; 是否在 GELF 消息中加入时间戳 &ndash;&gt;-->
-<!--        <includeTimestamp>true</includeTimestamp>-->
-<!--        &lt;!&ndash; 日志内容最大字节数 &ndash;&gt;-->
-<!--        <maxMessageSize>32768</maxMessageSize>-->
-<!--        &lt;!&ndash; 设置自定义字段 &ndash;&gt;-->
-<!--        <additionalFields>-->
-<!--        </additionalFields>-->
-<!--    </appender>-->
 
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
         <encoder>
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg traceId=%X{traceId}%n</pattern>
         </encoder>
     </appender>
 
+    <appender name="GRAYLOG" class="de.siegmar.logbackgelf.GelfTcpAppender">
+        <graylogHost>192.168.5.250</graylogHost>
+<!--        <graylogHost>172.24.144.227</graylogHost>-->
+        <graylogPort>12201</graylogPort>
+        <includeMdcData>true</includeMdcData>
+        <extractStackTrace>true</extractStackTrace>
+    </appender>
 
     <root level="INFO">
         <appender-ref ref="STDOUT"/>
+        <appender-ref ref="GRAYLOG"/>
     </root>
-<!--    <root name="com.jzg" level="DEBUG">-->
-<!--        <appender-ref ref="GELF"/>-->
-<!--    </root>-->
+
 </configuration>

+ 33 - 0
pom.xml

@@ -43,6 +43,8 @@
     <seate.version>1.7.0</seate.version>
     <weixin-java.version>4.7.0</weixin-java.version>
     <spring-cloud.version>2022.0.0</spring-cloud.version>
+    <opentelemetry.version>1.41.0</opentelemetry.version>
+    <opentelemetry-instrumentation.version>2.7.0</opentelemetry-instrumentation.version>
   </properties>
 
 
@@ -101,6 +103,35 @@
 
 
 
+    <!-- OpenTelemetry 核心 -->
+    <dependency>
+      <groupId>io.opentelemetry</groupId>
+      <artifactId>opentelemetry-api</artifactId>
+      <version>${opentelemetry.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>io.opentelemetry</groupId>
+      <artifactId>opentelemetry-sdk</artifactId>
+      <version>${opentelemetry.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>io.opentelemetry</groupId>
+      <artifactId>opentelemetry-sdk-logs</artifactId>
+      <version>${opentelemetry.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>io.opentelemetry</groupId>
+      <artifactId>opentelemetry-exporter-otlp</artifactId>
+      <version>${opentelemetry.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>io.opentelemetry</groupId>
+      <artifactId>opentelemetry-sdk-common</artifactId>
+      <version>${opentelemetry.version}</version>
+    </dependency>
+
   </dependencies>
 
   <dependencyManagement>
@@ -252,6 +283,8 @@
         <version>${weixin-java.version}</version>
       </dependency>
 
+
+
     </dependencies>
   </dependencyManagement>
 

+ 1 - 9
tenant/costsorrule/src/main/java/com/jzg/costsorrule/client/QuoteClient.java

@@ -1,16 +1,10 @@
 package com.jzg.costsorrule.client;
 
 import com.jzg.commons.core.page.HttpResult;
-import com.jzg.commons.entity.dto.InsFeeOrdersParam;
-import com.jzg.commons.entity.po.InsFeeOrders;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
-import java.util.List;
-
 @FeignClient(name = "jzg-insurance")
 public interface QuoteClient {
 
@@ -23,7 +17,5 @@ public interface QuoteClient {
      * @return
      */
     @GetMapping(value = "/newCarJudgeRules/compareNewCar")
-    public HttpResult compareNewCar(@RequestParam("registerDate") String registerDate, @RequestParam("companyId") String companyId, @RequestParam("vehicleType") String vehicleType);
-
-
+    HttpResult compareNewCar(@RequestParam("registerDate") String registerDate, @RequestParam("companyId") String companyId, @RequestParam("vehicleType") String vehicleType);
 }

+ 0 - 2
tenant/costsorrule/src/main/resources/application-dev.yml

@@ -1,5 +1,3 @@
-server:
-  port: 8085
 spring:
   cloud:
     nacos:

+ 0 - 2
tenant/costsorrule/src/main/resources/application-prod.yml

@@ -1,5 +1,3 @@
-server:
-  port: 8085
 spring:
   cloud:
     nacos:

+ 0 - 2
tenant/costsorrule/src/main/resources/application-test.yml

@@ -1,5 +1,3 @@
-server:
-  port: 9085
 spring:
   cloud:
     nacos:

+ 2 - 0
tenant/costsorrule/src/main/resources/application.yml

@@ -1,3 +1,5 @@
+server:
+  port: 8085
 spring:
   application:
     name: jzg-costsorrule

+ 22 - 0
tenant/costsorrule/src/main/resources/logback-spring.xml

@@ -0,0 +1,22 @@
+<configuration>
+
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg traceId=%X{traceId}%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="GRAYLOG" class="de.siegmar.logbackgelf.GelfTcpAppender">
+        <graylogHost>192.168.5.250</graylogHost>
+<!--        <graylogHost>172.24.144.227</graylogHost>-->
+        <graylogPort>12201</graylogPort>
+        <includeMdcData>true</includeMdcData>
+        <extractStackTrace>true</extractStackTrace>
+    </appender>
+
+    <root level="INFO">
+        <appender-ref ref="STDOUT"/>
+        <appender-ref ref="GRAYLOG"/>
+    </root>
+
+</configuration>

+ 5 - 0
tenant/insurance/pom.xml

@@ -72,6 +72,11 @@
             <artifactId>spring-cloud-starter-openfeign</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 0 - 3
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/build/BoHaiCrawlerQuoteResultsVoBuild.java

@@ -5,14 +5,11 @@ import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.RiskInfoVo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteResultsVo;
-import com.jzg.quotation.bohai.api.entity.response.QuotationResponse;
 import com.jzg.quotation.bohai.crawler.entity.response.BoHaiCrawlerQuotationResponse;
 import com.jzg.quotation.bohai.crawler.entity.response.BoHaiCrawlerQuotationResponse2;
 
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
-import java.util.stream.Collectors;
 
 /**
  * @description: 渤海财险爬虫报价结果构建器

+ 4 - 4
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/entity/po/BoHaiCrawlerOrder.java

@@ -8,12 +8,12 @@ import org.springframework.data.annotation.Id;
 import org.springframework.data.mongodb.core.mapping.Document;
 
 import java.time.LocalDateTime;
-import java.time.ZonedDateTime;
 
 /**
- * @description: 渤海财险爬虫订单实体
- * @author:
- * @date:
+ * 渤海财险爬虫订单实体
+ *
+ * @author
+ * @date
  **/
 @Data
 @Document(collection = "bohai.crawler.order")

+ 0 - 4
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/entity/request/BoHaiCrawlerBaseRequest.java

@@ -1,11 +1,7 @@
 package com.jzg.quotation.bohai.crawler.entity.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.jzg.quotation.bohai.api.entity.BoHaiConfigureParameters;
-import com.jzg.quotation.bohai.api.entity.request.BoHaiBaseRequest;
 import com.jzg.quotation.bohai.crawler.entity.BoHaiCrawlerConfigureParameters;
-import com.jzg.quotation.bohai.crawler.util.DESEncryption;
-import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.springframework.util.ObjectUtils;

+ 1 - 5
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/entity/request/BoHaiCrawlerImageUploadRequestDto.java

@@ -1,15 +1,11 @@
 package com.jzg.quotation.bohai.crawler.entity.request;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
+
 import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
-import com.jzg.quotation.bohai.api.entity.BoHaiConfigureParameters;
-import com.jzg.quotation.bohai.api.entity.request.BoHaiBaseRequest;
-import com.jzg.quotation.bohai.api.entity.request.ImageUploadRequest;
 import com.jzg.quotation.bohai.crawler.entity.BoHaiCrawlerConfigureParameters;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
-import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 

+ 0 - 5
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/entity/request/BoHaiCrawlerQuotationRequest2.java

@@ -1,12 +1,7 @@
 package com.jzg.quotation.bohai.crawler.entity.request;
 import com.alibaba.fastjson.annotation.JSONField;
 import com.alibaba.fastjson.serializer.SerializerFeature;
-import com.jzg.commons.entity.quote.vo.AccidentalDrivingVo;
-import com.jzg.commons.entity.quote.vo.QuoteVo;
-import com.jzg.quotation.bohai.crawler.entity.BoHaiCrawlerConfigureParameters;
-import com.jzg.quotation.bohai.enums.dictionary.Risk;
 import lombok.Data;
-import javax.swing.plaf.nimbus.State;
 import java.util.List;
 
 /**

+ 0 - 1
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/entity/response/BoHaiCrawlerCarResponse.java

@@ -1,7 +1,6 @@
 package com.jzg.quotation.bohai.crawler.entity.response;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.jzg.quotation.bohai.crawler.entity.request.quote.CarModelDataDTO;
 import com.jzg.quotation.commons.filter.CarModelsFilter;
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 2 - 6
tenant/insurance/quotation-bohai/src/main/java/com/jzg/quotation/bohai/crawler/service/impl/BoHaiCrawlerOrderServiceImpl.java

@@ -3,7 +3,6 @@ package com.jzg.quotation.bohai.crawler.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.quotation.bohai.crawler.entity.po.BoHaiCrawlerOrder;
-import com.jzg.quotation.bohai.crawler.entity.response.BoHaiCrawlerQuotationResponse;
 import com.jzg.quotation.bohai.crawler.entity.response.BoHaiCrawlerQuotationResponse2;
 import com.jzg.quotation.bohai.crawler.repository.BoHaiCrawlerOrderRepository;
 import com.jzg.quotation.bohai.crawler.service.BoHaiCrawlerOrderService;
@@ -12,13 +11,10 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.time.ZonedDateTime;
 
 /**
- * @description: 渤海财险爬虫订单服务实现
- * @author:
- * @date:
+ * 渤海财险爬虫订单服务实现
+ *
  **/
 @Service
 @RequiredArgsConstructor

+ 77 - 41
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/component/ChengTaiRequestApiComponent.java

@@ -47,34 +47,41 @@ public class ChengTaiRequestApiComponent {
     private final RequestComponent requestComponent;
 
     public <T extends BaseRequest, B extends BaseResponse> B requestUrl(String url, T requestBody, Class<B> responseType, HttpHeaders httpHeaders) {
-        String busReqString = JSON.toJSONString(requestBody, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
-        try{
+        try {
+            String busReqString = JSON.toJSONString(requestBody, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
             PrivateKey privateKey = RSAUtil.getPrivateKeyFromPKCS8("RSA", chengTaiApiProperties.getPrivateKey());
             PublicKey ctPublicKey = RSAUtil.getPublicKeyFromX509("RSA", chengTaiApiProperties.getCtPublicKey());
-            System.out.println(busReqString);
+            log.debug("请求数据: {}", busReqString);
+
             //base64加密
             String baseStr = Base64.getEncoder().encodeToString(busReqString.getBytes(Charset.forName("UTF-8")));
             //rsa加密
             String encryptStr = RSAUtil.encryptString(ctPublicKey, baseStr); //加密
             String signatureStr = RSAUtil.signature(baseStr, privateKey);  //加签
             ChengTaiEncrypted chengTaiEncrypted = new ChengTaiEncrypted(encryptStr,chengTaiApiProperties,signatureStr);
-            System.out.println(JSON.toJSON(chengTaiEncrypted));
+            log.debug("加密后数据: {}", JSON.toJSON(chengTaiEncrypted));
+
             ResponseEntity<B> bResponseEntity = requestComponent.objectPost(url, chengTaiEncrypted, responseType, httpHeaders);
 
             String body = JSON.toJSONString(bResponseEntity.getBody());//需要联调观察数据格式
             B res = JSON.parseObject(body).toJavaObject(responseType);
-            System.out.println(JSON.toJSON(res));
-//            if (!ResponseCode.R_000.getCode().equals(res.getCode())){throw new SystemException(res.message);}
+            log.debug("响应数据: {}", JSON.toJSON(res));
+
             // 解密响应
             String newSource = RSAUtil.decryptString(privateKey, res.encryptionMessage);
             String info = new String(Base64.getDecoder().decode(newSource), Charset.forName("UTF-8"));
-            System.out.println(info);
+            log.debug("解密后数据: {}", info);
+
             boolean flag = RSAUtil.signatureVerfiy(newSource, res.signature, ctPublicKey);
-            if(!flag){throw new SystemException(res.message);}
+            if(!flag){throw new SystemException("验签失败: " + res.message);}
             res.setDecodeData(info);
             return res;
-        }catch (Exception e){
-            throw new SystemException(e.toString());
+        } catch (SystemException e) {
+            log.error("请求异常: {}", e.getMessage(), e);
+            throw e;
+        } catch (Exception e) {
+            log.error("请求异常: {}", e.getMessage(), e);
+            throw new SystemException("请求失败: " + e.getMessage());
         }
     }
 
@@ -83,22 +90,32 @@ public class ChengTaiRequestApiComponent {
     }
 
     public <T extends BaseRequest, B extends BaseResponse> B requestUrlToken(String url, T requestBody, Class<B> responseType, HttpHeaders httpHeaders) {
-        try{
+        try {
             ResponseEntity<B> bResponseEntity = requestComponent.objectPost(url, requestBody, responseType, httpHeaders);
-            String body = JSON.toJSONString(bResponseEntity.getBody());//需要联调观察数据格式
+            String body = JSON.toJSONString(bResponseEntity.getBody());
             B res = JSON.parseObject(body).toJavaObject(responseType);
-            if (!ResponseCode.R_000.getCode().equals(res.getCode())){throw new SystemException(res.message);}
+
+            if (!ResponseCode.R_000.getCode().equals(res.getCode())){
+                throw new SystemException("API返回错误: " + res.message);
+            }
+
             PrivateKey privateKey = RSAUtil.getPrivateKeyFromPKCS8("RSA", chengTaiApiProperties.getPrivateKey());
             PublicKey ctPublicKey = RSAUtil.getPublicKeyFromX509("RSA", chengTaiApiProperties.getCtPublicKey());
+
             // 解密响应
             String newSource = RSAUtil.decryptString(privateKey, res.encryptionMessage);
             String info = new String(Base64.getDecoder().decode(newSource), Charset.forName("UTF-8"));
+
             boolean flag = RSAUtil.signatureVerfiy(newSource, res.signature, ctPublicKey);
-            if(!flag){throw new SystemException(res.message);}
+            if(!flag){throw new SystemException("验签失败: " + res.message);}
             res.setDecodeData(info);
             return res;
-        }catch (Exception e){
-            throw new SystemException(e.toString());
+        } catch (SystemException e) {
+            log.error("token请求异常: {}", e.getMessage(), e);
+            throw e;
+        } catch (Exception e) {
+            log.error("token请求异常: {}", e.getMessage(), e);
+            throw new SystemException("token请求失败: " + e.getMessage());
         }
     }
 
@@ -135,9 +152,7 @@ public class ChengTaiRequestApiComponent {
                 .get(AUTHORIZATION);
 
         if (StringUtils.isNotBlank(authorization)) {
-            System.out.print("---------------\n--------------\n---------------\n--------------\n---------------\n--------------\n---------------\n--------------\n---------------\n--------------\n");
-            System.out.printf("authorization:" + authorization);
-            System.out.print("---------------\n--------------\n---------------\n--------------\n---------------\n--------------\n---------------\n--------------\n---------------\n--------------\n");
+            log.debug("使用缓存中的token: {}", authorization);
             httpHeaders.set(AUTHTOKEN, authorization);
             httpHeaders.setContentType(MediaType.APPLICATION_JSON);
             return httpHeaders;
@@ -151,17 +166,19 @@ public class ChengTaiRequestApiComponent {
                 try {
                     return this.getToken(chengTaiApiConfigureParameters,httpHeaders,url);
                 } catch (Exception e) {
-                    throw new SystemException(e.toString());
+                    log.error("获取token失败: {}", e.getMessage(), e);
+                    throw new SystemException("获取token失败: " + e.getMessage());
                 } finally {
-                    lock.unlock();
+                    if (lock.isHeldByCurrentThread()) {
+                        lock.unlock();
+                    }
                 }
             }
 
         } catch (InterruptedException e) {
-            log.debug(e.getMessage());
-            lock.unlock();
+            log.error("获取锁失败: {}", e.getMessage(), e);
             Thread.currentThread().interrupt();
-            throw new SystemException(e.getMessage());
+            throw new SystemException("获取锁失败: " + e.getMessage());
         }
 
         // 睡眠一段时间 自调用 重新获取缓存中的 header
@@ -183,16 +200,25 @@ public class ChengTaiRequestApiComponent {
      * @return
      */
     private HttpHeaders getToken(ChengTaiApiConfigureParameters chengTaiApiConfigureParameters, HttpHeaders httpHeaders,String url) {
+        try {
+            ChengTaiTokenRequest request = new ChengTaiTokenRequest(chengTaiApiProperties.getPartnerCode());
+            httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+            ChengTaiTokenResponse accessToken = getAccessToken(request,httpHeaders,url);
+
+            if (accessToken == null || StringUtils.isBlank(accessToken.getAccessToken())) {
+                throw new SystemException("获取accessToken失败或为空");
+            }
 
-        ChengTaiTokenRequest request = new ChengTaiTokenRequest(chengTaiApiProperties.getPartnerCode());
-        httpHeaders.setContentType(MediaType.APPLICATION_JSON);
-        ChengTaiTokenResponse accessToken = getAccessToken(request,httpHeaders,url);
-        httpHeaders.set(AUTHTOKEN, accessToken.getAccessToken());
-        // 3.1 存入redis中
-        RMap<Object, Object> rMap = redissonClient.getMap(CacheConstant.CHENGTAI_AUTHORIZATION + chengTaiApiConfigureParameters.getUserId());
-        rMap.put(AUTHORIZATION, accessToken.getAccessToken());
-        rMap.expire(Duration.ofHours(CacheConstant.CHENGTAI_AUTHORIZATION_TIME));
-        return httpHeaders;
+            httpHeaders.set(AUTHTOKEN, accessToken.getAccessToken());
+            // 3.1 存入redis中
+            RMap<Object, Object> rMap = redissonClient.getMap(CacheConstant.CHENGTAI_AUTHORIZATION + chengTaiApiConfigureParameters.getUserId());
+            rMap.put(AUTHORIZATION, accessToken.getAccessToken());
+            rMap.expire(Duration.ofHours(CacheConstant.CHENGTAI_AUTHORIZATION_TIME));
+            return httpHeaders;
+        } catch (Exception e) {
+            log.error("获取token异常: {}", e.getMessage(), e);
+            throw new SystemException("获取token失败: " + e.getMessage());
+        }
     }
 
     /**
@@ -203,14 +229,24 @@ public class ChengTaiRequestApiComponent {
      * @return 出参实体
      */
     private ChengTaiTokenResponse getAccessToken(ChengTaiTokenRequest chengTaiTokenRequest, HttpHeaders httpHeaders,String url) {
-        ChengTaiTokenResponse response = requestRequestUrlToken(RequestUrl.Z00001,
-                chengTaiTokenRequest,
-                ChengTaiTokenResponse.class,
-                httpHeaders,url);
-        ChengTaiTokenResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(ChengTaiTokenResponse.class);
-        res.setCode(response.getCode());
-        res.setMessage(response.getMessage());
-        return res;
+        try {
+            ChengTaiTokenResponse response = requestRequestUrlToken(RequestUrl.Z00001,
+                    chengTaiTokenRequest,
+                    ChengTaiTokenResponse.class,
+                    httpHeaders,url);
+
+            if (response == null || StringUtils.isBlank(response.getDecodeData())) {
+                throw new SystemException("获取token响应为空");
+            }
+
+            ChengTaiTokenResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(ChengTaiTokenResponse.class);
+            res.setCode(response.getCode());
+            res.setMessage(response.getMessage());
+            return res;
+        } catch (Exception e) {
+            log.error("请求token接口失败: {}", e.getMessage(), e);
+            throw new SystemException("请求token接口失败: " + e.getMessage());
+        }
     }
 
 

+ 5 - 12
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java

@@ -1,7 +1,5 @@
 package com.jzg.quotation.commons.component;
 
-import com.alibaba.fastjson.parser.Feature;
-import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.alibaba.fastjson2.JSON;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.config.WebClientConfig;
@@ -23,7 +21,6 @@ import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
 import java.io.IOException;
-import java.lang.reflect.Type;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
@@ -84,8 +81,7 @@ public class RequestComponent {
                 return webClientConfig.clientBuilder();
             }
         } catch (Exception e) {
-            e.printStackTrace();
-            log.info("创建安全WebClient失败,使用默认WebClient", e);
+            log.error("创建安全WebClient失败,使用默认WebClient", e);
         }
         return webClient;
     }
@@ -101,7 +97,6 @@ public class RequestComponent {
                 return webClientConfig.clientBuilder1();
             }
         } catch (Exception e) {
-            e.printStackTrace();
             log.info("创建安全WebClient失败,使用默认WebClient", e);
         }
         return webClient;
@@ -168,12 +163,10 @@ public class RequestComponent {
         StringBuilder sb = new StringBuilder(baseUrl);
         if (!params.isEmpty()) {
             sb.append("?");
-            params.forEach((key, values) -> {
-                values.forEach(value -> sb.append(key)
-                        .append("=")
-                        .append(URLEncoder.encode(value, StandardCharsets.UTF_8))
-                        .append("&"));
-            });
+            params.forEach((key, values) -> values.forEach(value -> sb.append(key)
+                    .append("=")
+                    .append(URLEncoder.encode(value, StandardCharsets.UTF_8))
+                    .append("&")));
             sb.deleteCharAt(sb.length() - 1); // 移除末尾多余的&
         }
         return sb.toString();

+ 0 - 13
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java

@@ -2,9 +2,6 @@ package com.jzg.quotation.summary.aop.aspect;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.jzg.commons.constants.ProductsType;
-import com.jzg.commons.constants.quote.enums.quote.CarKindCode;
-import com.jzg.commons.constants.quote.enums.quote.CarNatureCode;
 import com.jzg.commons.constants.quote.enums.quote.EnergyTypeCode;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
@@ -25,18 +22,13 @@ import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.AfterReturning;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
-import org.redisson.api.RedissonClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.BiConsumer;
@@ -73,11 +65,6 @@ public class QuoteVerificationAspect {
 
     private final BaseController baseController;
 
-
-    @Autowired
-    private RedissonClient redissonClient;
-
-
     @AfterReturning(pointcut = "@annotation(com.jzg.quotation.summary.aop.QuoteVerification)", returning = "result")
     public void doAfter(HttpResult<QuoteResultsVo> result) {
         if (result.getCode() == 200) {

+ 16 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/client/PartnerClient.java

@@ -0,0 +1,16 @@
+package com.jzg.quotation.summary.client;
+
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@FeignClient(name = "jzg-partner")
+public interface PartnerClient {
+
+
+    @GetMapping("/extractFee/save")
+    void extractFeeSave(@RequestParam String orderNo,@RequestParam String orderId);
+
+
+}

+ 1 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/CarModelController.java

@@ -46,6 +46,7 @@ public class  CarModelController {
     @PostMapping(value = "/modelsQuery")
     @Operation(description = "车型查询接口")
     public HttpResult<List<CarModelDTO>> modelsQuery(@RequestBody ModelsQueryQueryVo modelsQueryQueryVo) {
+        // 从 modelName 字符串中移除所有的中文字符
         String filtered = modelsQueryQueryVo.getModelName().replaceAll("[\\u4e00-\\u9fa5]", "");
         if("".equals(filtered)){
             throw new SystemException("品牌型号不能为纯中文");

+ 1 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java

@@ -132,6 +132,7 @@ public class InsFeeAuditController {
     /**
      * 订单审核费用详情
      * @return
+     *
      */
     @GetMapping("/auditCostInfo")
     @Operation(summary = "订单审核费用详情")

+ 29 - 44
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java

@@ -2,6 +2,7 @@ package com.jzg.quotation.summary.controller;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateTime;
+import cn.hutool.core.util.ArrayUtil;
 import com.alibaba.nacos.common.utils.CollectionUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -21,18 +22,17 @@ import com.jzg.commons.entity.quote.vo.base.LoginBase;
 import com.jzg.commons.entity.quote.vo.orders.InsOrdersVo;
 import com.jzg.commons.entity.quote.vo.underwriting.SpecialAppointmentsVo;
 import com.jzg.commons.entity.rights.dto.InsOrderRightsDto;
+import com.jzg.commons.entity.rights.dto.InsOrderRightsInfoDto;
 import com.jzg.commons.entity.rights.dto.InsOrderRightsPackageDto;
 import com.jzg.commons.entity.vo.CompanyClauseVo;
 import com.jzg.commons.entity.vo.InsCompanyClauseVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.exception.TokenExpireException;
 import com.jzg.commons.util.AssertionUtils;
-import com.jzg.commons.util.MinioUtils;
 import com.jzg.quotation.commons.client.OrgClient;
 import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.commons.service.QuotationBaseService;
 import com.jzg.quotation.commons.utils.SnowFlakeUtil;
-import com.jzg.quotation.hengbang.crawler.service.HengBangCrawlerRequest;
 import com.jzg.quotation.summary.aop.AuditVerification;
 import com.jzg.quotation.summary.aop.OrderOperationLog;
 import com.jzg.quotation.summary.aop.QuoteVerification;
@@ -41,18 +41,16 @@ import com.jzg.quotation.summary.constants.QuoteNumberConstant;
 import com.jzg.quotation.summary.converter.QuoteInfoConverter;
 import com.jzg.quotation.summary.entity.po.QuoteRuleMapping;
 import com.jzg.quotation.summary.factory.CompanyFactory;
-import com.jzg.quotation.summary.mapper.SysUploadFilesMapper;
 import com.jzg.quotation.summary.service.*;
 import com.jzg.quotation.summary.state.listener.OrderStateListener;
 import com.jzg.quotation.zhongmei.crawler.service.ZhongMeiCrawlerRequest;
-import io.minio.MinioClient;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.RequiredArgsConstructor;
+import lombok.val;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
@@ -116,15 +114,6 @@ public class UnifyOrderManager {
     @Autowired
     OrderStateListener orderStateListener;
 
-    @Autowired
-    MinioClient minioClient;
-
-    @Autowired
-    MinioUtils minioUtils;
-
-    @Autowired
-    SysUploadFilesMapper sysUploadFilesMapper;
-
     @Autowired
     InsOrdersPdfUrlService insOrdersPdfUrlService;
 
@@ -134,15 +123,6 @@ public class UnifyOrderManager {
     @Autowired
     InsFeeOrdersService insFeeOrdersService;
 
-    @Value("${minio.bucket-name}")
-    private String bucketName;
-
-    @Autowired
-    private InsOrdersTrackService insOrdersTrackService;
-
-    @Autowired
-    private HengBangCrawlerRequest hengBangCrawlerRequest;
-
     @Autowired
     private ZhongMeiCrawlerRequest zhongMeiCrawlerRequest;
     @Autowired
@@ -218,12 +198,12 @@ public class UnifyOrderManager {
         String companyName = CompanyConstants.getCompanyNameByCode(esmInsCompanyHttpResult.getData().getCompanyCode());
 
 
-        HttpResult<List<PtlAgreement>> byCompanyId = orgClient.getByCompanyId(esmInsCompanyHttpResult.getData().getId(),systemCode);
+        HttpResult<List<PtlAgreement>> byCompanyId = orgClient.getByCompanyId(esmInsCompanyHttpResult.getData().getId(), systemCode);
         if (byCompanyId.getData().isEmpty()) {
             AssertionUtils.isFail(true, "保司未配置协议");
         }
-        PtlAgreement ptlAgreement = byCompanyId.getData().stream().filter(x->x.getId().equals(quoteVo.getOrder().getAgreementId())).findFirst().orElse(null);
-        if(Objects.isNull(ptlAgreement)){
+        PtlAgreement ptlAgreement = byCompanyId.getData().stream().filter(x -> x.getId().equals(quoteVo.getOrder().getAgreementId())).findFirst().orElse(null);
+        if (Objects.isNull(ptlAgreement)) {
             throw new SystemException("协议不存在");
         }
         quoteVo.getOrder().setAgreementId(ptlAgreement.getId());
@@ -263,14 +243,14 @@ public class UnifyOrderManager {
             quoteResultsVo.setOrdersNo(ordersNo);
             // 报价后更新订单
             insOrdersService.orderAfterUpdateQuote(ordersNo, quoteResultsVo);
-        }catch(Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
             Throwable root = e.getCause() != null ? e.getCause() : e;
             insOrdersService.orderAfterUpdateFailedQuote(ordersNo, root.getMessage());
             throw new SystemException(root.getMessage());
         }
         return quoteResultsVo.getQuoteStatusEnum()
-                .equals(InsOrderStatusEnum.WAIT_AUDIT) ? HttpResult.ok(quoteResultsVo) : HttpResult.error(500,quoteResultsVo,quoteResultsVo.getErrorMessage());
+                .equals(InsOrderStatusEnum.WAIT_AUDIT) ? HttpResult.ok(quoteResultsVo) : HttpResult.error(500, quoteResultsVo, quoteResultsVo.getErrorMessage());
     }
 
 
@@ -303,9 +283,9 @@ public class UnifyOrderManager {
         InsOrdersPolicy insOrdersPolicy = insOrdersPolicyService.getById(insOrders.getId());
         // 核保之前判断是否是待核保  或 核保失败
         StateResult stateResult;
-        if(insOrders.getOrderStatus().equals(InsOrderStatusEnum.WAIT_AUDIT.getCode()) || insOrders.getOrderStatus().equals(InsOrderStatusEnum.AUDIT_FAIL.getCode())){
+        if (insOrders.getOrderStatus().equals(InsOrderStatusEnum.WAIT_AUDIT.getCode()) || insOrders.getOrderStatus().equals(InsOrderStatusEnum.AUDIT_FAIL.getCode())) {
             stateResult = orderStateListener.statusChange(InsOrderStatusEnum.AUDIT_ING, InsOrderStatusEnum.WAIT_AUDIT.getCode());
-        }else{
+        } else {
             stateResult = orderStateListener.statusChange(InsOrderStatusEnum.AUDIT_ING, insOrders.getOrderStatus());
         }
         //核保之前更新订单为待核保
@@ -313,7 +293,7 @@ public class UnifyOrderManager {
         insOrdersService.updateById(insOrders);
         // 发送订单状态变更消息
         insOrdersService.orderStatusMessage(insOrders,
-                insOrdersCarInfo,insOrdersCosts,
+                insOrdersCarInfo, insOrdersCosts,
                 baseController.getToken(), MessageCodeEnum.TEMPLATE_2);
         //拼装参数
         underwritingVo.setInsOrders(insOrders);
@@ -341,12 +321,16 @@ public class UnifyOrderManager {
         }
         underwritingVo.setSpecialAppointmentsVos(specialAppointmentsVos);
 
+        if (ArrayUtil.isEmpty(underwritingVo.getInsOrderRightsInfoDto())) {
+           underwritingVo.setInsOrderRightsInfoDto(new InsOrderRightsInfoDto());
+        }
+
         boolean hasRights = CollectionUtils.isNotEmpty(underwritingVo.getInsOrderRightsInfoDto().getInsOrderRightsList());//权益券
         boolean hasPackages = CollectionUtils.isNotEmpty(underwritingVo.getInsOrderRightsInfoDto().getInsOrderRightsPackageList());//权益套餐
         //核保前需要判断如果有选权益需要判断选中权益总价不超过可用金额
-        if(hasRights || hasPackages){
+        if (hasRights || hasPackages) {
             InsFeeOrders feeOrders = insFeeOrdersService.getById(underwritingVo.getOrder().getOrdersNo());
-            AssertionUtils.isFail(Objects.isNull(feeOrders),"费用信息不匹配");
+            AssertionUtils.isFail(Objects.isNull(feeOrders), "费用信息不匹配");
             checkUsedAmount(feeOrders.getAvailableAmount(), underwritingVo.getInsOrderRightsInfoDto().getInsOrderRightsList(), underwritingVo.getInsOrderRightsInfoDto().getInsOrderRightsPackageList());
         }
 
@@ -358,13 +342,13 @@ public class UnifyOrderManager {
         if (underwritingResultsVo.getUnderwritingStatus().equals(InsOrderStatusEnum.PAY_PENDING)) {
             // 发送订单状态变更消息
             insOrdersService.orderStatusMessage(insOrders,
-                    insOrdersCarInfo,insOrdersCosts,
+                    insOrdersCarInfo, insOrdersCosts,
                     baseController.getToken(), MessageCodeEnum.TEMPLATE_5);
             //核保成功将权益信息入库
-            if(null != underwritingVo.getInsOrderRightsInfoDto()){
-                 if(hasRights || hasPackages){
-                     insOrderRightsInfoService.saveInsOrderRightsInfo(underwritingVo.getInsOrderRightsInfoDto(),underwritingVo.getOrder().getOrdersNo());
-                 }
+            if (null != underwritingVo.getInsOrderRightsInfoDto()) {
+                if (hasRights || hasPackages) {
+                    insOrderRightsInfoService.saveInsOrderRightsInfo(underwritingVo.getInsOrderRightsInfoDto(), underwritingVo.getOrder().getOrdersNo());
+                }
             }
             return HttpResult.ok("核保成功");
         } else {
@@ -375,7 +359,7 @@ public class UnifyOrderManager {
                 insOrdersService.updateById(insOrders);
                 // 发送订单状态变更消息
                 insOrdersService.orderStatusMessage(insOrders,
-                        insOrdersCarInfo,insOrdersCosts,
+                        insOrdersCarInfo, insOrdersCosts,
                         baseController.getToken(), MessageCodeEnum.TEMPLATE_4);
             }
             throw new SystemException(underwritingResultsVo.getUnderwritingResult());
@@ -440,7 +424,7 @@ public class UnifyOrderManager {
         String systemCode = getSystemCode();
 
         //先默认第一个协议
-        HttpResult<List<PtlAgreement>> byCompanyId = orgClient.getByCompanyId(insOrders.getCompanyId(),systemCode);
+        HttpResult<List<PtlAgreement>> byCompanyId = orgClient.getByCompanyId(insOrders.getCompanyId(), systemCode);
         if (byCompanyId.getData().isEmpty()) {
             AssertionUtils.isFail(true, "保司未配置协议");
         }
@@ -471,7 +455,7 @@ public class UnifyOrderManager {
         String systemCode = getSystemCode();
 
         //先默认第一个协议
-        HttpResult<List<PtlAgreement>> byCompanyId = orgClient.getByCompanyId(insOrders.getCompanyId(),systemCode);
+        HttpResult<List<PtlAgreement>> byCompanyId = orgClient.getByCompanyId(insOrders.getCompanyId(), systemCode);
         if (byCompanyId.getData().isEmpty()) {
             AssertionUtils.isFail(true, "保司未配置协议");
         }
@@ -609,7 +593,7 @@ public class UnifyOrderManager {
 
         // 发送订单状态变更消息
         insOrdersService.orderStatusMessage(insOrders,
-                carInfo,costs,
+                carInfo, costs,
                 baseController.getToken(), MessageCodeEnum.TEMPLATE_7);
         return HttpResult.ok(insOrdersPdfUrl);
     }
@@ -618,10 +602,12 @@ public class UnifyOrderManager {
     @Operation(summary = "测试")
     public HttpResult test(@RequestBody LoginBase loginBase) {
         zhongMeiCrawlerRequest.login(loginBase);
-        return  HttpResult.ok();
+        return HttpResult.ok();
     }
+
     /**
      * 判断已使用金额不超过可用金额
+     *
      * @param availableAmount
      * @param rightsList
      * @param rightsPackageList
@@ -658,7 +644,6 @@ public class UnifyOrderManager {
             if (usedAmount.compareTo(availableAmount) > 0) {
                 AssertionUtils.isFail(true, "权益金额不足!");
             }
-
         }
     }
 }

+ 0 - 10
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/CompanyFactory.java

@@ -44,12 +44,6 @@ import java.util.stream.Collectors;
 @Slf4j
 public class CompanyFactory {
 
-    @Autowired
-    private SysQuoteConfigService sysQuoteConfigService;
-
-    @Autowired
-    private SysQuoteRedisService sysQuoteRedisService;
-
     @Autowired
     private MinioClient minioClient;
 
@@ -58,10 +52,6 @@ public class CompanyFactory {
 
     @Autowired
     private InsOrdersService insOrdersService;
-
-    @Autowired
-    private InsOrdersKindService insOrdersKindService;
-
     @Autowired
     private InsOrdersRiskService insOrdersRiskService;
 

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

@@ -89,7 +89,7 @@ public class QuoteDispatchDecorator {
             //协议调度
             return target.quote(quoteVo);
         } catch (Exception e) {
-            e.printStackTrace();
+            log.error("执行quote方法异常", e);
             throw new RuntimeException(e);
         }
     }

+ 2 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/SysQueryVehicleConfigMapper.java

@@ -7,6 +7,8 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 /**
+ * 针对表【sys_query_vehicle_config(车型查询配置信息)】的数据库操作Mapper
+ *
  * @author Administrator
  * @description 针对表【sys_query_vehicle_config(车型查询配置信息)】的数据库操作Mapper
  * @createDate 2024-08-16 10:20:52

+ 1 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/SysQueryVehicleConfigService.java

@@ -58,7 +58,7 @@ public interface SysQueryVehicleConfigService extends BaseIService<SysQueryVehic
      * 通过类型查看开启的配置信息
      *
      * @param type 类型
-     * @return
+     * @return SysQueryVehicleConfigDTO
      */
     SysQueryVehicleConfigDTO getByType(String type);
 

+ 22 - 6
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java

@@ -1,14 +1,12 @@
 package com.jzg.quotation.summary.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fasterxml.jackson.databind.JsonNode;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.base.StateResult;
 import com.jzg.commons.core.page.HttpResult;
@@ -25,7 +23,10 @@ import com.jzg.commons.entity.po.SysUserJzgInfo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.rights.po.InsOrderRights;
 import com.jzg.commons.entity.rights.po.InsOrderRightsPackage;
-import com.jzg.commons.entity.vo.*;
+import com.jzg.commons.entity.vo.AgreementInfoVo;
+import com.jzg.commons.entity.vo.AgreementVo;
+import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
+import com.jzg.commons.entity.vo.PtlAgreementCostTypeVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.PDFUtil;
@@ -34,6 +35,7 @@ import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.quotation.commons.client.OrgClient;
 import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.summary.client.LocalLivingClient;
+import com.jzg.quotation.summary.client.PartnerClient;
 import com.jzg.quotation.summary.entity.Result;
 import com.jzg.quotation.summary.entity.dto.ChannelRightsApiGrantReceiverDTO;
 import com.jzg.quotation.summary.entity.dto.ChannelRightsApiGrantRecordDTO;
@@ -44,17 +46,18 @@ import com.jzg.quotation.summary.mapper.InsOrderRightsPackageMapper;
 import com.jzg.quotation.summary.service.*;
 import com.jzg.quotation.summary.state.AuditState;
 import com.jzg.quotation.summary.state.listener.AuditStateListener;
+import com.jzg.quotation.zhongan.crawler.JsonUtil;
 import lombok.RequiredArgsConstructor;
 import org.hibernate.validator.internal.util.stereotypes.Lazy;
 import org.redisson.api.RBucket;
 import org.redisson.api.RedissonClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.io.File;
 import java.math.BigDecimal;
-import java.math.BigInteger;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -69,9 +72,14 @@ import java.util.concurrent.TimeUnit;
 public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFeeAudit>
     implements InsFeeAuditService {
 
+    private static final Logger log = LoggerFactory.getLogger(InsFeeAuditServiceImpl.class);
+
     @Autowired
     private OrgClient orgClient;
 
+    @Autowired
+    private PartnerClient partnerClient;
+
     @Autowired
     private PlatformClient platformClient;
 
@@ -114,6 +122,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
 
     @Override
     public Page<FeeAuditVo> queryPage(FeeAuditParam param) {
+        log.info("订单审核-任务中心,查询待审核任务。 param=[{}]", JSONUtil.toJsonStr(param));
         // 获取选中的保险公司条件
         String companyId = param.getCompanyId();
         if(StringUtils.isNotBlank(companyId)){
@@ -490,6 +499,13 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         audit.setIsProblem(0);
         this.updateById(audit);
 
+        //合伙人佣金比例
+        try {
+            partnerClient.extractFeeSave(orders.getQuoteNo(),orders.getId());
+        }catch (Exception e){
+            log.error("保存合伙人佣金计算异常:{}" + e.getMessage());
+            e.printStackTrace();
+        }
 
         // 增加账户的金额记录
         List<SysUserAccountIncomeLog>builderIncomeLog = this.builderIncomeLog(param.getOrderNo(),feeOrders,userAccount,distributor1,distributor2,distributor3);

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

@@ -3,7 +3,6 @@ package com.jzg.quotation.summary.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
-import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersExternalFee;
@@ -41,7 +40,6 @@ public class InsOrdersQrcodeServiceImpl extends ServiceImpl<InsOrdersQrcodeMappe
 
     private final InsOrdersExternalFeeService insOrdersExternalFeeService;
     private final OrgClient orgClient;
-    private final BaseController baseController;
 
     @Override
     public InsOrdersQrcode getOneOrSave(InsOrders orders) {

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

@@ -129,10 +129,6 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
     @Autowired
     private InsOrdersCarInfoMapper insOrdersCarInfoMapper;
-
-    @Autowired
-    private InsOrdersCarInfoService insOrdersCarInfoService;
-
     @Autowired
     private InsOrdersTrackService trackService;
 

+ 22 - 0
tenant/insurance/quotation-summary/src/main/resources/logback-spring.xml

@@ -0,0 +1,22 @@
+<configuration>
+
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg traceId=%X{traceId}%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="GRAYLOG" class="de.siegmar.logbackgelf.GelfTcpAppender">
+        <graylogHost>192.168.5.250</graylogHost>
+<!--        <graylogHost>172.24.144.227</graylogHost>-->
+        <graylogPort>12201</graylogPort>
+        <includeMdcData>true</includeMdcData>
+        <extractStackTrace>true</extractStackTrace>
+    </appender>
+
+    <root level="INFO">
+        <appender-ref ref="STDOUT"/>
+        <appender-ref ref="GRAYLOG"/>
+    </root>
+
+</configuration>

+ 2 - 5
tenant/insurance/quotation-summary/src/main/resources/mapper/InsFeeAuditMapper.xml

@@ -52,7 +52,7 @@
         LEFT JOIN ins_orders_car_info as ioci on io.id = ioci.order_no
         LEFT JOIN ins_orders_car_user_info as iocui on io.id = iocui.order_no and iocui.policy_person_type = 3
         LEFT JOIN sys_user qsu on qsu.mobile = io.real_quote_user_id
-        LEFT JOIN sys_user_jzg_info suji ON suji.user_id = qsu.id and system_code = #{param.systemCode}
+        LEFT JOIN sys_user_jzg_info suji ON suji.user_id = qsu.id and suji.system_code = #{param.systemCode}
         LEFT JOIN sys_user su on su.id = io.real_quote_user_id
         LEFT JOIN sys_dept sd on suji.dept_id = sd.id
         LEFT JOIN ptl_agreement pa on io.agreement_id = pa.id
@@ -77,9 +77,6 @@
             <if test="param.licenseNo != null and param.licenseNo != ''">
                 and ioci.license_no like concat('%',#{param.licenseNo},'%')
             </if>
-            <if test="param.licenseNo != null and param.licenseNo != ''">
-                and ioci.license_no like concat('%',#{param.licenseNo},'%')
-            </if>
             <if test="param.attrType != null ">
                 and suji.type_attr = #{param.attrType}
             </if>
@@ -94,7 +91,7 @@
             </if>
             <if test="param.companyIdList != null and param.companyIdList.size() > 0" >
                 AND io.company_id in
-                <foreach collection="companyIdList" item="item" open="(" separator="," close=")">
+                <foreach collection="param.companyIdList" item="item" open="(" separator="," close=")">
                     #{item}
                 </foreach>
             </if>

+ 0 - 2
tenant/insurance/quotation-zijin/src/main/java/com/jzg/quotation/zijin/api/component/ZiJinApiRequestComponent.java

@@ -15,7 +15,6 @@ import org.redisson.Redisson;
 import org.redisson.api.RLock;
 import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
-import org.redisson.client.codec.StringCodec;
 import org.redisson.config.Config;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.ResponseEntity;
@@ -275,7 +274,6 @@ public class ZiJinApiRequestComponent {
      * 对接三方渠道验车链接接口
      *
      * @param sendCheckCarLinkRequest 紫金财险 对接三方渠道验车链接接口 入参实体
-     * @return 出参实体
      */
     public void sendCheckCarLink(SendCheckCarLinkRequest sendCheckCarLinkRequest, HttpHeaders httpHeaders) {
         requestUrl(ziJinApiProperties.getSendCheckCarLink(), sendCheckCarLinkRequest, BaseResponse.class, httpHeaders);

+ 1 - 2
tenant/organization/src/main/java/com/jzg/organization/client/OrgClient.java

@@ -5,13 +5,12 @@ import com.jzg.commons.entity.agreement.dispatch.vo.PtlAgreementDispatchQuery;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestHeader;
 
 @FeignClient(name="${spring.application.name:jzg-organization}")
 public interface OrgClient {
 
     @PostMapping("/ptlAgreementDispatch/getAgreementDispatch")
-    public HttpResult getAgreementDispatch(@RequestBody PtlAgreementDispatchQuery ptlAgreementDispatchQuery);
+    HttpResult getAgreementDispatch(@RequestBody PtlAgreementDispatchQuery ptlAgreementDispatchQuery);
 
 
 }

+ 0 - 1
tenant/organization/src/main/java/com/jzg/organization/client/QuoteClient.java

@@ -53,5 +53,4 @@ public interface QuoteClient {
     @GetMapping(value = "/supplementOrder/changeSupplementOrder")
     HttpResult changeSupplementOrder(@RequestParam("orderNo") String orderNo);
 
-
 }

+ 1 - 4
tenant/organization/src/main/java/com/jzg/organization/controller/PtlAgreementCostController.java

@@ -5,8 +5,6 @@ import com.jzg.commons.aop.OperatorTrajectory;
 import com.jzg.commons.constants.OperationTypeEnum;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.*;
-import com.jzg.commons.entity.po.PtlAgreementCostType;
-import com.jzg.commons.entity.vo.CostListVo;
 import com.jzg.commons.entity.vo.CostsListVo;
 import com.jzg.commons.entity.vo.PtlAgreementCostTypeVo;
 import com.jzg.commons.entity.vo.PtlAgreementCostVo;
@@ -104,8 +102,7 @@ public class PtlAgreementCostController {
     @Operation(summary = "费用管理分页列表")
     @PostMapping("pageList")
     public HttpResult<CostManagementVo> pageList(@RequestBody PtlAgreementCostParam costParam){
-        HttpResult httpResult = ptlAgreementCostService.pageList(costParam);
-        return httpResult;
+        return ptlAgreementCostService.pageList(costParam);
     }
 
 }

+ 3 - 3
tenant/organization/src/main/java/com/jzg/organization/controller/ReceivableController.java

@@ -112,7 +112,7 @@ public class ReceivableController {
     @Operation(summary = "手续费开票")
     public HttpResult commissionInvoicing(@RequestBody InvoicingVo invoicingVo){
         // 设置手续费开票
-        invoicingVo.setInvoiceType("1");
+        //invoicingVo.setInvoiceType("1");
 //        boolean invoicingCheck = receivableService.invoicingCheck(invoicingVo);
 //        if(!invoicingCheck){
 //            return HttpResult.error("有订单占用");
@@ -129,10 +129,10 @@ public class ReceivableController {
     public HttpResult otherInvoicing(@RequestBody InvoicingVo invoicingVo){
         // 设置跟单费开票
         invoicingVo.setInvoiceType("2");
-        boolean invoicingCheck = receivableService.invoicingCheck(invoicingVo);
+       /* boolean invoicingCheck = receivableService.invoicingCheck(invoicingVo);
         if(!invoicingCheck){
             return HttpResult.error("有订单占用");
-        }
+        }*/
         InvoiceingResult result = receivableService.addInvoicing(invoicingVo);
         if (Objects.nonNull(result)){
             return HttpResult.ok("开票成功",result);

+ 7 - 3
tenant/organization/src/main/java/com/jzg/organization/controller/UserController.java

@@ -272,12 +272,16 @@ public class UserController extends BaseController {
 
 
     @Operation(summary = "通过用户ID查询infoID",description = "合伙人查询infoID")
-
-
-
     @GetMapping(value = "/selectByUserIdInfo")
     public SysUserJzgInfo selectByUserIdInfo(@RequestParam String userId){
         return sysUserService.selectByUserIdInfo(userId);
     }
 
+
+    @Operation(summary = "获取合伙人用户信息", description = "获取用户信息")
+    @GetMapping(value = "/getPartUserInfoByMobile")
+    public SysUserJzgInfo getPartUserInfoByMobile(@RequestParam String mobile) {
+        return sysUserService.getPartUserInfoByMobile(mobile);
+    }
+
 }

+ 0 - 3
tenant/organization/src/main/java/com/jzg/organization/mapper/PtlAgreementCostMapper.java

@@ -27,7 +27,4 @@ public interface PtlAgreementCostMapper extends BaseMapper<PtlAgreementCost> {
 
     Page<CostManagementVo> pageList(Page page,@Param("costParam") PtlAgreementCostParam costParam);
 
-
-//    PtlAgreementCostVo selectById(@Param("id") Long id);
-
 }

+ 10 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysRoleMapper.java

@@ -0,0 +1,10 @@
+package com.jzg.organization.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.po.SysRole;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface SysRoleMapper extends BaseMapper<SysRole> {
+}

+ 2 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserJzgInfoMapper.java

@@ -41,4 +41,6 @@ public interface SysUserJzgInfoMapper extends BaseMapper<SysUserJzgInfo> {
     SysUserJzgInfo selectByUserIdInfo(@Param("userId") String userId);
 
     List<String> selectTypeAttrs(@Param("userId") String userId);
+
+    SysUserJzgInfo getPartUserInfoByMobile(String mobile);
 }

+ 0 - 2
tenant/organization/src/main/java/com/jzg/organization/service/PtlAgreementCostService.java

@@ -33,6 +33,4 @@ public interface PtlAgreementCostService extends IService<PtlAgreementCost> {
 
     HttpResult pageList(PtlAgreementCostParam costParam);
 
-
-
 }

+ 1 - 5
tenant/organization/src/main/java/com/jzg/organization/service/PtlSchemeService.java

@@ -2,14 +2,10 @@ package com.jzg.organization.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.jzg.commons.entity.po.EsmInsCompany;
 import com.jzg.commons.entity.po.PtlAgreementUndwrtRulesAttr;
-import com.jzg.commons.entity.po.SysArea;
 import com.jzg.commons.entity.scheme.po.PtlScheme;
 import com.jzg.commons.entity.scheme.vo.*;
-import com.jzg.commons.entity.vo.AgreementRulesVo;
 import com.jzg.commons.entity.vo.EsmInsCompanyResVo;
-import com.jzg.commons.entity.vo.SysAreaVo;
 
 import java.util.List;
 
@@ -74,7 +70,7 @@ public interface PtlSchemeService extends IService<PtlScheme> {
      * @param schemeRuleFilterVo
      * @return
      */
-    public List<PtlAgreementInsCompanyVo> ruleFilterCompany(SchemeRuleFilterVo schemeRuleFilterVo);
+    List<PtlAgreementInsCompanyVo> ruleFilterCompany(SchemeRuleFilterVo schemeRuleFilterVo);
 
     /**
      * 获取方案结果

Неке датотеке нису приказане због велике количине промена