Browse Source

交回车辆入库推送扣回入库凭证

zhanglei
dimengzhe 1 month ago
parent
commit
eb5e74bda9
  1. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/AlrepaidAndArrVo.java
  2. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java
  3. 79
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  4. 18
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
  5. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyMapper.java
  6. 22
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyMapper.xml
  7. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java
  8. 163
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java

2
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/AlrepaidAndArrVo.java

@ -53,4 +53,6 @@ public class AlrepaidAndArrVo implements Vo {
private String alRepaidMoneyConPeriod; // 已还金额换算期数
@ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod; // 逾期金额换算期数
private String money;
}

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

@ -103,4 +103,10 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper<LoanRepayment
void updatePaymentMoneyBySids(@Param("planSids") List<String> planSids);
int updateDataTime(@Param("format") String format);
List<LoanRepaymentPlanDetails> selectByBusVinSid(@Param("busVinSid") String busVinSid);
String getYqLq(@Param("busVinSid") String busVinSid);
String getBj(@Param("busVinSid") String busVinSid);
}

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

@ -934,4 +934,83 @@
AND scheduleSid = #{scheduleSid}
GROUP BY dueDate
</select>
<select id="selectByBusVinSid"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails">
select * from loan_repayment_plan_details where busVinSid = #{busVinSid}
</select>
<select id="getYqLq" resultType="java.lang.String">
SELECT
ROUND(
SUM(ss.yq_total) +
COALESCE(lbpv_sum.bankBeInter_sum, 0) +
COALESCE(lfd_sum.fund_sum, 0),
2) AS beMoney
FROM (
SELECT
lrpd.sid,
lrpd.busVinSid,
(lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0)) AS yq_total
FROM loan_repayment_plan_details lrpd
LEFT JOIN loan_repayment_history lrh
ON lrh.planDetailSid = lrpd.sid
WHERE lrpd.dueDate &lt;= lrpd.updateTime
AND lrpd.busVinSid = #{saleVehSid}
AND lrpd.oweState = 0 -- 只筛选已累欠(oweState = 0)
GROUP BY lrpd.sid
) ss
LEFT JOIN (
SELECT
saleVehSid,
SUM(bankBeInter) AS bankBeInter_sum
FROM loan_be_padsincere_veh
WHERE saleVehSid = #{saleVehSid}
GROUP BY saleVehSid
) lbpv_sum ON lbpv_sum.saleVehSid = ss.busVinSid
LEFT JOIN (
SELECT
a.busVinSid,
SUM(a.fund) AS fund_sum
FROM (
SELECT
(fjj.reveivableMoney - fjj.m) AS fund,
lp.busVinSid
FROM (
SELECT IFNULL((
SELECT SUM(subscriptionMoney)
FROM anrui_fin.fin_selected_receivables_detailed AS s
WHERE s.auditState = '3'
AND s.receivablesSid = fj.sid
), 0) AS m,
fj.*
FROM (
SELECT j.busSid, j.sid, j.reveivableMoney
FROM anrui_fin.fin_uncollected_receivables_detailed_jr AS j
WHERE j.payCostTitleKey = '006'
) AS fj
) AS fjj
LEFT JOIN loan_repayment_plan_details lp
ON lp.sid = fjj.busSid
WHERE lp.dueDate &lt;= lp.updateTime
AND lp.busVinSid = #{saleVehSid}
) a
GROUP BY a.busVinSid
) lfd_sum ON lfd_sum.busVinSid = ss.busVinSid
GROUP BY ss.busVinSid
HAVING beMoney > 0
</select>
<select id="getBj" resultType="java.lang.String">
SELECT
(lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0)) AS yq_total
FROM loan_repayment_plan_details lrpd
LEFT JOIN loan_repayment_history lrh
ON lrh.planDetailSid = lrpd.sid
WHERE lrpd.dueDate &lt;= lrpd.updateTime -- 到期日已过
AND lrpd.busVinSid = #{busVinSid}
AND lrpd.oweState = 1
</select>
</mapper>

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

