项目初始化

This commit is contained in:
2026-03-23 18:49:30 +08:00
parent cc4bb9188b
commit 4ff69624cd
2 changed files with 431 additions and 403 deletions

View File

@@ -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<ChartDataItem> getErpMonthChart(ErpTransactionFlow erpTransactionFlow) {
List<ChartDataItem> chartDataItems = new ArrayList<>();
List<ErpTransactionFlow> flowList = erpTransactionFlowService.findList(erpTransactionFlow);
Map<String, Map<String, Object>> accountMap = flowList.stream()
Map<String, Map<String, Object>> monthMap = flowList.stream()
.collect(Collectors.groupingBy(
ErpTransactionFlow::getMonthDate,
Collectors.collectingAndThen(Collectors.toList(), list -> {
@@ -105,15 +106,32 @@ public class ErpScreenController {
);
})
));
for (Map.Entry<String, Map<String, Object>> entry : accountMap.entrySet()) {
String monthDate = entry.getKey();
Map<String, Object> map = entry.getValue();
List<String> sortedMonths = new ArrayList<>(monthMap.keySet());
Collections.sort(sortedMonths);
for (int i = 0; i < sortedMonths.size(); i++) {
String currentMonth = sortedMonths.get(i);
Map<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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;