Просмотр исходного кода

设为疑问订单新增轨迹变动详情

lipf 1 месяц назад
Родитель
Сommit
32f874accc

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

@@ -297,6 +297,13 @@ public class QuoteEchoVo extends QuoteVo {
     @Schema(description = "权益可用范围")
     private String clientType;
 
+    @Schema(description = "是否是疑问订单")
+    private boolean isProblem;
+    @Schema(description = "疑问订单原因")
+    private String problemReason;
+    @Schema(description = "设为疑问订单的时间")
+    private LocalDateTime problemTime;
+
     @Schema(description = "权益信息")
     private InsOrderRightsInfoVo insOrderRightsInfoVo;
 

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

@@ -78,7 +78,9 @@ public class OrderComponents {
         nameMap.put("insCompanyVo[0].id","保司ID");
         nameMap.put("order.companyName","保司名称");
         nameMap.put("order.insuranceCompanyCode","保司ID");
-
+        nameMap.put("isProblem","是否是疑问订单");
+        nameMap.put("problemReason","疑问订单原因");
+        nameMap.put("problemTime","设为疑问订单的时间");
         return nameMap;
     }
 

+ 21 - 10
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/OrderOperationLogAspect.java

@@ -86,6 +86,9 @@ public class OrderOperationLogAspect {
         Object result = null;
         // 创建 JSONConfig 并设置日期格式, 会把LocalDate 和LocalDateTime 都转换为 包含时分秒的格式(后续有了更好的办法再优化)
         JSONConfig jsonConfig = JSONConfig.create().setDateFormat("yyyy-MM-dd HH:mm:ss");
+        QuoteEchoVo detailVoOld;
+        QuoteEchoVo detailVoNew;
+        Map<String, List<String>> diffMap;
         switch (log.optType().getCode()){
             // 创建订单
             case 0:
@@ -169,18 +172,21 @@ public class OrderOperationLogAspect {
             case 15:
                 logger.info("费用调整log.orderSpEl()=[{}]",log.orderSpEl());
                 PtlAgreementCostRatioVo vo = parser.parseExpression(log.orderSpEl()).getValue(context, PtlAgreementCostRatioVo.class);
-                QuoteEchoVo detailVoOld = insFeeAuditService.auditInfo(vo.getOrderNo());
+                detailVoOld = insFeeAuditService.auditInfo(vo.getOrderNo());
                 result = joinPoint.proceed();
-                QuoteEchoVo detailVoNew = insFeeAuditService.auditInfo(vo.getOrderNo());
-                Map<String, List<String>> diffMap = JsonDiffUtil.compareJson(JSONUtil.toJsonStr(detailVoOld,jsonConfig), JSONUtil.toJsonStr(detailVoNew,jsonConfig), new HashSet<>());
+                detailVoNew = insFeeAuditService.auditInfo(vo.getOrderNo());
+                diffMap = JsonDiffUtil.compareJson(JSONUtil.toJsonStr(detailVoOld,jsonConfig), JSONUtil.toJsonStr(detailVoNew,jsonConfig), new HashSet<>());
                 this.saveCostInfo(result,log, vo,diffMap);
                 break;
             // 设为疑问订单
             case 17:
                 logger.info("设置为疑问订单.log.orderSpEl()=[{}]",log.orderSpEl());
                 QuestionOrder questionOrder = parser.parseExpression(log.orderSpEl()).getValue(context, QuestionOrder.class);
+                detailVoOld = insFeeAuditService.auditInfo(questionOrder.getOrderNo());
                 result = joinPoint.proceed();
-                this.updateToQuestionOrder(result,log, questionOrder);
+                detailVoNew = insFeeAuditService.auditInfo(questionOrder.getOrderNo());
+                diffMap = JsonDiffUtil.compareJson(JSONUtil.toJsonStr(detailVoOld,jsonConfig), JSONUtil.toJsonStr(detailVoNew,jsonConfig), new HashSet<>());
+                this.updateToQuestionOrder(result,log, questionOrder,diffMap);
                 break;
         }
         return result;
@@ -192,14 +198,14 @@ public class OrderOperationLogAspect {
      * @author lipf
      * @date 2026/7/16 16:35
      */
-    private void updateToQuestionOrder(Object result, OrderOperationLog log, QuestionOrder questionOrder) {
+    private void updateToQuestionOrder(Object result, OrderOperationLog log, QuestionOrder questionOrder,Map<String, List<String>> diffMap) {
         logger.info("设置为疑问订单。questionOrder=[{}]", JSONUtil.toJsonStr(questionOrder));
         InsOrdersTrack track = new InsOrdersTrack();
         track.setModule(log.module());
         track.setSubModule(log.subModule());
         track.setOptType(log.optType().getCode());
         track.setOptContent(log.description());
-        track.setChangeAfter(JSONUtil.toJsonStr(questionOrder));
+        //track.setChangeAfter(JSONUtil.toJsonStr(questionOrder));
         track.setResult(JSONUtil.toJsonStr(result));
         InsOrders insOrders = orderService.getById(questionOrder.getOrderNo());
         if(insOrders != null){
@@ -212,6 +218,7 @@ public class OrderOperationLogAspect {
         }
         track.setStatus(1);
         track.setOrderNo(questionOrder.getOrderNo());
+        this.fillBeforeAndAfter(diffMap, track);
         traceService.save(track);
 
     }
@@ -276,6 +283,13 @@ public class OrderOperationLogAspect {
             track.setResult("要进行费用调整的订单不存在");
         }
         track.setStatus(1);
+        this.fillBeforeAndAfter(diffMap, track);
+        track.setOrderNo(orderNo);
+        track.setResult(JSONUtil.toJsonStr(result));
+        traceService.save(track);
+    }
+
+    private void fillBeforeAndAfter(Map<String, List<String>> diffMap, InsOrdersTrack track) {
         if(CollUtil.isNotEmpty(diffMap)){
             List<String> oldItems = new ArrayList<>();
             List<String> newItems = new ArrayList<>();
@@ -292,11 +306,8 @@ public class OrderOperationLogAspect {
             track.setChangeBefore(String.join("\n", oldItems));
             track.setChangeAfter(String.join("\n", newItems));
         }
-
-        track.setOrderNo(orderNo);
-        track.setResult(JSONUtil.toJsonStr(result));
-        traceService.save(track);
     }
+
     /**
      * 订单审核(通过/驳回)
      *

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

@@ -290,6 +290,15 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         log.debug("查看订单审核详情:orderNo=[{}], detailVo=[{}]",orderNo, JSONUtil.toJsonStr(detailVo));
         InsFeeAudit audit = this.getById(orderNo);
         detailVo.setAuditStatus(audit.getAuditStatus());
+        if(audit.getIsProblem() != null){
+            if(1 ==audit.getIsProblem()){
+                detailVo.setProblem(true);
+            }else if(0 ==audit.getIsProblem()){
+                detailVo.setProblem(false);
+            }
+        }
+        detailVo.setProblemTime(audit.getProblemTime());
+        detailVo.setProblemReason(audit.getProblemReason());
         return detailVo;
     }