Browse Source

Merge remote-tracking branch 'origin/master'

master
God 8 months ago
parent
commit
3dadabf27b
  1. 12
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  2. 10
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java
  3. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/CollectionVoucher.java
  4. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java
  5. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/SceneCodeEnum.java
  6. 190
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  7. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankService.java
  8. 17
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java
  9. 216
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  10. 10
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyFeign.java
  11. 23
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/SettleFinVo.java
  12. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.java
  13. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.xml
  14. 10
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyRest.java
  15. 493
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java

12
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java

@ -81,6 +81,11 @@ public interface FinKingDeeFeign {
@ResponseBody
ResultBean<String> saveScheduleVoucher(@RequestBody @Valid GeneralVoucher voucher);
@ApiOperation("保存结清减免结转凭证接口")
@PostMapping("/saveSettleVoucher")
@ResponseBody
ResultBean<String> saveSettleVoucher(@RequestBody @Valid GeneralVoucher voucher);
@ApiOperation("保存月还计提凭证接口")
@PostMapping("/saveAccrualVoucher")
@ResponseBody
@ -112,6 +117,13 @@ public interface FinKingDeeFeign {
@ResponseBody
ResultBean<String> savePaymentVoucher(@RequestBody @Valid PaymentVoucher voucher);
@ApiOperation("资方结清付款凭证")
@PostMapping("/saveSettleBankVoucher")
@ResponseBody
ResultBean<String> saveSettleBankVoucher(@RequestBody @Valid PaymentVoucher voucher);
@ApiOperation("保存垫款付款凭证接口")
@PostMapping("/saveAdvancesVoucher")
@ResponseBody

10
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java

@ -57,6 +57,11 @@ implements FinKingDeeFeign{
return null;
}
@Override
public ResultBean<String> saveSettleVoucher(GeneralVoucher voucher) {
return null;
}
@Override
public ResultBean<String> saveAccrualVoucher(GeneralVoucher voucher) {
return null;
@ -87,6 +92,11 @@ implements FinKingDeeFeign{
return null;
}
@Override
public ResultBean<String> saveSettleBankVoucher(PaymentVoucher voucher) {
return null;
}
@Override
public ResultBean<String> saveAdvancesVoucher(PaymentVoucher voucher) {
return null;

4
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/CollectionVoucher.java

@ -46,7 +46,11 @@ public class CollectionVoucher {
public BigDecimal amount;
@ApiModelProperty("备注")
public String remarks;
@ApiModelProperty("资方")
public String bankName;
@ApiModelProperty("差额适用于结清时计算差额")
public BigDecimal balance;
@ApiModelProperty("减数适用于结清时计算差额")
public BigDecimal subtrahend;
}
}

4
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java

@ -44,6 +44,10 @@ public class PaymentVoucher {
public String customerName;
@ApiModelProperty("金额")
public BigDecimal amount;
@ApiModelProperty("差额适用于结清时计算差额")
public BigDecimal balance;
@ApiModelProperty("减数适用于结清时计算差额")
public BigDecimal subtrahend;
@ApiModelProperty("备注")
public String remarks;
@ApiModelProperty("借贷方类型")

4
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/SceneCodeEnum.java

@ -18,7 +18,9 @@ public enum SceneCodeEnum {
PADSINCERE_VOUCHER1("垫款付款凭证", "出纳付款-资方本金(月还)", "08"),
PADSINCERE_VOUCHER2("垫款付款凭证", "出纳付款-资方逾期利息", "09"),
FUND_VOUCHER1("资金占用费收款凭证", "资金占用费出纳确认后", "10"),
FUND_VOUCHER2("资金占用费收款凭证", "资金占用费出纳确认后-确认收入", "11");
FUND_VOUCHER2("资金占用费收款凭证", "资金占用费出纳确认后-确认收入", "11"),
settle_VOUCHER1("资方结清付款凭证", "资方结清款>0,财务给资方打款-保证金抵顶且保证金>0", "12"),
settle_VOUCHER2("资方结清付款凭证", "资方结清款>0,财务给资方打款-保证金不抵顶或保证金=0", "13");
/**
* 适用凭证

190
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -107,6 +107,8 @@ import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDe
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleFeign;
import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApply;
import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApplyFeign;
import com.yxt.anrui.riskcenter.api.loansettleapply.SettleFinVo;
import com.yxt.anrui.riskcenter.api.loansettlebankcost.LoanSettleBankCost;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
@ -215,7 +217,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
private DocPdfComponent docPdfComponent;
@Autowired
private LoanRepaymentScheduleFeign loanRepaymentScheduleFeign;
@Autowired
private LoanSettleApplyFeign loanSettleApplyFeign;
private QueryWrapper<FinCollectionConfirmation> createQueryWrapper(FinCollectionConfirmationQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
@ -4089,8 +4092,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
v.getReceivablesName().equals("合同违约金") ||
v.getReceivablesName().equals("其他费用")
) {
// CollectionVoucher.CollectionVoucherDetail d = getBalanceMoneyVoucher(v, collectionDate);
// voucherDetails.add(d);
CollectionVoucher.CollectionVoucherDetail d = getBalanceMoneyVoucher(v, collectionDate);
voucherDetails.add(d);
}
});
//查询该申请已认款金额总数
@ -4128,93 +4131,100 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
//名义价其他费用推财务
// private CollectionVoucher.CollectionVoucherDetail getBalanceMoneyVoucher(FinSelectedReceivablesDetailedVo v, String collectionDate) {
// String planSid = "";
// CollectionVoucher.CollectionVoucherDetail voucherDetail = new CollectionVoucher.CollectionVoucherDetail();
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// FinUncollectedReceivablesDetailedJR jr = finUncollectedReceivablesDetailedJRService.fetchBySid(v.getReceivablesSid());
// if (jr != null) {
// planSid = jr.getBusSid();
// }
// LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(planSid).getData();
// if (null != planDetails) {
// voucherDetail.setPayCostTitleValue(v.getReceivablesName());
// LoanRepaymentSchedule schedule = loanRepaymentScheduleFeign.fetchBySid(planDetails.getScheduleSid()).getData();
// if (null != schedule) {
// if (StringUtils.isNotBlank(schedule.getCwDeptNo())) {
// voucherDetail.setDeptCode(schedule.getCwDeptNo());
// }
// }
// String busVinSid = planDetails.getBusVinSid();
// BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData();
// if (null != busSalesOrderVehicle) {
// String customerNumber = "";
// //判断财务系统是否有客户
// Boolean aBoolean = finKingDeeFeignRest.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
// String linkNo = "";
// String customerName = "";
// BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
// if (!aBoolean) {
// // List<BdCustomer> bdCustomers = new ArrayList<>();
// BdCustomer bdCustomer = new BdCustomer();
// bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
// String salesOrderSid = planDetails.getSalesOrderSid();
// BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(salesOrderSid).getData();
// bdCustomer.setFShortName(salesOrder.getContractNo());
// BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
// bdCustomer.setTOrgIds(data.getOrgCode());
// if (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);
// customerName = borrowerDetailsVo.getBorrowerName() + linkNo;
// }
// } else {
// if (null != borrowerDetailsVo) {
// bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
// customerName = borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo();
// }
// }
// // bdCustomers.add(bdCustomer);
// ResultBean<String> resultBean = finKingDeeFeignRest.draftBdCustomer(bdCustomer);
// if (resultBean.getSuccess()) {
// customerNumber = bdCustomer.getFNumber();
// }
// } else {
// customerNumber = busSalesOrderVehicle.getTemporaryNo();
// if (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) {
// customerName = borrowerDetailsVo.getBorrowerName() + linkNo;
// }
// } else {
// if (null != borrowerDetailsVo) {
// customerName = borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo();
// }
// }
// }
// voucherDetail.setCustomerCode(customerNumber);
// voucherDetail.setCustomerName(customerName);
// }
// try {
// voucherDetail.setDataTime(sdf.parse(collectionDate));
// } catch (ParseException e) {
// e.printStackTrace();
// }
// voucherDetail.setAmount(new BigDecimal(v.getSubscriptionMoney()));
// }
// return voucherDetail;ssss
//}
private CollectionVoucher.CollectionVoucherDetail getBalanceMoneyVoucher(FinSelectedReceivablesDetailedVo v, String collectionDate) {
String planSid = "";
CollectionVoucher.CollectionVoucherDetail voucherDetail = new CollectionVoucher.CollectionVoucherDetail();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
FinUncollectedReceivablesDetailedJR jr = finUncollectedReceivablesDetailedJRService.fetchBySid(v.getReceivablesSid());
if (jr != null) {
planSid = jr.getBusSid();
}
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(planSid).getData();
if (null != planDetails) {
ResultBean<SettleFinVo> finSettleVo = loanSettleApplyFeign.getFinSettleVo(planDetails.getBusVinSid(), v.getReceivablesName());
if (finSettleVo.getSuccess()) {
SettleFinVo finVo = finSettleVo.getData();
voucherDetail.setPayCostTitleValue(v.getReceivablesName());
voucherDetail.setBankName(planDetails.getBankName());
LoanRepaymentSchedule schedule = loanRepaymentScheduleFeign.fetchBySid(planDetails.getScheduleSid()).getData();
if (null != schedule) {
if (StringUtils.isNotBlank(schedule.getCwDeptNo())) {
voucherDetail.setDeptCode(schedule.getCwDeptNo());
}
}
String busVinSid = planDetails.getBusVinSid();
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData();
if (null != busSalesOrderVehicle) {
String customerNumber = "";
//判断财务系统是否有客户
Boolean aBoolean = finKingDeeFeignRest.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData();
String linkNo = "";
String customerName = "";
BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
if (!aBoolean) {
// List<BdCustomer> bdCustomers = new ArrayList<>();
BdCustomer bdCustomer = new BdCustomer();
bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo());
String salesOrderSid = planDetails.getSalesOrderSid();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(salesOrderSid).getData();
bdCustomer.setFShortName(salesOrder.getContractNo());
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
if (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);
customerName = borrowerDetailsVo.getBorrowerName() + linkNo;
}
} else {
if (null != borrowerDetailsVo) {
bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo());
customerName = borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo();
}
}
// bdCustomers.add(bdCustomer);
ResultBean<String> resultBean = finKingDeeFeignRest.draftBdCustomer(bdCustomer);
if (resultBean.getSuccess()) {
customerNumber = bdCustomer.getFNumber();
}
} else {
customerNumber = busSalesOrderVehicle.getTemporaryNo();
if (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) {
customerName = borrowerDetailsVo.getBorrowerName() + linkNo;
}
} else {
if (null != borrowerDetailsVo) {
customerName = borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo();
}
}
}
voucherDetail.setCustomerCode(customerNumber);
voucherDetail.setCustomerName(customerName);
}
try {
voucherDetail.setDataTime(sdf.parse(collectionDate));
} catch (ParseException e) {
e.printStackTrace();
}
voucherDetail.setAmount(finVo.getAmount());
voucherDetail.setBalance(finVo.getBalance());
voucherDetail.setSubtrahend(finVo.getSubtrahend());
}
}
return voucherDetail;
}
private CollectionVoucher.CollectionVoucherDetail getReturnBackMoneyVoucher(FinSelectedReceivablesDetailedVo v, String collectionDate) {
String planSid = "";

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finmanufacturerbank/FinManufacturerBankService.java

@ -273,9 +273,9 @@ public class FinManufacturerBankService extends MybatisBaseService<FinManufactur
return rb.success().setData(list);
}
public ResultBean selOneByBankNo(String bankAccount,String useOrgSid) {
public ResultBean<FinManufacturerBank> selOneByBankNo(String bankAccount,String useOrgSid) {
ResultBean rb = ResultBean.fireFail();
FinManufacturerBank finManufacturerBank = baseMapper.selOneByBankNo(bankAccount,useOrgSid);
return rb.success().setData(finManufacturerBank);
}
}
}

17
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java

@ -50,10 +50,12 @@ import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo;
import com.yxt.anrui.base.common.enums.DictCommonEnum;
import com.yxt.anrui.buscenter.api.busdeliveredapplydetails.BusDeliveredApplyDetails;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo;
import com.yxt.anrui.fin.api.finmanufacturerbank.FinManufacturerBank;
import com.yxt.anrui.fin.api.finpaymentapply.FinPaymentapply;
import com.yxt.anrui.fin.api.finpaymentrecord.*;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill;
import com.yxt.anrui.fin.biz.finmanufacturerbank.FinManufacturerBankService;
import com.yxt.anrui.fin.biz.finpaymentapply.FinPaymentapplyService;
import com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRService;
import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService;
@ -76,6 +78,7 @@ import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehFeign
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsFeign;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo;
import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApplyFeign;
import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentApplyFeign;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
@ -169,6 +172,10 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
private FinUncollectedReceivablesDetailedJRService finUncollectedReceivablesDetailedJRService;
@Autowired
private LoanTransferPaymentApplyFeign loanTransferPaymentApplyFeign;
@Autowired
private FinManufacturerBankService finManufacturerBankService;
@Autowired
private LoanSettleApplyFeign loanSettleApplyFeign;
public PagerVo<FinPaymentrecordVo> listPageVo(PagerQuery<FinPaymentrecordQuery> pq) {
FinPaymentrecordQuery query = pq.getParams();
@ -530,6 +537,16 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
Future future1 = pool.submit(() -> {
loanBePadsincereApplyFeign.pushAdvancesVoucher(finPaymentrecord.getBusSid(), finPaymentrecord.getSid());
});
} else if ("008".equals(costTypeKey) || "资方结清款".equals(finPaymentrecord.getCostTypeValue())) {
if (StringUtils.isNotBlank(finPaymentrecord.getPayBankAccount())) {
String accountNumber = finPaymentrecord.getPayBankAccount();
String payTypeCode = "";
FinManufacturerBank manufacturerBank = finManufacturerBankService.selOneByBankNo(accountNumber, finPaymentrecord.getUseOrgSid()).getData();
if (null != manufacturerBank) {
payTypeCode = manufacturerBank.getDueBankKey();
}
loanSettleApplyFeign.pushBankVoucher(finPaymentrecord.getBusSid(),accountNumber,payTypeCode);
}
}
} catch (Exception e) {
e.printStackTrace();

216
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java

@ -235,6 +235,79 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
return voucherService.saveVoucher(voucher);
}
/**
* 结清申请减免结转凭证接口
*
* @param voucher
* @return
*/
@Override
public ResultBean<String> saveSettleVoucher(GeneralVoucher voucher) {
ResultBean rb = ResultBean.fireFail();
Voucher newVoucher = new Voucher();
List<Voucher.VoucherResultDetailDto> resultDetails = new ArrayList<>();
if (StringUtils.isNotBlank(voucher.getUseOrgCode())) {
newVoucher.setAccountBook(voucher.getUseOrgCode());
newVoucher.setVoucherNo(voucher.getUseOrgCode());
}
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = voucher.getVoucherDetails();
if (!voucherDetails.isEmpty()) {
for (GeneralVoucher.GeneralVoucherDetail voucherDetail : voucherDetails) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
String summary1 = "";
String summary2 = "";
String subjectNo1 = "";
String subjectNo2 = "";
if (voucherDetail.getSceneCode().equals("资金占用费减免")) {
summary1 = "公司逾期利息减免";
summary2 = "公司逾期利息减免";
subjectNo1 = "1201.02.02";
subjectNo2 = "2191.05.00";
dto1.setDebit("-" + voucherDetail.getAmount().toString());
dto2.setDebit(voucherDetail.getAmount().toString());
} else if (voucherDetail.getSceneCode().equals("剩余贷款保证金结转")) {
summary1 = "贷款保证金抵结清款";
summary2 = "贷款保证金抵结清款";
subjectNo1 = "2182.01.01";
subjectNo2 = "1201.01.00";
dto1.setDebit(voucherDetail.getAmount().toString());
dto2.setCredit(voucherDetail.getAmount().toString());
} else if (voucherDetail.getSceneCode().equals("贷款保证金扣罚")) {
summary1 = "贷款保证金扣罚金额";
summary2 = "贷款保证金扣罚金额";
subjectNo1 = "2182.01.01";
subjectNo2 = "6002.01.21";
dto1.setDebit(voucherDetail.getAmount().toString());
dto2.setCredit(voucherDetail.getAmount().toString());
} else if (voucherDetail.getSceneCode().equals("资方结清款付款")) {
summary1 = voucherDetail.getBankName() + "结清";
summary2 = voucherDetail.getBankName() + "个贷保证金抵结清款";
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData();
if (null != dictCommonVo) {
subjectNo1 = dictCommonVo.getDictValue();
}
subjectNo2 = "1009.01.00";
dto1.setDebit(voucherDetail.getAmount().toString());
dto2.setCredit(voucherDetail.getAmount().toString());
}
dto1.setSummary(summary1);
dto2.setSummary(summary2);
dto1.setSubjectNo(subjectNo1);
dto2.setSubjectNo(subjectNo2);
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setDimensionCustom(voucherDetail.getCustomerCode());
resultDetails.add(dto1);
resultDetails.add(dto2);
}
newVoucher.setResultDetails(resultDetails);
}
log.info("FinKingDeeFeignRest-saveVoucher:{}", JSONObject.toJSONString(newVoucher));
return voucherService.saveVoucher(newVoucher);
}
/**
* 保存还款计划表总凭证接口
*
@ -436,6 +509,7 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
String remarks1 = "";
String remarks2 = "";
String remarks3 = "";
String remarks4 = "";
StringBuffer sb = new StringBuffer();
Set<String> setString = new HashSet<>();
BigDecimal amountAll = new BigDecimal(0);
@ -460,6 +534,13 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
if (!voucherDetails.isEmpty()) {
for (CollectionVoucher.CollectionVoucherDetail voucherDetail : voucherDetails) {
if (StringUtils.isNotBlank(voucherDetail.getPayCostTitleValue())) {
String bankCode = "";
if (StringUtils.isNotBlank(voucherDetail.getBankName())) {
DictCommonVo dictCommonVo2 = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData();
if (null != dictCommonVo2) {
bankCode = dictCommonVo.getDictValue();
}
}
String payCostTitleValue = voucherDetail.getPayCostTitleValue();
date = voucherDetail.getDataTime();
amountAll = amountAll.add(voucherDetail.getAmount());
@ -494,6 +575,67 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
}
dto2.setCredit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto2);
} else if (payCostTitleValue.equals("结清时资方逾期利息")) {
setString.add("结清款");
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto2.setSummary("收资方逾期利息");
dto2.setSubjectNo("1201.02.03");
dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setDimensionCustom(voucherDetail.getCustomerCode());
dto2.setCredit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto2);
} else if (payCostTitleValue.equals("名义价")) {
setString.add("结清款");
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto2.setSummary("结清名义价款");
dto2.setSubjectNo(bankCode);
dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setDimensionCustom(voucherDetail.getCustomerCode());
dto2.setCredit(String.valueOf(voucherDetail.getSubtrahend()));
resultDetails.add(dto2);
if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //贷方
dto3.setSummary("结清名义价款差额转收入");
dto3.setSubjectNo("6002.01.17");
dto3.setDimensionDept(voucherDetail.getDeptCode());
dto3.setCredit(String.valueOf(voucherDetail.getBalance()));
resultDetails.add(dto3);
}
} else if (payCostTitleValue.equals("合同违约金")) {
setString.add("结清款");
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto2.setSummary("还其他费用-合同违约金");
dto2.setSubjectNo(bankCode);
dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setDimensionCustom(voucherDetail.getCustomerCode());
dto2.setCredit(String.valueOf(voucherDetail.getSubtrahend()));
resultDetails.add(dto2);
if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //贷方
dto3.setSummary("其他费用差额转收入");
dto3.setSubjectNo("6002.01.17");
dto3.setDimensionDept(voucherDetail.getDeptCode());
dto3.setCredit(String.valueOf(voucherDetail.getBalance()));
resultDetails.add(dto3);
}
} else if (payCostTitleValue.equals("其他费用")) {
setString.add("结清款");
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto2.setSummary("还其他费用-资方其他费用");
dto2.setSubjectNo(bankCode);
dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setDimensionCustom(voucherDetail.getCustomerCode());
dto2.setCredit(String.valueOf(voucherDetail.getSubtrahend()));
resultDetails.add(dto2);
if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //贷方
dto3.setSummary("收其他费用");
dto3.setSubjectNo("1133.10.00");
dto3.setDimensionDept(voucherDetail.getDeptCode());
dto3.setDimensionCustom(voucherDetail.getCustomerCode());
dto3.setCredit(String.valueOf(voucherDetail.getBalance()));
resultDetails.add(dto3);
}
} else if (payCostTitleValue.equals("资方退还垫款")) {
check = 1;
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
@ -524,6 +666,8 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
remarks2 = "累欠";
} else if (s.equals("逾期利息")) {
remarks3 = "逾期利息";
} else if (s.equals("结清款")) {
remarks4 = "结清款";
}
}
}
@ -536,6 +680,9 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
if (StringUtils.isNotBlank(remarks3)) {
sb.append(remarks3).append("、");
}
if (StringUtils.isNotBlank(remarks4)) {
sb.append(remarks4).append("、");
}
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
if (StringUtils.isNotBlank(voucher.getBankAccount())) {
dto1.setBankAccount(voucher.getBankAccount());
@ -664,6 +811,75 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
return voucherService.saveVoucher(newVoucher);
}
@Override
public ResultBean<String> saveSettleBankVoucher(PaymentVoucher voucher) {
ResultBean rb = ResultBean.fireFail();
Voucher newVoucher = new Voucher();
List<Voucher.VoucherResultDetailDto> resultDetails = new ArrayList<>();
if (StringUtils.isNotBlank(voucher.getUseOrgCode())) {
newVoucher.setAccountBook(voucher.getUseOrgCode());
newVoucher.setVoucherNo(voucher.getUseOrgCode());
}
List<PaymentVoucher.PaymentVoucherDetail> voucherDetails = voucher.getVoucherDetails();
if (!voucherDetails.isEmpty()) {
for (PaymentVoucher.PaymentVoucherDetail voucherDetail : voucherDetails) {
String bankCode = "";
//正常
DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData();
if (null != dictCommonVo) {
bankCode = dictCommonVo.getDictValue();
}
if (voucherDetail.getSceneCode().equals(SceneCodeEnum.settle_VOUCHER1.getCode())) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //贷方
dto1.setSummary(voucherDetail.getBankName() + "结清");
dto2.setSummary(voucherDetail.getBankName() + "个贷保证金抵结清款");
dto3.setSummary(voucherDetail.getBankName() + "结清");
dto1.setSubjectNo(bankCode);
dto2.setSubjectNo("1009.01.00");
if (voucher.getPayTypeCode().equals("02")) {
dto3.setSubjectNo("1002.01.00");
} else if (voucher.getPayTypeCode().equals("01")) {
dto3.setSubjectNo("1002.02.01");
}
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto2.setDimensionDept(voucherDetail.getDeptCode());
dto2.setDimensionCustom(voucherDetail.getCustomerCode());
dto3.setBankAccount(voucher.getBankAccount());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
dto2.setCredit(String.valueOf(voucherDetail.getSubtrahend()));
dto3.setCredit(String.valueOf(voucherDetail.getBalance()));
resultDetails.add(dto1);
resultDetails.add(dto2);
resultDetails.add(dto3);
} else {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方
dto1.setSummary(voucherDetail.getBankName() + "结清");
dto2.setSummary(voucherDetail.getBankName() + "结清");
dto1.setSubjectNo(bankCode);
if (voucher.getPayTypeCode().equals("02")) {
dto2.setSubjectNo("1002.01.00");
} else if (voucher.getPayTypeCode().equals("01")) {
dto2.setSubjectNo("1002.02.01");
}
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto2.setBankAccount(voucher.getBankAccount());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
dto2.setCredit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
resultDetails.add(dto2);
}
}
newVoucher.setResultDetails(resultDetails);
}
log.info("FinKingDeeFeignRest-saveVoucher:{}", JSONObject.toJSONString(newVoucher));
return voucherService.saveVoucher(newVoucher);
}
/**
* 保存垫款付款凭证接口
*

10
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyFeign.java

@ -95,4 +95,14 @@ public interface LoanSettleApplyFeign {
@ApiOperation(value = "结清确认")
@PostMapping(value = "/confirmAtn")
ResultBean confirmAtn(@RequestParam("sid") String sid);
@ApiOperation(value = "金融认款返回公司应收和资方应收")
@PostMapping(value = "/getFinSettleVo")
ResultBean<SettleFinVo> getFinSettleVo(@RequestParam("busVinSid") String busVinSid,@RequestParam("receivablesName") String receivablesName);
@ApiOperation(value = "推送资方结清款凭证")
@PostMapping(value = "/pushBankVoucher")
ResultBean pushBankVoucher(@RequestParam("sid") String sid,@RequestParam("accountNumber") String accountNumber,@RequestParam("payTypeCode") String payTypeCode);
}

23
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/SettleFinVo.java

@ -0,0 +1,23 @@
package com.yxt.anrui.riskcenter.api.loansettleapply;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/9/5 9:10
*/
@Data
public class SettleFinVo {
private String busSid; //结清申请sid
private BigDecimal amount; //分公司金额
@ApiModelProperty("差额适用于结清时计算差额")
public BigDecimal balance;
@ApiModelProperty("减数适用于结清时计算差额")
public BigDecimal subtrahend;
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.java

@ -82,4 +82,6 @@ public interface LoanSettleApplyMapper extends BaseMapper<LoanSettleApply> {
List<FinSelectedReceivablesDetailed> selJMSelectedByBusVinSid(@Param("busVinSid") String busVinSid);
List<LoanRepaymentHistory> selLoanHistories(@Param("busVinSid") String busVinSid);
LoanSettleApply getFinSettleVo(@Param("busVinSid") String busVinSid);
}

12
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.xml

@ -371,4 +371,16 @@ FROM (
LEFT JOIN loan_repayment_plan_details as p ON h.planDetailSid = p.sid
WHERE p.busVinSid = #{busVinSid} AND h.buckleKey != '002' AND h.buckleKey != '003' AND h.actualMoney < 0
</select>
<select id="getFinSettleVo" resultType="com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApply">
SELECT
*
FROM
loan_settle_apply
WHERE
nodeState = '已办结'
AND busVinSid = #{busVinSid}
ORDER BY
id DESC
LIMIT 1
</select>
</mapper>

10
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyRest.java

@ -118,4 +118,14 @@ public class LoanSettleApplyRest implements LoanSettleApplyFeign {
public ResultBean confirmAtn(String sid) {
return loanSettleApplyService.confirmAtn(sid);
}
@Override
public ResultBean<SettleFinVo> getFinSettleVo(String busVinSid, String receivablesName) {
return loanSettleApplyService.getFinSettleVo(busVinSid,receivablesName);
}
@Override
public ResultBean pushBankVoucher(String sid, String accountNumber, String payTypeCode) {
return loanSettleApplyService.pushBankVoucher(sid,accountNumber,payTypeCode);
}
}

493
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java

@ -7,23 +7,28 @@ 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.basemiddleman.BaseMiddlemanDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.base.api.commoncontract.CommonContract;
import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.buscenter.api.busdeposit.BusDeposit;
import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitious;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFL;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderSourceLCVo;
import com.yxt.anrui.buscenter.api.bussalesorder.*;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDiscountListVo;
import com.yxt.anrui.buscenter.api.bussalesorder.flowable.BusSalesOrderDelegateQuery;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesorderdeposit.BusSalesOrderDeposit;
import com.yxt.anrui.buscenter.api.bussalesorderinsurance.BusSalesOrderInsuranceDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.buscenter.api.bussalesordersubmit.BusSalesOrderSubmit;
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.FinPaymentrecord;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed;
@ -31,6 +36,11 @@ import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivabl
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRFeign;
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.fin.api.kingdee.voucher.PaymentVoucher;
import com.yxt.anrui.fin.api.kingdee.voucher.SceneCodeEnum;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery;
@ -50,6 +60,7 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord;
import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
@ -66,6 +77,7 @@ import com.yxt.anrui.riskcenter.api.loansettlevehicle.LoanSettleVehicleDto;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail;
import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord;
import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService;
import com.yxt.anrui.riskcenter.biz.loanrepaymentschedule.LoanRepaymentScheduleService;
@ -92,6 +104,7 @@ import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
@ -173,6 +186,16 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
private MessageListFeign messageListFeign;
@Autowired
private DocPdfComponent docPdfComponent;
@Autowired
private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
@Autowired
private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign;
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private BasePurchaseSystemFeign basePurchaseSystemFeign;
public PagerVo<LoanSettleApplyVo> listPageVo(PagerQuery<LoanSettleApplyQuery> pq) {
LoanSettleApplyQuery query = pq.getParams();
@ -676,6 +699,35 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
//若有网关,则赋值网关中判断的字段。
BigDecimal jmRate = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal rate1 = new BigDecimal("0.18"); //利率18%
BigDecimal rate2 = new BigDecimal("0.144"); //利率14.4%
BigDecimal fund = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal fundJm = BigDecimal.ZERO; //减免后的占用费年利率
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(businessSid);
if (null != companyCost) {
if (null != companyCost.getFunfCost()) {
fund = companyCost.getFunfCost();
}
}
LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(businessSid);
if (null != reduction) {
if (null != reduction.getFundPenalty()) {
fundJm = reduction.getFundPenalty();
}
}
jmRate = (fund.subtract(fundJm)).divide(fund,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("0.36"));
boolean isTure = false;
boolean isTure2 = false;
if (jmRate.compareTo(rate1) < 0) {
isTure = true;
}
if (jmRate.compareTo(rate2) < 0) {
isTure2 = true;
}
variables.put("isTure", isTure);
variables.put("isTure2", isTure2);
appMap.put("sid", businessSid);
variables.put("app", appMap);
//用户的部门全路径sid
@ -786,6 +838,36 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
LoanSettleApply loanSettleApply = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
//若有网关,则赋值网关中判断的字段。
BigDecimal jmRate = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal rate1 = new BigDecimal("0.18"); //利率18%
BigDecimal rate2 = new BigDecimal("0.144"); //利率14.4%
BigDecimal fund = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal fundJm = BigDecimal.ZERO; //减免后的占用费年利率
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(businessSid);
if (null != companyCost) {
if (null != companyCost.getFunfCost()) {
fund = companyCost.getFunfCost();
}
}
LoanSettleCompanyReduction reduction2 = loanSettleCompanyReductionService.selectByMainSid(businessSid);
if (null != reduction2) {
if (null != reduction2.getFundPenalty()) {
fundJm = reduction2.getFundPenalty();
}
}
jmRate = (fund.subtract(fundJm)).divide(fund,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("0.36"));
boolean isTure = false;
boolean isTure2 = false;
if (jmRate.compareTo(rate1) < 0) {
isTure = true;
}
if (jmRate.compareTo(rate2) < 0) {
isTure2 = true;
}
variables.put("isTure", isTure);
variables.put("isTure2", isTure2);
appMap.put("sid", businessSid);
variables.put("app", appMap);
if (StringUtils.isNotBlank(loanSettleApply.getBusSid())) {
@ -839,6 +921,8 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
pushBankSettlePrice(loanSettleApply);
//设置认款月还为已转付
updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid());
//推送财务凭证
pushSettleVoucher(loanSettleApply);
}
baseMapper.updateById(loanSettleApply);
} else {
@ -1444,6 +1528,156 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
}
}
//--------推送财务结清凭证------------------
private void pushSettleVoucher(LoanSettleApply loanSettleApply) {
String sid = loanSettleApply.getSid();
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(sid);
LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(sid);
LoanSettleBankCost bankCost = loanSettleBankCostService.selectByMainSid(sid);
GeneralVoucher generalVoucher = new GeneralVoucher();
List<GeneralVoucher.GeneralVoucherDetail> voucherDetails = new ArrayList<>();
LoanRepaymentPlanDetails planDetails = baseMapper.selectMainPeriodByBusVinSid(loanSettleApply.getBusVinSid());
if (null != planDetails) {
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
generalVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
String deptCode = "";
String customerNumber = "";
String scheduleSid = planDetails.getScheduleSid();
LoanRepaymentSchedule repaymentSchedule = loanRepaymentScheduleService.fetchBySid(scheduleSid);
if (null != repaymentSchedule) {
if (StringUtils.isNotBlank(repaymentSchedule.getCwDeptNo())) {
deptCode = repaymentSchedule.getCwDeptNo();
}
}
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
if (null != salesOrder) {
if (null != busSalesOrderVehicle) {
//判断财务系统是否有客户
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());
if (StringUtils.isNotBlank(salesOrder.getPurchaseSystemSid())) {
BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData();
bdCustomer.setTOrgIds(data.getOrgCode());
}
bdCustomer.setTOrgIds(deptCode);
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();
}
}
}
BigDecimal fund = BigDecimal.ZERO;//资金占用费减免
BigDecimal bzjMoney = BigDecimal.ZERO;//剩余贷款保证金结转
BigDecimal bzjJM = BigDecimal.ZERO;//贷款保证金减免
BigDecimal bzjKF = BigDecimal.ZERO;//贷款保证金扣罚
BigDecimal sybzj = BigDecimal.ZERO;//贷款保证金扣罚
BigDecimal zfJQK = BigDecimal.ZERO;//资方结清款
int topping = 0;
BigDecimal bbjDDMoney = BigDecimal.ZERO; //资方保证金抵顶
if (null != reduction) {
if (null != reduction.getFundPenalty()) {
fund = reduction.getFundPenalty();
}
if (null != reduction.getDepositPenalty()) {
bzjJM = reduction.getDepositPenalty();
}
}
if (null != companyCost) {
if (null != companyCost.getLoanDeposit()) {
bzjMoney = companyCost.getLoanDeposit();
}
if (null != companyCost.getDeductionAmount()) {
bzjKF = companyCost.getDeductionAmount();
}
}
if (null != bankCost) {
if (null != bankCost.getBankSettlePrice()) {
zfJQK = bankCost.getBankSettlePrice();
}
topping = bankCost.getTopping();
if (null != bankCost.getLoanDeposit()) {
bbjDDMoney = bankCost.getLoanDeposit();
}
}
sybzj = bzjMoney.subtract(bzjKF).add(bzjJM);
//资金占用费减免凭证
if (fund.compareTo(BigDecimal.ZERO) > 0) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setSceneCode("资金占用费减免");
voucherDetail.setBankName(planDetails.getBankName());
voucherDetail.setDeptCode(deptCode);
voucherDetail.setCustomerCode(customerNumber);
voucherDetail.setAmount(fund);
voucherDetails.add(voucherDetail);
}
//剩余贷款保证金结转
if (sybzj.compareTo(BigDecimal.ZERO) > 0) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setSceneCode("剩余贷款保证金结转");
voucherDetail.setBankName(planDetails.getBankName());
voucherDetail.setDeptCode(deptCode);
voucherDetail.setCustomerCode(customerNumber);
voucherDetail.setAmount(sybzj);
voucherDetails.add(voucherDetail);
}
//贷款保证金扣罚
if (bzjKF.compareTo(BigDecimal.ZERO) > 0) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setSceneCode("贷款保证金扣罚");
voucherDetail.setBankName(planDetails.getBankName());
voucherDetail.setDeptCode(deptCode);
voucherDetail.setCustomerCode(customerNumber);
voucherDetail.setAmount(bzjKF);
voucherDetails.add(voucherDetail);
}
//资方结清款付款
if (zfJQK.compareTo(BigDecimal.ZERO) <= 0) {
if (topping == 1) {
if (bbjDDMoney.compareTo(BigDecimal.ZERO) > 0) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setSceneCode("资方结清款付款");
voucherDetail.setBankName(planDetails.getBankName());
voucherDetail.setDeptCode(deptCode);
voucherDetail.setCustomerCode(customerNumber);
voucherDetail.setAmount(bbjDDMoney);
voucherDetails.add(voucherDetail);
}
}
}
generalVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveSettleVoucher(generalVoucher);
}
}
//--------------------资方结清款到出纳代付款列表------------------
private void pushBankSettlePrice(LoanSettleApply loanSettleApply) {
if (StringUtils.isBlank(loanSettleApply.getBusSid())) {
@ -2054,6 +2288,38 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
BeanUtil.copyProperties(query, bv);
LoanSettleApply loanSettleApply = fetchBySid(query.getBusinessSid());
bv.setModelId(loanSettleApply.getProcDefId());
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//若有网关,则赋值网关中判断的字段。
BigDecimal jmRate = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal rate1 = new BigDecimal("0.18"); //利率18%
BigDecimal rate2 = new BigDecimal("0.144"); //利率14.4%
BigDecimal fund = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal fundJm = BigDecimal.ZERO; //减免后的占用费年利率
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(query.getBusinessSid());
if (null != companyCost) {
if (null != companyCost.getFunfCost()) {
fund = companyCost.getFunfCost();
}
}
LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(query.getBusinessSid());
if (null != reduction) {
if (null != reduction.getFundPenalty()) {
fundJm = reduction.getFundPenalty();
}
}
jmRate = (fund.subtract(fundJm)).divide(fund,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("0.36"));
boolean isTure = false;
boolean isTure2 = false;
if (jmRate.compareTo(rate1) < 0) {
isTure = true;
}
if (jmRate.compareTo(rate2) < 0) {
isTure2 = true;
}
variables.put("isTure", isTure);
variables.put("isTure2", isTure2);
bv.setFormVariables(variables);
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<LoanSettleApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSettleApplyNodeVo.class)).collect(Collectors.toList());
@ -2066,6 +2332,38 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
BeanUtil.copyProperties(query, bv);
LoanSettleApply loanSettleApply = fetchBySid(query.getBusinessSid());
bv.setModelId(loanSettleApply.getProcDefId());
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//若有网关,则赋值网关中判断的字段。
BigDecimal jmRate = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal rate1 = new BigDecimal("0.18"); //利率18%
BigDecimal rate2 = new BigDecimal("0.144"); //利率14.4%
BigDecimal fund = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal fundJm = BigDecimal.ZERO; //减免后的占用费年利率
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(query.getBusinessSid());
if (null != companyCost) {
if (null != companyCost.getFunfCost()) {
fund = companyCost.getFunfCost();
}
}
LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(query.getBusinessSid());
if (null != reduction) {
if (null != reduction.getFundPenalty()) {
fundJm = reduction.getFundPenalty();
}
}
jmRate = (fund.subtract(fundJm)).divide(fund,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("0.36"));
boolean isTure = false;
boolean isTure2 = false;
if (jmRate.compareTo(rate1) < 0) {
isTure = true;
}
if (jmRate.compareTo(rate2) < 0) {
isTure2 = true;
}
variables.put("isTure", isTure);
variables.put("isTure2", isTure2);
bv.setFormVariables(variables);
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<LoanSettleApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSettleApplyNodeVo.class)).collect(Collectors.toList());
@ -2093,6 +2391,35 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
//若有网关,则赋值网关中判断的字段。
BigDecimal jmRate = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal rate1 = new BigDecimal("0.18"); //利率18%
BigDecimal rate2 = new BigDecimal("0.144"); //利率14.4%
BigDecimal fund = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal fundJm = BigDecimal.ZERO; //减免后的占用费年利率
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(businessSid);
if (null != companyCost) {
if (null != companyCost.getFunfCost()) {
fund = companyCost.getFunfCost();
}
}
LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(businessSid);
if (null != reduction) {
if (null != reduction.getFundPenalty()) {
fundJm = reduction.getFundPenalty();
}
}
jmRate = (fund.subtract(fundJm)).divide(fund,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("0.36"));
boolean isTure = false;
boolean isTure2 = false;
if (jmRate.compareTo(rate1) < 0) {
isTure = true;
}
if (jmRate.compareTo(rate2) < 0) {
isTure2 = true;
}
variables.put("isTure", isTure);
variables.put("isTure2", isTure2);
if (StringUtils.isNotBlank(loanSettleApply.getBusSid())) {
variables.put("orderNames", "提前结清申请");
}
@ -2431,6 +2758,8 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
pushBankSettlePrice(loanSettleApply);
//设置认款月还为已转付
updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid());
//推送财务凭证
pushSettleVoucher(loanSettleApply);
return rb.success();
}
@ -2794,4 +3123,162 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
}
return imgUrl;
}
public ResultBean<SettleFinVo> getFinSettleVo(String busVinSid, String receivablesName) {
ResultBean rb = ResultBean.fireFail();
SettleFinVo vo = new SettleFinVo();
LoanSettleApply apply = baseMapper.getFinSettleVo(busVinSid);
if (null != apply) {
String sid = apply.getSid();
BigDecimal amount = BigDecimal.ZERO;
BigDecimal balance = BigDecimal.ZERO;
BigDecimal subtrahend = BigDecimal.ZERO;
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(sid);
LoanSettleBankCost bankCost = loanSettleBankCostService.selectByMainSid(sid);
if (null != companyCost) {
if (receivablesName.equals("名义价")) {
if (null != companyCost.getCompanyNominalPrice()) {
amount = companyCost.getCompanyNominalPrice();
}
}
if (receivablesName.equals("合同违约金")) {
if (null != companyCost.getContractLiquidated()) {
amount = companyCost.getContractLiquidated();
}
}
if (receivablesName.equals("其他费用")) {
if (null != companyCost.getCompanyOtherPrice()) {
amount = companyCost.getCompanyOtherPrice();
}
}
}
if (null != bankCost) {
if (receivablesName.equals("名义价")) {
if (null != bankCost.getBankNominalPrice()) {
subtrahend = bankCost.getBankNominalPrice();
}
}
if (receivablesName.equals("合同违约金")) {
if (null != bankCost.getBankContractLiquidated()) {
subtrahend = bankCost.getBankContractLiquidated();
}
}
if (receivablesName.equals("其他费用")) {
if (null != bankCost.getBankOtherReceivable()) {
subtrahend = bankCost.getBankOtherReceivable();
}
}
}
balance = amount.subtract(subtrahend);
vo.setBusSid(sid);
vo.setAmount(amount);
vo.setBalance(balance);
vo.setSubtrahend(subtrahend);
return rb.success().setData(vo);
}
return rb;
}
public ResultBean pushBankVoucher(String sid, String accountNumber, String payTypeCode) {
ResultBean rb = ResultBean.fireFail();
LoanSettleApply apply = fetchBySid(sid);
LoanSettleBankCost bankCost = loanSettleBankCostService.selectByMainSid(sid);
if (null != apply) {
BigDecimal zfJQK = BigDecimal.ZERO;//资方结清款
int topping = 0;
BigDecimal bbjDDMoney = BigDecimal.ZERO; //资方保证金抵顶
BigDecimal sub = BigDecimal.ZERO; //资方保证金差额
if (null != bankCost) {
if (null != bankCost.getBankSettlePrice()) {
zfJQK = bankCost.getBankSettlePrice();
}
topping = bankCost.getTopping();
if (null != bankCost.getLoanDeposit()) {
bbjDDMoney = bankCost.getLoanDeposit();
}
}
sub = zfJQK.subtract(bbjDDMoney);
if (zfJQK.compareTo(BigDecimal.ZERO) > 0) {
PaymentVoucher paymentVoucher = new PaymentVoucher();
paymentVoucher.setBankAccount(accountNumber);
paymentVoucher.setPayTypeCode(payTypeCode);
List<PaymentVoucher.PaymentVoucherDetail> voucherDetails = new ArrayList<>();
LoanRepaymentPlanDetails planDetails = baseMapper.selectMainPeriodByBusVinSid(apply.getBusVinSid());
if (null != planDetails) {
PaymentVoucher.PaymentVoucherDetail voucherDetail = new PaymentVoucher.PaymentVoucherDetail();
if (topping == 1) {
if (bbjDDMoney.compareTo(BigDecimal.ZERO) > 0) {
voucherDetail.setSceneCode(SceneCodeEnum.settle_VOUCHER1.getCode());
} else {
voucherDetail.setSceneCode(SceneCodeEnum.settle_VOUCHER2.getCode());
}
} else {
voucherDetail.setSceneCode(SceneCodeEnum.settle_VOUCHER2.getCode());
}
if (StringUtils.isNotBlank(planDetails.getBankName())) {
voucherDetail.setBankName(planDetails.getBankName());
}
String useOrgSid = planDetails.getUseOrgSid();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData();
if (null != organizationVo) {
paymentVoucher.setUseOrgCode(organizationVo.getOrgCode());
}
LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(planDetails.getScheduleSid());
if (StringUtils.isNotBlank(schedule.getCwDeptNo())) {
voucherDetail.setDeptCode(schedule.getCwDeptNo());
}
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData();
BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData();
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(zfJQK);
voucherDetail.setSubtrahend(bbjDDMoney);
voucherDetail.setBalance(sub);
voucherDetails.add(voucherDetail);
}
paymentVoucher.setVoucherDetails(voucherDetails);
finKingDeeFeign.saveSettleBankVoucher(paymentVoucher);
}
}
return rb.success();
}
}

Loading…
Cancel
Save