Sfoglia il codice sorgente

担保申请,附件相关

Administrator 1 anno fa
parent
commit
04bb3d5dbb
44 ha cambiato i file con 4499 aggiunte e 182 eliminazioni
  1. 34 9
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
  2. 28 6
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/enterprise/SysUserEnterpriseController.java
  3. 118 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/loan/LoanApplicationController.java
  4. 96 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/loan/LoanApplicationFjController.java
  5. 98 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/loan/LoanScheduleController.java
  6. 99 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/loan/ShareholderFjController.java
  7. 103 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/review/ReviewCommentsController.java
  8. 1 1
      ruoyi-admin/src/main/resources/application.yml
  9. 5 0
      ruoyi-common/src/main/java/com/ruoyi/common/constant/CommonConstants.java
  10. 20 0
      ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java
  11. 3 1
      ruoyi-common/src/main/java/com/ruoyi/common/utils/IdCardUtil.java
  12. 91 70
      ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java
  13. 0 1
      ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
  14. 122 89
      ruoyi-system/src/main/java/com/ruoyi/system/domain/enterprise/SysUserEnterprise.java
  15. 889 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/loan/LoanApplication.java
  16. 138 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/loan/LoanApplicationFj.java
  17. 129 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/loan/LoanSchedule.java
  18. 176 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/loan/ShareholderFj.java
  19. 157 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/review/ReviewComments.java
  20. 38 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UploadVo.java
  21. 86 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/LoanApplicationFjMapper.java
  22. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/LoanApplicationMapper.java
  23. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/LoanScheduleMapper.java
  24. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/ReviewCommentsMapper.java
  25. 84 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/ShareholderFjMapper.java
  26. 3 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserEnterpriseMapper.java
  27. 2 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/enterprise/ISysUserEnterpriseService.java
  28. 10 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/enterprise/impl/SysUserEnterpriseServiceImpl.java
  29. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/loan/ILoanApplicationFjService.java
  30. 69 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/loan/ILoanApplicationService.java
  31. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/loan/ILoanScheduleService.java
  32. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/loan/IShareholderFjService.java
  33. 96 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/loan/impl/LoanApplicationFjServiceImpl.java
  34. 223 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/loan/impl/LoanApplicationServiceImpl.java
  35. 97 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/loan/impl/LoanScheduleServiceImpl.java
  36. 97 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/loan/impl/ShareholderFjServiceImpl.java
  37. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/review/IReviewCommentsService.java
  38. 96 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/review/impl/ReviewCommentsServiceImpl.java
  39. 123 0
      ruoyi-system/src/main/resources/mapper/system/LoanApplicationFjMapper.xml
  40. 354 0
      ruoyi-system/src/main/resources/mapper/system/LoanApplicationMapper.xml
  41. 102 0
      ruoyi-system/src/main/resources/mapper/system/LoanScheduleMapper.xml
  42. 112 0
      ruoyi-system/src/main/resources/mapper/system/ReviewCommentsMapper.xml
  43. 136 0
      ruoyi-system/src/main/resources/mapper/system/ShareholderFjMapper.xml
  44. 23 5
      ruoyi-system/src/main/resources/mapper/system/SysUserEnterpriseMapper.xml

+ 34 - 9
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java

@@ -1,10 +1,12 @@
 package com.ruoyi.web.controller.common;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.system.domain.vo.UploadVo;
 import net.lingala.zip4j.ZipFile;
 import net.lingala.zip4j.exception.ZipException;
 import net.lingala.zip4j.model.ZipParameters;
@@ -13,10 +15,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.constant.Constants;
@@ -89,6 +88,31 @@ public class CommonController {
         }
     }
 
+    /**
+     * 按照项目编号创建文件夹通用上传请求(单个)
+     */
+    @PostMapping("/uploadNew")
+    public AjaxResult uploadNewFile(@RequestBody UploadVo uploadVo) throws Exception {
+        try {
+            MultipartFile file = uploadVo.getFile();
+            String loanApplicationNumber = uploadVo.getLoanApplicationNumber();
+            String originalFilename = uploadVo.getFileName();
+            // 上传文件路径
+            String filePath = RuoYiConfig.getUploadPath();
+            // 上传并返回新文件名称
+            String fileName = FileUploadUtils.uploadLoanApplicationNumber(filePath, file, loanApplicationNumber, originalFilename);
+            String url = serverConfig.getUrl() + fileName;
+            AjaxResult ajax = AjaxResult.success();
+            ajax.put("url", url);
+            ajax.put("fileName", fileName);
+            ajax.put("newFileName", FileUtils.getName(fileName));
+            ajax.put("originalFilename", file.getOriginalFilename());
+            return ajax;
+        } catch (Exception e) {
+            return AjaxResult.error(e.getMessage());
+        }
+    }
+
     /**
      * 通用上传请求(多个)
      */
