Browse Source

Merge remote-tracking branch 'origin/feature/1.0.0' into feature/1.0.0

luyanwen-001 3 years ago
parent
commit
5e4609da07

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

@@ -29,21 +29,21 @@ public interface ReportServiceMapper  {
      * @param reportReq
      * @return
      */
-    List<ListPackageCodeVo> queryPackageCodeNum(@Param("reportReq") ReportReq reportReq);
+    List<ListPackageCodeVo> queryPackageCodeNum(@Param("reportReq") ReportReq reportReq,@Param("beginDate")LocalDateTime beginDate,@Param("endDate")LocalDateTime endDate);
 
     /**
      * 查询下载码数量
      * @param reportReq
      * @return
      */
-    List<ListPackageCodeVo> queryLoadPackageCodeNum(@Param("reportReq") ReportReq reportReq);
+    List<ListPackageCodeVo> queryLoadPackageCodeNum(@Param("reportReq") ReportReq reportReq,@Param("beginDate")LocalDateTime beginDate,@Param("endDate")LocalDateTime endDate);
 
     /**
      * 查询激活码数量
      * @param reportReq
      * @return
      */
-    List<ListPackageCodeVo> queryActivateCodeNum(@Param("reportReq") ReportReq reportReq);
+    List<ListPackageCodeVo> queryActivateCodeNum(@Param("reportReq") ReportReq reportReq,@Param("beginDate")LocalDateTime beginDate,@Param("endDate")LocalDateTime endDate);
 
     /**
      * SKU使用码量排名

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

@@ -19,6 +19,7 @@ import org.springframework.util.ObjectUtils;
 
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
+import java.time.DayOfWeek;
 import java.time.Instant;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
@@ -168,28 +169,31 @@ public class ReportServiceImpl implements ReportService {
         PackageCodeTypeRes res = new PackageCodeTypeRes();
         int before=0;//往期
         int present=0;//同期
+        //封装入参
+        Map<String,LocalDateTime> map=null;
+        if(!ObjectUtils.isEmpty(reportReq) && null == reportReq.getEndTime() && null == reportReq.getBeginTime()){
+            HashMap<String, LocalDateTime> timestamp = getTimestamp(reportReq.getValue());
+            reportReq.setBeginTime( timestamp.get("startTime"));
+            reportReq.setEndTime( timestamp.get("endTime"));
+            if(1==reportReq.getValue()){//周
+                map=getBeforeWeekTimes();
+            }
+            if(2==reportReq.getValue()){//月
+                map=getBeforeMonthTime();
+            }
+        }
         //1.生成码数量
-        getGenerateCodeNum(reportReq, res,present,before);
+        getGenerateCodeNum(reportReq, res,present,before,map);
         //2.下载码数量
-        getLoadCodeNum(reportReq, res,present,before);
+        getLoadCodeNum(reportReq, res,present,before,map);
         //3.激活码数量
-        getActivateCodeNum(reportReq, res,present,before);
+        getActivateCodeNum(reportReq, res,present,before,map);
         //返回参数
         return res;
     }
 
-    private void getGenerateCodeNum(ReportReq reportReq, PackageCodeTypeRes res, int present, int before) {
-        //封装入参
-        if(!ObjectUtils.isEmpty(reportReq) &&
-                null == reportReq.getEndTime() &&
-                null == reportReq.getBeginTime()){
-            HashMap<String, LocalDateTime> timestamp = getTimestamp(reportReq.getValue());
-            reportReq.setBeginTime( timestamp.get("startTime"));
-            reportReq.setEndTime( timestamp.get("endTime"));
-        }
-        LocalDateTime beforeTime=null;
-        LocalDateTime presentTime=null;//todayOfLastWeek
-        List<ListPackageCodeVo> createList = reportServiceMapper.queryPackageCodeNum(reportReq);
+    private void getGenerateCodeNum(ReportReq reportReq, PackageCodeTypeRes res, int present, int before,Map<String,LocalDateTime> map) {
+        List<ListPackageCodeVo> createList = reportServiceMapper.queryPackageCodeNum(reportReq,map.get("beginDate"), map.get("endDate"));
         /**
          * 处理逻辑
          * 1.取出本周的数据集
@@ -217,8 +221,8 @@ public class ReportServiceImpl implements ReportService {
             res.setCreatePercent(result);//获取同比增长率
         }
     }
-    private void getLoadCodeNum(ReportReq reportReq, PackageCodeTypeRes res, int present, int before) {
-        List<ListPackageCodeVo> loadList = reportServiceMapper.queryLoadPackageCodeNum(reportReq);
+    private void getLoadCodeNum(ReportReq reportReq, PackageCodeTypeRes res, int present, int before,Map<String,LocalDateTime> map) {
+        List<ListPackageCodeVo> loadList = reportServiceMapper.queryLoadPackageCodeNum(reportReq,map.get("beginDate"), map.get("endDate"));
         for (int i = 0; i < loadList.size(); i++) {
             if("0".equals(loadList.get(i).getPercent())) {
                 if (QrTypeEnum.CARTON.getCode().equals(loadList.get(i).getQrType())) {
@@ -240,8 +244,8 @@ public class ReportServiceImpl implements ReportService {
             res.setLoadPercent(result);//获取同比增长率
         }
     }
-    private void getActivateCodeNum(ReportReq reportReq, PackageCodeTypeRes res, int present, int before) {
-        List<ListPackageCodeVo> activateList = reportServiceMapper.queryActivateCodeNum(reportReq);
+    private void getActivateCodeNum(ReportReq reportReq, PackageCodeTypeRes res, int present, int before,Map<String,LocalDateTime> map) {
+        List<ListPackageCodeVo> activateList = reportServiceMapper.queryActivateCodeNum(reportReq,map.get("beginDate"), map.get("endDate"));
         for (int i = 0; i < activateList.size(); i++) {
             if("0".equals(activateList.get(i).getPercent())) {
                 if (QrTypeEnum.CARTON.getCode().equals(activateList.get(i).getQrType())) {
@@ -263,9 +267,6 @@ public class ReportServiceImpl implements ReportService {
         }
 
     }
-
-
-
     /**
      * @param preNum 同期数
      * @param sufNum 往期数
@@ -342,7 +343,7 @@ public class ReportServiceImpl implements ReportService {
      * 获取上月月初和月末日期
      * @return
      */
-    public Map<String,LocalDateTime> getBeforeTime(){
+    public Map<String,LocalDateTime> getBeforeMonthTime(){
         Map<String,LocalDateTime> map=new HashMap<String,LocalDateTime>();
         DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         String localTime = fmt.format(LocalDateTime.now());
@@ -350,8 +351,23 @@ public class ReportServiceImpl implements ReportService {
         LocalDateTime localDateTime = date2.minusMonths(1);
         LocalDateTime with = localDateTime.with(TemporalAdjusters.lastDayOfMonth());
         LocalDateTime with2 = localDateTime.with(TemporalAdjusters.firstDayOfMonth());
-        map.put("startMonth",localDateTime.with(TemporalAdjusters.lastDayOfMonth()));
-        map.put("endMonth",localDateTime.with(TemporalAdjusters.firstDayOfMonth()));
+        map.put("beginDate",localDateTime.with(TemporalAdjusters.lastDayOfMonth()));
+        map.put("endDate",localDateTime.with(TemporalAdjusters.firstDayOfMonth()));
+        return map;
+    }
+
+    /**
+     * 获取上周周一和周末的数据
+     * @return
+     */
+    public Map<String,LocalDateTime> getBeforeWeekTimes(){
+        Map<String,LocalDateTime> map=new HashMap<String,LocalDateTime>();
+        LocalDateTime now = LocalDateTime.now();
+        LocalDateTime todayOfLastWeek = now.minusDays(7);
+        LocalDateTime monday = todayOfLastWeek.with(TemporalAdjusters.previous(DayOfWeek.SUNDAY)).plusDays(1);
+        LocalDateTime sunday = todayOfLastWeek.with(TemporalAdjusters.next(DayOfWeek.MONDAY)).minusDays(1);
+        map.put("beginDate",monday);
+        map.put("endDate",sunday);
         return map;
     }
 

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

@@ -83,7 +83,7 @@
         AND  qr_type is not null
         <!--   1本周  -->
         <if test="null != reportReq.value and reportReq.value == 1">
-            AND yearweek(date_format(generate_time,'%Y-%m-%d')) = yearweek(now())
+            AND  #{reportReq.beginTime} &lt; generate_time &lt; #{reportReq.endTime}
             GROUP BY qr_type
             UNION ALL
             SELECT
@@ -92,13 +92,13 @@
                 '1' Percent from qr_package
             WHERE
                 generate_status = 2
-            AND YEARWEEK(date_format(generate_time,'%Y-%m-%d')) = YEARWEEK(now())-1
+            AND #{beginDate} &lt; generate_time &lt; #{endDate}
             AND qr_type is not null
             GROUP BY qr_type
         </if>
         <!--  2本月 -->
         <if test="null != reportReq.value and reportReq.value == 2">
-            AND date_format(generate_time,'%Y-%m')=date_format(now(),'%Y-%m')
+            AND #{reportReq.beginTime} &lt; generate_time &lt; #{reportReq.endTime}
             GROUP BY qr_type
             UNION ALL
             SELECT
@@ -108,7 +108,7 @@
             FROM qr_package
             WHERE
                 generate_status = 2
-            AND date_format(generate_time,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')
+            AND  #{beginDate} &lt; generate_time &lt; #{endDate}
             AND qr_type is not null
             GROUP BY qr_type
         </if>
@@ -131,7 +131,7 @@
             package.is_download='1' AND package.qr_type IS NOT NULL
             <!--   1本周  -->
             <if test="null != reportReq.value and reportReq.value == 1">
-                AND yearweek(date_format(download.create_time,'%Y-%m-%d')) = yearweek(now())
+                AND #{reportReq.beginTime} &lt; download.create_time &lt; #{reportReq.endTime}
                 GROUP BY package.qr_type
                 UNION ALL
                 SELECT
@@ -141,13 +141,13 @@
                 FROM qr_package package
                     LEFT JOIN qr_package_download_record download ON package.id=download.qr_package_id
                 WHERE  package.is_download='1'
-                AND YEARWEEK(date_format(download.create_time,'%Y-%m-%d')) = YEARWEEK(now())-1
+                AND #{beginDate} &lt; download.create_time &lt; #{endDate}
                 AND package.qr_type IS NOT NULL
                 GROUP BY package.qr_type
             </if>
             <!--  2本月 -->
             <if test="null != reportReq.value and reportReq.value == 2">
-                AND date_format(download.create_time,'%Y-%m')=date_format(now(),'%Y-%m')
+                AND #{reportReq.beginTime} &lt; download.create_time &lt; #{reportReq.endTime}
                 GROUP BY package.qr_type
                 UNION ALL
                 SELECT
@@ -157,7 +157,7 @@
                 FROM qr_package package
                 LEFT JOIN qr_package_download_record download ON package.id=download.qr_package_id
                 WHERE package.is_download='1'
-                AND date_format(download.create_time,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')
+                AND #{beginDate} &lt; download.create_time &lt; #{endDate}
                 AND package.qr_type IS NOT NULL
                 GROUP BY package.qr_type
             </if>
@@ -180,7 +180,7 @@
             boxmap.active_status ='1' AND  package.qr_type IS NOT NULL
             <!--   1本周  -->
             <if test="null != reportReq.value and reportReq.value == 1">
-                AND yearweek(date_format(boxmap.active_time,'%Y-%m-%d')) = yearweek(now())
+                AND #{reportReq.beginTime} &lt; boxmap.active_time &lt; #{reportReq.endTime}
                 GROUP BY package.qr_type
                 UNION ALL
                 SELECT
@@ -190,13 +190,13 @@
                 FROM qr_package package
                     LEFT JOIN qr_box_mapping boxmap ON package.id=boxmap.package_id
                 WHERE  boxmap.active_status ='1'
-                AND YEARWEEK(date_format(boxmap.active_time,'%Y-%m-%d')) = YEARWEEK(now())-1
+                AND #{beginDate} &lt; boxmap.active_time &lt; #{endDate}
                 AND package.qr_type IS NOT NULL
                 GROUP BY package.qr_type
             </if>
             <!--  2本月 -->
             <if test="null != reportReq.value and reportReq.value == 2">
-                AND date_format(boxmap.active_time,'%Y-%m')=date_format(now(),'%Y-%m')
+                AND #{reportReq.beginTime} &lt; boxmap.active_time &lt; #{reportReq.endTime}
                 GROUP BY package.qr_type
                 UNION ALL
                 SELECT
@@ -206,7 +206,7 @@
                 FROM qr_package package
                     LEFT JOIN qr_box_mapping boxmap ON package.id=boxmap.package_id
                 WHERE  boxmap.active_status ='2'
-                AND date_format(boxmap.active_time,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')
+                AND #{beginDate} &lt; boxmap.active_time &lt; #{endDate}
                 AND package.qr_type IS NOT NULL
                 GROUP BY package.qr_type
             </if>