Browse Source

转付推代付款列表、还款计划情况表查询逻辑变更

master
fanzongzhe 1 year ago
parent
commit
d8e7ff1902
  1. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeign.java
  2. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeignFallback.java
  3. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.java
  4. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.xml
  5. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankRest.java
  6. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankService.java
  7. 12
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java
  8. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentrecord/LoanTransferPaymentRecord.java
  9. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java
  10. 23
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml
  11. 167
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java
  12. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java
  13. 124
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  14. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
  15. 128
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java
  16. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml

4
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeign.java

@ -102,4 +102,8 @@ public interface FinManufacturerBankFeign {
@ResponseBody
public ResultBean listByPayment(@RequestParam("orgPath") String orgPath, @RequestParam("key") String key);
@ApiOperation("根据账号获取银行账户信息")
@GetMapping("/selOneByBankNo")
@ResponseBody
public ResultBean<FinManufacturerBank> selOneByBankNo(@RequestParam("bankAccount") String bankAccount, @RequestParam("useOrgSid") String useOrgSid);
}

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finmanufacturerbank/FinManufacturerBankFeignFallback.java

@ -94,4 +94,9 @@ public class FinManufacturerBankFeignFallback implements FinManufacturerBankFeig
public ResultBean listByPayment(String orgPath, String key) {
return null;
}
@Override
public ResultBean selOneByBankNo(String bankAccount,String useOrgSid) {
return null;
}
}

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.java

@ -68,4 +68,6 @@ public interface FinManufacturerBankMapper extends BaseMapper<FinManufacturerBan
IPage<FinManufacturerVo> selAppAccountByOrgSid(IPage<FinManufacturerVo> page, @Param(Constants.WRAPPER) QueryWrapper<AppBusDeliveredPageQuery> qw, @Param("name") String name);
List<BankVoForPayment> listByPayment(@Param("useOrgSid") String useOrgSid, @Param("key") String key);
FinManufacturerBank selOneByBankNo(@Param("bankAccount") String bankAccount, @Param("useOrgSid") String useOrgSid);
}

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankMapper.xml

@ -93,4 +93,10 @@
where useOrgSid = #{useOrgSid}
and dueBankKey = #{key}
</select>
<select id="selOneByBankNo" resultType="com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank">
select *
from fin_manufacturer_bank
where bankAccount = #{bankAccount}
and useOrgSid = #{useOrgSid}
</select>
</mapper>

5
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankRest.java

@ -110,4 +110,9 @@ public class FinManufacturerBankRest implements FinManufacturerBankFeign {
public ResultBean listByPayment(String orgPath, String key) {
return finManufacturerBankService.listByPayment(orgPath,key);
}
@Override
public ResultBean selOneByBankNo(String bankAccount,String useOrgSid) {
return finManufacturerBankService.selOneByBankNo(bankAccount,useOrgSid);
}
}

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankService.java

@ -272,4 +272,10 @@ public class FinManufacturerBankService extends MybatisBaseService<FinManufactur
List<BankVoForPayment> list = baseMapper.listByPayment(useOrgSid, key);
return rb.success().setData(list);
}
public ResultBean selOneByBankNo(String bankAccount,String useOrgSid) {
ResultBean rb = ResultBean.fireFail();
FinManufacturerBank finManufacturerBank = baseMapper.selOneByBankNo(bankAccount,useOrgSid);
return rb.success().setData(finManufacturerBank);
}
}

12
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java

@ -70,11 +70,13 @@ public class LoanRepaymentPlanDetails extends BaseEntity {
private String orgSidPath;
private String returnWayKey;
private String returnWayKey; //还款方式key(01直还、02间还、03转付)
private String returnWay;
private String actualPerson;
private BigDecimal paymentMoney;
private BigDecimal fund;
private String actualPerson; //实际还款人
private BigDecimal paymentMoney; //公司垫款金额
private BigDecimal fund; //资金占用费
private Integer overdue; //是否曾逾期(0是,1否)
private Integer oweState; //是否转累欠状态(0是,1否)
private Date updateTime; //更新日期
}

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentrecord/LoanTransferPaymentRecord.java

