wangliang 4 жил өмнө
parent
commit
ffba492b72
100 өөрчлөгдсөн 1585 нэмэгдсэн , 2273 устгасан
  1. 0 20
      distributed-print-business/pom.xml
  2. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/CardRuleDto.java
  3. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamTaskDto.java
  4. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/PdfDto.java
  5. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/TemplateDto.java
  6. 0 22
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/UserSaveParams.java
  7. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/EditResult.java
  8. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/TemplatePrintInfoResult.java
  9. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/cache/CreatePdfCacheUtil.java
  10. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/BasicTemplate.java
  11. 2 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TBSyncTask.java
  12. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/BackupMethodEnum.java
  13. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/CardRequiredFieldsEnum.java
  14. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/CardStatusEnum.java
  15. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/CardTypeEnum.java
  16. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/DrawRuleEnum.java
  17. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/ExamDetailStatusEnum.java
  18. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/ExamNumberStyleEnum.java
  19. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/ExamStatusEnum.java
  20. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/MakeMethodEnum.java
  21. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/PaperTypeEnum.java
  22. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/PrintMethodEnum.java
  23. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/PrintPlanStatusEnum.java
  24. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/RequiredFieldsEnum.java
  25. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/ReviewStatusEnum.java
  26. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/StorageLevelEnum.java
  27. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/StorageTypeEnum.java
  28. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/TemplateTypeEnum.java
  29. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/BasicTemplateOrgMapper.java
  30. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamDetailCourseMapper.java
  31. 1 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java
  32. 0 107
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicAttachmentService.java
  33. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicMessageService.java
  34. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicTemplateOrgService.java
  35. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamCardService.java
  36. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailCourseService.java
  37. 6 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskService.java
  38. 211 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/PrintCommonService.java
  39. 0 508
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicAttachmentServiceImpl.java
  40. 11 11
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicCardRuleServiceImpl.java
  41. 0 158
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicCourseServiceImpl.java
  42. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamRuleServiceImpl.java
  43. 5 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicMessageServiceImpl.java
  44. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicTemplateOrgServiceImpl.java
  45. 16 10
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicTemplateServiceImpl.java
  46. 3 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicVerifyCodeServiceImpl.java
  47. 21 17
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java
  48. 3 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java
  49. 12 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java
  50. 5 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCourseServiceImpl.java
  51. 21 13
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java
  52. 25 22
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java
  53. 16 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java
  54. 33 28
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  55. 853 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceServiceImpl.java
  56. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBSyncTaskServiceImpl.java
  57. 0 405
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBTaskServiceImpl.java
  58. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncCreatePdfTempleteService.java
  59. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncDownloadPdfTempleteService.java
  60. 5 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncExaminationExportTemplateService.java
  61. 5 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncExaminationImportTemplateService.java
  62. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncPaperReviewPdfExportService.java
  63. 4 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncTaskReviewSampleExportService.java
  64. 6 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/export/AsyncExportTaskTemplete.java
  65. 7 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java
  66. 15 10
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java
  67. 20 7
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java
  68. 10 7
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/FreemarkerUtil.java
  69. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/HtmlToPdfUtil.java
  70. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfUtil.java
  71. 0 112
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/security/EncrypAES.java
  72. 0 80
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/security/Md5Utils.java
  73. 1 1
      distributed-print-business/src/main/resources/mapper/BasicTemplateOrgMapper.xml
  74. 1 1
      distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml
  75. 1 1
      distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml
  76. 0 46
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicAttachmentController.java
  77. 19 17
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java
  78. 13 11
      distributed-print/src/main/java/com/qmth/distributed/print/api/ClientController.java
  79. 1 4
      distributed-print/src/main/java/com/qmth/distributed/print/api/EnumsController.java
  80. 2 3
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamCardController.java
  81. 34 32
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java
  82. 10 9
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java
  83. 23 18
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java
  84. 24 19
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java
  85. 10 9
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysOrgController.java
  86. 0 98
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysPrivilegeController.java
  87. 0 117
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysRoleController.java
  88. 0 173
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java
  89. 9 9
      distributed-print/src/main/java/com/qmth/distributed/print/api/TBTaskController.java
  90. 3 6
      distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java
  91. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/aspect/ApiControllerAspect.java
  92. 8 8
      distributed-print/src/main/java/com/qmth/distributed/print/auth/DistributedPrintAuthenticationService.java
  93. 2 2
      distributed-print/src/main/java/com/qmth/distributed/print/auth/DistributedPrintSession.java
  94. 5 5
      distributed-print/src/main/java/com/qmth/distributed/print/interceptor/AuthInterceptor.java
  95. 5 4
      distributed-print/src/main/java/com/qmth/distributed/print/start/StartRunning.java
  96. 1 1
      distributed-print/src/main/resources/application.properties
  97. 7 10
      distributed-print/src/test/java/com/qmth/distributed/print/BasicDataImportTest.java
  98. 8 8
      distributed-print/src/test/java/com/qmth/distributed/print/BasicUserImportTest.java
  99. 6 4
      distributed-print/src/test/java/com/qmth/distributed/print/ServiceTest.java
  100. 20 0
      teachcloud-common/pom.xml

+ 0 - 20
distributed-print-business/pom.xml

@@ -35,26 +35,6 @@
             <groupId>com.qmth.teachcloud.common</groupId>
             <artifactId>teachcloud-common</artifactId>
         </dependency>
-        <dependency>
-            <groupId>commons-fileupload</groupId>
-            <artifactId>commons-fileupload</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi-ooxml</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi-ooxml-schemas</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.aliyun.oss</groupId>
-            <artifactId>aliyun-sdk-oss</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.jetbrains</groupId>
             <artifactId>annotations</artifactId>

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/CardRuleDto.java

@@ -1,8 +1,8 @@
 package com.qmth.distributed.print.business.bean.dto;
 
-import com.qmth.distributed.print.business.entity.SysOrg;
 import com.qmth.distributed.print.business.enums.ExamNumberStyleEnum;
 import com.qmth.distributed.print.business.enums.PaperTypeEnum;
+import com.qmth.teachcloud.common.entity.SysOrg;
 
 import java.util.List;
 

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamTaskDto.java

@@ -1,5 +1,7 @@
 package com.qmth.distributed.print.business.bean.dto;
 
+import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
+
 import java.util.List;
 
 /**

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/PdfDto.java

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.bean.dto;
 
-import com.qmth.distributed.print.business.enums.PageSizeEnum;
+import com.qmth.teachcloud.common.enums.PageSizeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 /**

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/TemplateDto.java

@@ -2,9 +2,9 @@ package com.qmth.distributed.print.business.bean.dto;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.qmth.distributed.print.business.entity.SysOrg;
-import com.qmth.distributed.print.business.enums.ClassifyEnum;
 import com.qmth.distributed.print.business.enums.TemplateTypeEnum;
+import com.qmth.teachcloud.common.entity.SysOrg;
+import com.qmth.teachcloud.common.enums.ClassifyEnum;
 
 import java.util.List;
 

+ 0 - 22
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/UserSaveParams.java

@@ -1,22 +0,0 @@
-package com.qmth.distributed.print.business.bean.params;
-
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.qmth.distributed.print.business.entity.SysUser;
-import io.swagger.annotations.ApiModelProperty;
-import org.hibernate.validator.constraints.Length;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-
-/**
- * @Description: 用户保存/编辑params
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2021/3/24
- */
-public class UserSaveParams extends SysUser implements Serializable {
-
-}

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/EditResult.java

@@ -3,7 +3,7 @@ package com.qmth.distributed.print.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.distributed.print.business.util.ServletUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/TemplatePrintInfoResult.java

@@ -2,8 +2,8 @@ package com.qmth.distributed.print.business.bean.result;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.qmth.distributed.print.business.enums.ClassifyEnum;
 import com.qmth.distributed.print.business.enums.TemplateTypeEnum;
+import com.qmth.teachcloud.common.enums.ClassifyEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 /**

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/cache/CreatePdfCacheUtil.java

@@ -1,7 +1,7 @@
 package com.qmth.distributed.print.business.cache;
 
-import com.qmth.distributed.print.business.util.RedisUtil;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
+import com.qmth.teachcloud.common.util.RedisUtil;
 
 /**
  * @Description: 生成pdf cache

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/BasicTemplate.java

@@ -4,9 +4,9 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.qmth.distributed.print.business.enums.ClassifyEnum;
 import com.qmth.distributed.print.business.enums.TemplateTypeEnum;
 import com.qmth.teachcloud.common.base.BaseEntity;
+import com.qmth.teachcloud.common.enums.ClassifyEnum;
 
 import java.io.Serializable;
 

+ 2 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TBSyncTask.java

@@ -6,10 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.qmth.distributed.print.business.enums.TaskResultEnum;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
-import com.qmth.distributed.print.business.enums.TaskTypeEnum;
-import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 
 import java.util.ArrayList;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,12 +1,13 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;
 
 /**
  * 题卡制作方式
+ *
  * @Date: 2021/3/23.
  */
 public enum MakeMethodEnum {

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,6 +1,6 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -1,12 +1,13 @@
 package com.qmth.distributed.print.business.enums;
 
-import com.qmth.distributed.print.business.enums.result.EnumResult;
+import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;
 
 /**
  * 通用模板类型
+ *
  * @Date: 2021/3/23.
  */
 public enum TemplateTypeEnum {

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

@@ -3,7 +3,7 @@ package com.qmth.distributed.print.business.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qmth.distributed.print.business.bean.result.TemplatePrintInfoResult;
 import com.qmth.distributed.print.business.entity.BasicTemplateOrg;
-import com.qmth.distributed.print.business.entity.SysOrg;
+import com.qmth.teachcloud.common.entity.SysOrg;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;

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

@@ -1,8 +1,8 @@
 package com.qmth.distributed.print.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.qmth.distributed.print.business.entity.BasicCourse;
 import com.qmth.distributed.print.business.entity.ExamDetailCourse;
+import com.qmth.teachcloud.common.entity.BasicCourse;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;

+ 1 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.result.WorkResult;
 import com.qmth.distributed.print.business.entity.ExamTask;
+import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;

+ 0 - 107
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicAttachmentService.java

@@ -1,107 +0,0 @@
-package com.qmth.distributed.print.business.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.itextpdf.text.DocumentException;
-import com.qmth.distributed.print.business.bean.dto.PdfDto;
-import com.qmth.distributed.print.business.entity.BasicAttachment;
-import com.qmth.distributed.print.business.entity.ExamDetail;
-import com.qmth.distributed.print.business.entity.ExamDetailCourse;
-import com.qmth.distributed.print.business.enums.ClassifyEnum;
-import com.qmth.distributed.print.business.enums.UploadFileEnum;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * <p>
- * 所有附件记录表 服务类
- * </p>
- *
- * @author xf
- * @since 2021-03-23
- */
-public interface BasicAttachmentService extends IService<BasicAttachment> {
-
-    /**
-     * 保存附件
-     *
-     * @param file
-     * @param md5
-     * @param type
-     * @return
-     */
-    public BasicAttachment saveAttachment(MultipartFile file, String md5, UploadFileEnum type);
-
-    /**
-     * 保存附件
-     *
-     * @param file
-     * @param md5
-     * @param type
-     * @param objId
-     * @return
-     */
-    public BasicAttachment saveAttachment(MultipartFile file, String md5, UploadFileEnum type, Long objId);
-
-    /**
-     * 保存html附件
-     *
-     * @param fileName
-     * @param htmlContent
-     * @param userId
-     * @param localFileList
-     * @return
-     * @throws IOException
-     */
-    public BasicAttachment saveAttachmentHtml(String fileName, String htmlContent, Long userId, List<PdfDto> localFileList) throws IOException;
-
-    /**
-     * 保存html文件
-     *
-     * @param rootPath    文件路径
-     * @param fileName    文件名
-     * @param htmlContent 文件内容
-     * @return
-     */
-    public File saveAttachmentHtml(String rootPath, String fileName, String htmlContent);
-
-    /**
-     * 保存附件
-     *
-     * @param dirName
-     * @param userId
-     * @return
-     * @throws IOException
-     */
-    public BasicAttachment saveAttachmentPdf(String dirName, Long userId) throws IOException;
-
-    /**
-     * 保存附件
-     *
-     * @param classifyEnum
-     * @param examDetail
-     * @param basicAttachment
-     * @param pdfList
-     * @param printCount
-     * @param sequence
-     * @return
-     * @throws IOException
-     */
-    public BasicAttachment saveAttachmentPdf(ClassifyEnum classifyEnum, ExamDetail examDetail, BasicAttachment basicAttachment, List<PdfDto> pdfList, Integer printCount, Integer sequence) throws IOException, DocumentException;
-
-    /**
-     * 删除附件
-     *
-     * @param tbAttachment
-     */
-    public void deleteAttachment(BasicAttachment tbAttachment);
-
-    /**
-     * 批量删除附件
-     *
-     * @param basicAttachmentList
-     */
-    public void batchDeleteAttachment(List<BasicAttachment> basicAttachmentList);
-}

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

@@ -3,8 +3,8 @@ package com.qmth.distributed.print.business.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.entity.BasicMessage;
 import com.qmth.distributed.print.business.entity.ExamTask;
-import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.enums.MessageEnum;
+import com.qmth.teachcloud.common.entity.SysUser;
 
 import java.util.List;
 

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

@@ -3,11 +3,10 @@ package com.qmth.distributed.print.business.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.bean.result.TemplatePrintInfoResult;
 import com.qmth.distributed.print.business.entity.BasicTemplateOrg;
-import com.qmth.distributed.print.business.entity.SysOrg;
 import com.qmth.distributed.print.business.enums.TemplateTypeEnum;
+import com.qmth.teachcloud.common.entity.SysOrg;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -27,6 +26,7 @@ public interface BasicTemplateOrgService extends IService<BasicTemplateOrg> {
 
     /**
      * 根据机构id查询所有机构集合下所使用的的模板信息
+     *
      * @param ids 机构id集合
      * @return 模板信息集合
      */

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

@@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.bean.dto.CardCustDto;
 import com.qmth.distributed.print.business.bean.dto.CardDetailDto;
 import com.qmth.distributed.print.business.bean.dto.SyncExamCardDto;
-import com.qmth.distributed.print.business.bean.params.ArraysParams;
 import com.qmth.distributed.print.business.bean.params.ExamCardParams;
 import com.qmth.distributed.print.business.entity.ExamCard;
+import com.qmth.teachcloud.common.bean.params.ArraysParams;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;

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

@@ -1,8 +1,8 @@
 package com.qmth.distributed.print.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.distributed.print.business.entity.BasicCourse;
 import com.qmth.distributed.print.business.entity.ExamDetailCourse;
+import com.qmth.teachcloud.common.entity.BasicCourse;
 
 import java.util.List;
 import java.util.Map;

+ 6 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskService.java

@@ -4,13 +4,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.result.WorkResult;
-import com.qmth.distributed.print.business.entity.*;
+import com.qmth.distributed.print.business.entity.ExamTask;
+import com.qmth.distributed.print.business.entity.ExamTaskDetail;
+import com.qmth.distributed.print.business.entity.ExamTaskReviewLog;
 import com.qmth.distributed.print.business.enums.ExamStatusEnum;
+import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.entity.TBTask;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 

+ 211 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/PrintCommonService.java

@@ -0,0 +1,211 @@
+package com.qmth.distributed.print.business.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.itextpdf.text.DocumentException;
+import com.qmth.distributed.print.business.bean.dto.PdfDto;
+import com.qmth.distributed.print.business.entity.ExamDetail;
+import com.qmth.teachcloud.common.entity.BasicAttachment;
+import com.qmth.teachcloud.common.entity.BasicCourse;
+import com.qmth.teachcloud.common.entity.SysOrg;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ClassifyEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.UploadFileEnum;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 公共服务service
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/3/26
+ */
+public interface PrintCommonService {
+
+    /**
+     * 保存附件
+     *
+     * @param classifyEnum
+     * @param examDetail
+     * @param basicAttachment
+     * @param pdfList
+     * @param printCount
+     * @param sequence
+     * @return
+     * @throws IOException
+     */
+    public BasicAttachment saveAttachmentPdf(ClassifyEnum classifyEnum, ExamDetail examDetail, BasicAttachment basicAttachment, List<PdfDto> pdfList, Integer printCount, Integer sequence) throws IOException, DocumentException;
+
+    /**
+     * 保存html附件
+     *
+     * @param fileName
+     * @param htmlContent
+     * @param userId
+     * @param localFileList
+     * @return
+     * @throws IOException
+     */
+    public BasicAttachment saveAttachmentHtml(String fileName, String htmlContent, Long userId, List<PdfDto> localFileList) throws IOException;
+
+    /**
+     * 保存附件公用
+     *
+     * @param file
+     * @param md5
+     * @param type
+     * @param objId
+     * @return
+     */
+    public BasicAttachment saveAttachmentCommon(MultipartFile file, String md5, UploadFileEnum type, Long objId);
+
+    /**
+     * 保存附件
+     *
+     * @param file
+     * @param md5
+     * @param type
+     * @return
+     */
+    public BasicAttachment saveAttachment(MultipartFile file, String md5, UploadFileEnum type);
+
+    /**
+     * 保存附件
+     *
+     * @param file
+     * @param md5
+     * @param type
+     * @param objId
+     * @return
+     */
+    public BasicAttachment saveAttachment(MultipartFile file, String md5, UploadFileEnum type, Long objId);
+
+    /**
+     * 科目删除
+     *
+     * @param id
+     * @return
+     */
+    boolean remove(Long id);
+
+    /**
+     * 保存科目
+     *
+     * @param course
+     * @param userId
+     * @return
+     */
+    boolean saveCourse(BasicCourse course, Long userId);
+
+    /**
+     * 分页查询
+     *
+     * @param code
+     * @param name
+     * @param pageNumber
+     * @param pageSize
+     * @return
+     */
+    IPage<BasicCourse> list(String code, String name, Integer pageNumber, Integer pageSize);
+
+    /**
+     * 科目查询
+     *
+     * @param param
+     * @param printPlanId
+     * @return
+     */
+    List<BasicCourse> list(String param, Long printPlanId);
+
+    /**
+     * 机构禁用
+     *
+     * @param org
+     * @return
+     */
+    boolean enable(SysOrg org);
+
+    /**
+     * 机构删除
+     *
+     * @param id
+     * @return
+     */
+    boolean sysOrgRemove(Long id);
+
+    /**
+     * 更新任务状态
+     */
+    @Async
+    public void updateStatus() throws IOException;
+
+    /**
+     * 重新生成pdf失败任务
+     *
+     * @throws IOException
+     */
+    public void resetCreatePdfTask() throws IOException;
+
+
+    /**
+     * 保存任务
+     *
+     * @param file
+     * @param taskTypeEnum
+     * @return
+     */
+    public Map<String, Object> saveTask(MultipartFile file, TaskTypeEnum taskTypeEnum);
+
+    /**
+     * 保存任务
+     *
+     * @param printPlanId
+     * @param file
+     * @param taskTypeEnum
+     * @return
+     */
+    public Map<String, Object> saveTask(Long printPlanId, MultipartFile file, TaskTypeEnum taskTypeEnum);
+
+    /**
+     * 保存任务(导出)
+     *
+     * @param taskTypeEnum
+     * @return
+     */
+    public Map<String, Object> saveTask(TaskTypeEnum taskTypeEnum);
+
+    /**
+     * 校验课程关联考场是否提交打印
+     *
+     * @param schoolId
+     * @param printPlanId
+     * @param courseCode
+     * @param paperNumber
+     * @return
+     */
+    Boolean checkExamDetailStatus(Long schoolId, Long printPlanId, String courseCode, String paperNumber);
+
+    /**
+     * 生成唯一的试卷编号
+     *
+     * @param schoolId
+     * @return
+     */
+    public String createPaperNumber(Long schoolId);
+
+    /**
+     * 校验是否可以提交
+     *
+     * @param schoolId
+     * @param courseCode
+     * @param paperNumber
+     * @param user
+     * @throws IOException
+     */
+    public void checkData(Long schoolId, String courseCode, String paperNumber, SysUser user) throws IOException;
+}

+ 0 - 508
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicAttachmentServiceImpl.java

@@ -1,508 +0,0 @@
-package com.qmth.distributed.print.business.service.impl;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.aliyun.oss.common.utils.BinaryUtil;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.itextpdf.text.DocumentException;
-import com.itextpdf.text.pdf.PdfReader;
-import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.bean.dto.PdfDto;
-import com.qmth.distributed.print.business.entity.BasicAttachment;
-import com.qmth.distributed.print.business.entity.ExamDetail;
-import com.qmth.distributed.print.business.entity.SysUser;
-import com.qmth.distributed.print.business.enums.ClassifyEnum;
-import com.qmth.distributed.print.business.enums.PageSizeEnum;
-import com.qmth.distributed.print.business.enums.UploadFileEnum;
-import com.qmth.distributed.print.business.mapper.BasicAttachmentMapper;
-import com.qmth.distributed.print.business.service.BasicAttachmentService;
-import com.qmth.distributed.print.business.util.HtmlToPdfUtil;
-import com.qmth.distributed.print.business.util.OssUtil;
-import com.qmth.distributed.print.business.util.PdfUtil;
-import com.qmth.distributed.print.business.util.ServletUtil;
-import com.qmth.teachcloud.common.config.DictionaryConfig;
-import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.util.HexUtils;
-import com.qmth.teachcloud.common.util.ResultUtil;
-import org.apache.commons.codec.digest.DigestUtils;
-import org.apache.commons.io.FileUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.FileCopyUtils;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.Objects;
-import java.util.StringJoiner;
-
-/**
- * <p>
- * 所有附件记录表 服务实现类
- * </p>
- *
- * @author xf
- * @since 2021-03-23
- */
-@Service
-public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMapper, BasicAttachment> implements BasicAttachmentService {
-    private final static Logger log = LoggerFactory.getLogger(BasicAttachmentServiceImpl.class);
-
-    @Resource
-    OssUtil ossUtil;
-
-    @Autowired
-    private DictionaryConfig dictionaryConfig;
-
-    /**
-     * 保存附件
-     *
-     * @param file
-     * @param md5
-     * @param type
-     * @return
-     */
-    @Override
-    @Transactional
-    public BasicAttachment saveAttachment(MultipartFile file, String md5, UploadFileEnum type) {
-        return saveAttachmentCommon(file, md5, type, null);
-    }
-
-    /**
-     * 保存附件
-     *
-     * @param file
-     * @param md5
-     * @param type
-     * @param objId
-     * @return
-     */
-    @Override
-    @Transactional
-    public BasicAttachment saveAttachment(MultipartFile file, String md5, UploadFileEnum type, Long objId) {
-        return saveAttachmentCommon(file, md5, type, objId);
-    }
-
-    /**
-     * 保存html附件
-     *
-     * @param fileName
-     * @param htmlContent
-     * @param userId
-     * @param localFileList
-     * @return
-     * @throws IOException
-     */
-    @Override
-    @Transactional
-    public BasicAttachment saveAttachmentHtml(String fileName, String htmlContent, Long userId, List<PdfDto> localFileList) throws IOException {
-        BasicAttachment basicAttachment = null;
-        PdfDto pdfDto = null;
-        try {
-            byte[] bytes = htmlContent.getBytes();
-            int size = bytes.length;
-            boolean oss = dictionaryConfig.sysDomain().isOss();
-            LocalDateTime nowTime = LocalDateTime.now();
-            StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss) {
-                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
-            }
-            stringJoiner.add(UploadFileEnum.HTML.getTitle()).add(File.separator)
-                    .add(String.valueOf(nowTime.getYear())).add(File.separator)
-                    .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
-                    .add(String.format("%02d", nowTime.getDayOfMonth()));
-
-            JSONObject jsonObject = new JSONObject();
-            stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.HTML_PREFIX);
-            String fileMd5 = null;
-            if (oss) {//上传至oss
-                String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
-                ossUtil.ossUpload(dirName, htmlContent);
-                jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
-                jsonObject.put(SystemConstant.PATH, dirName);
-                String url = SystemConstant.TEMP_FILES_DIR + File.separator + dirName;
-                File localHtmlFile = ossUtil.ossDownload(dirName, url);
-                StringJoiner pdfStringJoiner = new StringJoiner("");
-                pdfStringJoiner.add(UploadFileEnum.PDF.getTitle()).add(File.separator);
-                pdfStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
-                        .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
-                        .add(String.format("%02d", nowTime.getDayOfMonth()));
-                pdfStringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.PDF_PREFIX);
-
-                String pdfDirName = pdfStringJoiner.toString();
-                String destUrl = SystemConstant.PDF_TEMP_FILES_DIR + File.separator + pdfDirName;
-//                destUrl = destUrl.replaceAll("\\\\","/");
-
-                HtmlToPdfUtil.convert(localHtmlFile.getPath(), destUrl, PageSizeEnum.A3);
-//                File pdfFile = asposePdfUtil.documentToPdf(localHtmlFile.getPath(), destUrl, PaperSize.A3);
-                File pdfFile = new File(destUrl);
-                if (!pdfFile.exists()) {
-                    pdfFile.getParentFile().mkdirs();
-                    pdfFile.createNewFile();
-                }
-                pdfDto = PdfUtil.addPdfPage(pdfFile);
-                localFileList.add(new PdfDto(pdfFile.getPath(), PageSizeEnum.A3, pdfDto.getPageCount()));
-                fileMd5 = DigestUtils.md5Hex(new FileInputStream(pdfFile));
-                ossUtil.ossUpload(pdfDirName, pdfFile, BinaryUtil.toBase64String(HexUtils.decodeHex(fileMd5)));
-//                localHtmlFile.delete();
-                jsonObject.put(SystemConstant.PDF_PATH, pdfDirName);
-                // htmlMd5
-                jsonObject.put("htmlMd5", DigestUtils.md5Hex(new FileInputStream(localHtmlFile)));
-                jsonObject.put("pdfMd5", fileMd5);
-            } else {//上传至服务器
-                File finalFile = new File(stringJoiner.toString());
-                if (!finalFile.exists()) {
-                    finalFile.getParentFile().mkdirs();
-                    finalFile.createNewFile();
-                }
-                FileCopyUtils.copy(bytes, new File(stringJoiner.toString()));
-                fileMd5 = DigestUtils.md5Hex(new FileInputStream(stringJoiner.toString()));
-                jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
-                jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
-                String destUrl = finalFile.getPath().replaceAll(SystemConstant.HTML_PREFIX, SystemConstant.PDF_PREFIX).replaceAll(UploadFileEnum.HTML.name().toLowerCase(), UploadFileEnum.PDF.name().toLowerCase());
-                HtmlToPdfUtil.convert(finalFile.getPath(), destUrl, PageSizeEnum.A3);
-//                File pdfFile = asposePdfUtil.documentToPdf(finalFile.getPath(), destUrl, PaperSize.A3);
-                jsonObject.put(SystemConstant.PDF_PATH, destUrl);
-                jsonObject.put("htmlMd5", DigestUtils.md5Hex(new FileInputStream(finalFile)));
-                jsonObject.put("pdfMd5", fileMd5);
-            }
-            jsonObject.put(SystemConstant.UPLOAD_TYPE, new UploadFileEnum[]{
-                    UploadFileEnum.HTML, UploadFileEnum.PDF
-            });
-            basicAttachment = new BasicAttachment(jsonObject.toJSONString(), fileName, SystemConstant.HTML_PREFIX, new BigDecimal(size), fileMd5, userId);
-            basicAttachment.setPages(pdfDto.getActualPageCount());
-            save(basicAttachment);
-        } catch (Exception e) {
-            log.error("请求出错", e);
-            deleteAttachment(basicAttachment);
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
-        }
-        return basicAttachment;
-    }
-
-    /**
-     * 保存html附件
-     *
-     * @param fileName
-     * @param htmlContent
-     * @return
-     * @throws IOException
-     */
-    @Override
-    public File saveAttachmentHtml(String rootPath, String fileName, String htmlContent) {
-        File file = null;
-        try {
-            byte[] bytes = htmlContent.getBytes();
-            //上传至服务器
-            File mkdir = new File(rootPath);
-            if (!mkdir.exists()) {
-                mkdir.mkdirs();
-            }
-            file = new File(rootPath, fileName);
-            FileCopyUtils.copy(bytes, file);
-            //计算html文件md5
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return file;
-    }
-
-    /**
-     * 保存附件
-     *
-     * @param dirName
-     * @param userId
-     * @return
-     * @throws IOException
-     */
-    @Override
-    @Transactional
-    public BasicAttachment saveAttachmentPdf(String dirName, Long userId) throws IOException {
-        BasicAttachment basicAttachment = null;
-        try {
-            StringJoiner stringJoiner = new StringJoiner("").add(SystemConstant.PDF_TEMP_FILES_DIR).add(File.separator);
-            File localPdfFile = new File(stringJoiner.toString() + File.separator + dirName);
-            if (!localPdfFile.getParentFile().exists()) {
-                localPdfFile.getParentFile().mkdirs();
-                localPdfFile.createNewFile();
-            }
-            JSONObject jsonPdf = new JSONObject();
-            jsonPdf.put(SystemConstant.TYPE, SystemConstant.OSS);
-            jsonPdf.put(SystemConstant.PATH, dirName);
-            jsonPdf.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.PDF);
-            basicAttachment = new BasicAttachment(jsonPdf.toJSONString(), localPdfFile.getName(), SystemConstant.PDF_PREFIX, new BigDecimal(localPdfFile.length()), DigestUtils.md5Hex(new FileInputStream(localPdfFile)), userId);
-            save(basicAttachment);
-        } catch (Exception e) {
-            log.error("请求出错", e);
-            deleteAttachment(basicAttachment);
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
-        }
-        return basicAttachment;
-    }
-
-    /**
-     * 保存附件
-     *
-     * @param classifyEnum
-     * @param examDetail
-     * @param basicAttachment
-     * @param pdfList
-     * @param printCount
-     * @param sequence
-     * @return
-     * @throws IOException
-     */
-    @Override
-    @Transactional
-    public BasicAttachment saveAttachmentPdf(ClassifyEnum classifyEnum, ExamDetail examDetail, BasicAttachment basicAttachment, List<PdfDto> pdfList, Integer printCount, Integer sequence) throws IOException, DocumentException {
-        try {
-            boolean oss = dictionaryConfig.sysDomain().isOss();
-            JSONObject jsonObject = JSONObject.parseObject(basicAttachment.getPath());
-            String type = basicAttachment.getType();
-            String filePath = null;
-            String url = null;
-            File htmlFile = null;
-            if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.FTL_PREFIX)) {
-                filePath = (String) jsonObject.get(SystemConstant.HTML_PATH);
-                url = SystemConstant.TEMP_FILES_DIR + File.separator + filePath;
-                htmlFile = new File(url);
-            } else if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.HTML_PREFIX)) {
-                filePath = (String) jsonObject.get(SystemConstant.PATH);
-                url = SystemConstant.TEMP_FILES_DIR + File.separator + filePath;
-                htmlFile = ossUtil.ossDownload(filePath, url);
-            }
-            LocalDateTime nowTime = LocalDateTime.now();
-            StringJoiner pdfStringJoiner = new StringJoiner("");
-            if (!oss) {
-                pdfStringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
-            }
-            pdfStringJoiner.add(UploadFileEnum.PDF.getTitle()).add(File.separator);
-            pdfStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
-                    .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
-                    .add(String.format("%02d", nowTime.getDayOfMonth()));
-            pdfStringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.PDF_PREFIX);
-
-            String pdfDirName = pdfStringJoiner.toString();
-            String pdfDirNameStr = pdfStringJoiner.toString().replace("\\", "/");
-            String destUrl = SystemConstant.PDF_TEMP_FILES_DIR + File.separator + pdfDirName;
-
-            File pdfFile = new File(destUrl);
-            if (!pdfFile.exists()) {
-                pdfFile.getParentFile().mkdirs();
-                pdfFile.createNewFile();
-            }
-            HtmlToPdfUtil.convert(htmlFile.getPath(), destUrl, PageSizeEnum.A4);
-//            File pdfFile = asposePdfUtil.documentToPdf(htmlFile.getPath(), destUrl, PaperSize.A4);
-            String htmlFileMd5 = DigestUtils.md5Hex(new FileInputStream(htmlFile));
-            String pdfFileMd5 = DigestUtils.md5Hex(new FileInputStream(pdfFile));
-            PdfDto pdfDto = null;
-            if (oss) {//上传至oss
-                pdfDto = PdfUtil.addPdfPage(pdfFile);
-                ossUtil.ossUpload(pdfDirNameStr, pdfFile, BinaryUtil.toBase64String(HexUtils.decodeHex(pdfFileMd5)));
-//                htmlFile.delete();
-            }
-            JSONObject attachmentPath = JSONObject.parseObject(examDetail.getAttachmentPath());
-            attachmentPath = Objects.isNull(attachmentPath) ? new JSONObject() : attachmentPath;
-            JSONArray jsonArray = (JSONArray) attachmentPath.get(SystemConstant.PATH);
-            jsonArray = Objects.isNull(jsonArray) ? new JSONArray() : jsonArray;
-            JSONObject object = new JSONObject();
-            object.put("printType", classifyEnum.name());
-            object.put(SystemConstant.HTML_PATH, filePath);
-            object.put("htmlMd5", htmlFileMd5);
-            object.put("pdfMd5", pdfFileMd5);
-            object.put(SystemConstant.PDF_PATH, pdfDirNameStr);
-            object.put(SystemConstant.TYPE, SystemConstant.OSS);
-            object.put(SystemConstant.UPLOAD_TYPE, new UploadFileEnum[]{
-                    UploadFileEnum.HTML,
-                    UploadFileEnum.PDF
-            });
-            jsonArray.add(object);
-            attachmentPath.put(SystemConstant.PATH, jsonArray);
-            examDetail.setAttachmentPath(attachmentPath.toJSONString());
-            basicAttachment.setPages(pdfDto.getActualPageCount());
-            for (int i = 0; i < printCount; i++) {
-                pdfList.add(new PdfDto(pdfFile.getPath(), PageSizeEnum.A4, pdfDto.getPageCount(), sequence));
-            }
-        } catch (Exception e) {
-            log.error("请求出错", e);
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
-        }
-        return basicAttachment;
-    }
-
-    /**
-     * 删除附件
-     *
-     * @param basicAttachment
-     */
-    @Override
-    public void deleteAttachment(BasicAttachment basicAttachment) {
-        deleteAttachmentCommon(basicAttachment);
-    }
-
-    /**
-     * 批量删除附件
-     *
-     * @param basicAttachmentList
-     */
-    @Override
-    public void batchDeleteAttachment(List<BasicAttachment> basicAttachmentList) {
-        if (Objects.nonNull(basicAttachmentList) && basicAttachmentList.size() > 0) {
-            for (BasicAttachment basicAttachment : basicAttachmentList) {
-                deleteAttachmentCommon(basicAttachment);
-            }
-        }
-    }
-
-    /**
-     * 删除附件公用
-     *
-     * @param basicAttachment
-     */
-    public void deleteAttachmentCommon(BasicAttachment basicAttachment) {
-        if (Objects.nonNull(basicAttachment) && Objects.nonNull(basicAttachment.getPath())) {
-            JSONObject jsonObject = JSONObject.parseObject(basicAttachment.getPath());
-            String type = String.valueOf(jsonObject.get(SystemConstant.TYPE));
-            if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.OSS)) {//删除阿里云附件
-                ossUtil.ossDelete(jsonObject.get(SystemConstant.PATH).toString());
-                if (Objects.nonNull(jsonObject.get(SystemConstant.PDF_PATH))) {
-                    ossUtil.ossDelete(jsonObject.get(SystemConstant.PDF_PATH).toString());
-                }
-            } else {//删除服务器附件
-                File file = new File(jsonObject.get(SystemConstant.PATH).toString());
-                file.delete();
-                if (Objects.nonNull(jsonObject.get(SystemConstant.PDF_PATH))) {
-                    file = new File(jsonObject.get(SystemConstant.PDF_PATH).toString());
-                    file.delete();
-                }
-            }
-        }
-    }
-
-    /**
-     * 保存附件公用
-     *
-     * @param file
-     * @param md5
-     * @param type
-     * @param objId
-     * @return
-     */
-    public BasicAttachment saveAttachmentCommon(MultipartFile file, String md5, UploadFileEnum type, Long objId) {
-        if (Objects.isNull(type)) {
-            throw ExceptionResultEnum.ATTACHMENT_TYPE_EMPTY.exception();
-        }
-        BasicAttachment basicAttachment = null;
-        try {
-            SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
-            int temp = file.getOriginalFilename().lastIndexOf(".");
-            String fileName = file.getOriginalFilename().substring(0, temp);
-            String format = file.getOriginalFilename().substring(temp, file.getOriginalFilename().length());
-            List<String> attachmentTypeList = dictionaryConfig.sysDomain().getAttachmentType();
-            if (Objects.nonNull(format)) {
-                long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
-                if (count == 0) {
-                    throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
-                }
-            }
-            int attachmentLength = dictionaryConfig.sysDomain().getAttachmentLength().intValue();
-            if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
-                throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
-            }
-            long size = file.getSize();
-            BigDecimal b = new BigDecimal(size);
-            BigDecimal num = new BigDecimal(1024);
-            b = b.divide(num, 2, BigDecimal.ROUND_HALF_UP).divide(num, 2, BigDecimal.ROUND_HALF_UP)
-                    .setScale(2, BigDecimal.ROUND_HALF_UP);
-            double attachmentSize = dictionaryConfig.sysDomain().getAttachmentSize().doubleValue();
-            if (b.doubleValue() > attachmentSize) {
-                throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
-            }
-            log.info("fileName:{}", fileName);
-            log.info("format:{}", format);
-            log.info("size:{}", b);
-            log.info("getOriginalFilename:{}", file.getOriginalFilename());
-            String fileMd5 = DigestUtils.md5Hex(file.getBytes());
-            log.info("fileMd5:{}", fileMd5);
-            log.info("md5:{}", md5);
-            if (!Objects.equals(fileMd5, md5)) {
-                throw ExceptionResultEnum.MD5_EQUALS_FALSE.exception();
-            }
-            boolean oss = dictionaryConfig.sysDomain().isOss();
-            LocalDateTime nowTime = LocalDateTime.now();
-            StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss) {
-                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
-            }
-            stringJoiner.add(type.getTitle()).add(File.separator);
-//            else if (type == UploadFileEnum.PAPER) {//试卷需要单独
-//                stringJoiner.add(type.getTitle()).add(File.separator);
-//            } else if (type == UploadFileEnum.UPLOAD) {
-//                stringJoiner.add(type.getTitle()).add(File.separator);
-//            }
-            stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
-                    .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
-                    .add(String.format("%02d", nowTime.getDayOfMonth()));
-
-            JSONObject jsonObject = new JSONObject();
-            stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(format);
-            if (oss) {//上传至oss\
-                String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
-                ossUtil.ossUpload(dirName, file.getInputStream(), BinaryUtil.toBase64String(HexUtils.decodeHex(md5)));
-                jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
-                jsonObject.put(SystemConstant.PATH, dirName);
-            } else {//上传至服务器
-                File finalFile = new File(stringJoiner.toString());
-                if (!finalFile.exists()) {
-                    finalFile.getParentFile().mkdirs();
-                    finalFile.createNewFile();
-                }
-                FileUtils.copyInputStreamToFile(file.getInputStream(), finalFile);
-                jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
-                jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
-            }
-            jsonObject.put(SystemConstant.UPLOAD_TYPE, type);
-
-            basicAttachment = new BasicAttachment(jsonObject.toJSONString(), fileName, format, b, fileMd5, requestUser.getId(), objId);
-            save(basicAttachment);
-
-            // pdf需要读取总页数
-            Integer pages = 0;
-            if (".pdf".equals(format)) {
-                PdfReader pdfReader = new PdfReader(file.getInputStream());
-                pages = pdfReader.getNumberOfPages();
-            }
-            basicAttachment.setPages(pages);
-        } catch (Exception e) {
-            log.error("请求出错", e);
-            deleteAttachment(basicAttachment);
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
-        }
-        return basicAttachment;
-    }
-}

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

