This commit is contained in:
zhaoxinyu
2024-09-23 10:50:10 +08:00
parent 17d50d77f8
commit dfbb741cb1
6 changed files with 46 additions and 4 deletions
@@ -155,7 +155,9 @@ public class ReimbursementCon {
"\tct_s.`data` ct_s,\n" + "\tct_s.`data` ct_s,\n" +
"\tuc_s.`data` uc_s,\n" + "\tuc_s.`data` uc_s,\n" +
"\tucc_s.`data` ucc_s,\n" + "\tucc_s.`data` ucc_s,\n" +
"\tus_s.`data` us_s\n" + "\tus_s.`data` us_s,\n" +
"\tabsType.`name` projectTypeName, \n" +
"\tabsat.`name` activityTypeName\n" +
"FROM\n" + "FROM\n" +
"\tactivity_bx act\n" + "\tactivity_bx act\n" +
"\tLEFT JOIN sys_user `user` ON act.user_id = `user`.id\n" + "\tLEFT JOIN sys_user `user` ON act.user_id = `user`.id\n" +
@@ -171,6 +173,8 @@ public class ReimbursementCon {
"\tLEFT JOIN sys_signature uc_s ON uc_s.id = act.union_cashier\n" + "\tLEFT JOIN sys_signature uc_s ON uc_s.id = act.union_cashier\n" +
"\tLEFT JOIN sys_signature ucc_s ON ucc_s.id = act.union_chairman\n" + "\tLEFT JOIN sys_signature ucc_s ON ucc_s.id = act.union_chairman\n" +
"\tLEFT JOIN sys_signature us_s ON us_s.id = act.user_signature \n" + "\tLEFT JOIN sys_signature us_s ON us_s.id = act.user_signature \n" +
"\tLEFT JOIN activity_basic_settings absType ON absType.`code` = act.projectTypeCode\n" +
"\tLEFT JOIN activity_basic_settings absat ON absat.`code` = act.activity_type\n" +
"WHERE\n" + "WHERE\n" +
"\tact.id = @id").setParam("id", id); "\tact.id = @id").setParam("id", id);
List<NutMap> listMap = baseService.listMap(sql); List<NutMap> listMap = baseService.listMap(sql);
@@ -71,7 +71,9 @@ public class ActivityBxServiceImpl extends BaseServiceImpl<ActivityBx> implement
ct_s.`data` ct_s, ct_s.`data` ct_s,
uc_s.`data` uc_s, uc_s.`data` uc_s,
ucc_s.`data` ucc_s, ucc_s.`data` ucc_s,
us_s.`data` us_s us_s.`data` us_s,
absType.`name` projectTypeName,
absat.`name` activityTypeName
FROM FROM
activity_bx act activity_bx act
LEFT JOIN sys_user `user` ON act.user_id = `user`.id LEFT JOIN sys_user `user` ON act.user_id = `user`.id
@@ -87,6 +89,8 @@ public class ActivityBxServiceImpl extends BaseServiceImpl<ActivityBx> implement
LEFT JOIN sys_signature uc_s ON uc_s.id = act.union_cashier LEFT JOIN sys_signature uc_s ON uc_s.id = act.union_cashier
LEFT JOIN sys_signature ucc_s ON ucc_s.id = act.union_chairman LEFT JOIN sys_signature ucc_s ON ucc_s.id = act.union_chairman
LEFT JOIN sys_signature us_s ON us_s.id = act.user_signature LEFT JOIN sys_signature us_s ON us_s.id = act.user_signature
LEFT JOIN activity_basic_settings absType ON absType.`code` = act.projectTypeCode
LEFT JOIN activity_basic_settings absat ON absat.`code` = act.activity_type
WHERE WHERE
act.id = @id act.id = @id
""").setParam("id", id); """).setParam("id", id);
@@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import io.v.nutz.base.page.Pagination; import io.v.nutz.base.page.Pagination;
import io.v.nutz.base.service.impl.BaseServiceImpl; import io.v.nutz.base.service.impl.BaseServiceImpl;
@@ -50,6 +51,7 @@ public class QuestionAnswerRankingServiceImpl extends BaseServiceImpl<QuestionUs
DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) as answerDate, DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) as answerDate,
qus.score, qus.score,
qus.answerNum, qus.answerNum,
qus.takeTime,
u.loginname, u.loginname,
u.username, u.username,
u.sex, u.sex,
@@ -85,6 +87,7 @@ public class QuestionAnswerRankingServiceImpl extends BaseServiceImpl<QuestionUs
GROUP_CONCAT( qus.answerNum, '(', qus.score, ')' ORDER BY qus.answerNum SEPARATOR ', ' ) AS everyRandomScore, GROUP_CONCAT( qus.answerNum, '(', qus.score, ')' ORDER BY qus.answerNum SEPARATOR ', ' ) AS everyRandomScore,
sum( score ) AS score, sum( score ) AS score,
qus.userId, qus.userId,
qus.takeTime,
DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) AS answerDate, DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) AS answerDate,
u.loginname, u.loginname,
u.username, u.username,
@@ -140,6 +143,7 @@ public class QuestionAnswerRankingServiceImpl extends BaseServiceImpl<QuestionUs
qus.userId, qus.userId,
DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) AS answerDate, DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) AS answerDate,
qus.answerNum, qus.answerNum,
qus.takeTime,
max( qus.answerNum ), max( qus.answerNum ),
min( qus.answerNum ), min( qus.answerNum ),
qus.score, qus.score,
@@ -182,6 +186,7 @@ public class QuestionAnswerRankingServiceImpl extends BaseServiceImpl<QuestionUs
DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) as answerDate, DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) as answerDate,
qus.score, qus.score,
qus.answerNum, qus.answerNum,
qus.takeTime,
u.loginname, u.loginname,
u.username, u.username,
u.sex, u.sex,
@@ -225,6 +230,7 @@ public class QuestionAnswerRankingServiceImpl extends BaseServiceImpl<QuestionUs
DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) as answerDate, DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) as answerDate,
qus.score, qus.score,
qus.answerNum, qus.answerNum,
qus.takeTime,
u.loginname, u.loginname,
u.username, u.username,
u.sex, u.sex,
@@ -269,6 +275,7 @@ public class QuestionAnswerRankingServiceImpl extends BaseServiceImpl<QuestionUs
GROUP_CONCAT( qus.answerNum, '(', qus.score, ')' ORDER BY qus.answerNum SEPARATOR ', ' ) AS everyRandomScore, GROUP_CONCAT( qus.answerNum, '(', qus.score, ')' ORDER BY qus.answerNum SEPARATOR ', ' ) AS everyRandomScore,
sum( score ) AS score, sum( score ) AS score,
qus.userId, qus.userId,
qus.takeTime,
DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) AS answerDate, DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) AS answerDate,
u.loginname, u.loginname,
u.username, u.username,
@@ -334,6 +341,7 @@ public class QuestionAnswerRankingServiceImpl extends BaseServiceImpl<QuestionUs
qus.userId, qus.userId,
DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) AS answerDate, DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) AS answerDate,
qus.answerNum, qus.answerNum,
qus.takeTime,
max( qus.answerNum ), max( qus.answerNum ),
min( qus.answerNum ), min( qus.answerNum ),
qus.score, qus.score,
@@ -383,6 +391,7 @@ public class QuestionAnswerRankingServiceImpl extends BaseServiceImpl<QuestionUs
qus.userId, qus.userId,
DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) as answerDate, DATE_FORMAT( qus.answerDate, '%Y-%m-%d' ) as answerDate,
qus.score, qus.score,
qus.takeTime,
qus.answerNum, qus.answerNum,
u.loginname, u.loginname,
u.username, u.username,
@@ -418,6 +427,16 @@ public class QuestionAnswerRankingServiceImpl extends BaseServiceImpl<QuestionUs
exportEntities.add(new ExcelExportEntity("分数", "score", 20)); exportEntities.add(new ExcelExportEntity("分数", "score", 20));
exportEntities.add(new ExcelExportEntity("答题日期", "answerDate", 20)); exportEntities.add(new ExcelExportEntity("答题日期", "answerDate", 20));
if (question.getEnableTimer()) {
exportEntities.add(new ExcelExportEntity("答题用时", "takeTime", 20));
}
for (NutMap nutMap : list) {
int takeTime = nutMap.getInt("takeTime", 0);
String time = DateUtil.secondToTime(takeTime);
nutMap.put("takeTime",time);
}
ExportParams exportParams = new ExportParams(); ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.XSSF); exportParams.setType(ExcelType.XSSF);
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
@@ -9,7 +9,7 @@
<el-descriptions-item label="活动主体类型">{{ viewData.activityTypeName }}</el-descriptions-item> <el-descriptions-item label="活动主体类型">{{ viewData.activityTypeName }}</el-descriptions-item>
<el-descriptions-item label="活动项目类型" :span="2">{{ viewData.projectTypeName }}</el-descriptions-item> <el-descriptions-item label="活动项目类型" :span="2">{{ viewData.projectTypeName }}</el-descriptions-item>
<el-descriptions-item label="活动名称" :span="2">{{viewData.activity_name}}</el-descriptions-item> <el-descriptions-item label="活动名称" :span="2">{{viewData.activity_name}}</el-descriptions-item>
<el-descriptions-item label="项目编号" :span="2">{{viewData.projectCode}}</el-descriptions-item> <!-- <el-descriptions-item label="项目编号" :span="2">{{viewData.projectCode}}</el-descriptions-item>-->
<el-descriptions-item label="申报(承办)单位" :span="2">{{viewData.fundsUnitName}}</el-descriptions-item> <el-descriptions-item label="申报(承办)单位" :span="2">{{viewData.fundsUnitName}}</el-descriptions-item>
<el-descriptions-item label="活动计划时间" :span="2"> <el-descriptions-item label="活动计划时间" :span="2">
{{viewData.startPlannedDate}}至{{viewData.endPlannedDate}} {{viewData.startPlannedDate}}至{{viewData.endPlannedDate}}
@@ -174,7 +174,7 @@ layout("/mobile/platform.html"){
<div class="score" v-if="finishAnswer && ( currentScore || currentScore===0 )"> <div class="score" v-if="finishAnswer && ( currentScore || currentScore===0 )">
{{questionData.calcScoreMode==1?'今日最高成绩':'得分'}}{{currentScore}} {{questionData.calcScoreMode==1?'今日最高成绩':'得分'}}{{currentScore}}
</div> </div>
<div class="timer" v-if="questionData.enableTimer"> <div class="timer" v-if="questionData.enableTimer && !finishAnswer">
<span>剩余时间:{{remainder}}</span> <span>剩余时间:{{remainder}}</span>
</div> </div>
</div> </div>
@@ -128,6 +128,12 @@ layout("/layouts/platform.html"){
<el-table-column label="每轮得分" prop="everyRandomScore" <el-table-column label="每轮得分" prop="everyRandomScore"
v-if="questionCtMode==2 && isSameDay"></el-table-column> v-if="questionCtMode==2 && isSameDay"></el-table-column>
<el-table-column label="答题用时" prop="takeTime" v-if="enableTimer">
<template scope="scope">
{{moment.utc(moment.duration(scope.row.takeTime,"seconds").asMilliseconds()).format("HH时mm分ss秒")}}
</template>
</el-table-column>
</el-table> </el-table>
<!--# include("/layouts/pagination.html"){}#--> <!--# include("/layouts/pagination.html"){}#-->
@@ -207,6 +213,15 @@ layout("/layouts/platform.html"){
return null return null
} }
return null return null
},
enableTimer(){
if(this.pageForm.questionId){
const currentQuestion = this.questions.find(v => v.qid === this.pageForm.questionId)
if (currentQuestion) {
return currentQuestion.enableTimer
}
return null
}
} }
}, },
methods: { methods: {