Преглед на файлове

提供贸易订单类型分组统计订单数量dubbo接口

yzc преди 2 години
родител
ревизия
0e3c7d6443

+ 22 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/dubbo/TradeOrderStatisticsService.java

@@ -0,0 +1,22 @@
+package com.sckw.order.api.dubbo;
+
+import com.sckw.order.api.model.TradeOrderCountStatisticsDTO;
+
+import java.util.List;
+
+/**
+ * @desc: 贸易订单统计dubbo接口
+ * @author: yzc
+ * @date: 2023-09-11 10:44
+ */
+public interface TradeOrderStatisticsService {
+
+    /**
+     * @desc: 根据一级企业id获取订单数量
+     * @author: yzc
+     * @date: 2023-09-11 10:42
+     * @Param topEntId:
+     * @return: java.util.List<com.sckw.order.api.model.TradeOrderCountStatisticsDTO>
+     */
+    List<TradeOrderCountStatisticsDTO> getOrderNumByTopEntId(Long topEntId);
+}

+ 39 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/TradeOrderCountStatisticsDTO.java

@@ -0,0 +1,39 @@
+package com.sckw.order.api.model;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @desc: 贸易订单数量统计响应DTO
+ * @author: yzc
+ * @date: 2023-09-11 10:36
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class TradeOrderCountStatisticsDTO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = -1549630460815862179L;
+
+    /**
+     * 订单类型(1采购,2销售)
+     */
+    private Integer orderType;
+
+    /**
+     * 销售订单、采购订单
+     */
+    private String name;
+
+    /**
+     * 订单数量
+     */
+    private Integer num;
+
+}

+ 18 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/dao/KwoTradeOrderMapper.java

@@ -1,11 +1,13 @@
 package com.sckw.order.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.order.api.model.TradeOrderCountStatisticsDTO;
 import com.sckw.order.model.KwoTradeOrder;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @desc: 交易订单(采购订单/销售订单)mapper
@@ -15,5 +17,21 @@ import java.util.Date;
 @Mapper
 public interface KwoTradeOrderMapper extends BaseMapper<KwoTradeOrder> {
 
+    /**
+     * @desc: 获取指定日期最大订单号
+     * @author: yzc
+     * @date: 2023-09-11 11:44
+     * @Param date:
+     * @return: java.lang.String
+     */
     String getMaxOrderNoByDate(@Param("date") Date date);
+
+    /**
+     * @desc: 根据一级企业id查询,企业类型分组,统计非草稿的订单数量
+     * @author: yzc
+     * @date: 2023-09-11 11:44
+     * @Param topEntId:
+     * @return: java.util.List<com.sckw.order.api.model.TradeOrderCountStatisticsDTO>
+     */
+    List<TradeOrderCountStatisticsDTO> getOrderNumByTopEntId(@Param("topEntId") Long topEntId);
 }

+ 33 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/dubbo/TradeOrderStatisticsServiceImpl.java

@@ -0,0 +1,33 @@
+package com.sckw.order.dubbo;
+
+import com.sckw.order.api.dubbo.TradeOrderStatisticsService;
+import com.sckw.order.api.model.TradeOrderCountStatisticsDTO;
+import com.sckw.order.enums.OrderTypeEnum;
+import com.sckw.order.serivce.KwoTradeOrderService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboService;
+
+import java.util.List;
+
+/**
+ * @desc: 贸易订单统计dubbo接口实现
+ * @author: yzc
+ * @date: 2023-09-11 10:43
+ */
+@DubboService(group = "design", version = "1.0.0")
+@Slf4j
+@RequiredArgsConstructor
+public class TradeOrderStatisticsServiceImpl implements TradeOrderStatisticsService {
+
+    private final KwoTradeOrderService kwoTradeOrderService;
+
+    @Override
+    public List<TradeOrderCountStatisticsDTO> getOrderNumByTopEntId(Long topEntId) {
+        List<TradeOrderCountStatisticsDTO> list = kwoTradeOrderService.getOrderNumByTopEntId(topEntId);
+        list.forEach(e -> {
+            e.setName(OrderTypeEnum.getLabel(e.getOrderType()));
+        });
+        return list;
+    }
+}

+ 30 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/enums/OrderTypeEnum.java

@@ -0,0 +1,30 @@
+package com.sckw.order.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @desc: 订单类型枚举
+ * @author: yzc
+ * @date: 2023-09-11 11:51
+ */
+@Getter
+@AllArgsConstructor
+public enum OrderTypeEnum {
+
+    PURCHASE_ORDER(1, "采购订单"),
+    SALE_ORDER(2, "销售订单");
+
+    private final Integer type;
+
+    private final String label;
+
+    public static String getLabel(Integer type) {
+        for (OrderTypeEnum ele : OrderTypeEnum.values()) {
+            if (ele.getType().equals(type)) {
+                return ele.getLabel();
+            }
+        }
+        return null;
+    }
+}

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

@@ -21,6 +21,7 @@ import com.sckw.core.web.response.HttpResult;
 import com.sckw.manage.api.RemoteManageService;
 import com.sckw.manage.api.model.dto.res.FindEntCooperateResVo;
 import com.sckw.mongo.model.SckwTradeOrder;
+import com.sckw.order.api.model.TradeOrderCountStatisticsDTO;
 import com.sckw.order.dao.KwoTradeOrderMapper;
 import com.sckw.order.model.*;
 import com.sckw.order.model.dto.OrderCheckDTO;
@@ -1197,4 +1198,15 @@ public class KwoTradeOrderService {
         List<KwoTradeOrder> list = kwoTradeOrderMapper.selectList(wrapper);
         return CollectionUtils.emptyIfNull(list);
     }
+
+    /**
+     * @desc: 根据一级企业id查询,企业类型分组,统计非草稿的订单数量
+     * @author: yzc
+     * @date: 2023-09-11 11:46
+     * @Param topEntId:
+     * @return: java.util.List<com.sckw.order.api.model.TradeOrderCountStatisticsDTO>
+     */
+    public List<TradeOrderCountStatisticsDTO> getOrderNumByTopEntId(Long topEntId) {
+        return kwoTradeOrderMapper.getOrderNumByTopEntId(topEntId);
+    }
 }

+ 11 - 0
sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml

@@ -6,4 +6,15 @@
     <select id="getMaxOrderNoByDate" resultType="java.lang.String">
         SELECT MAX(t_order_no) FROM kwo_trade_order WHERE create_time &gt;= #{date};
     </select>
+
+    <select id="getOrderNumByTopEntId" resultType="com.sckw.order.api.model.TradeOrderCountStatisticsDTO">
+        SELECT
+            u.unit_type AS orderType,
+            COUNT(*) AS num
+        FROM kwo_trade_order o
+        LEFT JOIN kwo_trade_order_unit u
+        ON o.id = u.t_order_id
+        WHERE o.del_flag =0 AND o.status != 0 and u.del_flag = 0 AND u.top_ent_id = #{topEntId}
+        GROUP BY u.unit_type
+    </select>
 </mapper>