Эх сурвалжийг харах

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

wangliang 2 жил өмнө
parent
commit
e8075fbddc
13 өөрчлөгдсөн 243 нэмэгдсэн , 16 устгасан
  1. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/SyncCardTypeEnum.java
  2. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamDetailCourseMapper.java
  3. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailCourseService.java
  4. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPrintPlanService.java
  5. 6 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCourseServiceImpl.java
  6. 4 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java
  7. 0 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  8. 3 0
      distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml
  9. 6 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java
  10. 1 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java
  11. 56 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/params/SysAdminSetParam.java
  12. 79 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/SysAdminSetResult.java
  13. 81 0
      teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysAdminSetController.java

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/SyncCardTypeEnum.java

@@ -11,7 +11,7 @@ import java.util.List;
 public enum SyncCardTypeEnum {
 
     GENERIC("通用题卡"),
-    ELECTRONIC("电子题卡");
+    CUSTOM("电子题卡");
 
     SyncCardTypeEnum(String desc) {
         this.desc = desc;

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamDetailCourseMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qmth.distributed.print.business.bean.dto.ExamDetailCourseDto;
 import com.qmth.distributed.print.business.bean.dto.SyncExamTaskDto;
 import com.qmth.distributed.print.business.entity.ExamDetailCourse;
+import com.qmth.distributed.print.business.enums.SyncCardTypeEnum;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 import org.apache.ibatis.annotations.Param;
 
@@ -34,7 +35,7 @@ public interface ExamDetailCourseMapper extends BaseMapper<ExamDetailCourse> {
 
     List<ExamDetailCourse> listByAndCourseCodeAndPaperNumber(@Param("schoolId") Long schoolId,@Param("courseCode") String courseCode,@Param("paperNumber") String paperNumber);
 
-    List<SyncExamTaskDto> listSyncCourseByPrintPlanId(@Param("printPlanIds") List<Long> printPlanIds);
+    List<SyncExamTaskDto> listSyncCourseByPrintPlanId(@Param("printPlanIds") List<Long> printPlanIds, @Param("courseName") String courseName);
 
     List<ExamDetailCourseDto> listByPrintPlanIdAndExamTaskId(@Param("printPlanIds") List<Long> printPlanIds, @Param("examTaskId") Long examTaskId);
 }

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailCourseService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.bean.dto.ExamDetailCourseDto;
 import com.qmth.distributed.print.business.bean.dto.SyncExamTaskDto;
 import com.qmth.distributed.print.business.entity.ExamDetailCourse;
+import com.qmth.distributed.print.business.enums.SyncCardTypeEnum;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 
 import java.util.List;
@@ -34,7 +35,7 @@ public interface ExamDetailCourseService extends IService<ExamDetailCourse> {
 
     List<ExamDetailCourse> listByCourseCodeAndPaperNumber(Long schoolId, String courseCode, String paperNumber);
 
-    List<SyncExamTaskDto> listSyncCourseByPrintPlanId(List<Long> printPlanIds);
+    List<SyncExamTaskDto> listSyncCourseByPrintPlanId(List<Long> printPlanIds, SyncCardTypeEnum cardType, String courseName);
 
     List<ExamDetailCourseDto> listByPrintPlanIdAndExamTaskId(List<Long> printPlanIds, Long examTaskId);
 }

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPrintPlanService.java

@@ -11,6 +11,7 @@ import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.bean.result.PrintPlanResult;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
+import com.qmth.distributed.print.business.enums.SyncCardTypeEnum;
 import com.qmth.teachcloud.common.entity.SysUser;
 
 import java.util.List;
@@ -113,5 +114,5 @@ public interface ExamPrintPlanService extends IService<ExamPrintPlan> {
 
     List<ExamPrintPlan> listBySchoolId(Long schoolId);
 
-    List<SyncExamTaskDto> listSyncExamTask(List<Long> printPlanIds);
+    List<SyncExamTaskDto> listSyncExamTask(List<Long> printPlanIds, SyncCardTypeEnum cardType, String courseName);
 }

+ 6 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCourseServiceImpl.java

@@ -83,8 +83,8 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
     }
 
     @Override
-    public List<SyncExamTaskDto> listSyncCourseByPrintPlanId(List<Long> printPlanIds) {
-        List<SyncExamTaskDto> examTaskDtos = this.baseMapper.listSyncCourseByPrintPlanId(printPlanIds);
+    public List<SyncExamTaskDto> listSyncCourseByPrintPlanId(List<Long> printPlanIds, SyncCardTypeEnum cardType, String courseName) {
+        List<SyncExamTaskDto> examTaskDtos = this.baseMapper.listSyncCourseByPrintPlanId(printPlanIds, courseName);
         for (SyncExamTaskDto examTaskDto : examTaskDtos) {
             String paperType = examTaskDto.getPaperType();
             List<String> paperTypes = Arrays.asList(paperType.split(","));
@@ -100,7 +100,7 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
                 if (examCard.getType().equals(CardTypeEnum.GENERIC) && examCard.getCreateMethod().equals(CardCreateMethodEnum.UPLOAD)) {
                     stringSet.add(SyncCardTypeEnum.GENERIC.getDesc());
                 } else {
-                    stringSet.add(SyncCardTypeEnum.ELECTRONIC.getDesc());
+                    stringSet.add(SyncCardTypeEnum.CUSTOM.getDesc());
                 }
             }
             if (stringSet.size() > 0) {
@@ -114,6 +114,9 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
                 examTaskDto.setSyncStatus(collect.isEmpty() ? "-" : String.join(",", collect));
             }
         }
+        if(cardType != null){
+            examTaskDtos = examTaskDtos.stream().filter(m->m.getSyncCardType().contains(cardType.getDesc())).collect(Collectors.toList());
+        }
         return examTaskDtos;
     }
 

+ 4 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java

@@ -17,6 +17,7 @@ import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.MessageEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
+import com.qmth.distributed.print.business.enums.SyncCardTypeEnum;
 import com.qmth.distributed.print.business.mapper.ExamPrintPlanMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.execute.AsyncCloudMarkingTaskService;
@@ -147,7 +148,7 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
             printPlanResult.setTotalPackages((int) totalPackages);
 
             List<Long> printPlanIds = Arrays.asList(new Long[]{printPlanResult.getId()});
-            List<SyncExamTaskDto> syncExamTaskDtos = examDetailCourseService.listSyncCourseByPrintPlanId(printPlanIds);
+            List<SyncExamTaskDto> syncExamTaskDtos = examDetailCourseService.listSyncCourseByPrintPlanId(printPlanIds, null, null);
             long successCount = syncExamTaskDtos.stream().mapToInt(m -> m.getSyncSuccessCount()).sum();
             printPlanResult.setSyncSuccessCount(Math.toIntExact(successCount));
             long failCount = syncExamTaskDtos.stream().mapToInt(m -> m.getSyncFailCount()).sum();
@@ -550,8 +551,8 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     }
 
     @Override
