Selaa lähdekoodia

fss改造和部分bug

caozixuan 2 vuotta sitten
vanhempi
commit
70a32e4c21
41 muutettua tiedostoa jossa 382 lisäystä ja 265 poistoa
  1. 6 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java
  2. 3 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java
  3. 5 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DownloadServiceImpl.java
  4. 5 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java
  5. 5 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  6. 6 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchServiceImpl.java
  7. 17 28
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java
  8. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TSyncExamStudentScoreServiceImpl.java
  9. 6 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java
  10. 3 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/export/AsyncExportTaskTemplete.java
  11. 4 10
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java
  12. 3 11
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/push/AsyncPushTaskTemplate.java
  13. 16 15
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java
  14. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java
  15. 3 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/FreemarkerUtil.java
  16. 3 7
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/HtmlToJpgUtil.java
  17. 4 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfUtil.java
  18. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java
  19. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/start/StartRunning.java
  20. 14 9
      distributed-print/src/main/resources/application-dev.properties
  21. 34 34
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicSemesterParams.java
  22. 12 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/config/DictionaryConfig.java
  23. 34 31
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java
  24. 28 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/FssLocalFileDomain.java
  25. 28 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/FssLocalPdfDomain.java
  26. 10 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysRole.java
  27. 27 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/LocalCatalogEnum.java
  28. 2 10
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AttachmentCommonServiceImpl.java
  29. 1 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AuthInfoServiceImpl.java
  30. 4 8
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicAttachmentServiceImpl.java
  31. 7 12
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCourseServiceImpl.java
  32. 3 7
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicSemesterServiceImpl.java
  33. 15 16
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicStudentServiceImpl.java
  34. 1 8
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java
  35. 7 6
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java
  36. 36 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/FileStoreUtil.java
  37. 3 3
      teachcloud-common/src/main/resources/mapper/SysRoleMapper.xml
  38. 3 7
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java
  39. 2 2
      teachcloud-report/src/main/resources/application-dev.properties
  40. 1 1
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/start/StartRunning.java
  41. 15 9
      teachcloud-task/src/main/resources/application-task.properties

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

@@ -16,6 +16,7 @@ import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatch;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatchParams;
 import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberMatchResult;
