Browse Source

优化还款计划表及导出功能

master
fanzongzhe 12 months ago
parent
commit
374c7c2ea6
  1. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusLoancontractForRepayQuery.java
  2. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusLoancontractForRepayVo.java
  3. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeign.java
  4. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeignFallback.java
  5. 49
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/LoanRepaymentPlanDetailsExportVo.java
  6. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractMapper.java
  7. 49
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractMapper.xml
  8. 24
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java
  9. 191
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java
  10. 14
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanCreateSchedulePdfVo.java
  11. 15
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentSchedule.java
  12. 9
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java
  13. 8
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java
  14. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java
  15. 46
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml
  16. 13
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java
  17. 2376
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

6
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusLoancontractForRepayQuery.java

@ -4,6 +4,9 @@ import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
@ -26,6 +29,7 @@ public class BusLoancontractForRepayQuery implements Query {
private String bankName;
@ApiModelProperty("金融产品名称")
private String policyName; // 金融产品名称
private String builded; //是否生成还款计划表
@ApiModelProperty("组织全路径")
private String orgPath;
@ApiModelProperty("菜单sid")
@ -34,4 +38,6 @@ public class BusLoancontractForRepayQuery implements Query {
private String menuUrl;
@ApiModelProperty("用户sid")
private String userSid;
private String createStartDate;
private String createEndDate;
}

6
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusLoancontractForRepayVo.java

@ -35,4 +35,10 @@ public class BusLoancontractForRepayVo implements Vo {
private String orderSid;
private String builded; //是否生成还款计划表
private boolean handleBtn; //ture 可以办理 false 不能
private String repaymentCreateTime; //生成时间
private String cwDeptNo; //财务中部门编码
private String mainAmount; //主产品还款总金额
private String otherAmount; //其他融还款总金额
private String amountAll; // 总金额
}

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeign.java

@ -102,6 +102,11 @@ public interface BusSalesOrderLoancontractFeign {
@PostMapping("/setRepaymentState")
public ResultBean setRepaymentState(@RequestParam("sid") String sid, @RequestParam("createTime")String createTime);
@PostMapping("/exportExcel")
@ApiOperation(value = "还款计划表导出")
public void exportExcel(@RequestBody BusLoancontractForRepayQuery query);
@ApiOperation("推送融资放款的应收")
@PostMapping("/pushLoanOrder")
@ResponseBody

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeignFallback.java

@ -97,6 +97,11 @@ public class BusSalesOrderLoancontractFeignFallback implements BusSalesOrderLoan
return null;
}
@Override
public void exportExcel(BusLoancontractForRepayQuery query) {
}
@Override
public ResultBean pushLoanOrder(LoanContractPush loanContractPush) {
return null;

49
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/LoanRepaymentPlanDetailsExportVo.java

@ -0,0 +1,49 @@
package com.yxt.anrui.buscenter.api.bussalesorderloancontract;
import com.yxt.common.core.utils.ExportEntityMap;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/11/13 9:34
*/
@Data
public class LoanRepaymentPlanDetailsExportVo {
@ExportEntityMap(CnName = "序号", EnName = "rankNo")
private Integer rankNo;
@ExportEntityMap(CnName = "生成日期", EnName = "createTime")
private String createTime;
@ExportEntityMap(CnName = "客户", EnName = "customer")
private String customer;
@ExportEntityMap(CnName = " 销售专员", EnName = "staffName")
private String staffName;
@ExportEntityMap(CnName = "贷款人", EnName = "borrowerName")
private String borrowerName;
@ExportEntityMap(CnName = "车架号", EnName = "vinNo")
private String vinNo;
@ExportEntityMap(CnName = "车牌号", EnName = "vehMark")
private String vehMark;
@ExportEntityMap(CnName = "消贷合同号", EnName = "loanContractNo")
private String loanContractNo;
@ExportEntityMap(CnName = "资方合同号", EnName = "bankContractNo")
private String bankContractNo;
@ExportEntityMap(CnName = "资方", EnName = "bankName")
private String bankName;
@ExportEntityMap(CnName = "金融产品政策", EnName = "policyName")
private String policyName;
@ExportEntityMap(CnName = "期数", EnName = "period")
private String period;
@ExportEntityMap(CnName = "应还", EnName = "dueMoney")
private String dueMoney;
@ExportEntityMap(CnName = "应还日期", EnName = "dueDate")
private String dueDate;
@ExportEntityMap(CnName = "是否存在其他融", EnName = "policyOrOther")
private String policyOrOther;
@ExportEntityMap(CnName = "销售部门", EnName = "dept")
private String dept;
@ExportEntityMap(CnName = "分公司", EnName = "useOrgName")
private String useOrgName;
}

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractMapper.java

@ -94,4 +94,6 @@ public interface BusSalesOrderLoancontractMapper extends BaseMapper<BusSalesOrde
@Update("update bus_sales_order_loancontract set repaymentState = 1,repaymentCreateTime =#{createTime} where sid=#{sid}")
int setRepaymentState(@Param("sid") String sid,@Param("createTime") String createTime);
List<BusLoancontractForRepayVo> selLoancontractsForExport(@Param(Constants.WRAPPER) QueryWrapper<BusSalesOrderLoancontract> qw);
}

49
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractMapper.xml

@ -17,23 +17,24 @@
<select id="listPageForRepay"
resultType="com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusLoancontractForRepayVo">
SELECT
bs.sid as orderSid,
bs.orgName as orgName,
bs.staffName as staffName,
bs.useOrgName as useOrgName,
co.loanContractNo as loanContractNo,
co.borrowerName as borrowerName,
co.bankName as bankName,
co.bankContractNo as bankContractNo,
co.policyName as policyName,
co.sid as salesOrderSid,
bs.sid AS orderSid,
bs.orgName AS orgName,
bs.staffName AS staffName,
bs.useOrgName AS useOrgName,
co.loanContractNo AS loanContractNo,
co.borrowerName AS borrowerName,
co.bankName AS bankName,
co.bankContractNo AS bankContractNo,
co.policyName AS policyName,
co.sid AS salesOrderSid,
CASE
co.repaymentState
WHEN '1' THEN
'是'
WHEN '0' THEN
'否'
END AS builded
END AS builded,
DATE_FORMAT( co.repaymentCreateTime, '%Y-%m-%d' ) AS repaymentCreateTime
FROM
bus_sales_order_loancontract AS co
LEFT JOIN bus_sales_order AS bs ON co.salesOrderSid = bs.sid
@ -53,4 +54,30 @@
resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed">
select * from anrui_fin.fin_uncollected_receivables_detailed where busVinSid = #{sid} and receivablesName = #{name}
</select>
<select id="selLoancontractsForExport"
resultType="com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusLoancontractForRepayVo">
SELECT
bs.sid AS orderSid,
bs.orgName AS orgName,
bs.staffName AS staffName,
bs.useOrgName AS useOrgName,
co.loanContractNo AS loanContractNo,
co.borrowerName AS borrowerName,
co.bankName AS bankName,
co.bankContractNo AS bankContractNo,
co.policyName AS policyName,
co.sid AS salesOrderSid,
CASE
co.repaymentState
WHEN '1' THEN
'是'
WHEN '0' THEN
'否'
END AS builded,
DATE_FORMAT( co.repaymentCreateTime, '%Y-%m-%d' ) AS repaymentCreateTime
FROM
bus_sales_order_loancontract AS co
LEFT JOIN bus_sales_order AS bs ON co.salesOrderSid = bs.sid
<where>${ew.sqlSegment}</where>
</select>
</mapper>

24
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java

@ -27,6 +27,7 @@ package com.yxt.anrui.buscenter.biz.bussalesorderloancontract;
import com.yxt.anrui.buscenter.api.busdeliveredapply.PushOtherDocument;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.*;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -35,6 +36,9 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Date;
import java.util.List;
@ -58,7 +62,8 @@ public class BusSalesOrderLoancontractRest implements BusSalesOrderLoancontractF
@Autowired
private BusSalesOrderLoancontractService busSalesOrderLoancontractService;
@Autowired
private HttpServletResponse response;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ -121,6 +126,23 @@ public class BusSalesOrderLoancontractRest implements BusSalesOrderLoancontractF
return rb.success().setData(pv);
}
@Override
public void exportExcel(BusLoancontractForRepayQuery query) {
//得到所有要导出的数据
List<LoanRepaymentPlanDetailsExportVo> list = busSalesOrderLoancontractService.exportExcel(query);
//定义导出的excel名字
String excelName = "还款计划表列表";
String fileNameURL = "";
try {
fileNameURL = URLEncoder.encode(excelName, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//导出车辆管理列表
ExportExcelUtils.export(fileNameURL, list, LoanRepaymentPlanDetailsExportVo.class, response);
}
@Override
public ResultBean setRepaymentState(String sid, String createTime) {
ResultBean rb = ResultBean.fireFail();

191
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java

@ -198,6 +198,97 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
return entity;
}
public List<LoanRepaymentPlanDetailsExportVo> exportExcel(BusLoancontractForRepayQuery pagerQuery) {
QueryWrapper<BusSalesOrderLoancontract> qw = new QueryWrapper<>();
//=======================
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(pagerQuery.getOrgPath());
privilegeQuery.setMenuSid(pagerQuery.getMenuSid());
privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl());
privilegeQuery.setUserSid(pagerQuery.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = pagerQuery.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("bs.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("bs.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("bs.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("bs.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("bs.createBySid", pagerQuery.getUserSid());
} else {
return new ArrayList<>();
}
} else {
return new ArrayList<>();
}
//=======================
//分公司
if (StringUtils.isNotBlank(pagerQuery.getUseOrgName())) {
qw.like("bs.useOrgName", pagerQuery.getUseOrgName());
}
//销售部门
if (StringUtils.isNotBlank(pagerQuery.getOrgName())) {
qw.like("bs.orgName", pagerQuery.getOrgName());
}
//销售专员
if (StringUtils.isNotBlank(pagerQuery.getStaffName())) {
qw.like("bs.staffName", pagerQuery.getStaffName());
}
//消贷合同编号
if (StringUtils.isNotBlank(pagerQuery.getLoanContractNo())) {
qw.like("co.loanContractNo", pagerQuery.getLoanContractNo());
}
//贷款人
if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) {
qw.like("co.borrowerName", pagerQuery.getBorrowerName());
}
//资方
if (StringUtils.isNotBlank(pagerQuery.getBankName())) {
qw.like("co.bankName", pagerQuery.getBankName());
}
//金融产品
if (StringUtils.isNotBlank(pagerQuery.getPolicyName())) {
qw.like("co.policyName", pagerQuery.getPolicyName());
}
//金融产品
if (StringUtils.isNotBlank(pagerQuery.getBuilded())) {
qw.like("co.repaymentState", pagerQuery.getBuilded());
}
String createStartTime = pagerQuery.getCreateStartDate();
String createEndTime = pagerQuery.getCreateEndDate();
qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (co.repaymentCreateTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(createEndTime), "date_format (co.repaymentCreateTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
qw.ne("co.state", 0);
qw.eq("co.isDelete", 0);
qw.eq("co.busNo", "305");
qw.orderByDesc("co.createTime");
List<BusLoancontractForRepayVo> loancontracts = baseMapper.selLoancontractsForExport(qw);
if (!loancontracts.isEmpty()) {
List<String> sids = loancontracts.stream().map(BusLoancontractForRepayVo::getSalesOrderSid).collect(Collectors.toList());
List<LoanRepaymentPlanDetailsExportVo> exportVos = repaymentScheduleFeign.exportExcel(sids).getData();
if (!exportVos.isEmpty()) {
return exportVos;
}
}
return new ArrayList<>();
}
/**
* 消贷合同生成还款计划表列表
*
@ -256,8 +347,8 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
qw.like("bs.orgName", pagerQuery.getOrgName());
}
//销售专员
if (StringUtils.isNotBlank(pagerQuery.getUseOrgName())) {
qw.like("bs.useOrgName", pagerQuery.getUseOrgName());
if (StringUtils.isNotBlank(pagerQuery.getStaffName())) {
qw.like("bs.staffName", pagerQuery.getStaffName());
}
//消贷合同编号
if (StringUtils.isNotBlank(pagerQuery.getLoanContractNo())) {
@ -275,8 +366,18 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
if (StringUtils.isNotBlank(pagerQuery.getPolicyName())) {
qw.like("co.policyName", pagerQuery.getPolicyName());
}
qw.eq("co.state", 1);
//金融产品
if (StringUtils.isNotBlank(pagerQuery.getBuilded())) {
qw.like("co.repaymentState", pagerQuery.getBuilded());
}
String createStartTime = pagerQuery.getCreateStartDate();
String createEndTime = pagerQuery.getCreateEndDate();
qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (co.repaymentCreateTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(createEndTime), "date_format (co.repaymentCreateTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
qw.ne("co.state", 0);
qw.eq("co.isDelete", 0);
qw.eq("co.busNo", "305");
qw.orderByDesc("co.createTime");
IPage<BusLoancontractForRepayVo> pagging = baseMapper.listPageForRepay(page, qw);
List<BusLoancontractForRepayVo> records = pagging.getRecords();
@ -293,14 +394,88 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
record.setVinNo(String.join(",", stringVinNos));
}
}
// ResultBean<LoanRepaymentSchedule> repaymentSchedule = repaymentScheduleFeign.selByLoanContractSid(record.getSalesOrderSid());
// if (repaymentSchedule.getData() != null) {
ResultBean<LoanRepaymentSchedule> repaymentSchedule = repaymentScheduleFeign.selByLoanContractSid(record.getSalesOrderSid());
if (repaymentSchedule.getData() != null) {
LoanRepaymentSchedule schedule = repaymentSchedule.getData();
if (StringUtils.isNotBlank(schedule.getCwDeptNo())) {
record.setCwDeptNo(schedule.getCwDeptNo());
}
BigDecimal mainAmount; //主产品还款总金额
BigDecimal otherAmount; //其他融还款总金额
BigDecimal amountAll; // 总金额
//车辆数
BigDecimal vehCount = new BigDecimal(schedule.getVehCount());
if (StringUtils.isNotBlank(schedule.getIsDifferent())) {
if (schedule.getIsDifferent().equals("是")) {
//判断是否有一台车不同月还金额
//主产品期数
BigDecimal mainPeriod = new BigDecimal(schedule.getMainPeriod());
//主产品首期月还
BigDecimal mainFirstRepay = schedule.getMainFirstRepay().multiply(vehCount.subtract(new BigDecimal("1"))).add(schedule.getSingleMainFirstRepay());
//主产品期间月还
BigDecimal mainMidRepay = schedule.getMainMidRepay().multiply(vehCount.subtract(new BigDecimal("1"))).add(schedule.getSingleMainMidRepay()).multiply(mainPeriod.subtract(new BigDecimal("2")));
//主产品末期月还
BigDecimal mainLastRepay = schedule.getMainLastRepay().multiply(vehCount.subtract(new BigDecimal("1"))).add(schedule.getSingleMainLastRepay());
mainAmount = mainFirstRepay.add(mainMidRepay).add(mainLastRepay);
if (schedule.getIsOtherPolicy().equals("1")) {
//有其他融
//其他融期数
BigDecimal otherPeriod = new BigDecimal(schedule.getOtherPeriod());
//其他融首期月还
BigDecimal otherFirstRepay = schedule.getOtherFirstRepay().multiply(vehCount.subtract(new BigDecimal("1"))).add(schedule.getSingleOtherFirstRepay());
//其他融期间月还
BigDecimal otherMidRepay = schedule.getOtherMidRepay().multiply(vehCount.subtract(new BigDecimal("1"))).add(schedule.getSingleOtherMidRepay()).multiply(mainPeriod.subtract(new BigDecimal("2")));
//其他融末期月还
BigDecimal otherLastRepay = schedule.getOtherLastRepay().multiply(vehCount.subtract(new BigDecimal("1"))).add(schedule.getSingleOtherLastRepay());
otherAmount = otherFirstRepay.add(otherMidRepay).add(otherLastRepay);
amountAll = mainAmount.add(otherAmount);
record.setMainAmount(mainAmount.toString());
record.setOtherAmount(otherAmount.toString());
record.setAmountAll(amountAll.toString());
} else if (schedule.getIsOtherPolicy().equals("0")) {
//没有其他融
record.setMainAmount(mainAmount.toString());
record.setAmountAll(mainAmount.toString());
}
}
} else {
//主产品期数
BigDecimal mainPeriod = new BigDecimal(schedule.getMainPeriod());
//主产品首期月还
BigDecimal mainFirstRepay = schedule.getMainFirstRepay().multiply(vehCount);
//主产品期间月还
BigDecimal mainMidRepay = mainPeriod.subtract(new BigDecimal("2")).multiply(schedule.getMainMidRepay()).multiply(vehCount);
//主产品末期月还
BigDecimal mainLastRepay = schedule.getMainLastRepay().multiply(vehCount);
mainAmount = mainFirstRepay.add(mainMidRepay).add(mainLastRepay);
if (schedule.getIsOtherPolicy().equals("1")) {
//有其他融
//其他融期数
BigDecimal otherPeriod = new BigDecimal(schedule.getOtherPeriod());
//其他融首期月还
BigDecimal otherFirstRepay = schedule.getOtherFirstRepay().multiply(vehCount);
//其他融期间月还
BigDecimal otherMidRepay = otherPeriod.subtract(new BigDecimal("2")).multiply(schedule.getOtherMidRepay()).multiply(vehCount);
//其他融末期月还
BigDecimal otherLastRepay = schedule.getOtherLastRepay().multiply(vehCount);
otherAmount = otherFirstRepay.add(otherMidRepay).add(otherLastRepay);
amountAll = mainAmount.add(otherAmount);
record.setMainAmount(mainAmount.toString());
record.setOtherAmount(otherAmount.toString());
record.setAmountAll(amountAll.toString());
} else if (schedule.getIsOtherPolicy().equals("0")) {
//没有其他融
record.setMainAmount(mainAmount.toString());
record.setAmountAll(mainAmount.toString());
}
}
// record.setBuilded("是");
// List<LoanRepaymentHistory> histories = repaymentScheduleFeign.selHistoryBySid(repaymentSchedule.getData().getSid()).getData();
// if (histories.isEmpty() || histories == null) {
// record.setHandleBtn(true);
// }
// } else {
}
// else {
// record.setBuilded("否");
// if (StringUtils.isNotBlank(record.getBankContractNo())) {
// record.setHandleBtn(true);
@ -1095,7 +1270,7 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
}
public int setRepaymentState(String sid,String createTime) {
return baseMapper.setRepaymentState(sid,createTime);
public int setRepaymentState(String sid, String createTime) {
return baseMapper.setRepaymentState(sid, createTime);
}
}

14
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanCreateSchedulePdfVo.java

@ -61,4 +61,18 @@ public class LoanCreateSchedulePdfVo implements Vo {
private String sameBank;
private LoanSolutionsDetailsssVo solutionsDetailsssVo;
private String otherBankNo;
@ApiModelProperty("是否其中一台车不同")
private Boolean isDifferent ;
@ApiModelProperty("单独主产品首期月还")
private String singleMainFirstRepay;
@ApiModelProperty("单独主产品期间月还")
private String singleMainMidRepay;
@ApiModelProperty("单独主产品末期月还")
private String singleMainLastRepay;
@ApiModelProperty("单独其他融首期月还")
private String singleOtherFirstRepay;
@ApiModelProperty("单独其他融期间月还")
private String singleOtherMidRepay;
@ApiModelProperty("单独其他融末期月还")
private String singleOtherLastRepay;
}

15
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentSchedule.java

@ -74,6 +74,19 @@ public class LoanRepaymentSchedule extends BaseEntity {
private String otherBankNo;
@ApiModelProperty("推送财务凭证部门编码")
private String cwDeptNo;
@ApiModelProperty("是否其中一台车不同")
private String isDifferent ;
@ApiModelProperty("单独主产品首期月还")
private BigDecimal singleMainFirstRepay;
@ApiModelProperty("单独主产品期间月还")
private BigDecimal singleMainMidRepay;
@ApiModelProperty("单独主产品末期月还")
private BigDecimal singleMainLastRepay;
@ApiModelProperty("单独其他融首期月还")
private BigDecimal singleOtherFirstRepay;
@ApiModelProperty("单独其他融期间月还")
private BigDecimal singleOtherMidRepay;
@ApiModelProperty("单独其他融末期月还")
private BigDecimal singleOtherLastRepay;
}

9
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeign.java

@ -1,8 +1,8 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusLoancontractForRepayQuery;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.LoanRepaymentPlanDetailsExportVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationQuery;
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -39,6 +39,11 @@ public interface LoanRepaymentScheduleFeign {
public ResultBean<LoanRepaymentSchedule> fetchBySid(@RequestParam("sid") String sid);
@PostMapping("/exportExcel")
@ApiOperation(value = "还款计划表导出")
public ResultBean<List<LoanRepaymentPlanDetailsExportVo>> exportExcel(@RequestBody List<String> sids);
@ApiOperation("生成还款计划表")
@PostMapping("/loanCreateSchedulePdf")
@ResponseBody

8
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java

@ -1,5 +1,7 @@
package com.yxt.anrui.riskcenter.api.loanrepaymentschedule;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusLoancontractForRepayQuery;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.LoanRepaymentPlanDetailsExportVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -26,6 +28,12 @@ public class LoanRepaymentScheduleFeignFallback implements LoanRepaymentSchedule
return null;
}
@Override
public ResultBean exportExcel(List<String> sids) {
return null;
}
@Override
public ResultBean<String> loanCreateSchedulePdf(LoanCreateSchedulePdfVo dto) {
return null;

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java

@ -4,12 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.loanwarrantinformation.LoanWarrantInformation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@ -40,4 +40,8 @@ public interface LoanRepaymentScheduleMapper extends BaseMapper<LoanRepaymentSch
List<MoneyAndPeriodVo> selPlansInfoByMainSidAndVinNo(@Param("mainSid") String mainSid, @Param("vinNo") String vinNo,@Param("mainOrOther") String mainOrOther);
String selSumAmountDueMoney(@Param("mainSid") String mainSid, @Param("vinNo") String vinNo,@Param("mainOrOther") String mainOrOther);
String selSumAmountDueMoneyByBusVinSid(@Param("mainSid") String mainSid,@Param("busVinSid") String busVinSid,@Param("mainOrOther") String mainOrOther);
List<LoanRepaymentPlanDetailsExportVo> selPlansExcel(@Param("sids") List<String> sids);
}

46
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml

@ -94,4 +94,48 @@
WHERE
scheduleSid = #{mainSid} AND policyOrOther = #{mainOrOther} AND vinNo LIKE CONCAT( '%', #{vinNo}, '%' )
</select>
</mapper>
<select id="selSumAmountDueMoneyByBusVinSid" resultType="java.lang.String">
SELECT
IFNULL(SUM(dueMoney),0)
FROM loan_repayment_plan_details
WHERE
scheduleSid = #{mainSid} AND policyOrOther = #{mainOrOther} AND busVinSid =#{busVinSid}
</select>
<select id="selPlansExcel"
resultType="com.yxt.anrui.buscenter.api.bussalesorderloancontract.LoanRepaymentPlanDetailsExportVo">
SELECT
@row_number := @row_number + 1 AS rankNo,
p.loanContractSid,
p.createTime,
p.customer,
p.staffName,
p.borrowerName,
p.vinNo,
p.vehMark,
p.loanContractNo,
p.bankContractNo,
p.bankName,
p.policyName,
p.period,
p.dueMoney,
p.dueDate,
CASE
p.policyOrOther
WHEN '1' THEN
'是'
WHEN '0' THEN
'否'
END AS policyOrOther,
p.dept,
p.useOrgName
FROM
loan_repayment_plan_details AS p,(
SELECT
@row_number := 0
) AS t
WHERE p.loanContractSid in
<foreach collection="sids" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>

13
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java

@ -1,9 +1,11 @@
package com.yxt.anrui.riskcenter.biz.loanrepaymentschedule;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusLoancontractForRepayQuery;
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.loanwarrantinformation.LoanWarrantInformationVo;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -12,6 +14,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
/**
@ -39,6 +44,12 @@ public class LoanRepaymentScheduleRest implements LoanRepaymentScheduleFeign {
return rb.success().setData(repaymentSchedule);
}
@Override
public ResultBean<List<LoanRepaymentPlanDetailsExportVo>> exportExcel(List<String> sids) {
return loanRepaymentScheduleService.exportExcel(sids);
}
@Override
public ResultBean<String> loanCreateSchedulePdf(LoanCreateSchedulePdfVo dto) {
return loanRepaymentScheduleService.loanCreateSchedulePdf(dto);

2376
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

File diff suppressed because it is too large
Loading…
Cancel
Save