From e5ff599a5280f25c06a3fefd0c174765a582502c Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 26 May 2025 15:29:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E8=B4=AD=E5=87=AD=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LoanRepurchaseApplyMapper.java | 3 + .../LoanRepurchaseApplyMapper.xml | 7 + .../LoanRepurchaseApplyService.java | 223 ++++++++++++++++++ .../LoanRepurchaseCostMapper.java | 2 + .../LoanRepurchaseCostMapper.xml | 6 +- .../LoanRepurchaseCostService.java | 4 + 6 files changed, 242 insertions(+), 3 deletions(-) diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.java index 33549e5cdf..7671a22be7 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.java @@ -4,6 +4,7 @@ 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.fin.api.finmanufacturerbank.FinManufacturerBank; import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter; import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo; import com.yxt.anrui.riskcenter.api.loanrepurchaseapply.LoanRepurchaseApply; @@ -46,4 +47,6 @@ public interface LoanRepurchaseApplyMapper extends BaseMapper + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java index cbdcccbdf2..378a7228e8 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java @@ -8,13 +8,22 @@ 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.finmanufacturerbank.FinManufacturerBank; 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.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; @@ -24,6 +33,8 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign; +import com.yxt.anrui.portal.api.dictcommon.DictCommonVo; import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; @@ -118,6 +129,17 @@ public class LoanRepurchaseApplyService extends MybatisBaseService listPage(PagerQuery pq) { IPage page = PagerUtil.queryToPage(pq); LoanRepurchaseApplyQuery pagerQuery = pq.getParams(); @@ -718,6 +740,19 @@ public class LoanRepurchaseApplyService extends MybatisBaseService(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future1 = pool.submit(() -> { + pushRiskToFin(businessSid); + }); + } catch (Exception e) { + e.printStackTrace(); + } } else { //极光推送 loanRepurchaseApply = fetchBySid(businessSid); @@ -740,6 +775,194 @@ public class LoanRepurchaseApplyService extends MybatisBaseService voucherResultDetailDtos = new ArrayList<>(); + LoanRepurchaseCost loanRepurchaseCost = loanRepurchaseCostService.selectByMainSid(businessSid); + DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(loanRepurchaseApply.getBankName(), "investorsCode").getData(); + Voucher voucher = new Voucher(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(loanRepurchaseApply.getUseOrgSid()).getData(); + if (null != organizationVo) { + voucher.setAccountBook(organizationVo.getOrgCode()); + voucher.setVoucherNo(organizationVo.getOrgCode()); + } + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(loanRepurchaseApply.getCreateDeptSid()).getData(); + String busVinSid = loanRepurchaseApply.getBusVinSid(); + 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) { + 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()); + } + } + ResultBean resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + } + if(loanRepurchaseCost.getBankSettlePrice() != null && loanRepurchaseCost.getBankSettlePrice().compareTo(BigDecimal.ZERO)>0){//资方结清金额>0 + BigDecimal loanDeposit = loanRepurchaseCost.getLoanDeposit();//贷款保证金 + BigDecimal all = BigDecimal.ZERO; + if(loanDeposit != null && loanDeposit.compareTo(BigDecimal.ZERO)>0){ + all = all.add(loanDeposit); + Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto(); + voucherResultDetailDtoDf.setSummary(loanRepurchaseApply.getBankName() + "个贷保证金抵结清款"); + voucherResultDetailDtoDf.setSubjectNo("1009.01.00"); + //核算部门 + voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode()); + //核算客户 + voucherResultDetailDtoDf.setDimensionCustom(customerNumber); + voucherResultDetailDtoDf.setCredit(loanDeposit.toString()); + voucherResultDetailDtos.add(voucherResultDetailDtoDf); + } + Voucher.VoucherResultDetailDto voucherResultDetailDtoDf2 = new Voucher.VoucherResultDetailDto(); + String accountNumber = loanRepurchaseCost.getBankAccount(); + String payTypeCode = ""; + FinManufacturerBank manufacturerBank = baseMapper.selectByAccountNumAndUseSid(accountNumber,loanRepurchaseApply.getUseOrgSid()); + if (null != manufacturerBank) { + payTypeCode = manufacturerBank.getDueBankKey(); + } + + all= all.add(loanRepurchaseCost.getBankSettlePrice()); + if ("02".equals(payTypeCode)) { + voucherResultDetailDtoDf2.setSubjectNo("1002.01.00"); + } else if ("01".equals(payTypeCode)) { + voucherResultDetailDtoDf2.setSubjectNo("1002.02.01"); + } + voucherResultDetailDtoDf2.setSummary(loanRepurchaseApply.getBankName() + "结清"); + //核算部门 + voucherResultDetailDtoDf2.setDimensionDept(deptVo.getOrgCode()); + //核算客户 + voucherResultDetailDtoDf2.setDimensionCustom(customerNumber); + voucherResultDetailDtoDf2.setCredit(loanRepurchaseCost.getBankSettlePrice().toString()); + voucherResultDetailDtos.add(voucherResultDetailDtoDf2); + if(all.compareTo(BigDecimal.ZERO)>0){ + Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto(); + if (null != dictCommonVo) { + voucherResultDetailDtoJf.setSubjectNo(dictCommonVo.getDictValue()); + } + voucherResultDetailDtoJf.setSummary(loanRepurchaseApply.getBankName() + "结清"); + //核算部门 + voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode()); + //核算客户 + voucherResultDetailDtoJf.setDimensionCustom(customerNumber); + voucherResultDetailDtoJf.setCredit(all.toString()); + voucherResultDetailDtos.add(voucherResultDetailDtoJf); + } + } + + BigDecimal bankContractLiquidated = loanRepurchaseCost.getBankContractLiquidated();//合同违约金 + BigDecimal bankNominalPrice = loanRepurchaseCost.getBankNominalPrice();//名义价 + BigDecimal bankOtherReceivable = loanRepurchaseCost.getBankOtherReceivable();//资方其他应收 + BigDecimal all2 = bankContractLiquidated.add(bankNominalPrice).add(bankOtherReceivable); + if(bankContractLiquidated.compareTo(BigDecimal.ZERO)>0){ + Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto(); + if (null != dictCommonVo) { + voucherResultDetailDtoDf.setSubjectNo(dictCommonVo.getDictValue()); + } + voucherResultDetailDtoDf.setSummary("还其他费用-合同违约金"); + //核算部门 + voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode()); + //核算客户 + voucherResultDetailDtoDf.setDimensionCustom(customerNumber); + voucherResultDetailDtoDf.setCredit(bankContractLiquidated.toString()); + voucherResultDetailDtos.add(voucherResultDetailDtoDf); + } + if(bankNominalPrice.compareTo(BigDecimal.ZERO)>0){ + Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto(); + if (null != dictCommonVo) { + voucherResultDetailDtoDf.setSubjectNo(dictCommonVo.getDictValue()); + } + voucherResultDetailDtoDf.setSummary("名义价"); + //核算部门 + voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode()); + //核算客户 + voucherResultDetailDtoDf.setDimensionCustom(customerNumber); + voucherResultDetailDtoDf.setCredit(bankNominalPrice.toString()); + voucherResultDetailDtos.add(voucherResultDetailDtoDf); + } + if(bankOtherReceivable.compareTo(BigDecimal.ZERO)>0){ + Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto(); + if (null != dictCommonVo) { + voucherResultDetailDtoDf.setSubjectNo(dictCommonVo.getDictValue()); + } + voucherResultDetailDtoDf.setSummary("资方其他费用"); + //核算部门 + voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode()); + //核算客户 + voucherResultDetailDtoDf.setDimensionCustom(customerNumber); + voucherResultDetailDtoDf.setCredit(bankOtherReceivable.toString()); + voucherResultDetailDtos.add(voucherResultDetailDtoDf); + } + if(all2.compareTo(BigDecimal.ZERO)>0){ + Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto(); + if("1".equals(busSalesOrderVehicle.getRiskState().toString())){ + //应收贷款车欠款_待处理欠款_扣回车辆 + voucherResultDetailDtoJf.setSubjectNo("1201.03.01"); + }else if("7".equals(busSalesOrderVehicle.getRiskState().toString())){ + //应收贷款车欠款_待处理欠款_处置车辆_车辆处置损失 + voucherResultDetailDtoJf.setSubjectNo("1201.03.04.01"); + }else if("9".equals(busSalesOrderVehicle.getRiskState().toString())){ + //应收贷款车欠款_待处理欠款_诉讼车辆 + voucherResultDetailDtoJf.setSubjectNo("1201.03.03"); + }else if("11".equals(busSalesOrderVehicle.getRiskState().toString())){ + //应收贷款车欠款_待处理欠款_处置车辆_已诉讼 + voucherResultDetailDtoJf.setSubjectNo("1201.03.04.02"); + }else if("12".equals(busSalesOrderVehicle.getRiskState().toString())){ + //应收贷款车欠款_待处理欠款_待执行 + voucherResultDetailDtoJf.setSubjectNo("1201.03.05"); + }else { + if("0".equals(busSalesOrderVehicle.getRiskState().toString())){ + //应收贷款车欠款_到期欠款_累欠 + voucherResultDetailDtoJf.setSubjectNo("1201.02.03"); + } + } + voucherResultDetailDtoJf.setSummary("转科目"); + //核算部门 + voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode()); + //核算客户 + voucherResultDetailDtoJf.setDimensionCustom(customerNumber); + voucherResultDetailDtoJf.setCredit(all2.toString()); + voucherResultDetailDtos.add(voucherResultDetailDtoJf); + } + if(!voucherResultDetailDtos.isEmpty()){ + voucher.setResultDetails(voucherResultDetailDtos); + finKingDeeFeign.saveVoucher(voucher); + } + + } + + } + /** * 撤回 diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostMapper.java index 12fa867605..e8ee36fc38 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostMapper.java @@ -25,4 +25,6 @@ public interface LoanRepurchaseCostMapper extends BaseMapper @Delete("DELETE FROM loan_repurchase_cost WHERE mainSid = #{s}") void deleteByApplySid(String s); + + LoanRepurchaseCost selectByMainSid(String businessSid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostMapper.xml index 98e0db6504..8964573219 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostMapper.xml @@ -24,7 +24,7 @@ where b.mainSid = #{sid} - - - + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostService.java index 1eda5e075d..45a7249308 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostService.java @@ -45,4 +45,8 @@ public class LoanRepurchaseCostService extends MybatisBaseService