Przeglądaj źródła

订单审核添加到协议里面

lipf 3 miesięcy temu
rodzic
commit
3a5acbf1af

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

@@ -1,5 +1,6 @@
 package com.jzg.commons.entity.orders.po;
 package com.jzg.commons.entity.orders.po;
 
 
+import java.io.Serial;
 import java.io.Serializable;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.Date;
@@ -21,6 +22,8 @@ import lombok.Data;
 @Schema(description = "订单批改表")
 @Schema(description = "订单批改表")
 public class InsOrderAdjust extends BaseModel {
 public class InsOrderAdjust extends BaseModel {
 
 
+    @Serial
+    private static final long serialVersionUID = -1135351989246912814L;
     @Schema(description = "主键ID")
     @Schema(description = "主键ID")
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     private String id;
     private String id;

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

@@ -8,6 +8,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
+import java.io.Serial;
+
 /**
 /**
  * 订单轨迹表
  * 订单轨迹表
  * @TableName ins_orders_track
  * @TableName ins_orders_track
@@ -17,6 +19,8 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 @NoArgsConstructor
 public class InsOrdersTrack extends BaseModel {
 public class InsOrdersTrack extends BaseModel {
 
 
+    @Serial
+    private static final long serialVersionUID = -6698449789374697351L;
     @Schema(description = "轨迹ID")
     @Schema(description = "轨迹ID")
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     private String id;
     private String id;

+ 1 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/OrderOperationLog.java

@@ -16,4 +16,5 @@ public @interface OrderOperationLog {
     String description() default "";   // 说明
     String description() default "";   // 说明
     String feedbackSpEl() default ""; // 使用 SpEL 表达式提取返回字段(可选)
     String feedbackSpEl() default ""; // 使用 SpEL 表达式提取返回字段(可选)
     String orderSpEl() default "";  // NEW: 用 SpEL 指定 入参 提取路径
     String orderSpEl() default "";  // NEW: 用 SpEL 指定 入参 提取路径
+
 }
 }

+ 57 - 4
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/OrderOperationLogAspect.java

@@ -1,8 +1,9 @@
 package com.jzg.quotation.summary.aop;
 package com.jzg.quotation.summary.aop;
 
 
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSON;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
+import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.VerifyAdjustParam;
 import com.jzg.commons.entity.dto.VerifyAdjustParam;
 import com.jzg.commons.entity.orders.po.InsOrderAdjust;
 import com.jzg.commons.entity.orders.po.InsOrderAdjust;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrders;
@@ -11,7 +12,6 @@ import com.jzg.commons.entity.orders.po.InsOrdersTrack;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
 import com.jzg.commons.entity.vo.AdjustAllRefundVo;
 import com.jzg.commons.entity.vo.AdjustAllRefundVo;
-import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.constant.SpElMapping;
 import com.jzg.quotation.commons.constant.SpElMapping;
 import com.jzg.quotation.commons.utils.SpElFieldExtractor;
 import com.jzg.quotation.commons.utils.SpElFieldExtractor;
 import com.jzg.quotation.summary.constants.QuoteNumberConstant;
 import com.jzg.quotation.summary.constants.QuoteNumberConstant;
@@ -24,6 +24,8 @@ import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.reflect.MethodSignature;
 import org.aspectj.lang.reflect.MethodSignature;
 import org.hibernate.validator.internal.util.stereotypes.Lazy;
 import org.hibernate.validator.internal.util.stereotypes.Lazy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.expression.EvaluationContext;
 import org.springframework.expression.EvaluationContext;
 import org.springframework.expression.ExpressionParser;
 import org.springframework.expression.ExpressionParser;
@@ -31,7 +33,6 @@ import org.springframework.expression.spel.standard.SpelExpressionParser;
 import org.springframework.expression.spel.support.StandardEvaluationContext;
 import org.springframework.expression.spel.support.StandardEvaluationContext;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
-import java.lang.reflect.Method;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Objects;
@@ -40,6 +41,8 @@ import java.util.Objects;
 @Component
 @Component
 public class OrderOperationLogAspect {
 public class OrderOperationLogAspect {
 
 
+    private static final Logger logger = LoggerFactory.getLogger(OrderOperationLogAspect.class);
+
     @Autowired
     @Autowired
     @Lazy
     @Lazy
     private InsOrdersService orderService;
     private InsOrdersService orderService;
@@ -141,10 +144,59 @@ public class OrderOperationLogAspect {
                 result = joinPoint.proceed();
                 result = joinPoint.proceed();
                 this.adjustSubmitLog(orderNo,result,log);
                 this.adjustSubmitLog(orderNo,result,log);
                 break;
                 break;
+            // 订单审核
+            case 14:
+                // 通过 SpEL 提取 入参
+                //orderNo = parser.parseExpression(log.orderSpEl()).getValue(context, String.class);
+                result = joinPoint.proceed();
+                HttpResult<String> res = (HttpResult)result;
+                this.dealApproveOrders(res.getData(),res,log);
+                break;
         }
         }
         return result;
         return result;
     }
     }
 
 
+    /**
+     * 订单审核(通过/驳回)
+     *
+     * @author lipf
+     * @date 2026/6/13 14:27
+     */
+    void dealApproveOrders(String orderNo, HttpResult<String> result, OrderOperationLog log){
+        logger.info("订单审核通过或驳回时记录。orderNo=[{}],result=[{}]", orderNo, JSONUtil.toJsonStr(result));
+        // 定义要提取的字段
+        List<SpElMapping> mappings = List.of(
+                new SpElMapping("msg", "#ret.msg"),
+                new SpElMapping("code", "#ret.code"),
+                new SpElMapping("data", "#ret.data")
+        );
+        // 执行提取
+        Map<String, Object> extracted = fieldExtractor.extractFields(result, mappings);
+        logger.info("extracted=[{}]", JSONUtil.toJsonStr(extracted));
+        InsOrdersTrack track = new InsOrdersTrack();
+        InsOrders insOrders = orderService.getById(orderNo);
+        if(insOrders != null){
+            InsOrdersCarInfo carInfo = carInfoService.getByOrderId(insOrders.getId());
+            track.setLicenseNo(carInfo.getLicenseNo());
+            track.setCompanyId(insOrders.getCompanyId());
+            track.setResult(result.getMsg());
+        }else{
+            track.setResult("要审核的订单不存在");
+        }
+        track.setOrderNo(orderNo);
+        track.setModule(log.module());
+        track.setSubModule(log.subModule());
+        track.setOptType(log.optType().getCode());
+        track.setOptContent(log.description());
+        if(extracted.get("code").equals(200)){
+            track.setStatus(1);
+        }else{
+            track.setStatus(0);
+        }
+        traceService.save(track);
+    }
+
+
     /**
     /**
      * 审核批改订单
      * 审核批改订单
      * @param param
      * @param param
@@ -152,6 +204,7 @@ public class OrderOperationLogAspect {
      * @param log
      * @param log
      */
      */
     private void adjustVerifyLog(VerifyAdjustParam param, Object result, OrderOperationLog log) {
     private void adjustVerifyLog(VerifyAdjustParam param, Object result, OrderOperationLog log) {
+        logger.info("adjustVerifyLog. param=[{}], result=[{}],log=[{}]", JSONUtil.toJsonStr(param), JSONUtil.toJsonStr(result), JSONUtil.toJsonStr(log));
 
 
         // 定义要提取的字段
         // 定义要提取的字段
         List<SpElMapping> mappings = List.of(
         List<SpElMapping> mappings = List.of(
@@ -215,7 +268,7 @@ public class OrderOperationLogAspect {
         track.setOptContent(log.description());
         track.setOptContent(log.description());
         track.setCompanyId(insOrders.getCompanyId());
         track.setCompanyId(insOrders.getCompanyId());
         track.setLicenseNo(carInfo.getLicenseNo());
         track.setLicenseNo(carInfo.getLicenseNo());
-
+        //track.setResult(JSONUtil.toJsonStr(result));
         if(extracted.get("code").equals(200)){
         if(extracted.get("code").equals(200)){
             track.setStatus(QuoteNumberConstant.QuoteResult.SUCCESS.getCode());
             track.setStatus(QuoteNumberConstant.QuoteResult.SUCCESS.getCode());
             traceService.save(track);
             traceService.save(track);

+ 1 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/constants/QuoteNumberConstant.java

@@ -92,7 +92,7 @@ public class QuoteNumberConstant {
         OPT_TYPE_11(11,"提交批改申请"),
         OPT_TYPE_11(11,"提交批改申请"),
         OPT_TYPE_12(12,"批改审核"),
         OPT_TYPE_12(12,"批改审核"),
         OPT_TYPE_13(13,"撤销批改"),
         OPT_TYPE_13(13,"撤销批改"),
-
+        OPT_TYPE_14(14,"订单审核"),
         ;
         ;
         private Integer code;
         private Integer code;
         private String desc;
         private String desc;

+ 15 - 4
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java

@@ -12,6 +12,8 @@ import com.jzg.commons.entity.orders.vo.AuditCostInfoVo;
 import com.jzg.commons.entity.orders.vo.FeeAuditVo;
 import com.jzg.commons.entity.orders.vo.FeeAuditVo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
 import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
+import com.jzg.quotation.summary.aop.OrderOperationLog;
+import com.jzg.quotation.summary.constants.QuoteNumberConstant;
 import com.jzg.quotation.summary.service.InsFeeAuditService;
 import com.jzg.quotation.summary.service.InsFeeAuditService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -126,6 +128,14 @@ public class InsFeeAuditController {
      *
      *
      * @return HttpResult<String>
      * @return HttpResult<String>
      */
      */
+    @OrderOperationLog(
+            module = "订单审核",
+            subModule = "我的审核",
+            optType = QuoteNumberConstant.QuoteOptType.OPT_TYPE_14,
+            description = "订单审核",
+            orderSpEl = "#quoteVo",
+            feedbackSpEl = "#ret.code + ' - ' + #ret.msg+ ' - ' + #ret.data"
+    )
     @PostMapping("/verifyOrder")
     @PostMapping("/verifyOrder")
     @Operation(summary = "审核订单")
     @Operation(summary = "审核订单")
     public HttpResult<String> verifyOrder(@RequestBody VerifyOrderParam param){
     public HttpResult<String> verifyOrder(@RequestBody VerifyOrderParam param){
@@ -133,14 +143,15 @@ public class InsFeeAuditController {
             insFeeAuditService.verifyOrder(param);
             insFeeAuditService.verifyOrder(param);
         }catch (Exception e){
         }catch (Exception e){
             log.info("审核订单发生异常:param=[{}], e", JSONUtil.toJsonStr(param), e);
             log.info("审核订单发生异常:param=[{}], e", JSONUtil.toJsonStr(param), e);
-            return HttpResult.ok(e.getMessage());
+            return HttpResult.error(e.getMessage(),param.getOrderNo());
         }
         }
+        // add by lipf ,2026年6月13日14:50:24 这里将orderNo 作为result的data传回去。 在记录订单轨迹的时候使用
         if("1".equals(Objects.toString(param.getAuditStatus(),"") )){
         if("1".equals(Objects.toString(param.getAuditStatus(),"") )){
-            return HttpResult.ok("订单审核成功");
+            return HttpResult.ok("订单审核成功",param.getOrderNo());
         }else if("2".equals(Objects.toString(param.getAuditStatus(),""))){
         }else if("2".equals(Objects.toString(param.getAuditStatus(),""))){
-            return HttpResult.ok("订单审核驳回成功");
+            return HttpResult.ok("订单审核驳回成功",param.getOrderNo());
         }else{
         }else{
-            return HttpResult.ok("订单审核状态不支持。"+param.getAuditStatus());
+            return HttpResult.ok("订单审核状态不支持。"+param.getAuditStatus(),param.getOrderNo());
         }
         }
     }
     }