报表相关 增加退款后,报表中需要体现

This commit is contained in:
wyn
2026-06-18 17:37:43 +08:00
parent 156862a0c5
commit 7dc1241064
23 changed files with 1162 additions and 155 deletions

View File

@@ -71,7 +71,7 @@ public class StatisticsBusinessVipController {
reBuyRules.put("国学", Arrays.asList(7));
reBuyRules.put("心理学", Arrays.asList(8));
reBuyRules.put("中西汇通学", Arrays.asList(9));
reBuyRules.put("妇幼生殖", Arrays.asList(10));
reBuyRules.put("妇幼生殖", Arrays.asList(10));
// 判断是否复购
List<Integer> required = reBuyRules.get(vipType);
if (required != null && state1UserVips.containsAll(required)) {
@@ -142,8 +142,8 @@ public class StatisticsBusinessVipController {
row5.createCell(0).setCellValue("肿瘤学");row5.createCell(1).setCellValue(state1Counts.getOrDefault("肿瘤学", 0).toString());
row5.createCell(2).setCellValue("肿瘤学");row5.createCell(3).setCellValue(state0Counts.getOrDefault("肿瘤学", 0).toString());
Row row6 = sheet.createRow(rowNum++);
row6.createCell(0).setCellValue("妇幼生殖");row6.createCell(1).setCellValue(state1Counts.getOrDefault("妇幼生殖",0).toString());
row6.createCell(2).setCellValue("妇幼生殖");row6.createCell(3).setCellValue(state0Counts.getOrDefault("妇幼生殖", 0).toString());
row6.createCell(0).setCellValue("妇幼生殖");row6.createCell(1).setCellValue(state1Counts.getOrDefault("妇幼生殖",0).toString());
row6.createCell(2).setCellValue("妇幼生殖");row6.createCell(3).setCellValue(state0Counts.getOrDefault("妇幼生殖", 0).toString());
Row row7 = sheet.createRow(rowNum++);
row7.createCell(0).setCellValue("国学");row7.createCell(1).setCellValue(state1Counts.getOrDefault("国学",0).toString());
row7.createCell(2).setCellValue("国学");row7.createCell(3).setCellValue(state0Counts.getOrDefault("国学", 0).toString());
@@ -296,8 +296,8 @@ public class StatisticsBusinessVipController {
Row row1 = sheet.createRow(rowNum++);
Map<String,Integer> state1Counts = (Map<String,Integer>) r.get("banTypeTotalCounts");
Map<String,Integer> state0Counts = (Map<String,Integer>) r.get("yanTypeTotalCounts");
row1.createCell(0).setCellValue("医学超级");row1.createCell(1).setCellValue(state1Counts.get("医学超级").toString());
row1.createCell(2).setCellValue("医学超级");row1.createCell(3).setCellValue(state0Counts.get("医学超级").toString());
row1.createCell(0).setCellValue("医学超级");row1.createCell(1).setCellValue(state1Counts.containsKey("医学超级")?state1Counts.get("医学超级").toString():"");
row1.createCell(2).setCellValue("医学超级");row1.createCell(3).setCellValue(state0Counts.containsKey("医学超级")?state0Counts.get("医学超级").toString():"");
row1.createCell(4).setCellValue("总延期金额");row1.createCell(5).setCellValue(r.get("yanTotalPrice").toString());
BigDecimal b = new BigDecimal(r.get("yanTotalCount").toString()).subtract(new BigDecimal(r2.get("yanTotalCount").toString())).divide(new BigDecimal(r.get("yanTotalCount").toString()), 4, RoundingMode.HALF_UP);
row1.createCell(6).setCellValue("延期总人数同比增长率:");row1.createCell(7).setCellValue(df.format(b));
@@ -320,8 +320,8 @@ public class StatisticsBusinessVipController {
row5.createCell(0).setCellValue("肿瘤学");row5.createCell(1).setCellValue(state1Counts.getOrDefault("肿瘤学", 0).toString());
row5.createCell(2).setCellValue("肿瘤学");row5.createCell(3).setCellValue(state0Counts.getOrDefault("肿瘤学", 0).toString());
Row row6 = sheet.createRow(rowNum++);
row6.createCell(0).setCellValue("妇幼生殖");row6.createCell(1).setCellValue(state1Counts.getOrDefault("妇幼生殖",0).toString());
row6.createCell(2).setCellValue("妇幼生殖");row6.createCell(3).setCellValue(state0Counts.getOrDefault("妇幼生殖", 0).toString());
row6.createCell(0).setCellValue("妇幼生殖");row6.createCell(1).setCellValue(state1Counts.getOrDefault("妇幼生殖",0).toString());
row6.createCell(2).setCellValue("妇幼生殖");row6.createCell(3).setCellValue(state0Counts.getOrDefault("妇幼生殖", 0).toString());
Row row7 = sheet.createRow(rowNum++);
row7.createCell(0).setCellValue("国学");row7.createCell(1).setCellValue(state1Counts.getOrDefault("国学",0).toString());
row7.createCell(2).setCellValue("国学");row7.createCell(3).setCellValue(state0Counts.getOrDefault("国学", 0).toString());
@@ -346,7 +346,7 @@ public class StatisticsBusinessVipController {
fillRow(sheet.createRow(rowNum++), 0, "中医学", banCounts, yanCounts);
fillRow(sheet.createRow(rowNum++), 0, "针灸学", banCounts, yanCounts);
fillRow(sheet.createRow(rowNum++), 0, "肿瘤学", banCounts, yanCounts);
fillRow(sheet.createRow(rowNum++), 0, "妇幼生殖", banCounts, yanCounts);
fillRow(sheet.createRow(rowNum++), 0, "妇幼生殖", banCounts, yanCounts);
fillRow(sheet.createRow(rowNum++), 0, "国学", banCounts, yanCounts);
fillRow(sheet.createRow(rowNum++), 0, "心理学", banCounts, yanCounts);
fillRow(sheet.createRow(rowNum++), 0, "中西汇通学", banCounts, yanCounts);
@@ -360,7 +360,7 @@ public class StatisticsBusinessVipController {
sheet.createRow(rowNum++).createCell(0).setCellValue("中医学");sheet.getRow(rowNum-1).createCell(1).setCellValue(banTypeRatios.getOrDefault("中医学",0).toString());
sheet.createRow(rowNum++).createCell(0).setCellValue("针灸学");sheet.getRow(rowNum-1).createCell(1).setCellValue(banTypeRatios.getOrDefault("针灸学",0).toString());
sheet.createRow(rowNum++).createCell(0).setCellValue("肿瘤学");sheet.getRow(rowNum-1).createCell(1).setCellValue(banTypeRatios.getOrDefault("肿瘤学",0).toString());
sheet.createRow(rowNum++).createCell(0).setCellValue("妇幼生殖");sheet.getRow(rowNum-1).createCell(1).setCellValue(banTypeRatios.getOrDefault("妇幼生殖",0).toString());
sheet.createRow(rowNum++).createCell(0).setCellValue("妇幼生殖");sheet.getRow(rowNum-1).createCell(1).setCellValue(banTypeRatios.getOrDefault("妇幼生殖",0).toString());
sheet.createRow(rowNum++).createCell(0).setCellValue("国学");sheet.getRow(rowNum-1).createCell(1).setCellValue(banTypeRatios.getOrDefault("国学",0).toString());
sheet.createRow(rowNum++).createCell(0).setCellValue("心理学");sheet.getRow(rowNum-1).createCell(1).setCellValue(banTypeRatios.getOrDefault("心理学",0).toString());
sheet.createRow(rowNum++).createCell(0).setCellValue("中西汇通学");sheet.getRow(rowNum-1).createCell(1).setCellValue(banTypeRatios.getOrDefault("中西汇通学",0).toString());
@@ -443,14 +443,17 @@ public class StatisticsBusinessVipController {
row5.createCell(1).setCellValue("肿瘤学");row5.createCell(2).setCellValue(state1Counts.get("zlCount").toString());
row5.createCell(4).setCellValue("肿瘤学");row5.createCell(5).setCellValue(state0Counts.get("zlCount").toString());
Row row6 = sheet.createRow(rowNum++);
row6.createCell(1).setCellValue("");row6.createCell(2).setCellValue(state1Counts.get("gxCount").toString());
row6.createCell(4).setCellValue("");row6.createCell(5).setCellValue(state0Counts.get("gxCount").toString());
row6.createCell(1).setCellValue("妇幼生殖");row6.createCell(2).setCellValue(state1Counts.get("fyszCount").toString());
row6.createCell(4).setCellValue("妇幼生殖");row6.createCell(5).setCellValue(state0Counts.get("fyszCount").toString());
Row row7 = sheet.createRow(rowNum++);
row7.createCell(1).setCellValue("心理");row7.createCell(2).setCellValue(state1Counts.get("xlCount").toString());
row7.createCell(4).setCellValue("心理");row7.createCell(5).setCellValue(state0Counts.get("xlCount").toString());
row7.createCell(1).setCellValue("");row7.createCell(2).setCellValue(state1Counts.get("gxCount").toString());
row7.createCell(4).setCellValue("");row7.createCell(5).setCellValue(state0Counts.get("gxCount").toString());
Row row8 = sheet.createRow(rowNum++);
row8.createCell(1).setCellValue("中西汇通");row8.createCell(2).setCellValue(state1Counts.get("zxhtCount").toString());
row8.createCell(4).setCellValue("中西汇通");row8.createCell(5).setCellValue(state0Counts.get("zxhtCount").toString());
row8.createCell(1).setCellValue("心理");row8.createCell(2).setCellValue(state1Counts.get("xlCount").toString());
row8.createCell(4).setCellValue("心理");row8.createCell(5).setCellValue(state0Counts.get("xlCount").toString());
Row row9 = sheet.createRow(rowNum++);
row9.createCell(1).setCellValue("中西汇通学");row9.createCell(2).setCellValue(state1Counts.get("zxhtCount").toString());
row9.createCell(4).setCellValue("中西汇通学");row9.createCell(5).setCellValue(state0Counts.get("zxhtCount").toString());
export(wb,sheet,fileName,++rowNum,response,headers,cellValues, (List<Map<String, Object>>) r.get("resultList"));
}
@@ -489,7 +492,8 @@ public class StatisticsBusinessVipController {
"6","肿瘤学",
"7","国学",
"8","心理学",
"9","中西汇通学"
"9","中西汇通学",
"10","妇幼生殖学"
);
// 封装统计结果
@@ -510,6 +514,7 @@ public class StatisticsBusinessVipController {
result.counts.put("gxCount",0);
result.counts.put("xlCount",0);
result.counts.put("zxhtCount",0);
result.counts.put("fyszCount",0);
for (Map<String,Object> map : userVips) {
String[] types = map.get("type").toString().split(",");
@@ -517,7 +522,7 @@ public class StatisticsBusinessVipController {
int yxFlag = 0;
int gxFlag = 0;
// 超级类型
if (typeSet.containsAll(Arrays.asList("4","5","6","9"))) {
if (typeSet.containsAll(Arrays.asList("4","5","6","9","10"))) {
yxFlag = 1;
Map<String,Object> copy = new HashMap<>(map);
copy.put("vipType","医学超级");
@@ -545,7 +550,7 @@ public class StatisticsBusinessVipController {
else if ("7".equals(type) && gxFlag==0) { copy.put("vipType","国学"); result.counts.computeIfPresent("gxCount",(k,v)->v+1); }
else if ("8".equals(type) && gxFlag==0) { copy.put("vipType","心理学"); result.counts.computeIfPresent("xlCount",(k,v)->v+1); }
else if ("9".equals(type) && yxFlag==0) { copy.put("vipType","中西汇通学"); result.counts.computeIfPresent("zxhtCount",(k,v)->v+1); }
else if ("10".equals(type) && yxFlag==0) { copy.put("vipType","妇幼生殖学"); result.counts.computeIfPresent("fyszCount",(k,v)->v+1); }
if (copy.get("vipType") != null) {
result.resultList.add(copy);
result.total.add(map.get("tel").toString());