考试导出

beetlsql3-dev
Mlxa0324 2 years ago
parent 3438973ef2
commit 7140f20ec3

@ -105,8 +105,8 @@ public class BeanCopyUtil extends BeanUtils {
* @param <T>
* @return
*/
public static <T extends BaseEntity> List<Map<String, Object>> BaseEntity2MapWithParallel(List<T> target) {
return BaseEntity2MapWithParallel(target, (k, v, o) -> {});
public static <T extends BaseEntity> List<Map<String, Object>> baseEntity2MapWithParallel(List<T> target) {
return baseEntity2MapWithParallel(target, (k, v, o) -> {});
}
/**
@ -115,7 +115,7 @@ public class BeanCopyUtil extends BeanUtils {
* @param <T>
* @return
*/
public static <T extends BaseEntity> List<Map<String, Object>> BaseEntity2MapWithParallel(List<T> target, ThConsumer<String, Object, T> consumer) {
public static <T extends BaseEntity> List<Map<String, Object>> baseEntity2MapWithParallel(List<T> target, ThConsumer<String, Object, T> consumer) {
StopWatch sw = new StopWatch();
sw.start();
List<Map<String, Object>> res = new ArrayList<>();

@ -6,14 +6,15 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ibeetl.admin.core.entity.BaseEntity;
import org.springframework.util.MultiValueMap;
import org.springframework.util.MultiValueMapAdapter;
import javax.validation.constraints.NotNull;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
/**
@ -97,4 +98,29 @@ public class BeanUtil extends cn.hutool.core.bean.BeanUtil {
}
}
/**
* easyExcel
* value
* value index
*
* @param object
*/
public static <T extends BaseEntity> void processExcelAnnotation(@NotNull Class<T> object) {
Map<String, String> result = new TreeMap<>();
for (Field declaredField : object.getDeclaredFields()) {
Annotation[] declaredAnnotations = declaredField.getDeclaredAnnotations();
for (Annotation declaredAnnotation : declaredAnnotations) {
// 判断是否是easyExcel 的注解
if (declaredAnnotation instanceof ExcelProperty) {
ExcelProperty excelProperty = (ExcelProperty) declaredAnnotation;
String title = excelProperty.value()[0];
int index = excelProperty.index();
result.put(declaredField.getName(), title);
;
}
}
}
}
}

@ -1,5 +1,7 @@
package com.ibeetl.jlw.entity.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ibeetl.admin.core.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -10,7 +12,7 @@ import lombok.EqualsAndHashCode;
*/
@Data
@EqualsAndHashCode(callSuper=false)
public class TeacherOpenCourseQuestionTestDetailVO {
public class TeacherOpenCourseQuestionTestDetailVO extends BaseEntity {
/**
* ID
@ -20,41 +22,49 @@ public class TeacherOpenCourseQuestionTestDetailVO {
/**
*
*/
@ExcelProperty(value = "学生编号", index = 1)
private String studentSn;
/**
*
*/
@ExcelProperty(value = "学生名字", index = 2)
private String studentName;
/**
*
*/
@ExcelProperty(value = "班级名称", index = 3)
private String className;
/**
*
*/
@ExcelProperty(value = "完成时间", index = 4)
private String finishTime;
/**
*
*/
@ExcelProperty(value = "答对数量", index = 5)
private Integer correctCount;
/**
*
*/
@ExcelProperty(value = "答错数量", index = 6)
private Integer wrongCount;
/**
* 100
*/
@ExcelProperty(value = "正确率 (100)%", index = 7)
private Integer correctRate;
/**
*
*/
@ExcelProperty(value = "总得分", index = 8)
private Float totalScore;
}

@ -1,6 +1,8 @@
package com.ibeetl.jlw.web;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import cn.jlw.Interceptor.SCoreUser;
import cn.jlw.validate.ValidateConfig;
import com.ibeetl.admin.core.annotation.Function;
@ -11,6 +13,7 @@ import com.ibeetl.jlw.entity.ResourcesQuestionSnapshot;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLogScoreInfo;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionTestSimpleInfo;
import com.ibeetl.jlw.entity.dto.TeacherOpenCourseQuestionTestDetailDTO;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseQuestionTestDetailVO;
import com.ibeetl.jlw.service.ResourcesQuestionSnapshotService;
import com.ibeetl.jlw.web.query.ResourcesQuestionSnapshotQuery;
import org.apache.commons.lang3.StringUtils;
@ -26,16 +29,24 @@ import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static com.ibeetl.admin.core.util.BeanCopyUtil.baseEntity2MapWithParallel;
import static com.ibeetl.admin.core.util.ExcelUtil.convertData;
import static com.ibeetl.admin.core.util.ExcelUtil.write;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
/**
* - --
* 线
*/
@RestController
public class ResourcesQuestionSnapshotController{
public class ResourcesQuestionSnapshotController extends BaseController {
private final Log log = LogFactory.getLog(this.getClass());
private static final String MODEL = "/jlw/resourcesQuestionSnapshot";
@ -120,6 +131,38 @@ public class ResourcesQuestionSnapshotController{
}
/**
* -
*
*
* @param condition
* @return
*/
@PostMapping(API + "/exportQuestionTestResults.do")
public void exportQuestionTestResults(TeacherOpenCourseQuestionTestDetailDTO condition) throws IOException {
Assert.notNull(getUser(), "请登录后再操作");
/** 构建表头 */
Map<String, String> header = new LinkedHashMap<>(11);
header.put("studentName", "学生姓名");
header.put("studentSn", "学号");
header.put("teacherOpenCourseIdText", "开课名称");
header.put("className", "班级名称");
header.put("finishTime", "完成时间");
header.put("correctCount", "答对数量");
header.put("wrongCount", "答错数量");
header.put("correctRate", "正确率 (100)%");
header.put("totalScore", "总得分");
PageQuery<TeacherOpenCourseQuestionTestDetailVO> data = resourcesQuestionSnapshotService.questionTestResults(condition.getPageQuery());
List<Map<String, Object>> maps = baseEntity2MapWithParallel(data.getList());
String filename = StrUtil.format("签到日志导出 {}.xlsx", DateUtil.formatDate(DateUtil.date()));
write(response, filename,"Sheet1", header.values(), convertData(header.keySet(), maps));
}
/* 后台页面 */
@GetMapping(MODEL + "/index.do")

@ -10,6 +10,7 @@ import cn.jlw.validate.ValidateConfig;
import com.ibeetl.admin.core.annotation.Function;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.file.FileService;
import com.ibeetl.admin.core.util.BeanCopyUtil;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.util.TimeTool;
import com.ibeetl.admin.core.web.JsonResult;
@ -45,7 +46,6 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import static com.ibeetl.admin.core.util.BeanCopyUtil.BaseEntity2MapWithParallel;
import static com.ibeetl.admin.core.util.ExcelUtil.convertData;
import static com.ibeetl.admin.core.util.ExcelUtil.write;
@ -165,7 +165,7 @@ public class TeacherOpenCourseStudentSigninLogController{
List<TeacherOpenCourseStudentSigninLog> datas =
teacherOpenCourseStudentSigninLogService.getValuesByQueryNotWithPermission(condition);
List<Map<String, Object>> maps = BaseEntity2MapWithParallel(datas);
List<Map<String, Object>> maps = BeanCopyUtil.baseEntity2MapWithParallel(datas);
String filename = StrUtil.format("签到日志导出 {}.xlsx", DateUtil.formatDate(DateUtil.date()));
write(resp, filename,"Sheet1", header.values(), convertData(header.keySet(), maps));

@ -10,6 +10,7 @@ import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.file.FileService;
import com.ibeetl.admin.core.service.CorePlatformService;
import com.ibeetl.admin.core.service.CoreUserService;
import com.ibeetl.admin.core.util.BeanCopyUtil;
import com.ibeetl.admin.core.util.HttpRequestLocal;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.web.JsonResult;
@ -36,7 +37,6 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import static com.ibeetl.admin.core.util.BeanCopyUtil.BaseEntity2MapWithParallel;
import static com.ibeetl.admin.core.util.ExcelUtil.convertData;
import static com.ibeetl.admin.core.util.ExcelUtil.write;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
@ -228,7 +228,7 @@ public class UniversitiesCollegesController{
List<UniversitiesColleges> datas = universitiesCollegesService.getValues(param);
List<Map<String, Object>> maps = BaseEntity2MapWithParallel(datas);
List<Map<String, Object>> maps = BeanCopyUtil.baseEntity2MapWithParallel(datas);
String filename = StrUtil.format("院校导出 {}.xlsx", DateUtil.formatDate(DateUtil.date()));
write(resp, filename,"Sheet1", header.values(), convertData(header.keySet(), maps));

Loading…
Cancel
Save