Browse Source

转诉讼科目申请通过后推送转诉讼凭证

master
dimengzhe 2 weeks ago
parent
commit
697a70b9a8
  1. 218
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitsubapply/LoanLawsuitSubApplyService.java

218
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanlawsuitsubapply/LoanLawsuitSubApplyService.java

@ -31,11 +31,19 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder; 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.base.common.utils.Rule;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; 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.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusVinStateSetQuery; 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.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
@ -62,6 +70,7 @@ import com.yxt.anrui.riskcenter.biz.loancaseprogress.LoanCaseProgressService;
import com.yxt.anrui.riskcenter.biz.loanlawsuitapply.LoanLawsuitApplyService; import com.yxt.anrui.riskcenter.biz.loanlawsuitapply.LoanLawsuitApplyService;
import com.yxt.anrui.riskcenter.biz.loanlawsuitsubveh.LoanLawsuitSubVehService; import com.yxt.anrui.riskcenter.biz.loanlawsuitsubveh.LoanLawsuitSubVehService;
import com.yxt.anrui.riskcenter.biz.loanlawsuitveh.LoanLawsuitVehService; import com.yxt.anrui.riskcenter.biz.loanlawsuitveh.LoanLawsuitVehService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
import com.yxt.anrui.riskcenter.biz.loanrepurchaseapply.LoanRepurchaseApplyService; import com.yxt.anrui.riskcenter.biz.loanrepurchaseapply.LoanRepurchaseApplyService;
import com.yxt.anrui.riskcenter.biz.loansettleapply.LoanSettleApplyService; import com.yxt.anrui.riskcenter.biz.loansettleapply.LoanSettleApplyService;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDetailsVo; import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDetailsVo;
@ -117,6 +126,16 @@ public class LoanLawsuitSubApplyService extends MybatisBaseService<LoanLawsuitSu
private FlowTaskFeign flowTaskFeign; private FlowTaskFeign flowTaskFeign;
@Autowired @Autowired
private MessageFeign messageFeign; private MessageFeign messageFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService;
public PagerVo<LoanLawsuitSubApplyVo> listPageVo(PagerQuery<LoanLawsuitSubApplyQuery> pq) { public PagerVo<LoanLawsuitSubApplyVo> listPageVo(PagerQuery<LoanLawsuitSubApplyQuery> pq) {
LoanLawsuitSubApplyQuery query = pq.getParams(); LoanLawsuitSubApplyQuery query = pq.getParams();
@ -477,6 +496,7 @@ public class LoanLawsuitSubApplyService extends MybatisBaseService<LoanLawsuitSu
0L, TimeUnit.MILLISECONDS, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy()); new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> { Future future1 = pool.submit(() -> {
pushRiskToFin(businessSid);
setRiskState(businessSid); setRiskState(businessSid);
}); });
} catch (Exception e) { } catch (Exception e) {
@ -505,6 +525,204 @@ public class LoanLawsuitSubApplyService extends MybatisBaseService<LoanLawsuitSu
} }
} }
public void pushRiskToFin(String businessSid){
LoanLawsuitSubApply lawsuitSubApply = fetchBySid(businessSid);
if(lawsuitSubApply != null){
Voucher voucher = new Voucher();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(lawsuitSubApply.getUseOrgSid()).getData();
if (null != organizationVo) {
voucher.setAccountBook(organizationVo.getOrgCode());
voucher.setVoucherNo(organizationVo.getOrgCode());
}
List<Voucher.VoucherResultDetailDto> voucherResultDetailDtos = new ArrayList<>();
List<Voucher.VoucherResultDetailDto> voucherResultDetailDto2 = new ArrayList<>();
List<Voucher.VoucherResultDetailDto> voucherResultDetailDto3 = new ArrayList<>();
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(lawsuitSubApply.getCreateDeptSid()).getData();
List<String> busVinSidList = loanLawsuitSubVehService.selectByMainSid(businessSid);
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());
}
}
ResultBean<String> resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
}
}
if("7".equals(busSalesOrderVehicle.getRiskState().toString())){
BigDecimal all = BigDecimal.ZERO;
String allMoney = loanRepaymentPlanDetailsService.selectAllMoney(busVinSid);
String wdqMoney = loanRepaymentPlanDetailsService.getWdq(busVinSid);
all = all.add(StringUtils.isNotBlank(allMoney) ? new BigDecimal(allMoney) : BigDecimal.ZERO).add(StringUtils.isNotBlank(wdqMoney) ? new BigDecimal(wdqMoney) : BigDecimal.ZERO);
//贷方
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto();
//借方
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto();
if (all.compareTo(BigDecimal.ZERO) > 0) {
voucherResultDetailDtoDf.setSummary(customerNumber + "转诉讼");
voucherResultDetailDtoDf.setSubjectNo("1201.03.04.01");
//核算部门
voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf.setCredit(all.toString());
voucherResultDetailDtos.add(voucherResultDetailDtoDf);
voucherResultDetailDtoJf.setSummary(customerNumber + "转诉讼");
voucherResultDetailDtoJf.setSubjectNo("1201.03.04.02");
//核算部门
voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoJf.setDimensionCustom(customerNumber);
voucherResultDetailDtoJf.setDebit(all.toString());
voucherResultDetailDtos.add(voucherResultDetailDtoJf);
}
}
if("0".equals(busSalesOrderVehicle.getRiskState().toString())){//未扣回,直接转诉讼
BigDecimal all = BigDecimal.ZERO;
//应收贷款车欠款_到期欠款_累欠
BigDecimal lqMoney = BigDecimal.ZERO;
//应收贷款车欠款_未到期欠款_未到期欠款
BigDecimal wdqMoney = BigDecimal.ZERO;
//应收贷款车欠款_到期欠款_本金
BigDecimal bjMoney = 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);
if (all.compareTo(BigDecimal.ZERO) != 0) {
//借方
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto();
voucherResultDetailDtoJf.setSummary("转诉讼科目");
voucherResultDetailDtoJf.setSubjectNo("1201.03.03");
//核算部门
voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoJf.setDimensionCustom(customerNumber);
voucherResultDetailDtoJf.setDebit(all.toString());
voucherResultDetailDto2.add(voucherResultDetailDtoJf);
}
if (lqMoney.compareTo(BigDecimal.ZERO) != 0) {
//贷方
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf1 = new Voucher.VoucherResultDetailDto();
voucherResultDetailDtoDf1.setSummary("转诉讼科目");
voucherResultDetailDtoDf1.setSubjectNo("1201.02.03");
//核算部门
voucherResultDetailDtoDf1.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf1.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf1.setCredit(lqMoney.toString());
voucherResultDetailDto2.add(voucherResultDetailDtoDf1);
}
if (wdqMoney.compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf2 = new Voucher.VoucherResultDetailDto();
voucherResultDetailDtoDf2.setSummary("转诉讼科目");
voucherResultDetailDtoDf2.setSubjectNo("1201.01.00");
//核算部门
voucherResultDetailDtoDf2.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf2.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf2.setCredit(wdqMoney.toString());
voucherResultDetailDto2.add(voucherResultDetailDtoDf2);
}
if (bjMoney.compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf3 = new Voucher.VoucherResultDetailDto();
voucherResultDetailDtoDf3.setSummary("转诉讼科目");
voucherResultDetailDtoDf3.setSubjectNo("1201.02.01");
//核算部门
voucherResultDetailDtoDf3.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf3.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf3.setCredit(bjMoney.toString());
voucherResultDetailDto2.add(voucherResultDetailDtoDf3);
}
}
if("1".equals(busSalesOrderVehicle.getRiskState().toString())){//扣回转诉讼
BigDecimal all = BigDecimal.ZERO;
String allMoney = loanRepaymentPlanDetailsService.selectAllMoney(busVinSid);
String wdqMoney = loanRepaymentPlanDetailsService.getWdq(busVinSid);
all = all.add(StringUtils.isNotBlank(allMoney) ? new BigDecimal(allMoney) : BigDecimal.ZERO).add(StringUtils.isNotBlank(wdqMoney) ? new BigDecimal(wdqMoney) : BigDecimal.ZERO);
//贷方
Voucher.VoucherResultDetailDto voucherResultDetailDtoDf = new Voucher.VoucherResultDetailDto();
//借方
Voucher.VoucherResultDetailDto voucherResultDetailDtoJf = new Voucher.VoucherResultDetailDto();
if (all.compareTo(BigDecimal.ZERO) > 0) {
voucherResultDetailDtoDf.setSummary("转诉讼科目");
voucherResultDetailDtoDf.setSubjectNo("1201.03.01");
//核算部门
voucherResultDetailDtoDf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoDf.setDimensionCustom(customerNumber);
voucherResultDetailDtoDf.setCredit(all.toString());
voucherResultDetailDto3.add(voucherResultDetailDtoDf);
voucherResultDetailDtoJf.setSummary("转诉讼科目");
voucherResultDetailDtoJf.setSubjectNo("1201.03.03");
//核算部门
voucherResultDetailDtoJf.setDimensionDept(deptVo.getOrgCode());
//核算客户
voucherResultDetailDtoJf.setDimensionCustom(customerNumber);
voucherResultDetailDtoJf.setDebit(all.toString());
voucherResultDetailDto3.add(voucherResultDetailDtoJf);
}
}
}
if (!voucherResultDetailDtos.isEmpty()) {
voucher.setResultDetails(voucherResultDetailDtos);
finKingDeeFeign.saveVoucher(voucher);
}
if (!voucherResultDetailDto2.isEmpty()) {
voucher.setResultDetails(voucherResultDetailDto2);
finKingDeeFeign.saveVoucher(voucher);
}
if (!voucherResultDetailDto3.isEmpty()) {
voucher.setResultDetails(voucherResultDetailDto3);
finKingDeeFeign.saveVoucher(voucher);
}
}
}
public void setRiskState(String businessSid){ public void setRiskState(String businessSid){
List<String> busVinSidJh = new ArrayList<>(); List<String> busVinSidJh = new ArrayList<>();
List<String> busVinSidSecond = new ArrayList<>(); List<String> busVinSidSecond = new ArrayList<>();

Loading…
Cancel
Save