-    public List<SyncExamTaskDto> listSyncExamTask(List<Long> printPlanIds) {
-        return examDetailCourseService.listSyncCourseByPrintPlanId(printPlanIds);
+    public List<SyncExamTaskDto> listSyncExamTask(List<Long> printPlanIds, SyncCardTypeEnum cardType, String courseName) {
+        return examDetailCourseService.listSyncCourseByPrintPlanId(printPlanIds, cardType, courseName);
     }
 
 

+ 0 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -426,10 +426,6 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
             QueryWrapper<BasicExamRule> queryWrapper = new QueryWrapper<>();
             queryWrapper.lambda().eq(BasicExamRule::getSchoolId, examTask.getSchoolId());
-            BasicExamRule basicExamRule = basicExamRuleService.getOne(queryWrapper);
-            if (basicExamRule == null) {
-                throw ExceptionResultEnum.ERROR.exception("通用规则未设置");
-            }
             examTask.insertInfo(sysUser.getId());
             examTask.updateInfo(sysUser.getId());
 

+ 3 - 0
distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml

@@ -170,6 +170,9 @@
                 <foreach collection="printPlanIds" open="(" close=")" item="printPlanId" separator=",">
                     #{printPlanId}
                 </foreach>
+                <if test="courseName != null and courseName != ''">
+                    and b.course_name like concat(#{courseName}, '%')
+                </if>
                 GROUP BY et.id, b.course_code, b.course_name , b.paper_number, b.paper_type, et.sequence
     </select>
     <select id="listByPrintPlanIdAndExamTaskId"

+ 6 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.api;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.params.SyncDataParam;
 import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.distributed.print.business.enums.SyncCardTypeEnum;
 import com.qmth.distributed.print.business.service.ExamPrintPlanService;
 import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -62,14 +63,17 @@ public class ExamPrintPlanSyncController {
 
     /**
      * 查询计划下需要同步的命题任务
+     *
      * @param printPlanIds 印刷计划ID
      */
     @ApiOperation(value = "印刷计划推送管理-查询计划下需要同步的命题任务")
     @RequestMapping(value = "/list_sync_exam_task", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
-    public Result listSyncExamTask(@ApiParam(value = "印刷计划ID集合") @RequestParam List<Long> printPlanIds) {
-        return ResultUtil.ok(examPrintPlanService.listSyncExamTask(printPlanIds));
+    public Result listSyncExamTask(@ApiParam(value = "印刷计划ID集合") @RequestParam List<Long> printPlanIds,
+                                   @ApiParam(value = "题卡类型") @RequestParam(required = false) SyncCardTypeEnum cardType,
+                                   @ApiParam(value = "课程名称") @RequestParam(required = false) String courseName) {
+        return ResultUtil.ok(examPrintPlanService.listSyncExamTask(printPlanIds, cardType, courseName));
     }
 
 

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

@@ -74,6 +74,7 @@ public class SystemConstant {
     public static final String PREFIX_URL_REPORT_ANALYZE = "/report/analyze";
     public static final String PREFIX_URL_REPORT_OPEN = "/report/open";
     public static final String PREFIX_URL_REPORT_SSO = "/report/sso";
+    public static final String PREFIX_URL_REPORT_SET = "/report/set";
 
     /**
      * 云阅卷api

+ 56 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/params/SysAdminSetParam.java

@@ -0,0 +1,56 @@
+package com.qmth.teachcloud.report.business.bean.params;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.bean.result.SysConfigResult;
+import com.qmth.teachcloud.common.entity.TSchoolPrivilege;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * @Description: 学校自定义菜单 param
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/10/30
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SysAdminSetParam extends TSchoolPrivilege {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "权限id数组")
+    private Long[] privilegeIds;
+
+    @ApiModelProperty(value = "参数")
+    List<SysConfigResult> param;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "角色id数组")
+    private Long[] roleIds;
+
+    public List<SysConfigResult> getParam() {
+        return param;
+    }
+
+    public void setParam(List<SysConfigResult> param) {
+        this.param = param;
+    }
+
+    public Long[] getRoleIds() {
+        return roleIds;
+    }
+
+    public void setRoleIds(Long[] roleIds) {
+        this.roleIds = roleIds;
+    }
+
+    public Long[] getPrivilegeIds() {
+        return privilegeIds;
+    }
+
+    public void setPrivilegeIds(Long[] privilegeIds) {
+        this.privilegeIds = privilegeIds;
+    }
+}

+ 79 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/SysAdminSetResult.java

@@ -0,0 +1,79 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.bean.result.SysConfigResult;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 自定义菜单result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2022/8/24
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SysAdminSetResult implements Serializable {
+
+    @ApiModelProperty(value = "学校id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    Long schoolId;
+
+    @ApiModelProperty(value = "自定义菜单id")
+    List<String> privilegeIdList;
+
+    @ApiModelProperty(value = "返回结果")
+    List<SysConfigResult> result;
+
+    @ApiModelProperty(value = "自定义角色id")
+    List<String> roleIdList;
+
+    public SysAdminSetResult() {
+
+    }
+
+    public SysAdminSetResult(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public SysAdminSetResult(Long schoolId, List<SysConfigResult> result) {
+        this.schoolId = schoolId;
+        this.result = result;
+    }
+
+    public List<String> getRoleIdList() {
+        return roleIdList;
+    }
+
+    public void setRoleIdList(List<String> roleIdList) {
+        this.roleIdList = roleIdList;
+    }
+
+    public List<String> getPrivilegeIdList() {
+        return privilegeIdList;
+    }
+
+    public void setPrivilegeIdList(List<String> privilegeIdList) {
+        this.privilegeIdList = privilegeIdList;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public List<SysConfigResult> getResult() {
+        return result;
+    }
+
+    public void setResult(List<SysConfigResult> result) {
+        this.result = result;
+    }
+}

+ 81 - 0
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysAdminSetController.java

@@ -0,0 +1,81 @@
+package com.qmth.teachcloud.report.api;
+
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.annotation.OperationLogDetail;
+import com.qmth.teachcloud.common.bean.result.SysConfigResult;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysConfig;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
+import com.qmth.teachcloud.common.service.CommonCacheService;
+import com.qmth.teachcloud.common.service.SysConfigService;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.report.business.bean.params.SysAdminSetParam;
+import com.qmth.teachcloud.report.business.bean.result.SysAdminSetResult;
+import io.swagger.annotations.*;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * @Description: 超管设置
+ * @Author: CaoZixuan
+ * @Date: 2022-12-22
+ */
+@Api(tags = "超管设置Controller")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_REPORT_SET)
+public class SysAdminSetController {
+    @Resource
+    CommonCacheService commonCacheService;
+    @Resource
+    SysConfigService sysConfigService;
+
+    @ApiOperation(value = "同步配置查询")
+    @ApiResponses({@ApiResponse(code = 200, message = "同步配置信息", response = SysAdminSetResult.class)})
+    @RequestMapping(value = "/sync/select", method = RequestMethod.POST)
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
+    public Result sysadminSyncSelect(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
+        SysConfig sysConfigTeachCloudPrintHostUrl = commonCacheService.addSysConfigCache(schoolId, SystemConstant.TEACHCLOUD_PRINT_HOST_URL);
+
+        List<SysConfigResult> sysConfigResultList = new ArrayList<>();
+        if (Objects.nonNull(sysConfigTeachCloudPrintHostUrl)) {
+            sysConfigResultList.add(new SysConfigResult(sysConfigTeachCloudPrintHostUrl));
+        } else {
+            sysConfigResultList.add(new SysConfigResult(null, SystemConstant.TEACHCLOUD_PRINT_HOST_URL, "分布式印刷地址", "", 1));
+        }
+        return ResultUtil.ok(new SysAdminSetResult(schoolId, sysConfigResultList));
+    }
+
+    @ApiOperation(value = "同步配置保存")
+    @ApiResponses({@ApiResponse(code = 200, message = "同步配置信息", response = ResultUtil.class)})
+    @RequestMapping(value = "/sync/save", method = RequestMethod.POST)
+    @Transactional
+    @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
+    public Result sysadminSyncSave(@Valid @RequestBody SysAdminSetParam sysAdminSetParam, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
+        }
+        Optional.ofNullable(sysAdminSetParam.getParam()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("同步配置地址不能为空"));
+
+        List<SysConfigResult> sysConfigResultList = sysAdminSetParam.getParam();
+        List<SysConfig> sysConfigList = new ArrayList<>();
+        for (SysConfigResult s : sysConfigResultList) {
+            sysConfigList.add(new SysConfig(sysAdminSetParam.getSchoolId(), s));
+        }
+        sysConfigService.saveOrUpdateBatch(sysConfigList);
+
+        for (SysConfigResult s : sysConfigResultList) {
+            commonCacheService.updateSysConfigCache(sysAdminSetParam.getSchoolId(), s.getCode());
+        }
+        return ResultUtil.ok(true);
+    }
+}