瀏覽代碼

新增 股东征信自动生成pdf

Administrator 11 月之前
父節點
當前提交
17693cc304

+ 9 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/loan/ShareholderFj.java

@@ -53,6 +53,7 @@ public class ShareholderFj extends BaseEntity
     /** 股东征信url */
     @Excel(name = "股东征信url")
     private String shareholderZxUrl;
+    private String shareholderZxUrlPdf;
     /** 股东营业执照 */
     @Excel(name = "股东营业执照url")
     private String shareholderBusinessUrl;
@@ -61,6 +62,14 @@ public class ShareholderFj extends BaseEntity
      */
     private String shareholderZxName;
 
+    public String getShareholderZxUrlPdf() {
+        return shareholderZxUrlPdf;
+    }
+
+    public void setShareholderZxUrlPdf(String shareholderZxUrlPdf) {
+        this.shareholderZxUrlPdf = shareholderZxUrlPdf;
+    }
+
     public String getShareholderBusinessUrl() {
         return shareholderBusinessUrl;
     }

+ 48 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/loan/impl/LoanApplicationServiceImpl.java

@@ -202,6 +202,7 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
                 shareholderFj.setLoanApplicationId(loanApplication.getLoanApplicationId());
                 shareholderFj.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
             }
+            createPdfFromImagesShareholder(shareholderFjList,loanApplication.getLoanApplicationNumber());
             shareholderFjMapper.batchShareholderFj(shareholderFjList);
         }
 
@@ -217,6 +218,50 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
         return i;
     }
 
