diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java index fe69ba2f92..a215d5f97f 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java @@ -97,6 +97,12 @@ public interface LoanRepaymentScheduleFeign { public ResultBean importSleepHistoryData(@RequestParam("userSid") String userSid); + @ApiOperation(value = "导入历史数据贷款保证金") + @PostMapping("/importBondAmountsData") + public ResultBean importBondAmountsData( + @RequestParam(value = "file") MultipartFile file, HttpServletRequest request) throws IOException; + + @ApiOperation("根据还款计划明细返回资方sid") @GetMapping("/returnBankOrOtherBankByPlanSid") @ResponseBody diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java index 7fdf2afa71..8cd031c8b9 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java @@ -88,6 +88,11 @@ public class LoanRepaymentScheduleFeignFallback implements LoanRepaymentSchedule return null; } + @Override + public ResultBean importBondAmountsData(MultipartFile file, HttpServletRequest request) throws IOException { + return null; + } + @Override public ResultBean returnBankOrOtherBankByPlanSid(String planSid) { return null; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/historyData/ImportBondAmountsUpdate.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/historyData/ImportBondAmountsUpdate.java new file mode 100644 index 0000000000..625894b078 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/historyData/ImportBondAmountsUpdate.java @@ -0,0 +1,14 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymentschedule.historyData; + +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/9/6 15:43 + */ +@Data +public class ImportBondAmountsUpdate { + private String sid; + private String bondAmounts; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/historyData/ImportBondAmountsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/historyData/ImportBondAmountsVo.java new file mode 100644 index 0000000000..933def678b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/historyData/ImportBondAmountsVo.java @@ -0,0 +1,14 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymentschedule.historyData; + +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/9/6 14:48 + */ +@Data +public class ImportBondAmountsVo { + private String vinNo; + private String bondAmounts; +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java index d354339911..86eef013da 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java @@ -7,11 +7,13 @@ import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.buscenter.api.bussalesorderloancontract.LoanRepaymentPlanDetailsExportVo; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; +import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.historyData.ImportBondAmountsUpdate; import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** @@ -54,4 +56,8 @@ public interface LoanRepaymentScheduleMapper extends BaseMapper list); + + String selSidByVinNo(@Param("vinNo") String vinNo); + + void updateBoundsBySid(@Param("list") List list); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml index a1ee48d881..7d977b0eb5 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml @@ -15,7 +15,7 @@ #{item.mainLastRepay},#{item.otherPeriod},#{item.otherBankNo},#{item.otherRepayDate},#{item.otherFirstRepay},#{item.otherMidRepay}, #{item.otherLastRepay},#{item.isOtherPolicy},#{item.sameBank},#{item.cwDeptNo},#{item.isDifferent},#{item.importTiredMoney}, #{item.importPaymentMoney},#{item.importInterest},#{item.importFund},#{item.orgSidPath},#{item.bankSid},#{item.otherBankSid},#{item.bondAmounts} - ) + ) @@ -26,6 +26,24 @@ #{item} + + update loan_repayment_schedule + + + + + when sid=#{item.sid} then #{item.bondAmounts} + + + + + where sid in + + #{item.sid} + + + - SELECT - period, - date_format(dueDate, '%Y-%m' ) as dueDate, - dueMoney, - bankName + SELECT period, + date_format(dueDate, '%Y-%m') as dueDate, + dueMoney, + bankName FROM loan_repayment_plan_details - WHERE - scheduleSid = #{mainSid} AND policyOrOther = #{mainOrOther} AND vinNo LIKE CONCAT( '%', #{vinNo}, '%' ) + WHERE scheduleSid = #{mainSid} + AND policyOrOther = #{mainOrOther} + AND vinNo LIKE CONCAT('%', #{vinNo}, '%') ORDER BY period ASC + diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java index 20446207ca..3fc7bcac87 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java @@ -106,6 +106,11 @@ public class LoanRepaymentScheduleRest implements LoanRepaymentScheduleFeign { return loanRepaymentScheduleService.importSleepHistoryData(userSid); } + @Override + public ResultBean importBondAmountsData(MultipartFile file, HttpServletRequest request) throws IOException { + return loanRepaymentScheduleService.importBondAmountsData(file,request); + } + @Override public ResultBean returnBankOrOtherBankByPlanSid(String planSid) { return loanRepaymentScheduleService.returnBankOrOtherBankByPlanSid(planSid); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java index 019d631b95..a58a278013 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java @@ -42,10 +42,7 @@ import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; -import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.historyData.HistoryDataImportVo; -import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.historyData.ImportSleepData; -import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.historyData.ReturnMsg; -import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.historyData.ReturnSleepMsp; +import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.historyData.*; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy; @@ -72,6 +69,7 @@ import com.yxt.common.core.vo.PagerVo; import com.yxt.messagecenter.api.message.MessageFeign; import com.yxt.messagecenter.api.message.PushMessageQuery; import com.yxt.messagecenter.api.message.PushSmsDto; +import io.swagger.annotations.ApiModelProperty; import org.apache.commons.lang3.time.DateUtils; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFWorkbook; @@ -159,6 +157,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService solutionsDetailsVoResultBean = loanSolutionsService.selectDetailss(orderSid); if (solutionsDetailsVoResultBean.getData() != null) { BeanUtil.copyProperties(solutionsDetailsVoResultBean.getData(), solutionsDetailsssVo); + if (StringUtils.isNotBlank(solutionsDetailsVoResultBean.getData().getBondAmounts())) { + bondAmounts = new BigDecimal(solutionsDetailsVoResultBean.getData().getBondAmounts()); + } } if (StringUtils.isBlank(dto.getMainRepayDate())) { return rb.setMsg("请选择主金融产品首期还款日!"); @@ -460,6 +463,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService list = getBondAmountsSheetVal(sheet); + StringBuffer sbMsg = new StringBuffer(); + Set setMsg = new HashSet<>(); + List updates = new ArrayList<>(); + if (!list.isEmpty() && list.size() > 0) { + for (ImportBondAmountsVo vo : list) { + String vinNo = vo.getVinNo(); + String bondAmounts = vo.getBondAmounts(); + String sid = baseMapper.selSidByVinNo(vinNo); + if (StringUtils.isBlank(sid)) { + setMsg.add(vinNo); + } else { + ImportBondAmountsUpdate update = new ImportBondAmountsUpdate(); + update.setSid(sid); + update.setBondAmounts(bondAmounts); + updates.add(update); + } + } + } + if (null != setMsg && setMsg.size() > 0) { + for (String s : setMsg) { + sbMsg.append(s).append("、"); + } + sbMsg.delete(sbMsg.length() - 1, sbMsg.length()); + if (StringUtils.isNotBlank(sbMsg.toString())) { + return rb.setMsg("车架号" + sbMsg.toString() + "不存在,导入失败"); + } + } + if (!updates.isEmpty()) { + baseMapper.updateBoundsBySid(updates); + } + } catch (Exception e) { + e.printStackTrace(); + } + return rb.success().setMsg("导入成功"); + } + + private List getBondAmountsSheetVal(Sheet sheet) { + List list = new ArrayList<>(); + Row row1 = sheet.getRow(0); + Map header = new HashMap<>(); + Map map = new HashMap<>(); + for (int i = 0; i < 3; i++) { + String trim = new String(); + try { + trim = getCellVal(row1.getCell(i)).toString().trim(); + String temp = getCellVal(row1.getCell(i)).toString().trim(); + if (StringUtils.isNotBlank(temp)) { + header.put(i, temp); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + for (int r = 2; r <= sheet.getLastRowNum(); r++) { + ImportBondAmountsVo info = new ImportBondAmountsVo(); + Row row = sheet.getRow(r); + if (row == null) { + continue; + } + for (int i = 0; i < header.size(); i++) { + try { + String temp = ""; + if (null != getCellVal(row.getCell(i))) { + temp = getCellVal(row.getCell(i)).toString().trim(); + } + String head = header.get(i); + String field = ""; + if (StringUtils.isNotBlank(temp)) { + field = temp; + } + if (head.equals("八位车架号")) { + info.setVinNo(field); + } + if (head.equals("保证金")) { + info.setBondAmounts(field); + } + } catch (Exception e) { + e.printStackTrace(); + continue; + } + } + list.add(info); + } + return list; + } + public ResultBean importHistoryData(MultipartFile file, String userSid, HttpServletRequest request) { ResultBean rb = ResultBean.fireFail(); try { @@ -5778,12 +5894,12 @@ public class LoanRepaymentScheduleService extends MybatisBaseService listPageVo(PagerQuery pq) { LoanSettleApplyQuery query = pq.getParams(); QueryWrapper qw = new QueryWrapper<>(); @@ -622,6 +624,14 @@ public class LoanSettleApplyService extends MybatisBaseService solutionsDetailsVoResultBean = loanSolutionsService.selectDetailss(schedule.getSalesOrderSid()); + if (solutionsDetailsVoResultBean.getData() != null) { + SolutionsDetailsVo solutionsDetailsVo = solutionsDetailsVoResultBean.getData(); + if (StringUtils.isNotBlank(solutionsDetailsVo.getBondAmounts())) { + bondAmounts = new BigDecimal(solutionsDetailsVo.getBondAmounts()); + } + } } settleApplyCommonVo.setLoanDeposit(bondAmounts.toString()); //贷款保证金扣罚金额