|
|
@ -31,7 +31,19 @@ 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.bussalesordervehicle.BusSalesOrderVehicle; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; |
|
|
|
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; |
|
|
@ -62,11 +74,15 @@ import com.yxt.anrui.riskcenter.api.loancaseprogresstrial.LoanCaseProgressTrial; |
|
|
|
import com.yxt.anrui.riskcenter.api.loancaseprogressveh.LoanCaseProgressVeh; |
|
|
|
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.biz.loancaseexecuteveh.LoanCaseExecuteVehService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loancaseprogress.LoanCaseProgressService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loancaseprogresstrial.LoanCaseProgressTrialService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loancaseprogressveh.LoanCaseProgressVehService; |
|
|
|
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.common.base.config.component.FileUploadComponent; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFeign; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFlowVo; |
|
|
@ -81,7 +97,9 @@ import com.yxt.common.core.vo.PagerVo; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
@ -126,6 +144,20 @@ public class LoanCaseExecuteApplyService extends MybatisBaseService<LoanCaseExec |
|
|
|
private FlowTaskFeign flowTaskFeign; |
|
|
|
@Autowired |
|
|
|
private FlowFeign flowFeign; |
|
|
|
@Autowired |
|
|
|
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign; |
|
|
|
@Autowired |
|
|
|
private BusSalesOrderFeign busSalesOrderFeign; |
|
|
|
@Autowired |
|
|
|
private FinKingDeeFeign finKingDeeFeign; |
|
|
|
@Autowired |
|
|
|
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign; |
|
|
|
@Autowired |
|
|
|
private BasePurchaseSystemFeign basePurchaseSystemFeign; |
|
|
|
@Autowired |
|
|
|
private LoanRestoreReportApplyService loanRestoreReportApplyService; |
|
|
|
@Autowired |
|
|
|
private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService; |
|
|
|
|
|
|
|
public PagerVo<LoanCaseExecuteApplyVo> listPageVo(PagerQuery<LoanCaseExecuteApplyQuery> pq) { |
|
|
|
LoanCaseExecuteApplyQuery query = pq.getParams(); |
|
|
@ -495,7 +527,20 @@ public class LoanCaseExecuteApplyService extends MybatisBaseService<LoanCaseExec |
|
|
|
UpdateFlowFieldVo ufVo = resultBean.getData(); |
|
|
|
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); |
|
|
|
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { |
|
|
|
|
|
|
|
try { |
|
|
|
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() |
|
|
|
.setNameFormat("demo-pool-%d").build(); |
|
|
|
ExecutorService pool = new org.apache.tomcat.util.threads.ThreadPoolExecutor(2, 100, |
|
|
|
0L, TimeUnit.MILLISECONDS, |
|
|
|
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy()); |
|
|
|
Future future1 = pool.submit(() -> { |
|
|
|
//推送财务凭证
|
|
|
|
//TOdO:
|
|
|
|
pushRiskToFin(bv.getBusinessSid()); |
|
|
|
}); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
//极光推送
|
|
|
|
loanCaseExecuteApply = fetchBySid(businessSid); |
|
|
@ -518,6 +563,122 @@ public class LoanCaseExecuteApplyService extends MybatisBaseService<LoanCaseExec |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public void pushRiskToFin(String sid){ |
|
|
|
LoanCaseExecuteApply loanCaseExecuteApply = fetchBySid(sid); |
|
|
|
if(loanCaseExecuteApply != null){ |
|
|
|
Voucher voucher = new Voucher(); |
|
|
|
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(loanCaseExecuteApply.getUseOrgSid()).getData(); |
|
|
|
if (null != organizationVo) { |
|
|
|
voucher.setAccountBook(organizationVo.getOrgCode()); |
|
|
|
voucher.setVoucherNo(organizationVo.getOrgCode()); |
|
|
|
} |
|
|
|
List<Voucher.VoucherResultDetailDto> voucherResultDetailDtos = new ArrayList<>(); |
|
|
|
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(loanCaseExecuteApply.getDeptSid()).getData(); |
|
|
|
List<String> busVinSidList = loanCaseProgressVehService.selectByMainSid(loanCaseExecuteApply.getBusSid()); |
|
|
|
for (int i = 0; i < busVinSidList.size(); i++) { |
|
|
|
String busVinSid = busVinSidList.get(i); |
|
|
|
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()); |
|
|
|
} |
|
|
|
} |
|
|
|
// bdCustomers.add(bdCustomer);
|
|
|
|
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); |
|
|
|
if (resultBean.getSuccess()) { |
|
|
|
customerNumber = bdCustomer.getFNumber(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
customerNumber = busSalesOrderVehicle.getTemporaryNo(); |
|
|
|
} |
|
|
|
} |
|
|
|
AlrepaidAndArrVo alrepaidAndArrVo = loanRestoreReportApplyService.getAlrepaidAndArr2(busVinSid); |
|
|
|
//应收贷款车欠款_待处理欠款_处置车辆_已诉讼-当前欠款合计--不含资金占用费
|
|
|
|
BigDecimal all = BigDecimal.ZERO; |
|
|
|
//预申请坏账金额
|
|
|
|
BigDecimal ysqhz = BigDecimal.ZERO; |
|
|
|
//其中执行欠款金额
|
|
|
|
BigDecimal qzzxqk = BigDecimal.ZERO; |
|
|
|
String allMoney = loanRepaymentPlanDetailsService.selectAllMoney(busVinSid); |
|
|
|
all = all.add(StringUtils.isNotBlank(allMoney)?new BigDecimal(allMoney):BigDecimal.ZERO); |
|
|
|
|
|
|
|
|
|
|
|
//贷方
|
|
|
|
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto(); |
|
|
|
//借方
|
|
|
|
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto(); |
|
|
|
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf2 = new Voucher.VoucherResultDetailDto(); |
|
|
|
//-------------------------------------------应收贷款车欠款_待处理欠款_处置车辆_已诉讼-当前欠款合计
|
|
|
|
if (all.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
voucherResultDetailDtoDf.setSummary(customerNumber+"转执行"); |
|
|
|
voucherResultDetailDtoDf.setSubjectNo("1201.03.04.02"); |
|
|
|
//核算部门
|
|
|
|
voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode()); |
|
|
|
//核算客户
|
|
|
|
voucherResultDetailDtoDf.setDimensionCustom(customerNumber); |
|
|
|
voucherResultDetailDtoDf.setCredit(all.toString()); |
|
|
|
voucherResultDetailDtos.add(voucherResultDetailDtoDf); |
|
|
|
} |
|
|
|
|
|
|
|
//---------------------------------------------待处理财产损溢 风险准备金(输入)-预申请坏账金额
|
|
|
|
if (ysqhz.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
voucherResultDetailDtoJf.setSummary(customerNumber+"转执行"); |
|
|
|
voucherResultDetailDtoJf.setSubjectNo("1911.05"); |
|
|
|
//核算部门
|
|
|
|
voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode()); |
|
|
|
//核算客户
|
|
|
|
voucherResultDetailDtoJf.setDimensionCustom(customerNumber); |
|
|
|
voucherResultDetailDtoJf.setDebit(ysqhz.toString()); |
|
|
|
voucherResultDetailDtos.add(voucherResultDetailDtoJf); |
|
|
|
} |
|
|
|
|
|
|
|
//--------------------------------------------应收贷款车欠款_待处理欠款_待执行-其中执行欠款金额
|
|
|
|
if (qzzxqk.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
voucherResultDetailDtoJf2.setSummary(customerNumber+"转执行"); |
|
|
|
voucherResultDetailDtoJf2.setSubjectNo("1201.03.05"); |
|
|
|
//核算部门
|
|
|
|
voucherResultDetailDtoJf2.setDimensionDept(deptVo.getOrgCode()); |
|
|
|
//核算客户
|
|
|
|
voucherResultDetailDtoJf2.setDimensionCustom(customerNumber); |
|
|
|
voucherResultDetailDtoJf2.setDebit(qzzxqk.toString()); |
|
|
|
voucherResultDetailDtos.add(voucherResultDetailDtoJf2); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (!voucherResultDetailDtos.isEmpty()) { |
|
|
|
voucher.setResultDetails(voucherResultDetailDtos); |
|
|
|
finKingDeeFeign.saveVoucher(voucher); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<List<LoanCaseExecuteApplyNodeVo>> getPreviousNodesForReject(LoanCaseExecuteApplyNodeQuery query) { |
|
|
|
ResultBean<List<LoanCaseExecuteApplyNodeVo>> rb = ResultBean.fireFail(); |
|
|
|
BusinessVariables bv = new BusinessVariables(); |
|
|
|