Răsfoiți Sursa

localfile加入

wangliang 2 ani în urmă
părinte
comite
eac99393b0

+ 38 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -26,10 +26,7 @@ import com.qmth.teachcloud.common.enums.*;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.service.SysRoleGroupMemberService;
 import com.qmth.teachcloud.common.service.SysUserService;
-import com.qmth.teachcloud.common.util.JacksonUtil;
-import com.qmth.teachcloud.common.util.RedisUtil;
-import com.qmth.teachcloud.common.util.ResultUtil;
-import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.common.util.*;
 import org.activiti.bpmn.BpmnAutoLayout;
 import org.activiti.bpmn.model.Process;
 import org.activiti.bpmn.model.*;
@@ -42,6 +39,7 @@ import org.activiti.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior;
 import org.activiti.engine.repository.Deployment;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Task;
+import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -52,6 +50,7 @@ import org.springframework.util.LinkedMultiValueMap;
 
 import javax.annotation.Resource;
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.text.MessageFormat;
@@ -122,6 +121,9 @@ public class ActivitiServiceImpl implements ActivitiService {
     @Resource
     DictionaryConfig dictionaryConfig;
 
+    @Resource
+    FileStoreUtil fileStoreUtil;
+
     /**
      * 启动流程
      *
@@ -236,10 +238,23 @@ public class ActivitiServiceImpl implements ActivitiService {
 
         //保存png图片(这一步可做可不做)
         InputStream processDiagram = repositoryService.getProcessDiagram(processDefinitionId);
+        File file = null;
         try {
-            FileUtils.copyInputStreamToFile(processDiagram, new File(SystemConstant.getUserDir() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnPngName));
-        } catch (IOException e) {
-            e.printStackTrace();
+            if (!StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
+                FileUtils.copyInputStreamToFile(processDiagram, new File(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnPngName));
+            } else {
+                file = SystemConstant.getFileTempVar(bpmnPngName);
+                FileUtils.copyInputStreamToFile(processDiagram, file);
+                StringJoiner stringJoiner = SystemConstant.getDirName();
+                stringJoiner.add(DefaultInstanceConvertToMultiInstance.BPMN_NAME).add(File.separator).add(bpmnPngName);
+                fileStoreUtil.ossUpload(stringJoiner.toString(), file, DigestUtils.md5Hex(new FileInputStream(file)), UploadFileEnum.FILE.getFssType());
+            }
+        } catch (Exception e) {
+            log.error(SystemConstant.LOG_ERROR, e);
+        } finally {
+            if (Objects.nonNull(file)) {
+                file.delete();
+            }
         }
     }
 
@@ -264,10 +279,23 @@ public class ActivitiServiceImpl implements ActivitiService {
 
         //保存xml文件(这一步可做可不做)
         InputStream processBpmn = repositoryService.getResourceAsStream(deployment.getId(), bpmnName);
+        File file = null;
         try {
-            FileUtils.copyInputStreamToFile(processBpmn, new File(SystemConstant.getUserDir() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnProcessName));
-        } catch (IOException e) {
-            e.printStackTrace();
+            if (!StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
+                FileUtils.copyInputStreamToFile(processBpmn, new File(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnProcessName));
+            } else {
+                file = SystemConstant.getFileTempVar(bpmnProcessName);
+                FileUtils.copyInputStreamToFile(processBpmn, file);
+                StringJoiner stringJoiner = SystemConstant.getDirName();
+                stringJoiner.add(DefaultInstanceConvertToMultiInstance.BPMN_NAME).add(File.separator).add(bpmnProcessName);
+                fileStoreUtil.ossUpload(stringJoiner.toString(), file, DigestUtils.md5Hex(new FileInputStream(file)), UploadFileEnum.FILE.getFssType());
+            }
+        } catch (Exception e) {
+            log.error(SystemConstant.LOG_ERROR, e);
+        } finally {
+            if (Objects.nonNull(file)) {
+                file.delete();
+            }
         }
         return deployment;
     }

+ 5 - 0
distributed-print/src/main/resources/application.properties

@@ -62,6 +62,11 @@ com.qmth.fss.public.server=/Users/king/git
 com.qmth.fss.private.config=../static/
 com.qmth.fss.private.server=/Users/king/git
 
+#com.qmth.fss.localfile.config=
+#com.qmth.fss.localfile.server=
+#com.qmth.fss.localpdf.config=
+#com.qmth.fss.localpdf.server=
+
 #\u7CFB\u7EDF\u914D\u7F6E
 sys.config.oss=true
 sys.config.htmlToPdfUrl=/usr/local/bin/wkhtmltopdf

+ 13 - 4
teachcloud-common/src/main/java/com/qmth/teachcloud/common/config/DictionaryConfig.java

@@ -1,9 +1,6 @@
 package com.qmth.teachcloud.common.config;
 
-import com.qmth.teachcloud.common.domain.FssPrivateDomain;
-import com.qmth.teachcloud.common.domain.FssPublicDomain;
-import com.qmth.teachcloud.common.domain.SmsDomain;
-import com.qmth.teachcloud.common.domain.SysDomain;
+import com.qmth.teachcloud.common.domain.*;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -51,4 +48,16 @@ public class DictionaryConfig {
     public FssPrivateDomain fssPrivateDomain() {
         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();
+    }
 }

+ 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;
+    }
+}