|
|
@ -1,62 +1,39 @@ |
|
|
|
package com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails; |
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
|
import cn.hutool.core.date.DateTime; |
|
|
|
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; |
|
|
|
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.bussalesorderloancontract.BusSalesOrderLoancontractDetailsVo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractFeign; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; |
|
|
|
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; |
|
|
|
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.GeneralVoucher; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|
|
|
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.DifferenceVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.HistoryOverDueVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryDto; |
|
|
|
|
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.*; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; |
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; |
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; |
|
|
|
import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy; |
|
|
|
import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation; |
|
|
|
|
|
|
|
import com.yxt.anrui.riskcenter.biz.loanpushfundhistory.LoanPushFundHistoryService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanrepaymentschedule.LoanRepaymentScheduleService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loansolutionsotherpolicy.LoanSolutionsOtherpolicyService; |
|
|
|
import com.yxt.anrui.riskcenter.biz.loanwarrantinformation.LoanWarrantInformationService; |
|
|
|
import com.yxt.common.base.config.component.DocPdfComponent; |
|
|
|
|
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.MsgWs; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
|
import com.yxt.common.base.utils.StringUtils; |
|
|
|
import com.yxt.common.base.utils.WordConvertUtils; |
|
|
|
import com.yxt.common.core.query.PagerQuery; |
|
|
|
import com.yxt.common.core.result.ResultBean; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
|
import com.yxt.messagecenter.api.message.MessageFeign; |
|
|
|
import com.yxt.messagecenter.api.message.MessagePushTransferDto; |
|
|
|
import org.apache.tomcat.util.threads.ThreadPoolExecutor; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.io.File; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.text.ParseException; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
@ -67,11 +44,25 @@ import java.util.stream.Collectors; |
|
|
|
@Service |
|
|
|
public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepaymentPlanDetailsMapper, LoanRepaymentPlanDetails> { |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
private BusSalesOrderFeign busSalesOrderFeign; |
|
|
|
@Autowired |
|
|
|
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign; |
|
|
|
@Autowired |
|
|
|
private LoanRepaymentHistoryService loanRepaymentHistoryService; |
|
|
|
@Autowired |
|
|
|
private LoanRepaymentScheduleService loanRepaymentScheduleService; |
|
|
|
@Autowired |
|
|
|
private SysOrganizationFeign sysOrganizationFeign; |
|
|
|
@Autowired |
|
|
|
private FinKingDeeFeign finKingDeeFeign; |
|
|
|
@Autowired |
|
|
|
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign; |
|
|
|
@Autowired |
|
|
|
private BasePurchaseSystemFeign basePurchaseSystemFeign; |
|
|
|
@Autowired |
|
|
|
private LoanPushFundHistoryService loanPushFundHistoryService; |
|
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public ResultBean<String> savePlanDetails(LoanRepaymentPlanDetailsDto dto) { |
|
|
@ -194,7 +185,7 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa |
|
|
|
} |
|
|
|
|
|
|
|
public List<String> selUseOrgSidListForFundVoucher() { |
|
|
|
return baseMapper.selUseOrgSidListForFundVoucher(); |
|
|
|
return baseMapper.selUseOrgSidListForFundVoucher(); |
|
|
|
} |
|
|
|
|
|
|
|
public List<LoanPlanDetailsVoForFundVoucher> getFundForVoucher(String u) { |
|
|
@ -206,10 +197,105 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService<LoanRepa |
|
|
|
} |
|
|
|
|
|
|
|
public LoanRepaymentPlanDetails selOneByBankNoAndBusVinSid(String bankContractNo, String saleVehSid) { |
|
|
|
return baseMapper.selOneByBankNoAndBusVinSid(bankContractNo,saleVehSid); |
|
|
|
return baseMapper.selOneByBankNoAndBusVinSid(bankContractNo, saleVehSid); |
|
|
|
} |
|
|
|
|
|
|
|
public CheckPayStateVo checkPayState(String pSid) { |
|
|
|
return baseMapper.checkPayState(pSid); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean pushFund(String sid) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
LoanPlanDetailsVoForFundVoucher v = baseMapper.pushFund(sid); |
|
|
|
if (null != v) { |
|
|
|
List<LoanPushFundHistory> fundHistoryList = new ArrayList<>(); |
|
|
|
LoanRepaymentPlanDetails planDetails = fetchBySid(sid); |
|
|
|
GeneralVoucher generalVoucher = new GeneralVoucher(); |
|
|
|
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>(); |
|
|
|
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(planDetails.getUseOrgSid()).getData(); |
|
|
|
if (null != organizationVo) { |
|
|
|
generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); |
|
|
|
} |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail1 = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail1.setSceneCode("贷方"); |
|
|
|
voucherDetail1.setDataTime(new DateTime()); |
|
|
|
voucherDetail1.setAmount(v.getDuePushMoney()); |
|
|
|
List<SysOrganizationVo> deptVo = sysOrganizationFeign.selectChildrenListBySid(planDetails.getUseOrgSid()).getData(); |
|
|
|
if (!deptVo.isEmpty()) { |
|
|
|
deptVo.stream().forEach(d -> { |
|
|
|
if (d.getName().equals("金融服务部")) { |
|
|
|
voucherDetail1.setDeptCode(d.getOrgCode()); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
voucherDetails.add(voucherDetail1); |
|
|
|
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(v.getBusVinSid()).getData(); |
|
|
|
if (null != busSalesOrderVehicle) { |
|
|
|
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData(); |
|
|
|
String deptSid = salesOrder.getOrgSid(); |
|
|
|
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); |
|
|
|
voucherDetail.setSceneCode("借方"); |
|
|
|
voucherDetail.setDataTime(new DateTime()); |
|
|
|
SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); |
|
|
|
if (null != organizationDeptVo) { |
|
|
|
voucherDetail.setDeptCode(organizationDeptVo.getOrgCode()); |
|
|
|
} |
|
|
|
if (null != salesOrder) { |
|
|
|
if (null != busSalesOrderVehicle) { |
|
|
|
String customerNumber = ""; |
|
|
|
//判断财务系统是否有客户
|
|
|
|
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()); |
|
|
|
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData(); |
|
|
|
bdCustomer.setTOrgIds(data.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(); |
|
|
|
} |
|
|
|
voucherDetail.setCustomerCode(customerNumber); |
|
|
|
} |
|
|
|
} |
|
|
|
voucherDetail.setAmount(v.getDuePushMoney()); |
|
|
|
voucherDetails.add(voucherDetail); |
|
|
|
} |
|
|
|
LoanPushFundHistory loanPushFundHistory = new LoanPushFundHistory(); |
|
|
|
BeanUtil.copyProperties(v, loanPushFundHistory, "id", "sid", "fund"); |
|
|
|
if (null != v.getDuePushMoney()) { |
|
|
|
loanPushFundHistory.setFund(v.getDuePushMoney()); |
|
|
|
} |
|
|
|
fundHistoryList.add(loanPushFundHistory); |
|
|
|
generalVoucher.setVoucherDetails(voucherDetails); |
|
|
|
finKingDeeFeign.saveFundVoucher(generalVoucher); |
|
|
|
// 生成推送资金占用费历史记录
|
|
|
|
if (!fundHistoryList.isEmpty()) { |
|
|
|
loanPushFundHistoryService.saveLists(fundHistoryList); |
|
|
|
} |
|
|
|
} |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
} |
|
|
|