浏览代码

美术阅卷11月新增需求-新增档位落差报表

wangliang 5 年之前
父节点
当前提交
9da72afcf3

+ 4 - 1
sql/更新脚本.sql

@@ -36,4 +36,7 @@ ALTER TABLE paper ADD COLUMN `is_test` TINYINT NOT NULL DEFAULT 0 COMMENT '是
 
 alter table student drop KEY `exam_number`;
 
-alter table student ADD UNIQUE index(`exam_number`,`work_id`,`is_test`);
+alter table student ADD UNIQUE index(`exam_number`,`work_id`,`is_test`);
+
+-- 2019.11.08 by wl
+ALTER TABLE `mark_user` ADD COLUMN `level_callback` BIT(1) NOT NULL default false COMMENT '档位打回';

+ 0 - 31
stmms-ms-accesscontrol/src/main/java/cn/com/qmth/stmms/ms/accesscontrol/config/ClientLoginConfig.java

@@ -1,31 +0,0 @@
-package cn.com.qmth.stmms.ms.accesscontrol.config;
-
-/**
- * @Description: 采集端配置
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2019/10/18
- */
-//public class ClientLoginConfig {
-//
-//    private String loginName;
-//
-//    private String password;
-//
-//    public String getLoginName() {
-//        return loginName;
-//    }
-//
-//    public void setLoginName(String loginName) {
-//        this.loginName = loginName;
-//    }
-//
-//    public String getPassword() {
-//        return password;
-//    }
-//
-//    public void setPassword(String password) {
-//        this.password = password;
-//    }
-//}

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

@@ -2,6 +2,7 @@ package cn.com.qmth.stmms.ms.admin.api;
 
 import cn.com.qmth.stmms.ms.commons.utils.SqlUtil;
 import cn.com.qmth.stmms.ms.core.domain.Level;
+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.task.MarkTask;
 import cn.com.qmth.stmms.ms.core.repository.LevelRepo;
@@ -166,14 +167,14 @@ public class QualityAnalyseController {
         if (Objects.nonNull(markTasks) && markTasks.size() > 0) {
             Set<Long> markerIdSet = markTasks.stream().map(o -> o.getMarkerId()).collect(Collectors.toSet());
             Object o = StringUtils.join(markerIdSet.toArray(), ",");
-            String sql = new StringBuffer("select t.create_user_name as userName, count(t.create_user_id) as sumCount from mark_log t where t.oper_type BETWEEN 10 and 12 and t.create_user_id in (").append(o).append(")").toString();
+            String sql = new StringBuffer("select t.create_user_name as userName, count(t.create_user_id) as sumCount 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();
             if (Objects.nonNull(startTime)) {
                 sql = sqlUtil.sqlConditionAnd(sql, new String[]{"t.create_time"}, new String[]{startTime}, new String[]{">="});
             }
             if (Objects.nonNull(endTime)) {
                 sql = sqlUtil.sqlConditionAnd(sql, new String[]{"t.create_time"}, new String[]{endTime}, new String[]{"<="});
             }
-            sql = sqlUtil.sqlGroupBy(sql, "t.create_user_name");
+            sql = sqlUtil.sqlGroupBy(sql, "t.create_user_id");
             list = sqlUtil.execSqlForMap(sql);
         }
         return list;
@@ -190,7 +191,7 @@ public class QualityAnalyseController {
      */
 //    @ApiOperation(value = "差值和报表接口")
     @RequestMapping(value = "distanceReport", method = RequestMethod.GET)
-    public void distanceReport(
+    public List distanceReport(
 //            @ApiParam(value = "workId", required = true)
             @RequestParam Long workId,
 //            @ApiParam(value = "科目", required = true)
@@ -201,6 +202,32 @@ public class QualityAnalyseController {
             @RequestParam(required = false) String startTime,
 //            @ApiParam(value = "结束时间", required = false)
             @RequestParam(required = false) String endTime) {
-
+        List list = null;
+        Specification<MarkTask> specification = (root, query, builder) -> {
+            List<Predicate> predicates = new ArrayList<>();
+            predicates.add(builder.equal(root.get("workId"), workId));
+            if (Objects.nonNull(subject)) {
+                predicates.add(builder.equal(root.get("subject"), subject));
+            }
+            if (Objects.nonNull(areaCode)) {
+                predicates.add(builder.equal(root.get("paper").get("areaCode"), areaCode));
+            }
+            return builder.and(predicates.toArray(new Predicate[predicates.size()]));
+        };
+        List<MarkTask> markTasks = markTaskRepo.findAll(specification);
+        if (Objects.nonNull(markTasks) && markTasks.size() > 0) {
+            Set<Long> markerIdSet = markTasks.stream().map(o -> o.getMarkerId()).collect(Collectors.toSet());
+            Object o = StringUtils.join(markerIdSet.toArray(), ",");
+            String sql = new StringBuffer("select t.create_user_name as userName, sum(t.oper_data_after) as sumCount from mark_log t 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[]{">="});
+            }
+            if (Objects.nonNull(endTime)) {
+                sql = sqlUtil.sqlConditionAnd(sql, new String[]{"t.create_time"}, new String[]{endTime}, new String[]{"<="});
+            }
+            sql = sqlUtil.sqlGroupBy(sql, "t.create_user_id");
+            list = sqlUtil.execSqlForMap(sql);
+        }
+        return list;
     }
 }