题目日志汇总导出

beetlsql3-dev
Mlxa0324 2 years ago
parent c745b7d9ba
commit f9c79c9c23

@ -1,11 +1,14 @@
package com.ibeetl.jlw.entity;
import cn.hutool.core.util.NumberUtil;
import com.ibeetl.admin.core.annotation.Dict;
import com.ibeetl.admin.core.annotation.DictDeep;
import com.ibeetl.admin.core.entity.BaseEntity;
import com.ibeetl.admin.core.util.ValidateConfig;
import com.ibeetl.jlw.enums.QuestionBusinessTypeEnum;
import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.beetl.sql.annotation.entity.AssignID;
import org.beetl.sql.annotation.entity.InsertIgnore;
import org.beetl.sql.annotation.entity.UpdateIgnore;
@ -19,6 +22,8 @@ import java.util.Date;
* --
* gen by Spring Boot2 Admin 2022-12-04
*/
@Data
@EqualsAndHashCode(callSuper=false)
public class QuestionLogSummary extends BaseEntity{
//学生做题日志汇总ID
@ -113,6 +118,12 @@ public class QuestionLogSummary extends BaseEntity{
private String finishTime ;
// 完成进度
@InsertIgnore
@UpdateIgnore
private float finishProgress;
//组织ID
private Long orgId ;
@ -120,287 +131,22 @@ public class QuestionLogSummary extends BaseEntity{
//用户ID
private Long userId ;
public QuestionLogSummary(){
}
/**ID
*@return
*/
public Long getQuestionLogSummaryId(){
return questionLogSummaryId;
}
/**ID
*@param questionLogSummaryId
*/
public void setQuestionLogSummaryId(Long questionLogSummaryId){
this.questionLogSummaryId = questionLogSummaryId;
}
/**ID
*@return
*/
public Long getQuestionSettingId(){
return questionSettingId;
}
/**ID
*@param questionSettingId
*/
public void setQuestionSettingId(Long questionSettingId){
this.questionSettingId = questionSettingId;
}
/**
*@return
*/
public String getQuestionSettingName(){
return questionSettingName;
}
/**
*@param questionSettingName
*/
public void setQuestionSettingName(String questionSettingName){
this.questionSettingName = questionSettingName;
}
/** ResourcesQuestionSnapshotFromTypeEnum
*@return
*/
public ResourcesQuestionSnapshotFromTypeEnum getQuestionSettingType(){
return questionSettingType;
}
/** ResourcesQuestionSnapshotFromTypeEnum
*@param questionSettingType
*/
public void setQuestionSettingType(ResourcesQuestionSnapshotFromTypeEnum questionSettingType){
this.questionSettingType = questionSettingType;
}
/**
*@return
*/
public QuestionBusinessTypeEnum getQuestionLogSummaryFromType(){
return questionLogSummaryFromType;
}
/**
*@param questionLogSummaryFromType
*/
public void setQuestionLogSummaryFromType(QuestionBusinessTypeEnum questionLogSummaryFromType){
this.questionLogSummaryFromType = questionLogSummaryFromType;
}
/**
*@return
*/
public BigDecimal getQuestionSettingTotalScore(){
return questionSettingTotalScore;
}
/**
*@param questionSettingTotalScore
*/
public void setQuestionSettingTotalScore(BigDecimal questionSettingTotalScore){
this.questionSettingTotalScore = questionSettingTotalScore;
}
/**IDID
*@return
*/
public Long getPersonId(){
return personId;
}
/**IDID
*@param personId
*/
public void setPersonId(Long personId){
this.personId = personId;
}
/**IDs
*@return
*/
public String getQuestionLogIds(){
return questionLogIds;
}
/**IDs
*@param questionLogIds
*/
public void setQuestionLogIds(String questionLogIds){
this.questionLogIds = questionLogIds;
}
/**
*@return
*/
public Integer getQuestionLogSummaryQuestionTotalCount(){
return questionLogSummaryQuestionTotalCount;
}
/**
*@param questionLogSummaryQuestionTotalCount
*/
public void setQuestionLogSummaryQuestionTotalCount(Integer questionLogSummaryQuestionTotalCount){
public void setQuestionLogSummaryQuestionTotalCount(Integer questionLogSummaryQuestionTotalCount) {
this.questionLogSummaryQuestionTotalCount = questionLogSummaryQuestionTotalCount;
tryCalcFinishProgress();
}
/**
*@return
*/
public Integer getQuestionLogSummaryStudentDoCount(){
return questionLogSummaryStudentDoCount;
}
/**
*@param questionLogSummaryStudentDoCount
*/
public void setQuestionLogSummaryStudentDoCount(Integer questionLogSummaryStudentDoCount){
public void setQuestionLogSummaryStudentDoCount(Integer questionLogSummaryStudentDoCount) {
this.questionLogSummaryStudentDoCount = questionLogSummaryStudentDoCount;
tryCalcFinishProgress();
}
/**
*@return
*/
public Integer getQuestionLogSummarySuccessCount(){
return questionLogSummarySuccessCount;
}
/**
*@param questionLogSummarySuccessCount
*/
public void setQuestionLogSummarySuccessCount(Integer questionLogSummarySuccessCount){
this.questionLogSummarySuccessCount = questionLogSummarySuccessCount;
}
/**
*@return
*/
public Integer getQuestionLogSummaryErrorCount(){
return questionLogSummaryErrorCount;
}
/**
*@param questionLogSummaryErrorCount
*/
public void setQuestionLogSummaryErrorCount(Integer questionLogSummaryErrorCount){
this.questionLogSummaryErrorCount = questionLogSummaryErrorCount;
}
/**,100
*@return
*/
public BigDecimal getQuestionLogSummarySuccessRate(){
return questionLogSummarySuccessRate;
}
/**,100
*@param questionLogSummarySuccessRate
*/
public void setQuestionLogSummarySuccessRate(BigDecimal questionLogSummarySuccessRate){
this.questionLogSummarySuccessRate = questionLogSummarySuccessRate;
}
/**
*@return
*/
public BigDecimal getQuestionLogSummaryCurrentPassRate(){
return questionLogSummaryCurrentPassRate;
}
/**
*@param questionLogSummaryCurrentPassRate
*/
public void setQuestionLogSummaryCurrentPassRate(BigDecimal questionLogSummaryCurrentPassRate){
this.questionLogSummaryCurrentPassRate = questionLogSummaryCurrentPassRate;
}
/**
*@return
*/
public Integer getQuestionLogSummaryIsPass(){
return questionLogSummaryIsPass;
}
/**
*@param questionLogSummaryIsPass
*/
public void setQuestionLogSummaryIsPass(Integer questionLogSummaryIsPass){
this.questionLogSummaryIsPass = questionLogSummaryIsPass;
}
/**1 2
*@return
*/
public Integer getQuestionLogSummaryStatus(){
return questionLogSummaryStatus;
}
/**1 2
*@param questionLogSummaryStatus
*/
public void setQuestionLogSummaryStatus(Integer questionLogSummaryStatus){
this.questionLogSummaryStatus = questionLogSummaryStatus;
}
/**
*@return
*/
public Date getQuestionLogSummaryAddTime(){
return questionLogSummaryAddTime;
}
/**
*@param questionLogSummaryAddTime
*/
public void setQuestionLogSummaryAddTime(Date questionLogSummaryAddTime){
this.questionLogSummaryAddTime = questionLogSummaryAddTime;
}
/**ID
*@return
*/
public Long getOrgId(){
return orgId;
}
/**ID
*@param orgId
*/
public void setOrgId(Long orgId){
this.orgId = orgId;
}
/**ID
*@return
*/
public Long getUserId(){
return userId;
}
/**ID
*@param userId
*/
public void setUserId(Long userId){
this.userId = userId;
}
public Long getFinishSecondTime() {
return finishSecondTime;
}
public void setFinishSecondTime(Long finishSecondTime) {
this.finishSecondTime = finishSecondTime;
}
public String getFinishTime() {
return finishTime;
}
public void setFinishTime(String finishTime) {
this.finishTime = finishTime;
}
public BigDecimal getQuestionLogSummaryStudentTotalScore() {
return questionLogSummaryStudentTotalScore;
}
public void setQuestionLogSummaryStudentTotalScore(BigDecimal questionLogSummaryStudentTotalScore) {
this.questionLogSummaryStudentTotalScore = questionLogSummaryStudentTotalScore;
}
public Student getStudentInfo() {
return studentInfo;
}
public void setStudentInfo(Student studentInfo) {
this.studentInfo = studentInfo;
}
private void tryCalcFinishProgress() {
Integer totalCount = this.questionLogSummaryQuestionTotalCount;
Integer doCount = this.questionLogSummaryStudentDoCount;
if (null != doCount && null != totalCount && totalCount > 0) {
this.finishProgress = NumberUtil.round(NumberUtil.mul(NumberUtil.div(doCount , totalCount), 100), 2).floatValue();
}
}
}

@ -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.GetFile;
import cn.jlw.Interceptor.RFile;
import cn.jlw.Interceptor.SCoreUser;
@ -9,12 +11,14 @@ 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.TimeTool;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.entity.FileEntity;
import com.ibeetl.jlw.entity.QuestionLogSummary;
import com.ibeetl.jlw.service.QuestionLogSummaryService;
import com.ibeetl.jlw.web.query.QuestionLogSummaryQuery;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@ -37,11 +41,10 @@ import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
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;
/**
@ -97,6 +100,36 @@ public class QuestionLogSummaryController{
}
}
/**
*
* @param condition
* @return
*/
@SneakyThrows
@GetMapping(API + "/export.do")
public void export(HttpServletResponse resp, QuestionLogSummaryQuery condition) {
/** 构建表头 */
Map<String, String> header = new LinkedHashMap<>(11);
header.put("studentName", "学生姓名");
header.put("studentSn", "学生学号");
header.put("className", "班级");
header.put("questionLogSummaryQuestionTotalCount", "题目总数量");
header.put("questionLogSummaryStudentDoCount", "已完成题目数量");
header.put("questionLogSummarySuccessCount", "答对数量");
header.put("questionLogSummaryErrorCount", "答错数量");
header.put("questionLogSummarySuccessRate", "正确率");
header.put("questionLogSummaryStudentTotalScore", "得分");
header.put("finishProgress", "进度(%");
condition.setQuestionLogSummaryStatus(1);
List<QuestionLogSummary> list = questionLogSummaryService.getValuesByQueryNotWithPermission(condition);
List<Map<String, Object>> maps = BeanCopyUtil.baseEntity2MapWithParallel(list);
String filename = StrUtil.format("题目日志汇总-导出 {}.xlsx", DateUtil.now());
write(resp, filename,"Sheet1", header.values(), convertData(header.keySet(), maps));
}
/* 后台页面 */

@ -501,6 +501,7 @@ public class TeacherOpenCourseMergeResourcesQuestionController extends BaseContr
/**
* : <br>
*
* excel
* @param file
* @return {@link JsonResult}
* @Author: 87966

@ -72,6 +72,13 @@ public class QuestionLogSummaryQuery extends PageParam {
private String _given;//指定更新的特定字段,多个逗号隔开
// 扩展字段
// 学生姓名或者学号
private String studentSnOrName;
// 班级IDs
private String schoolClassIdPlural;
public Long getQuestionLogSummaryId(){
return questionLogSummaryId;
}
@ -286,4 +293,20 @@ public class QuestionLogSummaryQuery extends PageParam {
public void setQuestionLogSummaryStudentTotalScore(BigDecimal questionLogSummaryStudentTotalScore) {
this.questionLogSummaryStudentTotalScore = questionLogSummaryStudentTotalScore;
}
public String getStudentSnOrName() {
return studentSnOrName;
}
public void setStudentSnOrName(String studentSnOrName) {
this.studentSnOrName = studentSnOrName;
}
public String getSchoolClassIdPlural() {
return schoolClassIdPlural;
}
public void setSchoolClassIdPlural(String schoolClassIdPlural) {
this.schoolClassIdPlural = schoolClassIdPlural;
}
}

@ -93,6 +93,12 @@ queryByCondition
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}
@if(!isEmpty(studentSnOrName)){
and (ta.student_sn like #'%'+studentSnOrName+'%'# or ta.student_name like #'%'+studentSnOrName+'%'#)
@}
@if(!isEmpty(schoolClassIdPlural)){
and find_in_set(ta.class_id, #schoolClassIdPlural#)
@}
queryByConditionQuery
@ -188,6 +194,12 @@ queryByConditionQuery
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}
@if(!isEmpty(studentSnOrName)){
and (ta.student_sn like #'%'+studentSnOrName+'%'# or ta.student_name like #'%'+studentSnOrName+'%'#)
@}
@if(!isEmpty(schoolClassIdPlural)){
and find_in_set(ta.class_id, #schoolClassIdPlural#)
@}
@ -526,6 +538,12 @@ getValuesByQuery
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}
@if(!isEmpty(studentSnOrName)){
and (ta.student_sn like #'%'+studentSnOrName+'%'# or ta.student_name like #'%'+studentSnOrName+'%'#)
@}
@if(!isEmpty(schoolClassIdPlural)){
and find_in_set(ta.class_id, #schoolClassIdPlural#)
@}
getValuesByQueryNotWithPermission
@ -619,6 +637,12 @@ getValuesByQueryNotWithPermission
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}
@if(!isEmpty(studentSnOrName)){
and (ta.student_sn like #'%'+studentSnOrName+'%'# or ta.student_name like #'%'+studentSnOrName+'%'#)
@}
@if(!isEmpty(schoolClassIdPlural)){
and find_in_set(ta.class_id, #schoolClassIdPlural#)
@}
@ -726,6 +750,12 @@ getExcelValues
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}
@if(!isEmpty(studentSnOrName)){
and (ta.student_sn like #'%'+studentSnOrName+'%'# or ta.student_name like #'%'+studentSnOrName+'%'#)
@}
@if(!isEmpty(schoolClassIdPlural)){
and find_in_set(ta.class_id, #schoolClassIdPlural#)
@}
)
UNION ALL
(
@ -825,6 +855,12 @@ getExcelValues
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}
@if(!isEmpty(studentSnOrName)){
and (ta.student_sn like #'%'+studentSnOrName+'%'# or ta.student_name like #'%'+studentSnOrName+'%'#)
@}
@if(!isEmpty(schoolClassIdPlural)){
and find_in_set(ta.class_id, #schoolClassIdPlural#)
@}
)
)t

Loading…
Cancel
Save