Explorar o código

新增 股东征信自动生成pdf

Administrator hai 11 meses
pai
achega
f92edd4d27

+ 37 - 3
ruoyi-system/src/main/java/com/ruoyi/system/service/loan/impl/LoanApplicationServiceImpl.java

@@ -274,7 +274,14 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
      */
     public List<LoanApplicationFj> createPdfFromImages(List<LoanApplicationFj> loanApplicationFjList, String loanApplicationNumber) {
         //根据文件类型进行判断是否需要合成pdf
-        //公司章程
+        Map<String, List<LoanApplicationFj>> bigTypeMap = loanApplicationFjList.stream().collect(Collectors.groupingBy(LoanApplicationFj::getBigType));
+        if (bigTypeMap.size() > 0){
+            List<LoanApplicationFj> loanApplicationFjListA = bigTypeMap.get(A);
+            List<LoanApplicationFj> loanApplicationFjListB = bigTypeMap.get(B);
+            createPdfFromImages(loanApplicationFjList,loanApplicationFjListA,loanApplicationNumber,A);
+            createPdfFromImages(loanApplicationFjList,loanApplicationFjListB,loanApplicationNumber,B);
+        }
+/*        //公司章程
         List<String> gszc = loanApplicationFjList.stream().filter(e -> "gszc".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());
         //申请企业征信报告
         List<String> sqqyzxbg = loanApplicationFjList.stream().filter(e -> "sqqyzxbg".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());
@@ -347,6 +354,33 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
                 fdbqyzx.set(i, replaced);
             }
             createPdfFromImages(loanApplicationFjList, fdbqyzx, loanApplicationNumber, "反担保企业征信报告_" + Seq.getId(Seq.uploadSeqType), "fdbqyzx");
+        }*/
+        return loanApplicationFjList;
+    }
+
+    /**
+     *
+     * @param loanApplicationFjList 全体附件
+     * @param loanApplicationFjListA 分附件大类集合
+     * @return
+     */
+    public List<LoanApplicationFj> createPdfFromImages(List<LoanApplicationFj> loanApplicationFjList, List<LoanApplicationFj> loanApplicationFjListA,String loanApplicationNumber,String bigType){
+        if (loanApplicationFjListA != null && loanApplicationFjListA.size() > 0){
+            Map<String, List<LoanApplicationFj>> typeMap = loanApplicationFjListA.stream().collect(Collectors.groupingBy(LoanApplicationFj::getType));
+            for (String type : typeMap.keySet()) {
+                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 (typeList.size() > 0){
+                    for (int i = 0; i < typeList.size(); i++) {
+                        ///profile/upload/RZDB202405281147018884551/公司章程_20240528114820A002.png 前缀替换
+                        String replaced = typeList.get(i).replace("/profile/upload", RuoYiConfig.getUploadPath());
+                        typeList.set(i, replaced);
+                    }
+                    createPdfFromImages(loanApplicationFjList, typeList, loanApplicationNumber, fjName+"_" + Seq.getId(Seq.uploadSeqType), type,bigType);
+                }
+            }
         }
         return loanApplicationFjList;
     }
@@ -357,7 +391,7 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
      * @param originalFilename      pdf文件名称
      * @param type                  文件类型
      */
-    public List<LoanApplicationFj> createPdfFromImages(List<LoanApplicationFj> loanApplicationFjList, List<String> imagePaths, String loanApplicationNumber, String originalFilename, String type) {
+    public List<LoanApplicationFj> createPdfFromImages(List<LoanApplicationFj> loanApplicationFjList, List<String> imagePaths, String loanApplicationNumber, String originalFilename, String type,String bigType) {
         // 上传文件路径 = 根+申请编号
         String filePath = StringUtils.format("{}/{}/{}.{}", RuoYiConfig.getUploadPath(), loanApplicationNumber,
                 FilenameUtils.getBaseName(originalFilename), "pdf");
@@ -372,7 +406,7 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
             applicationFj.setName(originalFilename + ".pdf");
             applicationFj.setUrl(StringUtils.format("{}/{}/{}.{}", "/profile/upload", loanApplicationNumber,
                     FilenameUtils.getBaseName(originalFilename), "pdf"));
-            applicationFj.setBigType(A);
+            applicationFj.setBigType(bigType);
             applicationFj.setType(type);
             //给前端判断是否是系统生成的pdf
             applicationFj.setRemark(ONE);