+    /**
+     * 合并图片生成PDF保存为文件
+     *
+     * @param shareholderFjList
+     * @return
+     */
+    public List<ShareholderFj> createPdfFromImagesShareholder(List<ShareholderFj> shareholderFjList, String loanApplicationNumber) {
+        List<String> imagePaths = new ArrayList<>();
+        //根据文件类型进行判断是否需要合成pdf
+        for (ShareholderFj shareholderFj : shareholderFjList) {
+            String shareholderZxUrl = shareholderFj.getShareholderZxUrl();
+            if (StringUtils.isNotEmpty(shareholderZxUrl)) {
+                String[] split = shareholderZxUrl.split(",");
+                for (String fileName : split) {
+                    if ("png".equals(fileName.split("\\.")[1]) || "jpg".equals(fileName.split("\\.")[1]) || "jpeg".equals(fileName.split("\\.")[1])){
+                        imagePaths.add(fileName);
+                    }
+                }
+            }
+            if (imagePaths.size() > 0) {
+                String substring = imagePaths.get(0).substring(imagePaths.get(0).lastIndexOf("/")+1, imagePaths.get(0).lastIndexOf("_"))+Seq.getId(Seq.uploadSeqType);
+
+                for (int i = 0; i < imagePaths.size(); i++) {
+                    //前缀替换
+                    String replaced = imagePaths.get(i).replace("/profile/upload", RuoYiConfig.getUploadPath());
+                    imagePaths.set(i, replaced);
+                }
+
+                // 上传文件路径 = 根+申请编号
+                String filePath = StringUtils.format("{}/{}/{}.{}", RuoYiConfig.getUploadPath(), loanApplicationNumber,
+                        FilenameUtils.getBaseName(substring), "pdf");
+                //pdf保存位置
+                File outPutPdf = new File(filePath);
+                try {
+                    FileUploadUtils.createPdfFromImages(imagePaths, outPutPdf);
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+                shareholderFj.setShareholderZxUrlPdf(StringUtils.format("{}/{}/{}.{}", "/profile/upload", loanApplicationNumber,
+                        FilenameUtils.getBaseName(substring), "pdf"));
+            }
+        }
+        return shareholderFjList;
+    }
 
     /**
      * 合并图片生成PDF保存为文件
@@ -356,6 +401,7 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
                 shareholderFj.setLoanApplicationId(loanApplication.getLoanApplicationId());
                 shareholderFj.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
             }
+            createPdfFromImagesShareholder(shareholderFjList,loanApplication.getLoanApplicationNumber());
             shareholderFjMapper.batchShareholderFj(shareholderFjList);
         }
         return loanApplicationMapper.updateLoanApplication(loanApplication);
@@ -391,6 +437,7 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
                     shareholderFj.setLoanApplicationId(loanApplication.getLoanApplicationId());
                     shareholderFj.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
                 }
+                createPdfFromImagesShareholder(shareholderFjList,loanApplication.getLoanApplicationNumber());
                 shareholderFjMapper.batchShareholderFj(shareholderFjList);
             }
             return loanApplicationMapper.updateLoanApplication(loanApplication);
@@ -418,9 +465,9 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
                 shareholderFj.setLoanApplicationId(loanApplication.getLoanApplicationId());
                 shareholderFj.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
             }
+            createPdfFromImagesShareholder(shareholderFjList,loanApplication.getLoanApplicationNumber());
             shareholderFjMapper.batchShareholderFj(shareholderFjList);
         }
-
         return i;
     }
 

+ 7 - 3
ruoyi-system/src/main/resources/mapper/system/ShareholderFjMapper.xml

@@ -16,6 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="shareholderBackUrl"    column="shareholder_back_url"    />
         <result property="shareholderZxName"    column="shareholder_zx_name"    />
         <result property="shareholderZxUrl"    column="shareholder_zx_url"    />
+        <result property="shareholderZxUrlPdf"    column="shareholder_zx_url_pdf"    />
         <result property="shareholderBusinessUrl"    column="shareholder_business_url"    />
         <result property="createBy"    column="create_by"    />
         <result property="createTime"    column="create_time"    />
@@ -25,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectShareholderFjVo">
-        select shareholder_fj_id, loan_application_id, loan_application_number, shareholder_id_card, shareholder_name,shareholder_front_name, shareholder_front_url,shareholder_back_name, shareholder_back_url,shareholder_zx_name, shareholder_zx_url,shareholder_business_url, create_by, create_time, update_by, update_time, remark from shareholder_fj
+        select shareholder_fj_id, loan_application_id, loan_application_number, shareholder_id_card, shareholder_name,shareholder_front_name, shareholder_front_url,shareholder_back_name, shareholder_back_url,shareholder_zx_name, shareholder_zx_url,shareholder_zx_url_pdf,shareholder_business_url, create_by, create_time, update_by, update_time, remark from shareholder_fj
     </sql>
 
     <select id="selectShareholderFjList" parameterType="ShareholderFj" resultMap="ShareholderFjResult">
@@ -68,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shareholderBackUrl != null and shareholderBackUrl != ''">shareholder_back_url,</if>
             <if test="shareholderZxName != null and shareholderZxName != ''" >shareholder_zx_name,</if>
             <if test="shareholderZxUrl != null and shareholderZxUrl != ''">shareholder_zx_url,</if>
+            <if test="shareholderZxUrlPdf != null and shareholderZxUrlPdf != ''">shareholder_zx_url_pdf,</if>
             <if test="shareholderBusinessUrl != null and shareholderBusinessUrl != ''">shareholder_business_url,</if>
             <if test="createBy != null">create_by,</if>
             <if test="updateBy != null">update_by,</if>
@@ -86,6 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shareholderBackUrl != null and shareholderBackUrl != ''">#{shareholderBackUrl},</if>
             <if test="shareholderZxName != null and shareholderZxName != ''">#{shareholderZxName},</if>
             <if test="shareholderZxUrl != null and shareholderZxUrl != ''">#{shareholderZxUrl},</if>
+            <if test="shareholderZxUrlPdf != null and shareholderZxUrlPdf != ''">#{shareholderZxUrlPdf},</if>
             <if test="shareholderBusinessUrl != null and shareholderBusinessUrl != ''">#{shareholderBusinessUrl},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="updateBy != null">#{updateBy},</if>
@@ -95,9 +98,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
          </trim>
     </insert>
     <insert id="batchShareholderFj">
-        insert into shareholder_fj(loan_application_id, loan_application_number, shareholder_id_card, shareholder_name,shareholder_front_name, shareholder_front_url,shareholder_back_name, shareholder_back_url,shareholder_zx_name, shareholder_zx_url,shareholder_business_url, create_by, create_time, update_by, update_time, remark) values
+        insert into shareholder_fj(loan_application_id, loan_application_number, shareholder_id_card, shareholder_name,shareholder_front_name, shareholder_front_url,shareholder_back_name, shareholder_back_url,shareholder_zx_name, shareholder_zx_url,shareholder_zx_url_pdf,shareholder_business_url, create_by, create_time, update_by, update_time, remark) values
         <foreach item="item" index="index" collection="list" separator=",">
-            (#{item.loanApplicationId},#{item.loanApplicationNumber},#{item.shareholderIdCard},#{item.shareholderName},#{item.shareholderFrontName},#{item.shareholderFrontUrl},#{item.shareholderBackName},#{item.shareholderBackUrl},#{item.shareholderZxName},#{item.shareholderZxUrl},#{item.shareholderBusinessUrl},#{item.createBy},sysdate(),#{item.updateBy},#{item.updateTime},#{item.remark})
+            (#{item.loanApplicationId},#{item.loanApplicationNumber},#{item.shareholderIdCard},#{item.shareholderName},#{item.shareholderFrontName},#{item.shareholderFrontUrl},#{item.shareholderBackName},#{item.shareholderBackUrl},#{item.shareholderZxName},#{item.shareholderZxUrl},#{item.shareholderZxUrlPdf},#{item.shareholderBusinessUrl},#{item.createBy},sysdate(),#{item.updateBy},#{item.updateTime},#{item.remark})
         </foreach>
     </insert>
 
@@ -114,6 +117,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shareholderBackUrl != null and shareholderBackUrl != ''">shareholder_back_url = #{shareholderBackUrl},</if>
             <if test="shareholderZxName != null and shareholderZxName != ''">shareholder_zx_name = #{shareholderZxName},</if>
             <if test="shareholderZxUrl != null and shareholderZxUrl != ''">shareholder_zx_url = #{shareholderZxUrl},</if>
+            <if test="shareholderZxUrlPdf != null and shareholderZxUrlPdf != ''">shareholder_zx_url_pdf = #{shareholderZxUrlPdf},</if>
             <if test="shareholderBusinessUrl != null and shareholderBusinessUrl != ''">shareholder_business_url = #{shareholderBusinessUrl},</if>
             <if test="createBy != null">create_by = #{createBy},</if>
             <if test="createTime != null">create_time = #{createTime},</if>