Prechádzať zdrojové kódy

贸易订单详情返回订单进程

yzc 2 rokov pred
rodič
commit
43682499b8

+ 1 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java

@@ -93,7 +93,7 @@ public class KwoTradeOrderController {
     @GetMapping("/detail")
     @Log(description = "贸易订单详情")
     public HttpResult detail(@RequestParam Long id) {
-        return HttpResult.ok("贸易订单详情查询成功",kwoTradeOrderService.detail(id));
+        return HttpResult.ok("贸易订单详情查询成功",kwoTradeOrderService.getDetail(id));
     }
 
     /**

+ 5 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderDetailRes.java

@@ -171,4 +171,9 @@ public class OrderDetailRes implements Serializable {
      */
     private ContractInfo contractInfo;
 
+    /**
+     * 订单进程
+     */
+    private List<OrderProcess> orderProcess;
+
 }

+ 41 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderProcess.java

@@ -0,0 +1,41 @@
+package com.sckw.order.model.vo.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @desc: 订单进程响应
+ * @author: yzc
+ * @date: 2023-08-18 10:58
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class OrderProcess implements Serializable {
+    @Serial
+    private static final long serialVersionUID = -6898399955577194444L;
+
+    private Integer status;
+
+    private String statusLabel;
+
+    private String remark;
+
+    private Long createBy;
+
+    private String createByName;
+
+    private String roleName;
+
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+}

+ 34 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -39,6 +39,7 @@ import com.sckw.stream.model.SckwBusSum;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
+import com.sckw.system.api.model.dto.res.KwsRoleResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.transport.api.dubbo.TransportDubboService;
 import lombok.RequiredArgsConstructor;
@@ -388,6 +389,39 @@ public class KwoTradeOrderService {
         addOtherOrderInfo(order, BeanUtils.copyProperties(param, ValetOrderParam.class), false);
     }
 
+    /**
+     * @desc: 获取订单详情
+     * @author: yzc
+     * @date: 2023-08-18 11:18
+     * @Param id:
+     * @return: com.sckw.order.model.vo.res.OrderDetailRes
+     */
+    public OrderDetailRes getDetail(Long id) {
+        OrderDetailRes detail = this.detail(id);
+        List<KwoTradeOrderTrack> tracks = kwoTradeOrderTrackService.getByOrderId(id);
+        if (CollectionUtils.isEmpty(tracks)) {
+            return detail;
+        }
+        List<OrderProcess> orderProcesses = new ArrayList<>(tracks.size());
+        List<Long> createBys = tracks.stream().map(KwoTradeOrderTrack::getCreateBy).distinct().toList();
+        Map<Long, UserCacheResDto> map = remoteSystemService.queryUserCacheMapByIds(createBys);
+        tracks.forEach(e -> {
+            OrderProcess process = BeanUtils.copyProperties(e, OrderProcess.class);
+            UserCacheResDto user = map.get(process.getCreateBy());
+            if (Objects.nonNull(user)) {
+                process.setCreateByName(user.getName());
+                if (CollectionUtils.isNotEmpty(user.getRoleInfo())) {
+                    List<String> roleNames = user.getRoleInfo().stream().map(KwsRoleResDto::getName).distinct().toList();
+                    process.setRoleName(String.join(",", roleNames));
+                }
+            }
+            process.setStatusLabel(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(process.getStatus())));
+            orderProcesses.add(process);
+        });
+        detail.setOrderProcess(orderProcesses);
+        return detail;
+    }
+
     /**
      * @desc: 订单详情
      * @author: yzc

+ 15 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderTrackService.java

@@ -2,6 +2,7 @@ package com.sckw.order.serivce;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.utils.CollectionUtils;
 import com.sckw.order.dao.KwoTradeOrderTrackMapper;
 import com.sckw.order.model.KwoTradeOrderTrack;
 import lombok.RequiredArgsConstructor;
@@ -33,6 +34,20 @@ public class KwoTradeOrderTrackService {
         kwoTradeOrderTrackMapper.insert(track);
     }
 
+    /**
+     * @desc: 根据订单id获取
+     * @author: yzc
+     * @date: 2023-08-18 11:02
+     * @Param orderId:
+     * @return: java.util.List<com.sckw.order.model.KwoTradeOrderTrack>
+     */
+    public List<KwoTradeOrderTrack> getByOrderId(Long orderId) {
+        LambdaQueryWrapper<KwoTradeOrderTrack> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwoTradeOrderTrack::getTOrderId,orderId).eq(KwoTradeOrderTrack::getDelFlag, Global.NO).last("LIMIT 1");
+        List<KwoTradeOrderTrack> list = kwoTradeOrderTrackMapper.selectList(wrapper);
+        return CollectionUtils.emptyIfNull(list);
+    }
+
     /**
      * @desc: 根据订单id获取
      * @author: yzc