diff --git a/web-api/src/main/java/com/jeesite/modules/apps/web/ErpScreenController.java b/web-api/src/main/java/com/jeesite/modules/apps/web/ErpScreenController.java index 9d83923..737b48d 100644 --- a/web-api/src/main/java/com/jeesite/modules/apps/web/ErpScreenController.java +++ b/web-api/src/main/java/com/jeesite/modules/apps/web/ErpScreenController.java @@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -66,10 +67,10 @@ public class ErpScreenController { ChartDataItem item = new ChartDataItem(); item.setItemCode("CHART"); item.setAxisName(accountName); - item.setValue01(map.get("sumValue01").toString()); - item.setValue02(map.get("sumValue02").toString()); - item.setValue03(map.get("sumValue03").toString()); - item.setBizKey(map.get("accountId").toString()); + item.setValue01(map.get("sumValue01").toString()); // 收入 + item.setValue02(map.get("sumValue02").toString()); // 支出 + item.setValue03(map.get("sumValue03").toString()); // 净利润 + item.setBizKey(map.get("accountId").toString()); // 业务编号 chartDataItems.add(item); } return chartDataItems; @@ -83,7 +84,7 @@ public class ErpScreenController { public List getErpMonthChart(ErpTransactionFlow erpTransactionFlow) { List chartDataItems = new ArrayList<>(); List flowList = erpTransactionFlowService.findList(erpTransactionFlow); - Map> accountMap = flowList.stream() + Map> monthMap = flowList.stream() .collect(Collectors.groupingBy( ErpTransactionFlow::getMonthDate, Collectors.collectingAndThen(Collectors.toList(), list -> { @@ -105,15 +106,32 @@ public class ErpScreenController { ); }) )); - for (Map.Entry> entry : accountMap.entrySet()) { - String monthDate = entry.getKey(); - Map map = entry.getValue(); + + List sortedMonths = new ArrayList<>(monthMap.keySet()); + Collections.sort(sortedMonths); + for (int i = 0; i < sortedMonths.size(); i++) { + String currentMonth = sortedMonths.get(i); + Map current = monthMap.get(currentMonth); + BigDecimal income = (BigDecimal) current.get("sumValue01"); + BigDecimal expend = (BigDecimal) current.get("sumValue02"); + BigDecimal profitRate = (BigDecimal) current.get("sumValue03"); + BigDecimal profit = (BigDecimal) current.get("sumValue04"); + BigDecimal lastIncome = BigDecimal.ZERO; + BigDecimal lastExpend = BigDecimal.ZERO; + if (i > 0) { + String lastMonth = sortedMonths.get(i - 1); + Map lastData = monthMap.get(lastMonth); + lastIncome = (BigDecimal) lastData.get("sumValue01"); + lastExpend = (BigDecimal) lastData.get("sumValue02"); + } ChartDataItem item = new ChartDataItem(); - item.setAxisName(monthDate); - item.setValue01(map.get("sumValue01").toString()); - item.setValue02(map.get("sumValue02").toString()); - item.setValue03(map.get("sumValue03").toString()); - item.setValue04(map.get("sumValue04").toString()); + item.setAxisName(currentMonth); + item.setValue01(income.toString()); // 本月收入 + item.setValue02(expend.toString()); // 本月支出 + item.setValue03(profitRate.toString()); // 利润率 + item.setValue04(profit.toString()); // 净利润 + item.setValue05(lastIncome.toString()); // 上月收入 + item.setValue06(lastExpend.toString()); // 上月支出 chartDataItems.add(item); } return chartDataItems; @@ -156,10 +174,10 @@ public class ErpScreenController { Map map = entry.getValue(); ChartDataItem item = new ChartDataItem(); item.setAxisName(quarter); - item.setValue01(map.get("sumValue01").toString()); - item.setValue02(map.get("sumValue02").toString()); - item.setValue03(map.get("sumValue03").toString()); - item.setValue04(map.get("sumValue04").toString()); + item.setValue01(map.get("sumValue01").toString()); // 收入 + item.setValue02(map.get("sumValue02").toString()); // 支出 + item.setValue03(map.get("sumValue03").toString()); // 占比 + item.setValue04(map.get("sumValue04").toString()); // 净利润 chartDataItems.add(item); } return chartDataItems; @@ -202,8 +220,8 @@ public class ErpScreenController { Map map = entry.getValue(); ChartDataItem item = new ChartDataItem(); item.setAxisName(categoryName); - item.setValue01(map.get("sumValue01").toString()); - item.setValue02(map.get("sumValue02").toString()); + item.setValue01(map.get("sumValue01").toString()); // 收支金额 + item.setValue02(map.get("sumValue02").toString()); // 占比 chartDataItems.add(item); } return chartDataItems; diff --git a/web-vue/packages/core/layouts/views/screen/welcome/Erp/components/ChartV09.vue b/web-vue/packages/core/layouts/views/screen/welcome/Erp/components/ChartV09.vue index 34035a6..4de5838 100644 --- a/web-vue/packages/core/layouts/views/screen/welcome/Erp/components/ChartV09.vue +++ b/web-vue/packages/core/layouts/views/screen/welcome/Erp/components/ChartV09.vue @@ -7,410 +7,420 @@ - \ No newline at end of file + :deep(.echarts-tooltip) { + background-color: rgba(145, 200, 255, 0.9) !important; + border-color: #409eff !important; + color: #0a3b70 !important; + border-radius: 6px !important; + white-space: nowrap !important; + max-width: none !important; + } +