From 74e332504d98caaf8fab951d7d24be762b169f49 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期三, 25 三月 2026 14:15:14 +0800
Subject: [PATCH] 销售金额
---
jyz-base-start/src/main/java/com/tievd/jyz/service/impl/OilRecordServiceImpl.java | 65 +++++++++++++++++++++++++++-----
1 files changed, 54 insertions(+), 11 deletions(-)
diff --git a/jyz-base-start/src/main/java/com/tievd/jyz/service/impl/OilRecordServiceImpl.java b/jyz-base-start/src/main/java/com/tievd/jyz/service/impl/OilRecordServiceImpl.java
index 1e01e1d..3cdf8f9 100644
--- a/jyz-base-start/src/main/java/com/tievd/jyz/service/impl/OilRecordServiceImpl.java
+++ b/jyz-base-start/src/main/java/com/tievd/jyz/service/impl/OilRecordServiceImpl.java
@@ -165,7 +165,7 @@
JSONObject res;
List<StatDataTableVo> dataList = new ArrayList<>();
Function<StatDataTableVo, ?> xfunc = null;
- Function<StatDataTableVo, Integer> barfunc = null;
+ Function<StatDataTableVo, ?> barfunc = null;
switch(param.getType()) {
case 1 :
dataList = oilRecordMapper.statFanByModel(param);
@@ -187,6 +187,16 @@
xfunc = StatDataTableVo::getOilPosition;
barfunc = StatDataTableVo::getOilVolume;
break;
+ case 5 :
+ dataList = oilRecordMapper.statFanByOilType(param);
+ xfunc = StatDataTableVo::getOilType;
+ barfunc = StatDataTableVo::getOilVolume;
+ break;
+ case 6 :
+ dataList = oilRecordMapper.statFanByOilType(param);
+ xfunc = StatDataTableVo::getOilType;
+ barfunc = StatDataTableVo::getTotalAmount;
+ break;
}
res = dataTransLists(dataList, xfunc, barfunc, null, "", "");
return res;
@@ -198,8 +208,8 @@
JSONObject res;
List<StatDataTableVo> dataList;
Function<StatDataTableVo, ?> xfunc;
- Function<StatDataTableVo, Integer> barfunc;
- Function<StatDataTableVo, Integer> linefunc;
+ Function<StatDataTableVo, ?> barfunc;
+ Function<StatDataTableVo, ?> linefunc;
String barName = "";
String lineName = "";
if (param.getType() == 1) {
@@ -209,12 +219,26 @@
linefunc = StatDataTableVo::getCarCount;
barName = "鍔犳补鏁�";
lineName = "杞︽祦閲�";
- } else {
+ } else if (param.getType() == 2) {
dataList = oilRecordMapper.statFanByPosition(param);
xfunc = StatDataTableVo::getOilPosition;
barfunc = StatDataTableVo::getOilCount;
linefunc = StatDataTableVo::getOilVolume;
barName = "鍔犳补鏁�";
+ lineName = "娌瑰搧閿�閲�";
+ } else if (param.getType() == 3) {
+ dataList = oilRecordMapper.statFanByOilType(param);
+ xfunc = StatDataTableVo::getOilType;
+ barfunc = StatDataTableVo::getOilVolume;
+ linefunc = StatDataTableVo::getTotalAmount;
+ barName = "娌瑰搧閿�閲�";
+ lineName = "閿�鍞噾棰�";
+ } else {
+ dataList = oilRecordMapper.statFanByOilType(param);
+ xfunc = StatDataTableVo::getOilType;
+ barfunc = StatDataTableVo::getTotalAmount;
+ linefunc = StatDataTableVo::getOilVolume;
+ barName = "閿�鍞噾棰�";
lineName = "娌瑰搧閿�閲�";
}
res = dataTransLists(dataList, xfunc, barfunc, linefunc, barName, lineName);
@@ -236,6 +260,7 @@
.minus(timeUnit.value(), ChronoUnit.valueOf(timeUnit.name()))
.with(timeUnit.initField(), 1);
LocalDateTime timeLimitRight = LocalDateTime.now().with(timeUnit.initField(), 1);
+ log.info("鎵撳嵃鏃堕棿寮�濮�: {}, 鎵撳嵃鏃堕棿缁撴潫: {}", timeLimit.toString(), timeLimitRight.toString());
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<OilRecord>()
.ge(OilRecord::getStartTime, timeLimit.toString())
.le(OilRecord::getStartTime, timeLimitRight.toString())
@@ -263,6 +288,7 @@
statVo.addAppearCount(1);
if (record.getBehavior().intValue() == SystemConstant.BEHAVIOR_TYPE_OIL) statVo.addOilCount(1);
if (record.getBehavior().intValue() == SystemConstant.BEHAVIOR_TYPE_OIL) statVo.addOilVolume(record.getOilVolume());
+ if (record.getBehavior().intValue() == SystemConstant.BEHAVIOR_TYPE_OIL) statVo.addTotalAmount(record.getTotalAmount());
statVo.addSumSpand(record.getSpandTime());
}
@@ -455,6 +481,10 @@
&& (oilRecord.getBehavior() == null || oilRecord.getBehavior().intValue() != SystemConstant.BEHAVIOR_TYPE_OIL)) {
continue;
}
+ if (trendType == DataStatisReqVo.TrendType.SALES_AMOUNT
+ && (oilRecord.getBehavior() == null || oilRecord.getBehavior().intValue() != SystemConstant.BEHAVIOR_TYPE_OIL)) {
+ continue;
+ }
Map<String, Object> row = new LinkedHashMap<>();
row.put("id", oilRecord.getId());
row.put("startTime", oilRecord.getStartTime());
@@ -463,6 +493,7 @@
row.put("behaviorText", behaviorText(oilRecord.getBehavior()));
row.put("oilPosition", oilRecord.getOilPosition());
row.put("oilVolume", oilRecord.getOilVolume());
+ row.put("totalAmount", oilRecord.getTotalAmount());
row.put("spandTime", oilRecord.getSpandTime());
detailList.add(row);
}
@@ -502,16 +533,21 @@
String barName,
String lineName) {
List xDatas = new ArrayList();
- List<Integer> barDatas = new ArrayList<>();
+ List<Object> barDatas = new ArrayList<>();
List lineDatas = new ArrayList<>();
- int sum = 0;
+ double sum = 0;
for (E statVo : dataList) {
Object xData = "";
- int barData = 0;
+ Object barData = 0;
Object lineData = 0;
try {
xData = xDataMapper.apply(statVo);
- barData = Integer.valueOf(barDataMapper.apply(statVo).toString());
+ Object barValue = barDataMapper.apply(statVo);
+ if (barValue instanceof java.math.BigDecimal) {
+ barData = ((java.math.BigDecimal) barValue).doubleValue();
+ } else {
+ barData = Integer.valueOf(barValue.toString());
+ }
if (lineDataMapper != null) lineData = lineDataMapper.apply(statVo);
} catch (Exception e) {
e.printStackTrace();
@@ -521,11 +557,18 @@
xDatas.add(xData);
barDatas.add(barData);
lineDatas.add(lineData);
- sum += barData;
+ if (barData instanceof Number) {
+ sum += ((Number) barData).doubleValue();
+ }
}
if (lineDataMapper == null) {
- int finalSum = sum;
- lineDatas = barDatas.stream().map(n -> n*100/ finalSum).collect(Collectors.toList());
+ double finalSum = sum;
+ lineDatas = barDatas.stream().map(n -> {
+ if (n instanceof Number) {
+ return ((Number) n).doubleValue() * 100 / finalSum;
+ }
+ return 0;
+ }).collect(Collectors.toList());
}
JSONObject res = new JSONObject();
res.put("xData", xDatas);
--
Gitblit v1.8.0