diff --git a/fuintAdmin/src/views/shopowner.vue b/fuintAdmin/src/views/shopowner.vue
index b8fe9b58e..5cc3a2a8b 100644
--- a/fuintAdmin/src/views/shopowner.vue
+++ b/fuintAdmin/src/views/shopowner.vue
@@ -55,7 +55,7 @@
               range-separator="至"
               start-placeholder="开始日期"
               end-placeholder="结束日期"
-              @change="getStoreAmount">
+              @blur="getStoreAmount">
             </el-date-picker>
           </div>
         </div>
@@ -92,7 +92,7 @@
         <div class="hui-hang"></div>
         <div class="d-s" >
           <div>
-            <div class="h-tt" >活跃油站</div>
+            <div class="h-tt" >数据分析</div>
             <div id="ccc" style="width: 300px;height: 200px; "></div>
           </div>
           <div class="h-r-ba"></div>
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java
index 01bfe795a..3260267b3 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java
@@ -7,10 +7,7 @@ import com.fuint.business.order.dto.AllOrderInfoDto;
 import com.fuint.business.order.entity.AllOrderInfo;
 import com.fuint.business.order.entity.CashierOrder;
 import com.fuint.business.order.entity.HandoverRecord;
-import com.fuint.business.order.vo.AllOrderActivityVo;
-import com.fuint.business.order.vo.AllOrderInfoUniVo;
-import com.fuint.business.order.vo.AllOrderInfoVo;
-import com.fuint.business.order.vo.CardBalanceChangeVo;
+import com.fuint.business.order.vo.*;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.system.dept.vo.SysDeptVo;
 import org.springframework.transaction.annotation.Transactional;
