Przeglądaj źródła

fix 企业营业执照生成PDF问题

tjf 6 miesięcy temu
rodzic
commit
3496d08d9e

+ 33 - 31
ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java

@@ -1,47 +1,44 @@
 package com.ruoyi.framework.manager.factory;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.TimerTask;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-
 import com.ruoyi.common.config.RuoYiConfig;
+import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.LogUtils;
+import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.FileUploadUtils;
+import com.ruoyi.common.utils.ip.AddressUtils;
+import com.ruoyi.common.utils.ip.IpUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.common.utils.uuid.Seq;
+import com.ruoyi.system.domain.SysLogininfor;
+import com.ruoyi.system.domain.SysOperLog;
 import com.ruoyi.system.domain.guarantee.GuaranteeInfo;
 import com.ruoyi.system.domain.guarantee.GuaranteeInfoFj;
 import com.ruoyi.system.domain.loan.LoanApplicationFj;
 import com.ruoyi.system.domain.loan.ShareholderFj;
 import com.ruoyi.system.mapper.GuaranteeInfoFjMapper;
 import com.ruoyi.system.mapper.ShareholderFjMapper;
+import com.ruoyi.system.service.ISysLogininforService;
+import com.ruoyi.system.service.ISysOperLogService;
 import com.ruoyi.system.service.guarantee.IGuaranteeInfoFjService;
 import com.ruoyi.system.service.loan.ILoanApplicationFjService;
+import eu.bitwalker.useragentutils.UserAgent;
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import com.ruoyi.common.constant.Constants;
-import com.ruoyi.common.utils.LogUtils;
-import com.ruoyi.common.utils.ServletUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.ip.AddressUtils;
-import com.ruoyi.common.utils.ip.IpUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
-import com.ruoyi.system.domain.SysLogininfor;
-import com.ruoyi.system.domain.SysOperLog;
-import com.ruoyi.system.service.ISysLogininforService;
-import com.ruoyi.system.service.ISysOperLogService;
-import eu.bitwalker.useragentutils.UserAgent;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
 
-import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.TimerTask;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 import static com.ruoyi.common.constant.CommonConstants.*;
 
@@ -170,10 +167,15 @@ public class AsyncFactory {
             Map<String, List<LoanApplicationFj>> typeMap = loanApplicationFjListA.stream().collect(Collectors.groupingBy(LoanApplicationFj::getType));
             List<LoanApplicationFj> list = new ArrayList<>();
             for (String type : typeMap.keySet()) {
+                List<String> typeList = new ArrayList<>();
+                String fjName = "";
                 List<LoanApplicationFj> loanApplicationFjListInsert = typeMap.get(type);
-                //获取附件名称
-                String fjName = loanApplicationFjListInsert.get(0).getName().split("_")[0];
-                List<String> typeList = loanApplicationFjListInsert.stream().filter(e -> type.equals(e.getType()) && ("png".equals(e.getName().split("\\.")[1]) || "jpg".equals(e.getName().split("\\.")[1]) || "jpeg".equals(e.getName().split("\\.")[1]))).map(LoanApplicationFj::getUrl).collect(Collectors.toList());
+                //公司营业执照名称没有后缀名
+                if (!"gsyyzhz".equals(type)) {
+                    //获取附件名称
+                    fjName = loanApplicationFjListInsert.get(0).getName().split("_")[0];
+                    typeList = loanApplicationFjListInsert.stream().filter(e -> type.equals(e.getType()) && ("png".equals(e.getName().split("\\.")[1]) || "jpg".equals(e.getName().split("\\.")[1]) || "jpeg".equals(e.getName().split("\\.")[1]))).map(LoanApplicationFj::getUrl).collect(Collectors.toList());
+                }
                 if (typeList.size() > 0) {
                     for (int i = 0; i < typeList.size(); i++) {
                         ///profile/upload/RZDB202405281147018884551/公司章程_20240528114820A002.png 前缀替换
@@ -205,7 +207,7 @@ public class AsyncFactory {
                     createPdfFromImages(list, loanApplicationFjList, typeList, loanApplicationNumber, fjName + "_" + Seq.getId(Seq.uploadSeqType), type, bigType);
                 }
             }
-            if (list.size() > 0){
+            if (list.size() > 0) {
                 // 插入数据
                 SpringUtils.getBean(ILoanApplicationFjService.class).insertLoanApplicationFj(list);
             }
@@ -253,7 +255,7 @@ public class AsyncFactory {
      * @return
      */
 
-    public static TimerTask createPdfFromImagesShareholder(List<ShareholderFj> shareholderFjList, String loanApplicationNumber,Long loanApplicationId) {
+    public static TimerTask createPdfFromImagesShareholder(List<ShareholderFj> shareholderFjList, String loanApplicationNumber, Long loanApplicationId) {
         return new TimerTask() {
             @Override
             public void run() {
@@ -399,7 +401,7 @@ public class AsyncFactory {
                                     }
                                 }
                                 //生成PDF数据库数据
-                                createPdfFromImagesGuaranteeInfoFj(list,guaranteeInfoFjInsert, imagePaths, loanApplicationNumber, fjName + "_" + Seq.getId(Seq.uploadSeqType), type, loanApplicationId, guaranteeInfoId);
+                                createPdfFromImagesGuaranteeInfoFj(list, guaranteeInfoFjInsert, imagePaths, loanApplicationNumber, fjName + "_" + Seq.getId(Seq.uploadSeqType), type, loanApplicationId, guaranteeInfoId);
                             }
                         }
                         //判断是否有反担保GuaranteeInfoFjId
@@ -418,7 +420,7 @@ public class AsyncFactory {
                     }
                 }
                 //插入附件数据库数据生成的pdf
-                if (list.size() > 0){
+                if (list.size() > 0) {
                     SpringUtils.getBean(IGuaranteeInfoFjService.class).batchGuaranteeInfoFj(list);
                 }
                 redisCache.deleteObject(key);
@@ -432,7 +434,7 @@ public class AsyncFactory {
      * @param originalFilename      pdf文件名称
      * @param type                  文件类型
      */
-    public static List<GuaranteeInfoFj> createPdfFromImagesGuaranteeInfoFj( List<GuaranteeInfoFj> list ,List<GuaranteeInfoFj> guaranteeInfoFjInsert, List<String> imagePaths, String loanApplicationNumber, String originalFilename, String type, Long loanApplicationId, Long guaranteeInfoId) {
+    public static List<GuaranteeInfoFj> createPdfFromImagesGuaranteeInfoFj(List<GuaranteeInfoFj> list, List<GuaranteeInfoFj> guaranteeInfoFjInsert, List<String> imagePaths, String loanApplicationNumber, String originalFilename, String type, Long loanApplicationId, Long guaranteeInfoId) {
         // 上传文件路径 = 根+申请编号
         String filePath = StringUtils.format("{}/{}/{}.{}", RuoYiConfig.getUploadPath(), loanApplicationNumber,
                 FilenameUtils.getBaseName(originalFilename), "pdf");