Procházet zdrojové kódy

武大考务数据对接-同步学生成绩

xiaof před 2 roky
rodič
revize
20c584f48d
23 změnil soubory, kde provedl 372 přidání a 38 odebrání
  1. 3 3
      src/main/java/com/qmth/eds/api/CloudMarkingExamController.java
  2. 2 2
      src/main/java/com/qmth/eds/api/CloudMarkingScoreController.java
  3. 68 0
      src/main/java/com/qmth/eds/api/CloudMarkingScoreForeignController.java
  4. 6 5
      src/main/java/com/qmth/eds/api/ExamSemesterController.java
  5. 7 7
      src/main/java/com/qmth/eds/api/ExamTypeController.java
  6. 14 2
      src/main/java/com/qmth/eds/api/SysUserController.java
  7. 51 0
      src/main/java/com/qmth/eds/api/TBSyncTaskController.java
  8. 2 1
      src/main/java/com/qmth/eds/api/TBTaskController.java
  9. 20 0
      src/main/java/com/qmth/eds/bean/result/SyncTaskListResult.java
  10. 5 0
      src/main/java/com/qmth/eds/common/entity/CloudMarkingScoreForeign.java
  11. 5 0
      src/main/java/com/qmth/eds/mapper/TBSyncTaskMapper.java
  12. 6 0
      src/main/java/com/qmth/eds/service/CloudMarkingScoreForeignService.java
  13. 2 2
      src/main/java/com/qmth/eds/service/ExamSemesterService.java
  14. 5 1
      src/main/java/com/qmth/eds/service/ExamTypeService.java
  15. 3 1
      src/main/java/com/qmth/eds/service/SysUserService.java
  16. 5 0
      src/main/java/com/qmth/eds/service/TBSyncTaskService.java
  17. 101 0
      src/main/java/com/qmth/eds/service/impl/CloudMarkingScoreForeignServiceImpl.java
  18. 2 4
      src/main/java/com/qmth/eds/service/impl/ExamSemesterServiceImpl.java
  19. 8 2
      src/main/java/com/qmth/eds/service/impl/ExamTypeServiceImpl.java
  20. 7 7
      src/main/java/com/qmth/eds/service/impl/SysUserServiceImpl.java
  21. 11 0
      src/main/java/com/qmth/eds/service/impl/TBSyncTaskServiceImpl.java
  22. 1 1
      src/main/resources/application-dev.properties
  23. 38 0
      src/main/resources/mapper/TBSyncTaskMapper.xml

+ 3 - 3
src/main/java/com/qmth/eds/api/CloudMarkingExamController.java

