|
@@ -3,9 +3,13 @@ package cn.com.qmth.stmms.ms.admin.exporter;
|
|
|
import cn.com.qmth.stmms.ms.admin.dto.MarkLogCollectDTO;
|
|
|
import cn.com.qmth.stmms.ms.admin.dto.MarkLogOperDTO;
|
|
|
import cn.com.qmth.stmms.ms.commons.utils.excel.ExportUtils;
|
|
|
+import cn.com.qmth.stmms.ms.core.cache.ParamCache;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkLog;
|
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkLogOperType;
|
|
|
+import cn.com.qmth.stmms.ms.core.domain.MarkStage;
|
|
|
+import cn.com.qmth.stmms.ms.core.domain.MarkSubject;
|
|
|
import cn.com.qmth.stmms.ms.core.repository.MarkLogRepo;
|
|
|
+import cn.com.qmth.stmms.ms.core.repository.MarkSubjectRepo;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
@@ -13,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import javax.persistence.criteria.CriteriaBuilder;
|
|
|
import javax.persistence.criteria.Predicate;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
@@ -21,6 +26,7 @@ import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@RestController
|
|
|
@RequestMapping("api/export/log")
|
|
@@ -31,6 +37,9 @@ public class MarkLogExporter {
|
|
|
@Autowired
|
|
|
MarkLogRepo markLogRepo;
|
|
|
|
|
|
+ @Resource
|
|
|
+ MarkSubjectRepo markSubjectRepo;
|
|
|
+
|
|
|
/**
|
|
|
* 导出操作日志
|
|
|
*
|
|
@@ -52,10 +61,10 @@ public class MarkLogExporter {
|
|
|
if (Objects.nonNull(subject)) {
|
|
|
predicates.add(cb.equal(root.get("subject").as(String.class), subject));
|
|
|
}
|
|
|
- if (Objects.nonNull(examNumber) && examNumber != "") {
|
|
|
+ if (Objects.nonNull(examNumber) && !examNumber.equals("")) {
|
|
|
predicates.add(cb.equal(root.get("examNumber").as(String.class), examNumber));
|
|
|
}
|
|
|
- if (Objects.nonNull(studentName) && studentName != "") {
|
|
|
+ if (Objects.nonNull(studentName) && !studentName.equals("")) {
|
|
|
predicates.add(cb.like(root.get("studentName").as(String.class), "%" + studentName + "%"));
|
|
|
}
|
|
|
if (Objects.nonNull(operType)) {
|
|
@@ -74,7 +83,7 @@ public class MarkLogExporter {
|
|
|
}
|
|
|
|
|
|
List<Map> mapList = MarkLogOperType.listTypes();
|
|
|
- if (mapList != null && mapList.size() > 0) {
|
|
|
+ if (!mapList.isEmpty()) {
|
|
|
CriteriaBuilder.In<Object> in = cb.in(root.get("operType"));
|
|
|
for (Map map : mapList) {
|
|
|
in.value(map.get("id"));
|
|
@@ -85,13 +94,27 @@ public class MarkLogExporter {
|
|
|
};
|
|
|
List<MarkLog> result = markLogRepo.findAll(specification);
|
|
|
List<MarkLogOperDTO> markLogOperDTOS = new ArrayList<>();
|
|
|
+ boolean roughLevelEnable = ParamCache.levelConfigMap.get(String.valueOf(workId)).getRoughLevelEnable() == 1;
|
|
|
+ List<MarkSubject> subjectList = markSubjectRepo.findAllByWorkId(workId);
|
|
|
+ Map<String, String> subjectMap = subjectList.stream().collect(Collectors.toMap(x -> x.getSubject().name(), y -> y.getName()));
|
|
|
//科目名称
|
|
|
for (MarkLog markLog : result) {
|
|
|
MarkLogOperDTO markLogOperDTO = new MarkLogOperDTO();
|
|
|
markLogOperDTO.setWorkName(markLog.getWorkName());
|
|
|
markLogOperDTO.setCreateUserName(markLog.getCreateUserName());
|
|
|
+ MarkStage stage = markLog.getStage();
|
|
|
+ if (MarkStage.ROUGH_LEVEL.equals(stage)) {
|
|
|
+ markLogOperDTO.setStageName("粗分档阶段");
|
|
|
+ } else if (MarkStage.LEVEL.equals(stage)) {
|
|
|
+ markLogOperDTO.setStageName(roughLevelEnable ? "细分档阶段" : "分档阶段");
|
|
|
+ } else if (MarkStage.SCORE.equals(stage)) {
|
|
|
+ markLogOperDTO.setStageName("打分阶段");
|
|
|
+ } else {
|
|
|
+ markLogOperDTO.setStageName("无");
|
|
|
+ }
|
|
|
markLogOperDTO.setCreateRole(markLog.getCreateRole());
|
|
|
- markLogOperDTO.setSubject(markLog.getSubject());
|
|
|
+ String subjectName = subjectMap.containsKey(markLog.getSubject()) ? subjectMap.get(markLog.getSubject()) : markLog.getSubject();
|
|
|
+ markLogOperDTO.setSubject(subjectName);
|
|
|
markLogOperDTO.setExamNumber(markLog.getExamNumber());
|
|
|
markLogOperDTO.setStudentName(markLog.getStudentName());
|
|
|
markLogOperDTO.setOperType(markLog.getOperType());
|
|
@@ -125,10 +148,10 @@ public class MarkLogExporter {
|
|
|
if (Objects.nonNull(subject)) {
|
|
|
predicates.add(cb.equal(root.get("subject").as(String.class), subject));
|
|
|
}
|
|
|
- if (Objects.nonNull(examNumber) && examNumber != "") {
|
|
|
+ if (Objects.nonNull(examNumber) && !examNumber.equals("")) {
|
|
|
predicates.add(cb.equal(root.get("examNumber").as(String.class), examNumber));
|
|
|
}
|
|
|
- if (Objects.nonNull(studentName) && studentName != "") {
|
|
|
+ if (Objects.nonNull(studentName) && !studentName.equals("")) {
|
|
|
predicates.add(cb.like(root.get("studentName").as(String.class), "%" + studentName + "%"));
|
|
|
}
|
|
|
if (Objects.nonNull(createUserId)) {
|
|
@@ -160,7 +183,7 @@ public class MarkLogExporter {
|
|
|
markLogCollectDTO.setExamNumber(markLog.getExamNumber());
|
|
|
markLogCollectDTO.setCreateUserName(markLog.getCreateUserName());
|
|
|
markLogCollectDTO.setCreateTime(sdf.format(markLog.getCreateTime()));
|
|
|
- markLogCollectDTO.setRemark(Objects.isNull(markLog.getRemark())?"":markLog.getRemark());
|
|
|
+ markLogCollectDTO.setRemark(Objects.isNull(markLog.getRemark()) ? "" : markLog.getRemark());
|
|
|
markLogCollectDTO.setLoginTime(sdf.format(markLog.getLoginTime()));
|
|
|
markLogCollectDTOS.add(markLogCollectDTO);
|
|
|
}
|