更新10.12
This commit is contained in:
parent
48f29f4873
commit
95d279653d
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user