xiaof 3 سال پیش
والد
کامیت
559b382632
13فایلهای تغییر یافته به همراه146 افزوده شده و 34 حذف شده
  1. 26 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ThirdObjectDto.java
  2. 33 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/PrintPlanResult.java
  3. 11 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamPrintPlan.java
  4. 3 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPrintPlanMapper.java
  5. 4 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPrintPlanService.java
  6. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java
  7. 11 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java
  8. 15 1
      distributed-print-business/src/main/resources/mapper/ExamPrintPlanMapper.xml
  9. 25 9
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java
  10. 2 3
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java
  11. 7 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java
  12. 6 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysPrivilegeServiceImpl.java
  13. 1 1
      teachcloud-common/src/main/resources/mapper/SysUserMapper.xml

+ 26 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ThirdObjectDto.java

@@ -0,0 +1,26 @@
+package com.qmth.distributed.print.business.bean.dto;
+
+/**
+ * @Date: 2021/3/29.
+ */
+public class ThirdObjectDto {
+
+    private Long thirdRelateId;
+    private String thirdRelateName;
+
+    public Long getThirdRelateId() {
+        return thirdRelateId;
+    }
+
+    public void setThirdRelateId(Long thirdRelateId) {
+        this.thirdRelateId = thirdRelateId;
+    }
+
+    public String getThirdRelateName() {
+        return thirdRelateName;
+    }
+
+    public void setThirdRelateName(String thirdRelateName) {
+        this.thirdRelateName = thirdRelateName;
+    }
+}

+ 33 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/PrintPlanResult.java

