Compare commits

..

2 Commits

Author SHA1 Message Date
259dfbb71c Merge remote-tracking branch 'origin/main' 2024-05-07 17:12:22 +08:00
0d33c39068 分析报告优化 2024-05-07 17:12:12 +08:00

View File

@ -1,12 +1,14 @@
package com.inspur.order.service.impl;
import com.inspur.common.utils.SecurityUtils;
import com.inspur.om.service.IOmTeamInfoService;
import com.inspur.order.mapper.OmOrderAnalysisMapper;
import com.inspur.order.service.IOmOrderAnalysisService;
import com.inspur.order.utils.OmConstant;
import org.apache.commons.math3.optim.InitialGuess;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.util.Units;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
@ -32,6 +34,8 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* 订单收藏Service业务层处理
@ -44,7 +48,8 @@ public class OmOrderAnalysisServiceImpl implements IOmOrderAnalysisService {
@Autowired
private OmOrderAnalysisMapper omOrderAnalysisMapper;
@Autowired
private IOmTeamInfoService omTeamInfoService;
/**
* 查询分析数据
*
@ -66,14 +71,15 @@ public class OmOrderAnalysisServiceImpl implements IOmOrderAnalysisService {
private Map<String, Object> getDateData() {
Map<String, Object> typeOrderMap = new HashMap<>();
List<Map<String, Object>> list = omOrderAnalysisMapper.selectCountAndAmountByDate(SecurityUtils.getTenantId());
// 获取最近三年
// 今年
int thisYear = LocalDate.now().getYear();
// 去年
int lastYear = LocalDate.now().minusYears(1).getYear();
// 前年
int theYearBeafor = LocalDate.now().minusYears(2).getYear();
// 获取当前租户ID和当前日期
String tenantId = SecurityUtils.getTenantId();
LocalDate now = LocalDate.now();
int thisYear = now.getYear();
int lastYear = now.minusYears(1).getYear();
int theYearBefore = now.minusYears(2).getYear();
// 查询数据库
List<Map<String, Object>> list = omOrderAnalysisMapper.selectCountAndAmountByDate(tenantId);
// 初始化数据
List<Object> numList1 = new ArrayList<>();
List<Object> numList2 = new ArrayList<>();
@ -101,7 +107,7 @@ public class OmOrderAnalysisServiceImpl implements IOmOrderAnalysisService {
numList2.set(Integer.parseInt(String.valueOf(map.get("date_month"))) - 1, map.get("num"));
amountList2.set(Integer.parseInt(String.valueOf(map.get("date_month"))) - 1, map.get("amount"));
}
if (year == theYearBeafor) {
if (year == theYearBefore) {
numList3.set(Integer.parseInt(String.valueOf(map.get("date_month"))) - 1, map.get("num"));
amountList3.set(Integer.parseInt(String.valueOf(map.get("date_month"))) - 1, map.get("amount"));
}
@ -110,13 +116,13 @@ public class OmOrderAnalysisServiceImpl implements IOmOrderAnalysisService {
Map<String, Object> amountMap = new HashMap<>();
numMap.put(thisYear + "", numList1);
numMap.put(lastYear + "", numList2);
numMap.put(theYearBeafor + "", numList3);
numMap.put(theYearBefore + "", numList3);
amountMap.put(thisYear + "", amountList1);
amountMap.put(lastYear + "", amountList2);
amountMap.put(theYearBeafor + "", amountList3);
amountMap.put(theYearBefore + "", amountList3);
typeOrderMap.put("numMap", numMap);
typeOrderMap.put("amountMap", amountMap);
typeOrderMap.put("year", new int[]{theYearBeafor, lastYear, thisYear});
typeOrderMap.put("year", new int[]{theYearBefore, lastYear, thisYear});
typeOrderMap.put("month", OmConstant.MONTH_ARRAY);
return typeOrderMap;
}
@ -142,6 +148,16 @@ public class OmOrderAnalysisServiceImpl implements IOmOrderAnalysisService {
XWPFDocument doc = new XWPFDocument();
XWPFParagraph p = doc.createParagraph();
XWPFRun r = p.createRun();
// 设置文字为粗体
r.setFontSize(24); // 设置字号
r.setColor("000000"); // 设置字体颜色此处为黑色
r.setBold(true); // 设置为粗体
// 获取团队名称
String teamName = omTeamInfoService.selectOmTeamInfoByTenantId(SecurityUtils.getTenantId()).getTeamName();
// 设置文本内容
r.setText(teamName+"分析报告");
// 设置段落居中
p.setAlignment(ParagraphAlignment.CENTER);
// 将BufferedImage转换为字节数组
try {
ByteArrayOutputStream dateNumChartBaos = new ByteArrayOutputStream();
@ -149,15 +165,15 @@ public class OmOrderAnalysisServiceImpl implements IOmOrderAnalysisService {
byte[] dateNumChartBytes = dateNumChartBaos.toByteArray();
ByteArrayOutputStream dateAmountChartBaos = new ByteArrayOutputStream();
ImageIO.write(dateNumChartImage, "png", dateAmountChartBaos);
ImageIO.write(dateAmountChartImage, "png", dateAmountChartBaos);
byte[] dateAmountChartBytes = dateAmountChartBaos.toByteArray();
ByteArrayOutputStream typeNumChartBaos = new ByteArrayOutputStream();
ImageIO.write(dateNumChartImage, "png", typeNumChartBaos);
ImageIO.write(typeNumChartImage, "png", typeNumChartBaos);
byte[] typeNumChartBytes = typeNumChartBaos.toByteArray();
ByteArrayOutputStream typeAmountChartBaos = new ByteArrayOutputStream();
ImageIO.write(dateNumChartImage, "png", typeAmountChartBaos);
ImageIO.write(typeAmountChartImage, "png", typeAmountChartBaos);
byte[] typeAmountChartBytes = typeAmountChartBaos.toByteArray();
r.addPicture(new ByteArrayInputStream(dateNumChartBytes), XWPFDocument.PICTURE_TYPE_PNG, "dateNumChart", Units.toEMU(500), Units.toEMU(500)); // 设置图片大小和位置