@ -37,6 +37,6 @@ public class LoanTransferPaymentRecord extends BaseEntity {
private String account;
@ApiModelProperty("转付账户账号")
private String accountNumber;
@ApiModelProperty("资方合同号")
private String bankContractNo;
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java

@ -49,4 +49,6 @@ public interface LoanRepaymentHistoryMapper extends BaseMapper<LoanRepaymentHist
IPage<RepaymentDetailsListVo> repaymentDetailsList(IPage<LoanRepaymentHistory> page, @Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
List<RepaymentStatisticsExportVo> repaymentStatisticsExport(@Param(Constants.WRAPPER) QueryWrapper<LoanRepaymentHistory> qw);
String getMaxUpdateTimeByBankName(@Param("bankName") String bankName);
}

23
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml

@ -198,6 +198,8 @@
t.repaidMoney,
t.outstandingMoney,
v.bankBeInter,
pd.overdue as dueOverdue,
pd.updateTime as updateDate,
CASE
WHEN t.repaidMoney = 0 THEN
'01'
@ -223,18 +225,14 @@
AND h.updateState = '1'),0) as repaidMoney
,
IFNULL(
p.dueMoney - (
SELECT
SUM(
IFNULL( h.actualMoney, 0 ))
(p.dueMoney - IFNULL((SELECT
SUM(IFNULL( h.actualMoney, 0 ))
FROM
loan_repayment_history AS h
WHERE
h.planDetailSid = p.sid
AND h.updateState = '1'
),
0
) AS outstandingMoney
),0)),0) AS outstandingMoney
FROM
loan_repayment_plan_details AS p
) AS t ON pd.sid = t.sid
@ -352,5 +350,16 @@
${ew.sqlSegment}
</where>
</select>
<select id="getMaxUpdateTimeByBankName" resultType="java.lang.String">
SELECT
MAX(h.actualDate)
as updateTime
FROM loan_repayment_history AS h
LEFT JOIN loan_repayment_plan_details AS p
ON h.planDetailSid = p.sid
where h.updateState = '1'
AND h.returnWayKey = '01'
AND p.bankName = #{bankName}
</select>
</mapper>

167
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java

