Browse Source

SKU使用码数量查询报表

v_KaixiangGuo 3 years ago
parent
commit
249fcc75c5

+ 8 - 3
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/ReportController.java

@@ -2,6 +2,7 @@ package com.abi.qms.platform.controller.console;
 
 import com.abi.qms.platform.dto.req.ReportReq;
 import com.abi.qms.platform.dto.res.ListBrandCodeReportRes;
+import com.abi.qms.platform.dto.res.ListSkuCodeRankingReportRes;
 import com.abi.qms.platform.service.ReportService;
 import com.abi.task.common.api.base.BaseResponse;
 import io.swagger.annotations.Api;
@@ -9,9 +10,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -41,4 +40,10 @@ public class ReportController {
        return BaseResponse.create(result);
     }
 
+    @ApiOperation("SKU使用码量排名")
+    @PostMapping("/querySkuCodeRanking")
+    public BaseResponse<ListSkuCodeRankingReportRes> querySkuCodeRanking(@RequestBody ReportReq reportReq) {
+        ListSkuCodeRankingReportRes result= reportService.querySkuCodeRanking(reportReq);
+        return BaseResponse.create(result);
+    }
 }

+ 8 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/ReportServiceMapper.java

@@ -1,6 +1,7 @@
 package com.abi.qms.platform.dao.mapper;
 
 import com.abi.qms.platform.dao.vo.result.ListBrandCodeReportVO;
+import com.abi.qms.platform.dao.vo.result.ListSkuCodeReportVO;
 import com.abi.qms.platform.dto.req.ReportReq;
 import org.apache.ibatis.annotations.Param;
 
@@ -20,4 +21,11 @@ public interface ReportServiceMapper  {
      * @return java.util.List<com.abi.qms.platform.dao.vo.result.ListBrandCodeReportVO>
      */
     List<ListBrandCodeReportVO> queryBrandCodeProportion(@Param("reportReq") ReportReq reportReq);
+
+    /**
+     * SKU使用码量排名
+     * @param reportReq
+     * @return
+     */
+    List<ListSkuCodeReportVO> querySkuCodeRanking(@Param("reportReq") ReportReq reportReq);
 }

+ 22 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/ListSkuCodeReportVO.java

@@ -0,0 +1,22 @@
+package com.abi.qms.platform.dao.vo.result;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author guokaixiang
+ * @date 2021年06月02日 16:39
+ */
+@Data
+@ApiModel
+public class ListSkuCodeReportVO implements Serializable {
+
+    @ApiModelProperty("品牌名称")
+    private String skuName;
+
+    @ApiModelProperty("码数量")
+    private Long qrNumber;
+}

+ 37 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/ListSkuCodeRankingReportRes.java

@@ -0,0 +1,37 @@
+package com.abi.qms.platform.dto.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author guokaixiang
+ * @date 2021年06月02日 16:26
+ */
+@Data
+@ApiModel
+public class ListSkuCodeRankingReportRes implements Serializable {
+
+    @ApiModelProperty("品牌使用码量占比列表")
+    private List<SkuCodeReportResBean> reportSkuCodeRankingResList;
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ToString
+    @ApiModel(value = "ListSkuCodeRankingReportRes_SkuCodeReportResBean")
+    public static class SkuCodeReportResBean implements Serializable {
+
+        @ApiModelProperty("品牌名称")
+        private String skuName;
+
+        @ApiModelProperty("码数量")
+        private Long qrNumber;
+    }
+}

+ 9 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/ReportService.java

@@ -2,6 +2,7 @@ package com.abi.qms.platform.service;
 
 import com.abi.qms.platform.dto.req.ReportReq;
 import com.abi.qms.platform.dto.res.ListBrandCodeReportRes;
+import com.abi.qms.platform.dto.res.ListSkuCodeRankingReportRes;
 
 /**
  * @author ludashi
@@ -17,5 +18,12 @@ public interface ReportService {
     * @return com.abi.qms.platform.dto.res.ListBrandCodeReportRes
     */
    ListBrandCodeReportRes queryBrandCodeProportion(ReportReq reportReq);
-    
+
+
+   /**
+    * SKU使用码量排名
+    * @param reportReq
+    * @return
+    */
+   ListSkuCodeRankingReportRes querySkuCodeRanking(ReportReq reportReq);
 }

+ 17 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/ReportServiceImpl.java

@@ -2,8 +2,10 @@ package com.abi.qms.platform.service.impl;
 
 import com.abi.qms.platform.dao.mapper.ReportServiceMapper;
 import com.abi.qms.platform.dao.vo.result.ListBrandCodeReportVO;
+import com.abi.qms.platform.dao.vo.result.ListSkuCodeReportVO;
 import com.abi.qms.platform.dto.req.ReportReq;
 import com.abi.qms.platform.dto.res.ListBrandCodeReportRes;
+import com.abi.qms.platform.dto.res.ListSkuCodeRankingReportRes;
 import com.abi.qms.platform.service.ReportService;
 import com.abi.task.common.utils.PojoConverterUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,4 +39,19 @@ public class ReportServiceImpl implements ReportService {
         res.setReportBrandCodeResList(reportRes);
         return res;
     }
+
+    /**
+     * SKU使用码量排名
+     * @param reportReq
+     * @return
+     */
+    @Override
+    public ListSkuCodeRankingReportRes querySkuCodeRanking(ReportReq reportReq) {
+        List<ListSkuCodeReportVO> listSkuCodeReportVOS = reportServiceMapper.querySkuCodeRanking(reportReq);
+        // 封装出参
+        ListSkuCodeRankingReportRes res = new ListSkuCodeRankingReportRes();
+        List<ListSkuCodeRankingReportRes.SkuCodeReportResBean> skuCodeReportResBeans = PojoConverterUtils.copyList(listSkuCodeReportVOS, ListSkuCodeRankingReportRes.SkuCodeReportResBean.class);
+        res.setReportSkuCodeRankingResList(skuCodeReportResBeans);
+        return res;
+    }
 }

+ 23 - 0
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/ReportServiceMapper.xml

@@ -36,4 +36,27 @@
             ) AS quer
         GROUP BY quer.brand_name
     </select>
+
+    <select id="querySkuCodeRanking" resultType="com.abi.qms.platform.dao.vo.result.ListSkuCodeReportVO">
+        select bs.sku_name,sum(qp.qr_number) as qr_number
+        from qr_package qp
+        LEFT JOIN base_material bm on qp.material_id  = bm.id
+        LEFT JOIN base_sku bs on bm.sku_id  = bs.id
+        <where>
+            qp.generate_status = 2
+            <!--   1本周  -->
+            <if test="null != reportReq.value and reportReq.value == 1">
+                yearweek(date_format(qp.generate_time,'%Y-%m-%d')) = yearweek(now())
+            </if>
+            <!--  2本月 -->
+            <if test="null != reportReq.value and reportReq.value == 2">
+                and date_format(qp.generate_time,'%Y-%m')=date_format(now(),'%Y-%m')
+            </if>
+            <if test="null != reportReq.beginTime and null != reportReq.endTime">
+                and #{reportReq.beginTime} &lt; qp.generate_time &lt; #{reportReq.endTime}
+            </if>
+        </where>
+        GROUP BY bs.sku_name
+        ORDER BY qr_number DESC
+    </select>
 </mapper>