Browse Source

回购凭证

master
dimengzhe 2 weeks ago
parent
commit
e5ff599a52
  1. 3
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.java
  2. 7
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.xml
  3. 223
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyService.java
  4. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostMapper.java
  5. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostMapper.xml
  6. 4
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostService.java

3
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<LoanRepurchaseAppl
String selectNum(String billNo);
BigDecimal selByBusVinSid(String busVinSid);
FinManufacturerBank selectByAccountNumAndUseSid(@Param("accountNumber") String accountNumber, @Param("useOrgSid") String useOrgSid);
}

7
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchaseapply/LoanRepurchaseApplyMapper.xml

@ -222,4 +222,11 @@
ON c.mainSid = a.sid
WHERE a.busVinSid = #{busVinSid}
</select>
<select id="selectByAccountNumAndUseSid" resultType="com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank">
select *
from anrui_fin.fin_manufacturer_bank
where bankAccount = #{bankAccount}
and useOrgSid = #{useOrgSid}
</select>
</mapper>

223
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<LoanRepurchas
@Autowired
private MessageListFeign messageListFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
@Autowired
private DictCommonFeign dictCommonFeign;
public PagerVo<LoanRepurchaseApplyVo> listPage(PagerQuery<LoanRepurchaseApplyQuery> pq) {
IPage<LoanRepurchaseApply> page = PagerUtil.queryToPage(pq);
LoanRepurchaseApplyQuery pagerQuery = pq.getParams();
@ -718,6 +740,19 @@ public class LoanRepurchaseApplyService extends MybatisBaseService<LoanRepurchas
baseMapper.updateById(repurchaseApply);
//更新车辆表回购状态
baseMapper.updateBus(repurchaseApply.getBusVinSid());
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(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<LoanRepurchas
}
}
public void pushRiskToFin(String businessSid){
LoanRepurchaseApply loanRepurchaseApply = fetchBySid(businessSid);
if(loanRepurchaseApply != null){
List<Voucher.VoucherResultDetailDto> 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<String> 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);
}
}
}
/**
* 撤回

2
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<LoanRepurchaseCost>
@Delete("DELETE FROM loan_repurchase_cost WHERE mainSid = #{s}")
void deleteByApplySid(String s);
LoanRepurchaseCost selectByMainSid(String businessSid);
}

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepurchasecost/LoanRepurchaseCostMapper.xml

@ -24,7 +24,7 @@
where b.mainSid = #{sid}
</select>
<select id="selectByMainSid" resultType="com.yxt.anrui.riskcenter.api.loanrepurchasecost.LoanRepurchaseCost">
select * from loan_repurchase_cost where mainSid = #{businessSid}
</select>
</mapper>

4
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<LoanRepurchase
baseMapper.deleteByApplySid(stringList.get(i));
}
}
public LoanRepurchaseCost selectByMainSid(String businessSid) {
return baseMapper.selectByMainSid(businessSid);
}
}

Loading…
Cancel
Save