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.domain.review.ReviewComments; 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 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 list = loanApplicationService.selectLoanApplicationList(loanApplication); ExcelUtil util = new ExcelUtil(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)); } //审核 @PreAuthorize("@ss.hasPermi('system:application:sh')") @PostMapping("/sh") public AjaxResult sh(@RequestBody ReviewComments reviewComments) { return loanApplicationService.sh(reviewComments); } /** * 导出模板附件 */ @PreAuthorize("@ss.hasPermi('system:export:mb')") @Log(title = "导出模板附件", businessType = BusinessType.DELETE) @GetMapping("/export/mb") public AjaxResult exportMb(String type,LoanApplication loanApplication) { return loanApplicationService.exportMb(type,loanApplication); } }