@ -121,6 +121,7 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
public String reAdvancesOrPaymentMoney(String pSid) {
return baseMapper.reAdvancesOrPaymentMoney(pSid);
}
public String reAdvancesOrPaymentMoneyOther(String pSid) {
return baseMapper.reAdvancesOrPaymentMoneyOther(pSid);
}
@ -132,6 +133,7 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
public String InsertForCheckPaymentAndBank(String sid) {
return baseMapper.InsertForCheckPaymentAndBank(sid);
}
public String InsertForCheckPaymentAndBankOther(String sid) {
return baseMapper.InsertForCheckPaymentAndBankOther(sid);
}
@ -183,7 +185,7 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
}
public LoanRepaymentPlanMoneyVo selVehSidAndPeriod(String busVinSid, String period,String bankContractNo) {
public LoanRepaymentPlanMoneyVo selVehSidAndPeriod(String busVinSid, String period, String bankContractNo) {
return baseMapper.selVehSidAndPeriod(busVinSid, period, bankContractNo);
}
@ -343,7 +345,7 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
}
public List<LoanRepaymentPlanDetails> selByMainSidAndPolicyOrOther(String sid, String s) {
return baseMapper.selByMainSidAndPolicyOrOther(sid,s);
return baseMapper.selByMainSidAndPolicyOrOther(sid, s);
}
public void updateImportDataList(List<LoanRepaymentPlanDetails> planDetails) {
@ -372,4 +374,16 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa
public int updateDataTime(String format) {
return baseMapper.updateDataTime(format);
}
public List<LoanRepaymentPlanDetails> selectByBusVinSid(String busVinSid) {
return baseMapper.selectByBusVinSid(busVinSid);
}
//逾期且累欠的金额
public String getYqLq(String busVinSid){
return baseMapper.getYqLq(busVinSid);
}
public String getBj(String busVinSid) {
return baseMapper.getBj(busVinSid);
}
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyMapper.java

@ -76,4 +76,6 @@ public interface LoanRestoreReportApplyMapper extends BaseMapper<LoanRestoreRepo
String getDqyqje2(String saleVehSid);
String getYqjehsqs2(String saleVehSid);
String getMoney(String saleVehSid);
}

22
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyMapper.xml

@ -366,4 +366,26 @@
) lfd_sum ON lfd_sum.busVinSid = ss.busVinSid
GROUP BY ss.busVinSid having yqjehsqs>0
</select>
<select id="getMoney" resultType="java.lang.String">
SELECT
ROUND(
SUM(ss.yq_total),
2
) AS beMoney
FROM (
SELECT
lrpd.sid,
lrpd.busVinSid,
(lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0)) AS yq_total
FROM loan_repayment_plan_details lrpd
LEFT JOIN loan_repayment_history lrh
ON lrh.planDetailSid = lrpd.sid
WHERE lrpd.dueDate &lt;= lrpd.updateTime
AND lrpd.busVinSid = #{saleVehSid}
GROUP BY lrpd.sid
) ss
GROUP BY ss.busVinSid having beMoney>0
</select>
</mapper>

3
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java

@ -699,6 +699,9 @@ public class LoanRestoreReportApplyService extends MybatisBaseService<LoanRestor
//逾期金额换算期数
String yqjehsqs = baseMapper.getYqjehsqs2(saleVehSid);
alrepaidAndArrVo.setBeOverdueMoneyAndPeriod(yqjehsqs);
String money = baseMapper.getMoney(saleVehSid);
alrepaidAndArrVo.setMoney(money);
return alrepaidAndArrVo;
}

163
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanreturninboundapply/LoanReturnInboundApplyService.java