@ -8,6 +8,8 @@ import com.yxt.anrui.base.api.basemodelmodprice.BaseModelModpriceImportReturn;
import com.yxt.anrui.base.api.basemodelmodprice.BaseModelModpriceImportVo;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempExportVo;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
@ -21,6 +23,7 @@ import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.*;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -491,7 +494,7 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
qw.ne("h.buckleKey", "002");
qw.ne("h.buckleKey", "003");
}
qw.ne("h.returnWayKey","02");
qw.ne("h.returnWayKey", "02");
String dueStartDate = pagerQuery.getDueStartDate();
String dueEndDate = pagerQuery.getDueEndDate();
qw.apply(StringUtils.isNotEmpty(dueStartDate), "date_format (p.dueDate,'%Y-%m-%d') >= date_format('" + dueStartDate + "','%Y-%m-%d')").
@ -701,6 +704,7 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
public ResultBean updateState(String orgPath) {
ResultBean rb = ResultBean.fireFail();
QueryWrapper<LoanRepaymentHistory> qw = new QueryWrapper<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//=======================
String orgSidPath = orgPath;
orgSidPath = orgSidPath + "/";
@ -714,6 +718,9 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
qw.ne("h.buckleKey", "003");
qw.eq("h.updateState", "0");
List<String> histories = baseMapper.selUpdateStateList(qw);
HashSet<String> bankNames = new HashSet<>();
HashSet<String> pSids = new HashSet<>();
String useOrgSid = "";
if (!histories.isEmpty()) {
for (String historySid : histories) {
LoanRepaymentHistory repaymentHistory = fetchBySid(historySid);
@ -721,6 +728,41 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
repaymentHistory.setUpdateState("1");
repaymentHistory.setUpdateTime(new DateTime());
baseMapper.updateById(repaymentHistory);
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(repaymentHistory.getPlanDetailSid());
if (null != planDetails) {
bankNames.add(planDetails.getBankName());
pSids.add(planDetails.getSid());
useOrgSid = planDetails.getUseOrgSid();
}
}
}
Map<String, String> map = new HashMap<>();
if (!bankNames.isEmpty()) {
for (String bankName : bankNames) {
String updateTime = baseMapper.getMaxUpdateTimeByBankName(bankName);
if (StringUtils.isNotBlank(updateTime)) {
map.put(bankName, updateTime);
}
}
}
if (!map.isEmpty()) {
for (Map.Entry<String, String> entry : map.entrySet()) {
String updateTime = entry.getValue();
try {
Date u = sdf.parse(updateTime);
Date today = new Date();
String f = sdf.format(today);
Date date = sdf.parse(f);
if (u.compareTo(date) == 0) {
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
cal_1.setTime(date);
cal_1.add(Calendar.DAY_OF_MONTH, -1);
u = cal_1.getTime();
}
int i = loanRepaymentPlanDetailsService.updateTime(entry.getKey(), u, useOrgSid);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
} else {
@ -747,7 +789,7 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
qw.like("p.orgSidPath", orgSidPath);
qw.ne("h.buckleKey", "002");
qw.ne("h.buckleKey", "003");
qw.eq("h.updateState","1");
qw.eq("h.updateState", "1");
List<LoanRepaymentHistoryVo> histories = baseMapper.selbuckleNewInitList(qw);
Set<String> planSids = new HashSet<>();
if (!histories.isEmpty()) {
@ -963,11 +1005,19 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) {
qw.like("a.borrowerName", pagerQuery.getBorrowerName());
}
if (StringUtils.isNotBlank(pagerQuery.getDueOverdue())) {
qw.eq("a.dueOverdue", pagerQuery.getDueOverdue());
}
String dueStartDate = pagerQuery.getDueStartDate();
String dueEndDate = pagerQuery.getDueEndDate();
qw.apply(StringUtils.isNotEmpty(dueStartDate), "date_format (a.dueDate,'%Y-%m-%d') >= date_format('" + dueStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(dueEndDate), "date_format (a.dueDate,'%Y-%m-%d') <= date_format('" + dueEndDate + "','%Y-%m-%d')"
);
String updateStartDate = pagerQuery.getUpdateStartDate();
String updateEndDate = pagerQuery.getUpdateEndDate();
qw.apply(StringUtils.isNotEmpty(updateStartDate), "date_format (a.updateDate,'%Y-%m-%d') >= date_format('" + updateStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(updateEndDate), "date_format (a.updateDate,'%Y-%m-%d') <= date_format('" + updateEndDate + "','%Y-%m-%d')"
);
qw.eq("1", "1");
qw.orderBy(true, true, "a.useOrgName")
.orderBy(true, true, "a.vinNo")
@ -978,55 +1028,34 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
records.removeAll(Collections.singleton(null));
if (!records.isEmpty()) {
for (RepaymentStatisticsVo record : records) {
String sid = record.getSid();
List<String> updateTimes = baseMapper.selnewUpdateTimeByPlanSid(sid);
updateTimes.removeAll(Collections.singleton(null));
if (!updateTimes.isEmpty()) {
String updateTime = updateTimes.get(0);
if (StringUtils.isNotBlank(record.getUpdateDate())) {
try {
Date updateTimeParse = sdf.parse(updateTime);
Date dueDateParse = sdf.parse(record.getDueDate());
String format = sdf.format(new Date());
Date parseNewDate = sdf.parse(format);
if (updateTimeParse.compareTo(dueDateParse) > 0) {
record.setNowOverdue("0");
} else {
record.setNowOverdue("1");
}
if (updateTimeParse.compareTo(parseNewDate) == 0) {
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
cal_1.add(Calendar.DAY_OF_MONTH, -1);
record.setUpdateDate(sdf.format(cal_1.getTime()));
} else {
record.setUpdateDate(sdf.format(updateTimeParse));
}
for (String time : updateTimes) {
Date parseTime = sdf.parse(time);
if (parseTime.compareTo(dueDateParse) > 0) {
record.setDueOverdue("0");
Date u = sdf.parse(record.getUpdateDate());
Date d = sdf.parse(record.getDueDate());
if (d.compareTo(u) <= 0) {
BigDecimal sum = new BigDecimal(2);
if (StringUtils.isNotBlank(record.getOutstandingMoney())) {
sum = new BigDecimal(record.getOutstandingMoney());
}
if (StringUtils.isNotBlank(record.getFund())) {
sum = sum.add(new BigDecimal(record.getFund()));
}
if (StringUtils.isNotBlank(record.getBankBeInter())) {
sum = sum.add(new BigDecimal(record.getBankBeInter()));
}
if (sum.compareTo(BigDecimal.ZERO) > 0) {
record.setNowOverdue("0");
} else {
record.setNowOverdue("1");
}
}
if (StringUtils.isBlank(record.getDueOverdue())) {
record.setDueOverdue("1");
}
} catch (ParseException e) {
e.printStackTrace();
}
} else {
String format = sdf.format(new Date());
try {
Date parseNewDate = sdf.parse(format);
Date dueDateParse = sdf.parse(record.getDueDate());
if (parseNewDate.compareTo(dueDateParse) > 0) {
record.setNowOverdue("0");
record.setDueOverdue("0");
} else {
record.setNowOverdue("1");
record.setDueOverdue("1");
}
} catch (ParseException e) {
e.printStackTrace();
}
} else {
record.setNowOverdue("1");
}
}
}
@ -1034,58 +1063,6 @@ public class LoanRepaymentHistoryService extends MybatisBaseService<LoanRepaymen
records = records.stream().filter(r -> r.getNowOverdue().equals(pagerQuery.getNowOverdue()))
.collect(Collectors.toList());
}
if (StringUtils.isNotBlank(pagerQuery.getDueOverdue())) {
records = records.stream().filter(r -> r.getDueOverdue().equals(pagerQuery.getDueOverdue()))
.collect(Collectors.toList());
}
if (StringUtils.isNotBlank(pagerQuery.getUpdateStartDate()) || StringUtils.isNotBlank(pagerQuery.getUpdateEndDate())) {
records = records.stream().filter(new Predicate<RepaymentStatisticsVo>() {
@Override
public boolean test(RepaymentStatisticsVo v) {
if (StringUtils.isNotBlank(v.getUpdateDate())) {
if (StringUtils.isNotBlank(pagerQuery.getUpdateStartDate()) && StringUtils.isBlank(pagerQuery.getUpdateEndDate())) {
String updateStartDate = pagerQuery.getUpdateStartDate();
try {
Date parseUpdateTime = sdf.parse(v.getUpdateDate());
Date startTime = sdf.parse(updateStartDate);
if (parseUpdateTime.compareTo(startTime) >= 0) {
return true;
}
} catch (ParseException e) {
e.printStackTrace();
}
} else if (StringUtils.isBlank(pagerQuery.getUpdateStartDate()) && StringUtils.isNotBlank(pagerQuery.getUpdateEndDate())) {
String updateEndDate = pagerQuery.getUpdateEndDate();
try {
Date parseUpdateTime = sdf.parse(v.getUpdateDate());
Date endTime = sdf.parse(updateEndDate);
if (parseUpdateTime.compareTo(endTime) <= 0) {
return true;
}
} catch (ParseException e) {
e.printStackTrace();
}
} else {
String updateStartDate = pagerQuery.getUpdateStartDate();
String updateEndDate = pagerQuery.getUpdateEndDate();
try {
Date parseUpdateTime = sdf.parse(v.getUpdateDate());
Date endTime = sdf.parse(updateEndDate);
Date startTime = sdf.parse(updateStartDate);
if (parseUpdateTime.compareTo(endTime) <= 0 && parseUpdateTime.compareTo(startTime) >= 0) {
return true;
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
return false;
}
}).collect(Collectors.toList());
}
if (!records.isEmpty()) {
List<RepaymentStatisticsVo> lastList = this.pageBySubList(records, (int) pq.getSize(), (int) pq.getCurrent());
pagerVo.setRecords(lastList);

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java

@ -14,6 +14,7 @@ import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformatio
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
@ -37,4 +38,6 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper<LoanRepayment
List<MonRepayPeriodDetails> periodDetails(String saleVehSid);
List<LoanRepaymentPlanDetails> planList();
int updateTime(@Param("bankName")String bankName,@Param("updateTime") Date updateTime,@Param("useOrgSid") String useOrgSid);
}

124
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml

@ -1,6 +1,12 @@
<?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.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsMapper">
<update id="updateTime">
UPDATE loan_repayment_plan_details
SET updateTime = #{updateTime}
WHERE bankName = #{bankName}
and useOrgSid = #{useOrgSid};
</update>
<delete id="deletePlanDetails">
DELETE
FROM loan_repayment_plan_details
@ -12,16 +18,16 @@
from loan_repayment_plan_details
where bankContractNo = #{bankContractNo}
and `period` = #{period}
-- and policyOrOther = '0'
-- and policyOrOther = '0'
</select>
<select id="selBeMoney" resultType="java.lang.String">
SELECT (
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS yq_total
FROM `loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
WHERE lrpd.vinNo = #{no}
AND lrpd.period = #{period}
AND lrpd.bankContractNo = #{bankContractNo}
@ -31,69 +37,65 @@
</select>
<select id="details" resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.MonRepayDetails">
SELECT
lrpd.useOrgName,
lrpd.dept,
lrpd.staffName,
RIGHT(lrpd.`vinNo`, 8) AS vinNo,
lrpd.`loanContractNo`,
lrpd.`bankName`,
lrpd.bankContractNo,
lrpd.customer,
lrpd.borrowerName,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS notRepaidMoney
SELECT lrpd.useOrgName,
lrpd.dept,
lrpd.staffName,
RIGHT (lrpd.`vinNo`, 8) AS vinNo,
lrpd.`loanContractNo`,
lrpd.`bankName`,
lrpd.bankContractNo,
lrpd.customer,
lrpd.borrowerName,
(
lrpd.`dueMoney` - SUM (IFNULL(lrh.actualMoney, 0))
) AS notRepaidMoney
FROM
`loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
`loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
WHERE DATE_FORMAT(lrpd.dueDate
, '%Y-%m-%d')
&lt; CURDATE()
AND lrpd.busVinSid = #{saleVehSid}
GROUP BY lrpd.`sid`
HAVING (notRepaidMoney > 0)
ORDER BY lrpd.period
LIMIT 1
LIMIT 1
</select>
<select id="periodDetails" resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.MonRepayPeriodDetails">
SELECT
lrpd.period,
lrpd.dueMoney,
SUM(IFNULL(lrh.actualMoney, 0)) AS receiptMoney,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS notRepaidMoney
FROM
`loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT
saleVehSid,
createTime
FROM
loan_be_collection_record
ORDER BY createTime DESC
LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
SELECT lrpd.period,
lrpd.dueMoney,
SUM(IFNULL(lrh.actualMoney, 0)) AS receiptMoney,
(
lrpd.`dueMoney` - SUM(IFNULL(lrh.actualMoney, 0))
) AS notRepaidMoney
FROM `loan_repayment_plan_details` lrpd
LEFT JOIN `loan_repayment_history` lrh
ON lrh.planDetailSid = lrpd.`sid`
LEFT JOIN anrui_buscenter.`bus_sales_order_vehicle` bv
ON lrpd.busVinSid = bv.sid
LEFT JOIN
(SELECT saleVehSid,
createTime
FROM loan_be_collection_record
ORDER BY createTime DESC LIMIT 1) lr
ON lrpd.busVinSid = lr.saleVehSid
LEFT JOIN anrui_crm.`crm_customer_temp` ct
ON lrpd.customerSid = ct.sid
WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') &lt; CURDATE()
AND lrpd.busVinSid = #{saleVehSid}
GROUP BY lrpd.`sid`
@ -102,6 +104,8 @@
</select>
<select id="planList" resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails">
select * from anrui_riskcenter.loan_repayment_plan_details where paymentMoney>0
select *
from anrui_riskcenter.loan_repayment_plan_details
where paymentMoney > 0
</select>
</mapper>

4
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java

@ -111,4 +111,8 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
public List<LoanRepaymentPlanDetails> planList() {
return baseMapper.planList();
}
public int updateTime(String bankName, Date updateTime,String useOrgSid) {
return baseMapper.updateTime(bankName,updateTime,useOrgSid);
}
}

128
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java

@ -2,6 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loantransferpaymentapply;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.math.Money;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -9,6 +10,10 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBankFeign;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
@ -48,6 +53,7 @@ import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -57,6 +63,7 @@ import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;
/**
@ -89,6 +96,10 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
private FlowTaskFeign flowTaskFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FinPaymentrecordFeign finPaymentrecordFeign;
@Autowired
private FinManufacturerBankFeign finManufacturerBankFeign;
public ResultBean<LoanTransferPaymentApplyInit> paymentInit(String[] sids) {
ResultBean<LoanTransferPaymentApplyInit> rb = ResultBean.fireFail();
@ -585,6 +596,10 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
baseMapper.updateById(apply);
List<LoanTransferPaymentRecord> loanTransferPaymentRecords = loanTransferPaymentRecordService.selByMainSid(businessSid);
if (!loanTransferPaymentRecords.isEmpty()) {
String payFormKey = apply.getPayFormKey(); //01按资方合同编号单笔付款/02按收款账号合并付款
//按照合同号合并付款
Map<String, BigDecimal> map = new HashMap<>();
Set<String> setConOrNumber = new HashSet<>();
for (LoanTransferPaymentRecord applyRecord : loanTransferPaymentRecords) {
LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid());
if (null != repaymentHistory) {
@ -602,11 +617,116 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService<LoanTran
transfer.setDataTime(new DateTime());
transfer.setBuckleKey("001");
transfer.setBuckle("未申请");
String money = String.valueOf(applyRecord.getTransferPrincipal());
transfer.setActualMoney(new BigDecimal("-" + money));
transfer.setUpdateState("1");
transfer.setUpdateTime(new DateTime());
BigDecimal money = new BigDecimal(2);
if (null != applyRecord.getTransferPrincipal()) {
money = applyRecord.getTransferPrincipal();
}
if (null != applyRecord.getDefaultInterest()) {
money = applyRecord.getDefaultInterest().add(money);
}
String amount = String.valueOf(money);
transfer.setActualMoney(new BigDecimal("-" + amount));
loanRepaymentHistoryService.insert(transfer);
//推送出纳代付款列表
}
if (payFormKey.equals("01")) {
if (StringUtils.isNotBlank(applyRecord.getBankContractNo())) {
setConOrNumber.add(applyRecord.getBankContractNo());
}
} else if (payFormKey.equals("02")) {
if (StringUtils.isNotBlank(applyRecord.getAccountNumber())) {
setConOrNumber.add(applyRecord.getAccountNumber());
}
}
}
if (!setConOrNumber.isEmpty()) {
for (String c : setConOrNumber) {
BigDecimal decimal = new BigDecimal(0);
List<LoanTransferPaymentRecord> collect = loanTransferPaymentRecords.stream().filter(new Predicate<LoanTransferPaymentRecord>() {
@Override
public boolean test(LoanTransferPaymentRecord r) {
if (payFormKey.equals("01")) {
if (StringUtils.isNotBlank(r.getBankContractNo())) {
if (c.equals(r.getBankContractNo())) {
return true;
}
}
} else if (payFormKey.equals("02")) {
if (StringUtils.isNotBlank(r.getAccountNumber())) {
if (c.equals(r.getAccountNumber())) {
return true;
}
}
}
return false;
}
}).collect(Collectors.toList());
for (LoanTransferPaymentRecord p : collect) {
BigDecimal a = new BigDecimal(0);
BigDecimal b = new BigDecimal(0);
if (null != p.getTransferPrincipal()) {
a = p.getTransferPrincipal();
}
if (null != p.getDefaultInterest()) {
b = p.getDefaultInterest();
}
decimal = a.add(b).add(decimal);
}
map.put(c, decimal);
}
if (!map.isEmpty()) {
for (Map.Entry<String, BigDecimal> entry : map.entrySet()) {
FinPaymentrecordDto payDto = new FinPaymentrecordDto();
payDto.setBusSid(apply.getSid());
payDto.setCreateBySid(apply.getCreateBySid());
payDto.setCost(entry.getValue().intValue());
payDto.setAccountsReceive(entry.getValue().intValue());
payDto.setCostTitleKey("008");
payDto.setCostTitleValue("月还");
payDto.setCostTypeKey("006");
payDto.setCostTypeValue("月还代收");
if (StringUtils.isNotBlank(apply.getPayRemarks())) {
payDto.setBusRemarks(apply.getPayRemarks());
}
payDto.setUseOrgSid(apply.getUseOrgSid());
payDto.setCreateOrgSid(apply.getUseOrgSid());
List<LoanTransferPaymentRecord> collect = loanTransferPaymentRecords.stream().filter(new Predicate<LoanTransferPaymentRecord>() {
@Override
public boolean test(LoanTransferPaymentRecord r) {
if (payFormKey.equals("01")) {
if (StringUtils.isNotBlank(r.getBankContractNo())) {
if (entry.getKey().equals(r.getBankContractNo())) {
return true;
}
}
} else if (payFormKey.equals("02")) {
if (StringUtils.isNotBlank(r.getAccountNumber())) {
if (entry.getKey().equals(r.getAccountNumber())) {
return true;
}
}
}
return false;
}
}).collect(Collectors.toList());
if (!collect.isEmpty()) {
LoanTransferPaymentRecord paymentRecord = collect.get(0);
if (StringUtils.isNotBlank(paymentRecord.getAccountNumber())) {
payDto.setReceiveBankAccount(paymentRecord.getAccountNumber());
FinManufacturerBank bank = finManufacturerBankFeign.selOneByBankNo(paymentRecord.getAccountNumber(), apply.getUseOrgSid()).getData();
if (null != bank) {
if (StringUtils.isNotBlank(bank.getDepositBank())) {
payDto.setReceiveBank(bank.getDepositBank());
}
}
}
if (StringUtils.isNotBlank(paymentRecord.getAccount())) {
payDto.setReceiveCompany(paymentRecord.getAccount());
}
}
finPaymentrecordFeign.save(payDto);
}
}
}
}

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml

@ -10,9 +10,9 @@
</delete>
<select id="selByMainSid"
resultType="com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord">
select *
FROM loan_transfer_payment_record
WHERE mainSid = #{mainSid}
select r.*
FROM loan_transfer_payment_record as r
WHERE r.mainSid = #{mainSid}
</select>
<select id="selByBankContractNo"
resultType="com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord">

Loading…
Cancel
Save