diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java index 7818530a10..10f3f0579c 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanoutboundapply/LoanOutboundApplyService.java @@ -787,7 +787,7 @@ public class LoanOutboundApplyService extends MybatisBaseService + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyService.java index 97ae1e5d07..88be0095f0 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotapply/LoanSecondarySalesNotApplyService.java @@ -30,11 +30,23 @@ import cn.hutool.core.date.DateUtil; 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.common.utils.Rule; +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.bussalesorderreturnveh.BusSalesOrderReturnVehDetailsVo; import com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehApplyDetailsVo; import com.yxt.anrui.buscenter.api.bussalesorderreturnvehapply.BusSalesOrderReturnVehPdfVo; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo; +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.FlowProcessMapQuery; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; @@ -54,8 +66,10 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; +import com.yxt.anrui.riskcenter.api.loanoutboundapply.LoanOutboundApply; import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo; import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.*; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost; import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo; import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.*; import com.yxt.anrui.riskcenter.api.loansecondarysalesnotapply.flowable.*; @@ -63,6 +77,7 @@ import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesN import com.yxt.anrui.riskcenter.api.loansecondarysalesnotveh.LoanSecondarySalesNotVehDto; import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; +import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService; import com.yxt.anrui.riskcenter.biz.loansecondarysalesapply.LoanSecondarySalesApplyService; import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostService; @@ -90,6 +105,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.math.BigInteger; import java.util.*; +import java.util.concurrent.*; import java.util.stream.Collectors; import static java.util.Comparator.comparing; @@ -130,6 +146,19 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService listPageVo(PagerQuery pq) { LoanSecondarySalesNotApplyQuery query = pq.getParams(); QueryWrapper qw = new QueryWrapper<>(); @@ -542,6 +571,27 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy()); + LoanSecondarySalesNotApply finalLoanSecondarySalesNotApply = loanSecondarySalesNotApply; + Future future1 = pool.submit(() -> { + //推送不追偿申请凭证 + //TOdO: + List busVinSidList = loanSecondarySalesNotVehService.selectByMainSid(businessSid); + busVinSidList.removeAll(Collections.singleton(null)); + if(!busVinSidList.isEmpty()){ + pushRiskToFin2(finalLoanSecondarySalesNotApply,busVinSidList); + } + }); + } catch (Exception e) { + e.printStackTrace(); + } + } else { //极光推送 loanSecondarySalesNotApply = fetchBySid(businessSid); @@ -564,6 +614,142 @@ public class LoanSecondarySalesNotApplyService extends MybatisBaseService busVinSidList) { + LoanSecondarySalesCost loanSecondarySalesCost = loanSecondarySalesCostService.selectMainSu(loanSecondarySalesNotApply.getSecSaleSid()); + Voucher voucher = new Voucher(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(loanSecondarySalesNotApply.getUseOrgSid()).getData(); + if (null != organizationVo) { + voucher.setAccountBook(organizationVo.getOrgCode()); + voucher.setVoucherNo(organizationVo.getOrgCode()); + } + List voucherResultDetailDtos = new ArrayList<>(); + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(loanSecondarySalesNotApply.getCreateDeptSid()).getData(); + for (int i = 0; i < busVinSidList.size(); i++){ + String busVinSid = busVinSidList.get(i); + //ToDo: + BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData(); + String customerNumber = ""; + BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData(); + if (salesOrder != null && busSalesOrderVehicle != null) { + //判断财务系统是否有客户 + Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData(); + String linkNo = ""; + BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData(); + if (!aBoolean) { + // List 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 resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + } + BigDecimal all = BigDecimal.ZERO;//扣回车辆费用=扣回入库-已认款+资方结清费用 + BigDecimal bxbzjMoney = BigDecimal.ZERO;//保险保证金 + BigDecimal cssMoney = BigDecimal.ZERO;//车损失---计算=扣回车辆费用-贷款保证金-保险保证金 + AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr2(busVinSid); + //应收贷款车欠款_到期欠款_累欠 + BigDecimal lqMoney = BigDecimal.ZERO; + //应收贷款车欠款_未到期欠款_未到期欠款 + BigDecimal wdqMoney = BigDecimal.ZERO; + //应收贷款车欠款_到期欠款_本金 + BigDecimal bjMoney = BigDecimal.ZERO; + BigDecimal zjzyfMoney = BigDecimal.ZERO; + String lq = loanRepaymentPlanDetailsService.getYqLq(busVinSid); + lqMoney = lqMoney.add(new BigDecimal(StringUtils.isBlank(lq) ? "0" : lq)); + //未到期欠款 + String wdq = loanRepaymentPlanDetailsService.getWdq(busVinSid); + wdqMoney = wdqMoney.add(new BigDecimal(StringUtils.isBlank(wdq) ? "0" : wdq)); + String bj = loanRepaymentPlanDetailsService.getBj(busVinSid); + bjMoney = bjMoney.add(new BigDecimal(StringUtils.isBlank(bj) ? "0" : bj)); + all = lqMoney.add(wdqMoney).add(bjMoney); + //已认款 + String subAll = baseMapper.selectByBusVinSid(busVinSid); + if(loanSecondarySalesCost.getBankSettleCost().compareTo(BigDecimal.ZERO)>0){ + all = all.add(loanSecondarySalesCost.getBankSettleCost()).subtract(new BigDecimal(subAll)); + } + + BigDecimal bankSettleCost = loanSecondarySalesCost.getBankSettleCost(); + all = all.subtract(new BigDecimal(subAll)).add(bankSettleCost); + BigDecimal loanDeposit = loanSecondarySalesCost.getLoanDeposit();//贷款保证金 + cssMoney = all.subtract(loanDeposit).subtract(bxbzjMoney);//车损失 + String zjzyf = alrepaidAndArrVo.getWheFundOccMoney(); + zjzyfMoney = zjzyfMoney.add(new BigDecimal(StringUtils.isBlank(zjzyf)?"0":zjzyf)); + + if(cssMoney.compareTo(BigDecimal.ZERO)>0){//贷方 + Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto(); + voucherResultDetailDtoDf.setSummary("**扣回车辆再次销售-不追偿处理"); + voucherResultDetailDtoDf.setSubjectNo("1201.03.04.01"); + //核算部门 + voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode()); + //核算客户 + voucherResultDetailDtoDf.setDimensionCustom(customerNumber); + voucherResultDetailDtoDf.setCredit(cssMoney.toString()); + voucherResultDetailDtos.add(voucherResultDetailDtoDf); + Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto(); + voucherResultDetailDtoJf.setSummary("**扣回车辆再次销售-不追偿处理"); + voucherResultDetailDtoJf.setSubjectNo("1911.05"); + //核算部门 + voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode()); + //核算客户 + voucherResultDetailDtoJf.setDimensionCustom(customerNumber); + voucherResultDetailDtoJf.setDebit(cssMoney.toString()); + voucherResultDetailDtos.add(voucherResultDetailDtoJf); + } + if(zjzyfMoney.compareTo(BigDecimal.ZERO)>0){ + Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto(); + voucherResultDetailDtoDf.setSummary("**扣回车辆再次销售-不追偿减免资金占用费"); + voucherResultDetailDtoDf.setSubjectNo("2191.05.00"); + //核算部门 + voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode()); + //核算客户 + voucherResultDetailDtoDf.setDimensionCustom(customerNumber); + voucherResultDetailDtoDf.setCredit(zjzyfMoney.negate().toString()); + voucherResultDetailDtos.add(voucherResultDetailDtoDf); + Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto(); + voucherResultDetailDtoJf.setSummary("**扣回车辆再次销售-不追偿减免资金占用费"); + voucherResultDetailDtoDf.setSubjectNo("1201.02.02"); + //核算部门 + voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode()); + //核算客户 + voucherResultDetailDtoJf.setDimensionCustom(customerNumber); + voucherResultDetailDtoJf.setDebit(zjzyfMoney.negate().toString()); + voucherResultDetailDtos.add(voucherResultDetailDtoJf); + + } + } + + if(!voucherResultDetailDtos.isEmpty()){ + voucher.setResultDetails(voucherResultDetailDtos); + finKingDeeFeign.saveVoucher(voucher); + } + } + public ResultBean> getPreviousNodesForReject(NodeQuery query) { ResultBean> rb = ResultBean.fireFail(); BusinessVariables bv = new BusinessVariables(); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.java index 8dff6f8d93..0273571b67 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.java @@ -40,4 +40,6 @@ public interface LoanSecondarySalesNotVehMapper extends BaseMapper selByMainSid(String mainSid); + + List selectByMainSid(String businessSid); } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.xml index 9dc41eed95..0096c13729 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehMapper.xml @@ -9,4 +9,10 @@ from loan_secondary_sales_not_veh where mainSid = #{s} + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehService.java index 7cc25cf931..4ca5f77a91 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesnotveh/LoanSecondarySalesNotVehService.java @@ -62,4 +62,8 @@ public class LoanSecondarySalesNotVehService extends MybatisBaseService selByMainSid(String mainSid) { return baseMapper.selByMainSid(mainSid); } + + public List selectByMainSid(String businessSid) { + return baseMapper.selectByMainSid(businessSid); + } } \ No newline at end of file