@@ -7,22 +7,22 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.dto.CardRuleDto;
 import com.qmth.distributed.print.business.entity.BasicCardRule;
-import com.qmth.distributed.print.business.entity.SysOrg;
-import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.enums.TemplateTypeEnum;
 import com.qmth.distributed.print.business.mapper.BasicCardRuleMapper;
 import com.qmth.distributed.print.business.service.BasicCardRuleService;
 import com.qmth.distributed.print.business.service.BasicTemplateOrgService;
-import com.qmth.distributed.print.business.service.CommonService;
-import com.qmth.distributed.print.business.util.ConvertUtil;
-import com.qmth.distributed.print.business.util.ServletUtil;
+import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysOrg;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import org.apache.commons.lang3.StringUtils;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.Objects;
 import java.util.Set;
@@ -41,14 +41,14 @@ public class BasicCardRuleServiceImpl extends ServiceImpl<BasicCardRuleMapper, B
     @Autowired
     private BasicTemplateOrgService basicTemplateOrgService;
 
-    @Autowired
-    private CommonService commonService;
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
 
     @Override
     public IPage<CardRuleDto> list(Boolean enable, String name, Long createTime, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Page<CardRuleDto> page = new Page<>(pageNumber, pageSize);
-        IPage<CardRuleDto> cardRuleDtoIPage = this.baseMapper.listPage(page, schoolId, enable, ConvertUtil.translateSpecificSign(name), createTime);
+        IPage<CardRuleDto> cardRuleDtoIPage = this.baseMapper.listPage(page, schoolId, enable, SystemConstant.translateSpecificSign(name), createTime);
         if (cardRuleDtoIPage.getRecords().size() > 0) {
             cardRuleDtoIPage.getRecords().forEach(m -> {
                 //查询适用学院
@@ -67,7 +67,7 @@ public class BasicCardRuleServiceImpl extends ServiceImpl<BasicCardRuleMapper, B
 //        if (StringUtils.isNotBlank(param)) {
 //            queryWrapper.lambda().like(BasicCardRule::getName, ConvertUtil.translateSpecificSign(param));
 //        }
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         return this.baseMapper.list(schoolId, param, orgIds);
     }
 
@@ -85,7 +85,7 @@ public class BasicCardRuleServiceImpl extends ServiceImpl<BasicCardRuleMapper, B
         cardRule.setSchoolId(schoolId);
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
 
-        if(cardRule.getTitleRule().length() > 200){
+        if (cardRule.getTitleRule().length() > 200) {
             throw ExceptionResultEnum.ERROR.exception("题卡标题规则长度不能超过200字符");
         }
 

+ 0 - 158
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicCourseServiceImpl.java

@@ -1,158 +0,0 @@
-package com.qmth.distributed.print.business.service.impl;
-
-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.CourseInfoDto;
-import com.qmth.distributed.print.business.entity.BasicCourse;
-import com.qmth.distributed.print.business.entity.ExamTask;
-import com.qmth.distributed.print.business.mapper.BasicCourseMapper;
-import com.qmth.distributed.print.business.service.BasicCourseService;
-import com.qmth.distributed.print.business.service.ExamDetailCourseService;
-import com.qmth.distributed.print.business.service.ExamTaskService;
-import com.qmth.distributed.print.business.util.ConvertUtil;
-import com.qmth.distributed.print.business.util.ServletUtil;
-import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import java.util.List;
-import java.util.Objects;
-
-/**
- * <p>
- * 课程表 服务实现类
- * </p>
- *
- * @author xf
- * @since 2021-03-23
- */
-@Service
-public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, BasicCourse> implements BasicCourseService {
-
-    @Autowired
-    private ExamTaskService examTaskService;
-    @Resource
-    private BasicCourseMapper basicCourseMapper;
-    @Autowired
-    private ExamDetailCourseService examDetailCourseService;
-
-    @Override
-    public IPage<BasicCourse> list(String code, String name, Integer pageNumber, Integer pageSize) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        code = ConvertUtil.translateSpecificSign(code);
-        name = ConvertUtil.translateSpecificSign(name);
-        Page<BasicCourse> page = new Page<>(pageNumber, pageSize);
-        IPage<BasicCourse> courseIPage = this.baseMapper.listPage(page, schoolId, ConvertUtil.translateSpecificSign(code), ConvertUtil.translateSpecificSign(name));
-        return courseIPage;
-    }
-
-    @Override
-    public List<BasicCourse> list(String param, Long printPlanId) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        if(printPlanId == null) {
-            QueryWrapper<BasicCourse> queryWrapper = new QueryWrapper<>();
-            queryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId);
-            if (StringUtils.isNotBlank(param)) {
-                queryWrapper.lambda().and(i -> i.like(BasicCourse::getCode, ConvertUtil.translateSpecificSign(param))
-                        .or().like(BasicCourse::getName, ConvertUtil.translateSpecificSign(param)));
-            }
-            return this.list(queryWrapper);
-        } else {
-            return examDetailCourseService.listCoursesByPrintPlanId(param, printPlanId);
-        }
-    }
-
-    @Override
-    public boolean saveCourse(BasicCourse course, Long userId) {
-        Long schoolId = course.getSchoolId();
-        course.setSchoolId(schoolId);
-
-        QueryWrapper<BasicCourse> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(BasicCourse::getSchoolId, course.getSchoolId()).eq(BasicCourse::getCode, course.getCode());
-        BasicCourse basicCourse = this.getOne(queryWrapper);
-
-        // 新增
-        if (Objects.isNull(course.getId())) {
-            if (basicCourse != null) {
-                throw ExceptionResultEnum.ERROR.exception("课程已存在");
-            }
-            course.setId(SystemConstant.getDbUuid());
-            course.setCreateId(userId);
-            course.setCreateTime(System.currentTimeMillis());
-        }
-        // 修改
-        else {
-            if (basicCourse != null && basicCourse.getId().longValue() != course.getId().longValue()) {
-                throw ExceptionResultEnum.ERROR.exception("课程已存在");
-            }
-
-            // 旧code是否已有命题任务
-            BasicCourse oldCourse = this.getById(course.getId());
-            List<ExamTask> taskList = examTaskService.listByCourseCode(oldCourse.getSchoolId(), oldCourse.getCode());
-            if (taskList != null && taskList.size() > 0) {
-                throw ExceptionResultEnum.ERROR.exception("课程绑定命题任务,不能修改");
-            }
-            course.setUpdateId(userId);
-            course.setUpdateTime(System.currentTimeMillis());
-        }
-        return this.saveOrUpdate(course);
-    }
-
-    @Override
-    public boolean remove(Long id) {
-        // code是否已有命题任务
-        BasicCourse course = this.baseMapper.selectById(id);
-        List<ExamTask> taskList = examTaskService.listByCourseCode(course.getSchoolId(), course.getCode());
-        if (taskList != null && taskList.size() > 0) {
-            throw ExceptionResultEnum.ERROR.exception("课程绑定命题任务,不能删除");
-        }
-        return this.removeById(id);
-    }
-
-    @Override
-    public List<BasicCourse> listCoursesByUserId(Long userId) {
-        return this.baseMapper.listCoursesByUserId(userId);
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public void verifyCourseInfo(Long schoolId, String courseCode, String courseName, Long userId) {
-        QueryWrapper<BasicCourse> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId).eq(BasicCourse::getCode, courseCode);
-
-        BasicCourse tmp = this.getOne(queryWrapper);
-        if (tmp != null) {
-            if (!courseName.equals(tmp.getName())) {
-                throw ExceptionResultEnum.ERROR
-                        .exception("课程代码和课程名称不匹配,课程代码为 :'" + courseCode + "',输入的课程名称 :'" + courseName + "',实际该代码对应的课程名称 :'" + tmp.getName() + "'。");
-            }
-        } else {
-            BasicCourse basicCourse = new BasicCourse();
-            basicCourse.setName(courseName);
-            basicCourse.setCode(courseCode);
-            basicCourse.setSchoolId(schoolId);
-            basicCourse.setId(SystemConstant.getDbUuid());
-            basicCourse.setCreateId(userId);
-            basicCourse.setCreateTime(System.currentTimeMillis());
-            this.saveOrUpdate(basicCourse);
-        }
-    }
-
-    @Override
-    public List<CourseInfoDto> findByUserLoginNameAndRealName(String loginName, String realName) {
-        System.out.println("---");
-        if (loginName == null){
-            loginName = "";
-        }
-        if (realName == null){
-            realName = "";
-        }
-        return basicCourseMapper.findByUserLoginNameAndRealName(loginName, realName);
-    }
-}

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

@@ -5,15 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.entity.BasicExamRule;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
-import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
 import com.qmth.distributed.print.business.mapper.BasicExamRuleMapper;
 import com.qmth.distributed.print.business.service.BasicExamRuleService;
 import com.qmth.distributed.print.business.service.ExamPrintPlanService;
-import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.util.JacksonUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 

+ 5 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicMessageServiceImpl.java

@@ -13,19 +13,19 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.entity.BasicMessage;
 import com.qmth.distributed.print.business.entity.ExamTask;
-import com.qmth.distributed.print.business.entity.SysConfig;
-import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.enums.MessageEnum;
 import com.qmth.distributed.print.business.mapper.BasicMessageMapper;
 import com.qmth.distributed.print.business.service.BasicMessageService;
-import com.qmth.distributed.print.business.service.CacheService;
 import com.qmth.distributed.print.business.service.ExamTaskService;
-import com.qmth.distributed.print.business.service.SysConfigService;
-import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysConfig;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.service.CacheService;
+import com.qmth.teachcloud.common.service.SysConfigService;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;

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

@@ -4,10 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.result.TemplatePrintInfoResult;
 import com.qmth.distributed.print.business.entity.BasicTemplateOrg;
-import com.qmth.distributed.print.business.entity.SysOrg;
 import com.qmth.distributed.print.business.mapper.BasicTemplateOrgMapper;
 import com.qmth.distributed.print.business.service.BasicTemplateOrgService;
 import com.qmth.distributed.print.business.enums.TemplateTypeEnum;
+import com.qmth.teachcloud.common.entity.SysOrg;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 

+ 16 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicTemplateServiceImpl.java

@@ -14,15 +14,21 @@ import com.qmth.distributed.print.business.enums.MakeMethodEnum;
 import com.qmth.distributed.print.business.enums.TemplateTypeEnum;
 import com.qmth.distributed.print.business.mapper.BasicTemplateMapper;
 import com.qmth.distributed.print.business.service.*;
-import com.qmth.distributed.print.business.util.ConvertUtil;
-import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicAttachment;
+import com.qmth.teachcloud.common.entity.SysOrg;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.service.BasicAttachmentService;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.util.ConvertUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.Objects;
 
@@ -40,9 +46,6 @@ public class BasicTemplateServiceImpl extends ServiceImpl<BasicTemplateMapper, B
     @Autowired
     private BasicTemplateOrgService basicTemplateOrgService;
 
-    @Autowired
-    private CommonService commonService;
-
     @Autowired
     private BasicAttachmentService basicAttachmentService;
 
@@ -52,11 +55,14 @@ public class BasicTemplateServiceImpl extends ServiceImpl<BasicTemplateMapper, B
     @Autowired
     private ExamCardDetailService examCardDetailService;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     @Override
     public IPage<TemplateDto> list(Boolean enable, String type, String name, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
         Page<TemplateDto> page = new Page<>(pageNumber, pageSize);
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        IPage<TemplateDto> templateDtoIPage = this.baseMapper.listPage(page, schoolId, enable, type, ConvertUtil.translateSpecificSign(name), startTime, endTime);
+        IPage<TemplateDto> templateDtoIPage = this.baseMapper.listPage(page, schoolId, enable, type, SystemConstant.translateSpecificSign(name), startTime, endTime);
         if (templateDtoIPage.getRecords().size() > 0) {
             templateDtoIPage.getRecords().forEach(m -> {
                 //查询适用学院
@@ -134,14 +140,14 @@ public class BasicTemplateServiceImpl extends ServiceImpl<BasicTemplateMapper, B
                 examCardParams.setType(CardTypeEnum.GENERIC); // 默认GENERIC
                 examCardParams.setTemplateId(template.getId());
                 examCardParams.setStatus(CardStatusEnum.SUBMIT); // 默认SUBMIT
-                examCardParams.setHtmlContent(commonService.readFileContent(attachment.getPath()));
+                examCardParams.setHtmlContent(teachcloudCommonService.readFileContent(attachment.getPath()));
                 examCardService.saveExamCard(examCardParams);
             } else {
                 examCard1.setTitle(template.getName());
                 examCardService.updateById(examCard1);
 
                 ExamCardDetail examCardDetail = examCardDetailService.getByCardId(examCard1.getId());
-                examCardDetail.setHtmlContent(commonService.readFileContent(attachment.getPath()));
+                examCardDetail.setHtmlContent(teachcloudCommonService.readFileContent(attachment.getPath()));
                 examCardDetailService.updateById(examCardDetail);
             }
         }
@@ -168,7 +174,7 @@ public class BasicTemplateServiceImpl extends ServiceImpl<BasicTemplateMapper, B
             if (basicAttachment == null) {
                 throw ExceptionResultEnum.ERROR.exception("附件数据异常");
             }
-            String url = commonService.filePreview(basicAttachment.getPath());
+            String url = teachcloudCommonService.filePreview(basicAttachment.getPath());
             basicTemplate.setUrl(url);
         }
         return basicTemplate;
@@ -178,7 +184,7 @@ public class BasicTemplateServiceImpl extends ServiceImpl<BasicTemplateMapper, B
     public Object readContent(Long attachmentId) {
         BasicAttachment attachment = basicAttachmentService.getById(attachmentId);
         if (attachment.getType().equals(".ftl") || attachment.getType().equals(".html")) {
-            String content = commonService.readFileContent(attachment.getPath());
+            String content = teachcloudCommonService.readFileContent(attachment.getPath());
             return content;
         }
         return null;

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

@@ -11,12 +11,12 @@ import com.aliyuncs.profile.IClientProfile;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.entity.BasicVerifyCode;
-import com.qmth.distributed.print.business.entity.SysConfig;
 import com.qmth.distributed.print.business.mapper.BasicVerifyCodeMapper;
 import com.qmth.distributed.print.business.service.BasicVerifyCodeService;
-import com.qmth.distributed.print.business.service.SysConfigService;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
+import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.service.SysConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -56,7 +56,7 @@ public class BasicVerifyCodeServiceImpl extends ServiceImpl<BasicVerifyCodeMappe
         if (basicVerifyCode != null) {
             Date oldCreateTime = new Date(basicVerifyCode.getCreateTime());
             Integer sendInterval = dictionaryConfig.smsDomain().getCodeSendInterval();
-            if ((new Date().getTime() - oldCreateTime.getTime()) < sendInterval * 1000) {
+            if ((System.currentTimeMillis() - oldCreateTime.getTime()) < sendInterval * 1000) {
                 throw ExceptionResultEnum.ERROR.exception("发送验证码过于频繁,请" + sendInterval + "秒之后再试");
             }
         }

+ 21 - 17
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java

@@ -9,16 +9,20 @@ import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.service.*;
-import com.qmth.distributed.print.business.util.ExcelUtil;
-import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.service.BasicAttachmentService;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.util.ExcelUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -49,17 +53,17 @@ public class ClientServiceImpl implements ClientService {
     private BasicAttachmentService basicAttachmentService;
 
     @Autowired
-    private CommonService commonService;
+    private PrintCommonService printCommonService;
 
     @Autowired
     private ExamPrintPlanService examPrintPlanService;
 
-    @Autowired
-    private ExamCardDetailService examCardDetailService;
-
     @Autowired
     private ExamStudentService examStudentService;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     @Override
     public IPage<ClientExamTaskDto> listTryTask(String machineCode, Long orgId, Long printPlanId, String courseCode, String paperNumber, Boolean isTry, Boolean isPass, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
@@ -139,7 +143,7 @@ public class ClientServiceImpl implements ClientService {
     @Override
     public IPage<ClientPrintTaskDto> listClientPrintTask(String machineCode, String orgId, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Page<ClientPrintTaskDto> page = new Page<>(pageNumber, pageSize);
         IPage<ClientPrintTaskDto> pirntTaskDtoIPage = examPrintPlanService.listClientPrintTask(page, schoolId, machineCode, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, isDownload, validate, orgIds);
         return pirntTaskDtoIPage;
@@ -187,7 +191,7 @@ public class ClientServiceImpl implements ClientService {
                     throw ExceptionResultEnum.ERROR.exception("考场pdf文件记录异常");
                 }
 
-                Map<String, String> totalPathUrl = commonService.filePreviewByAttachmentId(examDetail.getAttachmentId(), false);
+                Map<String, String> totalPathUrl = teachcloudCommonService.filePreviewByAttachmentId(examDetail.getAttachmentId(), false);
                 if (StringUtils.isBlank(totalPathUrl.get("url"))) {
                     throw ExceptionResultEnum.ERROR.exception("考场pdf文件丢失");
                 }
@@ -244,7 +248,7 @@ public class ClientServiceImpl implements ClientService {
                         clientPrintBackupDataDto.setCourseName(examDetailCours.get("courseName").toString());
                         clientPrintBackupDataDto.setPaperNumber(examDetailCours.get("paperNumber").toString());
                         clientPrintBackupDataDto.setPaperType(backupCard.get("name").toString());
-                        Map<String, String> urlMap = commonService.filePreviewByAttachmentId(Long.valueOf(backupCard.get("attachmentId").toString()), false);
+                        Map<String, String> urlMap = teachcloudCommonService.filePreviewByAttachmentId(Long.valueOf(backupCard.get("attachmentId").toString()), false);
                         clientPrintBackupDataDto.setMd5(urlMap.get("md5"));
                         clientPrintBackupDataDto.setUrl(urlMap.get("url"));
                         cardBackupList.add(clientPrintBackupDataDto);
@@ -325,7 +329,7 @@ public class ClientServiceImpl implements ClientService {
     @Override
     public List<Map<String, Object>> getPrintDataBatch(String machineCode, String orgId, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         List<ClientPrintTaskDto> pirntTaskDtoList = examPrintPlanService.listClientPrintTask(schoolId, machineCode, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, isDownload, validate, orgIds);
         // 撤回
         long count = pirntTaskDtoList.stream().map(m -> {
@@ -353,7 +357,7 @@ public class ClientServiceImpl implements ClientService {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         ExamDetail examDetail = examDetailService.getById(examDetailId);
         BasicAttachment attachment = basicAttachmentService.getById(examDetail.getAttachmentId());
-        return attachment == null ? null : commonService.filePreviewByAttachmentId(attachment.getId(), false);
+        return attachment == null ? null : teachcloudCommonService.filePreviewByAttachmentId(attachment.getId(), false);
     }
 
     @Override
@@ -503,7 +507,7 @@ public class ClientServiceImpl implements ClientService {
     @Override
     public void exportClientPrintTask(HttpServletResponse response, String machineCode, String orgId, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate) throws Exception {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         List<ClientPrintTaskDto> printTaskDtoIList = examPrintPlanService.listClientPrintTask(schoolId, machineCode, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, isDownload, validate, orgIds);
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         printTaskDtoIList = printTaskDtoIList.stream().map(m -> {
@@ -539,7 +543,7 @@ public class ClientServiceImpl implements ClientService {
     @Override
     public IPage<ClientPrintStatisticsDto> listClientPrintStatistics(String orgId, String printPlanId, String examPlace, Long examStartTime, Long examEndTime, String courseCode, String paperNumber, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Page<ClientPrintStatisticsDto> page = new Page<>(pageNumber, pageSize);
         IPage<ClientPrintStatisticsDto> statisticsDtoIPage = examPrintPlanService.listClientPrintStatistics(page, schoolId, printPlanId, examPlace, examStartTime, examEndTime, courseCode, paperNumber, orgIds);
         return statisticsDtoIPage;
@@ -565,7 +569,7 @@ public class ClientServiceImpl implements ClientService {
             for (Map attaMap : attachementIds) {
                 String name = attaMap.get("name").toString();
                 String attachmentId = attaMap.get("attachmentId").toString();
-                Map<String, String> stringMap = commonService.filePreviewByAttachmentId(Long.valueOf(attachmentId), false);
+                Map<String, String> stringMap = teachcloudCommonService.filePreviewByAttachmentId(Long.valueOf(attachmentId), false);
                 StringJoiner sj = new StringJoiner(SystemConstant.DELIMITER);
                 String key = sj.add(courseCode).add(paperNumber).add(name).toString();
                 map.put(key, stringMap);
@@ -588,9 +592,9 @@ public class ClientServiceImpl implements ClientService {
         for (Map path : pathList) {
             String printType = path.get("printType").toString();
             if (printType.equals(contentMap.get("type").toString())) {
-                vMap.put("htmlUrl", commonService.filePreviewByPathAndType(path.get("htmlPath").toString(), path.get("type").toString(), false));
+                vMap.put("htmlUrl", teachcloudCommonService.filePreviewByPathAndType(path.get("htmlPath").toString(), path.get("type").toString(), false));
                 vMap.put("htmlMd5", path.get("htmlMd5"));
-                vMap.put("pdfUrl", commonService.filePreviewByPathAndType(path.get("pdfPath").toString(), path.get("type").toString(), false));
+                vMap.put("pdfUrl", teachcloudCommonService.filePreviewByPathAndType(path.get("pdfPath").toString(), path.get("type").toString(), false));
                 vMap.put("pdfMd5", path.get("pdfMd5"));
             }
         }
@@ -627,7 +631,7 @@ public class ClientServiceImpl implements ClientService {
     private List<ClientPrintDataDto> spliceCardContent(List<Map> studentList) {
         List<ClientPrintDataDto> cardList = studentList.stream().map(m -> {
             ClientPrintDataDto printDataDto = newClientPrintDataDto(m);
-            Map<String, String> urlMap = commonService.filePreviewByAttachmentId(Long.valueOf(m.get("attachmentId").toString()), false);
+            Map<String, String> urlMap = teachcloudCommonService.filePreviewByAttachmentId(Long.valueOf(m.get("attachmentId").toString()), false);
             printDataDto.setMd5(urlMap.get("md5"));
             printDataDto.setUrl(urlMap.get("url"));
             return printDataDto;

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

@@ -9,8 +9,6 @@ import com.qmth.distributed.print.business.bean.dto.SyncExamCardDto;
 import com.qmth.distributed.print.business.bean.dto.SyncExamStudentDto;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
-import com.qmth.distributed.print.business.enums.TaskResultEnum;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.util.HttpKit;
 import com.qmth.teachcloud.common.SignatureEntityTest;
@@ -18,6 +16,9 @@ import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicSchool;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.service.CacheService;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;

+ 12 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java

@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.dto.CardCustDto;
 import com.qmth.distributed.print.business.bean.dto.CardDetailDto;
 import com.qmth.distributed.print.business.bean.dto.SyncExamCardDto;
-import com.qmth.distributed.print.business.bean.params.ArraysParams;
 import com.qmth.distributed.print.business.bean.params.ExamCardParams;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.CardStatusEnum;
@@ -15,14 +14,20 @@ import com.qmth.distributed.print.business.enums.CardTypeEnum;
 import com.qmth.distributed.print.business.enums.MakeMethodEnum;
 import com.qmth.distributed.print.business.mapper.ExamCardMapper;
 import com.qmth.distributed.print.business.service.*;
-import com.qmth.distributed.print.business.util.ServletUtil;
+import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicAttachment;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.service.BasicAttachmentService;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.util.*;
@@ -50,12 +55,12 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
     @Autowired
     private ExamTaskService examTaskService;
 
-    @Autowired
-    private CommonService commonService;
-
     @Autowired
     private BasicAttachmentService basicAttachmentService;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     @Transactional
     @Override
     public String saveExamCard(ExamCardParams examCardParams) {
@@ -241,10 +246,10 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
             ExamCardDetail examCardDetail = examCardDetailService.getByCardId(cardId);
             BasicAttachment attachment = basicAttachmentService.getById(examCardDetail.getCustAttachmentId());
             String fileName = attachment.getName() + attachment.getType();
-            commonService.copyFile(sj.toString(),fileName, attachment);
+            teachcloudCommonService.copyFile(sj.toString(),fileName, attachment);
         }
         // 压缩
-        commonService.downloadFileAndZip(response, rootPath, time);
+        teachcloudCommonService.downloadFileAndZip(response, rootPath, time);
     }
 
     @Override
@@ -252,7 +257,6 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
         return this.baseMapper.listSyncCardByCourseCodeAndPaperNumber(schoolId, courseCode, paperNumber);
     }
 
-
     /**
      * 数据验证
      *

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

@@ -3,12 +3,13 @@ package com.qmth.distributed.print.business.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.distributed.print.business.entity.BasicCourse;
 import com.qmth.distributed.print.business.entity.ExamDetailCourse;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.mapper.ExamDetailCourseMapper;
 import com.qmth.distributed.print.business.service.ExamDetailCourseService;
-import com.qmth.distributed.print.business.util.ConvertUtil;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicCourse;
+import com.qmth.teachcloud.common.util.ConvertUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -55,12 +56,12 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
 
     @Override
     public List<BasicCourse> listCoursesByPrintPlanId(String param, Long printPlanId) {
-        return this.baseMapper.listCoursesByPrintPlanId(ConvertUtil.translateSpecificSign(param), printPlanId);
+        return this.baseMapper.listCoursesByPrintPlanId(SystemConstant.translateSpecificSign(param), printPlanId);
     }
 
     @Override
     public List<String> listPaperNumberByPrintPlanId(String param, Long printPlanId) {
-        return this.baseMapper.listPaperNumberByPrintPlanId(ConvertUtil.translateSpecificSign(param), printPlanId);
+        return this.baseMapper.listPaperNumberByPrintPlanId(SystemConstant.translateSpecificSign(param), printPlanId);
     }
 
     @Override

+ 21 - 13
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -15,14 +15,21 @@ import com.qmth.distributed.print.business.bean.result.SummarizedDataResult;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
-import com.qmth.distributed.print.business.enums.TaskTypeEnum;
 import com.qmth.distributed.print.business.mapper.ExamDetailMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
-import com.qmth.distributed.print.business.util.ConvertUtil;
-import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicAttachment;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.service.BasicAttachmentService;
+import com.qmth.teachcloud.common.service.CacheService;
+import com.qmth.teachcloud.common.service.TBTaskService;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.util.ConvertUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.HorizontalAlignment;
 import org.apache.poi.xssf.usermodel.*;
@@ -66,8 +73,6 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     private ExamPrintPlanService examPrintPlanService;
     @Resource
     private BasicAttachmentService basicAttachmentService;
-    @Resource
-    private CommonService commonService;
 
     @Resource
     TBTaskService tbTaskService;
@@ -83,6 +88,9 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Autowired
     ClientStatusService clientStatusService;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     private final static Logger log = LoggerFactory.getLogger(ExamDetailServiceImpl.class);
 
     @Transactional(rollbackFor = Exception.class)
@@ -107,7 +115,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Override
     public IPage<PrintTaskDto> listPrintTask(Long printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Long printStartTime, Long printEndTime, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Page<PrintTaskDto> page = new Page<>(pageNumber, pageSize);
         IPage<PrintTaskDto> pirntTaskDtoIPage = this.baseMapper.listPrintTask(page, schoolId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime,printStartTime, printEndTime,  orgIds);
         return pirntTaskDtoIPage;
@@ -116,7 +124,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Override
     public PrintTaskTotalDto taskTotalData(Long printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Long printStartTime, Long printEndTime) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         PrintTaskTotalDto printTaskTotalDto = this.baseMapper.taskTotalData(schoolId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printStartTime, printEndTime, orgIds);
 
         if (printTaskTotalDto != null) {
@@ -132,7 +140,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
         ExamDetail examDetail = this.getById(examDetailId);
         if (examDetail.getAttachmentId() != null) {
             BasicAttachment attachment = basicAttachmentService.getById(examDetail.getAttachmentId());
-            return attachment == null ? null : commonService.filePreview(attachment.getPath());
+            return attachment == null ? null : teachcloudCommonService.filePreview(attachment.getPath());
         }
         return null;
     }
@@ -273,8 +281,8 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Transactional(rollbackFor = Exception.class)
     @Override
     public IPage<ExaminationDetailResult> findExaminationDetail(Long schoolId, Long printPlanId, String courseCode, String paperNumber, String examPlace, String examRoom, String studentParams, int pageNumber, int pageSize) {
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
-        return examDetailMapper.findDetailPage(new Page<>(pageNumber, pageSize), schoolId, printPlanId, courseCode, paperNumber, examPlace, examRoom, ConvertUtil.translateSpecificSign(studentParams), orgIds);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+        return examDetailMapper.findDetailPage(new Page<>(pageNumber, pageSize), schoolId, printPlanId, courseCode, paperNumber, examPlace, examRoom, SystemConstant.translateSpecificSign(studentParams), orgIds);
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -290,7 +298,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
         QueryWrapper<ExamDetail> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ExamDetail::getSchoolId, schoolId);
         if (StringUtils.isNotBlank(param)) {
-            queryWrapper.lambda().like(ExamDetail::getExamPlace, ConvertUtil.translateSpecificSign(param));
+            queryWrapper.lambda().like(ExamDetail::getExamPlace, SystemConstant.translateSpecificSign(param));
         }
         if (printPlanId != null) {
             queryWrapper.lambda().like(ExamDetail::getPrintPlanId, printPlanId);
@@ -306,7 +314,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
         QueryWrapper<ExamDetail> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ExamDetail::getSchoolId, schoolId);
         if (StringUtils.isNotBlank(param)) {
-            queryWrapper.lambda().like(ExamDetail::getExamRoom, ConvertUtil.translateSpecificSign(param));
+            queryWrapper.lambda().like(ExamDetail::getExamRoom, SystemConstant.translateSpecificSign(param));
         }
         if (printPlanId != null) {
             queryWrapper.lambda().like(ExamDetail::getPrintPlanId, printPlanId);
@@ -716,7 +724,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             throw ExceptionResultEnum.ERROR.exception("该任务已被撤回");
         }
         Page<ClientExamStudentDto> page = new Page<>(pageNumber, pageSize);
-        IPage<ClientExamStudentDto> examStudentDtoIPage = this.baseMapper.listClientExamStudentPage(page, schoolId, examDetailId, ConvertUtil.translateSpecificSign(ticketNumber), ConvertUtil.translateSpecificSign(studentName), courseCode);
+        IPage<ClientExamStudentDto> examStudentDtoIPage = this.baseMapper.listClientExamStudentPage(page, schoolId, examDetailId, SystemConstant.translateSpecificSign(ticketNumber), SystemConstant.translateSpecificSign(studentName), courseCode);
         return examStudentDtoIPage;
     }
 

+ 25 - 22
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java

@@ -14,18 +14,23 @@ import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.bean.result.PrintPlanResult;
 import com.qmth.distributed.print.business.bean.result.TemplatePrintInfoResult;
-import com.qmth.distributed.print.business.entity.*;
-import com.qmth.distributed.print.business.enums.ClassifyEnum;
+import com.qmth.distributed.print.business.entity.BasicExamRule;
+import com.qmth.distributed.print.business.entity.ClientPrintData;
+import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
 import com.qmth.distributed.print.business.enums.TemplateTypeEnum;
 import com.qmth.distributed.print.business.mapper.ExamPrintPlanMapper;
 import com.qmth.distributed.print.business.service.*;
-import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.BasicSchool;
+import com.qmth.teachcloud.common.entity.SysOrg;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ClassifyEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.service.BasicSchoolService;
+import com.qmth.teachcloud.common.service.*;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -51,17 +56,12 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     @Resource
     private ExamDetailService examDetailService;
     @Resource
-    private SysUserService sysUserService;
-    @Resource
     private SysOrgService sysOrgService;
     @Resource
     private BasicTemplateOrgService basicTemplateOrgService;
     @Resource
     private BasicSchoolService basicSchoolService;
 
-    @Autowired
-    private CommonService commonService;
-
     @Autowired
     private BasicAttachmentService basicAttachmentService;
 
@@ -77,10 +77,13 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     @Autowired
     private DataSyncService dataSyncService;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public IPage<PrintPlanResult> printPlanPage(Long schoolId, Long printPlanId, PrintPlanStatusEnum status, Long startTime, Long endTime, int pageNumber, int pageSize) {
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         IPage<PrintPlanResult> page = examPrintPlanMapper.findPrintPlanPage(new Page<>(pageNumber, pageSize), schoolId, printPlanId, status, startTime, endTime, orgIds);
         List<PrintPlanResult> list = page.getRecords();
         for (PrintPlanResult printPlanResult : list) {
@@ -109,8 +112,8 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
             printPlanBriefList.add(new PrintPlanBrief(id, name ,status));
         }*/
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
-        String[] status = {PrintPlanStatusEnum.READY.name(), PrintPlanStatusEnum.PRINTING.name(),PrintPlanStatusEnum.PRINT_FINISH.name()};
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+        String[] status = {PrintPlanStatusEnum.READY.name(), PrintPlanStatusEnum.PRINTING.name(), PrintPlanStatusEnum.PRINT_FINISH.name()};
         List<PrintPlanBrief> list = this.baseMapper.list(schoolId, source, module, status, orgIds);
         return list;
     }
@@ -234,7 +237,7 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
         ExamPrintPlan printPlan = this.getOne(printPlanQueryWrapper);
         if (id == null || id == 0) {
             // 没有印刷计划id -> 新增印刷计划
-            if(printPlan != null){
+            if (printPlan != null) {
                 throw ExceptionResultEnum.ERROR.exception("印刷计划名称已存在");
             }
             examPrintPlan.setId(SystemConstant.getDbUuid());
@@ -246,7 +249,7 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
             if (tmp == null) {
                 throw ExceptionResultEnum.ERROR.exception("印刷计划id不存在");
             }
-            if(printPlan != null && id.longValue() != printPlan.getId().longValue()){
+            if (printPlan != null && id.longValue() != printPlan.getId().longValue()) {
                 throw ExceptionResultEnum.ERROR.exception("印刷计划名称已存在");
             }
 
@@ -315,10 +318,10 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
             for (Map map : variableList) {
                 String type = map.get("type").toString();
                 String templateId = map.get("templateId").toString();
-                if(ClassifyEnum.SIGN.name().equals(type) && StringUtils.isNotBlank(templateId)){
+                if (ClassifyEnum.SIGN.name().equals(type) && StringUtils.isNotBlank(templateId)) {
                     record.setIncluedSign(true);
                 }
-                if(ClassifyEnum.PACKAGE.name().equals(type) && StringUtils.isNotBlank(templateId)){
+                if (ClassifyEnum.PACKAGE.name().equals(type) && StringUtils.isNotBlank(templateId)) {
                     record.setIncluedPackage(true);
                 }
             }
@@ -328,7 +331,7 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
             for (Map map : ordinaryList) {
                 String type = map.get("type").toString();
                 String templateId = map.get("templateId").toString();
-                if(ClassifyEnum.CHECK_IN.name().equals(type) && StringUtils.isNotBlank(templateId)){
+                if (ClassifyEnum.CHECK_IN.name().equals(type) && StringUtils.isNotBlank(templateId)) {
                     record.setIncluedCheckin(true);
                 }
             }
@@ -348,7 +351,7 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     @Override
     public ClientPrintTaskTotalDto clientTaskTotalData(String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate, String machineCode) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         // 以下状态考场状态不可查询
         String[] examDetailStatus = new String[]{ExamDetailStatusEnum.NEW.name(), PrintPlanStatusEnum.READY.name()};
         ClientPrintTaskTotalDto clientPrintTaskTotalDto = this.baseMapper.clientTaskTotalData(schoolId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, isDownload, validate, machineCode, orgIds, examDetailStatus);
@@ -377,14 +380,14 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     @Override
     public ClientPrintStatisticsTotalDto clientStatisticsTotalData(String printPlanId, String examPlace, Long examStartTime, Long examEndTime, String courseCode, String paperNumber) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         // 以下状态考场状态不可查询
         String[] examDetailStatus = new String[]{ExamDetailStatusEnum.NEW.name(), PrintPlanStatusEnum.READY.name()};
         ClientPrintStatisticsTotalDto clientPrintStatisticsTotalDto = this.baseMapper.clientStatisticsTotalData(schoolId, printPlanId, examPlace, examStartTime, examEndTime, courseCode, paperNumber, orgIds, examDetailStatus);
 
         if (clientPrintStatisticsTotalDto != null) {
             String paperNumberStrs = clientPrintStatisticsTotalDto.getPaperNumberAndType();
-            if(StringUtils.isNotBlank(paperNumberStrs)){
+            if (StringUtils.isNotBlank(paperNumberStrs)) {
                 String[] paperNumbers = paperNumberStrs.split(",");
                 Set<String> paperNumberSet = new HashSet<>(Arrays.asList(paperNumbers));
                 clientPrintStatisticsTotalDto.setPaperCount(paperNumberSet.size());
@@ -426,12 +429,12 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
         String attachmentId = map.get("attachmentId").toString();
         BasicAttachment attachment = basicAttachmentService.getById(attachmentId);
         if (attachment.getType().equals(".ftl") || attachment.getType().equals(".html")) {
-            String content = commonService.readFileContent(attachment.getPath());
+            String content = teachcloudCommonService.readFileContent(attachment.getPath());
             fMap.put("content", content);
             fMap.put("utl", null);
         } else if (attachment.getType().equals(".pdf")) {
             fMap.put("content", null);
-            Map<String, String> stringMap = commonService.filePreviewByAttachmentId(Long.valueOf(attachmentId), false);
+            Map<String, String> stringMap = teachcloudCommonService.filePreviewByAttachmentId(Long.valueOf(attachmentId), false);
             fMap.putAll(stringMap);
         } else {
             throw ExceptionResultEnum.ERROR.exception("不支持的类型");

+ 16 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java

@@ -11,15 +11,19 @@ import com.qmth.distributed.print.business.bean.params.RelatePaperParam;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
-import com.qmth.distributed.print.business.enums.TaskTypeEnum;
 import com.qmth.distributed.print.business.mapper.ExamTaskDetailMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
-import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.service.TBTaskService;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -56,7 +60,8 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
     private ExamStudentService examStudentService;
 
     @Autowired
-    private CommonService commonService;
+    @Lazy
+    private PrintCommonService printCommonService;
 
     @Resource
     private AsyncCreatePdfTempleteService asyncCreatePdfTempleteService;
@@ -70,6 +75,9 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
     @Autowired
     private ExamTaskPaperLogService examTaskPaperLogService;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     @Transactional
     @Override
     public boolean enable(ExamTaskDetail examTaskDetail) {
@@ -77,8 +85,8 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
         List<ExamDetail> examDetails = examDetailService.listByCourseCodeAndPaperNumber(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber());
         if (examDetails != null && examDetails.size() > 0) {
             // 有考场提交打印,不能禁用启用
-            long count = examDetails.stream().filter(m-> !ExamDetailStatusEnum.NEW.name().equals(m.getStatus().name()) && !ExamDetailStatusEnum.READY.name().equals(m.getStatus().name())).count();
-            if(count > 0){
+            long count = examDetails.stream().filter(m -> !ExamDetailStatusEnum.NEW.name().equals(m.getStatus().name()) && !ExamDetailStatusEnum.READY.name().equals(m.getStatus().name())).count();
+            if (count > 0) {
                 throw ExceptionResultEnum.ERROR.exception("有考场已提交打印,不能启用/禁用");
             }
 
@@ -148,7 +156,7 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
         }
         ExamTask examTask = examTaskService.getById(paperParam.getExamTaskId());
         // 校验课程关联考场,是否已经提交打印
-        Boolean isCreate = commonService.checkExamDetailStatus(examTask.getSchoolId(), examPrintPlan.getId(), examTask.getCourseCode(), examTask.getPaperNumber());
+        Boolean isCreate = printCommonService.checkExamDetailStatus(examTask.getSchoolId(), examPrintPlan.getId(), examTask.getCourseCode(), examTask.getPaperNumber());
         if (isCreate) {
             // 提交印刷的考场,不允许修改关联试卷
             List<ExamDetail> examDetails = examDetailService.listByPrintPlanIdAndCourseCodeAndPaperNumber(examTask.getSchoolId(), paperParam.getPrintPlanId(), examTask.getCourseCode(), examTask.getPaperNumber());
@@ -203,7 +211,7 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
     @Override
     public IPage<ExamTaskDetailDto> list(String relateType, Long printPlanId, String courseCode, String paperNumber, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Page<ExamTaskDetailDto> page = new Page<>(pageNumber, pageSize);
         IPage<ExamTaskDetailDto> examDetailDtoIPage = this.baseMapper.listPage(page, schoolId, relateType, printPlanId, courseCode, paperNumber, orgIds);
         examDetailDtoIPage.getRecords().stream().map(m -> {
@@ -266,7 +274,7 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
                         }
                     }
                     if (StringUtils.isNotBlank(attachmentId)) {
-                        return commonService.filePreviewByAttachmentId(Long.valueOf(attachmentId), false);
+                        return teachcloudCommonService.filePreviewByAttachmentId(Long.valueOf(attachmentId), false);
                     }
                 }
             }

+ 33 - 28
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1,6 +1,5 @@
 package com.qmth.distributed.print.business.service.impl;
 
-import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -17,15 +16,20 @@ import com.qmth.distributed.print.business.mapper.ExamTaskMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
 import com.qmth.distributed.print.business.templete.execute.AsyncPaperReviewPdfExportService;
-import com.qmth.distributed.print.business.util.ConvertUtil;
-import com.qmth.distributed.print.business.util.ExcelUtil;
-import com.qmth.distributed.print.business.util.ServletUtil;
-import com.qmth.distributed.print.business.util.excel.ExcelError;
+import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
+import com.qmth.teachcloud.common.bean.dto.CourseInfoDto;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.RoleTypeEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.service.*;
+import com.qmth.teachcloud.common.util.ExcelUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.common.util.excel.ExcelError;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -36,8 +40,6 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -68,7 +70,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     private BasicAttachmentService basicAttachmentService;
 
     @Autowired
-    private CommonService commonService;
+    @Lazy
+    private PrintCommonService printCommonService;
 
     @Resource
     ExamTaskMapper examTaskMapper;
@@ -115,6 +118,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Resource
     AsyncPaperReviewPdfExportService asyncPaperReviewPdfExportService;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
 
     @Override
     public List<ExamTask> listByCourseCode(Long schoolId, String code) {
@@ -126,7 +131,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Override
     public IPage<ExamTaskDto> list(Boolean enable, String status, Long cardRuleId, String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Page<ExamTaskDto> page = new Page<>(pageNumber, pageSize);
         IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listPage(page, schoolId, enable, status, cardRuleId, courseCode, paperNumber, startTime, endTime, orgIds);
         return examTaskDtoIPage;
@@ -141,7 +146,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             queryWrapperExamTask.lambda().eq(ExamTask::getSchoolId, schoolId);
             List<String> list = new ArrayList<>();
             if (StringUtils.isNotBlank(param)) {
-                queryWrapperExamTask.lambda().and(i -> i.like(ExamTask::getCourseCode, ConvertUtil.translateSpecificSign(param)).or().like(ExamTask::getCourseName, ConvertUtil.translateSpecificSign(param)));
+                queryWrapperExamTask.lambda().and(i -> i.like(ExamTask::getCourseCode, SystemConstant.translateSpecificSign(param)).or().like(ExamTask::getCourseName, SystemConstant.translateSpecificSign(param)));
             }
             List<ExamTask> examTasks = this.list(queryWrapperExamTask);
             if (examTasks != null && examTasks.size() > 0) {
@@ -153,8 +158,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             queryWrapperExamDetailCourse.lambda().eq(ExamDetailCourse::getSchoolId, schoolId);
             List<String> list2 = new ArrayList<>();
             if (StringUtils.isNotBlank(param)) {
-                queryWrapperExamDetailCourse.lambda().and(i -> i.like(ExamDetailCourse::getCourseCode, ConvertUtil.translateSpecificSign(param))
-                        .or().like(ExamDetailCourse::getCourseName, ConvertUtil.translateSpecificSign(param)));
+                queryWrapperExamDetailCourse.lambda().and(i -> i.like(ExamDetailCourse::getCourseCode, SystemConstant.translateSpecificSign(param))
+                        .or().like(ExamDetailCourse::getCourseName, SystemConstant.translateSpecificSign(param)));
             }
             List<ExamDetailCourse> ExamDetailCourses = examDetailCourseService.list(queryWrapperExamDetailCourse);
             if (ExamDetailCourses != null && ExamDetailCourses.size() > 0) {
@@ -170,7 +175,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Override
     public List<BlurryUserDto> listUser(String param) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        return this.baseMapper.listUser(schoolId, ConvertUtil.translateSpecificSign(param));
+        return this.baseMapper.listUser(schoolId, SystemConstant.translateSpecificSign(param));
     }
 
     @Override
@@ -250,7 +255,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             }
         } else {
             // 试卷编号生成规则:年月日(例如:20100419)+0000(例如:0001)顺序编号
-            String paperNumber = commonService.createPaperNumber(schoolId);
+            String paperNumber = printCommonService.createPaperNumber(schoolId);
             examTask.setPaperNumber(paperNumber);
         }
 
@@ -328,7 +333,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 }
             }
             if (excelErrorTemp.size() > 0) {
-                List<String> errors = excelErrorTemp.stream().map(m-> m.getExcelErrorType()).collect(Collectors.toList());
+                List<String> errors = excelErrorTemp.stream().map(m -> m.getExcelErrorType()).collect(Collectors.toList());
                 throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(errors));
             }
             return finalExcelList;
@@ -477,7 +482,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 paperNumbers.add(userMap.get("paperNumber"));
             } else {
                 // 试卷编号生成规则:年月日(例如:20100419)+0000(例如:0001)顺序编号
-                String paperNumber = commonService.createPaperNumber(schoolId);
+                String paperNumber = printCommonService.createPaperNumber(schoolId);
                 userMap.put("paperNumber", paperNumber);
             }
             examTask.setPaperNumber(userMap.get("paperNumber"));
@@ -599,7 +604,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     public IPage<ExamTaskDto> listTaskApply(String auditStatus, String reviewStatus, Long cardRuleId, String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Page<ExamTaskDto> page = new Page<>(pageNumber, pageSize);
         String[] strings = new String[]{ExamStatusEnum.NEW.name(), ExamStatusEnum.FINISH.name()};
         IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listTaskApply(page, schoolId, auditStatus, reviewStatus, cardRuleId, courseCode, paperNumber, startTime, endTime, strings, sysUser.getId(), orgIds);
@@ -609,7 +614,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Override
     public IPage<ExamTaskDto> listTaskReviewUnaudited(String courseCode, String paperNumber, Long userId, Long cardRuleId, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Page<ExamTaskDto> page = new Page<>(pageNumber, pageSize);
         IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listTaskReviewUnaudited(page, schoolId, courseCode, paperNumber, userId, cardRuleId, startTime, endTime, orgIds);
         return examTaskDtoIPage;
@@ -618,7 +623,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Override
     public IPage<ExamTaskDto> listTaskReviewAudited(String reviewStatus, String courseCode, String paperNumber, Long userId, Long cardRuleId, Long startTime, Long endTime, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Page<ExamTaskDto> page = new Page<>(pageNumber, pageSize);
         IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listTaskReviewAudited(page, schoolId, reviewStatus, courseCode, paperNumber, userId, cardRuleId, startTime, endTime, orgIds);
         return examTaskDtoIPage;
@@ -699,7 +704,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 // 校验是否可以提交打印状态
                 ExamTask examTask = this.getById(examTaskId);
                 try {
-                    commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
+                    printCommonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
                 } catch (IOException e) {
                     log.error("调用生成pdf异常");
                 }
@@ -750,7 +755,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         List<SysRole> list = sysUserRoleService.listRoleByUserId(sysUser.getId());
         boolean containsQuestionTeacher = list.stream().filter(m -> RoleTypeEnum.QUESTION_TEACHER.equals(m.getType())).count() > 0;
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Page<ExamTaskDetailDto> page = new Page<>(pageNumber, pageSize);
         IPage<ExamTaskDetailDto> examTaskDtoIPage = this.baseMapper.listTaskPaper(page, schoolId, courseCode, paperNumber, startTime, endTime, orgIds, containsQuestionTeacher, sysUser.getId());
         return examTaskDtoIPage;
@@ -970,7 +975,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     throw ExceptionResultEnum.ERROR.exception("附件数据异常");
                 }
                 String fileName = attachment.getName() + "-" + name + attachment.getType();
-                File file = commonService.copyFile(rootPath, fileName, attachment);
+                File file = teachcloudCommonService.copyFile(rootPath, fileName, attachment);
                 fileList.add(file);
             }
         }
@@ -988,7 +993,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     }
                     BasicAttachment attachment = basicAttachmentService.getById(basicTemplate.getAttachmentId());
                     String fileName = attachment.getName() + attachment.getType();
-                    File file = commonService.copyFile(rootPath, fileName, attachment);
+                    File file = teachcloudCommonService.copyFile(rootPath, fileName, attachment);
                     fileList.add(file);
                 }
             }
@@ -1006,7 +1011,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             throw ExceptionResultEnum.ERROR.exception("没有可导出文件");
         }
 
-        commonService.downloadFileAndZip(response, rootPath, fileList);
+        teachcloudCommonService.downloadFileAndZip(response, rootPath, fileList);
     }
 
     @Override
@@ -1020,7 +1025,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
     @Override
     public IPage<ClientExamTaskDto> listTryTask(Long schoolId, String machineCode, Long orgId, Long printPlanId, String courseCode, String paperNumber, Boolean isTry, Boolean isPass, Integer pageNumber, Integer pageSize) {
-        Set<Long> orgIds = commonService.listSubOrgIds(orgId);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(orgId);
         Page<ClientExamTaskDto> page = new Page<>(pageNumber, pageSize);
         // 印刷任务状态为印刷中(PRINTING),考场状态为待打印(WAITING)
         String[] examDetailstatus = {ExamDetailStatusEnum.NEW.name(), ExamDetailStatusEnum.READY.name()};
@@ -1030,7 +1035,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
     @Override
     public List<ClientExamTaskDto> listTryTask(Long schoolId, String machineCode, Long orgId, Long printPlanId, String courseCode, String paperNumber, Boolean isTry, Boolean isPass) {
-        Set<Long> orgIds = commonService.listSubOrgIds(orgId);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(orgId);
         // 印刷任务状态为印刷中(PRINTING),考场状态为待打印(WAITING)
         String[] examDetailstatus = {ExamDetailStatusEnum.NEW.name(), ExamDetailStatusEnum.READY.name()};
         List<ClientExamTaskDto> examTaskDtoIPage = this.baseMapper.listClientExamTaskPage(schoolId, machineCode, printPlanId, courseCode, paperNumber, isTry, isPass, orgIds, PrintPlanStatusEnum.PRINTING.name(), examDetailstatus);
@@ -1201,7 +1206,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         List<SysRole> list = sysUserRoleService.listRoleByUserId(sysUser.getId());
         boolean containsQuestionTeacher = list.stream().filter(m -> RoleTypeEnum.QUESTION_TEACHER.equals(m.getType())).count() > 0;
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         List<ExamTaskDetailDto> examTaskDetailDtos = this.baseMapper.listTaskPaper(schoolId, courseCode, paperNumber, startTime, endTime, orgIds, containsQuestionTeacher, sysUser.getId());
         return examTaskDetailDtos;
     }

+ 853 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceServiceImpl.java

@@ -0,0 +1,853 @@
+package com.qmth.distributed.print.business.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.aliyun.oss.common.utils.BinaryUtil;
+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.itextpdf.text.DocumentException;
+import com.itextpdf.text.pdf.PdfReader;
+import com.qmth.boot.api.exception.ApiException;
+import com.qmth.distributed.print.business.bean.dto.PdfDto;
+import com.qmth.distributed.print.business.entity.*;
+import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
+import com.qmth.distributed.print.business.enums.ExamStatusEnum;
+import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
+import com.qmth.distributed.print.business.service.*;
+import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
+import com.qmth.distributed.print.business.util.HtmlToPdfUtil;
+import com.qmth.distributed.print.business.util.PdfUtil;
+import com.qmth.teachcloud.common.bean.params.ArraysParams;
+import com.qmth.teachcloud.common.config.DictionaryConfig;
+import com.qmth.teachcloud.common.contant.SpringContextHolder;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.*;
+import com.qmth.teachcloud.common.enums.*;
+import com.qmth.teachcloud.common.mapper.BasicCourseMapper;
+import com.qmth.teachcloud.common.service.*;
+import com.qmth.teachcloud.common.util.*;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.FileCopyUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.*;
+
+/**
+ * @Description: 公共服务service impl
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/3/26
+ */
+@Service
+public class PrintCommonServiceServiceImpl implements PrintCommonService {
+    private final static Logger log = LoggerFactory.getLogger(PrintCommonServiceServiceImpl.class);
+
+    @Resource
+    OssUtil ossUtil;
+
+    @Autowired
+    private DictionaryConfig dictionaryConfig;
+
+    @Resource
+    BasicAttachmentService basicAttachmentService;
+
+    @Autowired
+    @Lazy
+    private ExamTaskService examTaskService;
+
+    @Resource
+    private BasicCourseMapper basicCourseMapper;
+
+    @Resource
+    BasicCourseService basicCourseService;
+
+    @Resource
+    ExamDetailCourseService examDetailCourseService;
+
+    @Resource
+    SysOrgService sysOrgService;
+
+    @Autowired
+    private SysUserService sysUserService;
+
+    @Resource
+    BasicTemplateOrgService basicTemplateOrgService;
+
+    @Resource
+    AsyncCreatePdfTempleteService asyncCreatePdfTempleteService;
+
+    @Resource
+    TBTaskService tbTaskService;
+
+    @Resource
+    ExamDetailService examDetailService;
+
+    @Autowired
+    private ConvertUtil convertUtil;
+
+    @Resource
+    @Lazy
+    ExamTaskDetailService examTaskDetailService;
+
+    @Resource
+    ExamPrintPlanService examPrintPlanService;
+
+    /**
+     * 保存附件
+     *
+     * @param classifyEnum
+     * @param examDetail
+     * @param basicAttachment
+     * @param pdfList
+     * @param printCount
+     * @param sequence
+     * @return
+     * @throws IOException
+     */
+    @Override
+    @Transactional
+    public BasicAttachment saveAttachmentPdf(ClassifyEnum classifyEnum, ExamDetail examDetail, BasicAttachment basicAttachment, List<PdfDto> pdfList, Integer printCount, Integer sequence) throws IOException, DocumentException {
+        try {
+            boolean oss = dictionaryConfig.sysDomain().isOss();
+            JSONObject jsonObject = JSONObject.parseObject(basicAttachment.getPath());
+            String type = basicAttachment.getType();
+            String filePath = null;
+            String url = null;
+            File htmlFile = null;
+            if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.FTL_PREFIX)) {
+                filePath = (String) jsonObject.get(SystemConstant.HTML_PATH);
+                url = SystemConstant.TEMP_FILES_DIR + File.separator + filePath;
+                htmlFile = new File(url);
+            } else if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.HTML_PREFIX)) {
+                filePath = (String) jsonObject.get(SystemConstant.PATH);
+                url = SystemConstant.TEMP_FILES_DIR + File.separator + filePath;
+                htmlFile = ossUtil.ossDownload(filePath, url);
+            }
+            LocalDateTime nowTime = LocalDateTime.now();
+            StringJoiner pdfStringJoiner = new StringJoiner("");
+            if (!oss) {
+                pdfStringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+            }
+            pdfStringJoiner.add(UploadFileEnum.PDF.getTitle()).add(File.separator);
+            pdfStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
+                    .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
+                    .add(String.format("%02d", nowTime.getDayOfMonth()));
+            pdfStringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.PDF_PREFIX);
+
+            String pdfDirName = pdfStringJoiner.toString();
+            String pdfDirNameStr = pdfStringJoiner.toString().replace("\\", "/");
+            String destUrl = SystemConstant.PDF_TEMP_FILES_DIR + File.separator + pdfDirName;
+
+            File pdfFile = new File(destUrl);
+            if (!pdfFile.exists()) {
+                pdfFile.getParentFile().mkdirs();
+                pdfFile.createNewFile();
+            }
+            HtmlToPdfUtil.convert(htmlFile.getPath(), destUrl, PageSizeEnum.A4);
+//            File pdfFile = asposePdfUtil.documentToPdf(htmlFile.getPath(), destUrl, PaperSize.A4);
+            String htmlFileMd5 = DigestUtils.md5Hex(new FileInputStream(htmlFile));
+            String pdfFileMd5 = DigestUtils.md5Hex(new FileInputStream(pdfFile));
+            PdfDto pdfDto = null;
+            if (oss) {//上传至oss
+                pdfDto = PdfUtil.addPdfPage(pdfFile);
+                ossUtil.ossUpload(pdfDirNameStr, pdfFile, BinaryUtil.toBase64String(HexUtils.decodeHex(pdfFileMd5)));
+//                htmlFile.delete();
+            }
+            JSONObject attachmentPath = JSONObject.parseObject(examDetail.getAttachmentPath());
+            attachmentPath = Objects.isNull(attachmentPath) ? new JSONObject() : attachmentPath;
+            JSONArray jsonArray = (JSONArray) attachmentPath.get(SystemConstant.PATH);
+            jsonArray = Objects.isNull(jsonArray) ? new JSONArray() : jsonArray;
+            JSONObject object = new JSONObject();
+            object.put("printType", classifyEnum.name());
+            object.put(SystemConstant.HTML_PATH, filePath);
+            object.put("htmlMd5", htmlFileMd5);
+            object.put("pdfMd5", pdfFileMd5);
+            object.put(SystemConstant.PDF_PATH, pdfDirNameStr);
+            object.put(SystemConstant.TYPE, SystemConstant.OSS);
+            object.put(SystemConstant.UPLOAD_TYPE, new UploadFileEnum[]{
+                    UploadFileEnum.HTML,
+                    UploadFileEnum.PDF
+            });
+            jsonArray.add(object);
+            attachmentPath.put(SystemConstant.PATH, jsonArray);
+            examDetail.setAttachmentPath(attachmentPath.toJSONString());
+            basicAttachment.setPages(pdfDto.getActualPageCount());
+            for (int i = 0; i < printCount; i++) {
+                pdfList.add(new PdfDto(pdfFile.getPath(), PageSizeEnum.A4, pdfDto.getPageCount(), sequence));
+            }
+        } catch (Exception e) {
+            log.error("请求出错", e);
+            if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        }
+        return basicAttachment;
+    }
+
+    /**
+     * 保存html附件
+     *
+     * @param fileName
+     * @param htmlContent
+     * @param userId
+     * @param localFileList
+     * @return
+     * @throws IOException
+     */
+    @Override
+    @Transactional
+    public BasicAttachment saveAttachmentHtml(String fileName, String htmlContent, Long userId, List<PdfDto> localFileList) throws IOException {
+        BasicAttachment basicAttachment = null;
+        PdfDto pdfDto = null;
+        try {
+            byte[] bytes = htmlContent.getBytes();
+            int size = bytes.length;
+            boolean oss = dictionaryConfig.sysDomain().isOss();
+            LocalDateTime nowTime = LocalDateTime.now();
+            StringJoiner stringJoiner = new StringJoiner("");
+            if (!oss) {
+                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+            }
+            stringJoiner.add(UploadFileEnum.HTML.getTitle()).add(File.separator)
+                    .add(String.valueOf(nowTime.getYear())).add(File.separator)
+                    .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
+                    .add(String.format("%02d", nowTime.getDayOfMonth()));
+
+            JSONObject jsonObject = new JSONObject();
+            stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.HTML_PREFIX);
+            String fileMd5 = null;
+            if (oss) {//上传至oss
+                String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
+                ossUtil.ossUpload(dirName, htmlContent);
+                jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
+                jsonObject.put(SystemConstant.PATH, dirName);
+                String url = SystemConstant.TEMP_FILES_DIR + File.separator + dirName;
+                File localHtmlFile = ossUtil.ossDownload(dirName, url);
+                StringJoiner pdfStringJoiner = new StringJoiner("");
+                pdfStringJoiner.add(UploadFileEnum.PDF.getTitle()).add(File.separator);
+                pdfStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
+                        .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
+                        .add(String.format("%02d", nowTime.getDayOfMonth()));
+                pdfStringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.PDF_PREFIX);
+
+                String pdfDirName = pdfStringJoiner.toString();
+                String destUrl = SystemConstant.PDF_TEMP_FILES_DIR + File.separator + pdfDirName;
+//                destUrl = destUrl.replaceAll("\\\\","/");
+
+                HtmlToPdfUtil.convert(localHtmlFile.getPath(), destUrl, PageSizeEnum.A3);
+//                File pdfFile = asposePdfUtil.documentToPdf(localHtmlFile.getPath(), destUrl, PaperSize.A3);
+                File pdfFile = new File(destUrl);
+                if (!pdfFile.exists()) {
+                    pdfFile.getParentFile().mkdirs();
+                    pdfFile.createNewFile();
+                }
+                pdfDto = PdfUtil.addPdfPage(pdfFile);
+                localFileList.add(new PdfDto(pdfFile.getPath(), PageSizeEnum.A3, pdfDto.getPageCount()));
+                fileMd5 = DigestUtils.md5Hex(new FileInputStream(pdfFile));
+                ossUtil.ossUpload(pdfDirName, pdfFile, BinaryUtil.toBase64String(HexUtils.decodeHex(fileMd5)));
+//                localHtmlFile.delete();
+                jsonObject.put(SystemConstant.PDF_PATH, pdfDirName);
+                // htmlMd5
+                jsonObject.put("htmlMd5", DigestUtils.md5Hex(new FileInputStream(localHtmlFile)));
+                jsonObject.put("pdfMd5", fileMd5);
+            } else {//上传至服务器
+                File finalFile = new File(stringJoiner.toString());
+                if (!finalFile.exists()) {
+                    finalFile.getParentFile().mkdirs();
+                    finalFile.createNewFile();
+                }
+                FileCopyUtils.copy(bytes, new File(stringJoiner.toString()));
+                fileMd5 = DigestUtils.md5Hex(new FileInputStream(stringJoiner.toString()));
+                jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
+                jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
+                String destUrl = finalFile.getPath().replaceAll(SystemConstant.HTML_PREFIX, SystemConstant.PDF_PREFIX).replaceAll(UploadFileEnum.HTML.name().toLowerCase(), UploadFileEnum.PDF.name().toLowerCase());
+                HtmlToPdfUtil.convert(finalFile.getPath(), destUrl, PageSizeEnum.A3);
+//                File pdfFile = asposePdfUtil.documentToPdf(finalFile.getPath(), destUrl, PaperSize.A3);
+                jsonObject.put(SystemConstant.PDF_PATH, destUrl);
+                jsonObject.put("htmlMd5", DigestUtils.md5Hex(new FileInputStream(finalFile)));
+                jsonObject.put("pdfMd5", fileMd5);
+            }
+            jsonObject.put(SystemConstant.UPLOAD_TYPE, new UploadFileEnum[]{
+                    UploadFileEnum.HTML, UploadFileEnum.PDF
+            });
+            basicAttachment = new BasicAttachment(jsonObject.toJSONString(), fileName, SystemConstant.HTML_PREFIX, new BigDecimal(size), fileMd5, userId);
+            basicAttachment.setPages(pdfDto.getActualPageCount());
+            basicAttachmentService.save(basicAttachment);
+        } catch (Exception e) {
+            log.error("请求出错", e);
+            basicAttachmentService.deleteAttachment(basicAttachment);
+            if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        }
+        return basicAttachment;
+    }
+
+    /**
+     * 保存附件公用
+     *
+     * @param file
+     * @param md5
+     * @param type
+     * @param objId
+     * @return
+     */
+    @Override
+    public BasicAttachment saveAttachmentCommon(MultipartFile file, String md5, UploadFileEnum type, Long objId) {
+        if (Objects.isNull(type)) {
+            throw ExceptionResultEnum.ATTACHMENT_TYPE_EMPTY.exception();
+        }
+        BasicAttachment basicAttachment = null;
+        try {
+            SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+            int temp = file.getOriginalFilename().lastIndexOf(".");
+            String fileName = file.getOriginalFilename().substring(0, temp);
+            String format = file.getOriginalFilename().substring(temp, file.getOriginalFilename().length());
+            List<String> attachmentTypeList = dictionaryConfig.sysDomain().getAttachmentType();
+            if (Objects.nonNull(format)) {
+                long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
+                if (count == 0) {
+                    throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
+                }
+            }
+            int attachmentLength = dictionaryConfig.sysDomain().getAttachmentLength().intValue();
+            if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
+                throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
+            }
+            long size = file.getSize();
+            BigDecimal b = new BigDecimal(size);
+            BigDecimal num = new BigDecimal(1024);
+            b = b.divide(num, 2, BigDecimal.ROUND_HALF_UP).divide(num, 2, BigDecimal.ROUND_HALF_UP)
+                    .setScale(2, BigDecimal.ROUND_HALF_UP);
+            double attachmentSize = dictionaryConfig.sysDomain().getAttachmentSize().doubleValue();
+            if (b.doubleValue() > attachmentSize) {
+                throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
+            }
+            log.info("fileName:{}", fileName);
+            log.info("format:{}", format);
+            log.info("size:{}", b);
+            log.info("getOriginalFilename:{}", file.getOriginalFilename());
+            String fileMd5 = DigestUtils.md5Hex(file.getBytes());
+            log.info("fileMd5:{}", fileMd5);
+            log.info("md5:{}", md5);
+            if (!Objects.equals(fileMd5, md5)) {
+                throw ExceptionResultEnum.MD5_EQUALS_FALSE.exception();
+            }
+            boolean oss = dictionaryConfig.sysDomain().isOss();
+            LocalDateTime nowTime = LocalDateTime.now();
+            StringJoiner stringJoiner = new StringJoiner("");
+            if (!oss) {
+                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+            }
+            stringJoiner.add(type.getTitle()).add(File.separator);
+//            else if (type == UploadFileEnum.PAPER) {//试卷需要单独
+//                stringJoiner.add(type.getTitle()).add(File.separator);
+//            } else if (type == UploadFileEnum.UPLOAD) {
+//                stringJoiner.add(type.getTitle()).add(File.separator);
+//            }
+            stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
+                    .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
+                    .add(String.format("%02d", nowTime.getDayOfMonth()));
+
+            JSONObject jsonObject = new JSONObject();
+            stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(format);
+            if (oss) {//上传至oss\
+                String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
+                ossUtil.ossUpload(dirName, file.getInputStream(), BinaryUtil.toBase64String(HexUtils.decodeHex(md5)));
+                jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
+                jsonObject.put(SystemConstant.PATH, dirName);
+            } else {//上传至服务器
+                File finalFile = new File(stringJoiner.toString());
+                if (!finalFile.exists()) {
+                    finalFile.getParentFile().mkdirs();
+                    finalFile.createNewFile();
+                }
+                FileUtils.copyInputStreamToFile(file.getInputStream(), finalFile);
+                jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
+                jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
+            }
+            jsonObject.put(SystemConstant.UPLOAD_TYPE, type);
+
+            basicAttachment = new BasicAttachment(jsonObject.toJSONString(), fileName, format, b, fileMd5, requestUser.getId(), objId);
+            basicAttachmentService.save(basicAttachment);
+
+            // pdf需要读取总页数
+            Integer pages = 0;
+            if (".pdf".equals(format)) {
+                PdfReader pdfReader = new PdfReader(file.getInputStream());
+                pages = pdfReader.getNumberOfPages();
+            }
+            basicAttachment.setPages(pages);
+        } catch (Exception e) {
+            log.error("请求出错", e);
+            basicAttachmentService.deleteAttachment(basicAttachment);
+            if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        }
+        return basicAttachment;
+    }
+
+    /**
+     * 保存附件
+     *
+     * @param file
+     * @param md5
+     * @param type
+     * @return
+     */
+    @Override
+    @Transactional
+    public BasicAttachment saveAttachment(MultipartFile file, String md5, UploadFileEnum type) {
+        return saveAttachmentCommon(file, md5, type, null);
+    }
+
+    /**
+     * 保存附件
+     *
+     * @param file
+     * @param md5
+     * @param type
+     * @param objId
+     * @return
+     */
+    @Override
+    @Transactional
+    public BasicAttachment saveAttachment(MultipartFile file, String md5, UploadFileEnum type, Long objId) {
+        return saveAttachmentCommon(file, md5, type, objId);
+    }
+
+    /**
+     * 科目删除
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public boolean remove(Long id) {
+        // code是否已有命题任务
+        BasicCourse course = basicCourseMapper.selectById(id);
+        List<ExamTask> taskList = examTaskService.listByCourseCode(course.getSchoolId(), course.getCode());
+        if (taskList != null && taskList.size() > 0) {
+            throw ExceptionResultEnum.ERROR.exception("课程绑定命题任务,不能删除");
+        }
+        return basicCourseService.removeById(id);
+    }
+
+    /**
+     * 保存科目
+     *
+     * @param course
+     * @param userId
+     * @return
+     */
+    @Override
+    public boolean saveCourse(BasicCourse course, Long userId) {
+        Long schoolId = course.getSchoolId();
+        course.setSchoolId(schoolId);
+
+        QueryWrapper<BasicCourse> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(BasicCourse::getSchoolId, course.getSchoolId()).eq(BasicCourse::getCode, course.getCode());
+        BasicCourse basicCourse = basicCourseService.getOne(queryWrapper);
+
+        // 新增
+        if (Objects.isNull(course.getId())) {
+            if (basicCourse != null) {
+                throw ExceptionResultEnum.ERROR.exception("课程已存在");
+            }
+            course.setId(SystemConstant.getDbUuid());
+            course.setCreateId(userId);
+            course.setCreateTime(System.currentTimeMillis());
+        }
+        // 修改
+        else {
+            if (basicCourse != null && basicCourse.getId().longValue() != course.getId().longValue()) {
+                throw ExceptionResultEnum.ERROR.exception("课程已存在");
+            }
+
+            // 旧code是否已有命题任务
+            BasicCourse oldCourse = basicCourseService.getById(course.getId());
+            List<ExamTask> taskList = examTaskService.listByCourseCode(oldCourse.getSchoolId(), oldCourse.getCode());
+            if (taskList != null && taskList.size() > 0) {
+                throw ExceptionResultEnum.ERROR.exception("课程绑定命题任务,不能修改");
+            }
+            course.setUpdateId(userId);
+            course.setUpdateTime(System.currentTimeMillis());
+        }
+        return basicCourseService.saveOrUpdate(course);
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param code
+     * @param name
+     * @param pageNumber
+     * @param pageSize
+     * @return
+     */
+    @Override
+    public IPage<BasicCourse> list(String code, String name, Integer pageNumber, Integer pageSize) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        code = SystemConstant.translateSpecificSign(code);
+        name = SystemConstant.translateSpecificSign(name);
+        Page<BasicCourse> page = new Page<>(pageNumber, pageSize);
+        IPage<BasicCourse> courseIPage = basicCourseMapper.listPage(page, schoolId, SystemConstant.translateSpecificSign(code), SystemConstant.translateSpecificSign(name));
+        return courseIPage;
+    }
+
+    /**
+     * 科目查询
+     *
+     * @param param
+     * @param printPlanId
+     * @return
+     */
+    @Override
+    public List<BasicCourse> list(String param, Long printPlanId) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        if (printPlanId == null) {
+            QueryWrapper<BasicCourse> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId);
+            if (StringUtils.isNotBlank(param)) {
+                queryWrapper.lambda().and(i -> i.like(BasicCourse::getCode, SystemConstant.translateSpecificSign(param))
+                        .or().like(BasicCourse::getName, SystemConstant.translateSpecificSign(param)));
+            }
+            return basicCourseService.list(queryWrapper);
+        } else {
+            return examDetailCourseService.listCoursesByPrintPlanId(param, printPlanId);
+        }
+    }
+
+    /**
+     * 机构禁用
+     *
+     * @param org
+     * @return
+     */
+    @Override
+    public boolean enable(SysOrg org) {
+        // 禁用时,校验机构
+        if (!org.getEnable()) {
+            validateOrg(org.getId());
+        }
+        UpdateWrapper<SysOrg> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().set(SysOrg::getEnable, org.getEnable()).eq(SysOrg::getId, org.getId());
+        return sysOrgService.update(updateWrapper);
+    }
+
+    /**
+     * 机构删除
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public boolean sysOrgRemove(Long id) {
+        // 机构校验
+        validateOrg(id);
+        return sysOrgService.removeById(id);
+    }
+
+    private void validateOrg(Long id) {
+        // 机构下是否有用户
+        List<SysUser> sysUsers = sysUserService.listByOrgId(id);
+        if (sysUsers != null && sysUsers.size() > 0) {
+            throw ExceptionResultEnum.ERROR.exception("该机构下有用户,不能删除");
+        }
+
+        // 机构下是否有子机构
+        QueryWrapper<SysOrg> orgQueryWrapper = new QueryWrapper<>();
+        orgQueryWrapper.lambda().eq(SysOrg::getParentId, id);
+        List<SysOrg> sysOrgs = sysOrgService.list(orgQueryWrapper);
+        if (sysOrgs != null && sysOrgs.size() > 0) {
+            throw ExceptionResultEnum.ERROR.exception("该机构下有子机构,不能删除");
+        }
+
+        QueryWrapper<BasicTemplateOrg> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(BasicTemplateOrg::getOrgId, id);
+        List<BasicTemplateOrg> basicTemplateOrgs = basicTemplateOrgService.list(queryWrapper);
+        if (basicTemplateOrgs != null && basicTemplateOrgs.size() > 0) {
+            throw ExceptionResultEnum.ERROR.exception("机构已绑定,不能删除");
+        }
+    }
+
+    /**
+     * 更新任务状态
+     */
+    @Override
+    @Transactional
+    public void updateStatus() throws IOException {
+        //不是自动生成pdf的全部改为失败
+//        UpdateWrapper<TBTask> tbTaskUpdateWrapper = new UpdateWrapper<>();
+//        tbTaskUpdateWrapper.lambda().set(TBTask::getStatus, TaskStatusEnum.FINISH)
+//                .set(TBTask::getSummary, "系统提交:网络异常或程序异常中断!")
+//                .set(TBTask::getResult, TaskResultEnum.ERROR)
+//                .isNotNull(TBTask::getStatus).ne(TBTask::getStatus, TaskStatusEnum.FINISH)
+//                .ne(TBTask::getType, TaskTypeEnum.CREATE_PDF);
+//        this.update(tbTaskUpdateWrapper);
+
+        QueryWrapper<TBTask> tbTaskQueryWrapper = new QueryWrapper<>();
+        tbTaskQueryWrapper.lambda().eq(TBTask::getType, TaskTypeEnum.CREATE_PDF)
+                .ne(TBTask::getStatus, TaskStatusEnum.FINISH)
+                .ne(TBTask::getResult, TaskResultEnum.SUCCESS).or().isNull(TBTask::getResult)
+                .orderByDesc(TBTask::getStatus);
+        List<TBTask> tbTasks = tbTaskService.list(tbTaskQueryWrapper);
+        if (Objects.nonNull(tbTasks) && tbTasks.size() > 0) {
+            for (TBTask tbTask : tbTasks) {
+                Map<String, Object> map = new HashMap<>();
+                if (Objects.nonNull(tbTask.getRemark())) {
+                    JSONArray jsonArray = JSONArray.parseArray(tbTask.getRemark());
+                    ArraysParams arraysParams = new ArraysParams(jsonArray.toArray(new Long[jsonArray.size()]));
+                    map.computeIfAbsent("examDetailCourseIds", v -> Arrays.asList(arraysParams.getIds()));
+                }
+                map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
+                map.computeIfAbsent(SystemConstant.USER, v -> sysUserService.getById(tbTask.getCreateId()));
+                asyncCreatePdfTempleteService.createPdf(map, null);
+            }
+        }
+    }
+
+    /**
+     * 重新生成pdf失败任务
+     *
+     * @throws IOException
+     */
+    @Override
+    @Transactional
+    public void resetCreatePdfTask() throws IOException {
+        QueryWrapper<TBTask> tbTaskQueryWrapper = new QueryWrapper<>();
+        tbTaskQueryWrapper.lambda().eq(TBTask::getType, TaskTypeEnum.CREATE_PDF)
+                .eq(TBTask::getStatus, TaskStatusEnum.FINISH).isNotNull(TBTask::getStatus)
+                .eq(TBTask::getResult, TaskResultEnum.ERROR).last("limit 0,100");
+        List<TBTask> tbTasks = tbTaskService.list(tbTaskQueryWrapper);
+        if (Objects.nonNull(tbTasks) && tbTasks.size() > 0) {
+            for (TBTask tbTask : tbTasks) {
+                if (tbTask.getResetCount() < dictionaryConfig.sysDomain().getAutoCreatePdfResetMaxCount()) {
+                    Map<String, Object> map = new HashMap<>();
+//                    tbTask.setVersion(new AtomicInteger(tbTask.getVersion()).incrementAndGet());
+                    if (Objects.nonNull(tbTask.getRemark())) {
+                        JSONArray jsonArray = JSONArray.parseArray(tbTask.getRemark());
+                        ArraysParams arraysParams = new ArraysParams(jsonArray.toArray(new Long[jsonArray.size()]));
+                        map.computeIfAbsent("examDetailCourseIds", v -> Arrays.asList(arraysParams.getIds()));
+                    }
+                    map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
+                    map.computeIfAbsent(SystemConstant.USER, v -> sysUserService.getById(tbTask.getCreateId()));
+                    asyncCreatePdfTempleteService.createPdf(map, null);
+                }
+            }
+        }
+    }
+
+    /**
+     * 保存任务
+     *
+     * @param file
+     * @param taskTypeEnum
+     * @return
+     */
+    @Override
+    @Transactional
+    public Map<String, Object> saveTask(MultipartFile file, TaskTypeEnum taskTypeEnum) {
+        BasicAttachment basicAttachment = null;
+        Map<String, Object> map = null;
+        try {
+            PrintCommonService printCommonService = SpringContextHolder.getBean(PrintCommonService.class);
+            basicAttachment = printCommonService.saveAttachment(file, ServletUtil.getRequestMd5(), UploadFileEnum.FILE);
+            if (Objects.isNull(basicAttachment)) {
+                throw ExceptionResultEnum.ATTACHMENT_ERROR.exception();
+            } else {
+                map = new HashMap<>();
+                TBTask tbTask = tbTaskService.saveTaskCommon(basicAttachment, taskTypeEnum, map, null);
+                tbTaskService.save(tbTask);
+            }
+        } catch (Exception e) {
+            log.error("请求出错", e);
+            if (Objects.nonNull(basicAttachment)) {
+                basicAttachmentService.deleteAttachment(basicAttachment);
+            }
+            if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        }
+        return map;
+    }
+
+    @Override
+    @Transactional
+    public Map<String, Object> saveTask(Long printPlanId, MultipartFile file, TaskTypeEnum taskTypeEnum) {
+        BasicAttachment basicAttachment = null;
+        Map<String, Object> map = null;
+        try {
+            PrintCommonService printCommonService = SpringContextHolder.getBean(PrintCommonService.class);
+            basicAttachment = printCommonService.saveAttachment(file, ServletUtil.getRequestMd5(), UploadFileEnum.FILE);
+            if (Objects.isNull(basicAttachment)) {
+                throw ExceptionResultEnum.ATTACHMENT_ERROR.exception();
+            } else {
+                map = new HashMap<>();
+                TBTask tbTask = tbTaskService.saveTaskCommon(basicAttachment, taskTypeEnum, map, null);
+                tbTask.setPrintPlanId(printPlanId);
+                tbTaskService.save(tbTask);
+            }
+        } catch (Exception e) {
+            log.error("请求出错", e);
+            if (Objects.nonNull(basicAttachment)) {
+                basicAttachmentService.deleteAttachment(basicAttachment);
+            }
+            if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        }
+        return map;
+    }
+
+    @Override
+    @Transactional
+    public Map<String, Object> saveTask(TaskTypeEnum taskTypeEnum) {
+        Map<String, Object> map = null;
+        try {
+            map = new HashMap<>();
+            TBTask tbTask = tbTaskService.saveTaskCommon(null, taskTypeEnum, map, null);
+            tbTaskService.save(tbTask);
+        } catch (Exception e) {
+            log.error("请求出错", e);
+            if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        }
+        return map;
+    }
+
+    /**
+     * 校验课程关联考场是否提交打印
+     *
+     * @param schoolId
+     * @param printPlanId
+     * @param courseCode
+     * @param paperNumber
+     * @return
+     */
+    @Override
+    public Boolean checkExamDetailStatus(Long schoolId, Long printPlanId, String courseCode, String paperNumber) {
+        List<ExamDetail> examDetails;
+        if (printPlanId != null) {
+            examDetails = examDetailService.listByPrintPlanIdAndCourseCodeAndPaperNumber(schoolId, printPlanId, courseCode, paperNumber);
+        } else {
+            examDetails = examDetailService.listByCourseCodeAndPaperNumber(schoolId, courseCode, paperNumber);
+        }
+        if (examDetails != null && examDetails.size() > 0) {
+            long count = examDetails.stream().filter(m -> !ExamDetailStatusEnum.NEW.name().equals(m.getStatus().name()) && !ExamDetailStatusEnum.READY.name().equals(m.getStatus().name())).count();
+            if (count > 0) {
+                throw ExceptionResultEnum.ERROR.exception("已有印刷任务进入打印状态,不能修改");
+            }
+        }
+        return true;
+    }
+
+    /**
+     * 生成唯一的试卷编号
+     *
+     * @param schoolId
+     * @return
+     */
+    @Override
+    public String createPaperNumber(Long schoolId) {
+        String date = DateUtil.today().replace("-", "");
+        String paperNumber = convertUtil.getIncre(date, "paperNumber" + schoolId, 5);
+        QueryWrapper<ExamTask> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getPaperNumber, paperNumber);
+        ExamTask examTask = examTaskService.getOne(queryWrapper);
+        if (examTask != null) {
+            return createPaperNumber(schoolId);
+        } else {
+            return paperNumber;
+        }
+    }
+
+    /**
+     * 校验是否可以提交
+     *
+     * @param schoolId
+     * @param courseCode
+     * @param paperNumber
+     * @param user
+     * @throws IOException
+     */
+    @Override
+    public void checkData(Long schoolId, String courseCode, String paperNumber, SysUser user) throws IOException {
+        // 校验命题任务是否提交
+        ExamTask examTask = examTaskService.getByCourseCodeAndPaperNumber(schoolId, courseCode, paperNumber);
+        if (examTask != null && !examTask.getEnable()) {
+            log.info("命题任务已禁用");
+            return;
+//            throw ExceptionResultEnum.ERROR.exception("命题任务已禁用");
+        }
+        ExamTaskDetail examTaskDetail = examTaskDetailService.getByExamTaskId(examTask.getId());
+        if (!examTaskDetail.getEnable()) {
+            log.info("卷库已禁用");
+            return;
+        }
+        // 1.命题任务已完成
+        if (examTask != null && examTask.getStatus().name().equals(ExamStatusEnum.FINISH.name())) {
+            // 2.校验考务数据是否导入
+            List<ExamDetail> examDetails = examDetailService.listByCourseCodeAndPaperNumber(schoolId, courseCode, paperNumber);
+            if (examDetails != null && examDetails.size() > 0) {
+
+                // 3.检查examDetailId下有无其它课程
+                for (ExamDetail examDetail : examDetails) {
+                    List<ExamDetailCourse> examDetailCourses = examDetailCourseService.listByExamDetailIdAndStatus(examDetail.getId());
+                    // 4.没有未完成的命题任务
+                    if (examDetailCourses.isEmpty()) {
+                        // 更新考场状态为初始新建状态
+                        UpdateWrapper<ExamDetail> examDetailUpdateWrapper = new UpdateWrapper<>();
+                        examDetailUpdateWrapper.lambda().set(ExamDetail::getStatus, ExamDetailStatusEnum.NEW).eq(ExamDetail::getId, examDetail.getId());
+                        examDetailService.update(examDetailUpdateWrapper);
+
+                        //所有考场都撤回,印刷任务状态改为就绪
+                        QueryWrapper<ExamDetail> queryWrapper = new QueryWrapper<>();
+                        queryWrapper.lambda().eq(ExamDetail::getPrintPlanId, examDetail.getPrintPlanId()).notIn(ExamDetail::getStatus, ExamDetailStatusEnum.NEW, ExamDetailStatusEnum.READY);
+                        List<ExamDetail> examDetailss = examDetailService.list(queryWrapper);
+                        if (examDetailss.isEmpty()) {
+                            UpdateWrapper<ExamPrintPlan> printPlanUpdateWrapper = new UpdateWrapper<>();
+                            printPlanUpdateWrapper.lambda().set(ExamPrintPlan::getStatus, PrintPlanStatusEnum.READY).eq(ExamPrintPlan::getId, examDetail.getPrintPlanId());
+                            examPrintPlanService.update(printPlanUpdateWrapper);
+                        }
+
+                        Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.CREATE_PDF, examDetail.getPrintPlanId(), user, examDetail.getId());
+                        asyncCreatePdfTempleteService.createPdf(map, null);
+                    }
+                }
+            }
+        }
+    }
+}

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

@@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.entity.TBSyncTask;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
 import com.qmth.distributed.print.business.mapper.TBSyncTaskMapper;
 import com.qmth.distributed.print.business.service.TBSyncTaskService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import org.springframework.stereotype.Service;
 
 /**

+ 0 - 405
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBTaskServiceImpl.java

@@ -1,405 +0,0 @@
-package com.qmth.distributed.print.business.service.impl;
-
-import com.alibaba.fastjson.JSONArray;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.bean.params.ArraysParams;
-import com.qmth.distributed.print.business.bean.result.TaskListResult;
-import com.qmth.distributed.print.business.entity.BasicAttachment;
-import com.qmth.distributed.print.business.entity.SysUser;
-import com.qmth.distributed.print.business.entity.TBTask;
-import com.qmth.distributed.print.business.enums.TaskResultEnum;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
-import com.qmth.distributed.print.business.enums.TaskTypeEnum;
-import com.qmth.distributed.print.business.enums.UploadFileEnum;
-import com.qmth.distributed.print.business.mapper.TBTaskMapper;
-import com.qmth.distributed.print.business.service.BasicAttachmentService;
-import com.qmth.distributed.print.business.service.SysUserService;
-import com.qmth.distributed.print.business.service.TBTaskService;
-import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
-import com.qmth.distributed.print.business.util.ServletUtil;
-import com.qmth.teachcloud.common.config.DictionaryConfig;
-import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.util.JacksonUtil;
-import com.qmth.teachcloud.common.util.ResultUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import java.io.IOException;
-import java.util.*;
-
-/**
- * <p>
- * 导入导出任务表 服务实现类
- * </p>
- *
- * @author wangliang
- * @since 2021-03-19
- */
-@Service
-public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> implements TBTaskService {
-    private final static Logger log = LoggerFactory.getLogger(TBTaskServiceImpl.class);
-
-    @Resource
-    BasicAttachmentService basicAttachmentService;
-
-    @Resource
-    TBTaskMapper tbTaskMapper;
-
-    @Resource
-    AsyncCreatePdfTempleteService asyncCreatePdfTempleteService;
-
-    @Resource
-    SysUserService sysUserService;
-
-    @Resource
-    DictionaryConfig dictionaryConfig;
-
-    /**
-     * 保存任务
-     *
-     * @param file
-     * @param taskTypeEnum
-     * @return
-     */
-    @Override
-    @Transactional
-    public Map<String, Object> saveTask(MultipartFile file, TaskTypeEnum taskTypeEnum) {
-        BasicAttachment basicAttachment = null;
-        Map<String, Object> map = null;
-        try {
-            basicAttachment = basicAttachmentService.saveAttachment(file, ServletUtil.getRequestMd5(), UploadFileEnum.FILE);
-            if (Objects.isNull(basicAttachment)) {
-                throw ExceptionResultEnum.ATTACHMENT_ERROR.exception();
-            } else {
-                map = new HashMap<>();
-                TBTask tbTask = saveTaskCommon(basicAttachment, taskTypeEnum, map, null);
-                this.save(tbTask);
-            }
-        } catch (Exception e) {
-            log.error("请求出错", e);
-            if (Objects.nonNull(basicAttachment)) {
-                basicAttachmentService.deleteAttachment(basicAttachment);
-            }
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
-        }
-        return map;
-    }
-
-    @Override
-    @Transactional
-    public Map<String, Object> saveTask(TaskTypeEnum taskTypeEnum) {
-        Map<String, Object> map = null;
-        try {
-            map = new HashMap<>();
-            TBTask tbTask = saveTaskCommon(null, taskTypeEnum, map, null);
-            this.save(tbTask);
-        } catch (Exception e) {
-            log.error("请求出错", e);
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
-        }
-        return map;
-    }
-
-    @Override
-    @Transactional
-    public Map<String, Object> saveTask(Long printPlanId, MultipartFile file, TaskTypeEnum taskTypeEnum) {
-        BasicAttachment basicAttachment = null;
-        Map<String, Object> map = null;
-        try {
-            basicAttachment = basicAttachmentService.saveAttachment(file, ServletUtil.getRequestMd5(), UploadFileEnum.FILE);
-            if (Objects.isNull(basicAttachment)) {
-                throw ExceptionResultEnum.ATTACHMENT_ERROR.exception();
-            } else {
-                map = new HashMap<>();
-                TBTask tbTask = saveTaskCommon(basicAttachment, taskTypeEnum, map, null);
-                tbTask.setPrintPlanId(printPlanId);
-                this.save(tbTask);
-            }
-        } catch (Exception e) {
-            log.error("请求出错", e);
-            if (Objects.nonNull(basicAttachment)) {
-                basicAttachmentService.deleteAttachment(basicAttachment);
-            }
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
-        }
-        return map;
-    }
-
-    /**
-     * 保存任务
-     *
-     * @param file
-     * @param taskTypeEnum
-     * @param objId
-     * @return
-     */
-    @Override
-    public Map<String, Object> saveTask(MultipartFile file, TaskTypeEnum taskTypeEnum, Object objId) {
-        return null;
-    }
-
-    /**
-     * 保存任务
-     *
-     * @param file
-     * @param taskTypeEnum
-     * @param projectId
-     * @return
-     */
-    @Override
-    public Map<String, Object> saveTask(MultipartFile file, TaskTypeEnum taskTypeEnum, Long projectId) {
-        return null;
-    }
-
-    /**
-     * 保存任务
-     *
-     * @param file
-     * @param taskTypeEnum
-     * @param objId
-     * @param projectId
-     * @return
-     */
-    @Override
-    public Map<String, Object> saveTask(MultipartFile file, TaskTypeEnum taskTypeEnum, Object objId, Long projectId) {
-        return null;
-    }
-
-    /**
-     * 保存任务
-     *
-     * @param taskTypeEnum
-     * @param printPlanId
-     * @return
-     */
-    @Override
-    @Transactional
-    public Map<String, Object> saveTask(TaskTypeEnum taskTypeEnum, Long printPlanId) {
-        Map<String, Object> map = new HashMap<>();
-        try {
-            TBTask tbTask = saveTaskCommon(null, taskTypeEnum, map, null);
-            tbTask.setPrintPlanId(printPlanId);
-            this.save(tbTask);
-        } catch (Exception e) {
-            log.error("请求出错", e);
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
-        }
-        return map;
-    }
-
-    /**
-     * 保存任务
-     *
-     * @param taskTypeEnum
-     * @param printPlanId
-     * @param sysUser
-     * @param entityId
-     * @return
-     */
-    @Override
-    public Map<String, Object> saveTask(TaskTypeEnum taskTypeEnum, Long printPlanId, SysUser sysUser, Long entityId) {
-        Map<String, Object> map = new HashMap<>();
-        try {
-            if (Objects.nonNull(entityId)) {
-                map.computeIfAbsent("entityId", v -> entityId);
-            }
-            TBTask tbTask = saveTaskCommon(null, taskTypeEnum, map, sysUser);
-            tbTask.setPrintPlanId(printPlanId);
-            this.save(tbTask);
-        } catch (Exception e) {
-            log.error("请求出错", e);
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
-        }
-        return map;
-    }
-
-    /**
-     * 保存任务
-     *
-     * @param taskTypeEnum
-     * @param arraysParams
-     * @param sysUser
-     * @return
-     */
-    @Override
-    public Map<String, Object> saveTask(TaskTypeEnum taskTypeEnum, ArraysParams arraysParams, SysUser sysUser) {
-        Map<String, Object> map = new HashMap<>();
-        try {
-            TBTask tbTask = saveTaskCommon(null, taskTypeEnum, map, sysUser);
-            if(Objects.nonNull(arraysParams)) {
-                tbTask.setRemark(JacksonUtil.parseJson(arraysParams.getIds()));
-            }
-            this.save(tbTask);
-        } catch (Exception e) {
-            log.error("请求出错", e);
-            if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
-        }
-        return map;
-    }
-
-    /**
-     * 查询任务列表
-     *
-     * @param iPage
-     * @param schoolId
-     * @param printPlanId
-     * @param status
-     * @param type
-     * @param result
-     * @return
-     */
-    @Override
-    public IPage<TaskListResult> query(IPage<Map> iPage, Long schoolId, Long printPlanId, TaskStatusEnum status, TaskTypeEnum type, TaskResultEnum result) {
-        return tbTaskMapper.query(iPage, schoolId, printPlanId, Objects.nonNull(status) ? status.name() : null, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(result) ? result.name() : null);
-    }
-
-    /**
-     * 获取任务是否完成
-     *
-     * @param schoolId
-     * @param printPlanId
-     * @param entityIds
-     * @return
-     */
-    @Override
-    public boolean countByPrintPlanIdAndEntityId(Long schoolId, Long printPlanId, List<Long> entityIds) {
-        QueryWrapper<TBTask> tbTaskQueryWrapper = new QueryWrapper<>();
-        tbTaskQueryWrapper.lambda().ne(TBTask::getStatus, TaskStatusEnum.FINISH).isNotNull(TBTask::getStatus)
-                .eq(TBTask::getType, TaskTypeEnum.CREATE_PDF);
-        if (Objects.nonNull(schoolId)) {
-            tbTaskQueryWrapper.lambda().eq(TBTask::getSchoolId, schoolId);
-        }
-        if (Objects.nonNull(printPlanId)) {
-            tbTaskQueryWrapper.lambda().eq(TBTask::getPrintPlanId, printPlanId);
-        }
-        if (Objects.nonNull(entityIds)) {
-            tbTaskQueryWrapper.lambda().in(TBTask::getEntityId, entityIds);
-        }
-        return this.count(tbTaskQueryWrapper) == 0 ? true : false;
-    }
-
-    /**
-     * 更新任务状态
-     */
-    @Override
-    @Transactional
-    public void updateStatus() throws IOException {
-        //不是自动生成pdf的全部改为失败
-//        UpdateWrapper<TBTask> tbTaskUpdateWrapper = new UpdateWrapper<>();
-//        tbTaskUpdateWrapper.lambda().set(TBTask::getStatus, TaskStatusEnum.FINISH)
-//                .set(TBTask::getSummary, "系统提交:网络异常或程序异常中断!")
-//                .set(TBTask::getResult, TaskResultEnum.ERROR)
-//                .isNotNull(TBTask::getStatus).ne(TBTask::getStatus, TaskStatusEnum.FINISH)
-//                .ne(TBTask::getType, TaskTypeEnum.CREATE_PDF);
-//        this.update(tbTaskUpdateWrapper);
-
-        QueryWrapper<TBTask> tbTaskQueryWrapper = new QueryWrapper<>();
-        tbTaskQueryWrapper.lambda().eq(TBTask::getType, TaskTypeEnum.CREATE_PDF)
-                .ne(TBTask::getStatus, TaskStatusEnum.FINISH)
-                .ne(TBTask::getResult, TaskResultEnum.SUCCESS).or().isNull(TBTask::getResult)
-                .orderByDesc(TBTask::getStatus);
-        List<TBTask> tbTasks = this.list(tbTaskQueryWrapper);
-        if (Objects.nonNull(tbTasks) && tbTasks.size() > 0) {
-            for (TBTask tbTask : tbTasks) {
-                Map<String, Object> map = new HashMap<>();
-                if (Objects.nonNull(tbTask.getRemark())) {
-                    JSONArray jsonArray = JSONArray.parseArray(tbTask.getRemark());
-                    ArraysParams arraysParams = new ArraysParams(jsonArray.toArray(new Long[jsonArray.size()]));
-                    map.computeIfAbsent("examDetailCourseIds", v -> Arrays.asList(arraysParams.getIds()));
-                }
-                map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
-                map.computeIfAbsent(SystemConstant.USER, v -> sysUserService.getById(tbTask.getCreateId()));
-                asyncCreatePdfTempleteService.createPdf(map, null);
-            }
-        }
-    }
-
-    /**
-     * 重新生成pdf失败任务
-     *
-     * @throws IOException
-     */
-    @Override
-    @Transactional
-    public void resetCreatePdfTask() throws IOException {
-        QueryWrapper<TBTask> tbTaskQueryWrapper = new QueryWrapper<>();
-        tbTaskQueryWrapper.lambda().eq(TBTask::getType, TaskTypeEnum.CREATE_PDF)
-                .eq(TBTask::getStatus, TaskStatusEnum.FINISH).isNotNull(TBTask::getStatus)
-                .eq(TBTask::getResult, TaskResultEnum.ERROR).last("limit 0,100");
-        List<TBTask> tbTasks = this.list(tbTaskQueryWrapper);
-        if (Objects.nonNull(tbTasks) && tbTasks.size() > 0) {
-            for (TBTask tbTask : tbTasks) {
-                if (tbTask.getResetCount() < dictionaryConfig.sysDomain().getAutoCreatePdfResetMaxCount()) {
-                    Map<String, Object> map = new HashMap<>();
-//                    tbTask.setVersion(new AtomicInteger(tbTask.getVersion()).incrementAndGet());
-                    if (Objects.nonNull(tbTask.getRemark())) {
-                        JSONArray jsonArray = JSONArray.parseArray(tbTask.getRemark());
-                        ArraysParams arraysParams = new ArraysParams(jsonArray.toArray(new Long[jsonArray.size()]));
-                        map.computeIfAbsent("examDetailCourseIds", v -> Arrays.asList(arraysParams.getIds()));
-                    }
-                    map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
-                    map.computeIfAbsent(SystemConstant.USER, v -> sysUserService.getById(tbTask.getCreateId()));
-                    asyncCreatePdfTempleteService.createPdf(map, null);
-                }
-            }
-        }
-    }
-
-    /**
-     * 保存task
-     *
-     * @param basicAttachment
-     * @param taskTypeEnum
-     * @param map
-     * @param sysUser
-     * @return
-     */
-    public TBTask saveTaskCommon(BasicAttachment basicAttachment, TaskTypeEnum taskTypeEnum, Map map, SysUser sysUser) {
-        SysUser requestUser = Objects.nonNull(sysUser) ? sysUser : (SysUser) ServletUtil.getRequestUser();
-
-        TBTask tbTask = new TBTask(taskTypeEnum,
-                TaskStatusEnum.INIT,
-                Objects.nonNull(basicAttachment) ? basicAttachment.getName() : null,
-                Objects.nonNull(basicAttachment) ? basicAttachment.getPath() : null,
-                requestUser.getId(),
-                requestUser.getSchoolId());
-        if (Objects.nonNull(map.get("entityId"))) {
-            tbTask.setEntityId((Long) map.get("entityId"));
-        }
-        map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
-        map.computeIfAbsent(SystemConstant.USER, v -> requestUser);
-        return tbTask;
-    }
-}

+ 4 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncCreatePdfTempleteService.java

@@ -2,16 +2,16 @@ package com.qmth.distributed.print.business.templete.execute;
 
 import cn.hutool.core.date.DateUtil;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.entity.TBTask;
-import com.qmth.distributed.print.business.enums.TaskResultEnum;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
-import com.qmth.distributed.print.business.service.TBTaskService;
 import com.qmth.distributed.print.business.templete.callback.CallbackCreatePdf;
 import com.qmth.distributed.print.business.templete.create.AsyncCreateTaskTemplete;
 import com.qmth.distributed.print.business.templete.service.TaskLogicService;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.slf4j.Logger;

+ 4 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncDownloadPdfTempleteService.java

@@ -2,14 +2,14 @@ package com.qmth.distributed.print.business.templete.execute;
 
 import cn.hutool.core.date.DateUtil;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.entity.TBTask;
-import com.qmth.distributed.print.business.enums.TaskResultEnum;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
-import com.qmth.distributed.print.business.service.TBTaskService;
 import com.qmth.distributed.print.business.templete.export.AsyncExportTaskTemplete;
 import com.qmth.distributed.print.business.templete.service.TaskLogicService;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.TBTask;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.slf4j.Logger;

+ 5 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncExaminationExportTemplateService.java

@@ -2,15 +2,15 @@ package com.qmth.distributed.print.business.templete.execute;
 
 import cn.hutool.core.date.DateUtil;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.entity.TBTask;
-import com.qmth.distributed.print.business.enums.TaskResultEnum;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
-import com.qmth.distributed.print.business.enums.TaskTypeEnum;
-import com.qmth.distributed.print.business.service.TBTaskService;
 import com.qmth.distributed.print.business.templete.export.AsyncExportTaskTemplete;
 import com.qmth.distributed.print.business.templete.service.TaskLogicService;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.TBTask;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.slf4j.Logger;

+ 5 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncExaminationImportTemplateService.java

@@ -2,17 +2,17 @@ package com.qmth.distributed.print.business.templete.execute;
 
 import cn.hutool.core.date.DateUtil;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.entity.SysUser;
-import com.qmth.distributed.print.business.entity.TBTask;
-import com.qmth.distributed.print.business.enums.TaskResultEnum;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
 import com.qmth.distributed.print.business.service.ExamTaskService;
-import com.qmth.distributed.print.business.service.TBTaskService;
 import com.qmth.distributed.print.business.templete.importData.AsyncImportTaskTemplete;
 import com.qmth.distributed.print.business.templete.service.TaskLogicService;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.slf4j.Logger;

+ 4 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncPaperReviewPdfExportService.java

@@ -3,14 +3,14 @@ package com.qmth.distributed.print.business.templete.execute;
 import cn.hutool.core.date.DateUtil;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.entity.ExamTask;
-import com.qmth.distributed.print.business.entity.TBTask;
-import com.qmth.distributed.print.business.enums.TaskResultEnum;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
-import com.qmth.distributed.print.business.service.TBTaskService;
 import com.qmth.distributed.print.business.templete.export.AsyncExportTaskTemplete;
 import com.qmth.distributed.print.business.templete.service.TaskLogicService;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.TBTask;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.slf4j.Logger;

+ 4 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncTaskReviewSampleExportService.java

@@ -2,22 +2,20 @@ package com.qmth.distributed.print.business.templete.execute;
 
 import cn.hutool.core.date.DateUtil;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.entity.TBTask;
-import com.qmth.distributed.print.business.enums.TaskResultEnum;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
-import com.qmth.distributed.print.business.enums.TaskTypeEnum;
-import com.qmth.distributed.print.business.service.TBTaskService;
 import com.qmth.distributed.print.business.templete.export.AsyncExportTaskTemplete;
 import com.qmth.distributed.print.business.templete.service.TaskLogicService;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.TBTask;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
 import java.text.MessageFormat;
 import java.util.Date;
 import java.util.Map;
@@ -30,8 +28,6 @@ import java.util.StringJoiner;
  */
 @Service
 public class AsyncTaskReviewSampleExportService extends AsyncExportTaskTemplete {
-    @Resource
-    TaskLogicService taskLogicService;
 
     public static final String OBJ_TITLE = "审核样本导出";
     private final static Logger log = LoggerFactory.getLogger(AsyncTaskReviewSampleExportService.class);

+ 6 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/export/AsyncExportTaskTemplete.java

@@ -3,16 +3,16 @@ package com.qmth.distributed.print.business.templete.export;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.entity.TBTask;
-import com.qmth.distributed.print.business.enums.TaskResultEnum;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
-import com.qmth.distributed.print.business.enums.UploadFileEnum;
-import com.qmth.distributed.print.business.service.TBTaskService;
 import com.qmth.distributed.print.business.templete.importData.AsyncImportTaskTemplete;
-import com.qmth.distributed.print.business.util.OssUtil;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.enums.UploadFileEnum;
+import com.qmth.teachcloud.common.service.TBTaskService;
+import com.qmth.teachcloud.common.util.OssUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.apache.commons.io.FileUtils;

+ 7 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java

@@ -3,15 +3,15 @@ package com.qmth.distributed.print.business.templete.importData;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.entity.TBTask;
-import com.qmth.distributed.print.business.enums.TaskResultEnum;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
-import com.qmth.distributed.print.business.enums.TaskTypeEnum;
-import com.qmth.distributed.print.business.enums.UploadFileEnum;
-import com.qmth.distributed.print.business.service.TBTaskService;
-import com.qmth.distributed.print.business.util.OssUtil;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.TBTask;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.UploadFileEnum;
+import com.qmth.teachcloud.common.service.TBTaskService;
+import com.qmth.teachcloud.common.util.OssUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.apache.commons.io.FileUtils;
@@ -27,7 +27,6 @@ import java.util.Date;
 import java.util.Map;
 import java.util.Objects;
 import java.util.StringJoiner;
-import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * @Description: 异步导入模版

+ 15 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -11,21 +11,26 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.itextpdf.text.DocumentException;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.bean.dto.*;
-import com.qmth.distributed.print.business.bean.params.ArraysParams;
 import com.qmth.distributed.print.business.bean.params.SerialNumberParams;
 import com.qmth.distributed.print.business.cache.CreatePdfCacheUtil;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.*;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.service.TaskLogicService;
-import com.qmth.distributed.print.business.util.*;
+import com.qmth.distributed.print.business.util.CreatePdfUtil;
+import com.qmth.distributed.print.business.util.HtmlToPdfUtil;
 import com.qmth.teachcloud.common.annotation.ExcelDBFieldDesc;
+import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.BasicSchool;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.util.FileUtil;
-import com.qmth.teachcloud.common.util.HexUtils;
-import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.enums.PageSizeEnum;
+import com.qmth.teachcloud.common.enums.UploadFileEnum;
+import com.qmth.teachcloud.common.service.*;
+import com.qmth.teachcloud.common.util.*;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -62,9 +67,6 @@ import java.util.stream.Collectors;
 public class TaskLogicServiceImpl implements TaskLogicService {
     private final static Logger log = LoggerFactory.getLogger(TaskLogicServiceImpl.class);
 
-    @Resource
-    CommonService commonService;
-
     @Resource
     ExamDetailService detailService;
 
@@ -122,6 +124,9 @@ public class TaskLogicServiceImpl implements TaskLogicService {
     @Resource
     BasicCardRuleService basicCardRuleService;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     /**
      * 创建pdf前置条件
      *
@@ -365,7 +370,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 if (Objects.nonNull(jsonObjectVariable.get("attachmentId")) && !Objects.equals("", jsonObjectVariable.get("attachmentId"))) {
                     Long attachmentId = Long.parseLong((String) jsonObjectVariable.get("attachmentId"));
                     BasicAttachment basicAttachment = basicAttachmentService.getById(attachmentId);
-                    ftlList.add(commonService.getFile(basicAttachment.getPath(), false));
+                    ftlList.add(teachcloudCommonService.getFile(basicAttachment.getPath(), false));
                     if (Objects.nonNull(type) && Objects.equals(type.toUpperCase(), "SIGN")) {//签到表
                         createPdfUtil.createSignBook(basicAttachment, basicSchool.getName(), examDetail, examStudentCourseDtoList, list[1], (Integer) jsonObjectVariable.get("backupCount"), examDetailCourseList);
                     } else if (Objects.nonNull(type) && Objects.equals(type.toUpperCase(), "PACKAGE")) {//卷袋贴
@@ -643,7 +648,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                         int dbLength = excelDBFieldDesc.length();
                         if (dbName.equals(name)) {
                             if (dbLength > 0) {
-                                ConvertUtil.verifyLength(cellValue, dbLength, dbName);
+                                SystemConstant.verifyLength(cellValue, dbLength, dbName);
                             }
                             examinationImportDtoField.setAccessible(true);
                             examinationImportDtoField.set(examinationImportDto, cellValue);

+ 20 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -13,15 +13,24 @@ import com.qmth.distributed.print.business.bean.dto.PdfDto;
 import com.qmth.distributed.print.business.cache.CreatePdfCacheUtil;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.*;
-import com.qmth.distributed.print.business.service.BasicAttachmentService;
-import com.qmth.distributed.print.business.service.CommonService;
+import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.service.ExamDetailService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicAttachment;
+import com.qmth.teachcloud.common.entity.TBTask;
+import com.qmth.teachcloud.common.enums.ClassifyEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.PageSizeEnum;
+import com.qmth.teachcloud.common.service.BasicAttachmentService;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.util.ConvertUtil;
+import com.qmth.teachcloud.common.util.OssUtil;
+import com.qmth.teachcloud.common.util.RedisUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -53,7 +62,8 @@ public class CreatePdfUtil {
     FreemarkerUtil freemarkerUtil;
 
     @Resource
-    CommonService commonService;
+    @Lazy
+    PrintCommonService printCommonService;
 
     @Resource
     ExamDetailService detailService;
@@ -61,6 +71,9 @@ public class CreatePdfUtil {
     @Resource
     RedisUtil redisUtil;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     /**
      * 创建登记表
      *
@@ -84,7 +97,7 @@ public class CreatePdfUtil {
                 ordinaryPdfList.add(new PdfDto(localFile.getPath(), PageSizeEnum.A4, pdfDto.getPageCount()));
             }
         } else {
-            basicAttachmentService.saveAttachmentPdf(ClassifyEnum.CHECK_IN, examDetail, basicAttachment, ordinaryPdfList, printCount, 0);
+            printCommonService.saveAttachmentPdf(ClassifyEnum.CHECK_IN, examDetail, basicAttachment, ordinaryPdfList, printCount, 0);
         }
     }
 
@@ -439,7 +452,7 @@ public class CreatePdfUtil {
                 }
                 String name = (String) object.get("name");
                 if (Objects.equals(name.toUpperCase(), paperType.toUpperCase())) {
-                    File file = commonService.getFile(basicAttachment.getPath(), false);
+                    File file = teachcloudCommonService.getFile(basicAttachment.getPath(), false);
                     int pages = (int) object.get("pages");
                     paperPdfDto = new PaperPdfDto(file, pages);
                     break;
@@ -695,7 +708,7 @@ public class CreatePdfUtil {
         studentHtml = studentHtml.replaceAll("\\$\\{paperNumber\\}", examDetailCourse.getPaperNumber());
 
         //学生题卡
-        BasicAttachment examStudentAttachment = basicAttachmentService.saveAttachmentHtml(examDetail.getSchoolId() + "|" + examDetailCourse.getCourseCode() + "|" + t.getTicketNumber(), studentHtml, userId, examStudentPdfList);
+        BasicAttachment examStudentAttachment = printCommonService.saveAttachmentHtml(examDetail.getSchoolId() + "|" + examDetailCourse.getCourseCode() + "|" + t.getTicketNumber(), studentHtml, userId, examStudentPdfList);
         t.setAttachmentId(examStudentAttachment.getId());
         t.setPaperType(examDetailCourse.getPaperType());
         return examStudentAttachment;
@@ -752,7 +765,7 @@ public class CreatePdfUtil {
         }
         String packageCodeDiv = "<div class=\"page-box page-box-0\"><div class=\"package-number\" style=\"position: absolute;width: 200px;height: 40px;top: 10px;right: 25%;margin-left: -100px;text-align: center;z-index: 99;\"><img src=\"data:image/png;base64," + packageCodeImg + "\" style=\"display: block; height: 28px; width: 100%\" /><p style=\"line-height: 1; font-size: 12px; margin: 0;\">" + packageCode + "</p></div>";
         cardTemp = cardTemp.replaceAll("<div class=\"page-box page-box-0\">", packageCodeDiv);
-        BasicAttachment cardAttachment = basicAttachmentService.saveAttachmentHtml(examCard.getSchoolId() + "|" + examCard.getCourseCode(), cardTemp, userId, cardPdfList);
+        BasicAttachment cardAttachment = printCommonService.saveAttachmentHtml(examCard.getSchoolId() + "|" + examCard.getCourseCode(), cardTemp, userId, cardPdfList);
         JSONObject object = new JSONObject();
         object.put("name", examDetailCourse.getPaperType());
         object.put("examDetailCourseId", examDetailCourse.getId());

+ 10 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/FreemarkerUtil.java

@@ -2,19 +2,21 @@ package com.qmth.distributed.print.business.util;
 
 import com.alibaba.fastjson.JSONObject;
 import com.qmth.distributed.print.business.bean.dto.PdfDto;
-import com.qmth.distributed.print.business.entity.BasicAttachment;
 import com.qmth.distributed.print.business.entity.ExamDetail;
-import com.qmth.distributed.print.business.enums.ClassifyEnum;
-import com.qmth.distributed.print.business.enums.UploadFileEnum;
-import com.qmth.distributed.print.business.service.BasicAttachmentService;
+import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicAttachment;
+import com.qmth.teachcloud.common.enums.ClassifyEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.UploadFileEnum;
+import com.qmth.teachcloud.common.util.OssUtil;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Component;
 import org.springframework.util.ResourceUtils;
 
@@ -44,7 +46,8 @@ public class FreemarkerUtil {
     OssUtil ossUtil;
 
     @Resource
-    BasicAttachmentService basicAttachmentService;
+    @Lazy
+    PrintCommonService printCommonService;
 
     /**
      * 单独生成签到表
@@ -115,7 +118,7 @@ public class FreemarkerUtil {
             template.process(dataMap, out);
             out.flush();
             if (oss) {
-                String htmlStringJoinerStr = htmlStringJoiner.toString().replace("\\","/");
+                String htmlStringJoinerStr = htmlStringJoiner.toString().replace("\\", "/");
                 ossUtil.ossUpload(htmlStringJoinerStr, htmlFile, DigestUtils.md5Hex(new FileInputStream(htmlFile)));
                 jsonObject.put(SystemConstant.HTML_PATH, htmlStringJoinerStr);
                 jsonObject.put(SystemConstant.UPLOAD_TYPE, new UploadFileEnum[]{
@@ -123,7 +126,7 @@ public class FreemarkerUtil {
                         UploadFileEnum.HTML
                 });
                 basicAttachment.setPath(jsonObject.toJSONString());
-                basicAttachmentService.saveAttachmentPdf(classifyEnum, examDetail, basicAttachment, (List<PdfDto>) dataMap.get("variablePdfList"), (Integer) dataMap.get("printCount"), (Integer) dataMap.get("sequence"));
+                printCommonService.saveAttachmentPdf(classifyEnum, examDetail, basicAttachment, (List<PdfDto>) dataMap.get("variablePdfList"), (Integer) dataMap.get("printCount"), (Integer) dataMap.get("sequence"));
             }
 //            htmlFile.delete();
         } catch (Exception e) {

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/HtmlToPdfUtil.java

@@ -1,8 +1,8 @@
 package com.qmth.distributed.print.business.util;
 
-import com.qmth.distributed.print.business.enums.PageSizeEnum;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
+import com.qmth.teachcloud.common.enums.PageSizeEnum;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfUtil.java

@@ -3,9 +3,9 @@ package com.qmth.distributed.print.business.util;
 import com.itextpdf.text.Document;
 import com.itextpdf.text.pdf.*;
 import com.qmth.distributed.print.business.bean.dto.PdfDto;
-import com.qmth.distributed.print.business.enums.PageSizeEnum;
-import com.qmth.distributed.print.business.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.PageSizeEnum;
+import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.util.JacksonUtil;
 import org.apache.commons.io.IOUtils;
 import org.slf4j.Logger;

+ 0 - 112
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/security/EncrypAES.java

@@ -1,112 +0,0 @@
-package com.qmth.distributed.print.business.util.security;
-
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.crypto.Cipher;
-import javax.crypto.KeyGenerator;
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-
-/**
- * @author by xf
- * @date 2019/11/25.
- */
-public class EncrypAES {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(EncrypAES.class);
-
-    private static final String KEY_ALGORITHM = "AES";
-    private static final String CHAR_SET = "UTF-8";
-    /**
-     * AES的密钥长度
-     */
-    private static final Integer SECRET_KEY_LENGTH = 128;
-    /**
-     * 加解密算法/工作模式/填充方式
-     */
-    private static final String DEFAULT_CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";
-
-    /**
-     * 加密密钥
-     */
-    private static final String password = "1234567890123456";
-
-    /**
-     * AES加密操作
-     *
-     * @param content  待加密内容
-     * @return 返回Base64转码后的加密数据
-     */
-    public static String encrypt(String content) {
-        if (StringUtils.isAnyEmpty(content, password)) {
-            LOGGER.error("AES encryption params is null");
-            return null;
-        }
-        try {
-            //创建密码器
-            Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);
-            byte[] byteContent = content.getBytes(CHAR_SET);
-            //初始化为加密密码器
-//            cipher.init(Cipher.ENCRYPT_MODE, getSecretKey(password));
-            cipher.init(Cipher.ENCRYPT_MODE,  new SecretKeySpec(password.getBytes(), "AES"));
-            byte[] encryptByte = cipher.doFinal(byteContent);
-            return Base64.encodeBase64String(encryptByte);
-        } catch (Exception e) {
-            LOGGER.error("AES encryption operation has exception,content:{},password:{}", content, password, e);
-        }
-        return null;
-    }
-
-    /**
-     * AES解密操作
-     *
-     * @param encryptContent 加密的密文
-     * @return
-     */
-    public static String decrypt(String encryptContent) {
-        if (StringUtils.isAnyEmpty(encryptContent, password)) {
-            LOGGER.error("AES decryption params is null");
-            return null;
-        }
-        Cipher cipher = null;
-        try {
-            cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);
-            //设置为解密模式
-//            cipher.init(Cipher.DECRYPT_MODE, getSecretKey(password));
-            cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(password.getBytes(), "AES"));
-            //执行解密操作
-            byte[] result = cipher.doFinal(Base64.decodeBase64(encryptContent));
-            return new String(result, CHAR_SET);
-        } catch (Exception e) {
-            LOGGER.error("AES decryption operation has exception,content:{},password:{}", encryptContent, password, e);
-        }
-        return null;
-    }
-
-    private static SecretKeySpec getSecretKey(final String password) throws NoSuchAlgorithmException {
-        //生成指定算法密钥的生成器
-        KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_ALGORITHM);
-        keyGenerator.init(SECRET_KEY_LENGTH, new SecureRandom(password.getBytes()));
-        //生成密钥
-        SecretKey secretKey = keyGenerator.generateKey();
-        //转换成AES的密钥
-        return new SecretKeySpec(secretKey.getEncoded(), KEY_ALGORITHM);
-    }
-
-    public static void main(String[] args) {
-        String str = "110106200911040026";
-        System.out.println("原文:" + str);
-
-        String encryptStr = encrypt(str);
-        System.out.println("加密:" + encryptStr);
-
-        String decryptStr = decrypt(encryptStr);
-
-        System.out.println("解密:" + decryptStr);
-    }
-}

+ 0 - 80
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/security/Md5Utils.java

@@ -1,80 +0,0 @@
-package com.qmth.distributed.print.business.util.security;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.security.MessageDigest;
-
-/**
- * Md5加密方法
- *
- */
-public class Md5Utils
-{
-    private static final Logger log = LoggerFactory.getLogger(Md5Utils.class);
-
-    public static byte[] md5(String s)
-    {
-        MessageDigest algorithm;
-        try
-        {
-            algorithm = MessageDigest.getInstance("MD5");
-            algorithm.reset();
-            algorithm.update(s.getBytes("UTF-8"));
-            byte[] messageDigest = algorithm.digest();
-            return messageDigest;
-        }
-        catch (Exception e)
-        {
-            log.error("MD5 Error...", e);
-        }
-        return null;
-    }
-
-    public static String toMd5Hex(String s)
-    {
-        if(StringUtils.isBlank(s)){
-            return  null;
-        }
-        return toHex(md5(s));
-    }
-
-    public static final String toHex(byte hash[])
-    {
-        if (hash == null)
-        {
-            return null;
-        }
-        StringBuffer buf = new StringBuffer(hash.length * 2);
-        int i;
-
-        for (i = 0; i < hash.length; i++)
-        {
-            if ((hash[i] & 0xff) < 0x10)
-            {
-                buf.append("0");
-            }
-            buf.append(Long.toString(hash[i] & 0xff, 16));
-        }
-        return buf.toString();
-    }
-
-    public static String hash(String s)
-    {
-        try
-        {
-            return new String(toHex(md5(s)).getBytes("UTF-8"), "UTF-8");
-        }
-        catch (Exception e)
-        {
-            log.error("not supported charset...{}", e);
-            return s;
-        }
-    }
-
-    public static void main(String[] args) {
-        System.out.println(md5("111111"));
-        System.out.println(toHex(md5("111111")));
-    }
-}

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

@@ -15,7 +15,7 @@
         id,
         type, rule_id, org_id
     </sql>
-    <select id="listByTypeAndTemplateId" resultType="com.qmth.distributed.print.business.entity.SysOrg">
+    <select id="listByTypeAndTemplateId" resultType="com.qmth.teachcloud.common.entity.SysOrg">
         SELECT
             a.id, a.code, a.name
         FROM

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

@@ -51,7 +51,7 @@
         WHERE
             a.exam_detail_id = #{examDetailId} AND b.status != #{status}
     </select>
-    <select id="listCoursesByPrintPlanId" resultType="com.qmth.distributed.print.business.entity.BasicCourse">
+    <select id="listCoursesByPrintPlanId" resultType="com.qmth.teachcloud.common.entity.BasicCourse">
         SELECT
             distinct a.course_code code, a.course_name name
         FROM

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

@@ -90,7 +90,7 @@
         </where>
         order by a.create_time desc
     </select>
-    <select id="listUser" resultType="com.qmth.distributed.print.business.bean.dto.BlurryUserDto">
+    <select id="listUser" resultType="com.qmth.teachcloud.common.bean.dto.BlurryUserDto">
         SELECT
            distinct a.user_id id, b.real_name name
         FROM

+ 0 - 46
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicAttachmentController.java

@@ -1,46 +0,0 @@
-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.entity.BasicAttachment;
-import com.qmth.distributed.print.business.service.BasicAttachmentService;
-import com.qmth.teachcloud.common.util.Result;
-import com.qmth.teachcloud.common.util.ResultUtil;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- * 所有附件记录表 前端控制器
- * </p>
- *
- * @author xf
- * @since 2021-03-23
- */
-@Api(tags = "文件上传Controller")
-@RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}/file")
-public class BasicAttachmentController {
-
-    @Autowired
-    private BasicAttachmentService basicAttachmentService;
-
-    /**
-     * 文件查询
-     * @return
-     */
-    @ApiOperation(value = "文件查询")
-    @RequestMapping(value = "/get_one", method = RequestMethod.POST)
-    public Result getOne(@RequestParam(required = true) Long id) {
-        BasicAttachment attachment = basicAttachmentService.getById(id);
-        return ResultUtil.ok(attachment);
-    }
-}
-

+ 19 - 17
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java

@@ -1,21 +1,19 @@
 package com.qmth.distributed.print.api;
 
-
 import com.baomidou.mybatisplus.core.metadata.IPage;
-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.entity.BasicCourse;
-import com.qmth.distributed.print.business.entity.SysUser;
-import com.qmth.distributed.print.business.service.BasicCourseService;
-import com.qmth.distributed.print.business.util.ServletUtil;
+import com.qmth.distributed.print.business.service.PrintCommonService;
+import com.qmth.teachcloud.common.entity.BasicCourse;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 /**
@@ -31,11 +29,12 @@ import java.util.List;
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/course")
 public class BasicCourseController {
 
-    @Autowired
-    private BasicCourseService basicCourseService;
+    @Resource
+    private PrintCommonService printCommonService;
 
     /**
      * 查询
+     *
      * @param code
      * @param name
      * @param pageNumber
@@ -47,48 +46,51 @@ public class BasicCourseController {
     public Result list(@RequestParam(value = "code", required = false) String code,
                        @RequestParam(value = "name", required = false) String name,
                        @RequestParam Integer pageNumber,
-                       @RequestParam Integer pageSize){
-        IPage<BasicCourse> userDtos = basicCourseService.list(code, name, pageNumber, pageSize);
+                       @RequestParam Integer pageSize) {
+        IPage<BasicCourse> userDtos = printCommonService.list(code, name, pageNumber, pageSize);
         return ResultUtil.ok(userDtos);
     }
 
     /**
      * 模糊查询
+     *
      * @param param
      * @return
      */
     @ApiOperation(value = "模糊查询")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     public Result query(@RequestParam(value = "param", required = false) String param,
-                        @RequestParam(value = "printPlanId", required = false) Long printPlanId){
-        List<BasicCourse> userDtos = basicCourseService.list(param, printPlanId);
+                        @RequestParam(value = "printPlanId", required = false) Long printPlanId) {
+        List<BasicCourse> userDtos = printCommonService.list(param, printPlanId);
         return ResultUtil.ok(userDtos);
     }
 
     /**
      * 新增/修改
+     *
      * @param course
      * @return
      */
     @ApiOperation(value = "新增/修改")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public Result save(@RequestBody BasicCourse course){
+    public Result save(@RequestBody BasicCourse course) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         course.setSchoolId(schoolId);
-        boolean isSuccess = basicCourseService.saveCourse(course,sysUser.getId());
+        boolean isSuccess = printCommonService.saveCourse(course, sysUser.getId());
         return ResultUtil.ok(isSuccess);
     }
 
     /**
      * 删除
+     *
      * @param course
      * @return
      */
     @ApiOperation(value = "删除")
     @RequestMapping(value = "/remove", method = RequestMethod.POST)
-    public Result remove(@RequestBody BasicCourse course){
-        boolean isSuccess = basicCourseService.remove(course.getId());
+    public Result remove(@RequestBody BasicCourse course) {
+        boolean isSuccess = printCommonService.remove(course.getId());
         return ResultUtil.ok(isSuccess);
     }
 }

+ 13 - 11
distributed-print/src/main/java/com/qmth/distributed/print/api/ClientController.java

@@ -5,18 +5,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 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.auth.AuthBean;
 import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.params.ClientLoginParam;
-import com.qmth.distributed.print.business.bean.result.LoginResult;
-import com.qmth.distributed.print.business.entity.SysUser;
-import com.qmth.distributed.print.business.enums.RoleTypeEnum;
-import com.qmth.distributed.print.business.service.CacheService;
 import com.qmth.distributed.print.business.service.ClientService;
-import com.qmth.distributed.print.business.service.CommonService;
-import com.qmth.distributed.print.business.service.SysUserService;
+import com.qmth.teachcloud.common.bean.auth.AuthBean;
+import com.qmth.teachcloud.common.bean.result.LoginResult;
 import com.qmth.teachcloud.common.entity.BasicSchool;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.RoleTypeEnum;
+import com.qmth.teachcloud.common.service.CacheService;
+import com.qmth.teachcloud.common.service.SysUserService;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.*;
@@ -49,10 +49,10 @@ public class ClientController {
     SysUserService sysUserService;
 
     @Resource
-    CommonService commonService;
+    CacheService cacheService;
 
     @Resource
-    CacheService cacheService;
+    TeachcloudCommonService teachcloudCommonService;
 
     /**
      * 登录
@@ -81,14 +81,14 @@ public class ClientController {
         if (Objects.isNull(sysUser)) {
             throw ExceptionResultEnum.USER_NO_DATA.exception();
         }
-        AuthBean authBean = commonService.getUserAuth(sysUser.getId());
+        AuthBean authBean = teachcloudCommonService.getUserAuth(sysUser.getId());
         if (Objects.nonNull(authBean) && Objects.nonNull(authBean.getRoleList()) && authBean.getRoleList().size() > 0) {
             Set<RoleTypeEnum> roleType = authBean.getRoleList().stream().map(s -> s.getType()).collect(Collectors.toSet());
             if (!roleType.contains(RoleTypeEnum.PRINTER)) {
                 throw ExceptionResultEnum.ERROR.exception("客户端只允许" + RoleTypeEnum.PRINTER.getDesc() + "登录");
             }
         }
-        return ResultUtil.ok(commonService.login(login.getPassword(), sysUser));
+        return ResultUtil.ok(teachcloudCommonService.login(login.getPassword(), sysUser));
     }
 
     /**
@@ -438,6 +438,7 @@ public class ClientController {
 
     /**
      * 统计查询-查询列表
+     *
      * @param orgId
      * @param printPlanId
      * @param examPlace
@@ -466,6 +467,7 @@ public class ClientController {
 
     /**
      * 统计查询-汇总数据查询
+     *
      * @param orgId
      * @param printPlanId
      * @param examPlace

+ 1 - 4
distributed-print/src/main/java/com/qmth/distributed/print/api/EnumsController.java

@@ -1,11 +1,8 @@
 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.enums.*;
-import com.qmth.distributed.print.business.enums.result.EnumResult;
-import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.*;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.Api;

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

@@ -2,15 +2,13 @@ package com.qmth.distributed.print.api;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-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.dto.CardCustDto;
 import com.qmth.distributed.print.business.bean.dto.CardDetailDto;
-import com.qmth.distributed.print.business.bean.params.ArraysParams;
 import com.qmth.distributed.print.business.bean.params.ExamCardParams;
 import com.qmth.distributed.print.business.entity.ExamCard;
 import com.qmth.distributed.print.business.service.ExamCardService;
+import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.Api;
@@ -126,6 +124,7 @@ public class ExamCardController {
 
     /**
      * 批量下载客服制卡文件
+     *
      * @param response
      * @param arraysParams
      */

+ 34 - 32
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java

@@ -1,22 +1,21 @@
 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.distributed.print.business.entity.TBTask;
-import com.qmth.distributed.print.business.enums.TaskTypeEnum;
-import com.qmth.distributed.print.business.service.CommonService;
 import com.qmth.distributed.print.business.service.ExamDetailService;
 import com.qmth.distributed.print.business.service.ExamStudentService;
-import com.qmth.distributed.print.business.service.TBTaskService;
+import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.templete.execute.AsyncExaminationExportTemplateService;
 import com.qmth.distributed.print.business.templete.execute.AsyncExaminationImportTemplateService;
-import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.TBTask;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.service.TBTaskService;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.*;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -50,16 +49,19 @@ public class ExamDetailController {
     @Resource
     private ExamDetailService examDetailService;
     @Resource
-    private CommonService commonService;
+    private PrintCommonService printCommonService;
     @Resource
     private ExamStudentService examStudentService;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     @ApiOperation(value = "异步考务数据批量导入接口")
     @RequestMapping(value = "/data_import", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     public Result examinationImportAysnc(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
                                          @ApiParam(value = "印刷计划id", required = true) @RequestParam String printPlanId) throws Exception {
-        Map<String, Object> map = tbTaskService.saveTask(SystemConstant.convertIdToLong(printPlanId), file, TaskTypeEnum.EXAMINATION_IMPORT);
+        Map<String, Object> map = printCommonService.saveTask(SystemConstant.convertIdToLong(printPlanId), file, TaskTypeEnum.EXAMINATION_IMPORT);
         asyncExaminationImportTemplateService.importTask(map);
         TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
         return Objects.nonNull(tbTask) ? ResultUtil.ok(tbTask.getId()) : ResultUtil.error("创建任务失败");
@@ -78,9 +80,9 @@ public class ExamDetailController {
                                        @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
 
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         return ResultUtil.ok(examDetailService.findExaminationBriefPage(schoolId,
-                SystemConstant.convertIdToLong(printPlanId), courseCode, paperNumber, examPlace, examRoom, packageCode, pageNumber, pageSize,orgIds));
+                SystemConstant.convertIdToLong(printPlanId), courseCode, paperNumber, examPlace, examRoom, packageCode, pageNumber, pageSize, orgIds));
     }
 
     @ApiOperation(value = "考务数据导入-汇总数据查询")
@@ -94,9 +96,9 @@ public class ExamDetailController {
                                      @ApiParam(value = "卷袋号") @RequestParam(required = false) String packageCode) {
 
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         return ResultUtil.ok(examDetailService.findSummarizedData(schoolId,
-                SystemConstant.convertIdToLong(printPlanId), courseCode, paperNumber, examPlace, examRoom, packageCode,orgIds));
+                SystemConstant.convertIdToLong(printPlanId), courseCode, paperNumber, examPlace, examRoom, packageCode, orgIds));
     }
 
     @ApiOperation(value = "考务数据导入-查看明细")
@@ -112,7 +114,7 @@ public class ExamDetailController {
                                         @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
 
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        return ResultUtil.ok(examDetailService.findExaminationDetail(schoolId,SystemConstant.convertIdToLong(printPlanId),
+        return ResultUtil.ok(examDetailService.findExaminationDetail(schoolId, SystemConstant.convertIdToLong(printPlanId),
                 courseCode, paperNumber, examPlace, examRoom, studentParams, pageNumber, pageSize));
     }
 
@@ -128,11 +130,11 @@ public class ExamDetailController {
     @ApiOperation(value = "考务数据导入-查看明细弹窗")
     @RequestMapping(value = "/data_detail_list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    public Result findExaminationDetailById(@ApiParam(value = "考务场次id",required = true) @RequestParam String examDetailId,
-                                        @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
-                                        @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
+    public Result findExaminationDetailById(@ApiParam(value = "考务场次id", required = true) @RequestParam String examDetailId,
+                                            @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
+                                            @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
 
-        return ResultUtil.ok(examDetailService.findExaminationDetail(SystemConstant.convertIdToLong(examDetailId),pageNumber,pageSize));
+        return ResultUtil.ok(examDetailService.findExaminationDetail(SystemConstant.convertIdToLong(examDetailId), pageNumber, pageSize));
     }
 
     @ApiOperation(value = "考务数据导入-考点模糊查询")
@@ -163,20 +165,20 @@ public class ExamDetailController {
     @RequestMapping(value = "/data_export", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     public Result dataExport(@ApiParam(value = "印刷计划id") @RequestParam(required = false) String printPlanId,
-                           @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode,
-                           @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
-                           @ApiParam(value = "考点") @RequestParam(required = false) String examPlace,
-                           @ApiParam(value = "考场") @RequestParam(required = false) String examRoom,
-                           @ApiParam(value = "卷袋号") @RequestParam(required = false) String packageCode) {
-        Set<Long> orgIds = commonService.listSubOrgIds(null);
-        Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.EXAMINATION_EXPORT,SystemConstant.convertIdToLong(printPlanId));
-        map.put("printPlanId",printPlanId);
-        map.put("courseCode",courseCode);
-        map.put("paperNumber",paperNumber);
-        map.put("examPlace",examPlace);
-        map.put("examRoom",examRoom);
-        map.put("packageCode",packageCode);
-        map.put("orgIds",orgIds);
+                             @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode,
+                             @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
+                             @ApiParam(value = "考点") @RequestParam(required = false) String examPlace,
+                             @ApiParam(value = "考场") @RequestParam(required = false) String examRoom,
+                             @ApiParam(value = "卷袋号") @RequestParam(required = false) String packageCode) {
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+        Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.EXAMINATION_EXPORT, SystemConstant.convertIdToLong(printPlanId));
+        map.put("printPlanId", printPlanId);
+        map.put("courseCode", courseCode);
+        map.put("paperNumber", paperNumber);
+        map.put("examPlace", examPlace);
+        map.put("examRoom", examRoom);
+        map.put("packageCode", packageCode);
+        map.put("orgIds", orgIds);
         asyncExaminationExportTemplateService
                 .exportTask(map);
         TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;

+ 10 - 9
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java

@@ -1,32 +1,33 @@
 package com.qmth.distributed.print.api;
 
-
 import com.baomidou.mybatisplus.core.metadata.IPage;
-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.dto.ExamTaskDetailDto;
 import com.qmth.distributed.print.business.bean.dto.PrintTaskDto;
 import com.qmth.distributed.print.business.bean.dto.PrintTaskTotalDto;
 import com.qmth.distributed.print.business.bean.dto.RelatePaperDto;
-import com.qmth.distributed.print.business.bean.params.ArraysParams;
 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.RelatePaperParam;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.entity.ExamDetail;
-import com.qmth.distributed.print.business.entity.SysUser;
-import com.qmth.distributed.print.business.entity.TBTask;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
-import com.qmth.distributed.print.business.enums.TaskTypeEnum;
-import com.qmth.distributed.print.business.service.*;
+import com.qmth.distributed.print.business.service.ExamDetailService;
+import com.qmth.distributed.print.business.service.ExamPrintPlanService;
+import com.qmth.distributed.print.business.service.ExamTaskDetailService;
+import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.templete.execute.AsyncDownloadPdfTempleteService;
-import com.qmth.distributed.print.business.util.ServletUtil;
+import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;

+ 23 - 18
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -1,29 +1,31 @@
 package com.qmth.distributed.print.api;
 
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.bean.dto.*;
-import com.qmth.distributed.print.business.bean.params.ArraysParams;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.*;
 import com.qmth.distributed.print.business.service.*;
-import com.qmth.distributed.print.business.templete.execute.AsyncPaperReviewPdfExportService;
 import com.qmth.distributed.print.business.templete.execute.AsyncTaskReviewSampleExportService;
-import com.qmth.distributed.print.business.util.ServletUtil;
+import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
+import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicAttachment;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.UploadFileEnum;
+import com.qmth.teachcloud.common.service.BasicAttachmentService;
+import com.qmth.teachcloud.common.service.TBTaskService;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.*;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.CollectionUtils;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -67,11 +69,14 @@ public class ExamTaskController {
     private AsyncTaskReviewSampleExportService asyncTaskReviewSampleExportService;
 
     @Autowired
-    private CommonService commonService;
+    private PrintCommonService printCommonService;
 
     @Resource
     private BasicMessageService basicMessageService;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     /**
      * 查询
      *
@@ -182,7 +187,7 @@ public class ExamTaskController {
     public Result importFile(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) {
         BasicAttachment basicAttachment = null;
         try {
-            basicAttachment = basicAttachmentService.saveAttachment(file, ServletUtil.getRequestMd5(), UploadFileEnum.FILE);
+            basicAttachment = printCommonService.saveAttachment(file, ServletUtil.getRequestMd5(), UploadFileEnum.FILE);
             if (Objects.isNull(basicAttachment)) {
                 throw ExceptionResultEnum.ATTACHMENT_ERROR.exception();
             } else {
@@ -294,7 +299,7 @@ public class ExamTaskController {
         ExamTask examTask = examTaskService.getById(examTaskDetail.getExamTaskId());
         if (examTaskDetail.getOperateType().equals(ExamStatusEnum.SUBMIT.name()) && !examTask.getReview()) {
             // 校验是否可以提交打印状态
-            commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), (SysUser) ServletUtil.getRequestUser());
+            printCommonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), (SysUser) ServletUtil.getRequestUser());
         }
         //待审核状态,发送短信
         if (ExamStatusEnum.SUBMIT.equals(examTask.getStatus())) {
@@ -388,7 +393,7 @@ public class ExamTaskController {
         if (isSuccess && taskReviewLog.getReviewStatus().name().equals(ReviewStatusEnum.PASS.name())) {
             ExamTask examTask = examTaskService.getById(taskReviewLog.getExamTaskId());
             // 校验是否可以提交打印状态
-            commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
+            printCommonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
             // 发送审核通过短信通知
             basicMessageService.noticeOfExamTaskAudit(examTaskIdList, MessageEnum.NOTICE_OF_AUDIT_PASS, sysUser);
         } else if (isSuccess && taskReviewLog.getReviewStatus().name().equals(ReviewStatusEnum.NOT_PASS.name())) {
@@ -427,7 +432,7 @@ public class ExamTaskController {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
         }
         Long[] ids = arraysParams.getIds();
-        Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.SAMPLE_EXPORT);
+        Map<String, Object> map = printCommonService.saveTask(TaskTypeEnum.SAMPLE_EXPORT);
         map.put("ids", ids);
         asyncTaskReviewSampleExportService.exportTask(map);
         TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
@@ -485,10 +490,10 @@ public class ExamTaskController {
             SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
             ExamTask examTask = examTaskService.getById(examTaskDetail.getId());
             // 校验课程关联考场,是否已经提交打印
-            Boolean isCreate = commonService.checkExamDetailStatus(examTask.getSchoolId(), null, examTask.getCourseCode(), examTask.getPaperNumber());
+            Boolean isCreate = printCommonService.checkExamDetailStatus(examTask.getSchoolId(), null, examTask.getCourseCode(), examTask.getPaperNumber());
             // 校验是否可以提交打印状态
             if (isCreate) {
-                commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
+                printCommonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
             }
         }
         return ResultUtil.ok(isSuccess);
@@ -512,10 +517,10 @@ public class ExamTaskController {
             } else {
                 SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
                 // 校验课程关联考场,是否已经提交打印
-                Boolean isCreate = commonService.checkExamDetailStatus(examTask.getSchoolId(), null, examTask.getCourseCode(), examTask.getPaperNumber());
+                Boolean isCreate = printCommonService.checkExamDetailStatus(examTask.getSchoolId(), null, examTask.getCourseCode(), examTask.getPaperNumber());
                 // 校验是否可以提交打印状态
                 if (isCreate) {
-                    commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
+                    printCommonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
                 }
             }
         }

+ 24 - 19
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -5,24 +5,26 @@ import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.bean.auth.AuthBean;
-import com.qmth.distributed.print.business.bean.dto.MenuDto;
 import com.qmth.distributed.print.business.bean.params.LoginParam;
 import com.qmth.distributed.print.business.bean.result.EditResult;
-import com.qmth.distributed.print.business.bean.result.LoginResult;
-import com.qmth.distributed.print.business.entity.*;
-import com.qmth.distributed.print.business.enums.DownloadFileEnum;
-import com.qmth.distributed.print.business.enums.RoleTypeEnum;
-import com.qmth.distributed.print.business.enums.UploadFileEnum;
-import com.qmth.distributed.print.business.service.*;
-import com.qmth.distributed.print.business.util.RedisUtil;
-import com.qmth.distributed.print.business.util.ServletUtil;
+import com.qmth.distributed.print.business.entity.BasicVerifyCode;
+import com.qmth.distributed.print.business.service.BasicVerifyCodeService;
+import com.qmth.distributed.print.business.service.PrintCommonService;
+import com.qmth.teachcloud.common.bean.auth.AuthBean;
+import com.qmth.teachcloud.common.bean.dto.MenuDto;
+import com.qmth.teachcloud.common.bean.result.LoginResult;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.BasicSchool;
+import com.qmth.teachcloud.common.entity.*;
+import com.qmth.teachcloud.common.enums.DownloadFileEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.RoleTypeEnum;
+import com.qmth.teachcloud.common.enums.UploadFileEnum;
+import com.qmth.teachcloud.common.service.*;
+import com.qmth.teachcloud.common.util.RedisUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -67,7 +69,7 @@ public class SysController {
     RedisUtil redisUtil;
 
     @Resource
-    CommonService commonService;
+    PrintCommonService printCommonService;
 
     @Resource
     TBTaskService tbTaskService;
@@ -81,6 +83,9 @@ public class SysController {
     @Autowired
     private SysUserRoleService sysUserRoleService;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     /**
      * 登录
      *
@@ -118,7 +123,7 @@ public class SysController {
         }
         if (Objects.equals(login.getSchoolCode().toUpperCase(), RoleTypeEnum.ADMIN.name())) {
             userList.forEach(o -> {
-                AuthBean authBean = commonService.getUserAuth(o.getId());
+                AuthBean authBean = teachcloudCommonService.getUserAuth(o.getId());
                 if (Objects.nonNull(authBean) && Objects.nonNull(authBean.getRoleList()) && authBean.getRoleList().size() > 0) {
                     Set<RoleTypeEnum> roleType = authBean.getRoleList().stream().map(s -> s.getType()).collect(Collectors.toSet());
                     if (!roleType.contains(RoleTypeEnum.ADMIN) && !roleType.contains(RoleTypeEnum.CUSTOMER)) {
@@ -154,7 +159,7 @@ public class SysController {
                 }
             }
         }
-        return ResultUtil.ok(commonService.login(login.getPassword(), sysUser));
+        return ResultUtil.ok(teachcloudCommonService.login(login.getPassword(), sysUser));
     }
 
     /**
@@ -192,7 +197,7 @@ public class SysController {
         String loginName = loginParam.getLoginName();
         String password = loginParam.getPassword();
         QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
-        if(StringUtils.isNotBlank(loginParam.getSchoolCode())) {
+        if (StringUtils.isNotBlank(loginParam.getSchoolCode())) {
             BasicSchool basicSchool = cacheService.schoolCache(loginParam.getSchoolCode());
             wrapper.lambda().eq(SysUser::getSchoolId, basicSchool.getId());
         }
@@ -243,7 +248,7 @@ public class SysController {
                              @ApiParam(value = "上传文件类型", required = true) @RequestParam UploadFileEnum type) {
         BasicAttachment basicAttachment = null;
         try {
-            basicAttachment = basicAttachmentService.saveAttachment(file, ServletUtil.getRequestMd5(), type);
+            basicAttachment = printCommonService.saveAttachment(file, ServletUtil.getRequestMd5(), type);
             if (Objects.isNull(basicAttachment)) {
                 throw ExceptionResultEnum.ATTACHMENT_ERROR.exception();
             }
@@ -259,7 +264,7 @@ public class SysController {
             }
         }
 
-        return ResultUtil.ok(new EditResult(basicAttachment.getId(), commonService.filePreview(basicAttachment.getPath()), basicAttachment.getPages()));
+        return ResultUtil.ok(new EditResult(basicAttachment.getId(), teachcloudCommonService.filePreview(basicAttachment.getPath()), basicAttachment.getPages()));
     }
 
     @ApiOperation(value = "文件下载接口")
@@ -286,7 +291,7 @@ public class SysController {
         if (Objects.isNull(path)) {
             throw ExceptionResultEnum.PATH_NO_DATA.exception();
         }
-        return ResultUtil.ok(new EditResult(commonService.filePreview(path)));
+        return ResultUtil.ok(new EditResult(teachcloudCommonService.filePreview(path)));
     }
 
     @ApiOperation(value = "文件预览接口")
@@ -297,7 +302,7 @@ public class SysController {
             throw ExceptionResultEnum.ERROR.exception("没有附件");
         } else {
             BasicAttachment basicAttachment = basicAttachmentService.getById(Long.parseLong(id));
-            return ResultUtil.ok(new EditResult(commonService.filePreview(basicAttachment.getPath())));
+            return ResultUtil.ok(new EditResult(teachcloudCommonService.filePreview(basicAttachment.getPath())));
         }
     }
 

+ 10 - 9
distributed-print/src/main/java/com/qmth/distributed/print/api/SysOrgController.java

@@ -1,13 +1,10 @@
 package com.qmth.distributed.print.api;
 
-
-import com.itextpdf.text.log.SysoCounter;
-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.dto.OrgDto;
-import com.qmth.distributed.print.business.entity.SysOrg;
-import com.qmth.distributed.print.business.service.SysOrgService;
+import com.qmth.distributed.print.business.service.PrintCommonService;
+import com.qmth.teachcloud.common.bean.dto.OrgDto;
+import com.qmth.teachcloud.common.entity.SysOrg;
+import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.Api;
@@ -18,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 /**
@@ -36,6 +34,9 @@ public class SysOrgController {
     @Autowired
     private SysOrgService sysOrgService;
 
+    @Resource
+    PrintCommonService printCommonService;
+
     /**
      * 查询机构树
      * @return
@@ -67,7 +68,7 @@ public class SysOrgController {
     @ApiOperation(value = "启用/禁用")
     @RequestMapping(value = "/enable", method = RequestMethod.POST)
     public Result enable(@RequestBody SysOrg org) {
-        boolean isSuccess = sysOrgService.enable(org);
+        boolean isSuccess = printCommonService.enable(org);
         return ResultUtil.ok(isSuccess);
     }
 
@@ -79,7 +80,7 @@ public class SysOrgController {
     @ApiOperation(value = "删除")
     @RequestMapping(value = "/remove", method = RequestMethod.POST)
     public Result remove(@RequestBody SysOrg org) {
-        boolean isSuccess = sysOrgService.remove(org.getId());
+        boolean isSuccess = printCommonService.remove(org.getId());
         return ResultUtil.ok(isSuccess);
     }
 

+ 0 - 98
distributed-print/src/main/java/com/qmth/distributed/print/api/SysPrivilegeController.java

@@ -1,98 +0,0 @@
-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.dto.PrivilegeDto;
-import com.qmth.distributed.print.business.entity.SysPrivilege;
-import com.qmth.distributed.print.business.service.SysPrivilegeService;
-import com.qmth.teachcloud.common.util.Result;
-import com.qmth.teachcloud.common.util.ResultUtil;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * <p>
- * 菜单权限表 前端控制器
- * </p>
- *
- * @author xf
- * @since 2021-03-23
- */
-@Api(tags = "菜单权限Controller")
-@RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/privilege")
-public class SysPrivilegeController {
-
-    @Autowired
-    private SysPrivilegeService sysPrivilegeService;
-
-    /**
-     * 查询
-     *
-     * @return
-     */
-    @ApiOperation(value = "查询")
-    @RequestMapping(value = "/list", method = RequestMethod.POST)
-    public Result list() {
-        List<PrivilegeDto> privilegeDtoList = sysPrivilegeService.listPrivilegeTree();
-        return ResultUtil.ok(privilegeDtoList);
-    }
-
-    /**
-     * 查询需要授权的菜单
-     *
-     * @return
-     */
-    @ApiOperation(value = "查询需要授权的菜单")
-    @RequestMapping(value = "/list_auth", method = RequestMethod.POST)
-    public Result listAuth() {
-        List<PrivilegeDto> privilegeDtoList = sysPrivilegeService.listPrivilegeTreeAuth();
-        return ResultUtil.ok(privilegeDtoList);
-    }
-
-    /**
-     * 新增/修改
-     *
-     * @param privilege
-     * @return
-     */
-    @ApiOperation(value = "新增/修改")
-    @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public Result save( @RequestBody SysPrivilege privilege) {
-        String id = sysPrivilegeService.savePrivilege(privilege);
-        return ResultUtil.ok(id,"");
-    }
-
-    /**
-     * 删除
-     *
-     * @param privilege
-     * @return
-     */
-    @ApiOperation(value = "删除")
-    @RequestMapping(value = "/remove", method = RequestMethod.POST)
-    public Result remove(@RequestBody SysPrivilege privilege) {
-        boolean isSuccess = sysPrivilegeService.remove(privilege.getId());
-        return ResultUtil.ok(isSuccess);
-    }
-
-    /**
-     * 角色已绑定权限列表
-     *
-     * @param roleId
-     * @return
-     */
-    @ApiOperation(value = "角色已绑定权限列表")
-    @RequestMapping(value = "/get_role_privileges", method = RequestMethod.POST)
-    public Result getRolePrivileges(@RequestParam(value = "roleId", required = true) Long roleId) {
-        List<String> list = sysPrivilegeService.getRolePrivileges(roleId);
-        return ResultUtil.ok(list);
-    }
-}
-

+ 0 - 117
distributed-print/src/main/java/com/qmth/distributed/print/api/SysRoleController.java

@@ -1,117 +0,0 @@
-package com.qmth.distributed.print.api;
-
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-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.entity.SysRole;
-import com.qmth.distributed.print.business.service.SysRoleService;
-import com.qmth.teachcloud.common.util.Result;
-import com.qmth.teachcloud.common.util.ResultUtil;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * <p>
- * 角色表 前端控制器
- * </p>
- *
- * @author xf
- * @since 2021-03-23
- */
-@Api(tags = "角色Controller")
-@RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/role")
-public class SysRoleController {
-
-    @Autowired
-    private SysRoleService sysRoleService;
-
-    /**
-     * 查询
-     *
-     * @param name
-     * @param enable
-     * @param pageNumber
-     * @param pageSize
-     * @return
-     */
-    @ApiOperation(value = "查询")
-    @RequestMapping(value = "/list", method = RequestMethod.POST)
-    public Result list(@RequestParam(value = "name", required = false) String name,
-                       @RequestParam(value = "enable", required = false) Boolean enable,
-                       @RequestParam(value = "pageNumber", required = true) Integer pageNumber,
-                       @RequestParam(value = "pageSize", required = true) Integer pageSize) {
-        IPage<SysRole> userDtos = sysRoleService.list(name, enable, pageNumber, pageSize);
-        return ResultUtil.ok(userDtos);
-    }
-
-    /**
-     * 新增用户时查询角色方法
-     * @return
-     */
-    @ApiOperation(value = "新增用户时查询角色方法")
-    @RequestMapping(value = "/list_to_user", method = RequestMethod.POST)
-    public Result listToUser() {
-        List<SysRole> userDtos = sysRoleService.listToUser();
-        return ResultUtil.ok(userDtos);
-    }
-
-    /**
-     * 新增/修改
-     *
-     * @param role
-     * @return
-     */
-    @ApiOperation(value = "新增/修改")
-    @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public Result save(@RequestBody SysRole role) {
-        boolean isSuccess = sysRoleService.saveRole(role);
-        return ResultUtil.ok(isSuccess);
-    }
-
-    /**
-     * 启用/禁用
-     *
-     * @param role
-     * @return
-     */
-    @ApiOperation(value = "启用/禁用")
-    @RequestMapping(value = "/enable", method = RequestMethod.POST)
-    public Result enable(@RequestBody SysRole role) {
-        boolean isSuccess = sysRoleService.enable(role);
-        return ResultUtil.ok(isSuccess);
-    }
-
-    /**
-     * 删除
-     *
-     * @param id
-     * @return
-     */
-    @ApiOperation(value = "删除")
-    @RequestMapping(value = "/remove", method = RequestMethod.POST)
-    public Result remove(Long id) {
-        boolean isSuccess = sysRoleService.remove(id);
-        return ResultUtil.ok(isSuccess);
-    }
-
-    /**
-     * 用户已绑定角色列表
-     *
-     * @param userId
-     * @return
-     */
-    @ApiOperation(value = "用户已绑定角色列表")
-    @RequestMapping(value = "/get_user_roles", method = RequestMethod.POST)
-    public Result getUserRoles(@RequestParam(value = "userId", required = true) Long userId) {
-        List<Long> list = sysRoleService.getUserRoles(userId);
-        return ResultUtil.ok(list);
-    }
-}
-

+ 0 - 173
distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java

@@ -1,173 +0,0 @@
-package com.qmth.distributed.print.api;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-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.dto.BlurryUserDto;
-import com.qmth.distributed.print.business.bean.dto.UserDto;
-import com.qmth.distributed.print.business.bean.params.UserSaveParams;
-import com.qmth.distributed.print.business.entity.SysUser;
-import com.qmth.distributed.print.business.service.SysUserService;
-import com.qmth.teachcloud.common.util.Result;
-import com.qmth.teachcloud.common.util.ResultUtil;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-import java.security.NoSuchAlgorithmException;
-import java.util.List;
-
-/**
- * <p>
- * 用户表 前端控制器
- * </p>
- *
- * @author xf
- * @since 2021-03-23
- */
-@Api(tags = "用户Controller")
-@RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/user")
-public class SysUserController {
-    private final static Logger log = LoggerFactory.getLogger(SysUserController.class);
-
-    @Autowired
-    private SysUserService sysUserService;
-
-    /**
-     * 查询
-     *
-     * @param loginName
-     * @param roleId
-     * @param enable
-     * @return
-     */
-    @ApiOperation(value = "查询")
-    @RequestMapping(value = "/list", method = RequestMethod.POST)
-    public Result list(@RequestParam(value = "loginName", required = false) String loginName,
-                       @RequestParam(value = "roleId", required = false) String roleId,
-                       @RequestParam(value = "enable", required = false) Boolean enable,
-                       @RequestParam(value = "pageNumber", required = true) Integer pageNumber,
-                       @RequestParam(value = "pageSize", required = true) Integer pageSize) {
-        IPage<UserDto> userDtos = sysUserService.list(loginName, roleId, enable, pageNumber, pageSize);
-        return ResultUtil.ok(userDtos);
-    }
-
-    /**
-     * 查询
-     *
-     * @param realName
-     * @param enable
-     * @return
-     */
-    @ApiOperation(value = "查询")
-    @RequestMapping(value = "/list_customer", method = RequestMethod.POST)
-    public Result listCustomer(@RequestParam(value = "realName", required = false) String realName,
-                               @RequestParam(value = "enable", required = false) Boolean enable,
-                               @RequestParam(value = "pageNumber", required = true) Integer pageNumber,
-                               @RequestParam(value = "pageSize", required = true) Integer pageSize) {
-        IPage<UserDto> userDtos = sysUserService.listCustomer(realName, enable, pageNumber, pageSize);
-        return ResultUtil.ok(userDtos);
-    }
-
-    /**
-     * 根据科目查询命题老师
-     *
-     * @param courseCode
-     * @param param
-     * @return
-     */
-    @ApiOperation(value = "根据科目查询命题老师")
-    @RequestMapping(value = "/user_list", method = RequestMethod.POST)
-    public Result userQuery(@RequestParam(value = "courseCode", required = false) String courseCode,
-                            @RequestParam(value = "param", required = false) String param) {
-        List<BlurryUserDto> list = sysUserService.listUser(courseCode, param);
-        return ResultUtil.ok(list);
-    }
-
-    /**
-     * 新增/修改
-     *
-     * @param userSaveParams
-     * @return
-     */
-    @ApiOperation(value = "新增/修改")
-    @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public Result save(@ApiParam(value = "用户信息", required = true) @Valid @RequestBody UserSaveParams userSaveParams, BindingResult bindingResult) {
-        if (bindingResult.hasErrors()) {
-            return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
-        }
-        return ResultUtil.ok(sysUserService.saveUser(userSaveParams));
-    }
-
-    /**
-     * 新增客服
-     *
-     * @param userSaveParams
-     * @return
-     */
-    @ApiOperation(value = "新增客服")
-    @RequestMapping(value = "/save_customer", method = RequestMethod.POST)
-    public Result saveCustomer(@ApiParam(value = "用户信息", required = true) @Valid @RequestBody UserSaveParams userSaveParams, BindingResult bindingResult) {
-        if (bindingResult.hasErrors()) {
-            return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
-        }
-        return ResultUtil.ok(sysUserService.saveCustomer(userSaveParams));
-    }
-
-    /**
-     * 启用/禁用
-     *
-     * @param user
-     * @return
-     */
-    @ApiOperation(value = "启用/禁用")
-    @RequestMapping(value = "/enable", method = RequestMethod.POST)
-    public Result enable(@RequestBody SysUser user) throws NoSuchAlgorithmException {
-        return ResultUtil.ok(sysUserService.enable(user));
-    }
-
-    /**
-     * 重置密码
-     *
-     * @param user
-     * @return
-     */
-    @ApiOperation(value = "重置密码")
-    @RequestMapping(value = "/reset_password", method = RequestMethod.POST)
-    public Result resetPassword(@RequestBody SysUser user) throws NoSuchAlgorithmException {
-        return ResultUtil.ok(sysUserService.resetPassword(user.getId()));
-    }
-
-    /**
-     * 修改密码
-     *
-     * @return
-     */
-    @ApiOperation(value = "修改密码")
-    @RequestMapping(value = "/update_password", method = RequestMethod.POST)
-    public Result updatePassword(@RequestBody SysUser user) throws NoSuchAlgorithmException {
-        return ResultUtil.ok(sysUserService.updatePassword(user));
-    }
-
-    /**
-     * 绑定角色
-     *
-     * @param sysUser
-     * @return
-     */
-    @ApiOperation(value = "绑定角色")
-    @RequestMapping(value = "/bind_roles", method = RequestMethod.POST)
-    public Result bindRoles(@RequestBody SysUser sysUser) {
-        boolean isSuccess = sysUserService.bindRoles(sysUser);
-        return ResultUtil.ok(isSuccess);
-    }
-}
-

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

@@ -4,20 +4,20 @@ import com.alibaba.fastjson.JSONArray;
 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.distributed.print.business.bean.params.ArraysParams;
 import com.qmth.distributed.print.business.bean.result.EditResult;
-import com.qmth.distributed.print.business.bean.result.TaskListResult;
-import com.qmth.distributed.print.business.entity.SysUser;
-import com.qmth.distributed.print.business.entity.TBTask;
-import com.qmth.distributed.print.business.enums.TaskResultEnum;
-import com.qmth.distributed.print.business.enums.TaskStatusEnum;
-import com.qmth.distributed.print.business.enums.TaskTypeEnum;
-import com.qmth.distributed.print.business.service.TBTaskService;
 import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
-import com.qmth.distributed.print.business.util.ServletUtil;
+import com.qmth.teachcloud.common.bean.params.ArraysParams;
+import com.qmth.teachcloud.common.bean.result.TaskListResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.entity.TBTask;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.*;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;

+ 3 - 6
distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java

@@ -1,18 +1,15 @@
 package com.qmth.distributed.print.api;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.boot.core.enums.Platform;
 import com.qmth.distributed.print.business.bean.result.WorkResult;
-import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.enums.ExamStatusEnum;
 import com.qmth.distributed.print.business.service.ExamTaskService;
-import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
@@ -53,7 +50,7 @@ public class WorkController {
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = WorkResult.class)})
     public Result examTaskReadyCount() {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(examTaskService.queryUserByMyWork(new Page<>(SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE), sysUser.getId(), sysUser.getSchoolId(), ExamStatusEnum.READY.name(),  ExamStatusEnum.STAGE.name()).getRecords().size());
+        return ResultUtil.ok(examTaskService.queryUserByMyWork(new Page<>(SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE), sysUser.getId(), sysUser.getSchoolId(), ExamStatusEnum.READY.name(), ExamStatusEnum.STAGE.name()).getRecords().size());
     }
 
     @ApiOperation(value = "命题分配待办接口")

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/aspect/ApiControllerAspect.java

@@ -1,9 +1,9 @@
 package com.qmth.distributed.print.aspect;
 
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.teachcloud.common.util.JacksonUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;

+ 8 - 8
distributed-print/src/main/java/com/qmth/distributed/print/auth/DistributedPrintAuthenticationService.java

@@ -3,16 +3,16 @@ package com.qmth.distributed.print.auth;
 import com.qmth.boot.core.security.model.AccessEntity;
 import com.qmth.boot.core.security.service.AuthorizationService;
 import com.qmth.boot.tools.signature.SignatureType;
-import com.qmth.distributed.print.business.bean.auth.AuthBean;
-import com.qmth.distributed.print.business.entity.SysUser;
-import com.qmth.distributed.print.business.entity.TBSession;
-import com.qmth.distributed.print.business.enums.PrivilegePropertyEnum;
-import com.qmth.distributed.print.business.enums.RoleTypeEnum;
-import com.qmth.distributed.print.business.service.CacheService;
-import com.qmth.distributed.print.business.service.TBSessionService;
-import com.qmth.distributed.print.business.util.ServletUtil;
+import com.qmth.teachcloud.common.bean.auth.AuthBean;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.entity.TBSession;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.PrivilegePropertyEnum;
+import com.qmth.teachcloud.common.enums.RoleTypeEnum;
+import com.qmth.teachcloud.common.service.CacheService;
+import com.qmth.teachcloud.common.service.TBSessionService;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;

+ 2 - 2
distributed-print/src/main/java/com/qmth/distributed/print/auth/DistributedPrintSession.java

@@ -2,9 +2,9 @@ package com.qmth.distributed.print.auth;
 
 import com.qmth.boot.core.security.model.AccessEntity;
 import com.qmth.boot.tools.signature.SignatureType;
-import com.qmth.distributed.print.business.entity.TBSession;
-import com.qmth.distributed.print.business.util.RedisUtil;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
+import com.qmth.teachcloud.common.entity.TBSession;
+import com.qmth.teachcloud.common.util.RedisUtil;
 
 import java.util.Collection;
 

+ 5 - 5
distributed-print/src/main/java/com/qmth/distributed/print/interceptor/AuthInterceptor.java

@@ -1,7 +1,7 @@
 package com.qmth.distributed.print.interceptor;
 
 import com.qmth.boot.api.interceptor.ExtendInterceptor;
-import com.qmth.distributed.print.business.util.AuthUtil;
+import com.qmth.teachcloud.common.util.AuthUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
@@ -22,11 +22,11 @@ public class AuthInterceptor extends ExtendInterceptor {
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         log.info("preHandle is come in");
-        if (request.getServletPath().contains(endpoint)) {
+//        if (request.getServletPath().contains(endpoint)) {
             return true;
-        } else {
-            return AuthUtil.adminAuthInterceptor(request, response);
-        }
+//        } else {
+//            return AuthUtil.adminAuthInterceptor(request, response);
+//        }
     }
 
     @Override

+ 5 - 4
distributed-print/src/main/java/com/qmth/distributed/print/start/StartRunning.java

@@ -1,8 +1,9 @@
 package com.qmth.distributed.print.start;
 
-import com.qmth.distributed.print.business.service.OrgCenterDataDisposeService;
-import com.qmth.distributed.print.business.service.TBTaskService;
+import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.service.OrgCenterDataDisposeService;
+import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.task.enums.JobEnum;
 import com.qmth.teachcloud.task.job.*;
 import com.qmth.teachcloud.task.service.QuartzService;
@@ -33,7 +34,7 @@ public class StartRunning implements CommandLineRunner {
     private OrgCenterDataDisposeService orgCenterDataDisposeService;
 
     @Resource
-    TBTaskService taskService;
+    PrintCommonService printCommonService;
 
     @Override
     public void run(String... args) throws Exception {
@@ -41,7 +42,7 @@ public class StartRunning implements CommandLineRunner {
         SystemConstant.initTempFiles();
         orgCenterDataDisposeService.updateSchoolInfo();
 
-        taskService.updateStatus();
+        printCommonService.updateStatus();
 
         log.info("增加学校信息同步定时任务 start");
         Map schoolJobMap = new HashMap();

+ 1 - 1
distributed-print/src/main/resources/application.properties

@@ -68,7 +68,7 @@ org.center.orgQueryApi=/api/open/org/query
 #com.qmth.api.uri-prefix=/aaa
 #\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
 com.qmth.api.metrics-endpoint=/metrics-count
-com.qmth.api.global-auth=false
+com.qmth.api.global-auth=true
 #com.qmth.api.global-strict=false
 #com.qmth.api.global-rate-limit=1/5s
 

+ 7 - 10
distributed-print/src/test/java/com/qmth/distributed/print/BasicDataImportTest.java

@@ -1,23 +1,20 @@
 package com.qmth.distributed.print;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.itextpdf.text.log.SysoCounter;
-import com.qmth.distributed.print.business.entity.*;
-import com.qmth.distributed.print.business.enums.RoleTypeEnum;
-import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.*;
+import com.qmth.teachcloud.common.enums.RoleTypeEnum;
+import com.qmth.teachcloud.common.service.*;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.apache.xmlbeans.impl.schema.SchemaTypeSystemCompiler;
 import org.junit.Test;
 import org.junit.platform.commons.util.StringUtils;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -110,7 +107,7 @@ public class BasicDataImportTest {
             QueryWrapper<SysUser> userQueryWrapper = new QueryWrapper<>();
             userQueryWrapper.lambda().eq(SysUser::getSchoolId, schoolId).eq(SysUser::getLoginName, loginName);
             SysUser sysUser = sysUserService.getOne(userQueryWrapper);
-            if(sysUser == null){
+            if (sysUser == null) {
                 sysUser = new SysUser();
                 sysUser.setId(SystemConstant.getDbUuid());
                 sysUser.setSchoolId(schoolId);
@@ -147,8 +144,8 @@ public class BasicDataImportTest {
 
             // sys_user_course
             String courseCodeses = userMap.get("courseCode");
-            if(roleType.equals(RoleTypeEnum.QUESTION_TEACHER.name())){
-                if(StringUtils.isBlank(courseCodeses)){
+            if (roleType.equals(RoleTypeEnum.QUESTION_TEACHER.name())) {
+                if (StringUtils.isBlank(courseCodeses)) {
                     throw new Exception("命题老师课程不能为空");
                 }
 
@@ -159,7 +156,7 @@ public class BasicDataImportTest {
                     QueryWrapper<BasicCourse> basicCourseQueryWrapper = new QueryWrapper<>();
                     basicCourseQueryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId).eq(BasicCourse::getCode, coursees[0]);
                     BasicCourse basicCourse = basicCourseService.getOne(basicCourseQueryWrapper);
-                    if(basicCourse == null){
+                    if (basicCourse == null) {
                         throw new Exception("命题老师对应课程不存在");
                     }
                     BasicUserCourse basicUserCourse = new BasicUserCourse();

+ 8 - 8
distributed-print/src/test/java/com/qmth/distributed/print/BasicUserImportTest.java

@@ -2,10 +2,10 @@ package com.qmth.distributed.print;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.qmth.distributed.print.business.entity.*;
-import com.qmth.distributed.print.business.enums.RoleTypeEnum;
-import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.*;
+import com.qmth.teachcloud.common.enums.RoleTypeEnum;
+import com.qmth.teachcloud.common.service.*;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
@@ -109,7 +109,7 @@ public class BasicUserImportTest {
             QueryWrapper<SysUser> userQueryWrapper = new QueryWrapper<>();
             userQueryWrapper.lambda().eq(SysUser::getSchoolId, schoolId).eq(SysUser::getLoginName, loginName);
             SysUser sysUser = sysUserService.getOne(userQueryWrapper);
-            if(sysUser == null){
+            if (sysUser == null) {
                 sysUser = new SysUser();
                 sysUser.setId(SystemConstant.getDbUuid());
                 sysUser.setSchoolId(schoolId);
@@ -158,8 +158,8 @@ public class BasicUserImportTest {
 
             // sys_user_course
             String courseCodeses = userMap.get("courseCode");
-            if(roleType.equals(RoleTypeEnum.QUESTION_TEACHER.name())){
-                if(StringUtils.isBlank(courseCodeses)){
+            if (roleType.equals(RoleTypeEnum.QUESTION_TEACHER.name())) {
+                if (StringUtils.isBlank(courseCodeses)) {
                     throw new Exception("命题老师课程不能为空");
                 }
 
@@ -170,8 +170,8 @@ public class BasicUserImportTest {
                     QueryWrapper<BasicCourse> basicCourseQueryWrapper = new QueryWrapper<>();
                     basicCourseQueryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId).eq(BasicCourse::getCode, coursees[0]);
                     BasicCourse basicCourse = basicCourseService.getOne(basicCourseQueryWrapper);
-                    if(basicCourse == null){
-                        throw new Exception("命题老师对应课程不存在,"+ coursees[0]);
+                    if (basicCourse == null) {
+                        throw new Exception("命题老师对应课程不存在," + coursees[0]);
                     }
                     BasicUserCourse basicUserCourse = new BasicUserCourse();
                     basicUserCourse.setId(SystemConstant.getDbUuid());

+ 6 - 4
distributed-print/src/test/java/com/qmth/distributed/print/ServiceTest.java

@@ -3,10 +3,12 @@ package com.qmth.distributed.print;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.distributed.print.business.bean.result.TemplatePrintInfoResult;
-import com.qmth.distributed.print.business.entity.BasicCourse;
 import com.qmth.distributed.print.business.enums.MessageEnum;
 import com.qmth.distributed.print.business.service.*;
-import com.qmth.distributed.print.business.util.ConvertUtil;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicCourse;
+import com.qmth.teachcloud.common.service.BasicCourseService;
+import com.qmth.teachcloud.common.util.ConvertUtil;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -97,10 +99,10 @@ public class ServiceTest {
     }
 
     @Test
-    public void like(){
+    public void like() {
         QueryWrapper<BasicCourse> queryWrapper = new QueryWrapper<>();
         String name = "_";
-        queryWrapper.lambda().like(BasicCourse::getName,ConvertUtil.translateSpecificSign(name));
+        queryWrapper.lambda().like(BasicCourse::getName, SystemConstant.translateSpecificSign(name));
         List<BasicCourse> basicCourseList = basicCourseService.list(queryWrapper);
         System.out.println(JSON.toJSONString(basicCourseList));
     }

+ 20 - 0
teachcloud-common/pom.xml

@@ -82,5 +82,25 @@
             <groupId>com.github.xiaoymin</groupId>
             <artifactId>swagger-bootstrap-ui</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-fileupload</groupId>
+            <artifactId>commons-fileupload</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml-schemas</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+        </dependency>
     </dependencies>
 </project>

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно