From aff7659b9a3cbeaeac654758ee8fe1f316a3b02d Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Tue, 4 Jun 2024 17:40:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E8=AF=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExamQuestionBankController.java | 7 ++++++ .../exam/controller/ExamWorkerController.java | 4 +++- .../modules/exam/entity/ExamTrainRecord.java | 6 +++++ .../service/IExamQuestionBankService.java | 3 +++ .../impl/ExamQuestionBankServiceImpl.java | 14 +++++++++++ .../service/impl/ExamTrainServiceImpl.java | 1 + .../java/com/zhgd/xmgl/util/ExcelUtils.java | 22 ++++++++++++++++++ src/main/resources/excel/题库导入模版.xlsx | Bin 0 -> 13397 bytes 8 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/excel/题库导入模版.xlsx diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamQuestionBankController.java b/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamQuestionBankController.java index d531304de..c554f3446 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamQuestionBankController.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamQuestionBankController.java @@ -438,6 +438,13 @@ public class ExamQuestionBankController { return Result.ok("文件导入失败!"); } + @ApiOperation(value = "导入模板下载", notes = "导入模板下载", httpMethod = "GET") + @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String") + @GetMapping(value = "/exporExcelTemplate") + public void exporExcelTemplate(HttpServletResponse response, String projectSn) { + examQuestionBankService.exporExcelTemplate(response, projectSn); + } + private String getType(int type) { String typeName = null; switch (type) { diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamWorkerController.java b/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamWorkerController.java index fdce64f4d..ce54e9393 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamWorkerController.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/controller/ExamWorkerController.java @@ -69,7 +69,8 @@ public class ExamWorkerController { String workerId = MapUtils.getString(map, "workerId"); List list = examTrainRecordService.pageList(new Page(1, -1), Wrappers.lambdaQuery() .eq(ExamTrainRecord::getWorkerId, workerId) - .eq(ExamTrainRecord::getIsPass, 0)).getRecords(); + .eq(ExamTrainRecord::getIsPass, 0) + .gt(ExamTrainRecord::getExamCount, 0)).getRecords(); return Result.success(list); } @@ -122,6 +123,7 @@ public class ExamWorkerController { result.error500("未找到对应实体"); } else { examTrainRecordEntity.setStartExamTime(new Date()); + examTrainRecordEntity.setExamNum(examTrainRecordEntity.getExamCount() - 1); result.setResult(examTrainRecordService.updateById(examTrainRecordEntity)); result.setSuccess(true); } diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/entity/ExamTrainRecord.java b/src/main/java/com/zhgd/xmgl/modules/exam/entity/ExamTrainRecord.java index 1fd031c53..de5327bd3 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/entity/ExamTrainRecord.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/entity/ExamTrainRecord.java @@ -92,6 +92,12 @@ public class ExamTrainRecord implements Serializable { */ @Excel(name = "考试次数", width = 15) @ApiModelProperty(value = "考试次数") + private Integer examCount; + /** + * 考试次数 + */ + @Excel(name = "考试次数", width = 15) + @ApiModelProperty(value = "考试次数") private Integer examNum; /** * 是否签到 diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/service/IExamQuestionBankService.java b/src/main/java/com/zhgd/xmgl/modules/exam/service/IExamQuestionBankService.java index 17e62b940..bff7efafc 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/service/IExamQuestionBankService.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/service/IExamQuestionBankService.java @@ -4,6 +4,7 @@ import com.zhgd.xmgl.modules.exam.entity.ExamQuestionBank; import com.baomidou.mybatisplus.extension.service.IService; import com.zhgd.xmgl.modules.exam.vo.ExamQuestionBankVo; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -23,4 +24,6 @@ public interface IExamQuestionBankService extends IService { ExamQuestionBankVo queryById(Long id); List queryByBatchId(List ids); + + void exporExcelTemplate(HttpServletResponse response, String projectSn); } diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamQuestionBankServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamQuestionBankServiceImpl.java index 727b76417..4b72fa4e9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamQuestionBankServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamQuestionBankServiceImpl.java @@ -1,14 +1,18 @@ package com.zhgd.xmgl.modules.exam.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.xmgl.modules.exam.entity.ExamQuestionBank; import com.zhgd.xmgl.modules.exam.entity.ExamQuestionOption; +import com.zhgd.xmgl.modules.exam.entity.ExamSubject; import com.zhgd.xmgl.modules.exam.mapper.ExamQuestionBankMapper; import com.zhgd.xmgl.modules.exam.service.IExamQuestionBankService; import com.zhgd.xmgl.modules.exam.service.IExamQuestionOptionService; +import com.zhgd.xmgl.modules.exam.service.IExamSubjectService; import com.zhgd.xmgl.modules.exam.vo.ExamQuestionBankVo; import com.zhgd.xmgl.security.entity.UserInfo; import com.zhgd.xmgl.security.util.SecurityUtils; +import com.zhgd.xmgl.util.ExcelUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -16,6 +20,7 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -33,6 +38,9 @@ public class ExamQuestionBankServiceImpl extends ServiceImpl subjectList = examSubjectService.list(Wrappers.lambdaQuery().eq(ExamSubject::getProjectSn, projectSn)); + ExcelUtils.exporExcelExamQuestionBankTemplate(response, subjectList); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamTrainServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamTrainServiceImpl.java index 753299c4a..92908338a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamTrainServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/service/impl/ExamTrainServiceImpl.java @@ -100,6 +100,7 @@ public class ExamTrainServiceImpl extends ServiceImpl { r.setIsPass(0); r.setExamNum(0); + r.setExamCount(examTrain.getExamNum()); r.setProjectSn(examTrain.getProjectSn()); r.setCreateBy(examTrain.getCreateBy()); r.setTrainId(examTrain.getId()); diff --git a/src/main/java/com/zhgd/xmgl/util/ExcelUtils.java b/src/main/java/com/zhgd/xmgl/util/ExcelUtils.java index 6c2131619..deba14ce3 100644 --- a/src/main/java/com/zhgd/xmgl/util/ExcelUtils.java +++ b/src/main/java/com/zhgd/xmgl/util/ExcelUtils.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.util; import com.zhgd.jeecg.common.mybatis.EntityMap; +import com.zhgd.xmgl.modules.exam.entity.ExamSubject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -250,6 +251,27 @@ public class ExcelUtils { } } + public static void exporExcelExamQuestionBankTemplate(HttpServletResponse response, List subjectList) { + try { + ClassPathResource classPathResource = new ClassPathResource("excel/题库导入模板.xlsx"); + InputStream inputStream = classPathResource.getInputStream(); + XSSFWorkbook workbook = new XSSFWorkbook(inputStream); + //部门/班组下拉列 + XSSFSheet sheet2 = workbook.getSheet("科目名称"); + if (subjectList.size() > 0) { + for (int i = 0; i < subjectList.size(); i++) { + XSSFRow row1 = sheet2.createRow(i); + XSSFCell cell1 = row1.createCell(0); + cell1.setCellType(CellType.STRING); + cell1.setCellValue(subjectList.get(i).getName()); + } + } + downLoadExcel("题库导入模板.xlsx", response, workbook); + } catch (IOException e) { + log.error("error:", e); + } + } + /*public static void main(String[] args) { try { InputStream instream = new FileInputStream("D:/qqq.xlsx"); diff --git a/src/main/resources/excel/题库导入模版.xlsx b/src/main/resources/excel/题库导入模版.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..888b992f93e3c2a9938053b05644a20aa9f43039 GIT binary patch literal 13397 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 F{SVWNTiyTw literal 0 HcmV?d00001