Browse Source

Merge remote-tracking branch 'origin/dev_v3.3.1' into dev_v3.3.1

xiaofei 1 year ago
parent
commit
94d8988904

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java

@@ -95,7 +95,7 @@ public class ConditionServiceImpl implements ConditionService {
             return conditionMapper.listCourseForPlanTask(semesterId, examId, printPlanIds, dpr);
         }
         // 成绩查询
-        else if ("487".equals(privilegeIdString)) {
+        else if ("487".equals(privilegeIdString) || "2001".equals(privilegeIdString)) {
             List<BasicCourse> basicCourses = teachCourseService.findTeachCourseByUserId(sysUser.getId());
             if (basicCourses.isEmpty()) {
                 dpr = basicRoleDataPermissionService.findDataPermission(privilegeId);

+ 84 - 0
distributed-print/install/mysql/upgrade/3.3.1.sql

@@ -20,3 +20,87 @@ ALTER TABLE `basic_card_rule`
     ADD COLUMN `first_level_subheading` VARCHAR(200) NULL COMMENT '一级副标题' AFTER `fill_number`,
 ADD COLUMN `second_level_subheading` VARCHAR(200) NULL COMMENT '二级副标题' AFTER `first_level_subheading`;
 
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2000, '目标达成度', 'TargetDegreeManage', 'MENU', NULL, 13, NULL, NULL, 1, 0, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2001, '成绩管理', 'TargetScoreManage', 'MENU', 2000, 1, NULL, '2003,2004,2005', 1, 0, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2002, '报告管理', 'TargetReportManage', 'MENU', 2000, 2, NULL, '2021,2022,2023', 1, 0, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2003, '列表', 'List', 'LIST', 2001, 1, 'AUTH', '2007', 1, 0, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2004, '查询条件', 'Condition', 'CONDITION', 2001, 2, 'AUTH', '2007', 1, 0, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2005, '查询', 'Select', 'BUTTON', 2001, 3, 'AUTH', '2007', 1, 0, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2006, '管理成绩', 'Score', 'LINK', 2001, 1, 'AUTH', '2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020', 1, 0, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2007, '列表', '/api/admin/course/degree/score/list', 'URL', 2001, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2008, '平时成绩-下载模版', '/api/admin/course/degree/score/template_download', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2009, '平时成绩-导入模版', '/api/admin/course/degree/score/import', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2010, '平时成绩列表', '/api/admin/course/degree/score/normal/list', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2011, '平时成绩编辑', '/api/admin/course/degree/score/normal/edit', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2012, '平时成绩保存', '/api/admin/course/degree/score/normal/save', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2013, '平时成绩启用/禁用', '/api/admin/course/degree/score/normal/enable', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2014, '期末成绩-下载模版', '/api/admin/course/degree/score/end_exam/template_download', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2015, '期末成绩-导入模版', '/api/admin/course/degree/score/end_exam/import', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2016, '期末成绩列表', '/api/admin/course/degree/score/end_exam/list', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2017, '期末成绩编辑', '/api/admin/course/degree/score/end_exam/edit', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2018, '期末成绩保存', '/api/admin/course/degree/score/end_exam/save', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2019, '期末成绩启用/禁用', '/api/admin/course/degree/score/end_exam/enable', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2020, '保存试卷蓝图', '/api/admin/course/degree/score/end_exam/paper_positive/save', 'URL', 2006, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2021, '列表', 'List', 'LIST', 2002, 1, 'AUTH', '2024', 1, 0, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2022, '查询条件', 'Condition', 'CONDITION', 2002, 2, 'AUTH', '2024', 1, 0, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2023, '查询', 'Select', 'BUTTON', 2002, 3, 'AUTH', '2024', 1, 0, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2024, '列表', '/api/admin/course/degree/report/list', 'URL', 2002, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2025, '查看报告', 'View', 'LINK', 2002, 1, 'AUTH', '2026,2027', 1, 0, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2026, '查看报告', '/api/admin/course/degree/report/view', 'URL', 2025, 1, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO sys_privilege
+(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
+VALUES(2027, '导出报告', '/api/admin/course/degree/report/export', 'URL', 2025, 1, 'AUTH', NULL, 1, 1, 1);

+ 180 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/CourseTargetDegreeController.java

@@ -0,0 +1,180 @@
+package com.qmth.distributed.print.api;
+
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import io.swagger.annotations.*;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.io.IOException;
+
+@Api(tags = "课程目标达成度Controller")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_COURSE_DEGREE)
+public class CourseTargetDegreeController {
+
+    @ApiOperation(value = "成绩管理列表")
+    @RequestMapping(value = "/score/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
+    @ApiResponses({@ApiResponse(code = 200, message = "分页查询", response = Object.class)})
+    public Object scoreList(@ApiParam(value = "学期ID", required = true) @RequestParam Long semesterId,
+                            @ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
+                            @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) {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "导入平时成绩-模板下载")
+    @RequestMapping(value = "/score/template_download", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EXPORT)
+    @ApiResponses({@ApiResponse(code = 200, message = "下载成功", response = Object.class)})
+    public void templateDownload(@ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
+                                 @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
+                                 @ApiParam(value = "试卷类型", required = true) @RequestParam String paperType) throws IOException {
+//        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+//        examDetailService.downLoadExaminationTemplate(schoolId, ServletUtil.getResponse());
+    }
+
+    @ApiOperation(value = "导入平时成绩")
+    @RequestMapping(value = "/score/import", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
+    @ApiResponses({@ApiResponse(code = 200, message = "导入成功", response = EditResult.class)})
+    public Object scoreImport(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) throws IOException {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "平时成绩列表")
+    @RequestMapping(value = "/score/normal/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
+    @ApiResponses({@ApiResponse(code = 200, message = "导入成功", response = EditResult.class)})
+    public Object scoreNormalList(@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) throws IOException {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "平时成绩编辑")
+    @RequestMapping(value = "/score/normal/edit", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
+    @ApiResponses({@ApiResponse(code = 200, message = "编辑", response = EditResult.class)})
+    public Object scoreNormalEdit(@ApiParam(value = "主键", required = true) @RequestParam Long id) throws IOException {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "平时成绩保存")
+    @RequestMapping(value = "/score/normal/save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
+    @ApiResponses({@ApiResponse(code = 200, message = "保存", response = EditResult.class)})
+    public Object scoreNormalSave(@ApiParam(value = "主键", required = true) @RequestParam Long id,
+                                  @ApiParam(value = "平时成绩json", required = true) @RequestParam String socreNormal) throws IOException {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "平时成绩启用/禁用")
+    @RequestMapping(value = "/score/normal/enable", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
+    @ApiResponses({@ApiResponse(code = 200, message = "编辑", response = EditResult.class)})
+    public Object scoreNormalEnable(@ApiParam(value = "主键", required = true) @RequestParam Long id,
+                                    @ApiParam(value = "启用/禁用", required = true) @RequestParam Boolean enable) throws IOException {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "导入期末成绩-模板下载")
+    @RequestMapping(value = "/score/end_exam/template_download", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EXPORT)
+    @ApiResponses({@ApiResponse(code = 200, message = "下载成功", response = Object.class)})
+    public void endExamTemplateDownload(@ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
+                                        @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
+                                        @ApiParam(value = "试卷类型", required = true) @RequestParam String paperType) throws IOException {
+//        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+//        examDetailService.downLoadExaminationTemplate(schoolId, ServletUtil.getResponse());
+    }
+
+    @ApiOperation(value = "导入期末成绩")
+    @RequestMapping(value = "/score/end_exam/import", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.IMPORT)
+    @ApiResponses({@ApiResponse(code = 200, message = "导入成功", response = EditResult.class)})
+    public Object scoreEndExamImport(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) throws IOException {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "期末成绩列表")
+    @RequestMapping(value = "/score/end_exam/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
+    @ApiResponses({@ApiResponse(code = 200, message = "导入成功", response = EditResult.class)})
+    public Object scoreEndExamList(@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) throws IOException {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "期末成绩编辑")
+    @RequestMapping(value = "/score/end_exam/edit", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
+    @ApiResponses({@ApiResponse(code = 200, message = "编辑", response = EditResult.class)})
+    public Object scoreEndExamEdit(@ApiParam(value = "主键", required = true) @RequestParam Long id) throws IOException {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "期末成绩保存")
+    @RequestMapping(value = "/score/end_exam/save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
+    @ApiResponses({@ApiResponse(code = 200, message = "保存", response = EditResult.class)})
+    public Object scoreEndExamSave(@ApiParam(value = "主键", required = true) @RequestParam Long id,
+                                   @ApiParam(value = "期末成绩", required = true) @RequestParam Double score,
+                                   @ApiParam(value = "期末成绩明细", required = true) @RequestParam String scoreDetail) throws IOException {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "期末成绩启用/禁用")
+    @RequestMapping(value = "/score/end_exam/enable", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
+    @ApiResponses({@ApiResponse(code = 200, message = "编辑", response = EditResult.class)})
+    public Object scoreEndExamEnable(@ApiParam(value = "主键", required = true) @RequestParam Long id,
+                                     @ApiParam(value = "启用/禁用", required = true) @RequestParam Boolean enable) throws IOException {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "期末成绩试卷蓝图保存")
+    @RequestMapping(value = "/score/end_exam/paper_positive/save", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.ADD)
+    @ApiResponses({@ApiResponse(code = 200, message = "试卷蓝图保存", response = EditResult.class)})
+    public Object scoreEndExamPaperPositive(@ApiParam(value = "试卷蓝图结构", required = true) @RequestBody Object body) throws IOException {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "报告管理列表")
+    @RequestMapping(value = "/report/list", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
+    @ApiResponses({@ApiResponse(code = 200, message = "分页查询", response = Object.class)})
+    public Object reportList(@ApiParam(value = "学期ID", required = true) @RequestParam Long semesterId,
+                             @ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
+                             @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) {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "查看报告")
+    @RequestMapping(value = "/report/view", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
+    @ApiResponses({@ApiResponse(code = 200, message = "查看报告", response = Object.class)})
+    public Object reportView(@ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
+                             @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
+                             @ApiParam(value = "试卷类型", required = true) @RequestParam String paperType) {
+        return ResultUtil.ok(true);
+    }
+
+    @ApiOperation(value = "导出报告")
+    @RequestMapping(value = "/report/export", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EXPORT)
+    @ApiResponses({@ApiResponse(code = 200, message = "下载成功", response = Object.class)})
+    public void reportExport(@ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
+                             @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
+                             @ApiParam(value = "试卷类型", required = true) @RequestParam String paperType) throws IOException {
+
+    }
+}

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -75,6 +75,7 @@ public class SystemConstant {
     public static final String PREFIX_URL_OPEN = "/admin/print/open";
     public static final String PREFIX_URL_NOTIFY = "/admin/print/notify";
     public static final String PREFIX_URL_GRADE = "/admin/grade";
+    public static final String PREFIX_URL_COURSE_DEGREE = "/admin/course/degree";
 
     /**
      * 教研分析api前缀