liuj 1 день назад
Родитель
Сommit
5bb27c08b5

+ 14 - 0
src/main/java/com/sunxung/factoring/entity/financing/payment/PaymentApproval.java

@@ -98,6 +98,12 @@ public class PaymentApproval extends BaseEntity {
     @TableField(exist = false)
     private List<FileStorage> commitmentFileList;
 
+    /**
+     * 代偿承诺书附件Id
+     */
+    @TableField(exist = false)
+    private List<Long> commitmentFileIds;
+
     public Long getPaymentApplyId() {
         return paymentApplyId;
     }
@@ -201,4 +207,12 @@ public class PaymentApproval extends BaseEntity {
     public void setCommitmentFileList(List<FileStorage> commitmentFileList) {
         this.commitmentFileList = commitmentFileList;
     }
+
+    public List<Long> getCommitmentFileIds() {
+        return commitmentFileIds;
+    }
+
+    public void setCommitmentFileIds(List<Long> commitmentFileIds) {
+        this.commitmentFileIds = commitmentFileIds;
+    }
 }

+ 102 - 0
src/main/java/com/sunxung/factoring/service/financing/payment/impl/PaymentApplyServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.deepoove.poi.XWPFTemplate;
 import com.snb.fsos.bean.LoanApply;
+import com.snb.fsos.bean.SMBFileUpload;
 import com.sunxung.factoring.component.enums.FinancingCurrentStageEnum;
 import com.sunxung.factoring.component.exception.BusinessException;
 import com.sunxung.factoring.component.exception.ValidatorException;
@@ -715,6 +716,9 @@ public class PaymentApplyServiceImpl extends ServiceImpl<PaymentApplyMapper, Pay
                 ReviewFinancingInfo reviewFinancingInfo = reviewFinancingInfoService.getOne(new QueryWrapper<ReviewFinancingInfo>()
                         .eq("review_quota_disburse_id", paymentInfo.getQuotaDisburseId()));
                 if (reviewFinancingInfo != null && ConstantUtil.JIANGSU_SUSHANG_BANK.equals(reviewFinancingInfo.getInstitutionName())) {
+                    //文件上传、获取苏商上传文件集合
+                    getFileInfoList(paymentApproval, receivablesRegisterInfo, paymentInfo, financingBasicInfo);
+
                     LoanApplyResp loanApplyResp = withdrawApplyBySmb(financingBasicInfo, reviewFinancingInfo);
                     //保存资方放款信息
                     saveFinancingLoanInfo(financingBasicInfo, reviewFinancingInfo, loanApplyResp);
@@ -734,6 +738,104 @@ public class PaymentApplyServiceImpl extends ServiceImpl<PaymentApplyMapper, Pay
         }
     }
 
+    /**
+     * 获取上传苏商的文件信息
+     *
+     * @param paymentApproval
+     * @param receivablesRegisterInfo
+     * @param paymentInfo
+     * @param financingBasicInfo
+     * @return
+     */
+    private List<LoanCreditRiskMsgDto.FileInfo> getFileInfoList(PaymentApproval paymentApproval, ReceivablesRegisterInfo receivablesRegisterInfo, PaymentInfo paymentInfo, CFinancingBasicInfo financingBasicInfo) {
+        List<LoanCreditRiskMsgDto.FileInfo> fileList = new ArrayList<>();
+
+        //上传应收账款合同
+        List<FileStorage> salesContractFile = getSalesContractFile(paymentInfo.getBusinessNo());
+        if (CollectionUtil.isNotEmpty(salesContractFile)) {
+            for (FileStorage fileStorage : salesContractFile) {
+                String fileSdossId = fileUploadBySmb(fileStorage, "811");
+
+                LoanCreditRiskMsgDto.FileInfo fileInfo = new LoanCreditRiskMsgDto.FileInfo();
+                fileInfo.setFileType("811");
+                fileInfo.setFileSdossId(fileSdossId);
+                fileList.add(fileInfo);
+            }
+        }
+        List<FileStorage> purchContractFiles = getPurchContractFiles(paymentInfo.getBusinessNo());
+        if (CollectionUtil.isNotEmpty(purchContractFiles)) {
+            for (FileStorage fileStorage : purchContractFiles) {
+                String fileSdossId = fileUploadBySmb(fileStorage, "811");
+
+                LoanCreditRiskMsgDto.FileInfo fileInfo = new LoanCreditRiskMsgDto.FileInfo();
+                fileInfo.setFileType("811");
+                fileInfo.setFileSdossId(fileSdossId);
+                fileList.add(fileInfo);
+            }
+        }
+        //上传应收账款产值单
+        List<FileStorage> acceptanceFile = getAcceptanceFile(financingBasicInfo.getId());
+        for (FileStorage fileStorage : acceptanceFile) {
+            String fileSdossId = fileUploadBySmb(fileStorage, "812");
+
+            LoanCreditRiskMsgDto.FileInfo fileInfo = new LoanCreditRiskMsgDto.FileInfo();
+            fileInfo.setFileType("812");
+            fileInfo.setFileSdossId(fileSdossId);
+            fileList.add(fileInfo);
+        }
+        //上传中登网登记凭证
+        if (CollectionUtil.isNotEmpty(receivablesRegisterInfo.getReceivablesFileIds())) {
+            for (Long fileId : receivablesRegisterInfo.getReceivablesFileIds()) {
+                FileStorage fileStorage = fileStorageService.get(fileId);
+
+                String fileSdossId = fileUploadBySmb(fileStorage, "813");
+                LoanCreditRiskMsgDto.FileInfo fileInfo = new LoanCreditRiskMsgDto.FileInfo();
+                fileInfo.setFileType("813");
+                fileInfo.setFileSdossId(fileSdossId);
+                fileList.add(fileInfo);
+            }
+        }
+        //上传回购承诺函
+        List<Long> commitmentFileIds = paymentApproval.getCommitmentFileIds();
+        if (CollectionUtil.isNotEmpty(commitmentFileIds)) {
+            for (Long fileId : commitmentFileIds) {
+                FileStorage fileStorage = fileStorageService.get(fileId);
+
+                String fileSdossId = fileUploadBySmb(fileStorage, "814");
+                LoanCreditRiskMsgDto.FileInfo fileInfo = new LoanCreditRiskMsgDto.FileInfo();
+                fileInfo.setFileType("814");
+                fileInfo.setFileSdossId(fileSdossId);
+                fileList.add(fileInfo);
+            }
+        }
+        return fileList;
+    }
+
+    /**
+     * 苏商银行-文件上传
+     *
+     * @param fileStorage
+     * @param fileType
+     * @return
+     */
+    private String fileUploadBySmb(FileStorage fileStorage, String fileType) {
+        List<SMBFileUpload> upload = new ArrayList<>();
+        SMBFileUpload smbFileUpload = new SMBFileUpload();
+        smbFileUpload.setFileName(fileStorage.getOriginalName());
+        smbFileUpload.setFileType(fileType);
+        smbFileUpload.setFilePath(fileStorage.getAbsolutePath());
+        upload.add(smbFileUpload);
+        Map<String, String> map;
+        try {
+            map = smbApiService.fileStreamUpload(upload);
+            String fileSdossId = map.get(fileStorage.getOriginalName());
+            return fileSdossId;
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new BusinessException(CodeUtil.FAIL, "上传苏商文件出错,请稍后重试!");
+        }
+    }
+
     @Override
     public List<PaymentCondition> findConditions(Long applyId) {
         return paymentConditionService.lambdaQuery().eq(PaymentCondition::getPaymentApplyId, applyId).list();