+import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -112,6 +113,9 @@ public class ActivitiServiceImpl implements ActivitiService {
     @Resource
     BasicMessageService basicMessageService;
 
+    @Resource
+    DictionaryConfig dictionaryConfig;
+
     /**
      * 启动流程
      *
@@ -227,7 +231,7 @@ public class ActivitiServiceImpl implements ActivitiService {
         //保存png图片(这一步可做可不做)
         InputStream processDiagram = repositoryService.getProcessDiagram(processDefinitionId);
         try {
-            FileUtils.copyInputStreamToFile(processDiagram, new File(SystemConstant.TEMP_FILES_DIR + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnPngName));
+            FileUtils.copyInputStreamToFile(processDiagram, new File(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnPngName));
         } catch (IOException e) {
             e.printStackTrace();
         }
@@ -255,7 +259,7 @@ public class ActivitiServiceImpl implements ActivitiService {
         //保存xml文件(这一步可做可不做)
         InputStream processBpmn = repositoryService.getResourceAsStream(deployment.getId(), bpmnName);
         try {
-            FileUtils.copyInputStreamToFile(processBpmn, new File(SystemConstant.TEMP_FILES_DIR + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnProcessName));
+            FileUtils.copyInputStreamToFile(processBpmn, new File(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnProcessName));
         } catch (IOException e) {
             e.printStackTrace();
         }

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

@@ -15,6 +15,7 @@ import com.qmth.teachcloud.common.bean.dto.stmms.PicConfig;
 import com.qmth.teachcloud.common.bean.dto.stmms.QuestionBaseDTO;
 import com.qmth.teachcloud.common.bean.dto.stmms.QuestionDTO;
 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.BasicAttachment;
 import com.qmth.teachcloud.common.entity.SysOrg;
@@ -545,7 +546,8 @@ public class DataSyncServiceImpl implements DataSyncService {
      * @param type 同步类型
      */
     private String getTempDir(SyncFileTypeEnum type) {
-        return SystemConstant.TEMP_FILES_DIR + File.separator + "upload-temp" + File.separator + type.name().toLowerCase() + File.separator + System.currentTimeMillis();
+        DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
+        return dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + "upload-temp" + File.separator + type.name().toLowerCase() + File.separator + System.currentTimeMillis();
     }
 
     /**

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

@@ -19,6 +19,7 @@ import com.qmth.distributed.print.business.service.ExamCardDetailService;
 import com.qmth.distributed.print.business.service.ExamPrintPlanService;
 import com.qmth.distributed.print.business.util.CreatePdfUtil;
 import com.qmth.distributed.print.business.util.HtmlToPdfUtil;
+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.CardCreateMethodEnum;
@@ -77,6 +78,9 @@ public class DownloadServiceImpl implements DownloadService {
     @Resource
     SysOrgService sysOrgService;
 
+    @Resource
+    DictionaryConfig dictionaryConfig;
+
     @Override
     public IPage<ExamTaskDetailDto> page(Long semesterId, Long examId, Long orgId, String courseName, Integer pageNumber, Integer pageSize) {
         Page<ExamTaskDetailDto> page = new Page<>(pageNumber, pageSize);
@@ -106,7 +110,7 @@ public class DownloadServiceImpl implements DownloadService {
         String paperAttachmentIds = examTaskDetail.getPaperAttachmentIds();
         List<JSONObject> jsonObjectList = JSONObject.parseArray(paperAttachmentIds, JSONObject.class);
         // 本地存储目录
-        String rootPath = SystemConstant.TEMP_FILES_DIR + File.separator + System.currentTimeMillis();
+        String rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
         List<File> fileList = new ArrayList<>();
         // 试卷
         List<String> unexposedPaperTypes = Arrays.asList(unexposedPaperType.split(","));

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

@@ -19,6 +19,7 @@ import com.qmth.distributed.print.business.mapper.ExamCardMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.util.HtmlToJpgUtil;
 import com.qmth.teachcloud.common.bean.params.ArraysParams;
+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.entity.SysUser;
@@ -74,6 +75,9 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
     @Resource
     HtmlToJpgUtil htmlToJpgUtil;
 
+    @Resource
+    DictionaryConfig dictionaryConfig;
+
     @Transactional
     @Override
     public String saveExamCard(ExamCardParams examCardParams) throws Exception {
@@ -255,7 +259,7 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
     public void downloadFiles(HttpServletResponse response, ArraysParams arraysParams) throws Exception {
         // 路径规则:download-temp/{time}/{schoolId}/{courseCode}-{couseName}/{paperNumber}/{fileName}
         long time = System.nanoTime();
-        String rootPath = SystemConstant.TEMP_FILES_DIR + File.separator + time;
+        String rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + time;
 
         Long[] cardIds = arraysParams.getIds();
         // 根据题卡取命题任务

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

@@ -22,6 +22,7 @@ import com.qmth.distributed.print.business.util.CreatePdfUtil;
 import com.qmth.distributed.print.business.util.HtmlToPdfUtil;
 import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
 import com.qmth.teachcloud.common.bean.dto.MqDto;
+import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.*;
@@ -182,6 +183,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Resource
     BasicSemesterService basicSemesterService;
 
+    @Resource
+    DictionaryConfig dictionaryConfig;
+
     @Override
     public List<ExamTask> listByCourseCode(Long schoolId, String code) {
         QueryWrapper<ExamTask> queryWrapper = new QueryWrapper<>();
@@ -928,7 +932,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         String paperAttachmentIds = examTaskDetail.getPaperAttachmentIds();
         List<JSONObject> jsonObjectList = JSONObject.parseArray(paperAttachmentIds, JSONObject.class);
         // 本地保存目录
-        String rootPath = SystemConstant.TEMP_FILES_DIR + File.separator + System.currentTimeMillis();
+        String rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
         List<File> fileList = new ArrayList<>();
         // 试卷
         for (JSONObject jsonObject : jsonObjectList) {

+ 6 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchServiceImpl.java

@@ -89,6 +89,9 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
     @Resource
     TeachCloudReportTaskUtils teachCloudReportTaskUtils;
 
+    @Resource
+    DictionaryConfig dictionaryConfig;
+
     @Override
     public IPage<GradeBatchResult> gradeBatchPage(String batchName, int pageNumber, int pageSize, SysUser requestUser) {
         batchName = SystemConstant.translateSpecificSign(batchName);
@@ -366,7 +369,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
                 LocalDateTime nowTime = LocalDateTime.now();
                 StringJoiner stringJoiner = new StringJoiner("");
                 if (!oss) {
-                    stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                    stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
                 }
                 stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
                 stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -391,16 +394,11 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
 
                 if (oss) {//上传至oss\
                     String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
-                    fileStoreUtil.ossUpload(dirName, inputStream, DigestUtils.md5Hex(inputStream), UploadFileEnum.FILE.getFssType());
+                    fileStoreUtil.ossUpload(dirName, inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), UploadFileEnum.FILE.getFssType());
                     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(inputStream, finalFile);
+                    fileStoreUtil.copyInputStreamToFile(inputStream,new File(stringJoiner.toString()),DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)),LocalCatalogEnum.LOCAL_FILE);
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                     jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
                 }

+ 17 - 28
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java

@@ -160,18 +160,18 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             File htmlFile = null;
             if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.FTL_PREFIX)) {
                 filePath = (String) jsonObject.get(SystemConstant.HTML_PATH);
-                if (filePath.contains(SystemConstant.TEMP_FILES_DIR)) {
+                if (filePath.contains(dictionaryConfig.fssLocalFileDomain().getConfig())) {
                     url = filePath;
                 } else {
-                    url = SystemConstant.TEMP_FILES_DIR + File.separator + filePath;
+                    url = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + filePath;
                 }
                 htmlFile = new File(url);
             } else if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.HTML_PREFIX)) {
                 filePath = (String) jsonObject.get(SystemConstant.PATH);
-                if (filePath.contains(SystemConstant.TEMP_FILES_DIR)) {
+                if (filePath.contains(dictionaryConfig.fssLocalFileDomain().getConfig())) {
                     url = filePath;
                 } else {
-                    url = SystemConstant.TEMP_FILES_DIR + File.separator + filePath;
+                    url = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + filePath;
                 }
                 UploadFileEnum uploadType = Enum.valueOf(UploadFileEnum.class, (String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
 //                htmlFile = ossUtil.ossDownload(filePath, url);
@@ -191,7 +191,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
 
             String pdfDirName = pdfStringJoiner.toString();
             String pdfDirNameStr = pdfStringJoiner.toString().replace("\\", "/");
-            String destUrl = SystemConstant.PDF_TEMP_FILES_DIR + File.separator + pdfDirName;
+            String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
 
             File pdfFile = new File(destUrl);
             if (!pdfFile.exists()) {
@@ -284,7 +284,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
-                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
             }
             stringJoiner.add(UploadFileEnum.HTML.getTitle()).add(File.separator)
                     .add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -300,7 +300,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 fileStoreUtil.ossUpload(dirName, htmlContent, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
-                String url = SystemConstant.TEMP_FILES_DIR + File.separator + dirName;
+                String url = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + dirName;
 //                File localHtmlFile = ossUtil.ossDownload(dirName, url);
                 File localHtmlFile = fileStoreUtil.ossDownload(dirName, url, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 StringJoiner pdfStringJoiner = new StringJoiner("");
@@ -311,7 +311,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 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;
+                String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
 //                destUrl = destUrl.replaceAll("\\\\","/");
 
                 HtmlToPdfUtil.convert(localHtmlFile.getPath(), destUrl, PageSizeEnum.A3);
@@ -393,7 +393,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
-                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
             }
             stringJoiner.add(UploadFileEnum.HTML.getTitle()).add(File.separator)
                     .add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -409,7 +409,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 fileStoreUtil.ossUpload(dirName, htmlContent, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
-                String url = SystemConstant.TEMP_FILES_DIR + File.separator + dirName;
+                String url = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + dirName;
                 File localHtmlFile = fileStoreUtil.ossDownload(dirName, url, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 StringJoiner pdfStringJoiner = new StringJoiner("");
                 pdfStringJoiner.add(UploadFileEnum.PDF.getTitle()).add(File.separator);
@@ -419,7 +419,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 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;
+                String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
 //                destUrl = destUrl.replaceAll("\\\\","/");
 
                 HtmlToPdfUtil.convert(localHtmlFile.getPath(), destUrl, PageSizeEnum.A4);
@@ -532,7 +532,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
-                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
             }
             stringJoiner.add(type.getTitle()).add(File.separator);
 //            else if (type == UploadFileEnum.PAPER) {//试卷需要单独
@@ -546,21 +546,15 @@ public class PrintCommonServiceImpl implements PrintCommonService {
 
             JSONObject jsonObject = new JSONObject();
             stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(format);
+            String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
             if (oss) {//上传至oss\
-                String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
                 fileStoreUtil.ossUpload(dirName, file.getInputStream(), md5, type.getFssType());
-
                 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);
+                fileStoreUtil.localUpload(dirName,file.getInputStream(),md5,LocalCatalogEnum.LOCAL_FILE);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
-                jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
+                jsonObject.put(SystemConstant.PATH, dirName);
             }
             jsonObject.put(SystemConstant.UPLOAD_TYPE, type);
 
@@ -1117,7 +1111,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
-                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
             }
             stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
             stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -1130,12 +1124,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 fileStoreUtil.ossUpload(dirName, inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(fos.toByteArray())), UploadFileEnum.FILE.getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
             } else {
-                File finalFile = new File(stringJoiner.toString());
-                if (!finalFile.exists()) {
-                    finalFile.getParentFile().mkdirs();
-                    finalFile.createNewFile();
-                }
-                FileUtils.copyInputStreamToFile(inputStream, finalFile);
+                fileStoreUtil.copyInputStreamToFile(inputStream,new File(stringJoiner.toString()),DigestUtils.md5Hex(new ByteArrayInputStream(fos.toByteArray())),LocalCatalogEnum.LOCAL_FILE);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
             }
             jsonObject.put(SystemConstant.PATH, dirName);

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

@@ -124,7 +124,7 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
             Optional.ofNullable(tSyncExamStudentScore.getSheetUrls()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未获取到考生原卷地址"));
             Optional.ofNullable(tSyncExamStudentScore.getSyncData()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未获取到考生作答数据"));
             StringJoiner stringJoiner = new StringJoiner("");
-            stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+            stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
             List<String> trailUrlsList = tSyncExamStudentScore.getTrailUrls();
 
             String hostUrl = SystemConstant.getLocalFileHostByUserId(dictionaryConfig.sysDomain().getFileHost(), userId);
@@ -300,7 +300,7 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
         try {
             if (Objects.nonNull(tSyncExamStudentScore.getTrajectoryFileList())) {
                 StringJoiner stringJoiner = new StringJoiner("");
-                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
                 LocalDateTime nowTime = LocalDateTime.now();
                 StringJoiner dirZipName = new StringJoiner("");
                 dirZipName.add(UploadFileEnum.FILE.getTitle()).add(File.separator)

+ 6 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java

@@ -87,10 +87,12 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
     public List<DictionaryResult> findBasicCourseByUser(SysUser requestUser) {
         Long userId = requestUser.getId();
         Set<Long> orgIdSet = sysOrgService.findDeepOrgIdListByUserId(userId);
-        List<BasicCourse> basicCourseList = basicCourseService.list(new QueryWrapper<BasicCourse>()
-                .lambda()
-                .in(BasicCourse::getTeachingRoomId, orgIdSet)
-                .eq(BasicCourse::getEnable, true));
+        QueryWrapper<BasicCourse> basicCourseQueryWrapper = new QueryWrapper<>();
+        basicCourseQueryWrapper.lambda().eq(BasicCourse::getEnable, true);
+        if (orgIdSet.size() > 0){
+            basicCourseQueryWrapper.lambda().in(BasicCourse::getTeachingRoomId, orgIdSet);
+        }
+        List<BasicCourse> basicCourseList = basicCourseService.list(basicCourseQueryWrapper);
 
         List<DictionaryResult> resultList = new ArrayList<>();
         for (BasicCourse basicCourse : basicCourseList) {

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

@@ -9,6 +9,7 @@ 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.TBTask;
+import com.qmth.teachcloud.common.enums.LocalCatalogEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
@@ -85,7 +86,7 @@ public abstract class AsyncExportTaskTemplete {
                 if (Objects.nonNull(dictionaryConfig) && dictionaryConfig.sysDomain().isOss()) {
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 } else {
-                    stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                    stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                 }
                 stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
@@ -126,7 +127,7 @@ public abstract class AsyncExportTaskTemplete {
                     finalFile.getParentFile().mkdirs();
                     finalFile.createNewFile();
                 }
-                FileUtils.copyInputStreamToFile(inputStream, finalFile);
+                fileStoreUtil.copyInputStreamToFile(inputStream,finalFile,DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), LocalCatalogEnum.LOCAL_FILE);
             }
             JSONObject json = new JSONObject();
             json.put(SystemConstant.PATH, stringJoiner.toString());

+ 4 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java

@@ -7,10 +7,7 @@ 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.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.enums.*;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.service.SysConfigService;
 import com.qmth.teachcloud.common.service.TBTaskService;
@@ -82,6 +79,7 @@ public abstract class AsyncImportTaskTemplete {
         } else {
 //            StringJoiner localPath = new StringJoiner("").add(SystemConstant.TEMP_FILES_DIR).add(File.separator).add(path);
             inputStream = new FileInputStream(new File(path));
+//            inputStream = fileStoreUtil.ossDownloadIs(path, "localfile");
         }
         return inputStream;
     }
@@ -139,12 +137,8 @@ public abstract class AsyncImportTaskTemplete {
                 FileStoreUtil fileStoreUtil = SpringContextHolder.getBean(FileStoreUtil.class);
                 fileStoreUtil.ossUpload(stringJoiner.toString(), inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), fileStoreUtil.getUploadEnumByPath(stringJoiner.toString()).getFssType());
             } else {//上传至服务器
-                File finalFile = new File(stringJoiner.toString());
-                if (!finalFile.exists()) {
-                    finalFile.getParentFile().mkdirs();
-                    finalFile.createNewFile();
-                }
-                FileUtils.copyInputStreamToFile(inputStream, finalFile);
+                FileStoreUtil fileStoreUtil = SpringContextHolder.getBean(FileStoreUtil.class);
+                fileStoreUtil.copyInputStreamToFile(inputStream,new File(stringJoiner.toString()),DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)),LocalCatalogEnum.LOCAL_FILE);
             }
             JSONObject json = new JSONObject();
             json.put(SystemConstant.PATH, stringJoiner.toString());

+ 3 - 11
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/push/AsyncPushTaskTemplate.java

@@ -11,10 +11,7 @@ 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.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.enums.*;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.service.SysConfigService;
 import com.qmth.teachcloud.common.service.TBTaskService;
@@ -101,7 +98,7 @@ public abstract class AsyncPushTaskTemplate {
             if (oss) {
                 json.put(SystemConstant.TYPE, SystemConstant.OSS);
             } else {
-                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
                 json.put(SystemConstant.TYPE, SystemConstant.LOCAL);
             }
             stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
@@ -118,12 +115,7 @@ public abstract class AsyncPushTaskTemplate {
             if (Objects.equals(type, SystemConstant.OSS)) {
                 fileStoreUtil.ossUpload(path, inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), fileStoreUtil.getUploadEnumByPath(stringJoiner.toString()).getFssType());
             } else {//上传至服务器
-                File finalFile = new File(stringJoiner.toString());
-                if (!finalFile.exists()) {
-                    finalFile.getParentFile().mkdirs();
-                    finalFile.createNewFile();
-                }
-                FileUtils.copyInputStreamToFile(inputStream, finalFile);
+                fileStoreUtil.copyInputStreamToFile(inputStream,new File(stringJoiner.toString()),DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), LocalCatalogEnum.LOCAL_FILE);
             }
             json.put(SystemConstant.PATH, path);
             json.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);

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

@@ -640,7 +640,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
 //        UploadFileEnum.FILE/
         LocalDateTime nowTime = LocalDateTime.now();
         StringJoiner stringJoiner = new StringJoiner("");
-        stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+        stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
         stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
 
         stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -658,7 +658,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
             jsonObject.put(SystemConstant.PATH, dirName);
         } else {
-            FileUtils.copyInputStreamToFile(in, new File(stringJoiner.toString()));
+            fileStoreUtil.copyInputStreamToFile(in,new File(stringJoiner.toString()),DigestUtils.md5Hex(new ByteArrayInputStream(outputStream.toByteArray())),LocalCatalogEnum.LOCAL_FILE);
             jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
             jsonObject.put(SystemConstant.PATH, dirName);
         }
@@ -905,7 +905,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 if (Objects.nonNull(basicAttachmentList) && basicAttachmentList.size() > 0) {
                     LocalDateTime nowTime = LocalDateTime.now();
                     StringJoiner stringJoiner = new StringJoiner("")
-                            .add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                            .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
                     StringJoiner dirName = new StringJoiner("")
                             .add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                             .add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -926,7 +926,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                         UploadFileEnum uploadFileEnum = UploadFileEnum.valueOf((String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
 
                         StringJoiner stringJoinerPdf = new StringJoiner("")
-                                .add(SystemConstant.TEMP_FILES_DIR).add(File.separator)
+                                .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator)
                                 .add((String) jsonObject.get(SystemConstant.PATH));
                         File htmlFile = null;
                         if (oss) {
@@ -976,7 +976,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
         LocalDateTime nowTime = LocalDateTime.now();
         StringJoiner zipJoiner = new StringJoiner("")
-                .add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
         StringJoiner dirName = new StringJoiner("")
                 .add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                 .add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -984,7 +984,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 .add(String.format("%02d", nowTime.getDayOfMonth()))
                 .add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.ZIP_PREFIX);
         String dirNameTmp = dirName.toString().replaceAll("\\\\", "/");
-        File zipFile = new File(zipJoiner.toString() + dirNameTmp);
+        File zipFile = new File(zipJoiner.toString().replaceAll("\\\\", "/") + dirNameTmp);
         if (!zipFile.getParentFile().exists()) {
             zipFile.getParentFile().mkdirs();
             zipFile.createNewFile();
@@ -993,7 +993,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         boolean oss = dictionaryConfig.sysDomain().isOss();
 
         // 跟文件路径
-        String zipLocalRootPath = SystemConstant.TEMP_FILES_DIR + File.separator + System.currentTimeMillis();
+        String zipLocalRootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
         Long[] ids = (Long[]) map.get("ids");
         for (Long id : ids) {
             ExamTask examTask = examTaskService.getById(id);
@@ -1104,20 +1104,21 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             }
             count++;
         }
+        zipLocalRootPath = zipLocalRootPath.replaceAll("\\\\", "/");
         ZipUtil.zip(zipLocalRootPath, zipFile.getPath(), false);
         JSONObject jsonObject = new JSONObject();
         if (oss) {//上传至oss
             fileStoreUtil.ossUpload(dirNameTmp, zipFile, BinaryUtil.toBase64String(HexUtils.decodeHex(DigestUtils.md5Hex(new FileInputStream(zipFile)))), fileStoreUtil.getUploadEnumByPath(dirNameTmp).getFssType());
             jsonObject.put(SystemConstant.PATH, dirNameTmp);
             jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
+            ConvertUtil.delFolder(zipLocalRootPath);
+            zipFile.delete();
         } else {
             jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
-            jsonObject.put(SystemConstant.PATH, zipJoiner + dirNameTmp);
+            jsonObject.put(SystemConstant.PATH, (zipJoiner + dirNameTmp).replaceAll("\\\\", "/"));
         }
         jsonObject.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);
         tbTask.setResultFilePath(jsonObject.toJSONString());
-        ConvertUtil.delFolder(zipLocalRootPath);
-        zipFile.delete();
         map.put("count", count);
         return map;
     }
@@ -1129,7 +1130,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         BasicSchool basicSchool = commonCacheService.schoolCache(tbTask.getSchoolId());
         LocalDateTime nowTime = LocalDateTime.now();
         StringJoiner zipJoiner = new StringJoiner("")
-                .add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
         StringJoiner dirName = new StringJoiner("")
                 .add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                 .add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -1140,7 +1141,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         String dirNameTmp = dirName.toString().replaceAll("\\\\", "/");
 
         // 根文件路径
-        String zipLocalRootPath = SystemConstant.TEMP_FILES_DIR + File.separator + System.currentTimeMillis();
+        String zipLocalRootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
 
         boolean oss = dictionaryConfig.sysDomain().isOss();
 
@@ -1617,7 +1618,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 }.getType());
                 LocalDateTime nowTime = LocalDateTime.now();
                 StringJoiner stringJoiner = new StringJoiner("");
-                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
                 StringJoiner dirZipName = new StringJoiner("");
                 dirZipName.add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                         .add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -1732,7 +1733,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
 
 
         LocalDateTime nowTime = LocalDateTime.now();
-        String zipJoiner = SystemConstant.TEMP_FILES_DIR + File.separator;
+        String zipJoiner = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator;
         String dirName = UploadFileEnum.FILE.getTitle() + File.separator +
                 nowTime.getYear() + File.separator +
                 String.format("%02d", nowTime.getMonthValue()) + File.separator +
@@ -1746,7 +1747,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         }
 
         // 根文件路径
-        String zipLocalRootPath = SystemConstant.TEMP_FILES_DIR + File.separator + System.currentTimeMillis();
+        String zipLocalRootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
 
         ExamTaskPaperDto examTaskPaperDto = downloadService.findDownloadContent(schoolId, semesterId, examId, orgId, courseName, idSet);
         // 导出文件excel

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

@@ -117,7 +117,7 @@ public class CreatePdfUtil {
 
         if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.PDF_PREFIX)) {
             String filePath = (String) jsonObject.get(SystemConstant.PATH);
-            String url = SystemConstant.TEMP_FILES_DIR + File.separator + filePath;
+            String url = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + filePath;
             UploadFileEnum uploadFileEnum = UploadFileEnum.valueOf((String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
 
 //            File localFile = ossUtil.ossDownload(filePath, url);
@@ -786,7 +786,7 @@ public class CreatePdfUtil {
                                           BasicExamRule basicExamRule,
                                           List<PdfDto> mergePdfDeleteList) throws Exception {
         boolean oss = dictionaryConfig.sysDomain().isOss();
-        StringJoiner stringJoiner = new StringJoiner("").add(SystemConstant.PDF_TEMP_FILES_DIR).add(File.separator);
+        StringJoiner stringJoiner = new StringJoiner("").add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
         // oss上只认"/",windows生成的路径分隔符全部替换为"/"
         File localA4PdfFile = null, localA3PdfFile = null, localA3PdfCardFile = null;
         BasicAttachment basicAttachment = null;

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

@@ -98,10 +98,10 @@ public class FreemarkerUtil {
 
             Configuration configuration = new Configuration(Configuration.VERSION_2_3_29);
             File templates = null;
-            if (ftlPath.contains(SystemConstant.TEMP_FILES_DIR)) {
+            if (ftlPath.contains(dictionaryConfig.fssLocalFileDomain().getConfig())) {
                 templates = ResourceUtils.getFile(ftlPath);
             } else {
-                templates = ResourceUtils.getFile(SystemConstant.TEMP_FILES_DIR + File.separator + ftlPath);
+                templates = ResourceUtils.getFile(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + ftlPath);
             }
             configuration.setDirectoryForTemplateLoading(templates);
             // step1 加载模版文件
@@ -110,7 +110,7 @@ public class FreemarkerUtil {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
-            stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+            stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
             StringJoiner htmlStringJoiner = new StringJoiner("");
             htmlStringJoiner.add(UploadFileEnum.HTML.getTitle()).add(File.separator);
             htmlStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)

+ 3 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/HtmlToJpgUtil.java

@@ -1,14 +1,10 @@
 package com.qmth.distributed.print.business.util;
 
 import com.qmth.distributed.print.business.bean.marking.ConvertJpgStorage;
-import com.qmth.distributed.print.business.entity.BasicCardRule;
-import com.qmth.distributed.print.business.entity.ExamCard;
-import com.qmth.distributed.print.business.entity.ExamCardDetail;
-import com.qmth.distributed.print.business.enums.MakeMethodEnum;
 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.CardCreateMethodEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.PageSizeEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
@@ -44,7 +40,7 @@ public class HtmlToJpgUtil {
     PrintCommonService printCommonService;
 
     @Resource
-    CreatePdfUtil createPdfUtil;
+    DictionaryConfig dictionaryConfig;
 
     private final static Logger log = LoggerFactory.getLogger(HtmlToJpgUtil.class);
 
@@ -57,7 +53,7 @@ public class HtmlToJpgUtil {
      */
     public List<BasicAttachment> convertHtmlToJpg(String cardTitle, String htmlContent, PageSizeEnum pageSizeEnum) throws Exception {
         // 本地存储目录
-        String rootPath = SystemConstant.TEMP_FILES_DIR + File.separator + System.currentTimeMillis();
+        String rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
         // html临时路径
         String htmlPath = rootPath + File.separator + "html" + File.separator + cardTitle + SystemConstant.HTML_PREFIX;
         // pdf临时路径

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

@@ -5,6 +5,8 @@ import com.itextpdf.text.Rectangle;
 import com.itextpdf.text.pdf.*;
 import com.qmth.boot.tools.models.ByteArray;
 import com.qmth.distributed.print.business.bean.dto.PdfDto;
+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.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.PageSizeEnum;
@@ -49,8 +51,9 @@ public class PdfUtil {
             if (Objects.nonNull(files) && files.length > 0) {
                 document = new Document(new PdfReader(ByteArray.fromFile(new File(files[0])).value()).getPageSize(1));
                 if (Objects.isNull(outputPath)) {
+                    DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
                     LocalDateTime nowTime = LocalDateTime.now();
-                    StringJoiner stringJoiner = new StringJoiner("").add(SystemConstant.PDF_TEMP_FILES_DIR).add(File.separator);
+                    StringJoiner stringJoiner = new StringJoiner("").add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
                     dirName = new StringJoiner("")
                             .add(UploadFileEnum.PDF.getTitle()).add(File.separator)
                             .add(String.valueOf(nowTime.getYear())).add(File.separator)

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

@@ -457,7 +457,7 @@ public class SysController {
                     original.setUrl(teachcloudCommonService.filePreview(basicOriginalAttachment.getPath()));
                     original.setPages(basicOriginalAttachment.getPages());
 
-                    String destUrl = SystemConstant.PDF_TEMP_FILES_DIR + File.separator + file.getOriginalFilename();
+                    String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + file.getOriginalFilename();
                     localTempFile = new File(destUrl);
                     OutputStream out = new FileOutputStream(localTempFile);
                     PdfUtil.concatPDFs(new FileInputStream(pdfOriginalFile), out, false);

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

@@ -29,7 +29,7 @@ public class StartRunning implements CommandLineRunner {
     @Override
     public void run(String... args) throws Exception {
         log.info("服务器启动时执行 start");
-        SystemConstant.initTempFiles();
+//        SystemConstant.initTempFiles();
 //        orgCenterDataDisposeService.updateSchoolInfo();
         authInfoService.appInfoInit();
         log.info("服务器启动时执行 end");

+ 14 - 9
distributed-print/src/main/resources/application-dev.properties

@@ -12,9 +12,9 @@ spring.application.name=distributed-print
 #\u6570\u636E\u6E90\u914D\u7F6E
 db.host=localhost
 db.port=3306
-db.name=distributed-v3.2.0
+db.name=dps-print-v3.2.0
 db.username=root
-db.password=123456789
+db.password=88888888
 
 #redis\u6570\u636E\u6E90\u914D\u7F6E
 com.qmth.redis.host=${db.host}
@@ -51,24 +51,28 @@ com.qmth.fss.public.config=oss://key:secret@teachcloud-print-dev-public.oss-api.
 com.qmth.fss.public.server=https://oss-file.qmth.com.cn/teachcloud-print-dev-public
 com.qmth.fss.private.config=oss://key:secret@teachcloud-print-dev-private.oss-api.qmth.com.cn
 com.qmth.fss.private.server=https://oss-file.qmth.com.cn/teachcloud-print-dev-private
+com.qmth.fss.localfile.config=E:/localFile/print-v3.2.0/file-temp
+com.qmth.fss.localfile.server=http://127.0.0.1:7001
+com.qmth.fss.localpdf.config=E:/localFile/print-v3.2.0/pdf-temp
+com.qmth.fss.localpdf.server=http://127.0.0.1:7001
 
 #\u7CFB\u7EDF\u914D\u7F6E
-sys.config.oss=true
+sys.config.oss=false
 sys.config.attachmentType=.xlsx,.xls,.doc,.docx,.pdf,.jpg,.jpeg,.png,.html,.zip,.mp3,.wav,.dll,.exe,.ftl,.bpmn,.xml
 sys.config.attachmentLength=100
 sys.config.attachmentSize=200
 sys.config.serverUpload=
-sys.config.fileHost=http://127.0.0.1:7001
-sys.config.serverHost=http://127.0.0.1:7001
+#sys.config.fileHost=http://127.0.0.1:7001
+#sys.config.serverHost=http://127.0.0.1:7001
 sys.config.adminLogoUrl=http://qmth-test.oss-cn-shenzhen.aliyuncs.com/frontend/wx_logo.png
-sys.config.htmlToPdfUrl=/usr/local/bin/wkhtmltopdf
+sys.config.htmlToPdfUrl=E:/devUtils/wkhtmltopdf/bin/wkhtmltopdf.exe
 sys.config.autoCreatePdfResetMaxCount=5
 sys.config.threadPoolCoreSize=1
 sys.config.customThreadPoolCoreSize=true
 sys.config.sessionActive=4h
 spring.resources.static-locations=file:${sys.config.serverUpload},classpath:/META-INF/resources/,classpath:/resources/
-sys.config.fileTempPath=/Users/king/Downloads/file-temp
-sys.config.pdfTempPath=/Users/king/Downloads/pdf-temp
+#sys.config.fileTempPath=/Users/king/Downloads/file-temp
+#sys.config.pdfTempPath=/Users/king/Downloads/pdf-temp
 
 org.center.url=https://solar.qmth.com.cn
 org.center.orgQueryApi=/api/open/org/query
@@ -118,7 +122,8 @@ com.qmth.logging.file-path=/Users/king/Downloads/distributed-print.log
 #spring.profiles.include=task
 
 #\uFFFD\uFFFD\uFFFD\u013E\uFFFD\uFFFD\uFFFD\uFFFDurl
-sync.config.hostUrl=http://192.168.10.224:80
+#sync.config.hostUrl=http://192.168.10.224:80
+sync.config.hostUrl=http://localhost:8081
 #\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
 sync.config.examSaveUrl=/api/exam/save
 #\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD

+ 34 - 34
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/BasicSemesterParams.java

@@ -30,17 +30,17 @@ public class BasicSemesterParams implements Serializable {
     @DBVerify(value = "学期名称", required = true, min = 1, max = 50)
     private String semesterName;
 
-    @ApiModelProperty(value = "学期开始时间")
-    @NotNull(message = "请选择学期开始时间")
-    @Range(min = 1L, message = "请选择学期开始时间")
-    @DBVerify(value = "学期开始时间", required = true, min = 1)
-    private Long startTime;
-
-    @ApiModelProperty(value = "学期结束时间")
-    @NotNull(message = "请选择学期结束时间")
-    @Range(min = 1L, message = "请选择学期结束时间")
-    @DBVerify(value = "学期结束时间", required = true, min = 1)
-    private Long endTime;
+//    @ApiModelProperty(value = "学期开始时间")
+//    @NotNull(message = "请选择学期开始时间")
+//    @Range(min = 1L, message = "请选择学期开始时间")
+//    @DBVerify(value = "学期开始时间", required = true, min = 1)
+//    private Long startTime;
+//
+//    @ApiModelProperty(value = "学期结束时间")
+//    @NotNull(message = "请选择学期结束时间")
+//    @Range(min = 1L, message = "请选择学期结束时间")
+//    @DBVerify(value = "学期结束时间", required = true, min = 1)
+//    private Long endTime;
 
     @ApiModelProperty(value = "启用/禁用,ture:启用,false:禁用,默认启用")
     Boolean enable = true;
@@ -49,17 +49,17 @@ public class BasicSemesterParams implements Serializable {
 
     }
 
-    public BasicSemesterParams(String semesterName, Long startTime, Long endTime) {
+    public BasicSemesterParams(String semesterName) {
         this.semesterName = semesterName;
-        this.startTime = startTime;
-        this.endTime = endTime;
+//        this.startTime = startTime;
+//        this.endTime = endTime;
     }
 
-    public BasicSemesterParams(Long id, String semesterName, Long startTime, Long endTime) {
+    public BasicSemesterParams(Long id, String semesterName) {
         this.id = id;
         this.semesterName = semesterName;
-        this.startTime = startTime;
-        this.endTime = endTime;
+//        this.startTime = startTime;
+//        this.endTime = endTime;
     }
 
     /**
@@ -67,8 +67,8 @@ public class BasicSemesterParams implements Serializable {
      */
     public void validParams() {
         Optional.ofNullable(this.getSemesterName()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("学期名称为空"));
-        Optional.ofNullable(this.getStartTime()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("学期开始时间为空"));
-        Optional.ofNullable(this.getEndTime()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("学期结束时间为空"));
+//        Optional.ofNullable(this.getStartTime()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("学期开始时间为空"));
+//        Optional.ofNullable(this.getEndTime()).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("学期结束时间为空"));
     }
 
     public Boolean getEnable() {
@@ -95,19 +95,19 @@ public class BasicSemesterParams implements Serializable {
         this.semesterName = semesterName;
     }
 
-    public Long getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(Long startTime) {
-        this.startTime = startTime;
-    }
-
-    public Long getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(Long endTime) {
-        this.endTime = endTime;
-    }
+//    public Long getStartTime() {
+//        return startTime;
+//    }
+//
+//    public void setStartTime(Long startTime) {
+//        this.startTime = startTime;
+//    }
+//
+//    public Long getEndTime() {
+//        return endTime;
+//    }
+//
+//    public void setEndTime(Long endTime) {
+//        this.endTime = endTime;
+//    }
 }

+ 12 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/config/DictionaryConfig.java

@@ -105,6 +105,18 @@ public class DictionaryConfig {
         return new FssPrivateDomain();
     }
 
+    @Bean
+    @ConfigurationProperties(prefix = "com.qmth.fss.localpdf", ignoreUnknownFields = false)
+    public FssLocalPdfDomain fssLocalPdfDomain() {
+        return new FssLocalPdfDomain();
+    }
+
+    @Bean
+    @ConfigurationProperties(prefix = "com.qmth.fss.localfile", ignoreUnknownFields = false)
+    public FssLocalFileDomain fssLocalFileDomain() {
+        return new FssLocalFileDomain();
+    }
+
     /**
      * 分布式印刷开放接口
      *

+ 34 - 31
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -14,6 +14,7 @@ import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.io.IOUtils;
 import org.springframework.cglib.beans.BeanMap;
 
+import javax.annotation.Resource;
 import java.io.*;
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
@@ -30,6 +31,8 @@ import java.util.stream.Collectors;
  * @Date: 2019/10/11
  */
 public class SystemConstant {
+    @Resource
+    DictionaryConfig dictionaryConfig;
 
     /**
      * 系统常量
@@ -274,37 +277,37 @@ public class SystemConstant {
     public static final int CONNECT_TIME_OUT = 1000 * 60 * 2;//请求超时
     public static final int SOCKET_CONNECT_TIME_OUT = 1000 * 60 * 30;//读取数据超时
 
-    /**
-     * 初始化附件文件路径
-     */
-    public static void initTempFiles() {
-        File fileTempDir = null, pdfTempDir = null;
-        DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
-
-        if (Objects.nonNull(dictionaryConfig.sysDomain().getFileTempPath()) && !Objects.equals("", dictionaryConfig.sysDomain().getFileTempPath())) {
-            fileTempDir = new File(dictionaryConfig.sysDomain().getFileTempPath().trim());
-        } else {
-            StringJoiner fileTempLocalPath = new StringJoiner("").add(System.getProperty(USER_DIR));
-            String mkdir = fileTempLocalPath.toString().substring(0, fileTempLocalPath.toString().lastIndexOf(File.separator));
-            fileTempDir = new File(new StringBuffer(mkdir).append(File.separator).append(FILE_TEMP).toString());
-        }
-        if (Objects.nonNull(fileTempDir) && !fileTempDir.exists()) {
-            fileTempDir.mkdirs();
-        }
-
-        if (Objects.nonNull(dictionaryConfig.sysDomain().getPdfTempPath()) && !Objects.equals("", dictionaryConfig.sysDomain().getPdfTempPath())) {
-            pdfTempDir = new File(dictionaryConfig.sysDomain().getPdfTempPath().trim());
-        } else {
-            StringJoiner pdfTempLocalPath = new StringJoiner("").add(System.getProperty(USER_DIR));
-            String mkdir = pdfTempLocalPath.toString().substring(0, pdfTempLocalPath.toString().lastIndexOf(File.separator));
-            pdfTempDir = new File(new StringBuffer(mkdir).append(File.separator).append(PDF_TEMP).toString());
-        }
-        if (Objects.nonNull(pdfTempDir) && !pdfTempDir.exists()) {
-            pdfTempDir.mkdirs();
-        }
-        TEMP_FILES_DIR = fileTempDir.getPath();
-        PDF_TEMP_FILES_DIR = pdfTempDir.getPath();
-    }
+//    /**
+//     * 初始化附件文件路径
+//     */
+//    public static void initTempFiles() {
+//        File fileTempDir = null, pdfTempDir = null;
+//        DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
+//
+//        if (Objects.nonNull(dictionaryConfig.sysDomain().getFileTempPath()) && !Objects.equals("", dictionaryConfig.sysDomain().getFileTempPath())) {
+//            fileTempDir = new File(dictionaryConfig.sysDomain().getFileTempPath().trim());
+//        } else {
+//            StringJoiner fileTempLocalPath = new StringJoiner("").add(System.getProperty(USER_DIR));
+//            String mkdir = fileTempLocalPath.toString().substring(0, fileTempLocalPath.toString().lastIndexOf(File.separator));
+//            fileTempDir = new File(new StringBuffer(mkdir).append(File.separator).append(FILE_TEMP).toString());
+//        }
+//        if (Objects.nonNull(fileTempDir) && !fileTempDir.exists()) {
+//            fileTempDir.mkdirs();
+//        }
+//
+//        if (Objects.nonNull(dictionaryConfig.sysDomain().getPdfTempPath()) && !Objects.equals("", dictionaryConfig.sysDomain().getPdfTempPath())) {
+//            pdfTempDir = new File(dictionaryConfig.sysDomain().getPdfTempPath().trim());
+//        } else {
+//            StringJoiner pdfTempLocalPath = new StringJoiner("").add(System.getProperty(USER_DIR));
+//            String mkdir = pdfTempLocalPath.toString().substring(0, pdfTempLocalPath.toString().lastIndexOf(File.separator));
+//            pdfTempDir = new File(new StringBuffer(mkdir).append(File.separator).append(PDF_TEMP).toString());
+//        }
+//        if (Objects.nonNull(pdfTempDir) && !pdfTempDir.exists()) {
+//            pdfTempDir.mkdirs();
+//        }
+//        TEMP_FILES_DIR = fileTempDir.getPath();
+//        PDF_TEMP_FILES_DIR = pdfTempDir.getPath();
+//    }
 
     /**
      * id转换为long

+ 28 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/FssLocalFileDomain.java

@@ -0,0 +1,28 @@
+package com.qmth.teachcloud.common.domain;
+
+/**
+ * @Description:
+ * @Author: CaoZixuan
+ * @Date:
+ */
+public class FssLocalFileDomain {
+    private String config;
+
+    private String server;
+
+    public String getConfig() {
+        return config;
+    }
+
+    public void setConfig(String config) {
+        this.config = config;
+    }
+
+    public String getServer() {
+        return server;
+    }
+
+    public void setServer(String server) {
+        this.server = server;
+    }
+}

+ 28 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/FssLocalPdfDomain.java

@@ -0,0 +1,28 @@
+package com.qmth.teachcloud.common.domain;
+
+/**
+ * @Description:
+ * @Author: CaoZixuan
+ * @Date:
+ */
+public class FssLocalPdfDomain {
+    private String config;
+
+    private String server;
+
+    public String getConfig() {
+        return config;
+    }
+
+    public void setConfig(String config) {
+        this.config = config;
+    }
+
+    public String getServer() {
+        return server;
+    }
+
+    public void setServer(String server) {
+        this.server = server;
+    }
+}

+ 10 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysRole.java

@@ -63,6 +63,9 @@ public class SysRole extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "角色来源")
     private RoleSourceEnum source;
 
+    @ApiModelProperty(value = "角色说明")
+    private String interpret;
+
     public RoleSourceEnum getSource() {
         return source;
     }
@@ -131,4 +134,11 @@ public class SysRole extends BaseEntity implements Serializable {
         this.privilegeIds = privilegeIds;
     }
 
+    public String getInterpret() {
+        return interpret;
+    }
+
+    public void setInterpret(String interpret) {
+        this.interpret = interpret;
+    }
 }

+ 27 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/LocalCatalogEnum.java

@@ -0,0 +1,27 @@
+package com.qmth.teachcloud.common.enums;
+
+/**
+ * @Description: 本地文件目录枚举
+ * @Author: CaoZixuan
+ * @Date: 2022-08-11
+ */
+public enum LocalCatalogEnum {
+    LOCAL_FILE("localfile","本地文件"),
+    LOCAL_PDF("localpdf","本地pdf")
+    ;
+    private final String type;
+    private final String desc;
+
+    LocalCatalogEnum(String type, String desc) {
+        this.type = type;
+        this.desc = desc;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+}

+ 2 - 10
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AttachmentCommonServiceImpl.java

@@ -30,17 +30,9 @@ import java.util.List;
 public class AttachmentCommonServiceImpl implements AttachmentCommonService {
     private final static Logger log = LoggerFactory.getLogger(AttachmentCommonServiceImpl.class);
 
-    /**
-     * 默认目录
-     */
-    private static String TEMP_DIR = SystemConstant.TEMP_FILES_DIR + File.separator + System.currentTimeMillis();
-
     @Resource
     DictionaryConfig dictionaryConfig;
 
-    @Resource
-    BasicAttachmentService basicAttachmentService;
-
     @Resource
     FileStoreUtil fileStoreUtil;
 
@@ -55,7 +47,7 @@ public class AttachmentCommonServiceImpl implements AttachmentCommonService {
         UploadFileEnum uploadType = Enum.valueOf(UploadFileEnum.class, (String) object.get(SystemConstant.UPLOAD_TYPE));
 
         // 存储路径为空,使用默认值
-        rootPath = StringUtils.isNotBlank(rootPath) ? rootPath : TEMP_DIR;
+        rootPath = StringUtils.isNotBlank(rootPath) ? rootPath : dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
         // 存储文件名为空,使用默认值
         fileName = StringUtils.isNotBlank(fileName) ? fileName : UUID.fastUUID() + basicAttachment.getType();
         // 存储文件类型与附件类型不一样,默认改用附件类型
@@ -82,7 +74,7 @@ public class AttachmentCommonServiceImpl implements AttachmentCommonService {
 
     @Override
     public void zipFiles(HttpServletResponse response, String filePath, String zipName, List<File> files) {
-        filePath = StringUtils.isNotBlank(filePath) ? filePath : TEMP_DIR;
+        filePath = StringUtils.isNotBlank(filePath) ? filePath : dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
         File rootFile = new File(filePath);
         // 创建保存目录
         if (!rootFile.exists()) {

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

@@ -204,7 +204,7 @@ public class AuthInfoServiceImpl implements AuthInfoService {
             if (Objects.isNull(basicSchool)) {//不存在则创建学校
                 basicSchool = new BasicSchool(o.getCode(), o.getName(), o.getAccessKey(), o.getAccessSecret());
                 if (Objects.nonNull(o.getLogo()) && (!o.getLogo().startsWith("https:") || !o.getLogo().startsWith("http"))) {
-                    String filePath = SystemConstant.TEMP_FILES_DIR + File.separator + SystemConstant.getUuid() + ".jpg";
+                    String filePath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + SystemConstant.getUuid() + ".jpg";
                     File logoFile = new File(filePath);
                     if (!logoFile.getParentFile().exists()) {
                         // 不存在则创建父目录及子文件

+ 4 - 8
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicAttachmentServiceImpl.java

@@ -8,6 +8,7 @@ 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.enums.LocalCatalogEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.mapper.BasicAttachmentMapper;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
@@ -65,7 +66,7 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
     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);
+            StringJoiner stringJoiner = new StringJoiner("").add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
             File localPdfFile = new File(stringJoiner.toString() + File.separator + dirName);
             if (!localPdfFile.getParentFile().exists()) {
                 localPdfFile.getParentFile().mkdirs();
@@ -164,7 +165,7 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
-                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
             }
             stringJoiner.add(type.getTitle()).add(File.separator);
             stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -179,12 +180,7 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
                 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);
+                fileStoreUtil.copyInputStreamToFile(file.getInputStream(), new File(stringJoiner.toString()), DigestUtils.md5Hex(file.getInputStream()), LocalCatalogEnum.LOCAL_FILE);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                 jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
             }

+ 7 - 12
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCourseServiceImpl.java

@@ -15,10 +15,7 @@ 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.mapper.BasicCourseMapper;
-import com.qmth.teachcloud.common.service.BasicClazzService;
-import com.qmth.teachcloud.common.service.BasicCourseService;
-import com.qmth.teachcloud.common.service.BasicUserCourseService;
-import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -45,8 +42,8 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
     @Resource
     private TeachcloudCommonService teachcloudCommonService;
 
-//    @Resource
-//    private SysOrgService sysOrgService;
+    @Resource
+    private SysOrgService sysOrgService;
 
     @Resource
     private BasicUserCourseService basicUserCourseService;
@@ -237,12 +234,10 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
                 String teachingRoomName = basicCourseImportDto.getTeachingRoomName();
                 String clazz = basicCourseImportDto.getClazz();
 
-                SysOrg sysOrg = null;
-//                SysOrg sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda()
-//                        .eq(SysOrg::getSchoolId, schoolId)
-//                        .eq(SysOrg::getEnable, true)
-//                        .eq(SysOrg::getType, OrgTypeEnum.TEACHING_ROOM)
-//                        .eq(SysOrg::getName, teachingRoomName));
+                SysOrg sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda()
+                        .eq(SysOrg::getSchoolId, schoolId)
+                        .eq(SysOrg::getEnable, true)
+                        .eq(SysOrg::getName, teachingRoomName));
                 if (Objects.isNull(sysOrg)) {
                     throw ExceptionResultEnum.ERROR.exception("输入的教研室【" + teachingRoomName + "】不存在");
                 }

+ 3 - 7
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicSemesterServiceImpl.java

@@ -64,8 +64,8 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
         SystemConstant.verifyDBFields(basicSemesterParams, basicSemesterParams.getClass());
         Long id = basicSemesterParams.getId();
         String semesterName = basicSemesterParams.getSemesterName();
-        Long startTime = basicSemesterParams.getStartTime();
-        Long endTime = basicSemesterParams.getEndTime();
+//        Long startTime = basicSemesterParams.getStartTime();
+//        Long endTime = basicSemesterParams.getEndTime();
 
         // 校验学期唯一性
         BasicSemester checkName = this.getOne(new QueryWrapper<BasicSemester>().lambda()
@@ -88,9 +88,7 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
             }
             this.update(new UpdateWrapper<BasicSemester>().lambda()
                     .eq(BasicSemester::getId, id)
-                    .set(BasicSemester::getName, semesterName)
-                    .set(BasicSemester::getStartTime, startTime)
-                    .set(BasicSemester::getEndTime, endTime));
+                    .set(BasicSemester::getName, semesterName));
         } else {
             // 新增
             id = SystemConstant.getDbUuid();
@@ -100,8 +98,6 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
             basicSemester.setName(semesterName);
             basicSemester.setSchoolId(schoolId);
             basicSemester.setCode(null);
-            basicSemester.setStartTime(startTime);
-            basicSemester.setEndTime(endTime);
             basicSemester.setOrgId(orgId);
 
             QueryWrapper<BasicSemester> queryWrapper = new QueryWrapper<>();

+ 15 - 16
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicStudentServiceImpl.java

@@ -198,22 +198,21 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
 
                 // 学院
                 Long collegeId = null;
-//                if (SystemConstant.strNotNull(collegeName)) {
-//                    SysOrg sysOrg;
-//                    if (collegeMap.containsKey(collegeName)) {
-//                        sysOrg = collegeMap.get(collegeName);
-//                    } else {
-//                        sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda()
-//                                .eq(SysOrg::getSchoolId, schoolId)
-//                                .eq(SysOrg::getType, OrgTypeEnum.COLLEGE)
-//                                .eq(SysOrg::getName, collegeName));
-//                        if (Objects.isNull(sysOrg)) {
-//                            throw ExceptionResultEnum.ERROR.exception("系统中不存在【学院】:" + collegeName);
-//                        }
-//                        collegeMap.put(collegeName, sysOrg);
-//                    }
-//                    collegeId = sysOrg.getId();
-//                }
+                if (SystemConstant.strNotNull(collegeName)) {
+                    SysOrg sysOrg;
+                    if (collegeMap.containsKey(collegeName)) {
+                        sysOrg = collegeMap.get(collegeName);
+                    } else {
+                        sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda()
+                                .eq(SysOrg::getSchoolId, schoolId)
+                                .eq(SysOrg::getName, collegeName));
+                        if (Objects.isNull(sysOrg)) {
+                            throw ExceptionResultEnum.ERROR.exception("系统中不存在【学院】:" + collegeName);
+                        }
+                        collegeMap.put(collegeName, sysOrg);
+                    }
+                    collegeId = sysOrg.getId();
+                }
 
                 // 专业
                 Long majorId = null;

+ 1 - 8
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java

@@ -119,19 +119,12 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                 sysRoleService.updateById(role);
                 commonCacheService.updateRoleCache(role.getId());
                 if (count != sysRolePrivilegeList.size() || count != finalRelatedSet.size()) {
-                    //todo 云阅卷推送暂时去掉
-                    // 删除权限前先更新涉及特殊权限用户 -> 需要重新同步
-//                    List<SysRolePrivilege> dbRolePriList = commonCacheService.rolePrivilegeCache(role.getId());
-//                    this.updateUserPushStats(dbRolePriList.stream().map(SysRolePrivilege::getPrivilegeId).distinct().collect(Collectors.toList()),
-//                            Arrays.asList(role.getPrivilegeIds()),
-//                            role.getId(),
-//                            schoolId);
                     sysRolePrivilegeService.removeByRoleId(role.getId());
                     sysRolePrivilegeService.saveBatch(role);//角色权限
                     commonCacheService.updateRolePrivilegeCache(role.getId());
                     //绑定该角色的用户都需要清除鉴权缓存
                     List<SysUserRole> sysUserRoleList = sysUserRoleService.listByRoleId(role.getId());
-                    commonService.removeUserInfoBatch(sysUserRoleList.stream().map(s -> s.getUserId()).collect(Collectors.toList()), true);
+                    commonService.removeUserInfoBatch(sysUserRoleList.stream().map(SysUserRole::getUserId).collect(Collectors.toList()), true);
                 }
             } else {
                 role.insertInfo(sysUser.getId());

+ 7 - 6
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -447,7 +447,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
         String filePath = (String) jsonObject.get(SystemConstant.PATH);
         if (Objects.equals(attachmentType, SystemConstant.LOCAL)) {
-            String hostUrl = SystemConstant.getLocalFileHost(dictionaryConfig.sysDomain().getFileHost());
+            String hostUrl = SystemConstant.getLocalFileHost(dictionaryConfig.fssLocalFileDomain().getServer());
             filePath = SystemConstant.getLocalFilePath(hostUrl, filePath);
             if (filePath.startsWith("/")) {
                 url = hostUrl + filePath;
@@ -458,6 +458,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
             UploadFileEnum uploadFileEnum = UploadFileEnum.valueOf((String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
             url = fileStoreUtil.getPrivateUrl(filePath, uploadFileEnum.getFssType());
         }
+        url = url.replaceAll("\\\\", "/");
         return url;
     }
 
@@ -592,11 +593,11 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         StringJoiner localPath = new StringJoiner("");
         if (Objects.equals(attachmentType, SystemConstant.OSS)) {
 //            file = ossUtil.ossDownload(filePath, localPath.toString());
-            localPath = localPath.add(SystemConstant.TEMP_FILES_DIR).add(File.separator).add(filePath);
+            localPath = localPath.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator).add(filePath);
             file = fileStoreUtil.ossDownload(filePath, localPath.toString(), uploadType.getFssType());
         } else {
-            if (!filePath.contains(SystemConstant.TEMP_FILES_DIR)) {
-                localPath = localPath.add(SystemConstant.TEMP_FILES_DIR).add(File.separator).add(filePath);
+            if (!filePath.contains(dictionaryConfig.fssLocalFileDomain().getConfig())) {
+                localPath = localPath.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator).add(filePath);
             } else {
                 localPath = localPath.add(filePath);
             }
@@ -641,7 +642,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         }
         File zipFile = null;
         try {
-            String zipPath = SystemConstant.TEMP_FILES_DIR + File.separator + schoolId;
+            String zipPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + schoolId;
             File zipPathFile = new File(zipPath);
             if (!zipPathFile.exists()) {
                 zipPathFile.mkdirs();
@@ -676,7 +677,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         }
         File zipFile = null;
         try {
-            zipFile = FileUtil.file(SystemConstant.TEMP_FILES_DIR, time + ".zip");
+            zipFile = FileUtil.file(dictionaryConfig.fssLocalFileDomain().getConfig(), time + ".zip");
             // 压缩文件
             if (!zipFile.exists()) {
                 zipFile.createNewFile();

+ 36 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/FileStoreUtil.java

@@ -4,6 +4,7 @@ import com.qmth.boot.core.fss.service.FileService;
 import com.qmth.boot.core.fss.store.FileStore;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.LocalCatalogEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.FileUtils;
@@ -45,6 +46,41 @@ public class FileStoreUtil {
         log.info("dirName:{}", dirName);
     }
 
+    /**
+     * 上传文件到本地
+     *
+     * @param dirName     上传到地址
+     * @param inputStream 流
+     * @param catalogType 文件
+     */
+    public void localUpload(String dirName, InputStream inputStream, String md5, LocalCatalogEnum catalogType) throws Exception {
+        log.info("ossUpload is come in");
+        String configPath = "";
+        switch (catalogType){
+            case LOCAL_FILE:
+                configPath = dictionaryConfig.fssLocalFileDomain().getConfig();
+                break;
+            case LOCAL_PDF:
+                configPath = dictionaryConfig.fssLocalPdfDomain().getConfig();
+                break;
+        }
+        dirName = dirName.replaceAll(configPath,"");
+        fileService.getFileStore(catalogType.getType()).write(dirName, inputStream, md5);
+        log.info("dirName:{}", dirName);
+    }
+
+    /**
+     * 上传文件到本地
+     * @param inputStream 流
+     * @param finalFile 最终文件
+     * @param catalogType 文件类型
+     * @throws Exception 异常
+     */
+    public void copyInputStreamToFile(InputStream inputStream,File finalFile,String md5,LocalCatalogEnum catalogType) throws Exception {
+        String dirName = finalFile.getPath().replaceAll("\\\\", "/");
+        this.localUpload(dirName,inputStream,md5,catalogType);
+    }
+
     /**
      * 上传文件
      *

+ 3 - 3
teachcloud-common/src/main/resources/mapper/SysRoleMapper.xml

@@ -18,7 +18,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        select id, school_id, name, enable, type, create_id, create_time, update_id, update_time, default_role from sys_role
+        select id, school_id, name, enable, type, create_id, create_time, update_id, update_time, default_role, interpret from sys_role
     </sql>
 
     <select id="listRolesByUserId" resultMap="BaseResultMap">
@@ -49,7 +49,7 @@
             </if>
         </where>
         union
-        select id, school_id, name, enable, type, create_id, create_time, update_id, update_time, default_role from sys_role
+        select id, school_id, name, enable, type, create_id, create_time, update_id, update_time, default_role, interpret from sys_role
         where default_role = 1 and type <![CDATA[ <> ]]> 'ADMIN'
             ) t
         ORDER BY t.create_time
@@ -64,7 +64,7 @@
             </if>
         </where>
         union
-        select id, school_id, name, enable, type, create_id, create_time, update_id, update_time, default_role from sys_role
+        select id, school_id, name, enable, type, create_id, create_time, update_id, update_time, default_role, interpret from sys_role
         where default_role = 1 and type <![CDATA[ <> ]]> 'ADMIN'
     </select>
 </mapper>

+ 3 - 7
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java

@@ -12,6 +12,7 @@ import com.qmth.teachcloud.common.entity.BasicAttachment;
 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.LocalCatalogEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.common.service.CommonCacheService;
@@ -760,7 +761,7 @@ public class ReportCommonServiceImpl implements ReportCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
-                stringJoiner.add(SystemConstant.TEMP_FILES_DIR).add(File.separator);
+                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
             }
             stringJoiner.add(type.getTitle()).add(File.separator);
 //            else if (type == UploadFileEnum.PAPER) {//试卷需要单独
@@ -781,12 +782,7 @@ public class ReportCommonServiceImpl implements ReportCommonService {
                 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);
+                fileStoreUtil.copyInputStreamToFile(file.getInputStream(),new File(stringJoiner.toString()),md5, LocalCatalogEnum.LOCAL_FILE);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                 jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
             }

+ 2 - 2
teachcloud-report/src/main/resources/application-dev.properties

@@ -12,9 +12,9 @@ spring.application.name=teachcloud-report
 #\u6570\u636E\u6E90\u914D\u7F6E
 db.host=localhost
 db.port=3306
-db.name=teachcloud-report-v3.1.0
+db.name=dps-report-v3.2.0
 db.username=root
-db.password=123456789
+db.password=88888888
 
 #redis\u6570\u636E\u6E90\u914D\u7F6E
 com.qmth.redis.host=${db.host}

+ 1 - 1
teachcloud-task/src/main/java/com/qmth/teachcloud/task/start/StartRunning.java

@@ -38,7 +38,7 @@ public class StartRunning implements CommandLineRunner {
     @Override
     public void run(String... args) throws Exception {
         log.info("服务器启动时执行 start");
-        SystemConstant.initTempFiles();
+//        SystemConstant.initTempFiles();
         jobService.machineHeart();
         printCommonService.updateStatus();
 

+ 15 - 9
teachcloud-task/src/main/resources/application-task.properties

@@ -13,9 +13,9 @@ spring.application.name=teachcloud-task
 #\u6570\u636E\u6E90\u914D\u7F6E
 db.host=localhost
 db.port=3306
-db.name=distributed-v3.2.0
+db.name=dps-print-v3.2.0
 db.username=root
-db.password=123456789
+db.password=88888888
 
 #redis\u6570\u636E\u6E90\u914D\u7F6E
 com.qmth.redis.host=${db.host}
@@ -52,24 +52,29 @@ com.qmth.fss.public.config=oss://key:secret@teachcloud-print-dev-public.oss-api.
 com.qmth.fss.public.server=http://oss-file.qmth.com.cn/teachcloud-print-dev-public
 com.qmth.fss.private.config=oss://key:secret@teachcloud-print-dev-private.oss-api.qmth.com.cn
 com.qmth.fss.private.server=http://oss-file.qmth.com.cn/teachcloud-print-dev-private
+com.qmth.fss.localfile.config=E:/localFile/print-v3.2.0/file-temp
+com.qmth.fss.localfile.server=http://127.0.0.1:7001
+com.qmth.fss.localpdf.config=E:/localFile/print-v3.2.0/pdf-temp
+com.qmth.fss.localpdf.server=http://127.0.0.1:7001
 
 #\u7CFB\u7EDF\u914D\u7F6E
-sys.config.oss=true
+sys.config.oss=false
 sys.config.attachmentType=.xlsx,.xls,.doc,.docx,.pdf,.jpg,.jpeg,.png,.html,.zip,.mp3,.wav,.dll,.exe,.ftl,.bpmn,.xml
 sys.config.attachmentLength=100
 sys.config.attachmentSize=200
 sys.config.serverUpload=
-sys.config.fileHost=http://*.teachcloud-print-wl-test.cn
-sys.config.serverHost=http://*.teachcloud-print-wl-test.cn
+#sys.config.fileHost=http://*.teachcloud-print-wl-test.cn
+#sys.config.serverHost=http://*.teachcloud-print-wl-test.cn
 sys.config.adminLogoUrl=http://qmth-test.oss-cn-shenzhen.aliyuncs.com/frontend/wx_logo.png
-sys.config.htmlToPdfUrl=/usr/local/bin/wkhtmltopdf
+#sys.config.htmlToPdfUrl=/usr/local/bin/wkhtmltopdf
+sys.config.htmlToPdfUrl=E:/devUtils/wkhtmltopdf/bin/wkhtmltopdf.exe
 sys.config.autoCreatePdfResetMaxCount=5
 sys.config.threadPoolCoreSize=1
 sys.config.customThreadPoolCoreSize=true
 sys.config.sessionActive=4h
 spring.resources.static-locations=file:${sys.config.serverUpload},classpath:/META-INF/resources/,classpath:/resources/
-sys.config.fileTempPath=/Users/king/Downloads/file-temp
-sys.config.pdfTempPath=/Users/king/Downloads/pdf-temp
+#sys.config.fileTempPath=/Users/king/Downloads/file-temp
+#sys.config.pdfTempPath=/Users/king/Downloads/pdf-temp
 
 #\u65E5\u671F\u683C\u5F0F\u5316
 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
@@ -118,7 +123,8 @@ spring.quartz.properties.org.quartz.threadPool.threadPriority=5
 
 #\u914D\u7F6E\u6587\u4EF6
 #spring.profiles=task
-sync.config.hostUrl=http://192.168.10.224:80
+#sync.config.hostUrl=http://192.168.10.224:80
+sync.config.hostUrl=http://localhost:8081
 #sync.config.hostUrl=http://192.168.10.225:8000
 sync.config.userSaveUrl=/api/user/external/save
 sync.config.groupSaveUrl=/api/exam/mark_group/save