From 0b9c84d41bf83421423632fe0bc8ba161b05be10 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Fri, 12 Jan 2024 10:33:28 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=BE=E6=9C=9F=E5=AF=B9=E8=B4=A6=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DownExcelOverdueBankVo.java | 2 +- .../api/loanoverduebank/ExcelBankVo.java | 21 ++ .../LoanOverdueBankDetailVo.java | 7 + .../loanoverduebank/LoanOverdueBankFeign.java | 14 ++ .../loanoverduebank/ReturnExcelBankVo.java | 19 ++ .../flowable/OverBankApplyDelegateQuery.java | 25 +++ .../LoanOverdueBankDetailsDto.java | 4 +- .../LoanOverdueFinDetailVo.java | 7 + .../loanoverduefin/LoanOverdueFinFeign.java | 11 +- .../flowable/OverFinApplyDelegateQuery.java | 25 +++ .../loanoverduebank/LoanOverdueBankRest.java | 13 ++ .../LoanOverdueBankService.java | 196 +++++++++++++++++- .../LoanOverdueBankDetailsMapper.java | 4 + .../LoanOverdueBankDetailsMapper.xml | 6 + .../LoanOverdueBankDetailsService.java | 5 + .../loanoverduefin/LoanOverdueFinRest.java | 10 +- .../loanoverduefin/LoanOverdueFinService.java | 27 ++- 17 files changed, 374 insertions(+), 22 deletions(-) create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/ExcelBankVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/ReturnExcelBankVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/flowable/OverBankApplyDelegateQuery.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/flowable/OverFinApplyDelegateQuery.java diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/DownExcelOverdueBankVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/DownExcelOverdueBankVo.java index 6a9984eb0e..1e7b151f22 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/DownExcelOverdueBankVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/DownExcelOverdueBankVo.java @@ -12,7 +12,7 @@ import lombok.Data; @Data public class DownExcelOverdueBankVo { - @ExportEntityMap(CnName = "资方合同号", EnName = "bankContractNo") + @ExportEntityMap(CnName = "资方合同编号", EnName = "bankContractNo") private String bankContractNo; @ExportEntityMap(CnName = "期数", EnName = "period") private String period; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/ExcelBankVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/ExcelBankVo.java new file mode 100644 index 0000000000..0cfbc3c7c3 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/ExcelBankVo.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.riskcenter.api.loanoverduebank; + +import com.yxt.common.core.utils.ExportEntityMap; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/12 + **/ +@Data +public class ExcelBankVo { + + @ApiModelProperty("资方合同编号") + private String bankContractNo; + @ApiModelProperty("期数") + private String period; + @ApiModelProperty("资方逾期月还") + private String bankOverdueMoney; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankDetailVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankDetailVo.java index d588783aea..f17652b4cb 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankDetailVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankDetailVo.java @@ -40,4 +40,11 @@ public class LoanOverdueBankDetailVo { @JsonIgnore private String files; + + @ApiModelProperty(value = "任务id") + private String taskId; + @ApiModelProperty(value = "流程实例id") + private String procInstId; + @ApiModelProperty("分公司sid") + private String useOrgSid; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankFeign.java index 1326f09340..453e48c638 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/LoanOverdueBankFeign.java @@ -8,8 +8,11 @@ import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import java.io.IOException; import java.util.List; /** @@ -40,6 +43,12 @@ public interface LoanOverdueBankFeign { @ApiOperation(value = "下载模板") public void downloadExcel(); + + @ApiOperation(value = "导入") + @PostMapping("/getExcelInfo") + ResultBean> getExcelInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request, @RequestParam(value = "useOrgSid") String useOrgSid) throws IOException; + + @ApiOperation("删除/批量删除") @DeleteMapping("/delBySids") ResultBean delBySids(@RequestBody String[] sids); @@ -71,4 +80,9 @@ public interface LoanOverdueBankFeign { @ApiOperation(value = "终止任务") @PostMapping(value = "/breakProcess") public ResultBean breakProcess(@Valid @RequestBody OverdueBankApplyTaskQuery query); + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody OverBankApplyDelegateQuery query); } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/ReturnExcelBankVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/ReturnExcelBankVo.java new file mode 100644 index 0000000000..b93ec59ff7 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/ReturnExcelBankVo.java @@ -0,0 +1,19 @@ +package com.yxt.anrui.riskcenter.api.loanoverduebank; + +import com.yxt.anrui.riskcenter.api.loanoverduefin.ExcelFinVo; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/12 + **/ +@Data +public class ReturnExcelBankVo { + + private String checkInfo; + private List infos = new ArrayList<>(); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/flowable/OverBankApplyDelegateQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/flowable/OverBankApplyDelegateQuery.java new file mode 100644 index 0000000000..f3e101add6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebank/flowable/OverBankApplyDelegateQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loanoverduebank.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/12 + **/ +@Data +public class OverBankApplyDelegateQuery { + + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") +// @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebankdetails/LoanOverdueBankDetailsDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebankdetails/LoanOverdueBankDetailsDto.java index 6f37a22b0f..f55a965382 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebankdetails/LoanOverdueBankDetailsDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduebankdetails/LoanOverdueBankDetailsDto.java @@ -39,8 +39,8 @@ public class LoanOverdueBankDetailsDto { private String overdueMoney; @ApiModelProperty("资方逾期月还") private String bankOverdueMoney; - @ApiModelProperty("资方逾期利息") - private String bankOverdueInterest; + /* @ApiModelProperty("资方逾期利息") + private String bankOverdueInterest;*/ @ApiModelProperty("差异金额") private String diffMoney; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinDetailVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinDetailVo.java index 49aa0340bd..6070f97501 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinDetailVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinDetailVo.java @@ -43,4 +43,11 @@ public class LoanOverdueFinDetailVo { private String orgPath; @JsonIgnore private String files; + + @ApiModelProperty(value = "任务id") + private String taskId; + @ApiModelProperty(value = "流程实例id") + private String procInstId; + + private String useOrgSid; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinFeign.java index e0017fcbb8..30c0dc7623 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/LoanOverdueFinFeign.java @@ -1,9 +1,6 @@ package com.yxt.anrui.riskcenter.api.loanoverduefin; -import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.CompleteDto; -import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeQuery; -import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeVo; -import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyTaskQuery; +import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -82,4 +79,10 @@ public interface LoanOverdueFinFeign { @PostMapping(value = "/breakProcess") public ResultBean breakProcess(@Valid @RequestBody OverdueApplyTaskQuery query); + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody OverFinApplyDelegateQuery query); + + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/flowable/OverFinApplyDelegateQuery.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/flowable/OverFinApplyDelegateQuery.java new file mode 100644 index 0000000000..dc5cad2c3d --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanoverduefin/flowable/OverFinApplyDelegateQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.riskcenter.api.loanoverduefin.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/1/12 + **/ +@Data +public class OverFinApplyDelegateQuery { + + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") +// @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankRest.java index 51208b1214..9068a1c80f 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankRest.java @@ -13,8 +13,11 @@ import com.yxt.common.core.vo.PagerVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; @@ -66,6 +69,11 @@ public class LoanOverdueBankRest implements LoanOverdueBankFeign { ExportExcelUtils.export(fileNameURL, list, DownExcelOverdueBankVo.class, response); } + @Override + public ResultBean> getExcelInfo(MultipartFile file, HttpServletRequest request, String useOrgSid) throws IOException { + return loanOverdueBankService.getExcelInfo(file, request, useOrgSid); + } + @Override public ResultBean delBySids(String[] sids) { return loanOverdueBankService.delAllBySids(sids); @@ -108,4 +116,9 @@ public class LoanOverdueBankRest implements LoanOverdueBankFeign { public ResultBean breakProcess(OverdueBankApplyTaskQuery query) { return loanOverdueBankService.breakProcess(query); } + + @Override + public ResultBean delegate(OverBankApplyDelegateQuery query) { + return loanOverdueBankService.delegate(query); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankService.java index 20a1a1e3f2..640a230a56 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebank/LoanOverdueBankService.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; +import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; import com.yxt.anrui.flowable.api.flow2.FlowFeign; import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; @@ -21,14 +22,14 @@ import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.riskcenter.api.loanoverduebank.*; -import com.yxt.anrui.riskcenter.api.loanoverduebank.flowable.OverdueBankApplyNodeQuery; -import com.yxt.anrui.riskcenter.api.loanoverduebank.flowable.OverdueBankApplyNodeVo; -import com.yxt.anrui.riskcenter.api.loanoverduebank.flowable.OverdueBankApplyTaskQuery; -import com.yxt.anrui.riskcenter.api.loanoverduebank.flowable.SubmitApplyBankDto; +import com.yxt.anrui.riskcenter.api.loanoverduebank.flowable.*; import com.yxt.anrui.riskcenter.api.loanoverduebankdetails.LoanOverdueBankDetailsDto; +import com.yxt.anrui.riskcenter.api.loanoverduefin.ExcelFinVo; import com.yxt.anrui.riskcenter.api.loanoverduefin.LoanOverdueFinVo; +import com.yxt.anrui.riskcenter.api.loanoverduefin.ReturnExcelFinVo; import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetailsDto; +import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo; import com.yxt.anrui.riskcenter.biz.loanoverduebankdetails.LoanOverdueBankDetailsService; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; @@ -40,10 +41,21 @@ import com.yxt.messagecenter.api.message.MessageFeign; import com.yxt.messagecenter.api.message.MessageFlowVo; import com.yxt.messagecenter.api.message.MessageFlowableQuery; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; @@ -603,6 +615,7 @@ public class LoanOverdueBankService extends MybatisBaseService detailsVoList = detailsVoList(useOrgSid, loanOverdueBankDetailVo.getStopDate()); loanOverdueBankDetailVo.setDetailsVoList(detailsVoList); loanOverdueBankDetailVo.setOrgPath(orgPath); + loanOverdueBankDetailVo.setUseOrgSid(useOrgSid); } } else {//编辑初始化 @@ -622,6 +635,9 @@ public class LoanOverdueBankService extends MybatisBaseService> getExcelInfo(MultipartFile file, HttpServletRequest request, String useOrgSid) throws IOException { + ResultBean rb = ResultBean.fireFail(); + String temp = request.getSession().getServletContext().getRealPath(File.separator) + "temp";// 临时目录 + File tempFile = new File(temp); + if (!tempFile.exists()) { + tempFile.mkdirs(); + } + String fileName = file.getOriginalFilename(); + if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { + return rb.fail().setMsg("上传文件不正确"); + } + int[] resultCell = new int[]{0, 1, 2}; + List list = new ArrayList<>(); + List list2 = new ArrayList<>(); + boolean isExcel2003 = true; + if (fileName.matches("^.+\\.(?i)(xlsx)$")) { + isExcel2003 = false; + } + InputStream is = file.getInputStream(); + Workbook wb = null; + if (isExcel2003) { + wb = new HSSFWorkbook(is); + } else { + wb = new XSSFWorkbook(is); + } + Sheet sheet = wb.getSheetAt(0); + ReturnExcelBankVo importReturn = getSheetVal(sheet, resultCell, useOrgSid); + list = importReturn.getInfos(); + if (StringUtils.isNotBlank(importReturn.getCheckInfo())) { + return rb.setMsg(importReturn.getCheckInfo()); + } else { + return rb.success().setData(list).setMsg("成功导入数据,请点击确定按钮"); + } + + } + + private ReturnExcelBankVo getSheetVal(Sheet sheet, int[] resultCell, String useOrgSid) { + ReturnExcelBankVo returnExcelBankVo = new ReturnExcelBankVo(); + List importVoList = new ArrayList<>(); + Set checkWord = new HashSet<>(); + for (int r = 1; r <= sheet.getLastRowNum(); r++) { + Row row = sheet.getRow(r); + if (row == null) { + continue; + } + ExcelBankVo excelBankVo = new ExcelBankVo(); + for (int i = 0; i < row.getPhysicalNumberOfCells(); i++) { + String trim = new String(); + try { + trim = getCellVal(row.getCell(i)).toString().trim(); + if (StringUtils.isBlank(trim)) { + NullPointerException nullPointerException = new NullPointerException(); + } + String temp = getCellVal(row.getCell(i)).toString().trim(); + temp = temp.replace(".0", ""); + for (int j = 0; j < temp.length(); j++) { + if (i == resultCell[j]) { + switch (i) { + case 0: + excelBankVo.setBankContractNo(temp); + break; + case 1: + excelBankVo.setPeriod(temp); + break; + case 2: + excelBankVo.setBankOverdueMoney(temp); + break; + default: + break; + } + + } else { + continue; + } + } + } catch (Exception e) { + if (StringUtils.isBlank(trim)) { + String word = new String(); + switch (i) { + case 0: + word = "资方合同编号"; + break; + case 1: + word = "期数"; + break; + case 2: + word = "资方逾期月还"; + break; + default: + break; + } + continue; + } + + } + + } + importVoList.add(excelBankVo); + + } + if (!importVoList.isEmpty()) { + for (ExcelBankVo excelBankVo : importVoList) { + if (StringUtils.isBlank(excelBankVo.getBankContractNo())) { + checkWord.add("资方合同编号不能为空"); + } + if (StringUtils.isBlank(excelBankVo.getPeriod())) { + checkWord.add("期数不能为空"); + } + if (StringUtils.isBlank(excelBankVo.getBankOverdueMoney())) { + checkWord.add("资方逾期月还不能为空,若无则需填写0"); + } + List loanRepaymentScheduleDetailsVos = loanOverdueBankDetailsService.selectBankContractNo(excelBankVo.getBankContractNo(), useOrgSid); + loanRepaymentScheduleDetailsVos.removeAll(Collections.singleton(null)); + if (loanRepaymentScheduleDetailsVos.isEmpty()) { + if (StringUtils.isNotBlank(excelBankVo.getBankContractNo())) { + checkWord.add("资方合同编号" + excelBankVo.getBankContractNo() + "在还款计划表中不存在"); + break; + } + } + } + } + StringBuffer sbcheck1 = new StringBuffer(); + if (!checkWord.isEmpty()) { + for (String s : checkWord) { + if (StringUtils.isBlank(s)) { + continue; + } + sbcheck1.append(s).append(";"); + } + } + if (sbcheck1.length() > 0) { + sbcheck1.delete(sbcheck1.length() - 1, sbcheck1.length()); + returnExcelBankVo.setCheckInfo(sbcheck1.toString()); + returnExcelBankVo.setInfos(new ArrayList<>()); + return returnExcelBankVo; + } + returnExcelBankVo.setInfos(importVoList); + return returnExcelBankVo; + } + + + public Object getCellVal(Cell cell) { + Object obj = null; + if (cell != null) { + switch (cell.getCellTypeEnum()) { + case BOOLEAN: + obj = cell.getBooleanCellValue(); + break; + case ERROR: + obj = cell.getErrorCellValue(); + break; + case NUMERIC: + obj = cell.getNumericCellValue(); + break; + case STRING: + obj = cell.getStringCellValue(); + break; + default: + break; + } + } + return obj; + } + + public ResultBean delegate(OverBankApplyDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebankdetails/LoanOverdueBankDetailsMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebankdetails/LoanOverdueBankDetailsMapper.java index 4f97783e61..bc623b0cfa 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebankdetails/LoanOverdueBankDetailsMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebankdetails/LoanOverdueBankDetailsMapper.java @@ -3,7 +3,9 @@ package com.yxt.anrui.riskcenter.biz.loanoverduebankdetails; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.yxt.anrui.riskcenter.api.loanoverduebankdetails.LoanOverdueBankDetails; import com.yxt.anrui.riskcenter.api.loanoverduebankdetails.LoanOverdueBankDetailsDto; +import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -17,4 +19,6 @@ public interface LoanOverdueBankDetailsMapper extends BaseMapper selectByMainSid(String sid); + + List selectBankContractNo(@Param("bankContractNo") String bankContractNo, @Param("useOrgSid") String useOrgSid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebankdetails/LoanOverdueBankDetailsMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebankdetails/LoanOverdueBankDetailsMapper.xml index 1cebe1a852..b694bd8ea5 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebankdetails/LoanOverdueBankDetailsMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebankdetails/LoanOverdueBankDetailsMapper.xml @@ -26,4 +26,10 @@ from loan_overdue_bank_details where mainSid = #{sid} + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebankdetails/LoanOverdueBankDetailsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebankdetails/LoanOverdueBankDetailsService.java index a249c5db09..57a584d5b7 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebankdetails/LoanOverdueBankDetailsService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduebankdetails/LoanOverdueBankDetailsService.java @@ -5,6 +5,7 @@ import com.yxt.anrui.riskcenter.api.loanoverduebank.LoanOverdueBank; import com.yxt.anrui.riskcenter.api.loanoverduebankdetails.LoanOverdueBankDetails; import com.yxt.anrui.riskcenter.api.loanoverduebankdetails.LoanOverdueBankDetailsDto; import com.yxt.anrui.riskcenter.api.loanoverduefindetails.LoanOverdueFinDetails; +import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.StringUtils; import org.springframework.stereotype.Service; @@ -35,4 +36,8 @@ public class LoanOverdueBankDetailsService extends MybatisBaseService selectBankContractNo(String bankContractNo, String useOrgSid) { + return baseMapper.selectBankContractNo(bankContractNo,useOrgSid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinRest.java index f42127216c..c3a0fd2941 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinRest.java @@ -4,10 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.LoanBePadsincereExportVo; import com.yxt.anrui.riskcenter.api.loanoverduefin.*; -import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.CompleteDto; -import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeQuery; -import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeVo; -import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyTaskQuery; +import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.*; import com.yxt.anrui.riskcenter.api.loantemplate.LoanTemplateVo; import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.core.query.PagerQuery; @@ -119,4 +116,9 @@ public class LoanOverdueFinRest implements LoanOverdueFinFeign { public ResultBean breakProcess(OverdueApplyTaskQuery query) { return loanOverdueFinService.breakProcess(query); } + + @Override + public ResultBean delegate(OverFinApplyDelegateQuery query) { + return loanOverdueFinService.delegate(query); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java index 1f84caa80c..c4f48cdf9e 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoverduefin/LoanOverdueFinService.java @@ -10,6 +10,7 @@ import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyVo; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; +import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; import com.yxt.anrui.flowable.api.flow2.FlowFeign; import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; @@ -24,6 +25,7 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.ReturnExcelInfo; import com.yxt.anrui.riskcenter.api.loanoverduefin.*; +import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverFinApplyDelegateQuery; import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeQuery; import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyNodeVo; import com.yxt.anrui.riskcenter.api.loanoverduefin.flowable.OverdueApplyTaskQuery; @@ -199,7 +201,7 @@ public class LoanOverdueFinService extends MybatisBaseService filesList = dto.getFilesList(); List filss = dto.getFilesList(); - List filesList = filss.stream().map(v->v.getUrl()).collect(Collectors.toList()); + List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); if (!filesList.isEmpty()) { String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); loanOverdueFin.setFiles(files); @@ -219,7 +221,7 @@ public class LoanOverdueFinService extends MybatisBaseService filesList = dto.getFilesList(); List filss = dto.getFilesList(); - List filesList = filss.stream().map(v->v.getUrl()).collect(Collectors.toList()); + List filesList = filss.stream().map(v -> v.getUrl()).collect(Collectors.toList()); if (!filesList.isEmpty()) { String files = String.join(",", filesList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); loanOverdueFin.setFiles(files); @@ -605,6 +607,7 @@ public class LoanOverdueFinService extends MybatisBaseService detailsList = detailsList(useOrgSid, loanOverdueFinDetailVo.getStopDate()); loanOverdueFinDetailVo.setDetailsVoList(detailsList); loanOverdueFinDetailVo.setOrgPath(orgPath); + loanOverdueFinDetailVo.setUseOrgSid(useOrgSid); } else {//编辑初始化 LoanOverdueFin loanOverdueFin = fetchBySid(sid); if (loanOverdueFin == null) { @@ -628,6 +631,9 @@ public class LoanOverdueFinService extends MybatisBaseService> getExcelInfo(MultipartFile file, HttpServletRequest request,String useOrgSid) throws IOException { + public ResultBean> getExcelInfo(MultipartFile file, HttpServletRequest request, String useOrgSid) throws IOException { ResultBean rb = ResultBean.fireFail(); String temp = request.getSession().getServletContext().getRealPath(File.separator) + "temp";// 临时目录 File tempFile = new File(temp); @@ -668,11 +674,11 @@ public class LoanOverdueFinService extends MybatisBaseService importVoList = new ArrayList<>(); Set checkWord = new HashSet<>(); @@ -768,7 +774,7 @@ public class LoanOverdueFinService extends MybatisBaseService loanRepaymentScheduleDetailsVos = loanOverdueFinDetailsService.selectByCustomerNo(excelFinVo.getCustomerNo(),useOrgSid); + List loanRepaymentScheduleDetailsVos = loanOverdueFinDetailsService.selectByCustomerNo(excelFinVo.getCustomerNo(), useOrgSid); loanRepaymentScheduleDetailsVos.removeAll(Collections.singleton(null)); if (loanRepaymentScheduleDetailsVos.isEmpty()) { if (StringUtils.isNotBlank(excelFinVo.getCustomerNo())) { @@ -821,4 +827,11 @@ public class LoanOverdueFinService extends MybatisBaseService