@@ -79,6 +79,15 @@ public class PrintPlanResult {
     @ApiModelProperty(value = "创建人名字")
     private String createName;
 
+    @ApiModelProperty("第三方系统关联ID")
+    private Long thirdRelateId;
+
+    @ApiModelProperty("第三方系统关联考试名称")
+    private Long thirdRelateName;
+
+    @ApiModelProperty("是否同步成功")
+    private Boolean syncStatus;
+
     public Long getId() {
         return id;
     }
@@ -230,4 +239,28 @@ public class PrintPlanResult {
     public void setCreateName(String createName) {
         this.createName = createName;
     }
+
+    public Long getThirdRelateId() {
+        return thirdRelateId;
+    }
+
+    public void setThirdRelateId(Long thirdRelateId) {
+        this.thirdRelateId = thirdRelateId;
+    }
+
+    public Long getThirdRelateName() {
+        return thirdRelateName;
+    }
+
+    public void setThirdRelateName(Long thirdRelateName) {
+        this.thirdRelateName = thirdRelateName;
+    }
+
+    public Boolean getSyncStatus() {
+        return syncStatus;
+    }
+
+    public void setSyncStatus(Boolean syncStatus) {
+        this.syncStatus = syncStatus;
+    }
 }

+ 11 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamPrintPlan.java

@@ -101,6 +101,9 @@ public class ExamPrintPlan extends BaseEntity implements Serializable {
     @TableField("third_relate_id")
     private Long thirdRelateId;
 
+    @TableField("third_relate_name")
+    private Long thirdRelateName;
+
     @TableField("sync_status")
     private Boolean syncStatus;
 
@@ -212,6 +215,14 @@ public class ExamPrintPlan extends BaseEntity implements Serializable {
         this.thirdRelateId = thirdRelateId;
     }
 
+    public Long getThirdRelateName() {
+        return thirdRelateName;
+    }
+
+    public void setThirdRelateName(Long thirdRelateName) {
+        this.thirdRelateName = thirdRelateName;
+    }
+
     public Boolean getSyncStatus() {
         return syncStatus;
     }

+ 3 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPrintPlanMapper.java

@@ -3,10 +3,7 @@ package com.qmth.distributed.print.business.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.distributed.print.business.bean.dto.ClientPrintStatisticsDto;
-import com.qmth.distributed.print.business.bean.dto.ClientPrintStatisticsTotalDto;
-import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto;
-import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskTotalDto;
+import com.qmth.distributed.print.business.bean.dto.*;
 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;
@@ -44,4 +41,6 @@ public interface ExamPrintPlanMapper extends BaseMapper<ExamPrintPlan> {
     IPage<ClientPrintStatisticsDto> listClientPrintStatistics(Page<ClientPrintStatisticsDto> page, @Param("schoolId") Long schoolId, @Param("printPlanId") String printPlanId, @Param("examPlace") String examPlace, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("orgIds") Set<Long> orgIds, @Param("examDetailStatus") String[] examDetailStatus);
 
     ClientPrintStatisticsTotalDto clientStatisticsTotalData(@Param("schoolId") Long schoolId, @Param("printPlanId") String printPlanId, @Param("examPlace") String examPlace, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("orgIds") Set<Long> orgIds, @Param("examDetailStatus") String[] examDetailStatus);
+
+    List<ThirdObjectDto> listThirdObject(Long schoolId);
 }

+ 4 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPrintPlanService.java

@@ -3,10 +3,7 @@ package com.qmth.distributed.print.business.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.distributed.print.business.bean.dto.ClientPrintStatisticsDto;
-import com.qmth.distributed.print.business.bean.dto.ClientPrintStatisticsTotalDto;
-import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto;
-import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskTotalDto;
+import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.params.DeleteParams;
 import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
 import com.qmth.distributed.print.business.bean.params.SyncDataParam;
@@ -93,5 +90,7 @@ public interface ExamPrintPlanService extends IService<ExamPrintPlan> {
 
     void syncDataMerge(SyncDataParam syncDataParam);
 
-    List<ExamPrintPlan> printSyncPlan(Long schoolId);
+    List<ThirdObjectDto> printSyncPlan(Long schoolId);
+
+    void syncDataCloudBatch(String printPlanIds);
 }

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

@@ -107,7 +107,8 @@ public class DataSyncServiceImpl implements DataSyncService {
         if (!PrintPlanStatusEnum.END.equals(examPrintPlan.getStatus())) {
             throw ExceptionResultEnum.ERROR.exception("印刷计划未结束,不能同步数据");
         }
-        executors.execute(syncData(examPrintPlan, thirdRelateId));
+        Long relateId = Objects.isNull(thirdRelateId) ? examPrintPlan.getThirdRelateId() : thirdRelateId;
+        executors.execute(syncData(examPrintPlan, relateId));
 
     }
 

+ 11 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java

@@ -5,10 +5,7 @@ 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.distributed.print.business.bean.dto.ClientPrintStatisticsDto;
-import com.qmth.distributed.print.business.bean.dto.ClientPrintStatisticsTotalDto;
-import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto;
-import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskTotalDto;
+import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.params.DeleteParams;
 import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
 import com.qmth.distributed.print.business.bean.params.SyncDataParam;
@@ -411,10 +408,16 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     }
 
     @Override
-    public List<ExamPrintPlan> printSyncPlan(Long schoolId) {
-        QueryWrapper<ExamPrintPlan> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(ExamPrintPlan::getSchoolId, schoolId).in(ExamPrintPlan::getStatus, Arrays.asList(PrintPlanStatusEnum.PRINT_FINISH, PrintPlanStatusEnum.END));
-        return null;
+    public List<ThirdObjectDto> printSyncPlan(Long schoolId) {
+        return this.baseMapper.listThirdObject(schoolId);
+    }
+
+    @Override
+    public void syncDataCloudBatch(String printPlanIds) {
+        String[] ids = printPlanIds.split(",");
+        for (String id : ids) {
+            dataSyncService.syncDataCloud(Long.valueOf(id), null);
+        }
     }
 
 

+ 15 - 1
distributed-print-business/src/main/resources/mapper/ExamPrintPlanMapper.xml

@@ -52,7 +52,10 @@
             a.ordinary_content AS ordinaryContentTemp,
             a.create_id AS createId,
             a.create_time AS createTime,
-            b.real_name AS createName
+            b.real_name AS createName,
+            a.third_relate_id thirdRelateId,
+            a.third_relate_name thirdRelateName,
+            a.sync_status syncStatus
         FROM
             exam_print_plan a
                 LEFT JOIN
@@ -459,5 +462,16 @@
             </if>
         </where>
     </select>
+    <select id="listThirdObject" resultType="com.qmth.distributed.print.business.bean.dto.ThirdObjectDto">
+        SELECT
+            distinct
+            third_relate_id thirdRelateId,
+            third_relate_name thirdRelateName
+        FROM
+            exam_print_plan
+        WHERE
+            school_id = #{schoolId}
+        ORDER BY third_relate_id DESC
+    </select>
 
 </mapper>

+ 25 - 9
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java

@@ -1,7 +1,5 @@
 package com.qmth.distributed.print.api;
 
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
 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;
@@ -35,6 +33,7 @@ public class ExamPrintPlanSyncController {
 
     /**
      * 需要合并的计划查询
+     *
      * @param printPlanId
      * @param status
      * @param startTime
@@ -43,10 +42,10 @@ public class ExamPrintPlanSyncController {
      * @param pageSize
      * @return
      */
-    @ApiOperation(value = "印刷计划查询")
+    @ApiOperation(value = "印刷计划合并管理-计划查询")
     @RequestMapping(value = "/list_sync", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    public Result findPrintPlanPage(@ApiParam(value = "印刷计划id") @RequestParam(required = false) String printPlanId,
+    public Result findPrintPlanPage(@ApiParam(value = "印刷计划ID") @RequestParam(required = false) String printPlanId,
                                     @ApiParam(value = "印刷计划状态") @RequestParam(required = false) PrintPlanStatusEnum status,
                                     @ApiParam(value = "计划创建时间段开始时间") @RequestParam(required = false) Long startTime,
                                     @ApiParam(value = "计划创建时间段结束时间") @RequestParam(required = false) Long endTime,
@@ -56,14 +55,15 @@ public class ExamPrintPlanSyncController {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         List<Long> idList = new ArrayList<>();
         idList.add(SystemConstant.convertIdToLong(printPlanId));
-        return ResultUtil.ok(examPrintPlanService.printPlanPage(schoolId,idList , status, startTime, endTime, pageNumber, pageSize));
+        return ResultUtil.ok(examPrintPlanService.printPlanPage(schoolId, idList, status, startTime, endTime, pageNumber, pageSize));
     }
 
     /**
      * 已同步过的云阅卷考试列表
+     *
      * @return
      */
-    @ApiOperation(value = "云阅卷考试ID查询")
+    @ApiOperation(value = "印刷计划合并管理-合并推送-云阅卷考试ID列表")
     @RequestMapping(value = "/list_relate_id", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     public Result findPrintPlanPage() {
@@ -74,11 +74,12 @@ public class ExamPrintPlanSyncController {
 
     /**
      * 多计划合并同步
+     *
      * @param syncDataParam
      * @return
      * @throws Exception
      */
-    @ApiOperation(value = "多计划合并同步")
+    @ApiOperation(value = "印刷计划合并管理-合并推送-多计划合并同步")
     @RequestMapping(value = "/sync_data_merge", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     public Result syncDataCloud(@RequestBody SyncDataParam syncDataParam) {
@@ -86,17 +87,32 @@ public class ExamPrintPlanSyncController {
         return ResultUtil.ok(true);
     }
 
+    /**
+     * 批量同步
+     *
+     * @param printPlanIds
+     * @return
+     * @throws Exception
+     */
+    @ApiOperation(value = "印刷计划合并管理-批量同步")
+    @RequestMapping(value = "/sync_data_cloud_batch", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    public Result syncDataCloudBatch(@RequestParam(value = "printPlanIds") String printPlanIds) {
+        examPrintPlanService.syncDataCloudBatch(printPlanIds);
+        return ResultUtil.ok(true);
+    }
+
     /**
      * 手动同步
+     *
      * @param printPlanId
      * @param thirdRelateId
      * @return
      * @throws Exception
      */
-    @ApiOperation(value = "同步失败-手动同步")
+    @ApiOperation(value = "印刷计划合并管理-同步失败-单个手动同步")
     @RequestMapping(value = "/sync_data_cloud", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
-    @Aac(auth = BOOL.FALSE)
     public Result syncDataCloud(@RequestParam(value = "printPlanId") Long printPlanId,
                                 @RequestParam(value = "thirdRelateId", required = false) Long thirdRelateId) {
         examPrintPlanService.syncDataCloud(printPlanId, thirdRelateId);

+ 2 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -120,9 +120,8 @@ public class SysController {
             userList.forEach(o -> {
                 AuthBean authBean = teachcloudCommonService.getUserAuth(o.getId());
                 if (Objects.nonNull(authBean) && Objects.nonNull(authBean.getRoleList()) && authBean.getRoleList().size() > 0) {
-                    Set<String> roleNames = authBean.getRoleList().stream().map(s -> s.getName()).collect(Collectors.toSet());
-                    if (!roleNames.contains(RoleTypeEnum.ADMIN.getDesc())) {
-                        throw ExceptionResultEnum.ERROR.exception("学校代码为admin只允许超级管理员登录");
+                    if (Objects.nonNull(authBean.getSchool())) {
+                        throw ExceptionResultEnum.ERROR.exception("用户无法通过当前页面登录");
                     }
                 }
             });

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

@@ -311,6 +311,12 @@ public class SystemConstant {
 
     public static Long getHeadOrUserSchoolId() {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return Objects.nonNull(ServletUtil.getRequestHeaderSchoolIdByNotVaild()) ? Long.parseLong(ServletUtil.getRequestHeaderSchoolIdByNotVaild().toString()) : sysUser.getSchoolId();
+        Long schoolId;
+        if(Objects.nonNull(ServletUtil.getRequestHeaderSchoolIdByNotVaild())){
+            schoolId = Long.parseLong(ServletUtil.getRequestHeaderSchoolIdByNotVaild().toString());
+        } else {
+            schoolId = sysUser.getSchoolId();
+        }
+        return schoolId;
     }
 }

+ 6 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysPrivilegeServiceImpl.java

@@ -84,9 +84,14 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
     public List<PrivilegeDto> listPrivilegeTreeNew() {
         Long schoolId = SystemConstant.getHeadOrUserSchoolId();
         QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
-        sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getSchoolId, schoolId)
+        sysPrivilegeQueryWrapper.lambda()
                 .ne(SysPrivilege::getType, PrivilegeEnum.URL)
                 .eq(SysPrivilege::getDisplay, true);
+        if(Objects.isNull(schoolId)){
+            sysPrivilegeQueryWrapper.lambda().isNull(SysPrivilege::getSchoolId);
+        } else{
+            sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getSchoolId, schoolId);
+        }
         List<SysPrivilege> sysPrivilegeList = this.list(sysPrivilegeQueryWrapper);
 
         LinkedMultiValueMap<Long, MenuDto> linkedMultiValueMap = new LinkedMultiValueMap<>();

+ 1 - 1
teachcloud-common/src/main/resources/mapper/SysUserMapper.xml

@@ -105,7 +105,7 @@
         FROM
         sys_user a
         <where>
-            a.school_id is null and a.id in (select user_id from sys_user_role b left join sys_role c on b.role_id = c.id where c.type = 'CUSTOMER')
+            a.school_id is null and a.id not in (select user_id from sys_user_role b left join sys_role c on b.role_id = c.id where c.type = 'ADMIN')
             <if test="realName != null and realName != ''">
                 and a.real_name like concat('%', #{realName} , '%')
             </if>