@ -6,11 +6,21 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelConfigFeign;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelVo;
import com.yxt.anrui.buscenter.api.busdeliveredapply.BusDeliveredApply;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusVinStateSetQuery;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.voucher.Voucher;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
@ -27,12 +37,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.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.*;
import com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable.*;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer;
import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto;
import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService;
import com.yxt.anrui.riskcenter.biz.loanreturninboundtrailer.LoanReturnInboundTrailerService;
import com.yxt.anrui.riskcenter.biz.loanreturnvehledger.LoanReturnVehLedgerService;
@ -89,6 +101,17 @@ public class LoanReturnInboundApplyService extends MybatisBaseService<LoanReturn
private LoanReturnVehLedgerService loanReturnVehLedgerService;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService;
public PagerVo<LoanReturnInboundApplyVo> listPageVo(PagerQuery<LoanReturnInboundApplyQuery> pq) {
LoanReturnInboundApplyQuery query = pq.getParams();
@ -562,7 +585,7 @@ public class LoanReturnInboundApplyService extends MybatisBaseService<LoanReturn
baseMapper.updateById(loanReturnInboundApply);
//推送到交回车辆台账
loanReturnVehLedgerService.saveVehLedger(businessSid);
//修改风控状态为交回:1
String busVinSid = loanReturnInboundApply.getBusVinSid();
@ -575,6 +598,22 @@ public class LoanReturnInboundApplyService extends MybatisBaseService<LoanReturn
//将资金占用费状态修改为0
busVinStateSetQuery.setState(0);
ResultBean resultBean2 = busSalesOrderVehicleFeign.setFundState(busVinStateSetQuery);
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
LoanReturnInboundApply finalLoanReturnInboundApply = loanReturnInboundApply;
Future future1 = pool.submit(() -> {
//推送财务凭证
//TOdO:
pushRiskToFin(finalLoanReturnInboundApply);
});
} catch (Exception e) {
e.printStackTrace();
}
} else {
//极光推送
@ -598,6 +637,128 @@ public class LoanReturnInboundApplyService extends MybatisBaseService<LoanReturn
}
}
//推送财务凭证
public void pushRiskToFin(LoanReturnInboundApply loanReturnInboundApply) {
Voucher voucher = new Voucher();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(loanReturnInboundApply.getUseOrgSid()).getData();
if (null != organizationVo) {
voucher.setAccountBook(organizationVo.getOrgCode());
voucher.setVoucherNo(organizationVo.getOrgCode());
}
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(loanReturnInboundApply.getCreateDeptSid()).getData();
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(loanReturnInboundApply.getBusVinSid()).getData();
String customerNumber = "";
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData();
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
bdCustomer.setFShortName(salesOrder.getContractNo());
if (StringUtils.isNotBlank(salesOrder.getPurchaseSystemSid())) {
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
}
bdCustomer.setTOrgIds(deptVo.getOrgCode());
if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) {
String vinNo = busSalesOrderVehicle.getLinkNo();
if (vinNo.length() > 8) {
linkNo = vinNo.substring(vinNo.length() - 8);
} else {
linkNo = busSalesOrderVehicle.getLinkNo();
}
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo);
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
}
}
AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr2(loanReturnInboundApply.getBusVinSid());
//应收贷款车欠款_待处理欠款_扣回车辆
BigDecimal all = BigDecimal.ZERO;
//应收贷款车欠款_到期欠款_累欠
BigDecimal lqMoney = BigDecimal.ZERO;
//应收贷款车欠款_未到期欠款_未到期欠款
BigDecimal wdqMoney = BigDecimal.ZERO;
//应收贷款车欠款_到期欠款_本金
BigDecimal bjMoney = BigDecimal.ZERO;
String lq = loanRepaymentPlanDetailsService.getYqLq(loanReturnInboundApply.getBusVinSid());
lqMoney = lqMoney.add(new BigDecimal(StringUtils.isBlank(lq)? "0" :lq));
//未到期欠款
String wdq = alrepaidAndArrVo.getUnexpiredMoney();
wdqMoney = wdqMoney.add(new BigDecimal(StringUtils.isBlank(wdq)?"0":wdq));
String bj = loanRepaymentPlanDetailsService.getBj(loanReturnInboundApply.getBusVinSid());
bjMoney = bjMoney.add(new BigDecimal(StringUtils.isBlank(bj)?"0":bj));
all = lqMoney.add(wdqMoney).add(bjMoney);
List<Voucher.VoucherResultDetailDto> voucherResultDetailDtos = new ArrayList<>();
//借方
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto();
//贷方
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf1 = new Voucher.VoucherResultDetailDto();
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf2 = new Voucher.VoucherResultDetailDto();
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf3 = new Voucher.VoucherResultDetailDto();
//-------------------------------------------应收贷款车欠款_待处理欠款_扣回车辆
voucherResultDetailDtoJf.setSummary("扣回车辆入库");
voucherResultDetailDtoJf.setSubjectNo("1201.03.01");
//核算部门
voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoJf.setDimensionCustom(customerNumber);
voucherResultDetailDtoJf.setDebit(all.toString());
voucherResultDetailDtos.add(voucherResultDetailDtoJf);
//---------------------------------------------应收贷款车欠款_到期欠款_累欠
voucherResultDetailDtoDf1.setSummary("扣回车辆入库");
voucherResultDetailDtoDf1.setSubjectNo("1201.02.03");
//核算部门
voucherResultDetailDtoDf1.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf1.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf1.setCredit(lqMoney.toString());
voucherResultDetailDtos.add(voucherResultDetailDtoDf1);
//--------------------------------------------应收贷款车欠款_未到期欠款_未到期欠款
voucherResultDetailDtoDf2.setSummary("扣回车辆入库");
voucherResultDetailDtoDf2.setSubjectNo("1201.01.00");
//核算部门
voucherResultDetailDtoDf2.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf2.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf2.setCredit(wdqMoney.toString());
voucherResultDetailDtos.add(voucherResultDetailDtoDf2);
//-------------------------------------------应收贷款车欠款_到期欠款_本金
voucherResultDetailDtoDf3.setSummary("扣回车辆入库");
voucherResultDetailDtoDf3.setSubjectNo("1201.02.01");
//核算部门
voucherResultDetailDtoDf3.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf3.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf3.setCredit(bjMoney.toString());
voucherResultDetailDtos.add(voucherResultDetailDtoDf3);
voucher.setResultDetails(voucherResultDetailDtos);
finKingDeeFeign.saveVoucher(voucher);
}
private int submitBusinessData(SubmitReturnInbondApplyDto dto, LoanReturnInboundApply loanReturnInboundApply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {

Loading…
Cancel
Save