@@ -153,6 +150,13 @@ public interface AllOrderInfoService {
      */
     Map<String ,Object> getDataBoard(Map<String,String> map);
 
+    /**
+     * 油站首页数据分析
+     * @param map
+     * @return
+     */
+    List<HomeDataAnalysisVo> getDataAnalysis(Map<String, String> map);
+
     /**
      * 消费记录
      * @param page
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java
index 402ebcbaf..152da2055 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java
@@ -32,7 +32,9 @@ import com.fuint.business.order.vo.*;
 import com.fuint.business.order.vo.Excel.*;
 import com.fuint.business.petrolStationManagement.entity.OilGun;
 import com.fuint.business.petrolStationManagement.entity.OilName;
+import com.fuint.business.petrolStationManagement.entity.OilNumber;
 import com.fuint.business.petrolStationManagement.entity.OilTracking;
+import com.fuint.business.petrolStationManagement.mapper.OilNumberMapper;
 import com.fuint.business.petrolStationManagement.service.OilGunService;
 import com.fuint.business.petrolStationManagement.service.OilNameService;
 import com.fuint.business.petrolStationManagement.service.OilTankService;
@@ -87,6 +89,8 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
 
     @Resource
     AllOrderInfoMapper allOrderInfoMapper;
+    @Autowired
+    OilNumberMapper oilNumberMapper;
 
 
     @Override
@@ -151,6 +155,7 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
         row = baseMapper.insert(allOrderInfo);
         return row;
     }
+
     //  支付通道分析  下面列表数据
     public IPage<AllOrderInfoVo> getFenxiByDaili(Page page, AllOrderInfo allOrderInfo) {
         if (ObjectUtil.isEmpty(allOrderInfo.getDeptId())) {
@@ -214,6 +219,7 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
 
         return fenxiByDailiTypeBydata;
     }
+
     //  支付通道分析  上面 统计数据
     @Override
     public Map<String, Object> getFenxiByDailiBydata(AllOrderInfo allOrderInfo) {
@@ -1617,6 +1623,8 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
 
     @Override
     public Map<String, Object> getDataBoard(Map<String, String> map) {
+        map.put("startTime", map.get("params[beginTime]"));
+        map.put("endTime", map.get("params[endTime]"));
         Map<String, Object> map1 = new HashMap<>();
 //        油品销售金额
         Double oilAmount = 0.0;
@@ -1647,24 +1655,31 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
         String endTime = map.get("endTime");
 
 
-        //查询会员充值信息
-        List<AllOrderInfo> allOrderInfos = baseMapper.selectList(new LambdaQueryWrapper<AllOrderInfo>()
+        LambdaQueryWrapper<AllOrderInfo> queryWrapper = new LambdaQueryWrapper<AllOrderInfo>()
                 .eq(AllOrderInfo::getStatus, "paid")
                 .eq(AllOrderInfo::getStoreId, TokenUtil.getNowAccountInfo().getStoreId())
-                .like(AllOrderInfo::getContent, "充值")
-                .between(AllOrderInfo::getCreateTime, startTime, endTime));
+                .like(AllOrderInfo::getContent, "充值");
+        if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
+            queryWrapper.between(AllOrderInfo::getCreateTime, startTime, endTime);
+        }
+
+        //查询会员充值信息
+        List<AllOrderInfo> allOrderInfos = baseMapper.selectList(queryWrapper);
         //会员充值笔数
         userRechargeNum = allOrderInfos.size();
         //会员充值金额
         userRechargeAmount = allOrderInfos.stream().mapToDouble(AllOrderInfo::getPayMoney).sum();
 
 
-        //查询便利店信息
-        allOrderInfos = baseMapper.selectList(new LambdaQueryWrapper<AllOrderInfo>()
+        LambdaQueryWrapper<AllOrderInfo> proQueryWrapper = new LambdaQueryWrapper<AllOrderInfo>()
                 .eq(AllOrderInfo::getStatus, "paid")
                 .eq(AllOrderInfo::getStoreId, TokenUtil.getNowAccountInfo().getStoreId())
-                .in(AllOrderInfo::getType, "2", "6")
-                .between(AllOrderInfo::getCreateTime, startTime, endTime));
+                .in(AllOrderInfo::getType, "2", "6");
+        if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
+            proQueryWrapper.between(AllOrderInfo::getCreateTime, startTime, endTime);
+        }
+        //查询便利店信息
+        allOrderInfos = baseMapper.selectList(proQueryWrapper);
         //便利店笔数
         minimartNum = allOrderInfos.size();
         List<String> orderNos = allOrderInfos.stream()
@@ -1683,12 +1698,16 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
         }
 
 
-        //查询积分商城信息
-        allOrderInfos = baseMapper.selectList(new LambdaQueryWrapper<AllOrderInfo>()
+        LambdaQueryWrapper<AllOrderInfo> pointQueryWrapper = new LambdaQueryWrapper<AllOrderInfo>()
                 .eq(AllOrderInfo::getStatus, "paid")
                 .eq(AllOrderInfo::getStoreId, TokenUtil.getNowAccountInfo().getStoreId())
-                .eq(AllOrderInfo::getType, "4")
-                .between(AllOrderInfo::getCreateTime, startTime, endTime));
+                .eq(AllOrderInfo::getType, "4");
+        if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
+            pointQueryWrapper.between(AllOrderInfo::getCreateTime, startTime, endTime);
+        }
+
+        //查询积分商城信息
+        allOrderInfos = baseMapper.selectList(pointQueryWrapper);
         pointMallNum = allOrderInfos.size();
         pointMallAmount = allOrderInfos.stream().mapToDouble(order -> order.getPayMoney() == null ? 0 : order.getPayMoney()).sum();
         map1.put("oilAmount", oilAmount);
@@ -1703,6 +1722,136 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
         return map1;
     }
 
+    /**
+     * 油站首页数据分析
+     *
+     * @param map
+     * @return
+     */
+    @Override
+    public List<HomeDataAnalysisVo> getDataAnalysis(Map<String, String> map) {
+        List<HomeDataAnalysisVo> list = new ArrayList<>();
+        String startTime = map.get("startTime");
+        String endTime = map.get("endTime");
+        AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
+
+
+        //查询所有油品
+        List<OilNumber> oilNumbers = oilNumberMapper.selectList(new LambdaQueryWrapper<OilNumber>()
+                .eq(OilNumber::getStoreId, nowAccountInfo.getStoreId())
+                .eq(OilNumber::getState, "1")
+                .eq(OilNumber::getIfDelete, "0"));
+
+        LambdaQueryWrapper<OilOrder> oilOrderQuery = new LambdaQueryWrapper<OilOrder>();
+        oilOrderQuery.eq(OilOrder::getStoreId, nowAccountInfo.getStoreId())
+                .eq(OilOrder::getUserId, nowAccountInfo.getId())
+                .eq(OilOrder::getOrderStatus, "paid");
+        if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
+            oilOrderQuery.between(OilOrder::getCreateTime, startTime, endTime);
+        }
+        List<OilOrder> oilOrders = oilOrderMapper.selectList(oilOrderQuery);
+
+        //油号之间占比
+        for (OilNumber oilNumber : oilNumbers) {
+            HomeDataAnalysisVo homeDataAnalysisVo = new HomeDataAnalysisVo();
+            homeDataAnalysisVo.setName(oilNumber.getOilName());
+            homeDataAnalysisVo.setType(1);
+            List<OilOrder> oilList = new ArrayList<>();
+            for (OilOrder oilOrder : oilOrders) {
+                if (oilNumber.getOilName().equals(oilOrder.getOils())) {
+                    oilList.add(oilOrder);
+                }
+            }
+            DecimalFormat df = new DecimalFormat("#.00");
+            String formattedResult = df.format(oilList.size());
+            homeDataAnalysisVo.setValue(Double.parseDouble(formattedResult) / oilNumbers.size());
+            list.add(homeDataAnalysisVo);
+        }
+
+        //查询订单表
+        LambdaQueryWrapper<AllOrderInfo> allOrderInfoLambdaQueryWrapper = new LambdaQueryWrapper<AllOrderInfo>();
+        allOrderInfoLambdaQueryWrapper.eq(AllOrderInfo::getStoreId, nowAccountInfo.getStoreId())
+                .eq(AllOrderInfo::getStoreId, nowAccountInfo.getStoreId())
+                .eq(AllOrderInfo::getStatus, "paid");
+        if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
+            allOrderInfoLambdaQueryWrapper.between(AllOrderInfo::getCreateTime, startTime, endTime);
+        }
+        List<AllOrderInfo> allOrderInfos = baseMapper.selectList(allOrderInfoLambdaQueryWrapper);
+        Integer oilAllOrderInfos = 0;
+        Integer productionAllOrderInfos = 0;
+
+        //油品交易占比
+        Double shareOfOilTransactions = 0.0;
+        //非油品交易占比
+        Double shareOfNonOilTransactions = 0.0;
+        for (AllOrderInfo allOrderInfo : allOrderInfos) {
+            if ("1".equals(allOrderInfo.getType())) {
+                oilAllOrderInfos += 1;
+            } else if ("2".equals(allOrderInfo.getType()) || "3".equals(allOrderInfo.getType()) || "4".equals(allOrderInfo.getType()) || "5".equals(allOrderInfo.getType())) {
+                productionAllOrderInfos += 1;
+            }
+        }
+        shareOfOilTransactions = Double.parseDouble(String.valueOf(oilAllOrderInfos / (oilAllOrderInfos + productionAllOrderInfos)));
+        shareOfNonOilTransactions = Double.parseDouble(String.valueOf(productionAllOrderInfos / (oilAllOrderInfos + productionAllOrderInfos)));
+
+        HomeDataAnalysisVo oilhomeDataAnalysisVo = new HomeDataAnalysisVo();
+        oilhomeDataAnalysisVo.setName("油品交易占比");
+        oilhomeDataAnalysisVo.setType(2);
+        oilhomeDataAnalysisVo.setValue(shareOfOilTransactions);
+        list.add(oilhomeDataAnalysisVo);
+
+        HomeDataAnalysisVo noOilhomeDataAnalysisVo = new HomeDataAnalysisVo();
+        noOilhomeDataAnalysisVo.setName("非油品交易占比");
+        noOilhomeDataAnalysisVo.setType(2);
+        noOilhomeDataAnalysisVo.setValue(shareOfNonOilTransactions);
+        list.add(noOilhomeDataAnalysisVo);
+
+        //会员充值占比 便利店交易占比 油品交易占比 积分商城交易占比
+        Integer mtUser = 0;
+        Integer product = 0;
+        Integer oilRecharge = 0;
+        Integer pointMall = 0;
+        for (AllOrderInfo allOrderInfo : allOrderInfos) {
+            if ("3".equals(allOrderInfo.getType()) || "5".equals(allOrderInfo.getType())) {
+                mtUser += 1;
+            } else if ("2".equals(allOrderInfo.getType())) {
+                product += 1;
+            } else if ("1".equals(allOrderInfo.getType())) {
+                oilRecharge += 1;
+            } else if ("4".equals(allOrderInfo.getType())) {
+                pointMall += 1;
+            } else if ("6".equals(allOrderInfo.getType())) {
+                product += 1;
+                oilRecharge += 1;
+            }
+        }
+
+        HomeDataAnalysisVo mtUserVo = new HomeDataAnalysisVo();
+        mtUserVo.setName("会员充值占比");
+        mtUserVo.setType(3);
+        mtUserVo.setValue(Double.parseDouble(String.valueOf(mtUser / allOrderInfos.size())));
+        list.add(mtUserVo);
+
+        HomeDataAnalysisVo productVo = new HomeDataAnalysisVo();
+        productVo.setName("商品交易占比");
+        productVo.setType(3);
+        productVo.setValue(Double.parseDouble(String.valueOf(product / allOrderInfos.size())));
+        list.add(productVo);
+
+        HomeDataAnalysisVo oilRechargeVo = new HomeDataAnalysisVo();
+        oilRechargeVo.setName("油品充值占比");
+        oilRechargeVo.setType(3);
+        oilRechargeVo.setValue(Double.parseDouble(String.valueOf(oilRecharge / allOrderInfos.size())));
+        list.add(oilRechargeVo);
+
+        HomeDataAnalysisVo pointMallVo = new HomeDataAnalysisVo();
+        pointMallVo.setName("积分商城交易占比");
+        pointMallVo.setType(3);
+        pointMallVo.setValue(Double.parseDouble(String.valueOf(pointMall / allOrderInfos.size())));
+        list.add(pointMallVo);
+        return list;
+    }
+
     /**
      * 消费记录
      *
@@ -1823,6 +1972,7 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
 
     /**
      * 将支付金额转换为万圆
+     *
      * @param payMoney
      */
     public Double convertPayMoneyToWanYuan(Double payMoney) {
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/vo/HomeDataAnalysisVo.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/vo/HomeDataAnalysisVo.java
new file mode 100644
index 000000000..f48734491
--- /dev/null
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/vo/HomeDataAnalysisVo.java
@@ -0,0 +1,10 @@
+package com.fuint.business.order.vo;
+
+import lombok.Data;
+
+@Data
+public class HomeDataAnalysisVo {
+    private String name;
+    private Double value;
+    private Integer type;
+}