|
@@ -1,11 +1,12 @@
|
|
|
package com.ruoyi.system.service.loan.impl;
|
|
|
|
|
|
|
|
|
+import com.ruoyi.common.config.RuoYiConfig;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
import com.ruoyi.common.core.domain.entity.SysRole;
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
|
-import com.ruoyi.common.utils.SendSmsUtils;
|
|
|
+import com.ruoyi.common.utils.StringUtils;
|
|
|
import com.ruoyi.system.domain.conference.SysUserConference;
|
|
|
import com.ruoyi.system.domain.enterprise.SysUserEnterprise;
|
|
|
import com.ruoyi.system.domain.loan.LoanApplication;
|
|
@@ -19,15 +20,17 @@ import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
-import java.util.Calendar;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
+import java.io.File;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.ruoyi.common.constant.CommonConstants.*;
|
|
|
|
|
|
+import net.lingala.zip4j.ZipFile;
|
|
|
+import net.lingala.zip4j.exception.ZipException;
|
|
|
+import net.lingala.zip4j.model.ZipParameters;
|
|
|
+import net.lingala.zip4j.model.enums.EncryptionMethod;
|
|
|
+
|
|
|
/**
|
|
|
* 贷款申请主Service业务层处理
|
|
|
*
|
|
@@ -106,15 +109,37 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
|
|
|
//判断是否是admin或者管理员manager
|
|
|
List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
|
|
|
String roleKey = "admin,manager";
|
|
|
+ List<LoanApplication> loanApplications = new ArrayList<>();
|
|
|
for (SysRole role : roles) {
|
|
|
- if (role.getRoleKey().contains(roleKey)) {
|
|
|
-
|
|
|
- break;
|
|
|
+ if (roleKey.contains(role.getRoleKey())) {
|
|
|
+ loanApplications = loanApplicationMapper.selectLoanApplicationList(loanApplication);
|
|
|
+ return loanApplications;
|
|
|
}
|
|
|
}
|
|
|
- List<LoanApplication> loanApplications = loanApplicationMapper.selectLoanApplicationList(loanApplication);
|
|
|
-
|
|
|
+ loanApplication.setUserId(SecurityUtils.getUserId());
|
|
|
+ loanApplications = loanApplicationMapper.selectLoanApplicationList(loanApplication);
|
|
|
+ return loanApplications;
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * 文件管理
|
|
|
+ *
|
|
|
+ * @param loanApplication
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<LoanApplication> listOss(LoanApplication loanApplication) {
|
|
|
+ List<LoanApplication> loanApplications = loanApplicationMapper.selectLoanApplicationList(loanApplication);
|
|
|
+ if (loanApplications != null && loanApplications.size() > 0){
|
|
|
+ for (LoanApplication application : loanApplications) {
|
|
|
+ //去查询压缩包
|
|
|
+ LoanApplicationFj loanApplicationFj = new LoanApplicationFj();
|
|
|
+ loanApplicationFj.setLoanApplicationId(application.getLoanApplicationId());
|
|
|
+ loanApplicationFj.setBigType("e");
|
|
|
+ List<LoanApplicationFj> loanApplicationFjList = loanApplicationFjMapper.selectLoanApplicationFjList(loanApplicationFj);
|
|
|
+ loanApplication.setLoanApplicationFjList(loanApplicationFjList);
|
|
|
+ }
|
|
|
+ }
|
|
|
return loanApplications;
|
|
|
}
|
|
|
|
|
@@ -331,7 +356,7 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
|
|
|
type.append(loanApplicationFj.getType()).append(",");
|
|
|
}
|
|
|
type.deleteCharAt(type.lastIndexOf(","));
|
|
|
- loanApplicationFjMapper.deleteLoanApplicationFjByLoanApplicationIdAndType(loanApplicationId, type.toString());
|
|
|
+ loanApplicationFjMapper.deleteLoanApplicationFjByLoanApplicationIdAndType(loanApplicationId, type.toString().split(","));
|
|
|
//需要删除当前状态下已存在的附件
|
|
|
loanApplicationFjMapper.batchLoanApplicationFj(fjUrl);
|
|
|
}
|
|
@@ -368,15 +393,21 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
|
|
|
//audit_schedule = 2,3的时候贷款申请进度处于担保初审状态
|
|
|
if (auditSchedule.equals(TWO) || auditSchedule.equals(THR)) {
|
|
|
loanApplication.setLoanSchedule(THR);
|
|
|
+ //审核流程结束
|
|
|
+ } else if (auditSchedule.equals(SEV)) {
|
|
|
+ loanApplication.setLoanSchedule(String.valueOf(Integer.parseInt(loanScheduleOld) + 1));
|
|
|
+ loanApplication.setAuditSchedule(auditSchedule);
|
|
|
+ loanApplication.setAuditType(auditType);
|
|
|
} else {
|
|
|
loanApplication.setLoanSchedule(String.valueOf(Integer.parseInt(loanScheduleOld) + 1));
|
|
|
+ loanApplication.setAuditSchedule(String.valueOf(Integer.parseInt(auditSchedule) + 1));
|
|
|
+ loanApplication.setAuditType(ONE);
|
|
|
}
|
|
|
- loanApplication.setAuditSchedule(String.valueOf(Integer.parseInt(auditSchedule) + 1));
|
|
|
- loanApplication.setAuditType(ONE);
|
|
|
loanApplicationMapper.updateLoanApplication(loanApplication);
|
|
|
//插入流程记录表
|
|
|
LoanSchedule loanSchedule = new LoanSchedule();
|
|
|
loanSchedule.setLoanApplicationId(loanApplicationId);
|
|
|
+ loanSchedule.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
|
|
|
loanSchedule.setLoanScheduleValue(loanApplication.getLoanSchedule());
|
|
|
loanSchedule.setLoanScheduleScore(Long.parseLong(loanApplication.getLoanSchedule()));
|
|
|
loanSchedule.setLoanScheduleTime(DateUtils.getNowDate());
|
|
@@ -405,8 +436,8 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
|
|
|
loanApplication.setAuditSchedule(TWO);
|
|
|
loanApplicationMapper.updateLoanApplication(loanApplication);
|
|
|
//删除之后的所有附件
|
|
|
- String type = "jzdcbg," + "dbxmhfhgb," + "psyjqpb,"+ "clhgb," + "gdhyjy";
|
|
|
- loanApplicationFjMapper.deleteLoanApplicationFjByLoanApplicationIdAndType(loanApplication.getLoanApplicationId(), type);
|
|
|
+ String type = "jzdcbg," + "dbxmhfhgb," + "psyjqpb," + "clhgb," + "gdhyjy";
|
|
|
+ loanApplicationFjMapper.deleteLoanApplicationFjByLoanApplicationIdAndType(loanApplication.getLoanApplicationId(), type.split(","));
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
|
|
@@ -436,15 +467,15 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
|
|
|
loanApplicationMapper.updateLoanApplication(loanApplication);
|
|
|
|
|
|
String type = "-1";
|
|
|
- if (auditSchedule.equals(FIV)){
|
|
|
+ if (auditSchedule.equals(FIV)) {
|
|
|
type = "jzdcbg";
|
|
|
- }else if (auditSchedule.equals(SIX)){
|
|
|
+ } else if (auditSchedule.equals(SIX)) {
|
|
|
type = "dbxmhfhgb,clhgb";
|
|
|
- }else if (auditSchedule.equals(SEV)){
|
|
|
+ } else if (auditSchedule.equals(SEV)) {
|
|
|
type = "psyjqpb,gdhyjy";
|
|
|
}
|
|
|
//还需要删除附件
|
|
|
- loanApplicationFjMapper.deleteLoanApplicationFjByLoanApplicationIdAndType(loanApplication.getLoanApplicationId(), type);
|
|
|
+ loanApplicationFjMapper.deleteLoanApplicationFjByLoanApplicationIdAndType(loanApplication.getLoanApplicationId(), type.split(","));
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
|
|
@@ -472,9 +503,88 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
|
|
|
loanScheduleNew.setLoanScheduleScore(Long.parseLong(loanApplication.getLoanSchedule()));
|
|
|
loanScheduleNew.setLoanScheduleTime(DateUtils.getNowDate());
|
|
|
loanScheduleMapper.insertLoanSchedule(loanScheduleNew);
|
|
|
+ //todo 获取所有文件URL 进行打包zip,还有系统内的照片地址 往附件表中插入其他-归档类型的url地址
|
|
|
+ Long loanApplicationId = loanApplication.getLoanApplicationId();
|
|
|
+ List<LoanApplicationFj> loanApplicationFjList = loanApplicationFjMapper.selectLoanApplicationFjByLoanApplicationId(loanApplicationId);
|
|
|
+ //基础附件
|
|
|
+ LoanApplication loanApplicationOld = loanApplicationMapper.selectLoanApplicationByLoanApplicationId(loanApplicationId);
|
|
|
+ //股东附件
|
|
|
+ List<ShareholderFj> shareholderFjs = shareholderFjMapper.selectShareholderFjLoanApplicationId(loanApplicationId);
|
|
|
+ List<File> fileList = new ArrayList<>();
|
|
|
+ if (loanApplicationFjList != null && loanApplicationFjList.size() > 0) {
|
|
|
+ for (LoanApplicationFj loanApplicationFj : loanApplicationFjList) {
|
|
|
+ fileList.add(new File(loanApplicationFj.getUrl()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String corporationFront = loanApplicationOld.getCorporationFront();
|
|
|
+ String corporationBack = loanApplicationOld.getCorporationBack();
|
|
|
+ String spouseFront = loanApplicationOld.getSpouseFront();
|
|
|
+ String spouseBack = loanApplicationOld.getSpouseBack();
|
|
|
+ String guaranteeFront = loanApplicationOld.getGuaranteeFront();
|
|
|
+ String guaranteeBack = loanApplicationOld.getGuaranteeBack();
|
|
|
+ if (StringUtils.isNotEmpty(corporationFront)) {
|
|
|
+ fileList.add(new File(corporationFront));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(corporationBack)) {
|
|
|
+ fileList.add(new File(corporationBack));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(spouseFront)) {
|
|
|
+ fileList.add(new File(spouseFront));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(spouseBack)) {
|
|
|
+ fileList.add(new File(spouseBack));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(guaranteeFront)) {
|
|
|
+ fileList.add(new File(guaranteeFront));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(guaranteeBack)) {
|
|
|
+ fileList.add(new File(guaranteeBack));
|
|
|
+ }
|
|
|
+ if (shareholderFjs != null && shareholderFjs.size() > 0) {
|
|
|
+ for (ShareholderFj shareholderFj : shareholderFjs) {
|
|
|
+ fileList.add(new File(shareholderFj.getShareholderZxUrl()));
|
|
|
+ fileList.add(new File(shareholderFj.getShareholderFrontUrl()));
|
|
|
+ fileList.add(new File(shareholderFj.getShareholderBackUrl()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 上传文件路径
|
|
|
+ String filePath = RuoYiConfig.getUploadPath() + "/";
|
|
|
+ String name = loanApplicationOld.getEnterpriseName() + loanApplicationOld.getLoanApplicationNumber() + "文档.zip";
|
|
|
+ zipEncryptExample(fileList, filePath + name, "123");
|
|
|
+ //把压缩包的url插入附件表
|
|
|
+ LoanApplicationFj loanApplicationFj = new LoanApplicationFj();
|
|
|
+ loanApplicationFj.setLoanApplicationId(loanApplicationId);
|
|
|
+ loanApplicationFj.setLoanApplicationNumber(loanApplicationOld.getEnterpriseName());
|
|
|
+ loanApplicationFj.setOldName(name);
|
|
|
+ loanApplicationFj.setName(name);
|
|
|
+ loanApplicationFj.setUrl(filePath + name);
|
|
|
+ loanApplicationFj.setBigType("e");
|
|
|
+ loanApplicationFj.setCreateTime(DateUtils.getNowDate());
|
|
|
+ loanApplicationFjMapper.insertLoanApplicationFj(loanApplicationFj);
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 压缩文件,返回地址
|
|
|
+ *
|
|
|
+ * @param fileList 源文件或目录路径
|
|
|
+ * @param zipFilePath ZIP文件输出路径
|
|
|
+ * @param password 加密密码
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String zipEncryptExample(List<File> fileList, String zipFilePath, String password) {
|
|
|
+ try {
|
|
|
+ ZipParameters zipParameters = new ZipParameters();
|
|
|
+ zipParameters.setEncryptFiles(true);
|
|
|
+ zipParameters.setEncryptionMethod(EncryptionMethod.ZIP_STANDARD); // 标准AES加密
|
|
|
+ ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());
|
|
|
+ zipFile.addFiles(fileList, zipParameters);
|
|
|
+ System.out.println("文件加密成功,保存位置:" + zipFilePath);
|
|
|
+ } catch (ZipException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return zipFilePath;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 导出模板附件
|