@@ -20,7 +20,7 @@ import javax.annotation.Resource;
  * @since 2022-05-14
  */
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/cloud_marking/exam")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/cloud_marking_exam")
 public class CloudMarkingExamController {
 
     @Resource
@@ -30,7 +30,7 @@ public class CloudMarkingExamController {
      * 查询云阅卷考试
      */
     @ApiOperation(value = "查询云阅卷考试")
-    @PostMapping("/list_exam")
+    @PostMapping("/list")
     public Result listExam() {
         return ResultUtil.ok(cloudMarkingExamService.listExam());
     }
@@ -39,7 +39,7 @@ public class CloudMarkingExamController {
      * 同步云阅卷考试
      */
     @ApiOperation(value = "同步云阅卷考试")
-    @PostMapping("/sync_exam")
+    @PostMapping("/sync")
     public Result syncExam() {
         return ResultUtil.ok(cloudMarkingExamService.syncExam());
     }

+ 2 - 2
src/main/java/com/qmth/eds/api/CloudMarkingScoreController.java

@@ -26,7 +26,7 @@ import javax.validation.constraints.Min;
  * @since 2022-05-14
  */
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/cloud_marking/score")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/cloud_marking_score")
 public class CloudMarkingScoreController {
 
     @Resource
@@ -67,7 +67,7 @@ public class CloudMarkingScoreController {
     @PostMapping("/page")
     public Result page(@RequestParam(value = "semesterId", required = false) Long semesterId,
                        @RequestParam(value = "examTypeId", required = false) Long examTypeId,
-                       @RequestParam(value = "useScene", required = false) String examId,
+                       @RequestParam(value = "examId", required = false) String examId,
                        @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         return ResultUtil.ok(cloudMarkingScoreService.pageData(semesterId, examTypeId, examId, pageNumber, pageSize));

+ 68 - 0
src/main/java/com/qmth/eds/api/CloudMarkingScoreForeignController.java

@@ -0,0 +1,68 @@
+package com.qmth.eds.api;
+
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.eds.common.contant.SystemConstant;
+import com.qmth.eds.common.util.Result;
+import com.qmth.eds.common.util.ResultUtil;
+import com.qmth.eds.service.CloudMarkingScoreForeignService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+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.servlet.http.HttpServletResponse;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+
+/**
+ * <p>
+ * 学校表 前端控制器
+ * </p>
+ *
+ * @author wangliang
+ * @since 2022-05-14
+ */
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/cloud_marking_score_foreign")
+public class CloudMarkingScoreForeignController {
+
+    @Resource
+    private CloudMarkingScoreForeignService cloudMarkingScoreForeignService;
+
+    /**
+     * 查询
+     *
+     * @param semesterId 学期ID
+     * @param examTypeId 考试类型ID
+     * @param examId     云阅卷考试ID
+     * @param pageNumber 分页参数
+     * @param pageSize   分页参数
+     */
+    @ApiOperation(value = "查询")
+    @PostMapping("/page")
+    public Result page(@RequestParam(value = "semesterId", required = false) Long semesterId,
+                       @RequestParam(value = "examTypeId", required = false) Long examTypeId,
+                       @RequestParam(value = "examId", required = false) String examId,
+                       @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+                       @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+        return ResultUtil.ok(cloudMarkingScoreForeignService.pageData(semesterId, examTypeId, examId, pageNumber, pageSize));
+    }
+
+    /**
+     * 查询
+     *
+     * @param semesterId 学期ID
+     * @param examTypeId 考试类型ID
+     * @param examId     云阅卷考试ID
+     */
+    @ApiOperation(value = "下载")
+    @PostMapping("/download_score")
+    public void downloadScore(@RequestParam(value = "semesterId", required = false) Long semesterId,
+                              @RequestParam(value = "examTypeId", required = false) Long examTypeId,
+                              @RequestParam(value = "examId", required = false) String examId,
+                              HttpServletResponse response) {
+        cloudMarkingScoreForeignService.downloadScore(semesterId, examTypeId, examId, response);
+    }
+}

+ 6 - 5
src/main/java/com/qmth/eds/api/ExamSemesterController.java

@@ -31,9 +31,10 @@ public class ExamSemesterController {
      */
     @ApiOperation(value = "分页")
     @PostMapping("/page")
-    public Result page(@RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+    public Result page(@RequestParam(value = "schoolId") Long schoolId,
+                       @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        return ResultUtil.ok(examSemesterService.pageData(pageNumber, pageSize));
+        return ResultUtil.ok(examSemesterService.pageData(schoolId, pageNumber, pageSize));
     }
 
     /**
@@ -41,8 +42,8 @@ public class ExamSemesterController {
      */
     @ApiOperation(value = "查询")
     @PostMapping("/list")
-    public Result list() {
-        return ResultUtil.ok(examSemesterService.listBySchoolId());
+    public Result list(@RequestParam(value = "schoolId") Long schoolId) {
+        return ResultUtil.ok(examSemesterService.listBySchoolId(schoolId));
     }
 
     /**
@@ -63,7 +64,7 @@ public class ExamSemesterController {
      */
     @ApiOperation(value = "删除")
     @PostMapping("/delete")
-    public Result list(@RequestParam(value = "id", required = false) Long id) {
+    public Result delete(@RequestParam(value = "id") Long id) {
         return ResultUtil.ok(examSemesterService.delete(id));
     }
 

+ 7 - 7
src/main/java/com/qmth/eds/api/ExamTypeController.java

@@ -2,11 +2,10 @@ package com.qmth.eds.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.eds.common.contant.SystemConstant;
-import com.qmth.eds.common.entity.ExamSemester;
 import com.qmth.eds.common.entity.ExamType;
-import com.qmth.eds.service.ExamTypeService;
 import com.qmth.eds.common.util.Result;
 import com.qmth.eds.common.util.ResultUtil;
+import com.qmth.eds.service.ExamTypeService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -32,9 +31,10 @@ public class ExamTypeController {
      */
     @ApiOperation(value = "分页")
     @PostMapping("/page")
-    public Result page(@RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+    public Result page(@RequestParam(value = "schoolId") Long schoolId,
+                       @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        return ResultUtil.ok(examTypeService.pageData(pageNumber, pageSize));
+        return ResultUtil.ok(examTypeService.pageData(schoolId, pageNumber, pageSize));
     }
 
     /**
@@ -42,8 +42,8 @@ public class ExamTypeController {
      */
     @ApiOperation(value = "查询")
     @PostMapping("/list")
-    public Result list() {
-        return ResultUtil.ok(examTypeService.list());
+    public Result list(@RequestParam(value = "schoolId") Long schoolId) {
+        return ResultUtil.ok(examTypeService.listData(schoolId));
     }
 
     /**
@@ -64,7 +64,7 @@ public class ExamTypeController {
      */
     @ApiOperation(value = "删除")
     @PostMapping("/delete")
-    public Result list(@RequestParam(value = "id", required = false) Long id) {
+    public Result delete(@RequestParam(value = "id", required = false) Long id) {
         return ResultUtil.ok(examTypeService.delete(id));
     }
 }

+ 14 - 2
src/main/java/com/qmth/eds/api/SysUserController.java

@@ -42,12 +42,13 @@ public class SysUserController {
      */
     @ApiOperation(value = "查询")
     @PostMapping("/page")
-    public Result page(@RequestParam(value = "loginName", required = false) String loginName,
+    public Result page(@RequestParam(value = "schoolId") Long schoolId,
+                       @RequestParam(value = "loginName", required = false) String loginName,
                        @RequestParam(value = "realName", required = false) String realName,
                        @RequestParam(value = "enable", required = false) Boolean enable,
                        @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        return ResultUtil.ok(sysUserService.list(loginName, enable, realName, pageNumber, pageSize));
+        return ResultUtil.ok(sysUserService.list(schoolId, loginName, enable, realName, pageNumber, pageSize));
     }
 
     /**
@@ -75,6 +76,17 @@ public class SysUserController {
         return ResultUtil.ok(sysUserService.enable(sysUser));
     }
 
+    /**
+     * 删除
+     *
+     * @param id 用户id
+     */
+    @ApiOperation(value = "删除")
+    @PostMapping("/delete")
+    public Result delete(@RequestParam Long id) {
+        return ResultUtil.ok(sysUserService.delete(id));
+    }
+
     /**
      * 重置密码
      *

+ 51 - 0
src/main/java/com/qmth/eds/api/TBSyncTaskController.java

@@ -0,0 +1,51 @@
+package com.qmth.eds.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.eds.bean.result.SyncTaskListResult;
+import com.qmth.eds.common.contant.SystemConstant;
+import com.qmth.eds.common.enums.TaskResultEnum;
+import com.qmth.eds.common.enums.TaskStatusEnum;
+import com.qmth.eds.common.enums.TaskTypeEnum;
+import com.qmth.eds.common.util.Result;
+import com.qmth.eds.common.util.ResultUtil;
+import com.qmth.eds.service.TBSyncTaskService;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.web.bind.annotation.PostMapping;
+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.validation.constraints.Max;
+import javax.validation.constraints.Min;
+
+/**
+ * <p>
+ * 同步任务 前端控制器
+ * </p>
+ *
+ */
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/sync_task")
+public class TBSyncTaskController {
+
+    @Resource
+    private TBSyncTaskService tbSyncTaskService;
+
+    @ApiOperation(value = "同步任务管理查询接口")
+    @PostMapping("/page")
+    @ApiResponses({@ApiResponse(code = 200, message = "任务管理列表信息", response = SyncTaskListResult.class)})
+    public Result taskQuery(@ApiParam(value = "任务状态", required = false) @RequestParam(required = false) TaskStatusEnum status,
+                            @ApiParam(value = "任务类型", required = false) @RequestParam(required = false) TaskTypeEnum type,
+                            @ApiParam(value = "任务数据结果", required = false) @RequestParam(required = false) TaskResultEnum result,
+                            @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+                            @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+        IPage<SyncTaskListResult> taskListResultIPage = tbSyncTaskService.query(new Page<>(pageNumber, pageSize), status, type, result);
+        return ResultUtil.ok(taskListResultIPage);
+    }
+}

+ 2 - 1
src/main/java/com/qmth/eds/api/TBTaskController.java

@@ -1,5 +1,6 @@
 package com.qmth.eds.api;
 
+import com.qmth.boot.api.constant.ApiConstant;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -12,7 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2022-05-14
  */
 @RestController
-@RequestMapping("/t-btask")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/t_b_task")
 public class TBTaskController {
 
 }

+ 20 - 0
src/main/java/com/qmth/eds/bean/result/SyncTaskListResult.java

@@ -0,0 +1,20 @@
+package com.qmth.eds.bean.result;
+
+import com.qmth.eds.common.entity.TBSyncTask;
+
+import java.io.Serializable;
+
+/**
+ * 异步任务记录表
+ */
+public class SyncTaskListResult extends TBSyncTask implements Serializable {
+    private String createName;
+
+    public String getCreateName() {
+        return createName;
+    }
+
+    public void setCreateName(String createName) {
+        this.createName = createName;
+    }
+}

+ 5 - 0
src/main/java/com/qmth/eds/common/entity/CloudMarkingScoreForeign.java

@@ -1,5 +1,6 @@
 package com.qmth.eds.common.entity;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@@ -16,19 +17,23 @@ public class CloudMarkingScoreForeign implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @ExcelIgnore
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "主键")
     @TableId(value = "id")
     private Long id;
 
+    @ExcelIgnore
     @ApiModelProperty(value = "学校ID")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long schoolId;
 
+    @ExcelIgnore
     @ApiModelProperty(value = "学期ID")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long semesterId;
 
+    @ExcelIgnore
     @ApiModelProperty(value = "考试类型ID")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long examTypeId;

+ 5 - 0
src/main/java/com/qmth/eds/mapper/TBSyncTaskMapper.java

@@ -1,7 +1,11 @@
 package com.qmth.eds.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.eds.bean.result.SyncTaskListResult;
 import com.qmth.eds.common.entity.TBSyncTask;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -10,4 +14,5 @@ import com.qmth.eds.common.entity.TBSyncTask;
  */
 public interface TBSyncTaskMapper extends BaseMapper<TBSyncTask> {
 
+    IPage<SyncTaskListResult> query(@Param("iPage") Page<SyncTaskListResult> iPage, @Param("schoolId") Long schoolId, @Param("status") String status, @Param("type") String type, @Param("result") String result, @Param("userId") Long userId);
 }

+ 6 - 0
src/main/java/com/qmth/eds/service/CloudMarkingScoreForeignService.java

@@ -1,11 +1,17 @@
 package com.qmth.eds.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.eds.common.entity.CloudMarkingScoreForeign;
 
+import javax.servlet.http.HttpServletResponse;
+
 /**
  * 对外输出成绩表 服务类
  */
 public interface CloudMarkingScoreForeignService extends IService<CloudMarkingScoreForeign> {
 
+    IPage<CloudMarkingScoreForeign> pageData(Long semesterId, Long examTypeId, String examId, Integer pageNumber, Integer pageSize);
+
+    void downloadScore(Long semesterId, Long examTypeId, String examId, HttpServletResponse response);
 }

+ 2 - 2
src/main/java/com/qmth/eds/service/ExamSemesterService.java

@@ -11,11 +11,11 @@ import java.util.List;
  */
 public interface ExamSemesterService extends IService<ExamSemester> {
 
-    List<ExamSemester> listBySchoolId();
+    List<ExamSemester> listBySchoolId(Long schoolId);
 
     boolean saveData(ExamSemester examSemester);
 
     boolean delete(Long id);
 
-    IPage<ExamSemester> pageData(Integer pageNumber, Integer pageSize);
+    IPage<ExamSemester> pageData(Long schoolId, Integer pageNumber, Integer pageSize);
 }

+ 5 - 1
src/main/java/com/qmth/eds/service/ExamTypeService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.eds.common.entity.ExamType;
 
+import java.util.List;
+
 /**
  * 考试类型表 服务类
  */
@@ -13,5 +15,7 @@ public interface ExamTypeService extends IService<ExamType> {
 
     boolean delete(Long id);
 
-    IPage<ExamType> pageData(Integer pageNumber, Integer pageSize);
+    IPage<ExamType> pageData(Long schoolId, Integer pageNumber, Integer pageSize);
+
+    List<ExamType> listData(Long schoolId);
 }

+ 3 - 1
src/main/java/com/qmth/eds/service/SysUserService.java

@@ -14,11 +14,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface SysUserService extends IService<SysUser> {
 
-    IPage<SysUser> list(String loginName, Boolean enable, String realName, Integer pageNumber, Integer pageSize);
+    IPage<SysUser> list(Long schoolId, String loginName, Boolean enable, String realName, Integer pageNumber, Integer pageSize);
 
     boolean saveUser(SysUser sysUser);
 
     boolean enable(SysUser user);
 
     boolean resetPassword(Long id);
+
+    boolean delete(Long id);
 }

+ 5 - 0
src/main/java/com/qmth/eds/service/TBSyncTaskService.java

@@ -1,6 +1,9 @@
 package com.qmth.eds.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.eds.bean.result.SyncTaskListResult;
 import com.qmth.eds.common.entity.ExamScheduleTask;
 import com.qmth.eds.common.entity.TBSyncTask;
 import com.qmth.eds.common.enums.TaskResultEnum;
@@ -19,4 +22,6 @@ public interface TBSyncTaskService extends IService<TBSyncTask> {
     void updateStatusAndResultById(Long id,TaskStatusEnum status, TaskResultEnum result, String errorMessage);
 
     TBSyncTask saveTask(Long semesterId, Long examTypeId, TaskTypeEnum type, String remark);
+
+    IPage<SyncTaskListResult> query(Page<SyncTaskListResult> iPage, TaskStatusEnum status, TaskTypeEnum type, TaskResultEnum result);
 }

+ 101 - 0
src/main/java/com/qmth/eds/service/impl/CloudMarkingScoreForeignServiceImpl.java

@@ -1,11 +1,112 @@
 package com.qmth.eds.service.impl;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.eds.common.entity.CloudMarkingScoreForeign;
+import com.qmth.eds.common.enums.ExceptionResultEnum;
+import com.qmth.eds.common.util.FileUtil;
+import com.qmth.eds.common.util.ServletUtil;
 import com.qmth.eds.mapper.CloudMarkingScoreForeignMapper;
 import com.qmth.eds.service.CloudMarkingScoreForeignService;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
 @Service
 public class CloudMarkingScoreForeignServiceImpl extends ServiceImpl<CloudMarkingScoreForeignMapper, CloudMarkingScoreForeign> implements CloudMarkingScoreForeignService {
+    @Override
+    public IPage<CloudMarkingScoreForeign> pageData(Long semesterId, Long examTypeId, String examId, Integer pageNumber, Integer pageSize) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        QueryWrapper<CloudMarkingScoreForeign> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(CloudMarkingScoreForeign::getSchoolId, schoolId);
+        if (semesterId != null) {
+            queryWrapper.lambda().eq(CloudMarkingScoreForeign::getSemesterId, semesterId);
+        }
+        if (examTypeId != null) {
+            queryWrapper.lambda().eq(CloudMarkingScoreForeign::getExamTypeId, examTypeId);
+        }
+        if (examId != null) {
+            queryWrapper.lambda().eq(CloudMarkingScoreForeign::getExamId, examId);
+        }
+        queryWrapper.lambda().orderByDesc(CloudMarkingScoreForeign::getJxbId, CloudMarkingScoreForeign::getXh);
+        return this.page(new Page<>(pageNumber, pageSize), queryWrapper);
+    }
+
+    @Override
+    public void downloadScore(Long semesterId, Long examTypeId, String examId, HttpServletResponse response) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+
+        // 查询数据
+        QueryWrapper<CloudMarkingScoreForeign> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(CloudMarkingScoreForeign::getSchoolId, schoolId);
+        if (semesterId != null) {
+            queryWrapper.lambda().eq(CloudMarkingScoreForeign::getSemesterId, semesterId);
+        }
+        if (examTypeId != null) {
+            queryWrapper.lambda().eq(CloudMarkingScoreForeign::getExamTypeId, examTypeId);
+        }
+        if (examId != null) {
+            queryWrapper.lambda().eq(CloudMarkingScoreForeign::getExamId, examId);
+        }
+
+        List<CloudMarkingScoreForeign> cloudMarkingScoreForeignList = this.list(queryWrapper);
+
+        File file = null;
+        try {
+            List<List<String>> head = new ArrayList<>();
+            List<String> headTitle0 = new ArrayList<>();
+            headTitle0.add("云阅卷考试ID");
+            List<String> headTitle1 = new ArrayList<>();
+            headTitle1.add("学年");
+            List<String> headTitle2 = new ArrayList<>();
+            headTitle2.add("学期");
+            List<String> headTitle3 = new ArrayList<>();
+            headTitle3.add("教学班ID");
+            List<String> headTitle4 = new ArrayList<>();
+            headTitle4.add("课程号");
+            List<String> headTitle5 = new ArrayList<>();
+            headTitle5.add("课程名称");
+            List<String> headTitle6 = new ArrayList<>();
+            headTitle6.add("学号");
+            List<String> headTitle7 = new ArrayList<>();
+            headTitle7.add("成绩");
+
+
+            head.add(headTitle0);
+            head.add(headTitle1);
+            head.add(headTitle2);
+            head.add(headTitle3);
+            head.add(headTitle4);
+            head.add(headTitle5);
+            head.add(headTitle6);
+            head.add(headTitle7);
+
+            String fileName = "file-folder" + File.separator + schoolId + File.separator + System.currentTimeMillis() + ".xlsx";
+            file = new File(fileName);
+            if (!file.exists()) {
+                file.createNewFile();
+            }
+            ExcelWriter excelWriter = EasyExcel.write(file).build();
+            //动态表头
+            WriteSheet writeSheet1 = EasyExcel.writerSheet(0, "回传成绩数据").head(head).build();
+            excelWriter.write(cloudMarkingScoreForeignList, writeSheet1);
+            excelWriter.finish();
+            FileUtil.outputFile(response, file, file.getName());
+        } catch (IOException e) {
+            throw ExceptionResultEnum.ERROR.exception("下载失败:" + e.getMessage());
+        } finally {
+            if (file != null && file.exists()) {
+                file.delete();
+            }
+        }
+    }
 }

+ 2 - 4
src/main/java/com/qmth/eds/service/impl/ExamSemesterServiceImpl.java

@@ -24,8 +24,7 @@ public class ExamSemesterServiceImpl extends ServiceImpl<ExamSemesterMapper, Exa
     ExamScheduleTaskService examScheduleTaskService;
 
     @Override
-    public List<ExamSemester> listBySchoolId() {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+    public List<ExamSemester> listBySchoolId(Long schoolId) {
         QueryWrapper<ExamSemester> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ExamSemester::getSchoolId, schoolId);
         return this.baseMapper.selectList(queryWrapper);
@@ -65,8 +64,7 @@ public class ExamSemesterServiceImpl extends ServiceImpl<ExamSemesterMapper, Exa
     }
 
     @Override
-    public IPage<ExamSemester> pageData(Integer pageNumber, Integer pageSize) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+    public IPage<ExamSemester> pageData(Long schoolId, Integer pageNumber, Integer pageSize) {
         Page<ExamSemester> page = new Page<>(pageNumber, pageSize);
         QueryWrapper<ExamSemester> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ExamSemester::getSchoolId, schoolId);

+ 8 - 2
src/main/java/com/qmth/eds/service/impl/ExamTypeServiceImpl.java

@@ -57,11 +57,17 @@ public class ExamTypeServiceImpl extends ServiceImpl<ExamTypeMapper, ExamType> i
     }
 
     @Override
-    public IPage<ExamType> pageData(Integer pageNumber, Integer pageSize) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+    public IPage<ExamType> pageData(Long schoolId, Integer pageNumber, Integer pageSize) {
         Page<ExamType> page = new Page<>(pageNumber, pageSize);
         QueryWrapper<ExamType> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ExamType::getSchoolId, schoolId);
         return this.page(page, queryWrapper);
     }
+
+    @Override
+    public List<ExamType> listData(Long schoolId) {
+        QueryWrapper<ExamType> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ExamType::getSchoolId, schoolId);
+        return this.list(queryWrapper);
+    }
 }

+ 7 - 7
src/main/java/com/qmth/eds/service/impl/SysUserServiceImpl.java

@@ -35,9 +35,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     private SysUserRoleService sysUserRoleService;
 
     @Override
-    public IPage<SysUser> list(String loginName, Boolean enable, String realName, Integer pageNumber, Integer pageSize) {
+    public IPage<SysUser> list(Long schoolId, String loginName, Boolean enable, String realName, Integer pageNumber, Integer pageSize) {
         Page<SysUser> page = new Page<>(pageNumber, pageSize);
         QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(SysUser::getSchoolId, schoolId);
         if (StringUtils.isNotBlank(loginName)) {
             queryWrapper.lambda().like(SysUser::getLoginName, loginName);
         }
@@ -51,11 +52,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         for (SysUser record : sysUserPage.getRecords()) {
             byte[] bytePassword = Base64Util.decode(record.getPassword());
             record.setPassword(new String(bytePassword));
-
-            QueryWrapper<SysUserRole> queryWrapper1 = new QueryWrapper<>();
-            queryWrapper1.lambda().eq(SysUserRole::getUserId, record.getId());
-            SysUserRole sysUserRole = sysUserRoleService.getOne(queryWrapper1);
-            record.setRoleId(sysUserRole != null ? sysUserRole.getRoleId() : null);
         }
         return sysUserPage;
     }
@@ -85,7 +81,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         SysUserRole sysUserRole = new SysUserRole();
         sysUserRole.setId(SystemConstant.getDbUuid());
         sysUserRole.setUserId(sysUser.getId());
-        sysUserRole.setRoleId(sysUser.getRoleId());
         return sysUserRoleService.save(sysUserRole);
     }
 
@@ -103,4 +98,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         user.setPassword(md5Password);
         return this.updateById(user);
     }
+
+    @Override
+    public boolean delete(Long id) {
+        return this.removeById(id);
+    }
 }

+ 11 - 0
src/main/java/com/qmth/eds/service/impl/TBSyncTaskServiceImpl.java

@@ -2,7 +2,10 @@ package com.qmth.eds.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.eds.bean.result.SyncTaskListResult;
 import com.qmth.eds.common.contant.SystemConstant;
 import com.qmth.eds.common.entity.ExamScheduleTask;
 import com.qmth.eds.common.entity.TBSyncTask;
@@ -16,6 +19,8 @@ import com.qmth.eds.service.TBSyncTaskService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Objects;
+
 /**
  * 异步任务日志
  */
@@ -76,4 +81,10 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
         this.update(tbSyncTaskUpdateWrapper);
     }
 
+    @Override
+    public IPage<SyncTaskListResult> query(Page<SyncTaskListResult> iPage, TaskStatusEnum status, TaskTypeEnum type, TaskResultEnum result) {
+        Long userId = ServletUtil.getRequestUserId();
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        return this.baseMapper.query(iPage, schoolId, Objects.nonNull(status) ? status.name() : null, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(result) ? result.name() : null, userId);
+    }
 }

+ 1 - 1
src/main/resources/application-dev.properties

@@ -112,7 +112,7 @@ whu.config.kwUrl=http://120.76.177.81/zfdsb/api/kw/ksmd
 
 cloud.marking.config.accessKey=a063f96182164154bf7428b3cb0fadf2
 cloud.marking.config.accessSecret=M6SCQbJELhbtshzG6Kyz8jvh
-cloud.marking.config.rootUrl=http://www.markingcloud.com/
+cloud.marking.config.rootUrl=http://www.markingcloud.com
 cloud.marking.config.examUrl=/api/exam/query
 cloud.marking.config.studentCountUrl=/api/exam/student/count
 cloud.marking.config.studentScoreUrl=/api/exam/student/score

+ 38 - 0
src/main/resources/mapper/TBSyncTaskMapper.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.qmth.eds.mapper.TBSyncTaskMapper">
+    <select id="query" resultType="com.qmth.eds.bean.result.SyncTaskListResult">
+        select
+            tbt.id,
+            tbt.school_id schoolId,
+            tbt.`type`,
+            tbt.status,
+            tbt.`result`,
+            tbt.`remark`,
+            tbt.error_message,
+            tbt.create_time as createTime,
+            tbt.create_id as createId,
+            su.real_name as createName
+        from
+            t_b_sync_task tbt
+        left join sys_user su on su.id = tbt.create_id
+        <where>
+            <if test="schoolId != null and schoolId != ''">
+                and tbt.school_id = #{schoolId}
+            </if>
+            <if test="status != null and status != ''">
+                and tbt.status = #{status}
+            </if>
+            <if test="type != null">
+                and tbt.type = #{type}
+            </if>
+            <if test="result != null">
+                and tbt.result = #{result}
+            </if>
+            <if test="createId != null">
+                and tbt.create_id = #{createId}
+            </if>
+        </where>
+        order by tbt.create_time desc
+    </select>
+</mapper>