@@ -147,18 +171,19 @@ public class CommonController {
 
     /**
      * 压缩文件,返回地址
-     * @param sourceFilePath 源文件或目录路径
+     *
+     * @param fileList    源文件或目录路径
      * @param zipFilePath ZIP文件输出路径
-     * @param password 加密密码
+     * @param password    加密密码
      * @return
      */
-    public String zipEncryptExample(String sourceFilePath, String zipFilePath, String password) {
+    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.addFile(sourceFilePath, zipParameters);
+            ZipFile zipFile = new ZipFile(zipFilePath, password.toCharArray());
+            zipFile.addFiles(fileList, zipParameters);
             System.out.println("文件加密成功,保存位置:" + zipFilePath);
         } catch (ZipException e) {
             e.printStackTrace();

+ 28 - 6
ruoyi-admin/src/main/java/com/ruoyi/web/controller/enterprise/SysUserEnterpriseController.java

@@ -55,13 +55,22 @@ public class SysUserEnterpriseController extends BaseController {
         util.exportExcel(response, list, "用户企业信息数据");
     }
 
-    /**
+/*    *//**
      * 获取用户企业信息详细信息
-     */
+     *//*
     @PreAuthorize("@ss.hasPermi('enterprise:enterprise:query')")
     @GetMapping(value = "/{userId}")
     public AjaxResult getInfo(@PathVariable("userId") Long userId) {
         return success(sysUserEnterpriseService.selectSysUserEnterpriseByUserId(userId));
+    }*/
+
+    /**
+     * 获取用户企业信息详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('enterprise:enterprise:query')")
+    @GetMapping(value = "/{enterpriseId}")
+    public AjaxResult getInfo(@PathVariable("enterpriseId") Long enterpriseId) {
+        return success(sysUserEnterpriseService.selectSysUserEnterpriseByEnterpriseId(enterpriseId));
     }
 
     /**
@@ -70,8 +79,11 @@ public class SysUserEnterpriseController extends BaseController {
     @PreAuthorize("@ss.hasPermi('enterprise:enterprise:add')")
     @Log(title = "用户企业信息", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody SysUserEnterprise sysUserEnterprise) {
-        return toAjax(sysUserEnterpriseService.insertSysUserEnterprise(sysUserEnterprise));
+    public AjaxResult add(@RequestBody List<SysUserEnterprise> sysUserEnterpriseList) {
+        for (SysUserEnterprise sysUserEnterprise : sysUserEnterpriseList) {
+            return toAjax(sysUserEnterpriseService.insertSysUserEnterprise(sysUserEnterprise));
+        }
+        return AjaxResult.success();
     }
 
     /**
@@ -84,13 +96,23 @@ public class SysUserEnterpriseController extends BaseController {
         return toAjax(sysUserEnterpriseService.updateSysUserEnterprise(sysUserEnterprise));
     }
 
-    /**
+/*    *//**
      * 删除用户企业信息
-     */
+     *//*
     @PreAuthorize("@ss.hasPermi('enterprise:enterprise:remove')")
     @Log(title = "用户企业信息", businessType = BusinessType.DELETE)
     @GetMapping("/delete/{userIds}")
     public AjaxResult remove(@PathVariable Long[] userIds) {
         return toAjax(sysUserEnterpriseService.deleteSysUserEnterpriseByUserIds(userIds));
+    }*/
+
+    /**
+     * 删除用户企业信息
+     */
+    @PreAuthorize("@ss.hasPermi('enterprise:enterprise:remove')")
+    @Log(title = "用户企业信息", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{enterpriseIds}")
+    public AjaxResult remove(@PathVariable Long[] enterpriseIds) {
+        return toAjax(sysUserEnterpriseService.deleteSysUserEnterpriseByEnterpriseIds(enterpriseIds));
     }
 }

+ 118 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/loan/LoanApplicationController.java

@@ -0,0 +1,118 @@
+package com.ruoyi.web.controller.loan;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SendSmsUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.system.domain.loan.LoanApplication;
+import com.ruoyi.system.service.loan.ILoanApplicationService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import static com.ruoyi.common.constant.CommonConstants.RZDB;
+
+/**
+ * 贷款申请主Controller
+ *
+ * @author boman
+ * @date 2024-04-24
+ */
+@RestController
+@RequestMapping("/application")
+public class LoanApplicationController extends BaseController {
+    @Autowired
+    private ILoanApplicationService loanApplicationService;
+
+    /**
+     * 查询贷款申请主列表
+     */
+    //@PreAuthorize("@ss.hasPermi('system:application:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(LoanApplication loanApplication) {
+        startPage();
+        List<LoanApplication> list = loanApplicationService.selectLoanApplicationList(loanApplication);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出贷款申请主列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:application:export')")
+    @Log(title = "贷款申请主", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, LoanApplication loanApplication) {
+        List<LoanApplication> list = loanApplicationService.selectLoanApplicationList(loanApplication);
+        ExcelUtil<LoanApplication> util = new ExcelUtil<LoanApplication>(LoanApplication.class);
+        util.exportExcel(response, list, "贷款申请主数据");
+    }
+
+    /**
+     * 获取贷款申请主详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:application:query')")
+    @GetMapping(value = "/{loanApplicationId}")
+    public AjaxResult getInfo(@PathVariable("loanApplicationId") Long loanApplicationId) {
+        return success(loanApplicationService.selectLoanApplicationByLoanApplicationId(loanApplicationId));
+    }
+
+    /**
+     * 获取贷款申请编号
+     */
+    @PostMapping("/getLoanApplicationNumber")
+    public AjaxResult getLoanApplicationNumber() {
+        //自定义项目编号 = RZDB + 时间戳 + 随机数
+        String loanApplicationNumber = RZDB + DateUtils.getTodayChar() + SendSmsUtils.getCode(4);
+        return AjaxResult.success("操作成功",loanApplicationNumber);
+    }
+    /**
+     * 新增贷款申请主
+     */
+    @PreAuthorize("@ss.hasPermi('system:application:add')")
+    @Log(title = "贷款申请主", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody LoanApplication loanApplication) {
+        return toAjax(loanApplicationService.insertLoanApplication(loanApplication));
+    }
+
+    /**
+     * 修改贷款申请主
+     */
+    @PreAuthorize("@ss.hasPermi('system:application:edit')")
+    @Log(title = "贷款申请主", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody LoanApplication loanApplication) {
+        return toAjax(loanApplicationService.updateLoanApplication(loanApplication));
+    }
+
+    /**
+     * 删除贷款申请主
+     */
+    @PreAuthorize("@ss.hasPermi('system:application:remove')")
+    @Log(title = "贷款申请主", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{loanApplicationIds}")
+    public AjaxResult remove(@PathVariable Long[] loanApplicationIds) {
+        return toAjax(loanApplicationService.deleteLoanApplicationByLoanApplicationIds(loanApplicationIds));
+    }
+
+    /**
+     *暂存
+     */
+    @PreAuthorize("@ss.hasPermi('system:application:temporary')")
+    @PostMapping("/temporary")
+    public AjaxResult temporary(@RequestBody LoanApplication loanApplication) {
+        return toAjax(loanApplicationService.temporary(loanApplication));
+    }
+}

+ 96 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/loan/LoanApplicationFjController.java

@@ -0,0 +1,96 @@
+package com.ruoyi.web.controller.loan;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.system.domain.loan.LoanApplicationFj;
+import com.ruoyi.system.service.loan.ILoanApplicationFjService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 贷款申请_附件Controller
+ *
+ * @author boman
+ * @date 2024-04-24
+ */
+@RestController
+@RequestMapping("/fj")
+public class LoanApplicationFjController extends BaseController {
+    @Autowired
+    private ILoanApplicationFjService loanApplicationFjService;
+
+    /**
+     * 查询贷款申请_附件列表
+     */
+    //@PreAuthorize("@ss.hasPermi('system:fj:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(LoanApplicationFj loanApplicationFj) {
+        startPage();
+        List<LoanApplicationFj> list = loanApplicationFjService.selectLoanApplicationFjList(loanApplicationFj);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出贷款申请_附件列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:fj:export')")
+    @Log(title = "贷款申请_附件", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, LoanApplicationFj loanApplicationFj) {
+        List<LoanApplicationFj> list = loanApplicationFjService.selectLoanApplicationFjList(loanApplicationFj);
+        ExcelUtil<LoanApplicationFj> util = new ExcelUtil<LoanApplicationFj>(LoanApplicationFj.class);
+        util.exportExcel(response, list, "贷款申请_附件数据");
+    }
+
+    /**
+     * 获取贷款申请_附件详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:fj:query')")
+    @GetMapping(value = "/{fjId}")
+    public AjaxResult getInfo(@PathVariable("fjId") Long fjId) {
+        return success(loanApplicationFjService.selectLoanApplicationFjByFjId(fjId));
+    }
+
+    /**
+     * 新增贷款申请_附件
+     */
+    @PreAuthorize("@ss.hasPermi('system:fj:add')")
+    @Log(title = "贷款申请_附件", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody LoanApplicationFj loanApplicationFj) {
+        return toAjax(loanApplicationFjService.insertLoanApplicationFj(loanApplicationFj));
+    }
+
+    /**
+     * 修改贷款申请_附件
+     */
+    @PreAuthorize("@ss.hasPermi('system:fj:edit')")
+    @Log(title = "贷款申请_附件", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody LoanApplicationFj loanApplicationFj) {
+        return toAjax(loanApplicationFjService.updateLoanApplicationFj(loanApplicationFj));
+    }
+
+    /**
+     * 删除贷款申请_附件
+     */
+    @PreAuthorize("@ss.hasPermi('system:fj:remove')")
+    @Log(title = "贷款申请_附件", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{fjIds}")
+    public AjaxResult remove(@PathVariable Long[] fjIds) {
+        return toAjax(loanApplicationFjService.deleteLoanApplicationFjByFjIds(fjIds));
+    }
+}

+ 98 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/loan/LoanScheduleController.java

@@ -0,0 +1,98 @@
+package com.ruoyi.web.controller.loan;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.system.domain.loan.LoanSchedule;
+import com.ruoyi.system.service.loan.ILoanScheduleService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 业务进度Controller
+ *
+ * @author boman
+ * @date 2024-04-24
+ */
+@RestController
+@RequestMapping("/schedule")
+public class LoanScheduleController extends BaseController {
+    @Autowired
+    private ILoanScheduleService loanScheduleService;
+
+    /**
+     * 查询业务进度列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:schedule:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(LoanSchedule loanSchedule) {
+        startPage();
+        List<LoanSchedule> list = loanScheduleService.selectLoanScheduleList(loanSchedule);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出业务进度列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:schedule:export')")
+    @Log(title = "业务进度", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, LoanSchedule loanSchedule) {
+        List<LoanSchedule> list = loanScheduleService.selectLoanScheduleList(loanSchedule);
+        ExcelUtil<LoanSchedule> util = new ExcelUtil<LoanSchedule>(LoanSchedule.class);
+        util.exportExcel(response, list, "业务进度数据");
+    }
+
+    /**
+     * 获取业务进度详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:schedule:query')")
+    @GetMapping(value = "/{loanScheduleId}")
+    public AjaxResult getInfo(@PathVariable("loanScheduleId") Long loanScheduleId) {
+        return success(loanScheduleService.selectLoanScheduleByLoanScheduleId(loanScheduleId));
+    }
+
+    /**
+     * 新增业务进度
+     */
+    @PreAuthorize("@ss.hasPermi('system:schedule:add')")
+    @Log(title = "业务进度", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody LoanSchedule loanSchedule) {
+        return toAjax(loanScheduleService.insertLoanSchedule(loanSchedule));
+    }
+
+    /**
+     * 修改业务进度
+     */
+    @PreAuthorize("@ss.hasPermi('system:schedule:edit')")
+    @Log(title = "业务进度", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody LoanSchedule loanSchedule) {
+        return toAjax(loanScheduleService.updateLoanSchedule(loanSchedule));
+    }
+
+    /**
+     * 删除业务进度
+     */
+    @PreAuthorize("@ss.hasPermi('system:schedule:remove')")
+    @Log(title = "业务进度", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{loanScheduleIds}")
+    public AjaxResult remove(@PathVariable Long[] loanScheduleIds) {
+        return toAjax(loanScheduleService.deleteLoanScheduleByLoanScheduleIds(loanScheduleIds));
+    }
+}

+ 99 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/loan/ShareholderFjController.java

@@ -0,0 +1,99 @@
+package com.ruoyi.web.controller.loan;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.system.domain.loan.ShareholderFj;
+import com.ruoyi.system.service.loan.IShareholderFjService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 全体股东附件Controller
+ *
+ * @author boman
+ * @date 2024-04-24
+ */
+@RestController
+@RequestMapping("/shareholderFj")
+public class ShareholderFjController extends BaseController {
+    @Autowired
+    private IShareholderFjService shareholderFjService;
+
+    /**
+     * 查询全体股东附件列表
+     */
+    //@PreAuthorize("@ss.hasPermi('system:shareholderFj:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ShareholderFj shareholderFj) {
+        startPage();
+        List<ShareholderFj> list = shareholderFjService.selectShareholderFjList(shareholderFj);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出全体股东附件列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:shareholderFj:export')")
+    @Log(title = "全体股东附件", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ShareholderFj shareholderFj) {
+        List<ShareholderFj> list = shareholderFjService.selectShareholderFjList(shareholderFj);
+        ExcelUtil<ShareholderFj> util = new ExcelUtil<ShareholderFj>(ShareholderFj.class);
+        util.exportExcel(response, list, "全体股东附件数据");
+    }
+
+    /**
+     * 获取全体股东附件详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:shareholderFj:query')")
+    @GetMapping(value = "/{shareholderFjId}")
+    public AjaxResult getInfo(@PathVariable("shareholderFjId") Long shareholderFjId) {
+        return success(shareholderFjService.selectShareholderFjByShareholderFjId(shareholderFjId));
+    }
+
+    /**
+     * 新增全体股东附件
+     */
+    @PreAuthorize("@ss.hasPermi('system:shareholderFj:add')")
+    @Log(title = "全体股东附件", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ShareholderFj shareholderFj) {
+        return toAjax(shareholderFjService.insertShareholderFj(shareholderFj));
+    }
+
+    /**
+     * 修改全体股东附件
+     */
+    @PreAuthorize("@ss.hasPermi('system:shareholderFj:edit')")
+    @Log(title = "全体股东附件", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody ShareholderFj shareholderFj) {
+        return toAjax(shareholderFjService.updateShareholderFj(shareholderFj));
+    }
+
+    /**
+     * 删除全体股东附件
+     */
+    @PreAuthorize("@ss.hasPermi('system:shareholderFj:remove')")
+    @Log(title = "全体股东附件", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{shareholderFjIds}")
+    public AjaxResult remove(@PathVariable Long[] shareholderFjIds) {
+        return toAjax(shareholderFjService.deleteShareholderFjByShareholderFjIds(shareholderFjIds));
+    }
+}

+ 103 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/review/ReviewCommentsController.java

@@ -0,0 +1,103 @@
+package com.ruoyi.web.controller.review;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.system.domain.review.ReviewComments;
+import com.ruoyi.system.service.review.IReviewCommentsService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 业务审核意见Controller
+ *
+ * @author boman
+ * @date 2024-04-24
+ */
+@RestController
+@RequestMapping("/system/comments")
+public class ReviewCommentsController extends BaseController
+{
+    @Autowired
+    private IReviewCommentsService reviewCommentsService;
+
+/**
+ * 查询业务审核意见列表
+ */
+@PreAuthorize("@ss.hasPermi('system:comments:list')")
+@GetMapping("/list")
+    public TableDataInfo list(ReviewComments reviewComments)
+    {
+        startPage();
+        List<ReviewComments> list = reviewCommentsService.selectReviewCommentsList(reviewComments);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出业务审核意见列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:comments:export')")
+    @Log(title = "业务审核意见", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ReviewComments reviewComments)
+    {
+        List<ReviewComments> list = reviewCommentsService.selectReviewCommentsList(reviewComments);
+        ExcelUtil<ReviewComments> util = new ExcelUtil<ReviewComments>(ReviewComments.class);
+        util.exportExcel(response, list, "业务审核意见数据");
+    }
+
+    /**
+     * 获取业务审核意见详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:comments:query')")
+    @GetMapping(value = "/{reviewCommentsId}")
+    public AjaxResult getInfo(@PathVariable("reviewCommentsId") Long reviewCommentsId)
+    {
+        return success(reviewCommentsService.selectReviewCommentsByReviewCommentsId(reviewCommentsId));
+    }
+
+    /**
+     * 新增业务审核意见
+     */
+    @PreAuthorize("@ss.hasPermi('system:comments:add')")
+    @Log(title = "业务审核意见", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ReviewComments reviewComments)
+    {
+        return toAjax(reviewCommentsService.insertReviewComments(reviewComments));
+    }
+
+    /**
+     * 修改业务审核意见
+     */
+    @PreAuthorize("@ss.hasPermi('system:comments:edit')")
+    @Log(title = "业务审核意见", businessType = BusinessType.UPDATE)
+    @PostMapping("/put")
+    public AjaxResult edit(@RequestBody ReviewComments reviewComments)
+    {
+        return toAjax(reviewCommentsService.updateReviewComments(reviewComments));
+    }
+
+    /**
+     * 删除业务审核意见
+     */
+    @PreAuthorize("@ss.hasPermi('system:comments:remove')")
+    @Log(title = "业务审核意见", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{reviewCommentsIds}")
+    public AjaxResult remove(@PathVariable Long[] reviewCommentsIds)
+    {
+        return toAjax(reviewCommentsService.deleteReviewCommentsByReviewCommentsIds(reviewCommentsIds));
+    }
+}

+ 1 - 1
ruoyi-admin/src/main/resources/application.yml

@@ -40,7 +40,7 @@ token:
   # 令牌密钥
   secret: abcdefghijklmnopqrstuvwxyza
   # 令牌有效期(默认30分钟)
-  expireTime: 30
+  expireTime: 300
 
 # MyBatis配置
 mybatis:

+ 5 - 0
ruoyi-common/src/main/java/com/ruoyi/common/constant/CommonConstants.java

@@ -23,6 +23,11 @@ public class CommonConstants {
     public static final String NO = "否";
     public static final String FRONT = "front";
     public static final String BACK = "back";
+    public static final String RZDB = "RZDB";
+    public static final String A = "a";
+    public static final String B = "b";
+    public static final String C = "c";
+    public static final String D = "d";
 
     //角色权限
     //超级管理员

+ 20 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java

@@ -196,4 +196,24 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
     public static String getUnix() {
         return Long.toString(System.currentTimeMillis() / 1000L);
     }
+
+    /**
+     * 返回 年月日小时分秒 毫秒
+     *
+     * @return yyyyMMddHHmmssS
+     */
+    public static String getTodayChar() {
+        String dateString = DateFormatUtils.format(new Date(), "yyyyMMddHHmmssS");
+        int length = dateString.length();
+
+        if (length < 17) {
+            StringBuilder endStr = new StringBuilder(dateString.substring(14, length));
+            int len = endStr.length();
+            for (int i = 0; i < 3 - len; i++) {
+                endStr.insert(0, "0");
+            }
+            dateString = dateString.substring(0, 14) + endStr;
+        }
+        return dateString;
+    }
 }

+ 3 - 1
ruoyi-common/src/main/java/com/ruoyi/common/utils/IdCardUtil.java

@@ -520,7 +520,7 @@ public class IdCardUtil {
              */
             JSONObject jsonObject = JSONObject.parseObject(result);
             String wordsResult = jsonObject.getString("words_result");
-            Map<String,Object> map = new HashMap<>(8);
+            Map<String,Object> map = new HashMap<>(9);
             if (StringUtils.isNotEmpty(wordsResult)){
                 JSONObject jsonObjectWordsResult = JSON.parseObject(wordsResult);
                 String creditCode = JSON.parseObject(jsonObjectWordsResult.getString("社会信用代码")).getString("words");
@@ -531,6 +531,7 @@ public class IdCardUtil {
                 String registeredCapital = JSON.parseObject(jsonObjectWordsResult.getString("注册资本")).getString("words");
                 String establishData = JSON.parseObject(jsonObjectWordsResult.getString("成立日期")).getString("words");
                 String businessTerm = JSON.parseObject(jsonObjectWordsResult.getString("有效期")).getString("words");
+                String businessScope = JSON.parseObject(jsonObjectWordsResult.getString("经营范围")).getString("words");
                 map.put("creditCode",creditCode);
                 map.put("enterpriseName",enterpriseName);
                 map.put("enterpriseType",enterpriseType);
@@ -539,6 +540,7 @@ public class IdCardUtil {
                 map.put("registeredCapital",registeredCapital);
                 map.put("establishData",establishData);
                 map.put("businessTerm",businessTerm);
+                map.put("businessScope",businessScope);
             }
             return AjaxResult.success(map);
         } catch (Exception e) {

+ 91 - 70
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java

@@ -4,6 +4,7 @@ import java.io.File;
 import java.io.IOException;
 import java.nio.file.Paths;
 import java.util.Objects;
+
 import org.apache.commons.io.FilenameUtils;
 import org.springframework.web.multipart.MultipartFile;
 import com.ruoyi.common.config.RuoYiConfig;
@@ -20,12 +21,11 @@ import com.ruoyi.common.utils.uuid.Seq;
  *
  * @author ruoyi
  */
-public class FileUploadUtils
-{
+public class FileUploadUtils {
     /**
      * 默认大小 50M
      */
-    public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024;
+    public static final long DEFAULT_MAX_SIZE = 500 * 1024 * 1024;
 
     /**
      * 默认的文件名最大长度 100
@@ -37,13 +37,11 @@ public class FileUploadUtils
      */
     private static String defaultBaseDir = RuoYiConfig.getProfile();
 
-    public static void setDefaultBaseDir(String defaultBaseDir)
-    {
+    public static void setDefaultBaseDir(String defaultBaseDir) {
         FileUploadUtils.defaultBaseDir = defaultBaseDir;
     }
 
-    public static String getDefaultBaseDir()
-    {
+    public static String getDefaultBaseDir() {
         return defaultBaseDir;
     }
 
@@ -54,14 +52,10 @@ public class FileUploadUtils
      * @return 文件名称
      * @throws Exception
      */
-    public static final String upload(MultipartFile file) throws IOException
-    {
-        try
-        {
+    public static final String upload(MultipartFile file) throws IOException {
+        try {
             return upload(getDefaultBaseDir(), file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             throw new IOException(e.getMessage(), e);
         }
     }
@@ -70,18 +64,31 @@ public class FileUploadUtils
      * 根据文件路径上传
      *
      * @param baseDir 相对应用的基目录
-     * @param file 上传的文件
+     * @param file    上传的文件
      * @return 文件名称
      * @throws IOException
      */
-    public static final String upload(String baseDir, MultipartFile file) throws IOException
-    {
-        try
-        {
+    public static final String upload(String baseDir, MultipartFile file) throws IOException {
+        try {
             return upload(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+        } catch (Exception e) {
+            throw new IOException(e.getMessage(), e);
         }
-        catch (Exception e)
-        {
+    }
+
+    /**
+     * 根据文件路径上传 合同编码
+     *
+     * @param baseDir               相对应用的基目录
+     * @param file                  上传的文件
+     * @param loanApplicationNumber 合同编码
+     * @return 文件名称
+     * @throws IOException
+     */
+    public static final String uploadLoanApplicationNumber(String baseDir, MultipartFile file, String loanApplicationNumber, String originalFilename) throws IOException {
+        try {
+            return uploadLoanApplicationNumber(baseDir, file, loanApplicationNumber, originalFilename, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+        } catch (Exception e) {
             throw new IOException(e.getMessage(), e);
         }
     }
@@ -89,22 +96,20 @@ public class FileUploadUtils
     /**
      * 文件上传
      *
-     * @param baseDir 相对应用的基目录
-     * @param file 上传的文件
+     * @param baseDir          相对应用的基目录
+     * @param file             上传的文件
      * @param allowedExtension 上传文件类型
      * @return 返回上传成功的文件名
-     * @throws FileSizeLimitExceededException 如果超出最大大小
+     * @throws FileSizeLimitExceededException       如果超出最大大小
      * @throws FileNameLengthLimitExceededException 文件名太长
-     * @throws IOException 比如读写文件出错时
-     * @throws InvalidExtensionException 文件校验异常
+     * @throws IOException                          比如读写文件出错时
+     * @throws InvalidExtensionException            文件校验异常
      */
     public static final String upload(String baseDir, MultipartFile file, String[] allowedExtension)
             throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException,
-            InvalidExtensionException
-    {
+            InvalidExtensionException {
         int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length();
-        if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH)
-        {
+        if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) {
             throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);
         }
 
@@ -117,31 +122,64 @@ public class FileUploadUtils
         return getPathFileName(baseDir, fileName);
     }
 
+    /**
+     * 文件上传合同编号
+     *
+     * @param baseDir               相对应用的基目录
+     * @param file                  上传的文件
+     * @param allowedExtension      上传文件类型
+     * @param loanApplicationNumber 合同编码
+     * @return 返回上传成功的文件名
+     * @throws FileSizeLimitExceededException       如果超出最大大小
+     * @throws FileNameLengthLimitExceededException 文件名太长
+     * @throws IOException                          比如读写文件出错时
+     * @throws InvalidExtensionException            文件校验异常
+     */
+    public static final String uploadLoanApplicationNumber(String baseDir, MultipartFile file, String loanApplicationNumber, String originalFilename, String[] allowedExtension)
+            throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException,
+            InvalidExtensionException {
+        int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length();
+        if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) {
+            throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);
+        }
+
+        assertAllowed(file, allowedExtension);
+
+        String fileName = extractFilenameLoanApplicationNumber(file, loanApplicationNumber, originalFilename);
+
+        String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath();
+        file.transferTo(Paths.get(absPath));
+        return getPathFileName(baseDir, fileName);
+    }
+
     /**
      * 编码文件名
      */
-    public static final String extractFilename(MultipartFile file)
-    {
+    public static final String extractFilename(MultipartFile file) {
         return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(),
                 FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file));
     }
 
-    public static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException
-    {
+    /**
+     * 编码文件名根据合同编号
+     */
+    public static final String extractFilenameLoanApplicationNumber(MultipartFile file, String loanApplicationNumber, String originalFilename) {
+        return StringUtils.format("{}/{}_{}.{}", loanApplicationNumber,
+                FilenameUtils.getBaseName(originalFilename), Seq.getId(Seq.uploadSeqType), getExtension(file));
+    }
+
+    public static final File getAbsoluteFile(String uploadDir, String fileName) throws IOException {
         File desc = new File(uploadDir + File.separator + fileName);
 
-        if (!desc.exists())
-        {
-            if (!desc.getParentFile().exists())
-            {
+        if (!desc.exists()) {
+            if (!desc.getParentFile().exists()) {
                 desc.getParentFile().mkdirs();
             }
         }
         return desc;
     }
 
-    public static final String getPathFileName(String uploadDir, String fileName) throws IOException
-    {
+    public static final String getPathFileName(String uploadDir, String fileName) throws IOException {
         int dirLastIndex = RuoYiConfig.getProfile().length() + 1;
         String currentDir = StringUtils.substring(uploadDir, dirLastIndex);
         return Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName;
@@ -156,40 +194,28 @@ public class FileUploadUtils
      * @throws InvalidExtensionException
      */
     public static final void assertAllowed(MultipartFile file, String[] allowedExtension)
-            throws FileSizeLimitExceededException, InvalidExtensionException
-    {
+            throws FileSizeLimitExceededException, InvalidExtensionException {
         long size = file.getSize();
-        if (size > DEFAULT_MAX_SIZE)
-        {
+        if (size > DEFAULT_MAX_SIZE) {
             throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024);
         }
 
         String fileName = file.getOriginalFilename();
         String extension = getExtension(file);
-        if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension))
-        {
-            if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION)
-            {
+        if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension)) {
+            if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION) {
                 throw new InvalidExtensionException.InvalidImageExtensionException(allowedExtension, extension,
                         fileName);
-            }
-            else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION)
-            {
+            } else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION) {
                 throw new InvalidExtensionException.InvalidFlashExtensionException(allowedExtension, extension,
                         fileName);
-            }
-            else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION)
-            {
+            } else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION) {
                 throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension,
                         fileName);
-            }
-            else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION)
-            {
+            } else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION) {
                 throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension,
                         fileName);
-            }
-            else
-            {
+            } else {
                 throw new InvalidExtensionException(allowedExtension, extension, fileName);
             }
         }
@@ -202,12 +228,9 @@ public class FileUploadUtils
      * @param allowedExtension
      * @return
      */
-    public static final boolean isAllowedExtension(String extension, String[] allowedExtension)
-    {
-        for (String str : allowedExtension)
-        {
-            if (str.equalsIgnoreCase(extension))
-            {
+    public static final boolean isAllowedExtension(String extension, String[] allowedExtension) {
+        for (String str : allowedExtension) {
+            if (str.equalsIgnoreCase(extension)) {
                 return true;
             }
         }
@@ -220,11 +243,9 @@ public class FileUploadUtils
      * @param file 表单文件
      * @return 后缀名
      */
-    public static final String getExtension(MultipartFile file)
-    {
+    public static final String getExtension(MultipartFile file) {
         String extension = FilenameUtils.getExtension(file.getOriginalFilename());
-        if (StringUtils.isEmpty(extension))
-        {
+        if (StringUtils.isEmpty(extension)) {
             extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType()));
         }
         return extension;

+ 0 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -113,7 +113,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .authorizeRequests()
                 // 对于登录login 注册register 验证码captchaImage 允许匿名访问
                 .antMatchers("/login", "/register", "/captchaImage").permitAll()
-                .antMatchers("/ocr/**","/pageoffice/**").permitAll()
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()

+ 122 - 89
ruoyi-system/src/main/java/com/ruoyi/system/domain/enterprise/SysUserEnterprise.java

@@ -7,202 +7,235 @@ import com.ruoyi.common.core.domain.BaseEntity;
 
 /**
  * 用户企业信息对象 sys_user_enterprise
- * 
+ *
  * @author boman
  * @date 2024-04-22
  */
-public class SysUserEnterprise extends BaseEntity
-{
+public class SysUserEnterprise extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 用户ID */
+    /**
+     * 企业id
+     */
+    private Long enterpriseId;
+    /**
+     * 用户ID
+     */
     private Long userId;
 
-    /** 身份证号码 */
+    /**
+     * 身份证号码
+     */
     @Excel(name = "身份证号码")
     private String idCard;
 
-    /** 真实姓名 */
+    /**
+     * 真实姓名
+     */
     @Excel(name = "真实姓名")
     private String realName;
 
-    /** 统一社会信用代码 */
+    /**
+     * 统一社会信用代码
+     */
     private String creditCode;
 
-    /** 企业名称 */
+    /**
+     * 企业名称
+     */
     @Excel(name = "企业名称")
     private String enterpriseName;
 
-    /** 企业类型 */
+    /**
+     * 企业类型
+     */
     @Excel(name = "企业类型")
     private String enterpriseType;
 
-    /** 企业地址 */
+    /**
+     * 企业地址
+     */
     @Excel(name = "企业地址")
     private String enterpriseAddress;
 
-    /** 法人姓名 */
+    /**
+     * 法人姓名
+     */
     @Excel(name = "法人姓名")
     private String legalName;
 
-    /** 注册资金 */
+    /**
+     * 注册资金
+     */
     @Excel(name = "注册资金")
     private String registeredCapital;
 
-    /** 成立日期 */
+    /**
+     * 成立日期
+     */
     @Excel(name = "成立日期")
     private String establishData;
 
-    /** 营业期限 */
+    /**
+     * 营业期限
+     */
     @Excel(name = "营业期限")
     private String businessTerm;
-
-    /** 营业执照URL */
+    /**
+     * 经营范围
+     */
+    @Excel(name = "经营范围")
+    private String businessScope;
+
+    /**
+     * 营业执照URL
+     */
     @Excel(name = "营业执照URL")
     private String imageUrl;
 
-    /** 删除标志(0代表存在 2代表删除) */
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
     private String delFlag;
 
-    public void setUserId(Long userId) 
-    {
+    public Long getEnterpriseId() {
+        return enterpriseId;
+    }
+
+    public void setEnterpriseId(Long enterpriseId) {
+        this.enterpriseId = enterpriseId;
+    }
+
+    public String getBusinessScope() {
+        return businessScope;
+    }
+
+    public void setBusinessScope(String businessScope) {
+        this.businessScope = businessScope;
+    }
+
+    public void setUserId(Long userId) {
         this.userId = userId;
     }
 
-    public Long getUserId() 
-    {
+    public Long getUserId() {
         return userId;
     }
-    public void setIdCard(String idCard) 
-    {
+
+    public void setIdCard(String idCard) {
         this.idCard = idCard;
     }
 
-    public String getIdCard() 
-    {
+    public String getIdCard() {
         return idCard;
     }
-    public void setRealName(String realName) 
-    {
+
+    public void setRealName(String realName) {
         this.realName = realName;
     }
 
-    public String getRealName() 
-    {
+    public String getRealName() {
         return realName;
     }
-    public void setCreditCode(String creditCode) 
-    {
+
+    public void setCreditCode(String creditCode) {
         this.creditCode = creditCode;
     }
 
-    public String getCreditCode() 
-    {
+    public String getCreditCode() {
         return creditCode;
     }
-    public void setEnterpriseName(String enterpriseName) 
-    {
+
+    public void setEnterpriseName(String enterpriseName) {
         this.enterpriseName = enterpriseName;
     }
 
-    public String getEnterpriseName() 
-    {
+    public String getEnterpriseName() {
         return enterpriseName;
     }
-    public void setEnterpriseType(String enterpriseType) 
-    {
+
+    public void setEnterpriseType(String enterpriseType) {
         this.enterpriseType = enterpriseType;
     }
 
-    public String getEnterpriseType() 
-    {
+    public String getEnterpriseType() {
         return enterpriseType;
     }
-    public void setEnterpriseAddress(String enterpriseAddress) 
-    {
+
+    public void setEnterpriseAddress(String enterpriseAddress) {
         this.enterpriseAddress = enterpriseAddress;
     }
 
-    public String getEnterpriseAddress() 
-    {
+    public String getEnterpriseAddress() {
         return enterpriseAddress;
     }
-    public void setLegalName(String legalName) 
-    {
+
+    public void setLegalName(String legalName) {
         this.legalName = legalName;
     }
 
-    public String getLegalName() 
-    {
+    public String getLegalName() {
         return legalName;
     }
-    public void setRegisteredCapital(String registeredCapital) 
-    {
+
+    public void setRegisteredCapital(String registeredCapital) {
         this.registeredCapital = registeredCapital;
     }
 
-    public String getRegisteredCapital() 
-    {
+    public String getRegisteredCapital() {
         return registeredCapital;
     }
-    public void setEstablishData(String establishData) 
-    {
+
+    public void setEstablishData(String establishData) {
         this.establishData = establishData;
     }
 
-    public String getEstablishData() 
-    {
+    public String getEstablishData() {
         return establishData;
     }
-    public void setBusinessTerm(String businessTerm) 
-    {
+
+    public void setBusinessTerm(String businessTerm) {
         this.businessTerm = businessTerm;
     }
 
-    public String getBusinessTerm() 
-    {
+    public String getBusinessTerm() {
         return businessTerm;
     }
-    public void setImageUrl(String imageUrl) 
-    {
+
+    public void setImageUrl(String imageUrl) {
         this.imageUrl = imageUrl;
     }
 
-    public String getImageUrl() 
-    {
+    public String getImageUrl() {
         return imageUrl;
     }
-    public void setDelFlag(String delFlag) 
-    {
+
+    public void setDelFlag(String delFlag) {
         this.delFlag = delFlag;
     }
 
-    public String getDelFlag() 
-    {
+    public String getDelFlag() {
         return delFlag;
     }
 
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("userId", getUserId())
-            .append("idCard", getIdCard())
-            .append("realName", getRealName())
-            .append("creditCode", getCreditCode())
-            .append("enterpriseName", getEnterpriseName())
-            .append("enterpriseType", getEnterpriseType())
-            .append("enterpriseAddress", getEnterpriseAddress())
-            .append("legalName", getLegalName())
-            .append("registeredCapital", getRegisteredCapital())
-            .append("establishData", getEstablishData())
-            .append("businessTerm", getBusinessTerm())
-            .append("imageUrl", getImageUrl())
-            .append("delFlag", getDelFlag())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("remark", getRemark())
-            .toString();
+        return "SysUserEnterprise{" +
+                "enterpriseId=" + enterpriseId +
+                ", userId=" + userId +
+                ", idCard='" + idCard + '\'' +
+                ", realName='" + realName + '\'' +
+                ", creditCode='" + creditCode + '\'' +
+                ", enterpriseName='" + enterpriseName + '\'' +
+                ", enterpriseType='" + enterpriseType + '\'' +
+                ", enterpriseAddress='" + enterpriseAddress + '\'' +
+                ", legalName='" + legalName + '\'' +
+                ", registeredCapital='" + registeredCapital + '\'' +
+                ", establishData='" + establishData + '\'' +
+                ", businessTerm='" + businessTerm + '\'' +
+                ", businessScope='" + businessScope + '\'' +
+                ", imageUrl='" + imageUrl + '\'' +
+                ", delFlag='" + delFlag + '\'' +
+                '}';
     }
 }

+ 889 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/loan/LoanApplication.java

@@ -0,0 +1,889 @@
+package com.ruoyi.system.domain.loan;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.system.domain.enterprise.SysUserEnterprise;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 贷款申请主对象 loan_application
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public class LoanApplication extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 贷款申请id */
+    private Long loanApplicationId;
+
+    /** 贷款申请编号 */
+    private String loanApplicationNumber;
+
+    /** 申请额度(万元) */
+    @Excel(name = "申请额度(万元)")
+    private BigDecimal applicationAmount;
+
+    /** 申请银行 */
+    @Excel(name = "申请银行")
+    private String applicationBank;
+
+    /** 使用期限(月) */
+    @Excel(name = "使用期限(月)")
+    private String usagePeriod;
+
+    /** 资金用途 */
+    @Excel(name = "资金用途")
+    private String purposeFunds;
+
+    /** 还款来源 */
+    @Excel(name = "还款来源")
+    private String repaymentSource;
+
+    /** 企业名称 */
+    @Excel(name = "企业名称")
+    private String enterpriseName;
+    /** 企业对应的id */
+    private Long enterpriseId;
+    /**
+     * 企业对象
+     */
+    private SysUserEnterprise sysUserEnterprise;
+
+    /** 行业类型 */
+    @Excel(name = "行业类型")
+    private String categoryType;
+
+    /** 是否是制造业 Y:是 N:否 */
+    @Excel(name = "是否是制造业 Y:是 N:否")
+    private String isMake;
+
+    /** 是否是精特新 Y:是 N:否 */
+    @Excel(name = "是否是精特新 Y:是 N:否")
+    private String isNew;
+
+    /** 是否是小微企业 Y:是 N:否 */
+    @Excel(name = "是否是小微企业 Y:是 N:否")
+    private String isSmall;
+
+    /** 是否是免税企业 Y:是 N:否 */
+    @Excel(name = "是否是免税企业 Y:是 N:否")
+    private String isDuty;
+
+    /** 公司简介 */
+    @Excel(name = "公司简介")
+    private String companyIntroduction;
+
+    /** 用户类型 */
+    @Excel(name = "用户类型")
+    private String customerType;
+
+    /** 法人身份证正面 */
+    @Excel(name = "法人身份证正面")
+    private String corporationFront;
+
+    /** 法人身份证反面 */
+    @Excel(name = "法人身份证反面")
+    private String corporationBack;
+
+    /** 法人姓名 */
+    @Excel(name = "法人姓名")
+    private String corporationName;
+
+    /** 法人身份证号 */
+    @Excel(name = "法人身份证号")
+    private String corporationIdCard;
+
+    /** 法人手机号 */
+    @Excel(name = "法人手机号")
+    private String corporationPhone;
+    /**
+     * 法人居住地址
+     */
+    private String corporationAddress;
+    /**
+     * 法人证件有效期
+     */
+    private String corporationExpirationDate;
+
+    /** 家庭人口数 */
+    @Excel(name = "家庭人口数")
+    private String familyPopulation;
+
+    /** 法人职业 */
+    @Excel(name = "法人职业")
+    private String corporationJob;
+
+    /** 有无贷款 Y:是 N:否 */
+    @Excel(name = "有无贷款 Y:是 N:否")
+    private String isLoan;
+
+    /** 应收应付款 */
+    @Excel(name = "应收应付款")
+    private String receivablePay;
+
+    /** 经营情况 */
+    @Excel(name = "经营情况")
+    private String businessSituation;
+
+    /** 经营效益 */
+    @Excel(name = "经营效益")
+    private String businessEfficiency;
+
+    /** 法人婚姻状态 */
+    @Excel(name = "法人婚姻状态")
+    private String corporationMaritalStatus;
+
+    /** 配偶身份证正面 */
+    @Excel(name = "配偶身份证正面")
+    private String spouseFront;
+
+    /** 配偶身份证反面 */
+    @Excel(name = "配偶身份证反面")
+    private String spouseBack;
+
+    /** 配偶姓名 */
+    @Excel(name = "配偶姓名")
+    private String spouseName;
+
+    /** 配偶身份证号 */
+    @Excel(name = "配偶身份证号")
+    private String spouseIdCard;
+
+    /** 配偶手机号 */
+    @Excel(name = "配偶手机号")
+    private String spousePhone;
+
+    /** 担保类型 */
+    @Excel(name = "担保类型")
+    private String guaranteeType;
+
+    /** 反担保人身份证正面 */
+    @Excel(name = "反担保人身份证正面")
+    private String guaranteeFront;
+
+    /** 反担保人身份证反面 */
+    @Excel(name = "反担保人身份证反面")
+    private String guaranteeBack;
+
+    /** 反担保人姓名 */
+    @Excel(name = "反担保人姓名")
+    private String guaranteeName;
+
+    /** 反担保人身份证号 */
+    @Excel(name = "反担保人身份证号")
+    private String guaranteeIdCard;
+
+    /** 反担保人手机号 */
+    @Excel(name = "反担保人手机号")
+    private String guaranteePhone;
+
+    /** 反担保人婚姻状态 */
+    @Excel(name = "反担保人婚姻状态")
+    private String guaranteeMaritalStatus;
+
+    /** 反担保人配偶身份证正面 */
+    @Excel(name = "反担保人配偶身份证正面")
+    private String guaranteeSpouseFront;
+
+    /** 反担保人配偶身份证反面 */
+    @Excel(name = "反担保人配偶身份证反面")
+    private String guaranteeSpouseBack;
+
+    /** 反担保人配偶姓名 */
+    @Excel(name = "反担保人配偶姓名")
+    private String guaranteeSpouseName;
+
+    /** 反担保人配偶身份证号 */
+    @Excel(name = "反担保人配偶身份证号")
+    private String guaranteeSpouseIdCard;
+
+    /** 反担保人配偶手机号 */
+    @Excel(name = "反担保人配偶手机号")
+    private String guaranteeSpousePhone;
+
+    /** 申请人用户ID */
+    @Excel(name = "申请人用户ID")
+    private Long userId;
+
+    /** 申请人身份证号码 */
+    @Excel(name = "申请人身份证号码")
+    private String idCard;
+
+    /** 申请时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date applicationTime;
+
+    /** 归档时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "归档时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date fileTime;
+
+    /** 贷款申请进度(业务进度表查询进度列表):1:申报提交
+     2:业务审核/分配 3:担保初审 4:尽职调查 5:初审风险合规 6:评审会 7:合同签约 8:放款合规风险审核 9:放款通知 10:归档 */
+    @Excel(name = "贷款申请进度(业务进度表查询进度列表):")
+    private String loanSchedule;
+    /** 贷款申请进度名称(中文字) */
+    private String loanScheduleName;
+
+    /** 审核进度1:担保初审 2:A角色审核 3:B角色审核 4:风险审核 5:尽职调查 6:上会评审 */
+    @Excel(name = "审核进度1:担保初审 2:A角色审核 3:B角色审核 4:风险审核 5:尽职调查 6:上会评审")
+    private String auditSchedule;
+
+    /** 审核状态 1:待审核 2:已通过 3:未通过 */
+    @Excel(name = "审核状态 1:待审核 2:已通过 3:未通过")
+    private String auditType;
+
+    /** 贷款申请状态 1:暂存 2:正常 3:回收站 4:归档 */
+    @Excel(name = "贷款申请状态 1:暂存 2:正常 3:回收站 4:归档")
+    private String loanApplicationType;
+
+    /** A角色用户ID */
+    @Excel(name = "A角色用户ID")
+    private Long aUserId;
+
+    /** A角色用户名称 */
+    @Excel(name = "A角色用户名称")
+    private Long aUserName;
+
+    /** B角色用户ID */
+    @Excel(name = "B角色用户ID")
+    private Long bUserId;
+
+    /** B角色用户名称 */
+    @Excel(name = "B角色用户名称")
+    private Long bUserName;
+    /**
+     * 全体股东信息附件
+     */
+    private List<ShareholderFj> shareholderFjList;
+    /**
+     *相关附件
+     */
+    private List<LoanApplicationFj> loanApplicationFjList;
+
+    /*只在返回时使用*/
+    /**
+     * 基础附件
+     */
+    private Map<String,List<LoanApplicationFj>> basicFj;
+
+    /**
+     * 申报附件
+     */
+    private Map<String,List<LoanApplicationFj>> declareFj;
+    /**
+     * 文件出具
+     */
+    private Map<String,List<LoanApplicationFj>> fileFj;
+    /**
+     * 其他附件
+     */
+    private Map<String,List<LoanApplicationFj>> otherFj;
+
+
+    public String getCorporationAddress() {
+        return corporationAddress;
+    }
+
+    public void setCorporationAddress(String corporationAddress) {
+        this.corporationAddress = corporationAddress;
+    }
+
+    public String getCorporationExpirationDate() {
+        return corporationExpirationDate;
+    }
+
+    public void setCorporationExpirationDate(String corporationExpirationDate) {
+        this.corporationExpirationDate = corporationExpirationDate;
+    }
+
+    public SysUserEnterprise getSysUserEnterprise() {
+        return sysUserEnterprise;
+    }
+
+    public void setSysUserEnterprise(SysUserEnterprise sysUserEnterprise) {
+        this.sysUserEnterprise = sysUserEnterprise;
+    }
+
+    public Long getEnterpriseId() {
+        return enterpriseId;
+    }
+
+    public void setEnterpriseId(Long enterpriseId) {
+        this.enterpriseId = enterpriseId;
+    }
+
+
+    public Map<String, List<LoanApplicationFj>> getBasicFj() {
+        return basicFj;
+    }
+
+    public void setBasicFj(Map<String, List<LoanApplicationFj>> basicFj) {
+        this.basicFj = basicFj;
+    }
+
+    public Map<String, List<LoanApplicationFj>> getDeclareFj() {
+        return declareFj;
+    }
+
+    public void setDeclareFj(Map<String, List<LoanApplicationFj>> declareFj) {
+        this.declareFj = declareFj;
+    }
+
+    public Map<String, List<LoanApplicationFj>> getFileFj() {
+        return fileFj;
+    }
+
+    public void setFileFj(Map<String, List<LoanApplicationFj>> fileFj) {
+        this.fileFj = fileFj;
+    }
+
+    public Map<String, List<LoanApplicationFj>> getOtherFj() {
+        return otherFj;
+    }
+
+    public void setOtherFj(Map<String, List<LoanApplicationFj>> otherFj) {
+        this.otherFj = otherFj;
+    }
+
+    public String getLoanScheduleName() {
+        return loanScheduleName;
+    }
+
+    public void setLoanScheduleName(String loanScheduleName) {
+        this.loanScheduleName = loanScheduleName;
+    }
+
+    public List<ShareholderFj> getShareholderFjList() {
+        return shareholderFjList;
+    }
+
+    public void setShareholderFjList(List<ShareholderFj> shareholderFjList) {
+        this.shareholderFjList = shareholderFjList;
+    }
+
+    public List<LoanApplicationFj> getLoanApplicationFjList() {
+        return loanApplicationFjList;
+    }
+
+    public void setLoanApplicationFjList(List<LoanApplicationFj> loanApplicationFjList) {
+        this.loanApplicationFjList = loanApplicationFjList;
+    }
+
+    public void setLoanApplicationId(Long loanApplicationId)
+    {
+        this.loanApplicationId = loanApplicationId;
+    }
+
+    public Long getLoanApplicationId() 
+    {
+        return loanApplicationId;
+    }
+    public void setLoanApplicationNumber(String loanApplicationNumber) 
+    {
+        this.loanApplicationNumber = loanApplicationNumber;
+    }
+
+    public String getLoanApplicationNumber() 
+    {
+        return loanApplicationNumber;
+    }
+    public void setApplicationAmount(BigDecimal applicationAmount) 
+    {
+        this.applicationAmount = applicationAmount;
+    }
+
+    public BigDecimal getApplicationAmount() 
+    {
+        return applicationAmount;
+    }
+    public void setApplicationBank(String applicationBank) 
+    {
+        this.applicationBank = applicationBank;
+    }
+
+    public String getApplicationBank() 
+    {
+        return applicationBank;
+    }
+    public void setUsagePeriod(String usagePeriod) 
+    {
+        this.usagePeriod = usagePeriod;
+    }
+
+    public String getUsagePeriod() 
+    {
+        return usagePeriod;
+    }
+    public void setPurposeFunds(String purposeFunds) 
+    {
+        this.purposeFunds = purposeFunds;
+    }
+
+    public String getPurposeFunds() 
+    {
+        return purposeFunds;
+    }
+    public void setRepaymentSource(String repaymentSource) 
+    {
+        this.repaymentSource = repaymentSource;
+    }
+
+    public String getRepaymentSource() 
+    {
+        return repaymentSource;
+    }
+    public void setEnterpriseName(String enterpriseName) 
+    {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getEnterpriseName() 
+    {
+        return enterpriseName;
+    }
+    public void setCategoryType(String categoryType) 
+    {
+        this.categoryType = categoryType;
+    }
+
+    public String getCategoryType() 
+    {
+        return categoryType;
+    }
+    public void setIsMake(String isMake) 
+    {
+        this.isMake = isMake;
+    }
+
+    public String getIsMake() 
+    {
+        return isMake;
+    }
+    public void setIsNew(String isNew) 
+    {
+        this.isNew = isNew;
+    }
+
+    public String getIsNew() 
+    {
+        return isNew;
+    }
+    public void setIsSmall(String isSmall) 
+    {
+        this.isSmall = isSmall;
+    }
+
+    public String getIsSmall() 
+    {
+        return isSmall;
+    }
+    public void setIsDuty(String isDuty) 
+    {
+        this.isDuty = isDuty;
+    }
+
+    public String getIsDuty() 
+    {
+        return isDuty;
+    }
+    public void setCompanyIntroduction(String companyIntroduction) 
+    {
+        this.companyIntroduction = companyIntroduction;
+    }
+
+    public String getCompanyIntroduction() 
+    {
+        return companyIntroduction;
+    }
+    public void setCustomerType(String customerType) 
+    {
+        this.customerType = customerType;
+    }
+
+    public String getCustomerType() 
+    {
+        return customerType;
+    }
+    public void setCorporationFront(String corporationFront) 
+    {
+        this.corporationFront = corporationFront;
+    }
+
+    public String getCorporationFront() 
+    {
+        return corporationFront;
+    }
+    public void setCorporationBack(String corporationBack) 
+    {
+        this.corporationBack = corporationBack;
+    }
+
+    public String getCorporationBack() 
+    {
+        return corporationBack;
+    }
+    public void setCorporationName(String corporationName) 
+    {
+        this.corporationName = corporationName;
+    }
+
+    public String getCorporationName() 
+    {
+        return corporationName;
+    }
+    public void setCorporationIdCard(String corporationIdCard) 
+    {
+        this.corporationIdCard = corporationIdCard;
+    }
+
+    public String getCorporationIdCard() 
+    {
+        return corporationIdCard;
+    }
+    public void setCorporationPhone(String corporationPhone) 
+    {
+        this.corporationPhone = corporationPhone;
+    }
+
+    public String getCorporationPhone() 
+    {
+        return corporationPhone;
+    }
+    public void setFamilyPopulation(String familyPopulation) 
+    {
+        this.familyPopulation = familyPopulation;
+    }
+
+    public String getFamilyPopulation() 
+    {
+        return familyPopulation;
+    }
+    public void setCorporationJob(String corporationJob) 
+    {
+        this.corporationJob = corporationJob;
+    }
+
+    public String getCorporationJob() 
+    {
+        return corporationJob;
+    }
+    public void setIsLoan(String isLoan) 
+    {
+        this.isLoan = isLoan;
+    }
+
+    public String getIsLoan() 
+    {
+        return isLoan;
+    }
+    public void setReceivablePay(String receivablePay) 
+    {
+        this.receivablePay = receivablePay;
+    }
+
+    public String getReceivablePay() 
+    {
+        return receivablePay;
+    }
+    public void setBusinessSituation(String businessSituation) 
+    {
+        this.businessSituation = businessSituation;
+    }
+
+    public String getBusinessSituation() 
+    {
+        return businessSituation;
+    }
+    public void setBusinessEfficiency(String businessEfficiency) 
+    {
+        this.businessEfficiency = businessEfficiency;
+    }
+
+    public String getBusinessEfficiency() 
+    {
+        return businessEfficiency;
+    }
+    public void setCorporationMaritalStatus(String corporationMaritalStatus) 
+    {
+        this.corporationMaritalStatus = corporationMaritalStatus;
+    }
+
+    public String getCorporationMaritalStatus() 
+    {
+        return corporationMaritalStatus;
+    }
+    public void setSpouseFront(String spouseFront) 
+    {
+        this.spouseFront = spouseFront;
+    }
+
+    public String getSpouseFront() 
+    {
+        return spouseFront;
+    }
+    public void setSpouseBack(String spouseBack) 
+    {
+        this.spouseBack = spouseBack;
+    }
+
+    public String getSpouseBack() 
+    {
+        return spouseBack;
+    }
+    public void setSpouseName(String spouseName) 
+    {
+        this.spouseName = spouseName;
+    }
+
+    public String getSpouseName() 
+    {
+        return spouseName;
+    }
+    public void setSpouseIdCard(String spouseIdCard) 
+    {
+        this.spouseIdCard = spouseIdCard;
+    }
+
+    public String getSpouseIdCard() 
+    {
+        return spouseIdCard;
+    }
+    public void setSpousePhone(String spousePhone) 
+    {
+        this.spousePhone = spousePhone;
+    }
+
+    public String getSpousePhone() 
+    {
+        return spousePhone;
+    }
+    public void setGuaranteeType(String guaranteeType) 
+    {
+        this.guaranteeType = guaranteeType;
+    }
+
+    public String getGuaranteeType() 
+    {
+        return guaranteeType;
+    }
+    public void setGuaranteeFront(String guaranteeFront) 
+    {
+        this.guaranteeFront = guaranteeFront;
+    }
+
+    public String getGuaranteeFront() 
+    {
+        return guaranteeFront;
+    }
+    public void setGuaranteeBack(String guaranteeBack) 
+    {
+        this.guaranteeBack = guaranteeBack;
+    }
+
+    public String getGuaranteeBack() 
+    {
+        return guaranteeBack;
+    }
+    public void setGuaranteeName(String guaranteeName) 
+    {
+        this.guaranteeName = guaranteeName;
+    }
+
+    public String getGuaranteeName() 
+    {
+        return guaranteeName;
+    }
+    public void setGuaranteeIdCard(String guaranteeIdCard) 
+    {
+        this.guaranteeIdCard = guaranteeIdCard;
+    }
+
+    public String getGuaranteeIdCard() 
+    {
+        return guaranteeIdCard;
+    }
+    public void setGuaranteePhone(String guaranteePhone) 
+    {
+        this.guaranteePhone = guaranteePhone;
+    }
+
+    public String getGuaranteePhone() 
+    {
+        return guaranteePhone;
+    }
+    public void setGuaranteeMaritalStatus(String guaranteeMaritalStatus) 
+    {
+        this.guaranteeMaritalStatus = guaranteeMaritalStatus;
+    }
+
+    public String getGuaranteeMaritalStatus() 
+    {
+        return guaranteeMaritalStatus;
+    }
+    public void setGuaranteeSpouseFront(String guaranteeSpouseFront) 
+    {
+        this.guaranteeSpouseFront = guaranteeSpouseFront;
+    }
+
+    public String getGuaranteeSpouseFront() 
+    {
+        return guaranteeSpouseFront;
+    }
+    public void setGuaranteeSpouseBack(String guaranteeSpouseBack) 
+    {
+        this.guaranteeSpouseBack = guaranteeSpouseBack;
+    }
+
+    public String getGuaranteeSpouseBack() 
+    {
+        return guaranteeSpouseBack;
+    }
+    public void setGuaranteeSpouseName(String guaranteeSpouseName) 
+    {
+        this.guaranteeSpouseName = guaranteeSpouseName;
+    }
+
+    public String getGuaranteeSpouseName() 
+    {
+        return guaranteeSpouseName;
+    }
+    public void setGuaranteeSpouseIdCard(String guaranteeSpouseIdCard) 
+    {
+        this.guaranteeSpouseIdCard = guaranteeSpouseIdCard;
+    }
+
+    public String getGuaranteeSpouseIdCard() 
+    {
+        return guaranteeSpouseIdCard;
+    }
+    public void setGuaranteeSpousePhone(String guaranteeSpousePhone) 
+    {
+        this.guaranteeSpousePhone = guaranteeSpousePhone;
+    }
+
+    public String getGuaranteeSpousePhone() 
+    {
+        return guaranteeSpousePhone;
+    }
+    public void setUserId(Long userId) 
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId() 
+    {
+        return userId;
+    }
+    public void setIdCard(String idCard) 
+    {
+        this.idCard = idCard;
+    }
+
+    public String getIdCard() 
+    {
+        return idCard;
+    }
+    public void setApplicationTime(Date applicationTime) 
+    {
+        this.applicationTime = applicationTime;
+    }
+
+    public Date getApplicationTime() 
+    {
+        return applicationTime;
+    }
+    public void setFileTime(Date fileTime) 
+    {
+        this.fileTime = fileTime;
+    }
+
+    public Date getFileTime() 
+    {
+        return fileTime;
+    }
+    public void setLoanSchedule(String loanSchedule) 
+    {
+        this.loanSchedule = loanSchedule;
+    }
+
+    public String getLoanSchedule() 
+    {
+        return loanSchedule;
+    }
+    public void setAuditSchedule(String auditSchedule) 
+    {
+        this.auditSchedule = auditSchedule;
+    }
+
+    public String getAuditSchedule() 
+    {
+        return auditSchedule;
+    }
+    public void setAuditType(String auditType) 
+    {
+        this.auditType = auditType;
+    }
+
+    public String getAuditType() 
+    {
+        return auditType;
+    }
+    public void setLoanApplicationType(String loanApplicationType) 
+    {
+        this.loanApplicationType = loanApplicationType;
+    }
+
+    public String getLoanApplicationType() 
+    {
+        return loanApplicationType;
+    }
+    public void setaUserId(Long aUserId) 
+    {
+        this.aUserId = aUserId;
+    }
+
+    public Long getaUserId() 
+    {
+        return aUserId;
+    }
+    public void setaUserName(Long aUserName) 
+    {
+        this.aUserName = aUserName;
+    }
+
+    public Long getaUserName() 
+    {
+        return aUserName;
+    }
+    public void setbUserId(Long bUserId) 
+    {
+        this.bUserId = bUserId;
+    }
+
+    public Long getbUserId() 
+    {
+        return bUserId;
+    }
+    public void setbUserName(Long bUserName) 
+    {
+        this.bUserName = bUserName;
+    }
+
+    public Long getbUserName() 
+    {
+        return bUserName;
+    }
+
+
+}

+ 138 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/loan/LoanApplicationFj.java

@@ -0,0 +1,138 @@
+package com.ruoyi.system.domain.loan;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 贷款申请_附件对象 loan_application_fj
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public class LoanApplicationFj extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 附件ID */
+    private Long fjId;
+
+    /** 贷款申请id */
+    @Excel(name = "贷款申请id")
+    private Long loanApplicationId;
+
+    /** 贷款申请编号 */
+    @Excel(name = "贷款申请编号")
+    private String loanApplicationNumber;
+
+    /** 原文件名称 */
+    @Excel(name = "原文件名称")
+    private String oldName;
+
+    /** 附件名称 */
+    @Excel(name = "附件名称")
+    private String name;
+
+    /** 附件地址 */
+    @Excel(name = "附件地址")
+    private String url;
+
+    /** 文件类型 1:公司章程,2:开户许可证 3:申请企业征信报告 4:关联企业征信报告 5:企业法人征信报告 6.实际控股人征信报告 7:实际控股人配偶征信报告,8:法人身份证人面像,9:法人身份证国徽面,10:法人配偶身份证人面像,11:法人配偶身份证国徽面,12:法人结婚证,13:法人户口簿首页,14:法人户口簿本人页,15:法人户口簿配偶页,16:反担保人身份证人面像,17:反担保人身份证国徽面,18:反担保人配偶身份证人面像,19:反担保人配偶身份证国徽面,20:反担保人结婚证,21:反担保人户口簿首页,22:反担保人户口簿本人页,23:反担保人户口簿配偶页,24:反担保人个人工作证明,25:反担保人身份证复印件,26:反担保人个人征信报告,27:委托担保申请书,28:股东会议纪要,29:上一年度财务报表,30:当期财务报表,31:上一年度审计报告,32:纳税证明,33:近三月银行对账单,34:主要账户银行流水,35:购销合同,36:当前从事项目情况证明,37:企业基本注册信息查询单,38:企业固定资产证明,39:法人资产证明(房产), 40:法人资产证明(地产),41:法人资产证明(车辆),42:反担保抵(质)押复印件,43:代理相关产品授权书,44:代理相关品牌合同(商业),45:生产经营许可证(工业),46:水电费发票(一年),47:人员工资表,48:纳税申报表,49:完税证明 */
+    @Excel(name = "文件类型 1:公司章程,2:开户许可证 3:申请企业征信报告 4:关联企业征信报告 5:企业法人征信报告 6.实际控股人征信报告 7:实际控股人配偶征信报告")
+    private String type;
+    /**
+     * 文件分类:a:基础附件 b:申报附件 c:文件出具 d:其他附件
+     */
+    private String bigType;
+
+    public String getBigType() {
+        return bigType;
+    }
+
+    public void setBigType(String bigType) {
+        this.bigType = bigType;
+    }
+
+    public void setFjId(Long fjId)
+    {
+        this.fjId = fjId;
+    }
+
+    public Long getFjId() 
+    {
+        return fjId;
+    }
+    public void setLoanApplicationId(Long loanApplicationId) 
+    {
+        this.loanApplicationId = loanApplicationId;
+    }
+
+    public Long getLoanApplicationId() 
+    {
+        return loanApplicationId;
+    }
+    public void setLoanApplicationNumber(String loanApplicationNumber) 
+    {
+        this.loanApplicationNumber = loanApplicationNumber;
+    }
+
+    public String getLoanApplicationNumber() 
+    {
+        return loanApplicationNumber;
+    }
+    public void setOldName(String oldName) 
+    {
+        this.oldName = oldName;
+    }
+
+    public String getOldName() 
+    {
+        return oldName;
+    }
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setUrl(String url) 
+    {
+        this.url = url;
+    }
+
+    public String getUrl() 
+    {
+        return url;
+    }
+    public void setType(String type) 
+    {
+        this.type = type;
+    }
+
+    public String getType() 
+    {
+        return type;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("fjId", getFjId())
+            .append("loanApplicationId", getLoanApplicationId())
+            .append("loanApplicationNumber", getLoanApplicationNumber())
+            .append("oldName", getOldName())
+            .append("name", getName())
+            .append("url", getUrl())
+            .append("type", getType())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 129 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/loan/LoanSchedule.java

@@ -0,0 +1,129 @@
+package com.ruoyi.system.domain.loan;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 业务进度对象 loan_schedule
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public class LoanSchedule extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 业务进度id */
+    private Long loanScheduleId;
+
+    /** 贷款申请id */
+    @Excel(name = "贷款申请id")
+    private Long loanApplicationId;
+
+    /** 贷款申请编号 */
+    @Excel(name = "贷款申请编号")
+    private String loanApplicationNumber;
+
+    /** 进度名称 */
+    @Excel(name = "进度名称")
+    private String loanScheduleName;
+
+    /** 进度字典值 */
+    @Excel(name = "进度字典值")
+    private String loanScheduleValue;
+
+    /** 进度排序 */
+    @Excel(name = "进度排序")
+    private String loanScheduleScore;
+
+    /** 进度时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "进度时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date loanScheduleTime;
+
+    public void setLoanScheduleId(Long loanScheduleId) 
+    {
+        this.loanScheduleId = loanScheduleId;
+    }
+
+    public Long getLoanScheduleId() 
+    {
+        return loanScheduleId;
+    }
+    public void setLoanApplicationId(Long loanApplicationId) 
+    {
+        this.loanApplicationId = loanApplicationId;
+    }
+
+    public Long getLoanApplicationId() 
+    {
+        return loanApplicationId;
+    }
+    public void setLoanApplicationNumber(String loanApplicationNumber) 
+    {
+        this.loanApplicationNumber = loanApplicationNumber;
+    }
+
+    public String getLoanApplicationNumber() 
+    {
+        return loanApplicationNumber;
+    }
+    public void setLoanScheduleName(String loanScheduleName) 
+    {
+        this.loanScheduleName = loanScheduleName;
+    }
+
+    public String getLoanScheduleName() 
+    {
+        return loanScheduleName;
+    }
+    public void setLoanScheduleValue(String loanScheduleValue) 
+    {
+        this.loanScheduleValue = loanScheduleValue;
+    }
+
+    public String getLoanScheduleValue() 
+    {
+        return loanScheduleValue;
+    }
+    public void setLoanScheduleScore(String loanScheduleScore) 
+    {
+        this.loanScheduleScore = loanScheduleScore;
+    }
+
+    public String getLoanScheduleScore() 
+    {
+        return loanScheduleScore;
+    }
+    public void setLoanScheduleTime(Date loanScheduleTime) 
+    {
+        this.loanScheduleTime = loanScheduleTime;
+    }
+
+    public Date getLoanScheduleTime() 
+    {
+        return loanScheduleTime;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("loanScheduleId", getLoanScheduleId())
+            .append("loanApplicationId", getLoanApplicationId())
+            .append("loanApplicationNumber", getLoanApplicationNumber())
+            .append("loanScheduleName", getLoanScheduleName())
+            .append("loanScheduleValue", getLoanScheduleValue())
+            .append("loanScheduleScore", getLoanScheduleScore())
+            .append("loanScheduleTime", getLoanScheduleTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

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

@@ -0,0 +1,176 @@
+package com.ruoyi.system.domain.loan;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 全体股东附件对象 shareholder_fj
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public class ShareholderFj extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 全体股东附件ID */
+    private Long shareholderFjId;
+
+    /** 贷款申请id */
+    @Excel(name = "贷款申请id")
+    private Long loanApplicationId;
+
+    /** 贷款申请编号 */
+    @Excel(name = "贷款申请编号")
+    private String loanApplicationNumber;
+
+    /** 股东身份证 */
+    @Excel(name = "股东身份证")
+    private String shareholderIdCard;
+
+    /** 股东姓名 */
+    @Excel(name = "股东姓名")
+    private String shareholderName;
+
+    /** 股东身份证正面 */
+    @Excel(name = "股东身份证正面")
+    private String shareholderFrontUrl;
+    /**
+     * 股东身份证正面文件名称
+     */
+    private String shareholderFrontName;
+
+    /** 股东身份证反面 */
+    @Excel(name = "股东身份证反面")
+    private String shareholderBackUrl;
+    /**
+     * 股东身份证反面文件名称
+     */
+    private String shareholderBackName;
+
+    /** 股东征信url */
+    @Excel(name = "股东征信url")
+    private String shareholderZxUrl;
+    /**
+     * 股东征信文件名称
+     */
+    private String shareholderZxName;
+
+    public String getShareholderFrontName() {
+        return shareholderFrontName;
+    }
+
+    public void setShareholderFrontName(String shareholderFrontName) {
+        this.shareholderFrontName = shareholderFrontName;
+    }
+
+    public String getShareholderBackName() {
+        return shareholderBackName;
+    }
+
+    public void setShareholderBackName(String shareholderBackName) {
+        this.shareholderBackName = shareholderBackName;
+    }
+
+    public String getShareholderZxName() {
+        return shareholderZxName;
+    }
+
+    public void setShareholderZxName(String shareholderZxName) {
+        this.shareholderZxName = shareholderZxName;
+    }
+
+    public void setShareholderFjId(Long shareholderFjId)
+    {
+        this.shareholderFjId = shareholderFjId;
+    }
+
+    public Long getShareholderFjId() 
+    {
+        return shareholderFjId;
+    }
+    public void setLoanApplicationId(Long loanApplicationId) 
+    {
+        this.loanApplicationId = loanApplicationId;
+    }
+
+    public Long getLoanApplicationId() 
+    {
+        return loanApplicationId;
+    }
+    public void setLoanApplicationNumber(String loanApplicationNumber) 
+    {
+        this.loanApplicationNumber = loanApplicationNumber;
+    }
+
+    public String getLoanApplicationNumber() 
+    {
+        return loanApplicationNumber;
+    }
+    public void setShareholderIdCard(String shareholderIdCard) 
+    {
+        this.shareholderIdCard = shareholderIdCard;
+    }
+
+    public String getShareholderIdCard() 
+    {
+        return shareholderIdCard;
+    }
+    public void setShareholderName(String shareholderName) 
+    {
+        this.shareholderName = shareholderName;
+    }
+
+    public String getShareholderName() 
+    {
+        return shareholderName;
+    }
+    public void setShareholderFrontUrl(String shareholderFrontUrl) 
+    {
+        this.shareholderFrontUrl = shareholderFrontUrl;
+    }
+
+    public String getShareholderFrontUrl() 
+    {
+        return shareholderFrontUrl;
+    }
+    public void setShareholderBackUrl(String shareholderBackUrl) 
+    {
+        this.shareholderBackUrl = shareholderBackUrl;
+    }
+
+    public String getShareholderBackUrl() 
+    {
+        return shareholderBackUrl;
+    }
+    public void setShareholderZxUrl(String shareholderZxUrl) 
+    {
+        this.shareholderZxUrl = shareholderZxUrl;
+    }
+
+    public String getShareholderZxUrl() 
+    {
+        return shareholderZxUrl;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("shareholderFjId", getShareholderFjId())
+            .append("loanApplicationId", getLoanApplicationId())
+            .append("loanApplicationNumber", getLoanApplicationNumber())
+            .append("shareholderIdCard", getShareholderIdCard())
+            .append("shareholderName", getShareholderName())
+            .append("shareholderFrontUrl", getShareholderFrontUrl())
+            .append("shareholderBackUrl", getShareholderBackUrl())
+            .append("shareholderZxUrl", getShareholderZxUrl())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 157 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/review/ReviewComments.java

@@ -0,0 +1,157 @@
+package com.ruoyi.system.domain.review;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 业务审核意见对象 review_comments
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public class ReviewComments extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 业务审核意见id */
+    private Long reviewCommentsId;
+
+    /** 贷款申请id */
+    @Excel(name = "贷款申请id")
+    private Long loanApplicationId;
+
+    /** 贷款申请编号 */
+    @Excel(name = "贷款申请编号")
+    private String loanApplicationNumber;
+
+    /** 审核进度1:担保初审 2:A角色审核 3:B角色审核 4:风险审核 5:尽职调查 6:上会评审 */
+    @Excel(name = "审核进度1:担保初审 2:A角色审核 3:B角色审核 4:风险审核 5:尽职调查 6:上会评审")
+    private String auditSchedule;
+
+    /** 审核状态 1:待审核 2:已通过 3:未通过 */
+    @Excel(name = "审核状态 1:待审核 2:已通过 3:未通过")
+    private String auditType;
+
+    /** 审核意见 */
+    @Excel(name = "审核意见")
+    private String auditView;
+
+    /** 审核时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date auditTime;
+
+    /** 审核意见附件URL */
+    @Excel(name = "审核意见附件URL")
+    private String fjUrl;
+
+    /** 审核意见图片多张使用逗号分隔 */
+    @Excel(name = "审核意见图片多张使用逗号分隔")
+    private String imageUrl;
+
+    public void setReviewCommentsId(Long reviewCommentsId) 
+    {
+        this.reviewCommentsId = reviewCommentsId;
+    }
+
+    public Long getReviewCommentsId() 
+    {
+        return reviewCommentsId;
+    }
+    public void setLoanApplicationId(Long loanApplicationId) 
+    {
+        this.loanApplicationId = loanApplicationId;
+    }
+
+    public Long getLoanApplicationId() 
+    {
+        return loanApplicationId;
+    }
+    public void setLoanApplicationNumber(String loanApplicationNumber) 
+    {
+        this.loanApplicationNumber = loanApplicationNumber;
+    }
+
+    public String getLoanApplicationNumber() 
+    {
+        return loanApplicationNumber;
+    }
+    public void setAuditSchedule(String auditSchedule) 
+    {
+        this.auditSchedule = auditSchedule;
+    }
+
+    public String getAuditSchedule() 
+    {
+        return auditSchedule;
+    }
+    public void setAuditType(String auditType) 
+    {
+        this.auditType = auditType;
+    }
+
+    public String getAuditType() 
+    {
+        return auditType;
+    }
+    public void setAuditView(String auditView) 
+    {
+        this.auditView = auditView;
+    }
+
+    public String getAuditView() 
+    {
+        return auditView;
+    }
+    public void setAuditTime(Date auditTime) 
+    {
+        this.auditTime = auditTime;
+    }
+
+    public Date getAuditTime() 
+    {
+        return auditTime;
+    }
+    public void setFjUrl(String fjUrl) 
+    {
+        this.fjUrl = fjUrl;
+    }
+
+    public String getFjUrl() 
+    {
+        return fjUrl;
+    }
+    public void setImageUrl(String imageUrl) 
+    {
+        this.imageUrl = imageUrl;
+    }
+
+    public String getImageUrl() 
+    {
+        return imageUrl;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("reviewCommentsId", getReviewCommentsId())
+            .append("loanApplicationId", getLoanApplicationId())
+            .append("loanApplicationNumber", getLoanApplicationNumber())
+            .append("auditSchedule", getAuditSchedule())
+            .append("auditType", getAuditType())
+            .append("auditView", getAuditView())
+            .append("auditTime", getAuditTime())
+            .append("fjUrl", getFjUrl())
+            .append("imageUrl", getImageUrl())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 38 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UploadVo.java

@@ -0,0 +1,38 @@
+package com.ruoyi.system.domain.vo;
+
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * @Author: tjf
+ * @Date: 2024/4/25 17:48
+ * @Describe:
+ */
+public class UploadVo {
+    private MultipartFile file;
+    private String loanApplicationNumber;
+    private String fileName;
+
+    public MultipartFile getFile() {
+        return file;
+    }
+
+    public void setFile(MultipartFile file) {
+        this.file = file;
+    }
+
+    public String getLoanApplicationNumber() {
+        return loanApplicationNumber;
+    }
+
+    public void setLoanApplicationNumber(String loanApplicationNumber) {
+        this.loanApplicationNumber = loanApplicationNumber;
+    }
+
+    public String getFileName() {
+        return fileName;
+    }
+
+    public void setFileName(String fileName) {
+        this.fileName = fileName;
+    }
+}

+ 86 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/LoanApplicationFjMapper.java

@@ -0,0 +1,86 @@
+package com.ruoyi.system.mapper;
+
+import com.ruoyi.system.domain.SysUserPost;
+import com.ruoyi.system.domain.loan.LoanApplicationFj;
+
+import java.util.List;
+
+
+/**
+ * 贷款申请_附件Mapper接口
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public interface LoanApplicationFjMapper 
+{
+    /**
+     * 查询贷款申请_附件
+     * 
+     * @param fjId 贷款申请_附件主键
+     * @return 贷款申请_附件
+     */
+    public LoanApplicationFj selectLoanApplicationFjByFjId(Long fjId);
+
+    /**
+     * 查询贷款申请_附件列表
+     * 
+     * @param loanApplicationFj 贷款申请_附件
+     * @return 贷款申请_附件集合
+     */
+    public List<LoanApplicationFj> selectLoanApplicationFjList(LoanApplicationFj loanApplicationFj);
+
+    /**
+     * 根据贷款申请id查询所有附件
+     * @param loanApplicationId
+     * @return
+     */
+    public List<LoanApplicationFj> selectLoanApplicationFjByLoanApplicationId(Long loanApplicationId);
+
+    /**
+     * 新增贷款申请_附件
+     * 
+     * @param loanApplicationFj 贷款申请_附件
+     * @return 结果
+     */
+    public int insertLoanApplicationFj(LoanApplicationFj loanApplicationFj);
+
+    /**
+     * 批量新增贷款申请_附件
+     *
+     * @param loanApplicationFjList 贷款申请_附件
+     * @return 结果
+     */
+    public int batchLoanApplicationFj(List<LoanApplicationFj> loanApplicationFjList);
+
+    /**
+     * 修改贷款申请_附件
+     * 
+     * @param loanApplicationFj 贷款申请_附件
+     * @return 结果
+     */
+    public int updateLoanApplicationFj(LoanApplicationFj loanApplicationFj);
+
+    /**
+     * 删除贷款申请_附件
+     * 
+     * @param fjId 贷款申请_附件主键
+     * @return 结果
+     */
+    public int deleteLoanApplicationFjByFjId(Long fjId);
+
+    /**
+     * 批量删除贷款申请_附件
+     * 
+     * @param fjIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteLoanApplicationFjByFjIds(Long[] fjIds);
+
+    /**
+     * 根据贷款申请id删除所有附件
+     * @param LoanApplicationId
+     * @return
+     */
+    public int deleteLoanApplicationFjByLoanApplicationId(Long LoanApplicationId);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/LoanApplicationMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.mapper;
+
+import com.ruoyi.system.domain.loan.LoanApplication;
+
+import java.util.List;
+
+
+/**
+ * 贷款申请主Mapper接口
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public interface LoanApplicationMapper 
+{
+    /**
+     * 查询贷款申请主
+     * 
+     * @param loanApplicationId 贷款申请主主键
+     * @return 贷款申请主
+     */
+    public LoanApplication selectLoanApplicationByLoanApplicationId(Long loanApplicationId);
+
+    /**
+     * 查询贷款申请主列表
+     * 
+     * @param loanApplication 贷款申请主
+     * @return 贷款申请主集合
+     */
+    public List<LoanApplication> selectLoanApplicationList(LoanApplication loanApplication);
+
+    /**
+     * 新增贷款申请主
+     * 
+     * @param loanApplication 贷款申请主
+     * @return 结果
+     */
+    public int insertLoanApplication(LoanApplication loanApplication);
+
+    /**
+     * 修改贷款申请主
+     * 
+     * @param loanApplication 贷款申请主
+     * @return 结果
+     */
+    public int updateLoanApplication(LoanApplication loanApplication);
+
+    /**
+     * 删除贷款申请主
+     * 
+     * @param loanApplicationId 贷款申请主主键
+     * @return 结果
+     */
+    public int deleteLoanApplicationByLoanApplicationId(Long loanApplicationId);
+
+    /**
+     * 批量删除贷款申请主
+     * 
+     * @param loanApplicationIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteLoanApplicationByLoanApplicationIds(Long[] loanApplicationIds);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/LoanScheduleMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.mapper;
+
+import com.ruoyi.system.domain.loan.LoanSchedule;
+
+import java.util.List;
+
+
+/**
+ * 业务进度Mapper接口
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public interface LoanScheduleMapper 
+{
+    /**
+     * 查询业务进度
+     * 
+     * @param loanScheduleId 业务进度主键
+     * @return 业务进度
+     */
+    public LoanSchedule selectLoanScheduleByLoanScheduleId(Long loanScheduleId);
+
+    /**
+     * 查询业务进度列表
+     * 
+     * @param loanSchedule 业务进度
+     * @return 业务进度集合
+     */
+    public List<LoanSchedule> selectLoanScheduleList(LoanSchedule loanSchedule);
+
+    /**
+     * 新增业务进度
+     * 
+     * @param loanSchedule 业务进度
+     * @return 结果
+     */
+    public int insertLoanSchedule(LoanSchedule loanSchedule);
+
+    /**
+     * 修改业务进度
+     * 
+     * @param loanSchedule 业务进度
+     * @return 结果
+     */
+    public int updateLoanSchedule(LoanSchedule loanSchedule);
+
+    /**
+     * 删除业务进度
+     * 
+     * @param loanScheduleId 业务进度主键
+     * @return 结果
+     */
+    public int deleteLoanScheduleByLoanScheduleId(Long loanScheduleId);
+
+    /**
+     * 批量删除业务进度
+     * 
+     * @param loanScheduleIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteLoanScheduleByLoanScheduleIds(Long[] loanScheduleIds);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ReviewCommentsMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.mapper;
+
+import com.ruoyi.system.domain.review.ReviewComments;
+
+import java.util.List;
+
+
+/**
+ * 业务审核意见Mapper接口
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public interface ReviewCommentsMapper 
+{
+    /**
+     * 查询业务审核意见
+     * 
+     * @param reviewCommentsId 业务审核意见主键
+     * @return 业务审核意见
+     */
+    public ReviewComments selectReviewCommentsByReviewCommentsId(Long reviewCommentsId);
+
+    /**
+     * 查询业务审核意见列表
+     * 
+     * @param reviewComments 业务审核意见
+     * @return 业务审核意见集合
+     */
+    public List<ReviewComments> selectReviewCommentsList(ReviewComments reviewComments);
+
+    /**
+     * 新增业务审核意见
+     * 
+     * @param reviewComments 业务审核意见
+     * @return 结果
+     */
+    public int insertReviewComments(ReviewComments reviewComments);
+
+    /**
+     * 修改业务审核意见
+     * 
+     * @param reviewComments 业务审核意见
+     * @return 结果
+     */
+    public int updateReviewComments(ReviewComments reviewComments);
+
+    /**
+     * 删除业务审核意见
+     * 
+     * @param reviewCommentsId 业务审核意见主键
+     * @return 结果
+     */
+    public int deleteReviewCommentsByReviewCommentsId(Long reviewCommentsId);
+
+    /**
+     * 批量删除业务审核意见
+     * 
+     * @param reviewCommentsIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteReviewCommentsByReviewCommentsIds(Long[] reviewCommentsIds);
+}

+ 84 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ShareholderFjMapper.java

@@ -0,0 +1,84 @@
+package com.ruoyi.system.mapper;
+
+import com.ruoyi.system.domain.loan.ShareholderFj;
+
+import java.util.List;
+
+
+/**
+ * 全体股东附件Mapper接口
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public interface ShareholderFjMapper 
+{
+    /**
+     * 查询全体股东附件
+     * 
+     * @param shareholderFjId 全体股东附件主键
+     * @return 全体股东附件
+     */
+    public ShareholderFj selectShareholderFjByShareholderFjId(Long shareholderFjId);
+
+    /**
+     * 查询全体股东附件列表
+     * 
+     * @param shareholderFj 全体股东附件
+     * @return 全体股东附件集合
+     */
+    public List<ShareholderFj> selectShareholderFjList(ShareholderFj shareholderFj);
+
+    /**
+     * 根据贷款申请id查询全体股东附件列表
+     * @param loanApplicationId
+     * @return
+     */
+    public List<ShareholderFj> selectShareholderFjLoanApplicationId(Long loanApplicationId);
+
+    /**
+     * 新增全体股东附件
+     * 
+     * @param shareholderFj 全体股东附件
+     * @return 结果
+     */
+    public int insertShareholderFj(ShareholderFj shareholderFj);
+    /**
+     * 批量新增全体股东附件
+     *
+     * @param shareholderFjs 全体股东附件
+     * @return 结果
+     */
+    public int batchShareholderFj(List<ShareholderFj> shareholderFjs);
+
+    /**
+     * 修改全体股东附件
+     * 
+     * @param shareholderFj 全体股东附件
+     * @return 结果
+     */
+    public int updateShareholderFj(ShareholderFj shareholderFj);
+
+    /**
+     * 删除全体股东附件
+     * 
+     * @param shareholderFjId 全体股东附件主键
+     * @return 结果
+     */
+    public int deleteShareholderFjByShareholderFjId(Long shareholderFjId);
+
+    /**
+     * 批量删除全体股东附件
+     * 
+     * @param shareholderFjIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteShareholderFjByShareholderFjIds(Long[] shareholderFjIds);
+
+    /**
+     * 根据贷款申请删除所有附件
+     * @param LoanApplicationId
+     * @return
+     */
+    public int deleteShareholderFjByLoanApplicationId(Long LoanApplicationId);
+}

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserEnterpriseMapper.java

@@ -20,6 +20,7 @@ public interface SysUserEnterpriseMapper
      * @return 用户企业信息
      */
     public SysUserEnterprise selectSysUserEnterpriseByUserId(Long userId);
+    public SysUserEnterprise selectSysUserEnterpriseByEnterpriseId(Long enterpriseId);
 
     /**
      * 查询用户企业信息列表
@@ -52,6 +53,7 @@ public interface SysUserEnterpriseMapper
      * @return 结果
      */
     public int deleteSysUserEnterpriseByUserId(Long userId);
+    public int deleteSysUserEnterpriseByEnterpriseId(Long enterpriseId);
 
     /**
      * 批量删除用户企业信息
@@ -60,4 +62,5 @@ public interface SysUserEnterpriseMapper
      * @return 结果
      */
     public int deleteSysUserEnterpriseByUserIds(Long[] userIds);
+    public int deleteSysUserEnterpriseByEnterpriseIds(Long[] enterpriseIds);
 }

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/enterprise/ISysUserEnterpriseService.java

@@ -20,6 +20,7 @@ public interface ISysUserEnterpriseService
      * @return 用户企业信息
      */
     public SysUserEnterprise selectSysUserEnterpriseByUserId(Long userId);
+    public SysUserEnterprise selectSysUserEnterpriseByEnterpriseId(Long enterpriseId);
 
     /**
      * 查询用户企业信息列表
@@ -52,6 +53,7 @@ public interface ISysUserEnterpriseService
      * @return 结果
      */
     public int deleteSysUserEnterpriseByUserIds(Long[] userIds);
+    public int deleteSysUserEnterpriseByEnterpriseIds(Long[] enterpriseIds);
 
     /**
      * 删除用户企业信息信息

+ 10 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/enterprise/impl/SysUserEnterpriseServiceImpl.java

@@ -32,6 +32,11 @@ public class SysUserEnterpriseServiceImpl implements ISysUserEnterpriseService
         return sysUserEnterpriseMapper.selectSysUserEnterpriseByUserId(userId);
     }
 
+    @Override
+    public SysUserEnterprise selectSysUserEnterpriseByEnterpriseId(Long enterpriseId) {
+        return sysUserEnterpriseMapper.selectSysUserEnterpriseByEnterpriseId(enterpriseId);
+    }
+
     /**
      * 查询用户企业信息列表
      * 
@@ -83,6 +88,11 @@ public class SysUserEnterpriseServiceImpl implements ISysUserEnterpriseService
         return sysUserEnterpriseMapper.deleteSysUserEnterpriseByUserIds(userIds);
     }
 
+    @Override
+    public int deleteSysUserEnterpriseByEnterpriseIds(Long[] enterpriseIds) {
+        return sysUserEnterpriseMapper.deleteSysUserEnterpriseByEnterpriseIds(enterpriseIds);
+    }
+
     /**
      * 删除用户企业信息信息
      * 

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/loan/ILoanApplicationFjService.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.service.loan;
+
+import com.ruoyi.system.domain.loan.LoanApplicationFj;
+
+import java.util.List;
+
+
+/**
+ * 贷款申请_附件Service接口
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public interface ILoanApplicationFjService 
+{
+    /**
+     * 查询贷款申请_附件
+     * 
+     * @param fjId 贷款申请_附件主键
+     * @return 贷款申请_附件
+     */
+    public LoanApplicationFj selectLoanApplicationFjByFjId(Long fjId);
+
+    /**
+     * 查询贷款申请_附件列表
+     * 
+     * @param loanApplicationFj 贷款申请_附件
+     * @return 贷款申请_附件集合
+     */
+    public List<LoanApplicationFj> selectLoanApplicationFjList(LoanApplicationFj loanApplicationFj);
+
+    /**
+     * 新增贷款申请_附件
+     * 
+     * @param loanApplicationFj 贷款申请_附件
+     * @return 结果
+     */
+    public int insertLoanApplicationFj(LoanApplicationFj loanApplicationFj);
+
+    /**
+     * 修改贷款申请_附件
+     * 
+     * @param loanApplicationFj 贷款申请_附件
+     * @return 结果
+     */
+    public int updateLoanApplicationFj(LoanApplicationFj loanApplicationFj);
+
+    /**
+     * 批量删除贷款申请_附件
+     * 
+     * @param fjIds 需要删除的贷款申请_附件主键集合
+     * @return 结果
+     */
+    public int deleteLoanApplicationFjByFjIds(Long[] fjIds);
+
+    /**
+     * 删除贷款申请_附件信息
+     * 
+     * @param fjId 贷款申请_附件主键
+     * @return 结果
+     */
+    public int deleteLoanApplicationFjByFjId(Long fjId);
+}

+ 69 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/loan/ILoanApplicationService.java

@@ -0,0 +1,69 @@
+package com.ruoyi.system.service.loan;
+
+import com.ruoyi.system.domain.loan.LoanApplication;
+
+import java.util.List;
+
+/**
+ * 贷款申请主Service接口
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public interface ILoanApplicationService 
+{
+    /**
+     * 查询贷款申请主
+     * 
+     * @param loanApplicationId 贷款申请主主键
+     * @return 贷款申请主
+     */
+    public LoanApplication selectLoanApplicationByLoanApplicationId(Long loanApplicationId);
+
+    /**
+     * 查询贷款申请主列表
+     * 
+     * @param loanApplication 贷款申请主
+     * @return 贷款申请主集合
+     */
+    public List<LoanApplication> selectLoanApplicationList(LoanApplication loanApplication);
+
+    /**
+     * 新增贷款申请主
+     * 
+     * @param loanApplication 贷款申请主
+     * @return 结果
+     */
+    public int insertLoanApplication(LoanApplication loanApplication);
+
+    /**
+     * 修改贷款申请主
+     * 
+     * @param loanApplication 贷款申请主
+     * @return 结果
+     */
+    public int updateLoanApplication(LoanApplication loanApplication);
+
+    /**
+     * 暂存
+     * @param loanApplication
+     * @return
+     */
+    public int temporary(LoanApplication loanApplication);
+
+    /**
+     * 批量删除贷款申请主
+     * 
+     * @param loanApplicationIds 需要删除的贷款申请主主键集合
+     * @return 结果
+     */
+    public int deleteLoanApplicationByLoanApplicationIds(Long[] loanApplicationIds);
+
+    /**
+     * 删除贷款申请主信息
+     * 
+     * @param loanApplicationId 贷款申请主主键
+     * @return 结果
+     */
+    public int deleteLoanApplicationByLoanApplicationId(Long loanApplicationId);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/loan/ILoanScheduleService.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.service.loan;
+
+import com.ruoyi.system.domain.loan.LoanSchedule;
+
+import java.util.List;
+
+
+/**
+ * 业务进度Service接口
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public interface ILoanScheduleService 
+{
+    /**
+     * 查询业务进度
+     * 
+     * @param loanScheduleId 业务进度主键
+     * @return 业务进度
+     */
+    public LoanSchedule selectLoanScheduleByLoanScheduleId(Long loanScheduleId);
+
+    /**
+     * 查询业务进度列表
+     * 
+     * @param loanSchedule 业务进度
+     * @return 业务进度集合
+     */
+    public List<LoanSchedule> selectLoanScheduleList(LoanSchedule loanSchedule);
+
+    /**
+     * 新增业务进度
+     * 
+     * @param loanSchedule 业务进度
+     * @return 结果
+     */
+    public int insertLoanSchedule(LoanSchedule loanSchedule);
+
+    /**
+     * 修改业务进度
+     * 
+     * @param loanSchedule 业务进度
+     * @return 结果
+     */
+    public int updateLoanSchedule(LoanSchedule loanSchedule);
+
+    /**
+     * 批量删除业务进度
+     * 
+     * @param loanScheduleIds 需要删除的业务进度主键集合
+     * @return 结果
+     */
+    public int deleteLoanScheduleByLoanScheduleIds(Long[] loanScheduleIds);
+
+    /**
+     * 删除业务进度信息
+     * 
+     * @param loanScheduleId 业务进度主键
+     * @return 结果
+     */
+    public int deleteLoanScheduleByLoanScheduleId(Long loanScheduleId);
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/loan/IShareholderFjService.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.service.loan;
+
+import com.ruoyi.system.domain.loan.ShareholderFj;
+
+import java.util.List;
+
+
+/**
+ * 全体股东附件Service接口
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public interface IShareholderFjService 
+{
+    /**
+     * 查询全体股东附件
+     * 
+     * @param shareholderFjId 全体股东附件主键
+     * @return 全体股东附件
+     */
+    public ShareholderFj selectShareholderFjByShareholderFjId(Long shareholderFjId);
+
+    /**
+     * 查询全体股东附件列表
+     * 
+     * @param shareholderFj 全体股东附件
+     * @return 全体股东附件集合
+     */
+    public List<ShareholderFj> selectShareholderFjList(ShareholderFj shareholderFj);
+
+    /**
+     * 新增全体股东附件
+     * 
+     * @param shareholderFj 全体股东附件
+     * @return 结果
+     */
+    public int insertShareholderFj(ShareholderFj shareholderFj);
+
+    /**
+     * 修改全体股东附件
+     * 
+     * @param shareholderFj 全体股东附件
+     * @return 结果
+     */
+    public int updateShareholderFj(ShareholderFj shareholderFj);
+
+    /**
+     * 批量删除全体股东附件
+     * 
+     * @param shareholderFjIds 需要删除的全体股东附件主键集合
+     * @return 结果
+     */
+    public int deleteShareholderFjByShareholderFjIds(Long[] shareholderFjIds);
+
+    /**
+     * 删除全体股东附件信息
+     * 
+     * @param shareholderFjId 全体股东附件主键
+     * @return 结果
+     */
+    public int deleteShareholderFjByShareholderFjId(Long shareholderFjId);
+}

+ 96 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/loan/impl/LoanApplicationFjServiceImpl.java

@@ -0,0 +1,96 @@
+package com.ruoyi.system.service.loan.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.system.domain.loan.LoanApplicationFj;
+import com.ruoyi.system.service.loan.ILoanApplicationFjService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.LoanApplicationFjMapper;
+
+/**
+ * 贷款申请_附件Service业务层处理
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+@Service
+public class LoanApplicationFjServiceImpl implements ILoanApplicationFjService
+{
+    @Autowired
+    private LoanApplicationFjMapper loanApplicationFjMapper;
+
+    /**
+     * 查询贷款申请_附件
+     * 
+     * @param fjId 贷款申请_附件主键
+     * @return 贷款申请_附件
+     */
+    @Override
+    public LoanApplicationFj selectLoanApplicationFjByFjId(Long fjId)
+    {
+        return loanApplicationFjMapper.selectLoanApplicationFjByFjId(fjId);
+    }
+
+    /**
+     * 查询贷款申请_附件列表
+     * 
+     * @param loanApplicationFj 贷款申请_附件
+     * @return 贷款申请_附件
+     */
+    @Override
+    public List<LoanApplicationFj> selectLoanApplicationFjList(LoanApplicationFj loanApplicationFj)
+    {
+        return loanApplicationFjMapper.selectLoanApplicationFjList(loanApplicationFj);
+    }
+
+    /**
+     * 新增贷款申请_附件
+     * 
+     * @param loanApplicationFj 贷款申请_附件
+     * @return 结果
+     */
+    @Override
+    public int insertLoanApplicationFj(LoanApplicationFj loanApplicationFj)
+    {
+        loanApplicationFj.setCreateTime(DateUtils.getNowDate());
+        return loanApplicationFjMapper.insertLoanApplicationFj(loanApplicationFj);
+    }
+
+    /**
+     * 修改贷款申请_附件
+     * 
+     * @param loanApplicationFj 贷款申请_附件
+     * @return 结果
+     */
+    @Override
+    public int updateLoanApplicationFj(LoanApplicationFj loanApplicationFj)
+    {
+        loanApplicationFj.setUpdateTime(DateUtils.getNowDate());
+        return loanApplicationFjMapper.updateLoanApplicationFj(loanApplicationFj);
+    }
+
+    /**
+     * 批量删除贷款申请_附件
+     * 
+     * @param fjIds 需要删除的贷款申请_附件主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLoanApplicationFjByFjIds(Long[] fjIds)
+    {
+        return loanApplicationFjMapper.deleteLoanApplicationFjByFjIds(fjIds);
+    }
+
+    /**
+     * 删除贷款申请_附件信息
+     * 
+     * @param fjId 贷款申请_附件主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLoanApplicationFjByFjId(Long fjId)
+    {
+        return loanApplicationFjMapper.deleteLoanApplicationFjByFjId(fjId);
+    }
+}

+ 223 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/loan/impl/LoanApplicationServiceImpl.java

@@ -0,0 +1,223 @@
+package com.ruoyi.system.service.loan.impl;
+
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.SendSmsUtils;
+import com.ruoyi.system.domain.enterprise.SysUserEnterprise;
+import com.ruoyi.system.domain.loan.LoanApplication;
+import com.ruoyi.system.domain.loan.LoanApplicationFj;
+import com.ruoyi.system.domain.loan.LoanSchedule;
+import com.ruoyi.system.domain.loan.ShareholderFj;
+import com.ruoyi.system.mapper.*;
+import com.ruoyi.system.service.loan.ILoanApplicationService;
+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.stream.Collectors;
+
+import static com.ruoyi.common.constant.CommonConstants.*;
+
+/**
+ * 贷款申请主Service业务层处理
+ *
+ * @author boman
+ * @date 2024-04-24
+ */
+@Service
+public class LoanApplicationServiceImpl implements ILoanApplicationService {
+    @Autowired
+    private LoanApplicationMapper loanApplicationMapper;
+    @Autowired
+    private LoanApplicationFjMapper loanApplicationFjMapper;
+    @Autowired
+    private ShareholderFjMapper shareholderFjMapper;
+    @Autowired
+    private LoanScheduleMapper loanScheduleMapper;
+    @Autowired
+    private SysUserEnterpriseMapper sysUserEnterpriseMapper;
+
+    /**
+     * 查询贷款申请主
+     *
+     * @param loanApplicationId 贷款申请主主键
+     * @return 贷款申请主
+     */
+    @Override
+    public LoanApplication selectLoanApplicationByLoanApplicationId(Long loanApplicationId) {
+
+        LoanApplication loanApplication = loanApplicationMapper.selectLoanApplicationByLoanApplicationId(loanApplicationId);
+        //查询企业信息
+        SysUserEnterprise sysUserEnterprise = sysUserEnterpriseMapper.selectSysUserEnterpriseByEnterpriseId(loanApplication.getEnterpriseId());
+        loanApplication.setSysUserEnterprise(sysUserEnterprise);
+        //查询相关附件
+        List<LoanApplicationFj> loanApplicationFjs = loanApplicationFjMapper.selectLoanApplicationFjByLoanApplicationId(loanApplicationId);
+        if (loanApplicationFjs != null && loanApplicationFjs.size() > 0) {
+            //所有附件不分类
+            loanApplication.setLoanApplicationFjList(loanApplicationFjs);
+            //进行大类区分
+            Map<String, List<LoanApplicationFj>> bigTypeFj = loanApplicationFjs.stream().collect(Collectors.groupingBy(LoanApplicationFj::getBigType));
+            List<LoanApplicationFj> loanApplicationFjsA = bigTypeFj.get(A);
+            if (loanApplicationFjsA != null && loanApplicationFjsA.size() > 0){
+                loanApplication.setBasicFj(loanApplicationFjsA.stream().collect(Collectors.groupingBy(LoanApplicationFj::getType)));
+            }
+            List<LoanApplicationFj> loanApplicationFjsB = bigTypeFj.get(B);
+            if (loanApplicationFjsB != null && loanApplicationFjsB.size() > 0){
+                loanApplication.setDeclareFj(loanApplicationFjsB.stream().collect(Collectors.groupingBy(LoanApplicationFj::getType)));
+            }
+            List<LoanApplicationFj> loanApplicationFjsC = bigTypeFj.get(C);
+            if (loanApplicationFjsC != null && loanApplicationFjsC.size() > 0){
+                loanApplication.setFileFj(loanApplicationFjsC.stream().collect(Collectors.groupingBy(LoanApplicationFj::getType)));
+            }
+            List<LoanApplicationFj> loanApplicationFjsD = bigTypeFj.get(D);
+            if (loanApplicationFjsD != null && loanApplicationFjsD.size() > 0){
+                loanApplication.setOtherFj(loanApplicationFjsD.stream().collect(Collectors.groupingBy(LoanApplicationFj::getType)));
+            }
+        }
+        List<ShareholderFj> shareholderFjs = shareholderFjMapper.selectShareholderFjLoanApplicationId(loanApplicationId);
+        if (shareholderFjs != null && shareholderFjs.size() > 0) {
+            loanApplication.setShareholderFjList(shareholderFjs);
+        }
+        return loanApplication;
+    }
+
+    /**
+     * 查询贷款申请主列表
+     *
+     * @param loanApplication 贷款申请主
+     * @return 贷款申请主
+     */
+    @Override
+    public List<LoanApplication> selectLoanApplicationList(LoanApplication loanApplication) {
+        return loanApplicationMapper.selectLoanApplicationList(loanApplication);
+    }
+
+    /**
+     * 新增贷款申请主
+     *
+     * @param loanApplication 贷款申请主
+     * @return 结果
+     */
+    @Override
+    public int insertLoanApplication(LoanApplication loanApplication) {
+        loanApplication.setCreateTime(DateUtils.getNowDate());
+        loanApplication.setLoanApplicationType(TWO);
+        List<LoanApplicationFj> loanApplicationFjList = loanApplication.getLoanApplicationFjList();
+        if (loanApplicationFjList != null && loanApplicationFjList.size() > 0) {
+            for (LoanApplicationFj loanApplicationFj : loanApplicationFjList) {
+                loanApplicationFjMapper.insertLoanApplicationFj(loanApplicationFj);
+            }
+        }
+        List<ShareholderFj> shareholderFjList = loanApplication.getShareholderFjList();
+        if (shareholderFjList != null && shareholderFjList.size() > 0) {
+            for (ShareholderFj shareholderFj : shareholderFjList) {
+                shareholderFjMapper.insertShareholderFj(shareholderFj);
+            }
+        }
+        //设置为audit_schedule=1 audit_type=1
+        loanApplication.setAuditSchedule(ONE);
+        loanApplication.setAuditType(ONE);
+        //设置申请人用户ID
+        loanApplication.setUserId(SecurityUtils.getUserId());
+        loanApplication.setApplicationTime(DateUtils.getNowDate());
+        //贷款申请进度进入申报提交
+        loanApplication.setLoanSchedule(ONE);
+        //往业务进度表 loan_schedule 插入数据
+        int i = loanApplicationMapper.insertLoanApplication(loanApplication);
+        LoanSchedule loanSchedule = new LoanSchedule();
+        loanSchedule.setLoanApplicationId(loanApplication.getLoanApplicationId());
+        loanSchedule.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
+        loanSchedule.setLoanScheduleName(loanApplication.getLoanScheduleName());
+        loanSchedule.setLoanScheduleValue(loanApplication.getLoanSchedule());
+        loanSchedule.setLoanScheduleScore("0");
+        loanSchedule.setLoanScheduleTime(DateUtils.getNowDate());
+        loanScheduleMapper.insertLoanSchedule(loanSchedule);
+        return i;
+    }
+
+    /**
+     * 修改贷款申请主
+     *
+     * @param loanApplication 贷款申请主
+     * @return 结果
+     */
+    @Override
+    public int updateLoanApplication(LoanApplication loanApplication) {
+        loanApplication.setUpdateTime(DateUtils.getNowDate());
+        loanApplication.setLoanApplicationType(TWO);
+        Long loanApplicationId = loanApplication.getLoanApplicationId();
+        //相关附件先删除
+        loanApplicationFjMapper.deleteLoanApplicationFjByLoanApplicationId(loanApplicationId);
+        List<LoanApplicationFj> loanApplicationFjList = loanApplication.getLoanApplicationFjList();
+        if (loanApplicationFjList != null && loanApplicationFjList.size() > 0) {
+            for (LoanApplicationFj loanApplicationFj : loanApplicationFjList) {
+                loanApplicationFjMapper.insertLoanApplicationFj(loanApplicationFj);
+            }
+        }
+        shareholderFjMapper.deleteShareholderFjByLoanApplicationId(loanApplicationId);
+        List<ShareholderFj> shareholderFjList = loanApplication.getShareholderFjList();
+        if (shareholderFjList != null && shareholderFjList.size() > 0) {
+            for (ShareholderFj shareholderFj : shareholderFjList) {
+                shareholderFjMapper.insertShareholderFj(shareholderFj);
+            }
+        }
+        return loanApplicationMapper.updateLoanApplication(loanApplication);
+    }
+
+    /**
+     * 暂存
+     *
+     * @param loanApplication 贷款申请主
+     * @return
+     */
+    @Override
+    public int temporary(LoanApplication loanApplication) {
+        loanApplication.setLoanApplicationType(ONE);
+        Long loanApplicationId = loanApplication.getLoanApplicationId();
+        if (loanApplicationId != null) {
+            //相关附件先删除
+            loanApplicationFjMapper.deleteLoanApplicationFjByLoanApplicationId(loanApplicationId);
+            List<LoanApplicationFj> loanApplicationFjList = loanApplication.getLoanApplicationFjList();
+            if (loanApplicationFjList != null && loanApplicationFjList.size() > 0) {
+                for (LoanApplicationFj loanApplicationFj : loanApplicationFjList) {
+                    loanApplicationFjMapper.insertLoanApplicationFj(loanApplicationFj);
+                }
+            }
+            shareholderFjMapper.deleteShareholderFjByLoanApplicationId(loanApplicationId);
+            List<ShareholderFj> shareholderFjList = loanApplication.getShareholderFjList();
+            if (shareholderFjList != null && shareholderFjList.size() > 0) {
+                for (ShareholderFj shareholderFj : shareholderFjList) {
+                    shareholderFjMapper.insertShareholderFj(shareholderFj);
+                }
+            }
+            return loanApplicationMapper.updateLoanApplication(loanApplication);
+        }
+        return loanApplicationMapper.insertLoanApplication(loanApplication);
+    }
+
+    /**
+     * 批量删除贷款申请主
+     *
+     * @param loanApplicationIds 需要删除的贷款申请主主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLoanApplicationByLoanApplicationIds(Long[] loanApplicationIds) {
+        return loanApplicationMapper.deleteLoanApplicationByLoanApplicationIds(loanApplicationIds);
+    }
+
+    /**
+     * 删除贷款申请主信息
+     *
+     * @param loanApplicationId 贷款申请主主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLoanApplicationByLoanApplicationId(Long loanApplicationId) {
+        return loanApplicationMapper.deleteLoanApplicationByLoanApplicationId(loanApplicationId);
+    }
+}

+ 97 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/loan/impl/LoanScheduleServiceImpl.java

@@ -0,0 +1,97 @@
+package com.ruoyi.system.service.loan.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.system.domain.loan.LoanSchedule;
+import com.ruoyi.system.service.loan.ILoanScheduleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.LoanScheduleMapper;
+
+
+/**
+ * 业务进度Service业务层处理
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+@Service
+public class LoanScheduleServiceImpl implements ILoanScheduleService
+{
+    @Autowired
+    private LoanScheduleMapper loanScheduleMapper;
+
+    /**
+     * 查询业务进度
+     * 
+     * @param loanScheduleId 业务进度主键
+     * @return 业务进度
+     */
+    @Override
+    public LoanSchedule selectLoanScheduleByLoanScheduleId(Long loanScheduleId)
+    {
+        return loanScheduleMapper.selectLoanScheduleByLoanScheduleId(loanScheduleId);
+    }
+
+    /**
+     * 查询业务进度列表
+     * 
+     * @param loanSchedule 业务进度
+     * @return 业务进度
+     */
+    @Override
+    public List<LoanSchedule> selectLoanScheduleList(LoanSchedule loanSchedule)
+    {
+        return loanScheduleMapper.selectLoanScheduleList(loanSchedule);
+    }
+
+    /**
+     * 新增业务进度
+     * 
+     * @param loanSchedule 业务进度
+     * @return 结果
+     */
+    @Override
+    public int insertLoanSchedule(LoanSchedule loanSchedule)
+    {
+        loanSchedule.setCreateTime(DateUtils.getNowDate());
+        return loanScheduleMapper.insertLoanSchedule(loanSchedule);
+    }
+
+    /**
+     * 修改业务进度
+     * 
+     * @param loanSchedule 业务进度
+     * @return 结果
+     */
+    @Override
+    public int updateLoanSchedule(LoanSchedule loanSchedule)
+    {
+        loanSchedule.setUpdateTime(DateUtils.getNowDate());
+        return loanScheduleMapper.updateLoanSchedule(loanSchedule);
+    }
+
+    /**
+     * 批量删除业务进度
+     * 
+     * @param loanScheduleIds 需要删除的业务进度主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLoanScheduleByLoanScheduleIds(Long[] loanScheduleIds)
+    {
+        return loanScheduleMapper.deleteLoanScheduleByLoanScheduleIds(loanScheduleIds);
+    }
+
+    /**
+     * 删除业务进度信息
+     * 
+     * @param loanScheduleId 业务进度主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLoanScheduleByLoanScheduleId(Long loanScheduleId)
+    {
+        return loanScheduleMapper.deleteLoanScheduleByLoanScheduleId(loanScheduleId);
+    }
+}

+ 97 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/loan/impl/ShareholderFjServiceImpl.java

@@ -0,0 +1,97 @@
+package com.ruoyi.system.service.loan.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.system.domain.loan.ShareholderFj;
+import com.ruoyi.system.service.loan.IShareholderFjService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.ShareholderFjMapper;
+
+
+/**
+ * 全体股东附件Service业务层处理
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+@Service
+public class ShareholderFjServiceImpl implements IShareholderFjService
+{
+    @Autowired
+    private ShareholderFjMapper shareholderFjMapper;
+
+    /**
+     * 查询全体股东附件
+     * 
+     * @param shareholderFjId 全体股东附件主键
+     * @return 全体股东附件
+     */
+    @Override
+    public ShareholderFj selectShareholderFjByShareholderFjId(Long shareholderFjId)
+    {
+        return shareholderFjMapper.selectShareholderFjByShareholderFjId(shareholderFjId);
+    }
+
+    /**
+     * 查询全体股东附件列表
+     * 
+     * @param shareholderFj 全体股东附件
+     * @return 全体股东附件
+     */
+    @Override
+    public List<ShareholderFj> selectShareholderFjList(ShareholderFj shareholderFj)
+    {
+        return shareholderFjMapper.selectShareholderFjList(shareholderFj);
+    }
+
+    /**
+     * 新增全体股东附件
+     * 
+     * @param shareholderFj 全体股东附件
+     * @return 结果
+     */
+    @Override
+    public int insertShareholderFj(ShareholderFj shareholderFj)
+    {
+        shareholderFj.setCreateTime(DateUtils.getNowDate());
+        return shareholderFjMapper.insertShareholderFj(shareholderFj);
+    }
+
+    /**
+     * 修改全体股东附件
+     * 
+     * @param shareholderFj 全体股东附件
+     * @return 结果
+     */
+    @Override
+    public int updateShareholderFj(ShareholderFj shareholderFj)
+    {
+        shareholderFj.setUpdateTime(DateUtils.getNowDate());
+        return shareholderFjMapper.updateShareholderFj(shareholderFj);
+    }
+
+    /**
+     * 批量删除全体股东附件
+     * 
+     * @param shareholderFjIds 需要删除的全体股东附件主键
+     * @return 结果
+     */
+    @Override
+    public int deleteShareholderFjByShareholderFjIds(Long[] shareholderFjIds)
+    {
+        return shareholderFjMapper.deleteShareholderFjByShareholderFjIds(shareholderFjIds);
+    }
+
+    /**
+     * 删除全体股东附件信息
+     * 
+     * @param shareholderFjId 全体股东附件主键
+     * @return 结果
+     */
+    @Override
+    public int deleteShareholderFjByShareholderFjId(Long shareholderFjId)
+    {
+        return shareholderFjMapper.deleteShareholderFjByShareholderFjId(shareholderFjId);
+    }
+}

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/review/IReviewCommentsService.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.service.review;
+
+import com.ruoyi.system.domain.review.ReviewComments;
+
+import java.util.List;
+
+
+/**
+ * 业务审核意见Service接口
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+public interface IReviewCommentsService 
+{
+    /**
+     * 查询业务审核意见
+     * 
+     * @param reviewCommentsId 业务审核意见主键
+     * @return 业务审核意见
+     */
+    public ReviewComments selectReviewCommentsByReviewCommentsId(Long reviewCommentsId);
+
+    /**
+     * 查询业务审核意见列表
+     * 
+     * @param reviewComments 业务审核意见
+     * @return 业务审核意见集合
+     */
+    public List<ReviewComments> selectReviewCommentsList(ReviewComments reviewComments);
+
+    /**
+     * 新增业务审核意见
+     * 
+     * @param reviewComments 业务审核意见
+     * @return 结果
+     */
+    public int insertReviewComments(ReviewComments reviewComments);
+
+    /**
+     * 修改业务审核意见
+     * 
+     * @param reviewComments 业务审核意见
+     * @return 结果
+     */
+    public int updateReviewComments(ReviewComments reviewComments);
+
+    /**
+     * 批量删除业务审核意见
+     * 
+     * @param reviewCommentsIds 需要删除的业务审核意见主键集合
+     * @return 结果
+     */
+    public int deleteReviewCommentsByReviewCommentsIds(Long[] reviewCommentsIds);
+
+    /**
+     * 删除业务审核意见信息
+     * 
+     * @param reviewCommentsId 业务审核意见主键
+     * @return 结果
+     */
+    public int deleteReviewCommentsByReviewCommentsId(Long reviewCommentsId);
+}

+ 96 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/review/impl/ReviewCommentsServiceImpl.java

@@ -0,0 +1,96 @@
+package com.ruoyi.system.service.review.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.system.domain.review.ReviewComments;
+import com.ruoyi.system.service.review.IReviewCommentsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.ReviewCommentsMapper;
+
+/**
+ * 业务审核意见Service业务层处理
+ * 
+ * @author boman
+ * @date 2024-04-24
+ */
+@Service
+public class ReviewCommentsServiceImpl implements IReviewCommentsService
+{
+    @Autowired
+    private ReviewCommentsMapper reviewCommentsMapper;
+
+    /**
+     * 查询业务审核意见
+     * 
+     * @param reviewCommentsId 业务审核意见主键
+     * @return 业务审核意见
+     */
+    @Override
+    public ReviewComments selectReviewCommentsByReviewCommentsId(Long reviewCommentsId)
+    {
+        return reviewCommentsMapper.selectReviewCommentsByReviewCommentsId(reviewCommentsId);
+    }
+
+    /**
+     * 查询业务审核意见列表
+     * 
+     * @param reviewComments 业务审核意见
+     * @return 业务审核意见
+     */
+    @Override
+    public List<ReviewComments> selectReviewCommentsList(ReviewComments reviewComments)
+    {
+        return reviewCommentsMapper.selectReviewCommentsList(reviewComments);
+    }
+
+    /**
+     * 新增业务审核意见
+     * 
+     * @param reviewComments 业务审核意见
+     * @return 结果
+     */
+    @Override
+    public int insertReviewComments(ReviewComments reviewComments)
+    {
+        reviewComments.setCreateTime(DateUtils.getNowDate());
+        return reviewCommentsMapper.insertReviewComments(reviewComments);
+    }
+
+    /**
+     * 修改业务审核意见
+     * 
+     * @param reviewComments 业务审核意见
+     * @return 结果
+     */
+    @Override
+    public int updateReviewComments(ReviewComments reviewComments)
+    {
+        reviewComments.setUpdateTime(DateUtils.getNowDate());
+        return reviewCommentsMapper.updateReviewComments(reviewComments);
+    }
+
+    /**
+     * 批量删除业务审核意见
+     * 
+     * @param reviewCommentsIds 需要删除的业务审核意见主键
+     * @return 结果
+     */
+    @Override
+    public int deleteReviewCommentsByReviewCommentsIds(Long[] reviewCommentsIds)
+    {
+        return reviewCommentsMapper.deleteReviewCommentsByReviewCommentsIds(reviewCommentsIds);
+    }
+
+    /**
+     * 删除业务审核意见信息
+     * 
+     * @param reviewCommentsId 业务审核意见主键
+     * @return 结果
+     */
+    @Override
+    public int deleteReviewCommentsByReviewCommentsId(Long reviewCommentsId)
+    {
+        return reviewCommentsMapper.deleteReviewCommentsByReviewCommentsId(reviewCommentsId);
+    }
+}

+ 123 - 0
ruoyi-system/src/main/resources/mapper/system/LoanApplicationFjMapper.xml

@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.LoanApplicationFjMapper">
+    
+    <resultMap type="LoanApplicationFj" id="LoanApplicationFjResult">
+        <result property="fjId"    column="fj_id"    />
+        <result property="loanApplicationId"    column="loan_application_id"    />
+        <result property="loanApplicationNumber"    column="loan_application_number"    />
+        <result property="oldName"    column="old_name"    />
+        <result property="name"    column="name"    />
+        <result property="url"    column="url"    />
+        <result property="bigType"    column="big_type"    />
+        <result property="type"    column="type"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectLoanApplicationFjVo">
+        select fj_id, loan_application_id, loan_application_number, old_name, name, url,big_type, type, create_by, create_time, update_by, update_time, remark from loan_application_fj
+    </sql>
+
+    <select id="selectLoanApplicationFjList" parameterType="LoanApplicationFj" resultMap="LoanApplicationFjResult">
+        <include refid="selectLoanApplicationFjVo"/>
+        <where>  
+            <if test="loanApplicationId != null "> and loan_application_id = #{loanApplicationId}</if>
+            <if test="loanApplicationNumber != null  and loanApplicationNumber != ''"> and loan_application_number = #{loanApplicationNumber}</if>
+            <if test="oldName != null  and oldName != ''"> and old_name like concat('%', #{oldName}, '%')</if>
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="url != null  and url != ''"> and url = #{url}</if>
+            <if test="type != null  and type != ''"> and type = #{type}</if>
+            <if test="bigType != null  and bigType != ''"> and big_type = #{bigType}</if>
+        </where>
+        order by create_time
+    </select>
+    
+    <select id="selectLoanApplicationFjByFjId" parameterType="Long" resultMap="LoanApplicationFjResult">
+        <include refid="selectLoanApplicationFjVo"/>
+        where fj_id = #{fjId}
+    </select>
+    <select id="selectLoanApplicationFjByLoanApplicationId" parameterType="LoanApplicationFj" resultMap="LoanApplicationFjResult">
+        <include refid="selectLoanApplicationFjVo"/>
+        <where>
+            <if test="loanApplicationId != null "> and loan_application_id = #{loanApplicationId}</if>
+        </where>
+        order by create_time
+    </select>
+
+    <insert id="insertLoanApplicationFj" parameterType="LoanApplicationFj" useGeneratedKeys="true" keyProperty="fjId">
+        insert into loan_application_fj
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="loanApplicationId != null">loan_application_id,</if>
+            <if test="loanApplicationNumber != null">loan_application_number,</if>
+            <if test="oldName != null and oldName != ''">old_name,</if>
+            <if test="name != null and name != ''">name,</if>
+            <if test="url != null">url,</if>
+            <if test="bigType != null">big_type,</if>
+            <if test="type != null">type,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+            create_time
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="loanApplicationId != null">#{loanApplicationId},</if>
+            <if test="loanApplicationNumber != null">#{loanApplicationNumber},</if>
+            <if test="oldName != null and oldName != ''">#{oldName},</if>
+            <if test="name != null and name != ''">#{name},</if>
+            <if test="url != null">#{url},</if>
+            <if test="bigType != null">#{bigType},</if>
+            <if test="type != null">#{type},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+            sysdate()
+         </trim>
+    </insert>
+    <insert id="batchLoanApplicationFj">
+        insert into loan_application_fj(loan_application_id, loan_application_number, old_name, name, url,big_type, type, create_by, create_time, update_by, update_time, remark) values
+        <foreach item="item" index="index" collection="list" separator=",">
+            (#{item.loanApplicationId},#{item.loanApplicationNumber},#{item.oldName},#{item.name},#{item.url},#{item.bigType},#{item.type},#{item.create_by},sysdate(),#{item.updateBy},#{item.updateTime},#{item.remark})
+        </foreach>
+    </insert>
+
+    <update id="updateLoanApplicationFj" parameterType="LoanApplicationFj">
+        update loan_application_fj
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="loanApplicationId != null">loan_application_id = #{loanApplicationId},</if>
+            <if test="loanApplicationNumber != null">loan_application_number = #{loanApplicationNumber},</if>
+            <if test="oldName != null and oldName != ''">old_name = #{oldName},</if>
+            <if test="name != null and name != ''">name = #{name},</if>
+            <if test="url != null">url = #{url},</if>
+            <if test="bigType != null">big_type = #{bigType},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where fj_id = #{fjId}
+    </update>
+
+    <delete id="deleteLoanApplicationFjByFjId" parameterType="Long">
+        delete from loan_application_fj where fj_id = #{fjId}
+    </delete>
+
+    <delete id="deleteLoanApplicationFjByFjIds" parameterType="String">
+        delete from loan_application_fj where fj_id in 
+        <foreach item="fjId" collection="array" open="(" separator="," close=")">
+            #{fjId}
+        </foreach>
+    </delete>
+    <delete id="deleteLoanApplicationFjByLoanApplicationId" parameterType="Long">
+        delete from loan_application_fj where loan_application_id  = #{LoanApplicationId}
+    </delete>
+</mapper>

+ 354 - 0
ruoyi-system/src/main/resources/mapper/system/LoanApplicationMapper.xml

@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.LoanApplicationMapper">
+    
+    <resultMap type="LoanApplication" id="LoanApplicationResult">
+        <result property="loanApplicationId"    column="loan_application_id"    />
+        <result property="loanApplicationNumber"    column="loan_application_number"    />
+        <result property="applicationAmount"    column="application_amount"    />
+        <result property="applicationBank"    column="application_bank"    />
+        <result property="usagePeriod"    column="usage_period"    />
+        <result property="purposeFunds"    column="purpose_funds"    />
+        <result property="repaymentSource"    column="repayment_source"    />
+        <result property="enterpriseName"    column="enterprise_name"    />
+        <result property="categoryType"    column="category_type"    />
+        <result property="isMake"    column="is_make"    />
+        <result property="isNew"    column="is_new"    />
+        <result property="isSmall"    column="is_small"    />
+        <result property="isDuty"    column="is_duty"    />
+        <result property="companyIntroduction"    column="company_introduction"    />
+        <result property="customerType"    column="customer_type"    />
+        <result property="corporationFront"    column="corporation_front"    />
+        <result property="corporationBack"    column="corporation_back"    />
+        <result property="corporationName"    column="corporation_name"    />
+        <result property="corporationIdCard"    column="corporation_id_card"    />
+        <result property="corporationPhone"    column="corporation_phone"    />
+        <result property="corporationAddress"    column="corporation_address"    />
+        <result property="corporationExpirationDate"    column="corporation_expiration_date"    />
+        <result property="familyPopulation"    column="family_population"    />
+        <result property="corporationJob"    column="corporation_job"    />
+        <result property="isLoan"    column="is_loan"    />
+        <result property="receivablePay"    column="receivable_pay"    />
+        <result property="businessSituation"    column="business_situation"    />
+        <result property="businessEfficiency"    column="business_efficiency"    />
+        <result property="corporationMaritalStatus"    column="corporation_marital_status"    />
+        <result property="spouseFront"    column="spouse_front"    />
+        <result property="spouseBack"    column="spouse_back"    />
+        <result property="spouseName"    column="spouse_name"    />
+        <result property="spouseIdCard"    column="spouse_id_card"    />
+        <result property="spousePhone"    column="spouse_phone"    />
+        <result property="guaranteeType"    column="guarantee_type"    />
+        <result property="guaranteeFront"    column="guarantee_front"    />
+        <result property="guaranteeBack"    column="guarantee_back"    />
+        <result property="guaranteeName"    column="guarantee_name"    />
+        <result property="guaranteeIdCard"    column="guarantee_id_card"    />
+        <result property="guaranteePhone"    column="guarantee_phone"    />
+        <result property="guaranteeMaritalStatus"    column="guarantee_marital_status"    />
+        <result property="guaranteeSpouseFront"    column="guarantee_spouse_front"    />
+        <result property="guaranteeSpouseBack"    column="guarantee_spouse_back"    />
+        <result property="guaranteeSpouseName"    column="guarantee_spouse_name"    />
+        <result property="guaranteeSpouseIdCard"    column="guarantee_spouse_id_card"    />
+        <result property="guaranteeSpousePhone"    column="guarantee_spouse_phone"    />
+        <result property="userId"    column="user_id"    />
+        <result property="idCard"    column="id_card"    />
+        <result property="applicationTime"    column="application_time"    />
+        <result property="fileTime"    column="file_time"    />
+        <result property="loanSchedule"    column="loan_schedule"    />
+        <result property="auditSchedule"    column="audit_schedule"    />
+        <result property="auditType"    column="audit_type"    />
+        <result property="loanApplicationType"    column="loan_application_type"    />
+        <result property="aUserId"    column="a_user_id"    />
+        <result property="aUserName"    column="a_user_name"    />
+        <result property="bUserId"    column="b_user_id"    />
+        <result property="bUserName"    column="b_user_name"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectLoanApplicationVo">
+        select loan_application_id, loan_application_number, application_amount, application_bank, usage_period, purpose_funds, repayment_source, enterprise_name, category_type, is_make, is_new, is_small, is_duty, company_introduction, customer_type, corporation_front, corporation_back, corporation_name, corporation_id_card, corporation_phone,corporation_address,corporation_expiration_date, family_population, corporation_job, is_loan, receivable_pay, business_situation, business_efficiency, corporation_marital_status, spouse_front, spouse_back, spouse_name, spouse_id_card, spouse_phone, guarantee_type, guarantee_front, guarantee_back, guarantee_name, guarantee_id_card, guarantee_phone, guarantee_marital_status, guarantee_spouse_front, guarantee_spouse_back, guarantee_spouse_name, guarantee_spouse_id_card, guarantee_spouse_phone, user_id, id_card, application_time, file_time, loan_schedule, audit_schedule, audit_type, loan_application_type, a_user_id, a_user_name, b_user_id, b_user_name, create_by, create_time, update_by, update_time, remark from loan_application
+    </sql>
+
+    <select id="selectLoanApplicationList" parameterType="LoanApplication" resultMap="LoanApplicationResult">
+        <include refid="selectLoanApplicationVo"/>
+        <where>  
+            <if test="applicationAmount != null "> and application_amount = #{applicationAmount}</if>
+            <if test="applicationBank != null  and applicationBank != ''"> and application_bank = #{applicationBank}</if>
+            <if test="usagePeriod != null  and usagePeriod != ''"> and usage_period = #{usagePeriod}</if>
+            <if test="purposeFunds != null  and purposeFunds != ''"> and purpose_funds = #{purposeFunds}</if>
+            <if test="repaymentSource != null  and repaymentSource != ''"> and repayment_source = #{repaymentSource}</if>
+            <if test="enterpriseName != null  and enterpriseName != ''"> and enterprise_name like concat('%', #{enterpriseName}, '%')</if>
+            <if test="categoryType != null  and categoryType != ''"> and category_type = #{categoryType}</if>
+            <if test="isMake != null  and isMake != ''"> and is_make = #{isMake}</if>
+            <if test="isNew != null  and isNew != ''"> and is_new = #{isNew}</if>
+            <if test="isSmall != null  and isSmall != ''"> and is_small = #{isSmall}</if>
+            <if test="isDuty != null  and isDuty != ''"> and is_duty = #{isDuty}</if>
+            <if test="companyIntroduction != null  and companyIntroduction != ''"> and company_introduction = #{companyIntroduction}</if>
+            <if test="customerType != null  and customerType != ''"> and customer_type = #{customerType}</if>
+            <if test="corporationFront != null  and corporationFront != ''"> and corporation_front = #{corporationFront}</if>
+            <if test="corporationBack != null  and corporationBack != ''"> and corporation_back = #{corporationBack}</if>
+            <if test="corporationName != null  and corporationName != ''"> and corporation_name like concat('%', #{corporationName}, '%')</if>
+            <if test="corporationIdCard != null  and corporationIdCard != ''"> and corporation_id_card = #{corporationIdCard}</if>
+            <if test="corporationPhone != null  and corporationPhone != ''"> and corporation_phone = #{corporationPhone}</if>
+            <if test="familyPopulation != null  and familyPopulation != ''"> and family_population = #{familyPopulation}</if>
+            <if test="corporationJob != null  and corporationJob != ''"> and corporation_job = #{corporationJob}</if>
+            <if test="isLoan != null  and isLoan != ''"> and is_loan = #{isLoan}</if>
+            <if test="receivablePay != null  and receivablePay != ''"> and receivable_pay = #{receivablePay}</if>
+            <if test="businessSituation != null  and businessSituation != ''"> and business_situation = #{businessSituation}</if>
+            <if test="businessEfficiency != null  and businessEfficiency != ''"> and business_efficiency = #{businessEfficiency}</if>
+            <if test="corporationMaritalStatus != null  and corporationMaritalStatus != ''"> and corporation_marital_status = #{corporationMaritalStatus}</if>
+            <if test="spouseFront != null  and spouseFront != ''"> and spouse_front = #{spouseFront}</if>
+            <if test="spouseBack != null  and spouseBack != ''"> and spouse_back = #{spouseBack}</if>
+            <if test="spouseName != null  and spouseName != ''"> and spouse_name like concat('%', #{spouseName}, '%')</if>
+            <if test="spouseIdCard != null  and spouseIdCard != ''"> and spouse_id_card = #{spouseIdCard}</if>
+            <if test="spousePhone != null  and spousePhone != ''"> and spouse_phone = #{spousePhone}</if>
+            <if test="guaranteeType != null  and guaranteeType != ''"> and guarantee_type = #{guaranteeType}</if>
+            <if test="guaranteeFront != null  and guaranteeFront != ''"> and guarantee_front = #{guaranteeFront}</if>
+            <if test="guaranteeBack != null  and guaranteeBack != ''"> and guarantee_back = #{guaranteeBack}</if>
+            <if test="guaranteeName != null  and guaranteeName != ''"> and guarantee_name like concat('%', #{guaranteeName}, '%')</if>
+            <if test="guaranteeIdCard != null  and guaranteeIdCard != ''"> and guarantee_id_card = #{guaranteeIdCard}</if>
+            <if test="guaranteePhone != null  and guaranteePhone != ''"> and guarantee_phone = #{guaranteePhone}</if>
+            <if test="guaranteeMaritalStatus != null  and guaranteeMaritalStatus != ''"> and guarantee_marital_status = #{guaranteeMaritalStatus}</if>
+            <if test="guaranteeSpouseFront != null  and guaranteeSpouseFront != ''"> and guarantee_spouse_front = #{guaranteeSpouseFront}</if>
+            <if test="guaranteeSpouseBack != null  and guaranteeSpouseBack != ''"> and guarantee_spouse_back = #{guaranteeSpouseBack}</if>
+            <if test="guaranteeSpouseName != null  and guaranteeSpouseName != ''"> and guarantee_spouse_name like concat('%', #{guaranteeSpouseName}, '%')</if>
+            <if test="guaranteeSpouseIdCard != null  and guaranteeSpouseIdCard != ''"> and guarantee_spouse_id_card = #{guaranteeSpouseIdCard}</if>
+            <if test="guaranteeSpousePhone != null  and guaranteeSpousePhone != ''"> and guarantee_spouse_phone = #{guaranteeSpousePhone}</if>
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="idCard != null  and idCard != ''"> and id_card = #{idCard}</if>
+            <if test="applicationTime != null "> and application_time = #{applicationTime}</if>
+            <if test="fileTime != null "> and file_time = #{fileTime}</if>
+            <if test="loanSchedule != null  and loanSchedule != ''"> and loan_schedule = #{loanSchedule}</if>
+            <if test="auditSchedule != null  and auditSchedule != ''"> and audit_schedule = #{auditSchedule}</if>
+            <if test="auditType != null  and auditType != ''"> and audit_type = #{auditType}</if>
+            <if test="loanApplicationType != null  and loanApplicationType != ''"> and loan_application_type = #{loanApplicationType}</if>
+            <if test="aUserId != null "> and a_user_id = #{aUserId}</if>
+            <if test="aUserName != null "> and a_user_name like concat('%', #{aUserName}, '%')</if>
+            <if test="bUserId != null "> and b_user_id = #{bUserId}</if>
+            <if test="bUserName != null "> and b_user_name like concat('%', #{bUserName}, '%')</if>
+        </where>
+        order by create_time
+    </select>
+    
+    <select id="selectLoanApplicationByLoanApplicationId" parameterType="Long" resultMap="LoanApplicationResult">
+        <include refid="selectLoanApplicationVo"/>
+        where loan_application_id = #{loanApplicationId}
+    </select>
+        
+    <insert id="insertLoanApplication" parameterType="LoanApplication" useGeneratedKeys="true" keyProperty="loanApplicationId">
+        insert into loan_application
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="loanApplicationNumber != null">loan_application_number,</if>
+            <if test="applicationAmount != null">application_amount,</if>
+            <if test="applicationBank != null and applicationBank != ''">application_bank,</if>
+            <if test="usagePeriod != null and usagePeriod != ''">usage_period,</if>
+            <if test="purposeFunds != null and purposeFunds != ''">purpose_funds,</if>
+            <if test="repaymentSource != null and repaymentSource != ''">repayment_source,</if>
+            <if test="enterpriseName != null and enterpriseName != ''">enterprise_name,</if>
+            <if test="categoryType != null and categoryType != ''">category_type,</if>
+            <if test="isMake != null">is_make,</if>
+            <if test="isNew != null">is_new,</if>
+            <if test="isSmall != null">is_small,</if>
+            <if test="isDuty != null">is_duty,</if>
+            <if test="companyIntroduction != null">company_introduction,</if>
+            <if test="customerType != null and customerType != ''">customer_type,</if>
+            <if test="corporationFront != null and corporationFront != ''">corporation_front,</if>
+            <if test="corporationBack != null and corporationBack != ''">corporation_back,</if>
+            <if test="corporationName != null and corporationName != ''">corporation_name,</if>
+            <if test="corporationIdCard != null and corporationIdCard != ''">corporation_id_card,</if>
+            <if test="corporationPhone != null and corporationPhone != ''">corporation_phone,</if>
+            <if test="corporationAddress != null and corporationAddress != ''">corporation_address,</if>
+            <if test="corporationExpirationDate != null and corporationExpirationDate != ''">corporation_expiration_date,</if>
+            <if test="familyPopulation != null and familyPopulation != ''">family_population,</if>
+            <if test="corporationJob != null and corporationJob != ''">corporation_job,</if>
+            <if test="isLoan != null">is_loan,</if>
+            <if test="receivablePay != null">receivable_pay,</if>
+            <if test="businessSituation != null">business_situation,</if>
+            <if test="businessEfficiency != null">business_efficiency,</if>
+            <if test="corporationMaritalStatus != null">corporation_marital_status,</if>
+            <if test="spouseFront != null and spouseFront != ''">spouse_front,</if>
+            <if test="spouseBack != null and spouseBack != ''">spouse_back,</if>
+            <if test="spouseName != null and spouseName != ''">spouse_name,</if>
+            <if test="spouseIdCard != null and spouseIdCard != ''">spouse_id_card,</if>
+            <if test="spousePhone != null and spousePhone != ''">spouse_phone,</if>
+            <if test="guaranteeType != null and guaranteeType != ''">guarantee_type,</if>
+            <if test="guaranteeFront != null and guaranteeFront != ''">guarantee_front,</if>
+            <if test="guaranteeBack != null and guaranteeBack != ''">guarantee_back,</if>
+            <if test="guaranteeName != null and guaranteeName != ''">guarantee_name,</if>
+            <if test="guaranteeIdCard != null and guaranteeIdCard != ''">guarantee_id_card,</if>
+            <if test="guaranteePhone != null and guaranteePhone != ''">guarantee_phone,</if>
+            <if test="guaranteeMaritalStatus != null">guarantee_marital_status,</if>
+            <if test="guaranteeSpouseFront != null and guaranteeSpouseFront != ''">guarantee_spouse_front,</if>
+            <if test="guaranteeSpouseBack != null and guaranteeSpouseBack != ''">guarantee_spouse_back,</if>
+            <if test="guaranteeSpouseName != null and guaranteeSpouseName != ''">guarantee_spouse_name,</if>
+            <if test="guaranteeSpouseIdCard != null and guaranteeSpouseIdCard != ''">guarantee_spouse_id_card,</if>
+            <if test="guaranteeSpousePhone != null and guaranteeSpousePhone != ''">guarantee_spouse_phone,</if>
+            <if test="userId != null">user_id,</if>
+            <if test="idCard != null">id_card,</if>
+            <if test="applicationTime != null">application_time,</if>
+            <if test="fileTime != null">file_time,</if>
+            <if test="loanSchedule != null and loanSchedule != ''">loan_schedule,</if>
+            <if test="auditSchedule != null and auditSchedule != ''">audit_schedule,</if>
+            <if test="auditType != null and auditType != ''">audit_type,</if>
+            <if test="loanApplicationType != null and loanApplicationType != ''">loan_application_type,</if>
+            <if test="aUserId != null">a_user_id,</if>
+            <if test="aUserName != null">a_user_name,</if>
+            <if test="bUserId != null">b_user_id,</if>
+            <if test="bUserName != null">b_user_name,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="loanApplicationNumber != null">#{loanApplicationNumber},</if>
+            <if test="applicationAmount != null">#{applicationAmount},</if>
+            <if test="applicationBank != null and applicationBank != ''">#{applicationBank},</if>
+            <if test="usagePeriod != null and usagePeriod != ''">#{usagePeriod},</if>
+            <if test="purposeFunds != null and purposeFunds != ''">#{purposeFunds},</if>
+            <if test="repaymentSource != null and repaymentSource != ''">#{repaymentSource},</if>
+            <if test="enterpriseName != null and enterpriseName != ''">#{enterpriseName},</if>
+            <if test="categoryType != null and categoryType != ''">#{categoryType},</if>
+            <if test="isMake != null">#{isMake},</if>
+            <if test="isNew != null">#{isNew},</if>
+            <if test="isSmall != null">#{isSmall},</if>
+            <if test="isDuty != null">#{isDuty},</if>
+            <if test="companyIntroduction != null">#{companyIntroduction},</if>
+            <if test="customerType != null and customerType != ''">#{customerType},</if>
+            <if test="corporationFront != null and corporationFront != ''">#{corporationFront},</if>
+            <if test="corporationBack != null and corporationBack != ''">#{corporationBack},</if>
+            <if test="corporationName != null and corporationName != ''">#{corporationName},</if>
+            <if test="corporationIdCard != null and corporationIdCard != ''">#{corporationIdCard},</if>
+            <if test="corporationPhone != null and corporationPhone != ''">#{corporationPhone},</if>
+            <if test="corporationAddress != null and corporationAddress != ''">#{corporationAddress},</if>
+            <if test="corporationExpirationDate != null and corporationExpirationDate != ''">#{corporationExpirationDate},</if>
+            <if test="familyPopulation != null and familyPopulation != ''">#{familyPopulation},</if>
+            <if test="corporationJob != null and corporationJob != ''">#{corporationJob},</if>
+            <if test="isLoan != null">#{isLoan},</if>
+            <if test="receivablePay != null">#{receivablePay},</if>
+            <if test="businessSituation != null">#{businessSituation},</if>
+            <if test="businessEfficiency != null">#{businessEfficiency},</if>
+            <if test="corporationMaritalStatus != null">#{corporationMaritalStatus},</if>
+            <if test="spouseFront != null and spouseFront != ''">#{spouseFront},</if>
+            <if test="spouseBack != null and spouseBack != ''">#{spouseBack},</if>
+            <if test="spouseName != null and spouseName != ''">#{spouseName},</if>
+            <if test="spouseIdCard != null and spouseIdCard != ''">#{spouseIdCard},</if>
+            <if test="spousePhone != null and spousePhone != ''">#{spousePhone},</if>
+            <if test="guaranteeType != null and guaranteeType != ''">#{guaranteeType},</if>
+            <if test="guaranteeFront != null and guaranteeFront != ''">#{guaranteeFront},</if>
+            <if test="guaranteeBack != null and guaranteeBack != ''">#{guaranteeBack},</if>
+            <if test="guaranteeName != null and guaranteeName != ''">#{guaranteeName},</if>
+            <if test="guaranteeIdCard != null and guaranteeIdCard != ''">#{guaranteeIdCard},</if>
+            <if test="guaranteePhone != null and guaranteePhone != ''">#{guaranteePhone},</if>
+            <if test="guaranteeMaritalStatus != null">#{guaranteeMaritalStatus},</if>
+            <if test="guaranteeSpouseFront != null and guaranteeSpouseFront != ''">#{guaranteeSpouseFront},</if>
+            <if test="guaranteeSpouseBack != null and guaranteeSpouseBack != ''">#{guaranteeSpouseBack},</if>
+            <if test="guaranteeSpouseName != null and guaranteeSpouseName != ''">#{guaranteeSpouseName},</if>
+            <if test="guaranteeSpouseIdCard != null and guaranteeSpouseIdCard != ''">#{guaranteeSpouseIdCard},</if>
+            <if test="guaranteeSpousePhone != null and guaranteeSpousePhone != ''">#{guaranteeSpousePhone},</if>
+            <if test="userId != null">#{userId},</if>
+            <if test="idCard != null">#{idCard},</if>
+            <if test="applicationTime != null">#{applicationTime},</if>
+            <if test="fileTime != null">#{fileTime},</if>
+            <if test="loanSchedule != null and loanSchedule != ''">#{loanSchedule},</if>
+            <if test="auditSchedule != null and auditSchedule != ''">#{auditSchedule},</if>
+            <if test="auditType != null and auditType != ''">#{auditType},</if>
+            <if test="loanApplicationType != null and loanApplicationType != ''">#{loanApplicationType},</if>
+            <if test="aUserId != null">#{aUserId},</if>
+            <if test="aUserName != null">#{aUserName},</if>
+            <if test="bUserId != null">#{bUserId},</if>
+            <if test="bUserName != null">#{bUserName},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateLoanApplication" parameterType="LoanApplication">
+        update loan_application
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="loanApplicationNumber != null">loan_application_number = #{loanApplicationNumber},</if>
+            <if test="applicationAmount != null">application_amount = #{applicationAmount},</if>
+            <if test="applicationBank != null and applicationBank != ''">application_bank = #{applicationBank},</if>
+            <if test="usagePeriod != null and usagePeriod != ''">usage_period = #{usagePeriod},</if>
+            <if test="purposeFunds != null and purposeFunds != ''">purpose_funds = #{purposeFunds},</if>
+            <if test="repaymentSource != null and repaymentSource != ''">repayment_source = #{repaymentSource},</if>
+            <if test="enterpriseName != null and enterpriseName != ''">enterprise_name = #{enterpriseName},</if>
+            <if test="categoryType != null and categoryType != ''">category_type = #{categoryType},</if>
+            <if test="isMake != null">is_make = #{isMake},</if>
+            <if test="isNew != null">is_new = #{isNew},</if>
+            <if test="isSmall != null">is_small = #{isSmall},</if>
+            <if test="isDuty != null">is_duty = #{isDuty},</if>
+            <if test="companyIntroduction != null">company_introduction = #{companyIntroduction},</if>
+            <if test="customerType != null and customerType != ''">customer_type = #{customerType},</if>
+            <if test="corporationFront != null and corporationFront != ''">corporation_front = #{corporationFront},</if>
+            <if test="corporationBack != null and corporationBack != ''">corporation_back = #{corporationBack},</if>
+            <if test="corporationName != null and corporationName != ''">corporation_name = #{corporationName},</if>
+            <if test="corporationIdCard != null and corporationIdCard != ''">corporation_id_card = #{corporationIdCard},</if>
+            <if test="corporationPhone != null and corporationPhone != ''">corporation_phone = #{corporationPhone},</if>
+            <if test="corporationAddress != null and corporationAddress != ''">corporation_address = #{corporationAddress},</if>
+            <if test="corporationExpirationDate != null and corporationExpirationDate != ''">corporation_expiration_date = #{corporationExpirationDate},</if>
+            <if test="familyPopulation != null and familyPopulation != ''">family_population = #{familyPopulation},</if>
+            <if test="corporationJob != null and corporationJob != ''">corporation_job = #{corporationJob},</if>
+            <if test="isLoan != null">is_loan = #{isLoan},</if>
+            <if test="receivablePay != null">receivable_pay = #{receivablePay},</if>
+            <if test="businessSituation != null">business_situation = #{businessSituation},</if>
+            <if test="businessEfficiency != null">business_efficiency = #{businessEfficiency},</if>
+            <if test="corporationMaritalStatus != null">corporation_marital_status = #{corporationMaritalStatus},</if>
+            <if test="spouseFront != null and spouseFront != ''">spouse_front = #{spouseFront},</if>
+            <if test="spouseBack != null and spouseBack != ''">spouse_back = #{spouseBack},</if>
+            <if test="spouseName != null and spouseName != ''">spouse_name = #{spouseName},</if>
+            <if test="spouseIdCard != null and spouseIdCard != ''">spouse_id_card = #{spouseIdCard},</if>
+            <if test="spousePhone != null and spousePhone != ''">spouse_phone = #{spousePhone},</if>
+            <if test="guaranteeType != null and guaranteeType != ''">guarantee_type = #{guaranteeType},</if>
+            <if test="guaranteeFront != null and guaranteeFront != ''">guarantee_front = #{guaranteeFront},</if>
+            <if test="guaranteeBack != null and guaranteeBack != ''">guarantee_back = #{guaranteeBack},</if>
+            <if test="guaranteeName != null and guaranteeName != ''">guarantee_name = #{guaranteeName},</if>
+            <if test="guaranteeIdCard != null and guaranteeIdCard != ''">guarantee_id_card = #{guaranteeIdCard},</if>
+            <if test="guaranteePhone != null and guaranteePhone != ''">guarantee_phone = #{guaranteePhone},</if>
+            <if test="guaranteeMaritalStatus != null">guarantee_marital_status = #{guaranteeMaritalStatus},</if>
+            <if test="guaranteeSpouseFront != null and guaranteeSpouseFront != ''">guarantee_spouse_front = #{guaranteeSpouseFront},</if>
+            <if test="guaranteeSpouseBack != null and guaranteeSpouseBack != ''">guarantee_spouse_back = #{guaranteeSpouseBack},</if>
+            <if test="guaranteeSpouseName != null and guaranteeSpouseName != ''">guarantee_spouse_name = #{guaranteeSpouseName},</if>
+            <if test="guaranteeSpouseIdCard != null and guaranteeSpouseIdCard != ''">guarantee_spouse_id_card = #{guaranteeSpouseIdCard},</if>
+            <if test="guaranteeSpousePhone != null and guaranteeSpousePhone != ''">guarantee_spouse_phone = #{guaranteeSpousePhone},</if>
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="idCard != null">id_card = #{idCard},</if>
+            <if test="applicationTime != null">application_time = #{applicationTime},</if>
+            <if test="fileTime != null">file_time = #{fileTime},</if>
+            <if test="loanSchedule != null and loanSchedule != ''">loan_schedule = #{loanSchedule},</if>
+            <if test="auditSchedule != null and auditSchedule != ''">audit_schedule = #{auditSchedule},</if>
+            <if test="auditType != null and auditType != ''">audit_type = #{auditType},</if>
+            <if test="loanApplicationType != null and loanApplicationType != ''">loan_application_type = #{loanApplicationType},</if>
+            <if test="aUserId != null">a_user_id = #{aUserId},</if>
+            <if test="aUserName != null">a_user_name = #{aUserName},</if>
+            <if test="bUserId != null">b_user_id = #{bUserId},</if>
+            <if test="bUserName != null">b_user_name = #{bUserName},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where loan_application_id = #{loanApplicationId}
+    </update>
+
+    <delete id="deleteLoanApplicationByLoanApplicationId" parameterType="Long">
+        delete from loan_application where loan_application_id = #{loanApplicationId}
+    </delete>
+
+    <delete id="deleteLoanApplicationByLoanApplicationIds" parameterType="String">
+        delete from loan_application where loan_application_id in 
+        <foreach item="loanApplicationId" collection="array" open="(" separator="," close=")">
+            #{loanApplicationId}
+        </foreach>
+    </delete>
+</mapper>

+ 102 - 0
ruoyi-system/src/main/resources/mapper/system/LoanScheduleMapper.xml

@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.LoanScheduleMapper">
+    
+    <resultMap type="LoanSchedule" id="LoanScheduleResult">
+        <result property="loanScheduleId"    column="loan_schedule_id"    />
+        <result property="loanApplicationId"    column="loan_application_id"    />
+        <result property="loanApplicationNumber"    column="loan_application_number"    />
+        <result property="loanScheduleName"    column="loan_schedule_name"    />
+        <result property="loanScheduleValue"    column="loan_schedule_value"    />
+        <result property="loanScheduleScore"    column="loan_schedule_score"    />
+        <result property="loanScheduleTime"    column="loan_schedule_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectLoanScheduleVo">
+        select loan_schedule_id, loan_application_id, loan_application_number, loan_schedule_name, loan_schedule_value, loan_schedule_score, loan_schedule_time, create_by, create_time, update_by, update_time, remark from loan_schedule
+    </sql>
+
+    <select id="selectLoanScheduleList" parameterType="LoanSchedule" resultMap="LoanScheduleResult">
+        <include refid="selectLoanScheduleVo"/>
+        <where>  
+            <if test="loanApplicationId != null "> and loan_application_id = #{loanApplicationId}</if>
+            <if test="loanApplicationNumber != null  and loanApplicationNumber != ''"> and loan_application_number = #{loanApplicationNumber}</if>
+            <if test="loanScheduleName != null  and loanScheduleName != ''"> and loan_schedule_name like concat('%', #{loanScheduleName}, '%')</if>
+            <if test="loanScheduleValue != null  and loanScheduleValue != ''"> and loan_schedule_value = #{loanScheduleValue}</if>
+            <if test="loanScheduleScore != null  and loanScheduleScore != ''"> and loan_schedule_score = #{loanScheduleScore}</if>
+            <if test="loanScheduleTime != null "> and loan_schedule_time = #{loanScheduleTime}</if>
+        </where>
+        order by create_time
+    </select>
+    
+    <select id="selectLoanScheduleByLoanScheduleId" parameterType="Long" resultMap="LoanScheduleResult">
+        <include refid="selectLoanScheduleVo"/>
+        where loan_schedule_id = #{loanScheduleId}
+    </select>
+        
+    <insert id="insertLoanSchedule" parameterType="LoanSchedule" useGeneratedKeys="true" keyProperty="loanScheduleId">
+        insert into loan_schedule
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="loanApplicationId != null">loan_application_id,</if>
+            <if test="loanApplicationNumber != null and loanApplicationNumber != ''">loan_application_number,</if>
+            <if test="loanScheduleName != null and loanScheduleName != ''">loan_schedule_name,</if>
+            <if test="loanScheduleValue != null and loanScheduleValue != ''">loan_schedule_value,</if>
+            <if test="loanScheduleScore != null">loan_schedule_score,</if>
+            <if test="loanScheduleTime != null">loan_schedule_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="loanApplicationId != null">#{loanApplicationId},</if>
+            <if test="loanApplicationNumber != null and loanApplicationNumber != ''">#{loanApplicationNumber},</if>
+            <if test="loanScheduleName != null and loanScheduleName != ''">#{loanScheduleName},</if>
+            <if test="loanScheduleValue != null and loanScheduleValue != ''">#{loanScheduleValue},</if>
+            <if test="loanScheduleScore != null">#{loanScheduleScore},</if>
+            <if test="loanScheduleTime != null">#{loanScheduleTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateLoanSchedule" parameterType="LoanSchedule">
+        update loan_schedule
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="loanApplicationId != null">loan_application_id = #{loanApplicationId},</if>
+            <if test="loanApplicationNumber != null and loanApplicationNumber != ''">loan_application_number = #{loanApplicationNumber},</if>
+            <if test="loanScheduleName != null and loanScheduleName != ''">loan_schedule_name = #{loanScheduleName},</if>
+            <if test="loanScheduleValue != null and loanScheduleValue != ''">loan_schedule_value = #{loanScheduleValue},</if>
+            <if test="loanScheduleScore != null">loan_schedule_score = #{loanScheduleScore},</if>
+            <if test="loanScheduleTime != null">loan_schedule_time = #{loanScheduleTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where loan_schedule_id = #{loanScheduleId}
+    </update>
+
+    <delete id="deleteLoanScheduleByLoanScheduleId" parameterType="Long">
+        delete from loan_schedule where loan_schedule_id = #{loanScheduleId}
+    </delete>
+
+    <delete id="deleteLoanScheduleByLoanScheduleIds" parameterType="String">
+        delete from loan_schedule where loan_schedule_id in 
+        <foreach item="loanScheduleId" collection="array" open="(" separator="," close=")">
+            #{loanScheduleId}
+        </foreach>
+    </delete>
+</mapper>

+ 112 - 0
ruoyi-system/src/main/resources/mapper/system/ReviewCommentsMapper.xml

@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.ReviewCommentsMapper">
+    
+    <resultMap type="ReviewComments" id="ReviewCommentsResult">
+        <result property="reviewCommentsId"    column="review_comments_id"    />
+        <result property="loanApplicationId"    column="loan_application_id"    />
+        <result property="loanApplicationNumber"    column="loan_application_number"    />
+        <result property="auditSchedule"    column="audit_schedule"    />
+        <result property="auditType"    column="audit_type"    />
+        <result property="auditView"    column="audit_view"    />
+        <result property="auditTime"    column="audit_time"    />
+        <result property="fjUrl"    column="fj_url"    />
+        <result property="imageUrl"    column="image_url"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectReviewCommentsVo">
+        select review_comments_id, loan_application_id, loan_application_number, audit_schedule, audit_type, audit_view, audit_time, fj_url, image_url, create_by, create_time, update_by, update_time, remark from review_comments
+    </sql>
+
+    <select id="selectReviewCommentsList" parameterType="ReviewComments" resultMap="ReviewCommentsResult">
+        <include refid="selectReviewCommentsVo"/>
+        <where>  
+            <if test="loanApplicationId != null "> and loan_application_id = #{loanApplicationId}</if>
+            <if test="loanApplicationNumber != null  and loanApplicationNumber != ''"> and loan_application_number = #{loanApplicationNumber}</if>
+            <if test="auditSchedule != null  and auditSchedule != ''"> and audit_schedule = #{auditSchedule}</if>
+            <if test="auditType != null  and auditType != ''"> and audit_type = #{auditType}</if>
+            <if test="auditView != null  and auditView != ''"> and audit_view = #{auditView}</if>
+            <if test="auditTime != null "> and audit_time = #{auditTime}</if>
+            <if test="fjUrl != null  and fjUrl != ''"> and fj_url = #{fjUrl}</if>
+            <if test="imageUrl != null  and imageUrl != ''"> and image_url = #{imageUrl}</if>
+        </where>
+        order by create_time
+    </select>
+    
+    <select id="selectReviewCommentsByReviewCommentsId" parameterType="Long" resultMap="ReviewCommentsResult">
+        <include refid="selectReviewCommentsVo"/>
+        where review_comments_id = #{reviewCommentsId}
+    </select>
+        
+    <insert id="insertReviewComments" parameterType="ReviewComments" useGeneratedKeys="true" keyProperty="reviewCommentsId">
+        insert into review_comments
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="loanApplicationId != null">loan_application_id,</if>
+            <if test="loanApplicationNumber != null and loanApplicationNumber != ''">loan_application_number,</if>
+            <if test="auditSchedule != null and auditSchedule != ''">audit_schedule,</if>
+            <if test="auditType != null and auditType != ''">audit_type,</if>
+            <if test="auditView != null">audit_view,</if>
+            <if test="auditTime != null">audit_time,</if>
+            <if test="fjUrl != null">fj_url,</if>
+            <if test="imageUrl != null">image_url,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="loanApplicationId != null">#{loanApplicationId},</if>
+            <if test="loanApplicationNumber != null and loanApplicationNumber != ''">#{loanApplicationNumber},</if>
+            <if test="auditSchedule != null and auditSchedule != ''">#{auditSchedule},</if>
+            <if test="auditType != null and auditType != ''">#{auditType},</if>
+            <if test="auditView != null">#{auditView},</if>
+            <if test="auditTime != null">#{auditTime},</if>
+            <if test="fjUrl != null">#{fjUrl},</if>
+            <if test="imageUrl != null">#{imageUrl},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateReviewComments" parameterType="ReviewComments">
+        update review_comments
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="loanApplicationId != null">loan_application_id = #{loanApplicationId},</if>
+            <if test="loanApplicationNumber != null and loanApplicationNumber != ''">loan_application_number = #{loanApplicationNumber},</if>
+            <if test="auditSchedule != null and auditSchedule != ''">audit_schedule = #{auditSchedule},</if>
+            <if test="auditType != null and auditType != ''">audit_type = #{auditType},</if>
+            <if test="auditView != null">audit_view = #{auditView},</if>
+            <if test="auditTime != null">audit_time = #{auditTime},</if>
+            <if test="fjUrl != null">fj_url = #{fjUrl},</if>
+            <if test="imageUrl != null">image_url = #{imageUrl},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where review_comments_id = #{reviewCommentsId}
+    </update>
+
+    <delete id="deleteReviewCommentsByReviewCommentsId" parameterType="Long">
+        delete from review_comments where review_comments_id = #{reviewCommentsId}
+    </delete>
+
+    <delete id="deleteReviewCommentsByReviewCommentsIds" parameterType="String">
+        delete from review_comments where review_comments_id in 
+        <foreach item="reviewCommentsId" collection="array" open="(" separator="," close=")">
+            #{reviewCommentsId}
+        </foreach>
+    </delete>
+</mapper>

+ 136 - 0
ruoyi-system/src/main/resources/mapper/system/ShareholderFjMapper.xml

@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.ShareholderFjMapper">
+    
+    <resultMap type="ShareholderFj" id="ShareholderFjResult">
+        <result property="shareholderFjId"    column="shareholder_fj_id"    />
+        <result property="loanApplicationId"    column="loan_application_id"    />
+        <result property="loanApplicationNumber"    column="loan_application_number"    />
+        <result property="shareholderIdCard"    column="shareholder_id_card"    />
+        <result property="shareholderName"    column="shareholder_name"    />
+        <result property="shareholderFrontName"    column="shareholder_front_name"    />
+        <result property="shareholderFrontUrl"    column="shareholder_front_url"    />
+        <result property="shareholderBackName"    column="shareholder_back_name"    />
+        <result property="shareholderBackUrl"    column="shareholder_back_url"    />
+        <result property="shareholderZxName"    column="shareholder_zx_name"    />
+        <result property="shareholderZxUrl"    column="shareholder_zx_url"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </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, create_by, create_time, update_by, update_time, remark from shareholder_fj
+    </sql>
+
+    <select id="selectShareholderFjList" parameterType="ShareholderFj" resultMap="ShareholderFjResult">
+        <include refid="selectShareholderFjVo"/>
+        <where>  
+            <if test="loanApplicationId != null "> and loan_application_id = #{loanApplicationId}</if>
+            <if test="loanApplicationNumber != null  and loanApplicationNumber != ''"> and loan_application_number = #{loanApplicationNumber}</if>
+            <if test="shareholderIdCard != null  and shareholderIdCard != ''"> and shareholder_id_card = #{shareholderIdCard}</if>
+            <if test="shareholderName != null  and shareholderName != ''"> and shareholder_name like concat('%', #{shareholderName}, '%')</if>
+            <if test="shareholderFrontUrl != null  and shareholderFrontUrl != ''"> and shareholder_front_url = #{shareholderFrontUrl}</if>
+            <if test="shareholderBackUrl != null  and shareholderBackUrl != ''"> and shareholder_back_url = #{shareholderBackUrl}</if>
+            <if test="shareholderZxUrl != null  and shareholderZxUrl != ''"> and shareholder_zx_url = #{shareholderZxUrl}</if>
+        </where>
+        order by create_time
+    </select>
+
+    <select id="selectShareholderFjLoanApplicationId" parameterType="ShareholderFj" resultMap="ShareholderFjResult">
+        <include refid="selectShareholderFjVo"/>
+        <where>
+            <if test="loanApplicationId != null "> and loan_application_id = #{loanApplicationId}</if>
+        </where>
+        order by create_time
+    </select>
+    
+    <select id="selectShareholderFjByShareholderFjId" parameterType="Long" resultMap="ShareholderFjResult">
+        <include refid="selectShareholderFjVo"/>
+        where shareholder_fj_id = #{shareholderFjId}
+    </select>
+        
+    <insert id="insertShareholderFj" parameterType="ShareholderFj" useGeneratedKeys="true" keyProperty="shareholderFjId">
+        insert into shareholder_fj
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="loanApplicationId != null">loan_application_id,</if>
+            <if test="loanApplicationNumber != null and loanApplicationNumber != ''">loan_application_number,</if>
+            <if test="shareholderIdCard != null and shareholderIdCard != ''">shareholder_id_card,</if>
+            <if test="shareholderName != null and shareholderName != ''">shareholder_name,</if>
+            <if test="shareholderFrontName != null and shareholderFrontName != ''">shareholder_front_name,</if>
+            <if test="shareholderFrontUrl != null and shareholderFrontUrl != ''">shareholder_front_url,</if>
+            <if test="shareholderBackName != null and shareholderBackName != ''">shareholder_back_name,</if>
+            <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="createBy != null">create_by,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+            create_time
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="loanApplicationId != null">#{loanApplicationId},</if>
+            <if test="loanApplicationNumber != null and loanApplicationNumber != ''">#{loanApplicationNumber},</if>
+            <if test="shareholderIdCard != null and shareholderIdCard != ''">#{shareholderIdCard},</if>
+            <if test="shareholderName != null and shareholderName != ''">#{shareholderName},</if>
+            <if test="shareholderFrontName != null and shareholderFrontName != ''">#{shareholderFrontName},</if>
+            <if test="shareholderFrontUrl != null and shareholderFrontUrl != ''">#{shareholderFrontUrl},</if>
+            <if test="shareholderBackName != null and shareholderBackName != ''">#{shareholderBackName},</if>
+            <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="createBy != null">#{createBy},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+            sysdate()
+         </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, 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.create_by},sysdate(),#{item.updateBy},#{item.updateTime},#{item.remark})
+        </foreach>
+    </insert>
+
+    <update id="updateShareholderFj" parameterType="ShareholderFj">
+        update shareholder_fj
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="loanApplicationId != null">loan_application_id = #{loanApplicationId},</if>
+            <if test="loanApplicationNumber != null and loanApplicationNumber != ''">loan_application_number = #{loanApplicationNumber},</if>
+            <if test="shareholderIdCard != null and shareholderIdCard != ''">shareholder_id_card = #{shareholderIdCard},</if>
+            <if test="shareholderName != null and shareholderName != ''">shareholder_name = #{shareholderName},</if>
+            <if test="shareholderFrontName != null and shareholderFrontName != ''">shareholder_front_name = #{shareholderFrontName},</if>
+            <if test="shareholderFrontUrl != null and shareholderFrontUrl != ''">shareholder_front_url = #{shareholderFrontUrl},</if>
+            <if test="shareholderBackName != null and shareholderBackName != ''">shareholder_back_name = #{shareholderBackName},</if>
+            <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="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where shareholder_fj_id = #{shareholderFjId}
+    </update>
+
+    <delete id="deleteShareholderFjByShareholderFjId" parameterType="Long">
+        delete from shareholder_fj where shareholder_fj_id = #{shareholderFjId}
+    </delete>
+
+    <delete id="deleteShareholderFjByShareholderFjIds" parameterType="String">
+        delete from shareholder_fj where shareholder_fj_id in 
+        <foreach item="shareholderFjId" collection="array" open="(" separator="," close=")">
+            #{shareholderFjId}
+        </foreach>
+    </delete>
+    <delete id="deleteShareholderFjByLoanApplicationId" parameterType="Long">
+        delete from shareholder_fj where loan_application_id = #{LoanApplicationId}
+    </delete>
+</mapper>

+ 23 - 5
ruoyi-system/src/main/resources/mapper/system/SysUserEnterpriseMapper.xml

@@ -5,6 +5,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 <mapper namespace="com.ruoyi.system.mapper.SysUserEnterpriseMapper">
     
     <resultMap type="SysUserEnterprise" id="SysUserEnterpriseResult">
+        <result property="enterpriseId"    column="enterprise_id"    />
         <result property="userId"    column="user_id"    />
         <result property="idCard"    column="id_card"    />
         <result property="realName"    column="real_name"    />
@@ -16,6 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="registeredCapital"    column="registered_capital"    />
         <result property="establishData"    column="establish_data"    />
         <result property="businessTerm"    column="business_term"    />
+        <result property="businessScope"    column="business_scope"    />
         <result property="imageUrl"    column="image_url"    />
         <result property="delFlag"    column="del_flag"    />
         <result property="createBy"    column="create_by"    />
@@ -26,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectSysUserEnterpriseVo">
-        select user_id, id_card, real_name, credit_code, enterprise_name, enterprise_type, enterprise_address, legal_name, registered_capital, establish_data, business_term, image_url, del_flag, create_by, create_time, update_by, update_time, remark from sys_user_enterprise
+        select enterprise_id,user_id, id_card, real_name, credit_code, enterprise_name, enterprise_type, enterprise_address, legal_name, registered_capital, establish_data, business_term,business_scope, image_url, del_flag, create_by, create_time, update_by, update_time, remark from sys_user_enterprise
     </sql>
 
     <select id="selectSysUserEnterpriseList" parameterType="SysUserEnterprise" resultMap="SysUserEnterpriseResult">
@@ -51,8 +53,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectSysUserEnterpriseVo"/>
         where user_id = #{userId}
     </select>
-        
-    <insert id="insertSysUserEnterprise" parameterType="SysUserEnterprise">
+    <select id="selectSysUserEnterpriseByEnterpriseId" parameterType="Long" resultMap="SysUserEnterpriseResult">
+        <include refid="selectSysUserEnterpriseVo"/>
+        where enterprise_id = #{enterpriseId}
+    </select>
+
+    <insert id="insertSysUserEnterprise" parameterType="SysUserEnterprise" useGeneratedKeys="true" keyProperty="enterpriseId">
         insert into sys_user_enterprise
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="userId != null">user_id,</if>
@@ -66,6 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="registeredCapital != null and registeredCapital != ''">registered_capital,</if>
             <if test="establishData != null and establishData != ''">establish_data,</if>
             <if test="businessTerm != null and businessTerm != ''">business_term,</if>
+            <if test="businessScope != null and businessScope != ''">business_scope,</if>
             <if test="imageUrl != null and imageUrl != ''">image_url,</if>
             <if test="delFlag != null">del_flag,</if>
             <if test="createBy != null">create_by,</if>
@@ -86,6 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="registeredCapital != null and registeredCapital != ''">#{registeredCapital},</if>
             <if test="establishData != null and establishData != ''">#{establishData},</if>
             <if test="businessTerm != null and businessTerm != ''">#{businessTerm},</if>
+            <if test="businessScope != null and businessScope != ''">#{businessScope},</if>
             <if test="imageUrl != null and imageUrl != ''">#{imageUrl},</if>
             <if test="delFlag != null">#{delFlag},</if>
             <if test="createBy != null">#{createBy},</if>
@@ -109,6 +117,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="registeredCapital != null and registeredCapital != ''">registered_capital = #{registeredCapital},</if>
             <if test="establishData != null and establishData != ''">establish_data = #{establishData},</if>
             <if test="businessTerm != null and businessTerm != ''">business_term = #{businessTerm},</if>
+            <if test="businessScope != null and businessScope != ''">business_scope = #{businessScope},</if>
             <if test="imageUrl != null and imageUrl != ''">image_url = #{imageUrl},</if>
             <if test="delFlag != null">del_flag = #{delFlag},</if>
             <if test="createBy != null">create_by = #{createBy},</if>
@@ -117,7 +126,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="remark != null">remark = #{remark},</if>
         </trim>
-        where user_id = #{userId}
+        where enterprise_id = #{enterpriseId}
     </update>
 
     <delete id="deleteSysUserEnterpriseByUserId" parameterType="Long">
@@ -125,9 +134,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <delete id="deleteSysUserEnterpriseByUserIds" parameterType="String">
-        delete from sys_user_enterprise where user_id in 
+        delete from sys_user_enterprise where user_id in
         <foreach item="userId" collection="array" open="(" separator="," close=")">
             #{userId}
         </foreach>
     </delete>
+    <delete id="deleteSysUserEnterpriseByEnterpriseId" parameterType="Long">
+        delete from sys_user_enterprise where enterprise_id = #{enterpriseId}
+    </delete>
+    <delete id="deleteSysUserEnterpriseByEnterpriseIds" parameterType="String">
+        delete from sys_user_enterprise where enterprise_id in
+        <foreach item="enterpriseId" collection="array" open="(" separator="," close=")">
+            #{enterpriseId}
+        </foreach>
+    </delete>
 </mapper>