Przeglądaj źródła

车险报价相关问题修复

lipf 4 miesięcy temu
rodzic
commit
181bec2fff

+ 10 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteEchoVo.java

@@ -53,12 +53,22 @@ public class QuoteEchoVo extends QuoteVo {
      */
     @Data
     private static class OrderBaseVo extends OrderBase{
+        @Serial
+        private static final long serialVersionUID = -9184896455541993138L;
         private String orderStatus;
         private String companyName;
         private String productsName;
+        /**
+         * 协议id
+         */
+        private String agreementId;
         private String agreementName;
         private String agreementType;
         private String createBy;
+        /**
+         * 保司id
+         */
+        private String insuranceCompanyCode;
         @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
         private LocalDateTime createTime;
         @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

+ 6 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/orders/InsOrdersVo.java

@@ -10,6 +10,7 @@ import com.jzg.commons.entity.vo.InsTaskImagesVo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.io.Serial;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -17,6 +18,8 @@ import java.util.List;
 @Schema(description = "订单录入VO")
 public class InsOrdersVo extends QuoteVo {
 
+    @Serial
+    private static final long serialVersionUID = -4348215455728063063L;
     @Schema(description = "id")
     private String id;
 
@@ -41,6 +44,9 @@ public class InsOrdersVo extends QuoteVo {
     @Schema(description = "协议类型")
     private String agreementType;
 
+    @Schema(description = "协议id")
+    private String agreementId;
+
     @Schema(description = "审核状态")
     private byte auditStatus;
 

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

@@ -1,16 +1,14 @@
 package com.jzg.commons.util;
 
 import com.alibaba.excel.EasyExcel;
-import com.jzg.commons.entity.finance.dto.ExportSuperviseExcelDto;
-import com.jzg.commons.entity.finance.po.InsPlyIncome;
 import jakarta.servlet.http.HttpServletResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
 
 import java.io.IOException;
 import java.net.URLEncoder;
 import java.util.List;
-import java.util.Random;
-
 /**
  * @author quchen
  * @date 2025/7/21 16:32
@@ -19,6 +17,8 @@ import java.util.Random;
 @Component
 public class EasyExcelUtils {
 
+    private static final Logger log = LoggerFactory.getLogger(EasyExcelUtils.class);
+
     public static <T> void exportForWeb(HttpServletResponse response, Class<T> clazz, List<T> datas, String fileName) {
         try {
             response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
@@ -27,7 +27,7 @@ public class EasyExcelUtils {
             response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileEName + ".xlsx");
             EasyExcel.write(response.getOutputStream(), clazz).sheet(fileName).doWrite(datas);
         } catch (IOException e) {
-            e.printStackTrace();
+            log.error("导出文件异常",e);
         }
     }
 

+ 3 - 1
commons/src/main/java/com/jzg/commons/util/MinioUtils.java

@@ -445,6 +445,7 @@ public class MinioUtils {
      * 上传字节数组到MinIO
      */
     private static String uploadToMinIO(byte[] data, String originalFileName, String bucketName, String minioUrl) throws Exception {
+        log.info("上传文件到minio。 originFileName=[{}],bucketName=[{}],minioUrl=[{}]", originalFileName, bucketName, minioUrl);
         // 检查存储桶是否存在,不存在则创建
         if (!minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build())) {
             minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
@@ -457,7 +458,7 @@ public class MinioUtils {
 
         // 使用字节流上传
         try (ByteArrayInputStream inputStream = new ByteArrayInputStream(data)) {
-            minioClient.putObject(
+            ObjectWriteResponse resp = minioClient.putObject(
                     PutObjectArgs.builder()
                             .bucket(bucketName)
                             .object(objectName)
@@ -465,6 +466,7 @@ public class MinioUtils {
                             .contentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
                             .build()
             );
+            log.info("上传文件到minio. resp.etag=[{}],resp.versionId()=[{}]", resp.etag(), resp.versionId());
         }
         String baseUrl = minioUrl.endsWith("/") ? minioUrl.substring(0, minioUrl.length() - 1) : minioUrl;
         return baseUrl + "/" + bucketName + "/" + objectName;

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

@@ -51,7 +51,7 @@ public class AuthFilter implements GlobalFilter {
                     long beginTime = beginTimeObj != null ? beginTimeObj : System.currentTimeMillis();
                     long cost = System.currentTimeMillis() - beginTime;
                     log.info("e.msg=[{}]", e.getMessage());
-                    log.error("【Gateway请求异常】 请求地址:{} , 耗时: {}ms, 异常信息",path,cost, e);
+                    log.error("【Gateway请求异常】 请求地址:{} , 耗时: {}ms, 异常信息。 请检查对应的服务是否启动",path,cost, e);
                 });
     }
 }

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

@@ -35,7 +35,6 @@ public interface PlatformClient {
      * 根据保司ID查询保险公司信息
      *
      * @param id        保险公司id
-     * @param authToken
      * @return HttpResult<EsmInsCompany>
      */
     @GetMapping("/esmInsCompany/findById")

+ 15 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsOrdersController.java

@@ -14,6 +14,7 @@ import com.jzg.commons.entity.orders.vo.HistoryQuoteResultVo;
 import com.jzg.commons.entity.po.InsFeeOrders;
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
+import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.quote.vo.orders.InsOrdersAdd;
 import com.jzg.commons.entity.quote.vo.orders.InsOrdersEnd;
 import com.jzg.commons.entity.quote.vo.orders.InsOrdersVo;
@@ -117,15 +118,27 @@ public class InsOrdersController extends BaseController {
         return HttpResult.ok(insOrdersService.queryList(insOrdersParam));
     }
 
+    /**
+     * 导出车险订单
+     *      支持动态选择字段
+     * @author lipf
+     * @date 2026/4/28 15:21
+     */
     @PostMapping("exportDynamicFields")
     @Operation(summary = "动态导出订单列表字段")
-    public HttpResult exportDynamicFields(@RequestBody InsOrdersParamVO insOrdersParam) {
+    public HttpResult<String> exportDynamicFields(@RequestBody InsOrdersParamVO insOrdersParam) {
         return HttpResult.ok(insOrdersService.exportDynamicFields(insOrdersParam));
     }
 
+    /**
+     * 获取订单详情
+     *
+     * @author lipf
+     * @date 2026/4/28 16:00
+     */
     @GetMapping("getOrderDetail")
     @Operation(summary = "获取订单详情")
-    public HttpResult getOrderDetail(String ordersNo) {
+    public HttpResult<QuoteEchoVo> getOrderDetail(String ordersNo) {
         return HttpResult.ok(insOrdersService.getOrderDetail(ordersNo));
     }
 

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

@@ -207,6 +207,7 @@ public class UnifyOrderManager {
     public HttpResult<QuoteResultsVo> quote(@RequestBody QuoteVo quoteVo) throws Exception {
         log.info("进行车险报价:quoteVo=[{}]", JSONUtil.toJsonStr(quoteVo));
         HttpResult<EsmInsCompany> esmInsCompanyHttpResult = platformClient.findById(quoteVo.getOrder().getInsuranceCompanyCode());
+        log.info("车险报价:esmInsCompanyHttpResult=[{}]", JSONUtil.toJsonStr(esmInsCompanyHttpResult));
         AssertionUtils.isFail(esmInsCompanyHttpResult.getCode() != 200, esmInsCompanyHttpResult.getMsg());
         String systemCode = getSystemCode();
         String companyName = CompanyConstants.getCompanyNameByCode(esmInsCompanyHttpResult.getData().getCompanyCode());

+ 17 - 17
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/ExportBaseServiceImpl.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.summary.service.impl;
 
+import cn.hutool.json.JSONUtil;
 import com.jzg.commons.entity.report.vo.ReportSearchCommonVo;
 import com.jzg.commons.util.MinioUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -10,10 +11,10 @@ import java.util.List;
 import java.util.Set;
 
 /**
- *  @version 
- *  @author: hxl
- *  @Date: 2025/9/22 16:43
- *  @Description:  基础的实现类处理导出excel逻辑
+ * 基础的实现类处理导出excel逻辑
+ *
+ * @author hxl
+ * @Date 2025/9/22 16:43
  */
 @Slf4j
 @Service
@@ -26,10 +27,10 @@ public class ExportBaseServiceImpl {
     @Value("${minio.bucket-name:excel-files}")
     private String bucketName;
     /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2025/9/24 10:28
-     *  @Description:  通用上传文件
+     * 通用上传文件
+     *
+     * @author hxl
+     * @date 2025/9/24 10:28
      */
     public <T> void upLoadFile(ReportSearchCommonVo reportSearchCommonVo, Class<T> clazz, List<T> list, String upLoadName) {
         //打印导入数据的时间
@@ -40,14 +41,13 @@ public class ExportBaseServiceImpl {
             endTime = System.currentTimeMillis();
             long duration = endTime - startTime;
             double minutes = (double) duration / (1000 * 60);
-            log.info("方法执行时间: " + minutes + " 分钟");
-            log.debug("方法执行时间: " + minutes + " 分钟");
+            log.info("方法执行时间[{}]分钟",minutes);
         }catch (Exception e){
+            log.error("upLoadFile方法执行异常",e);
             endTime = System.currentTimeMillis();
             long duration = endTime - startTime;
             double minutes = (double) duration / (1000 * 60);
-            log.info("方法执行时间: " + minutes + " 分钟");
-            log.debug("方法执行时间: " + minutes + " 分钟");
+            log.info("方法执行异常,耗时[{}]分钟",minutes);
         }
     }
 
@@ -59,8 +59,8 @@ public class ExportBaseServiceImpl {
             Class<T> clazz,
             List<T> list,
             Set<String> includeFields,
-            String upLoadName
-    ) {
+            String upLoadName) {
+        log.info("动态字段导出:upLoadName=[{}],includeFields=[{}]",upLoadName, JSONUtil.toJsonStr(includeFields));
         long startTime = System.currentTimeMillis();
         try {
             // 调用动态导出
@@ -69,13 +69,13 @@ public class ExportBaseServiceImpl {
             );
             long duration = System.currentTimeMillis() - startTime;
             double minutes = (double) duration / (1000 * 60);
-            log.info("方法执行时间: " + minutes + " 分钟");
+            log.info("方法执行耗时[{}]分钟。fileName=[{}]", minutes,fileName);
             return fileName;
         } catch (Exception e) {
-            e.printStackTrace();
+            log.error("动态字段导出。",e);
             long duration = System.currentTimeMillis() - startTime;
             double minutes = (double) duration / (1000 * 60);
-            log.info("方法执行时间: " + minutes + " 分钟");
+            log.info("动态字段导出,方法执行异常,执行了[{}]分钟", minutes);
         }
         return "";
     }

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

@@ -1250,12 +1250,15 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
     @Override
     public QuoteEchoVo getOrderDetail(String ordersNo) {
+        log.info("获取订单详情.ordersNo=[{}]",ordersNo);
         InsOrdersVo insOrdersVo = selectById(Long.parseLong(ordersNo));
+        log.info("根据orderNo=[{}]查询到的订单明细[{}]", ordersNo, JSONUtil.toJsonStr(insOrdersVo));
         AssertionUtils.isFail(Objects.isNull(insOrdersVo), "订单不存在");
         QuoteEchoVo resultVo = new QuoteEchoVo(insOrdersVo);
         //获取保司信息
         String companyId = insOrdersVo.getInsOrders().getCompanyId();
         HttpResult<EsmInsCompany> esmInsCompanyHttpResult = platformClient.findLogoById(companyId);
+        log.info("根据保司id=[{}]获取到的保司信息如下:[{}]",companyId, JSONUtil.toJsonStr(esmInsCompanyHttpResult));
         if (esmInsCompanyHttpResult.getCode() == 200) {
             resultVo.setInsCompanyVo(esmInsCompanyHttpResult.getData());
         }
@@ -1321,6 +1324,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         //权益信息
         InsOrderRightsInfoVo insOrderRightsInfoVo = insOrderRightsInfoService.queryByOrderNo(ordersNo);
         resultVo.setInsOrderRightsInfoVo(insOrderRightsInfoVo);
+        log.info("根据订单ordersNo=[{}]获取到订单的详细信息resultVo=[{}]",ordersNo, JSONUtil.toJsonStr(resultVo));
         return resultVo;
     }
 
@@ -1542,8 +1546,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
     @Override
     public String exportDynamicFields(InsOrdersParamVO insOrdersParam) {
+        log.info("导出订单列表。支持动态选择要导出的字段:导出车险订单=[{}]", JSONUtil.toJsonStr(insOrdersParam));
         List<OrderListVo> orderListVos = insOrdersMapper.queryOrderListAll(insOrdersParam);
-
+        log.info("导出订单列表,导出[{}]条记录",CollUtil.size(orderListVos));
         // 动态设置要导出的字段
         String exportDynamicFields = insOrdersParam.getExportDynamicFields();
         Set<String> exportFields = new LinkedHashSet<>(Arrays.asList(exportDynamicFields.split(";")));

+ 4 - 0
tenant/insurance/quotation-summary/src/main/resources/mapper/InsOrdersMapper.xml

@@ -192,6 +192,8 @@
     <resultMap id="InsOrdersVoMap" type="com.jzg.commons.entity.quote.vo.orders.InsOrdersVo">
         <result property="id" column="id" jdbcType="VARCHAR"/>
         <result property="quoteNo" column="quote_no" jdbcType="VARCHAR"/>
+        <result property="agreementId" column="agreement_id" jdbcType="VARCHAR"/>
+        <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
         <result property="companyName" column="company_name" jdbcType="VARCHAR"/>
         <result property="productId" column="product_id" jdbcType="VARCHAR"/>
         <result property="productName" column="product_name" jdbcType="VARCHAR"/>
@@ -694,6 +696,8 @@
     <select id="getById" resultMap="InsOrdersVoMap">
         select id,
                quote_no,
+               agreement_id,
+               company_id,
                company_name,
                product_id,
                product_name,