diff --git a/jeecg-module-system/jeecg-system-biz/pom.xml b/jeecg-module-system/jeecg-system-biz/pom.xml index 0242e61..e8c973d 100644 --- a/jeecg-module-system/jeecg-system-biz/pom.xml +++ b/jeecg-module-system/jeecg-system-biz/pom.xml @@ -34,6 +34,12 @@ org.jeecgframework.jimureport jimureport-spring-boot-starter + + + com.github.librepdf + openpdf + + org.jeecgframework.jimureport @@ -78,18 +84,18 @@ 9.1.9 - - com.github.javen205 IJPay-WxPay 2.9.6 + + + com.lowagie + itext + 2.0.8 + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/ArtVolunteerController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/ArtVolunteerController.java index 11400ec..c60db77 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/ArtVolunteerController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/ArtVolunteerController.java @@ -1,5 +1,6 @@ package org.jeecg.modules.web.controller; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import io.swagger.annotations.Api; @@ -16,6 +17,7 @@ import org.jeecg.modules.web.vo.SaveVolunteerVO; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.service.ISysUserService; import org.jeecg.modules.yx.dto.VolunteerDTO; +import org.jeecg.modules.yx.dto.VolunteerRecordDTO; import org.jeecg.modules.yx.entity.YxUserScore; import org.jeecg.modules.yx.entity.YxVolunteer; import org.jeecg.modules.yx.entity.YxVolunteerRecord; @@ -34,6 +36,7 @@ import java.io.IOException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * @Description: 填报志愿表 @@ -312,34 +315,50 @@ public class ArtVolunteerController { @GetMapping(value = "/preview") public void preview(@RequestParam(value = "id") String id, HttpServletResponse response) throws IOException { - VolunteerDTO volunteerDTO = yxVolunteerService.findById(id); - if (volunteerDTO == null) { +// VolunteerDTO volunteerDTO = yxVolunteerService.findById(id); + YxVolunteer yxVolunteer = yxVolunteerService.getById(id); + AssertUtils.notNull(yxVolunteer,"请求参数有误"); + if (yxVolunteer == null) { response.setContentType("text/html;charset=utf-8"); response.getWriter().print("未找到志愿表!"); } else { - String scoreId = volunteerDTO.getScoreId(); - YxUserScore yxUserScore = yxUserScoreService.findById(scoreId); - Date date = new Date(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); - // 构造freemarker模板引擎参数,listVars.size()个数对应pdf页数 + YxUserScore userScore = yxUserScoreService.findById(yxVolunteer.getScoreId()); + String professionalCategory = userScore.getProfessionalCategory(); + // 获取专业列表 + List volunteerRecordDTOList = yxVolunteerRecordService.listDTOByVolunteerIdS(id); +// List volunteerRecordDTOList = yxVolunteerRecordService.listDTOByVolunteerId(id); + List benList = volunteerRecordDTOList.stream().filter(v -> v.getBatch().contains("本科")).collect(Collectors.toList()); + List zhuanList = volunteerRecordDTOList.stream().filter(v -> v.getBatch().contains("高职高专")).collect(Collectors.toList()); + List> batchList = new ArrayList<>(); + Map batchMap = null; + if (CollectionUtil.isNotEmpty(benList)) { + batchMap = new LinkedHashMap<>(); + if (professionalCategory.contains("体育")) { + batchMap.put("batch","体育类(本科批)"); + }else{ + batchMap.put("batch","艺术类(本科批)"); + } + batchMap.put("volunteerList",benList); + batchList.add(batchMap); + } + if (CollectionUtil.isNotEmpty(zhuanList)) { + batchMap = new LinkedHashMap<>(); + + if (professionalCategory.contains("体育")) { + batchMap.put("batch","体育类(专科批)"); + }else{ + batchMap.put("batch","艺术类(专科批)"); + } + batchMap.put("volunteerList",zhuanList); + batchList.add(batchMap); + } + List> listVars = new ArrayList<>(); Map variables = new HashMap<>(); - BigDecimal professionalScore = yxUserScore.getProfessionalScore(); - BigDecimal culturalScore = yxUserScore.getCulturalScore(); - variables.put("professionalScore", professionalScore); - variables.put("culturalScore", culturalScore); - //获取用户信息 - SysUser sysUser = sysUserService.getById(yxUserScore.getCreateBy()); - variables.put("userName", sysUser.getRealname()); - - String apply = ""; - variables.put("nowDate", sdf.format(date)); - variables.put("lastUpdateDate", sdf.format(volunteerDTO.getUpdateTime() == null ? volunteerDTO.getCreateTime() : volunteerDTO.getUpdateTime())); - - variables.put("apply", apply); - variables.put("volunteer", volunteerDTO); + variables.put("professionalCategory",professionalCategory); + variables.put("batchList",batchList); listVars.add(variables); - PdfUtil.preview(templateEngine, "preview.html", listVars, response); + PdfUtil.preview(templateEngine,"志愿单导出.pdf", "preview.html", listVars, response); } } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebMajorController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebMajorController.java index bbee1db..9ab4078 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebMajorController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebMajorController.java @@ -60,99 +60,6 @@ public class WebMajorController { private IYxHistoryScoreControlLineService yxHistoryScoreControlLineService; @GetMapping(value = "/recommendMajor/page") public Result recommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO) { -// Map historyScoreControlLineMap = yxHistoryScoreControlLineService.allMaps(); -// -// List list = yxHistoryMajorEnrollService.list(new LambdaQueryWrapper() -// .eq(YxHistoryMajorEnroll::getBatch,"高职高专") -// .eq(YxHistoryMajorEnroll::getYear, "2023") -// .eq(YxHistoryMajorEnroll::getRulesEnrollProbability, "文*0.5+专*1.25")); -// String year = "2023"; -// String batch = "高职高专"; -// String category = ""; -// String key = ""; -// YxHistoryScoreControlLine historyScoreControlLine = null; -// BigDecimal culturalScore = null; -// BigDecimal specialScore = null; -// BigDecimal wenhuaBili = null; -// BigDecimal zhuanyeBili = null; -// for (YxHistoryMajorEnroll yxHistoryMajorEnroll : list) { -// String majorType = yxHistoryMajorEnroll.getMajorType(); -// category = yxHistoryMajorEnroll.getCategory(); -// String mainSubjects = yxHistoryMajorEnroll.getMainSubjects(); -// if(majorType.contains("美术")){ -// yxHistoryMajorEnroll.setProbabilityOperator("文*0.067+专*0.167"); -// }else if(majorType.contains("音乐")){ -// yxHistoryMajorEnroll.setProbabilityOperator("文*0.067+专*0.25"); -// }else if(majorType.contains("舞蹈")){ -// yxHistoryMajorEnroll.setProbabilityOperator("文*0.067+专*0.25"); -// }else if(majorType.contains("播音")){ -// yxHistoryMajorEnroll.setProbabilityOperator("文*0.067+专*0.125"); -// }else if(majorType.contains("表演")){ -// yxHistoryMajorEnroll.setProbabilityOperator("文*0.067+专*0.25"); -// }else if(majorType.contains("书法")){ -// yxHistoryMajorEnroll.setProbabilityOperator("文*0.067+专*0.167"); -// } -// String probabilityOperator = yxHistoryMajorEnroll.getProbabilityOperator(); -// String rulesEnrollProbability = yxHistoryMajorEnroll.getRulesEnrollProbability(); -// //省控线 -// //美术与设计类文0.067 专0.167 -// //音乐类文0.067 专0.25 -// //舞蹈类文0.067 专0.25 -// //播音与主持类文 0.067 专0.125 -// //表演类文0.067 专0.25 -// //书法类文0.067 专0.167 -// -// //文科_本科A段_美术与设计_2023 -// if ("舞蹈类".equals(majorType)) { -// if (mainSubjects.contains("艺术舞蹈")) { -// key = category + "_" + batch + "_" + "艺术舞蹈类" + "_" + year; -// } else if (mainSubjects.contains("国际标准")) { -// key = category + "_" + batch + "_" + "国际标准舞类" + "_" + year; -// } -// } else if(majorType.contains("体育")){ -// if (batch.contains("专科") || batch.contains("高职高专")) { -// batch = "高职高专"; -// }else{ -// batch = "本科"; -// } -// key = category + "_" + batch + "_" + majorType + "_" + year; -// } else { -// key = category + "_" + batch + "_" + majorType + "_" + year; -// } -// historyScoreControlLine = historyScoreControlLineMap.get(key); -// AssertUtils.notNull(historyScoreControlLine, String.format("行,未在系统中找到省控线")); -// culturalScore = historyScoreControlLine.getCulturalScore(); -// specialScore = historyScoreControlLine.getSpecialScore(); -// //换算分数 -// String[] operators = probabilityOperator.split("\\+"); -// for (String operator : operators) { -// if (operator.contains("文")) { -// wenhuaBili = new BigDecimal(operator.split("\\*")[1]); -// } -// if (operator.contains("专")) { -// zhuanyeBili = new BigDecimal(operator.split("\\*")[1]); -// } -// } -// if ("文过专排".equals(rulesEnrollProbability) || "文过专排主科".equals(rulesEnrollProbability)) { -// BigDecimal multiply = specialScore.multiply(zhuanyeBili); -// yxHistoryMajorEnroll.setControlLine(multiply); -// yxHistoryMajorEnroll.setRulesEnrollProbability("文过专排"); -// } else if ("专过文排".equals(rulesEnrollProbability)) { -// BigDecimal multiply = culturalScore.multiply(wenhuaBili); -// yxHistoryMajorEnroll.setControlLine(multiply); -// yxHistoryMajorEnroll.setRulesEnrollProbability("专过文排"); -// } else if ("其他计算办法".equals(rulesEnrollProbability)) { -// yxHistoryMajorEnroll.setRulesEnrollProbability("其他计算办法"); -// } else { -// if (wenhuaBili == null || zhuanyeBili == null) { -// wenhuaBili = YxConstant.bigDecimal100; -// zhuanyeBili = YxConstant.bigDecimal100; -// } -// yxHistoryMajorEnroll.setControlLine((culturalScore.multiply(wenhuaBili)).add((specialScore.multiply(zhuanyeBili)))); -// yxHistoryMajorEnroll.setRulesEnrollProbability(probabilityOperator); -// } -// } -// yxHistoryMajorEnrollService.updateBatchById(list,300); return Result.OK(yxCalculationMajorService.recommendMajorPage(queryRecommendMajorVO)); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/ArtRecommendMajorBaseDTO.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/ArtRecommendMajorBaseDTO.java index 8f6bc16..c408fbc 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/ArtRecommendMajorBaseDTO.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/dto/ArtRecommendMajorBaseDTO.java @@ -27,6 +27,7 @@ public class ArtRecommendMajorBaseDTO implements Serializable { private Integer nan=0;//难 private Integer allNumber=0;//全部数量 + private List haveMajorList = new ArrayList<>(); public ArtRecommendMajorBaseDTO() { } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxVolunteerRecordMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxVolunteerRecordMapper.java index dd095f8..e12f9c6 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxVolunteerRecordMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/YxVolunteerRecordMapper.java @@ -20,4 +20,6 @@ public interface YxVolunteerRecordMapper extends BaseMapper { List listDTOByVolunteerId(@Param("volunteerId") String volunteerId); List listDTOByVolunteerId2(@Param("scoreId")String scoreId, @Param("calutionTableName") String calculationTableName, @Param("volunteerId") String volunteerId); + + List listDTOByVolunteerIdS(@Param("volunteerId") String volunteerId); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxCalculationMajorMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxCalculationMajorMapper.xml index 7156c3d..987e808 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxCalculationMajorMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxCalculationMajorMapper.xml @@ -171,25 +171,19 @@ AND( - cm.main_subjects like '%声乐%' - - cm.main_subjects like '%器乐%' - - cm.major_type_child = '音乐教育' + cm.major_type_child like '%音乐教育%' ) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxSchoolMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxSchoolMapper.xml index a372091..5394682 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxSchoolMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxSchoolMapper.xml @@ -235,12 +235,6 @@ AND (s.school_name like concat('%',#{qvo.schoolName},'%') or sc.school_code like concat('%',#{qvo.schoolName},'%')) - AND s.school_nature in diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxVolunteerRecordMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxVolunteerRecordMapper.xml index 0008809..0efe100 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxVolunteerRecordMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxVolunteerRecordMapper.xml @@ -112,4 +112,23 @@ group by vr.id ORDER BY vr.indexs asc + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerRecordService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerRecordService.java index c3cfee8..838bcf6 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerRecordService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerRecordService.java @@ -34,4 +34,5 @@ public interface IYxVolunteerRecordService extends IService { */ boolean deleteByVolunteerId(String volunteerId); + List listDTOByVolunteerIdS(String volunteerId); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java index 65ae6f1..8466375 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java @@ -176,6 +176,10 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl haveMajorList = baseMapper.groupByBatchNumber(activeCurrentUserScore.getCalculationTableName(),queryRecommendMajorVO); + //获取推荐志愿信息service List recommendMajorList = baseMapper.recommendMajorList(activeCurrentUserScore.getCalculationTableName(),queryRecommendMajorVO); ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = this.checkLevelNum(recommendMajorList); @@ -231,6 +235,7 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl().eq(YxVolunteerRecord::getVolunteerId,volunteerId)); } + @Override + public List listDTOByVolunteerIdS(String volunteerId) { + return baseMapper.listDTOByVolunteerIdS(volunteerId); + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/util/PdfUtil.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/util/PdfUtil.java index 235e735..2e536e6 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/util/PdfUtil.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/util/PdfUtil.java @@ -15,6 +15,7 @@ import javax.servlet.http.HttpServletResponse; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import java.io.*; +import java.net.URLEncoder; import java.util.List; import java.util.Map; @@ -129,8 +130,15 @@ public class PdfUtil { * @param response HttpServletResponse * */ - public static void preview(TemplateEngine templateEngine, String templateName, List> listVars, HttpServletResponse response) { + public static void preview(TemplateEngine templateEngine,String pdfFileName, String templateName, List> listVars, HttpServletResponse response) { response.setContentType("application/pdf"); + String encodedFileName = null; + try { + encodedFileName = URLEncoder.encode(pdfFileName, "UTF-8"); + response.setHeader("Content-Disposition", "attachment;filename*=UTF-8''" + encodedFileName); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } try (ServletOutputStream out = response.getOutputStream()) { generateAll(templateEngine, templateName, out, listVars); out.flush(); @@ -138,4 +146,4 @@ public class PdfUtil { log.error(e.getMessage(), e); } } -} \ No newline at end of file +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/resources/static/fonts/simsun.ttc b/jeecg-module-system/jeecg-system-biz/src/main/resources/static/fonts/simsun.ttc new file mode 100644 index 0000000..5f22ce3 Binary files /dev/null and b/jeecg-module-system/jeecg-system-biz/src/main/resources/static/fonts/simsun.ttc differ diff --git a/jeecg-module-system/jeecg-system-biz/src/main/resources/static/fonts/simsun.ttf b/jeecg-module-system/jeecg-system-biz/src/main/resources/static/fonts/simsun.ttf new file mode 100644 index 0000000..e0115ab Binary files /dev/null and b/jeecg-module-system/jeecg-system-biz/src/main/resources/static/fonts/simsun.ttf differ diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/templates/preview.html b/jeecg-module-system/jeecg-system-start/src/main/resources/templates/preview.html index 11e07e4..f6f1ab3 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/resources/templates/preview.html +++ b/jeecg-module-system/jeecg-system-start/src/main/resources/templates/preview.html @@ -3,6 +3,9 @@ 打印志愿表
- -
- 打印志愿表 +
+ 河南省2024年普通高校招生考生志愿草表
-
- -
-
-
- +
+

河南省2024年普通高校招生考生志愿草表

+
+
+
+

-
姓名:
-
文化成绩:
-
统考成绩:
-
最新修改时间:
-
- -
-

提前批

- - - - - - - - - - - - - - - - - +
+
序号院校代码院校名称专业代码专业名称
- - -
+ + + + + - -
志愿名称代号名称
-
- -
-

本科A段

- - - - - - - - - - - - - - - - - - - -
序号院校代码院校名称专业代码专业名称
- - -
-
- -
-

本科B段

- - - - - - - - - - - - - - - - - - - -
序号院校代码院校名称专业代码专业名称
- - -
-
- -
-

高职高专

- - - - - - - - - - - - - - - - - - - -
序号院校代码院校名称专业代码专业名称
- - -
-
-
- -
-
+ + + + 平行志愿 + + + + + 院校 + + + + + + 专业 + + + + + + +
diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/templates/preview2.html b/jeecg-module-system/jeecg-system-start/src/main/resources/templates/preview2.html new file mode 100644 index 0000000..11e07e4 --- /dev/null +++ b/jeecg-module-system/jeecg-system-start/src/main/resources/templates/preview2.html @@ -0,0 +1,200 @@ + + + + 打印志愿表 + + + + + +
+ +
+ 打印志愿表 +
+
+ +
+
+
+ +
+
姓名:
+
文化成绩:
+
统考成绩:
+
最新修改时间:
+
+ +
+

提前批

+ + + + + + + + + + + + + + + + + + + +
序号院校代码院校名称专业代码专业名称
+ + +
+
+ +
+

本科A段

+ + + + + + + + + + + + + + + + + + + +
序号院校代码院校名称专业代码专业名称
+ + +
+
+ +
+

本科B段

+ + + + + + + + + + + + + + + + + + + +
序号院校代码院校名称专业代码专业名称
+ + +
+
+ +
+

高职高专

+ + + + + + + + + + + + + + + + + + + +
序号院校代码院校名称专业代码专业名称
+ + +
+
+
+ +
+
+
+
+ +