فهرست منبع

增加订单状态统计接口

FengChaoYu 3 هفته پیش
والد
کامیت
2fb8221639

+ 18 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/common/OrderPickTimeConfigBean.java

@@ -0,0 +1,18 @@
+package com.gree.mall.miniapp.bean.common;
+
+import com.gree.mall.miniapp.plus.entity.OrderPickTimeConfig;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel
+public class OrderPickTimeConfigBean extends OrderPickTimeConfig {
+
+    @ApiModelProperty(value = "天数时间段订单数")
+    List<OrderPickTimeCount> countList;
+}

+ 22 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/common/OrderPickTimeCount.java

@@ -0,0 +1,22 @@
+package com.gree.mall.miniapp.bean.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@ApiModel
+public class OrderPickTimeCount {
+
+    @ApiModelProperty(value = "配置id")
+    String configId;
+
+    @ApiModelProperty(value = "日期 yyyy-MM-dd")
+    String date;
+
+    @ApiModelProperty(value = "订单数量")
+    int count;
+}

+ 34 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/order/OrderStatusCountBean.java

@@ -0,0 +1,34 @@
+package com.gree.mall.manager.bean.order;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class OrderStatusCountBean {
+
+    @ApiModelProperty(value = "待确认")
+    private Integer dqr = 0;
+
+    @ApiModelProperty(value = "待拣货")
+    private Integer djh = 0;
+
+    @ApiModelProperty(value = "拣货中")
+    private Integer jhz = 0;
+
+    @ApiModelProperty(value = "待发货")
+    private Integer dfh = 0;
+
+    @ApiModelProperty(value = "待配送")
+    private Integer dps = 0;
+
+    @ApiModelProperty(value = "配送待取")
+    private Integer psdq = 0;
+
+    @ApiModelProperty(value = "配送中")
+    private Integer psz = 0;
+
+    @ApiModelProperty(value = "待退款")
+    private Integer dtk = 0;
+}

+ 9 - 0
mall-server-api/src/main/java/com/gree/mall/manager/commonmapper/OrderMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gree.mall.manager.bean.order.OrderDeliveryVO;
 import com.gree.mall.manager.bean.order.OrderDetailListBean;
+import com.gree.mall.manager.bean.order.OrderStatusCountBean;
 import com.gree.mall.manager.plus.entity.OrderInfo;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import org.apache.ibatis.annotations.Mapper;
@@ -36,4 +37,12 @@ public interface OrderMapper {
 
 
     IPage<OrderDeliveryVO> orderDelivery(Page page,  @Param("ex") ZfireParamBean zfireParam,@Param("companyWechatIds") List<String> companyWechatIds);
+
+    /**
+     * 统计工单状态数量
+     * @return
+     * @param companyWechatIds
+     * @param storageIds
+     */
+    OrderStatusCountBean statusCount(@Param("companyWechatIds") List<String> companyWechatIds, @Param("storageIds") List<String> storageIds);
 }

+ 7 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/order/OrderController.java

@@ -468,4 +468,11 @@ public class OrderController {
         orderLogic.partsApplyRecordEnd(id);
         return ResponseHelper.success();
     }
+
+    @PostMapping("/status/count")
+    @ApiOperation("订单状态统计")
+    public ResponseHelper<OrderStatusCountBean> statusCount() {
+        OrderStatusCountBean bean = orderLogic.statusCount();
+        return ResponseHelper.success(bean);
+    }
 }

+ 13 - 4
mall-server-api/src/main/java/com/gree/mall/manager/logic/order/OrderLogic.java

@@ -921,10 +921,10 @@ public class OrderLogic {
         orderInfo.updateById();
 
         // 确认订单减少物料库存
-        final List<OrderDetail> orderDetailList = orderDetailService.lambdaQuery()
-                .eq(OrderDetail::getOrderId, orderInfo.getOrderId())
-                .list();
-        this.handleGoodsMaterialStock(orderInfo, orderDetailList, adminUser, DirectFlagEnum.SUB, "确认订单", "确认订单");
+//        final List<OrderDetail> orderDetailList = orderDetailService.lambdaQuery()
+//                .eq(OrderDetail::getOrderId, orderInfo.getOrderId())
+//                .list();
+//        this.handleGoodsMaterialStock(orderInfo, orderDetailList, adminUser, DirectFlagEnum.SUB, "确认订单", "确认订单");
     }
 
     /**
@@ -1474,4 +1474,13 @@ public class OrderLogic {
                 .in(OrderInfo::getOrderId, orderIds)
                 .update();
     }
+
+    public OrderStatusCountBean statusCount() {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        OrderStatusCountBean bean = orderMapper.statusCount(adminUser.getCompanyWechatIds(), adminUser.getStorageIds());
+        if (Objects.isNull(bean)) {
+            return new OrderStatusCountBean();
+        }
+        return bean;
+    }
 }

+ 28 - 0
mall-server-api/src/main/resources/mapper/OrderMapper.xml

@@ -207,4 +207,32 @@
         ${ex.orderBy}
     </select>
 
+    <select id="statusCount" resultType="com.gree.mall.manager.bean.order.OrderStatusCountBean">
+        SELECT
+            SUM(IF(a.order_status = 'DQR', 1, 0)) AS 'dqr',
+            SUM(IF(a.order_status = 'DJH', 1, 0)) AS 'djh',
+            SUM(IF(a.order_status = 'JHZ', 1, 0)) AS 'jhz',
+            SUM(IF(a.order_status = 'DFH', 1, 0)) AS 'dfh',
+            SUM(IF(a.order_status = 'DPS', 1, 0)) AS 'dps',
+            SUM(IF(a.order_status = 'PSDQ', 1, 0)) AS 'psdq',
+            SUM(IF(a.order_status = 'PSZ', 1, 0)) AS 'psz',
+            SUM(IF(a.order_status = 'DTK', 1, 0)) AS 'dtk'
+        FROM
+            order_info a
+        WHERE
+            a.order_status IN ('DQR', 'DJH', 'JHZ', 'DFH', 'DPS', 'PSDQ', 'PSZ', 'DTK')
+            <if test="companyWechatIds != null and companyWechatIds.size > 0">
+                AND a.company_wechat_id in
+                <foreach item="item" index="index" collection="companyWechatIds" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="storageIds != null and storageIds.size > 0">
+                AND a.pick_storage_id in
+                <foreach item="item" index="index" collection="storageIds" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+    </select>
+
 </mapper>