LIVE_YE 1 år sedan
förälder
incheckning
254204a2d9

+ 22 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/reservat/BomanReservatController.java

@@ -121,4 +121,26 @@ public class BomanReservatController extends BaseController
     {
         return toAjax(bomanReservatService.deleteBomanReservatByReservatIds(reservatIds));
     }
+
+    /**
+     * 陵园实时参观统计
+     */
+    @PreAuthorize("@ss.hasPermi('system:reservat:realTime')")
+    @GetMapping("/statistics/realTime")
+    public AjaxResult realTime()
+    {
+        return bomanReservatService.realTime();
+    }
+
+    /**
+     * 陵园实时参观统计
+     */
+    @PreAuthorize("@ss.hasPermi('system:reservat:people')")
+    @GetMapping("/statistics/people")
+    public AjaxResult people()
+    {
+        return bomanReservatService.people();
+    }
+
+
 }

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/BomanReservatMapper.java

@@ -2,6 +2,7 @@ package com.ruoyi.system.mapper;
 
 import java.util.List;
 import com.ruoyi.system.domain.BomanReservat;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 陵园预约Mapper接口
@@ -58,4 +59,8 @@ public interface BomanReservatMapper
      * @return 结果
      */
     public int deleteBomanReservatByReservatIds(Long[] reservatIds);
+
+    List<BomanReservat> selectBomanReservatbyYear(String date);
+
+    List<BomanReservat> selectBomanReservatbySeven(@Param("first") String first, @Param("last")String last);
 }

+ 9 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IBomanReservatService.java

@@ -71,4 +71,13 @@ public interface IBomanReservatService
     AjaxResult  indexStatistics (BomanReservat bomanReservat);
 
     AjaxResult verification(Long reservatId);
+
+    /**
+     *  陵园实时参观统计
+     *
+     * @return
+     */
+    AjaxResult realTime();
+
+    AjaxResult people();
 }

+ 111 - 3
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BomanReservatServiceImpl.java

@@ -1,8 +1,7 @@
 package com.ruoyi.system.service.impl;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.utils.DateUtils;
@@ -159,4 +158,113 @@ public class BomanReservatServiceImpl implements IBomanReservatService
         int i = bomanReservatMapper.updateBomanReservat(bomanReservat);
         return i > 0 ? AjaxResult.success() : AjaxResult.error();
     }
+
+
+    /**
+     * 陵园实时参观统计
+     */
+    @Override
+    public AjaxResult realTime() {
+        // todo
+        Map<String,Object> resultMap = new HashMap<>();
+
+        resultMap.put("scale","50%");
+        resultMap.put("current",50);
+        resultMap.put("total",100);
+        return AjaxResult.success(resultMap);
+    }
+
+    @Override
+    public AjaxResult people() {
+        Map<String,Object> map = new HashMap<>();
+
+        String time = DateUtils.getDate();
+        //获取当前年
+        String year = time.split("-")[0];
+        //查询当前年预约人数
+        List<BomanReservat> bomanReservatYearList = bomanReservatMapper.selectBomanReservatbyYear(year);
+        long yearYy = 0;
+        //查询当前月预约人数
+        long monthYy = 0;
+        //查询当前天预约人数
+        long todayYy = 0;
+        for (BomanReservat bomanReservat : bomanReservatYearList) {
+            yearYy = yearYy + Long.parseLong(bomanReservat.getVisitNum());
+            if(bomanReservat.getVisitDate().contains(time.substring(0,time.lastIndexOf("_")))){
+                monthYy = monthYy + Long.parseLong(bomanReservat.getVisitNum());
+            }
+            if(bomanReservat.getVisitDate().equals(time)){
+                todayYy = todayYy + Long.parseLong(bomanReservat.getVisitNum());
+            }
+        }
+        map.put("yearYy",yearYy);
+        map.put("monthYy",monthYy);
+        map.put("todayYy",todayYy);
+        //todo 今日参观人数
+        map.put("todayVisit",10);
+
+        Map<String,Object> sevenMap = new HashMap<>();
+        //获取近7天的数组
+        List<String> sevenDate = getSevenDate();
+        //获取7天中最早的一天
+        String first = sevenDate.get(0);
+        //查询七天中的数据
+        List<BomanReservat> bomanReservatSevenList = bomanReservatMapper.selectBomanReservatbySeven(first,time);
+        List<Long> zrsList = new ArrayList<>();
+        List<Long> skList = new ArrayList<>();
+        List<Long> tdList = new ArrayList<>();
+        Long zrs = 0l;
+        Long sk = 0l;
+        Long td = 0l;
+        for (int i = 0; i < sevenDate.size(); i++) {
+            for (BomanReservat bomanReservat : bomanReservatSevenList) {
+                if(bomanReservat.getVisitDate().equals(sevenDate.get(i))){
+                    zrs = zrs + Long.parseLong(bomanReservat.getVisitNum());
+                    if("1".equals(bomanReservat.getReservatType())){
+                        td = td + Long.parseLong(bomanReservat.getVisitNum());
+                    }else{
+                        sk = sk + Long.parseLong(bomanReservat.getVisitNum());
+                    }
+                }
+            }
+            zrsList.add(zrs);
+            skList.add(sk);
+            tdList.add(td);
+            //循环完一轮之后重置
+            zrs = 0l;
+            sk = 0l;
+            td = 0l;
+        }
+
+        sevenMap.put("date",sevenDate);
+        sevenMap.put("zrs",zrsList);
+        sevenMap.put("sk",skList);
+        sevenMap.put("td",tdList);
+
+        map.put("sevenMap",sevenMap);
+        return AjaxResult.success(map);
+    }
+
+
+    //获取近七天日期
+    public static List<String> getSevenDate() {
+        List<String> dateList = new ArrayList<>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        for (int i = 6; i >= 0; i--) {
+            Date date = DateUtils.addDays(new Date(), -i);
+            String formatDate = sdf.format(date);
+            dateList.add(formatDate);
+        }
+        return dateList;
+    }
+
+    public static void main(String[] args) {
+        //获取近7天的数组
+        List<String> sevenDate = getSevenDate();
+        for (String s : sevenDate) {
+            System.out.println(s);
+        }
+
+    }
+
 }

+ 11 - 1
ruoyi-system/src/main/resources/mapper/system/BomanReservatMapper.xml

@@ -65,7 +65,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectBomanReservatVo"/>
         where reservat_id = #{reservatId}
     </select>
-        
+    <select id="selectBomanReservatbyYear" parameterType="BomanReservat" resultMap="BomanReservatResult">
+        <include refid="selectBomanReservatVo"/>
+        where visit_date like concat(#{date}, '%')
+    </select>
+    <select id="selectBomanReservatbySeven" parameterType="BomanReservat" resultMap="BomanReservatResult">
+        <include refid="selectBomanReservatVo"/>
+        where <![CDATA[ DATE_FORMAT(CREATE_TIME , '%Y-%m-%d')>=  DATE_FORMAT(#{first}, '%Y-%m-%d')
+                    and DATE_FORMAT(CREATE_TIME , '%Y-%m-%d')<=  DATE_FORMAT(#{last}, '%Y-%m-%d') ]]>
+    </select>
+
+
     <insert id="insertBomanReservat" parameterType="BomanReservat" useGeneratedKeys="true" keyProperty="reservatId">
         insert into boman_reservat
         <trim prefix="(" suffix=")" suffixOverrides=",">