|
@@ -4,6 +4,7 @@ import com.google.common.collect.ArrayTable;
|
|
|
import com.google.common.collect.HashBasedTable;
|
|
|
import com.google.common.collect.Table;
|
|
|
import com.google.gson.reflect.TypeToken;
|
|
|
+import com.yaoxiang.diagnosis.config.Constants;
|
|
|
import com.yaoxiang.diagnosis.dao.OptionRepo;
|
|
|
import com.yaoxiang.diagnosis.dao.QuestionRepo;
|
|
|
import com.yaoxiang.diagnosis.entity.*;
|
|
@@ -225,6 +226,32 @@ public class TestController {
|
|
|
response.getOutputStream().write(data);
|
|
|
}
|
|
|
|
|
|
+ @GetMapping("tagMasterLevel3")
|
|
|
+ @ApiOperation("导出试卷每个知识点掌握率")
|
|
|
+ @ApiImplicitParams({@ApiImplicitParam(name = "pid", value = "pid", paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "startTime", value = "startTime", paramType = "query"),
|
|
|
+ @ApiImplicitParam(name = "endTime", value = "endTime", paramType = "query")})
|
|
|
+ public void tagMasterLevel3(Long pid, HttpServletResponse response,
|
|
|
+ @RequestParam(defaultValue = "1584107900000") Long startTime,
|
|
|
+ @RequestParam(required = false) Long endTime) throws IOException {
|
|
|
+ logger.info("start {}", new Date(startTime));
|
|
|
+ if (endTime == null) {
|
|
|
+ endTime = DateUtil.getLastTimeOfDay(new Date()).getTime();
|
|
|
+ }
|
|
|
+ logger.info("end {}", new Date(endTime));
|
|
|
+ List<PaperCommit> list = commitService.listPaperCommit(pid, startTime, endTime);
|
|
|
+ Paper p = paperService.getOnePaper(pid);
|
|
|
+ byte[] data = calc4(list, p);
|
|
|
+ logger.info("commit size {},", list.size());
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ response.setHeader("Content-Disposition", "attachment;fileName=xxx.xlsx");
|
|
|
+ response.getOutputStream().write(data);
|
|
|
+ }
|
|
|
+
|
|
|
public byte[] calc1(List<PaperCommit> list, Paper p) {
|
|
|
|
|
|
Map<Integer, Map<String, Integer>> mapCount = new LinkedHashMap<>();
|
|
@@ -306,12 +333,13 @@ public class TestController {
|
|
|
List<SpecialKnowledgeVo> vos = new ArrayList<>();
|
|
|
SpecialResult result = specialReportService.generate(commit.getPid(), commit.getUid(), false);
|
|
|
List<SpecialKnowledge> knowledges = result.getKnowledges();
|
|
|
- knowledges.stream().filter(k -> k.getLevel() == 1 || k.getLevel() == 2).forEach(k->{
|
|
|
- SpecialKnowledgeVo vo = new SpecialKnowledgeVo();
|
|
|
- vo.setContent(k.getContent());
|
|
|
- vo.setLevel(k.getLevel());
|
|
|
- vo.setMaster(k.getMaster());
|
|
|
- vos.add(vo);
|
|
|
+ knowledges.stream().filter(k -> k.getLevel() == 1 || k.getLevel() == 2).forEach(k -> {
|
|
|
+ SpecialKnowledgeVo vo = new SpecialKnowledgeVo();
|
|
|
+ vo.setContent(k.getContent());
|
|
|
+ vo.setLevel(k.getLevel());
|
|
|
+ vo.setMaster(k.getMaster());
|
|
|
+ vo.setMasterStatus(k.getMasterStatus());
|
|
|
+ vos.add(vo);
|
|
|
});
|
|
|
lists.add(vos);
|
|
|
}
|
|
@@ -323,6 +351,7 @@ public class TestController {
|
|
|
TagMasterVo vo = voMap.getOrDefault(k.getContent(), new TagMasterVo());
|
|
|
vo.setContent(k.getContent());
|
|
|
vo.setLevel(k.getLevel());
|
|
|
+
|
|
|
List<Double> masters = vo.getMasters();
|
|
|
masters.add(k.getMaster());
|
|
|
vo.setMasters(masters);
|
|
@@ -333,6 +362,42 @@ public class TestController {
|
|
|
return ExportUtil.export3(list.size(), voMap.values());
|
|
|
}
|
|
|
|
|
|
+ public byte[] calc4(List<PaperCommit> list, Paper p) {
|
|
|
+ List<List<SpecialKnowledgeVo>> lists = new ArrayList<>();
|
|
|
+
|
|
|
+
|
|
|
+ for (PaperCommit commit : list) {
|
|
|
+ List<SpecialKnowledgeVo> vos = new ArrayList<>();
|
|
|
+ SpecialResult result = specialReportService.generate(commit.getPid(), commit.getUid(), false);
|
|
|
+ List<SpecialKnowledge> knowledges = result.getKnowledges();
|
|
|
+ knowledges.stream().filter(k -> k.getLevel() == 3).forEach(k -> {
|
|
|
+ SpecialKnowledgeVo vo = new SpecialKnowledgeVo();
|
|
|
+ vo.setContent(k.getContent());
|
|
|
+ vo.setLevel(k.getLevel());
|
|
|
+ vo.setMaster(k.getMaster());
|
|
|
+ vo.setMasterStatus(k.getMasterStatus());
|
|
|
+ vos.add(vo);
|
|
|
+ });
|
|
|
+ lists.add(vos);
|
|
|
+ }
|
|
|
+ Map<String, TagMasterVo> voMap = new LinkedHashMap<>();
|
|
|
+ for (List<SpecialKnowledgeVo> knowledges : lists) {
|
|
|
+ for (SpecialKnowledgeVo k : knowledges) {
|
|
|
+ TagMasterVo vo = voMap.getOrDefault(k.getContent(), new TagMasterVo());
|
|
|
+ vo.setContent(k.getContent());
|
|
|
+ vo.setLevel(k.getLevel());
|
|
|
+ boolean master = Constants.SPECIAL_KNOWLEDGE_MASTER.equals(k.getMasterStatus());
|
|
|
+ if (master) {
|
|
|
+ vo.setMasterNum(vo.getMasterNum() + 1);
|
|
|
+ } else {
|
|
|
+ vo.setUnmasterNum(vo.getUnmasterNum() + 1);
|
|
|
+ }
|
|
|
+ voMap.put(k.getContent(), vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return ExportUtil.export4(voMap.values());
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private List<AnswerContrast> convertAnswerContrast(String json) {
|
|
|
return ObjectUtil.getGson().fromJson(json, new TypeToken<List<AnswerContrast>>() {
|