Explorar o código

线上版本-bug-20201104

xiaof %!s(int64=4) %!d(string=hai) anos
pai
achega
b7d3bdb74f

+ 3 - 3
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/api/QualityAnalyseController.java

@@ -172,7 +172,7 @@ public class QualityAnalyseController {
             Map<Long, MarkTask> markerMap = markTasks.stream().collect(Collectors.toMap(MarkTask::getMarkerId, Function.identity(), (dto1, dto2) -> dto1));
             List<Long> markerIdList = markerMap.values().stream().map(i -> i.getMarkerId()).collect(Collectors.toList());
             Object o = StringUtils.join(markerIdList.toArray(), ",");
-            String sql = new StringBuffer("select t.create_user_name as userName, count(t.create_user_id) as sumCount,t.create_user_id as userId from mark_log t where t.oper_type BETWEEN ").append(MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId()).append(" and ").append(MarkLogOperType.HANDLE_LEVEl.getId()).append(" and t.create_user_id in (").append(o).append(")").toString();
+            String sql = new StringBuffer("select mu.login_name as userName, count(t.create_user_id) as sumCount,t.create_user_id as userId from mark_log t left join mark_user mu on t.create_user_id = mu.id where t.oper_type BETWEEN ").append(MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId()).append(" and ").append(MarkLogOperType.HANDLE_LEVEl.getId()).append(" and t.create_user_id in (").append(o).append(")").toString();
             if (Objects.nonNull(startTime)) {
                 sql = sqlUtil.sqlConditionAnd(sql, new String[]{"t.create_time"}, new String[]{startTime}, new String[]{">="});
             }
@@ -225,7 +225,7 @@ public class QualityAnalyseController {
             Map<Long, MarkTask> markerMap = markTasks.stream().collect(Collectors.toMap(MarkTask::getMarkerId, Function.identity(), (dto1, dto2) -> dto1));
             List<Long> markerIdList = markerMap.values().stream().map(i -> i.getMarkerId()).collect(Collectors.toList());
             Object o = StringUtils.join(markerIdList.toArray(), ",");
-            String sql = new StringBuffer("select t.create_user_name as userName, sum(t.oper_data_after) as sumCount,t.create_user_id as userId from mark_log t where t.oper_type = ").append(MarkLogOperType.LEVEl_DIFFERENCE.getId()).append(" and t.create_user_id in (").append(o).append(")").toString();
+            String sql = new StringBuffer("select mu.login_name as userName, sum(t.oper_data_after) as sumCount,t.create_user_id as userId from mark_log t left join mark_user mu on t.create_user_id = mu.id where t.oper_type = ").append(MarkLogOperType.LEVEl_DIFFERENCE.getId()).append(" and t.create_user_id in (").append(o).append(")").toString();
             if (Objects.nonNull(startTime)) {
                 sql = sqlUtil.sqlConditionAnd(sql, new String[]{"t.create_time"}, new String[]{startTime}, new String[]{">="});
             }
@@ -272,7 +272,7 @@ public class QualityAnalyseController {
             Map<Long, MarkTask> markerMap = markTasks.stream().collect(Collectors.toMap(MarkTask::getMarkerId, Function.identity(), (dto1, dto2) -> dto1));
             List<Long> markerIdList = markerMap.values().stream().map(i -> i.getMarkerId()).collect(Collectors.toList());
             Object o = StringUtils.join(markerIdList.toArray(), ",");
-            String sql = new StringBuffer("select t.create_user_name as userName, sum(t.oper_data_after) as sumCount,t.create_user_id as userId from mark_log t where t.oper_type = ").append(MarkLogOperType.LEVEl_DEVIATION.getId()).append(" and t.create_user_id in (").append(o).append(")").toString();
+            String sql = new StringBuffer("select mu.login_name as userName, sum(t.oper_data_after) as sumCount,t.create_user_id as userId from mark_log t left join mark_user mu on t.create_user_id = mu.id where t.oper_type = ").append(MarkLogOperType.LEVEl_DEVIATION.getId()).append(" and t.create_user_id in (").append(o).append(")").toString();
             if (Objects.nonNull(startTime)) {
                 sql = sqlUtil.sqlConditionAnd(sql, new String[]{"t.create_time"}, new String[]{startTime}, new String[]{">="});
             }

+ 1 - 0
stmms-ms-collect/src/main/java/cn/com/qmth/stmms/ms/collect/api/CollectApi.java

@@ -166,6 +166,7 @@ public class CollectApi {
 
         loginDTO = new LoginDTO();
         loginDTO.setOrganizationId(activeWork.getOrganizationId());
+        loginDTO.setRoleCode(markUser.getRole().name());
         loginDTO.setUserId(markUser.getId());
         loginDTO.setExamId(activeWork.getId());
         loginDTO.setExamName(activeWork.getName());

+ 1 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/ChangeLevelRepo.java

@@ -13,6 +13,7 @@ import java.util.List;
 
 @Repository
 public interface ChangeLevelRepo extends JpaRepository<ChangeLevel, Long>, JpaSpecificationExecutor {
+    @Query("select s from ChangeLevel s where s.workId = ?1 and s.subject = ?2 and s.paperId = ?3 and s.auditStatus = 0")
     ChangeLevel findByWorkIdAndSubjectAndPaperId(Long workId, String subject, Long paperId);
 
     @Query("select s from ChangeLevel s where s.workId = ?1 and s.subject = ?2 and s.auditStatus = 1")

+ 2 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/PaperRepo.java

@@ -373,5 +373,7 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     @Query("select max(p.scoreBatchNo) from Paper p where p.workId = ?1 and p.subject = ?2")
     Long findMaxScoreBatchNoByWorkIdAndSubject(Long workId, Subject subject);
 
+    List<Paper> findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndLevelIsNull(Long workId, Subject valueOf, Long questionId, boolean b, int ordinal);
+
 //    List<Paper> findByWorkIdAndSubjectAndInspectRange(Long workId, Subject subject, Long inspectRange);
 }

+ 41 - 12
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/ChangeLevelApi.java

@@ -71,6 +71,7 @@ public class ChangeLevelApi {
                                    @RequestParam(required = false) Long questionId,
                                    @RequestParam(required = false) String subject,
                                    @RequestParam(required = false) String status,
+                                   @RequestParam(defaultValue = "0") String type,
                                    Pageable pageable) {
         List<ChangeLevelDTO> levelDTOs = new ArrayList<>();
         Specification<Paper> specification = (root, query, builder) -> {
@@ -79,26 +80,53 @@ public class ChangeLevelApi {
                 predicates.add(builder.equal(root.get("workId"), workId));
             }
             if (!StringUtils.isEmpty(questionId)) {
-                List<Paper> papers = paperRepo.findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTest(workId, Subject.valueOf(subject), questionId, false, TrialEnum.DEFAULT.ordinal());
-//                predicates.add(builder.equal(root.get("areaCode"), areaCode));
-                if(papers != null && papers.size() > 0) {
-                    CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
-                    for (Paper paper : papers) {
-                        in.value(paper.getId());
+                List<Paper> papers;
+                if("1".equals(type)) {
+                    papers = paperRepo.findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTest(workId, Subject.valueOf(subject), questionId, false, TrialEnum.DEFAULT.ordinal());
+                    if(papers != null && papers.size() > 0) {
+                        CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
+                        for (Paper paper : papers) {
+                            in.value(paper.getId());
+                        }
+                        predicates.add(builder.and(builder.and(in)));
+                    }
+                } else {
+                    papers = paperRepo.findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndLevelIsNull(workId, Subject.valueOf(subject), questionId, false, TrialEnum.DEFAULT.ordinal());
+                    if(papers != null && papers.size() > 0) {
+                        CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
+                        for (Paper paper : papers) {
+                            in.value(paper.getId());
+                        }
+                        predicates.add(builder.and(builder.and(in)));
+                    } else {
+                        CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
+                        in.value(-1);
+                        predicates.add(builder.and(builder.and(in)));
                     }
-                    predicates.add(builder.and(builder.and(in)));
                 }
+
             }
             if (!StringUtils.isEmpty(subject)) {
                 predicates.add(builder.equal(root.get("subject"), subject));
             }
-            if (!StringUtils.isEmpty(status) && !StringUtils.isEmpty(status)) {
-                if (Objects.equals(status, "0")) {
-                    predicates.add(builder.equal(root.get("auditStatus"), status));
-                } else {
-                    predicates.add(builder.notEqual(root.get("auditStatus"), 0));
+            //改档处理
+            if("1".equals(type)) {
+                if (!StringUtils.isEmpty(status) && !StringUtils.isEmpty(status)) {
+                    if (Objects.equals(status, "0")) {
+                        predicates.add(builder.equal(root.get("auditStatus"), status));
+                    } else {
+                        predicates.add(builder.notEqual(root.get("auditStatus"), "0"));
+                    }
                 }
+            } else {
+                if (!StringUtils.isEmpty(status) && !StringUtils.isEmpty(status)) {
+                    if (Objects.equals(status, "0")) {
+                        predicates.add(builder.equal(root.get("auditStatus"), status));
+                    } else {
+                        predicates.add(builder.equal(root.get("auditStatus"), "1"));
+                    }
 
+                }
             }
             return builder.and(predicates.toArray(new Predicate[predicates.size()]));
         };
@@ -175,6 +203,7 @@ public class ChangeLevelApi {
                                            @RequestParam Long userId) {
         ChangeLevel changeLevel = changeLevelRepo.findOne(id);
         changeLevel.setAuditStatus(auditStatus);
+        changeLevel.setAuditDate(new Date());
         changeLevelRepo.save(changeLevel);
         //同意
         if(auditStatus == 1) {