From ee8347a46c7876c14ba98390a715c0aea2804f3d Mon Sep 17 00:00:00 2001 From: fanzongzhe0036 Date: Tue, 25 Mar 2025 15:19:01 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BB=93=E6=B8=85?= =?UTF-8?q?=E6=8E=A8=E5=87=AD=E8=AF=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../finpaymentrecord/FinPaymentrecord.java | 9 + .../FinPaymentrecordDetailsVo.java | 8 + .../finpaymentrecord/FinPaymentrecordDto.java | 8 + .../FinPaymentrecordQuery.java | 3 +- .../finpaymentrecord/FinPaymentrecordVo.java | 2 + .../fin/biz/kingdee/FinKingDeeFeignRest.java | 68 ++++---- .../LoanSettleCompanyReduction.java | 2 +- .../LoanBePadsincereApplyService.java | 1 + .../LoanSettleApplyService.java | 160 ++++++++++-------- .../LoanTransferPaymentApplyService.java | 48 +----- 10 files changed, 159 insertions(+), 150 deletions(-) diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecord.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecord.java index 176a3f8a16..db8b53a937 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecord.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecord.java @@ -119,4 +119,13 @@ public class FinPaymentrecord extends BaseEntity { private BigDecimal paymentCharges; @ApiModelProperty("是否推送回款返利,0不推送,1推送") private Integer isPushHkfl; + + @ApiModelProperty("推送财务数据类型(0付款单,1凭证)") + private Integer finDataType; + @ApiModelProperty("应付类别分类(dictTypeCode)") + private String payCostType; + @ApiModelProperty("款项类别key(dictKey对应财务应付类别编码)") + private String payChannel; + @ApiModelProperty("批量处理编码") + private String batchNumber; } diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDetailsVo.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDetailsVo.java index 846ace5332..4262d6e49c 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDetailsVo.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDetailsVo.java @@ -85,4 +85,12 @@ public class FinPaymentrecordDetailsVo implements Vo { private String purchaseSystemSid; // 采购系统sid @ApiModelProperty("采购系统名称") private String purchaseSystemName; // 采购系统名称 + @ApiModelProperty("推送财务数据类型(0付款单,1凭证)") + private Integer finDataType; + @ApiModelProperty("应付类别分类(dictTypeCode)") + private String payCostType; + @ApiModelProperty("款项类别key(dictKey对应财务应付类别编码)") + private String payChannel; + @ApiModelProperty("批量处理编码") + private String batchNumber; } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDto.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDto.java index 7d2e320acf..84f11da9f4 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDto.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordDto.java @@ -105,4 +105,12 @@ public class FinPaymentrecordDto implements Dto { private String busRemarks; @ApiModelProperty("是否推送回款返利,0不推送,1推送") private Integer isPushHkfl; + @ApiModelProperty("推送财务数据类型(0付款单,1凭证)") + private Integer finDataType; + @ApiModelProperty("应付类别分类(dictTypeCode)") + private String payCostType; + @ApiModelProperty("款项类别key(dictKey对应财务应付类别编码)") + private String payChannel; + @ApiModelProperty("批量处理编码") + private String batchNumber; } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordQuery.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordQuery.java index 26810b1b40..1223924389 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordQuery.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordQuery.java @@ -78,5 +78,6 @@ public class FinPaymentrecordQuery implements Query { private String payBank; @ApiModelProperty("付款账号") private String payBankAccount; - + @ApiModelProperty("批量处理编码") + private String batchNumber; } diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordVo.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordVo.java index 67a77bfc06..21e7942b41 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordVo.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordVo.java @@ -95,4 +95,6 @@ public class FinPaymentrecordVo implements Vo { private String payWayKey; @ApiModelProperty("付款方式Value") private String payWayValue; + @ApiModelProperty("批量处理编码") + private String batchNumber; } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java index 9a31bfa3a9..a3dd3f395e 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java @@ -1670,23 +1670,23 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges())); resultDetails.add(dto0); } - if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) != 0) { - Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //借方 - dto2.setSummary(voucherDetail.getBankName() + "结清未到期利息不减免"); - dto2.setSubjectNo("6002.01.17"); - dto2.setDimensionDept(voucherDetail.getDeptCode()); - dto2.setCredit(String.valueOf(voucherDetail.getNoRelief())); - resultDetails.add(dto2); - } - if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) != 0) { - Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //借方 - dto3.setSummary(voucherDetail.getBankName() + "结清未到期利息减免"); - dto3.setSubjectNo("1201.01.00"); - dto3.setDimensionDept(voucherDetail.getDeptCode()); - dto3.setDimensionCustom(voucherDetail.getCustomerCode()); - dto3.setCredit(String.valueOf(voucherDetail.getRelief())); - resultDetails.add(dto3); - } +// if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) != 0) { +// Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //借方 +// dto2.setSummary(voucherDetail.getBankName() + "结清未到期利息不减免"); +// dto2.setSubjectNo("6002.01.17"); +// dto2.setDimensionDept(voucherDetail.getDeptCode()); +// dto2.setCredit(String.valueOf(voucherDetail.getNoRelief())); +// resultDetails.add(dto2); +// } +// if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) != 0) { +// Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //借方 +// dto3.setSummary(voucherDetail.getBankName() + "结清未到期利息减免"); +// dto3.setSubjectNo("1201.01.00"); +// dto3.setDimensionDept(voucherDetail.getDeptCode()); +// dto3.setDimensionCustom(voucherDetail.getCustomerCode()); +// dto3.setCredit(String.valueOf(voucherDetail.getRelief())); +// resultDetails.add(dto3); +// } if (voucherDetail.getSubtrahend().compareTo(BigDecimal.ZERO) != 0) { Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方 dto4.setSummary(voucherDetail.getBankName() + "个贷保证金抵结清款"); @@ -1729,23 +1729,23 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges())); resultDetails.add(dto0); } - if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) != 0) { - Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //借方 - dto2.setSummary(voucherDetail.getBankName() + "结清未到期利息不减免"); - dto2.setSubjectNo("6002.01.17"); - dto2.setDimensionDept(voucherDetail.getDeptCode()); - dto2.setCredit(String.valueOf(voucherDetail.getNoRelief())); - resultDetails.add(dto2); - } - if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) != 0) { - Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //借方 - dto3.setSummary(voucherDetail.getBankName() + "结清未到期利息减免"); - dto3.setSubjectNo("1201.01.00"); - dto3.setDimensionDept(voucherDetail.getDeptCode()); - dto3.setDimensionCustom(voucherDetail.getCustomerCode()); - dto3.setCredit(String.valueOf(voucherDetail.getRelief())); - resultDetails.add(dto3); - } +// if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) != 0) { +// Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //借方 +// dto2.setSummary(voucherDetail.getBankName() + "结清未到期利息不减免"); +// dto2.setSubjectNo("6002.01.17"); +// dto2.setDimensionDept(voucherDetail.getDeptCode()); +// dto2.setCredit(String.valueOf(voucherDetail.getNoRelief())); +// resultDetails.add(dto2); +// } +// if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) != 0) { +// Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //借方 +// dto3.setSummary(voucherDetail.getBankName() + "结清未到期利息减免"); +// dto3.setSubjectNo("1201.01.00"); +// dto3.setDimensionDept(voucherDetail.getDeptCode()); +// dto3.setDimensionCustom(voucherDetail.getCustomerCode()); +// dto3.setCredit(String.valueOf(voucherDetail.getRelief())); +// resultDetails.add(dto3); +// } if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) { Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方 dto4.setSummary(voucherDetail.getBankName() + "结清"); diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlecompanyreduction/LoanSettleCompanyReduction.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlecompanyreduction/LoanSettleCompanyReduction.java index f6e655d26d..fe66dca899 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlecompanyreduction/LoanSettleCompanyReduction.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlecompanyreduction/LoanSettleCompanyReduction.java @@ -28,7 +28,7 @@ public class LoanSettleCompanyReduction extends BaseEntity { private BigDecimal profit; @ApiModelProperty("公司未到期利息减免") private BigDecimal notDuePriceRelief; - @ApiModelProperty("减免依据") + @ApiModelProperty("减免依据(资方未到期利息减免)") private BigDecimal reliefBasis; } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java index 89520132a8..d06d84f4cc 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java @@ -987,6 +987,7 @@ public class LoanBePadsincereApplyService extends MybatisBaseService settleVoucherVos = new ArrayList<>(); if (add.compareTo(BigDecimal.ZERO) > 0) { //结转剩余保证金 -// BigDecimal decimal = carryForward(loanSettleApply); -// if (null != decimal) { -// actualDeposit = decimal; -// } settleVoucherVos = carryForward2(loanSettleApply); check = 1; } @@ -990,7 +967,6 @@ public class LoanSettleApplyService extends MybatisBaseService 0) { + Voucher.VoucherResultDetailDto voucherDetail = new Voucher.VoucherResultDetailDto(); + voucherDetail.setSummary(planDetails.getBankName() + "结清"); + voucherDetail.setSubjectNo(bankCode); + voucherDetail.setDimensionDept(deptCode); + voucherDetail.setDimensionCustom(customerNumber); + voucherDetail.setDebit(yhjmjf.toString()); + resultDetails.add(voucherDetail); + } + if (gswdqlxjm.compareTo(BigDecimal.ZERO) > 0) { + Voucher.VoucherResultDetailDto voucherDetail = new Voucher.VoucherResultDetailDto(); + voucherDetail.setSummary(planDetails.getBankName() + "结清未到期利息减免"); + voucherDetail.setSubjectNo("1201.01.00"); + voucherDetail.setDimensionDept(deptCode); + voucherDetail.setDimensionCustom(customerNumber); + voucherDetail.setCredit(gswdqlxjm.toString()); + resultDetails.add(voucherDetail); + } + if (yhcejsr.compareTo(BigDecimal.ZERO) > 0) { + Voucher.VoucherResultDetailDto voucherDetail = new Voucher.VoucherResultDetailDto(); + voucherDetail.setSummary(planDetails.getBorrowerName() + "结清收入"); + voucherDetail.setSubjectNo("6002.01.17"); + voucherDetail.setDimensionDept(deptCode); + voucherDetail.setCredit(yhcejsr.toString()); + resultDetails.add(voucherDetail); + } newVoucher.setResultDetails(resultDetails); if (!fundHistoryList.isEmpty()) { loanPushFundHistoryService.saveLists(fundHistoryList); @@ -2514,6 +2549,7 @@ public class LoanSettleApplyService extends MybatisBaseService 0) { FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto(); + finPaymentrecordDto.setFinDataType(1); finPaymentrecordDto.setApplySid(""); finPaymentrecordDto.setPayCompanySid(""); finPaymentrecordDto.setPayType(1); @@ -3596,13 +3632,8 @@ public class LoanSettleApplyService extends MybatisBaseService settleVoucherVos = carryForward2(loanSettleApply); -// BigDecimal decimal = carryForward(loanSettleApply); -// if (null != decimal) { -// actualDeposit = decimal; -// } //更新车辆表结清状态 baseMapper.updateBus(loanSettleApply.getBusVinSid(), "1"); //推送资方结清款到出纳代付款列表 @@ -3610,7 +3641,6 @@ public class LoanSettleApplyService extends MybatisBaseService 0) { PaymentVoucher paymentVoucher = new PaymentVoucher(); paymentVoucher.setBankAccount(accountNumber); @@ -4198,8 +4224,8 @@ public class LoanSettleApplyService extends MybatisBaseService entry : map.entrySet()) { FinPaymentrecordDto payDto = new FinPaymentrecordDto(); + payDto.setFinDataType(1); payDto.setBusSid(apply.getSid()); payDto.setCreateBySid(apply.getCreateBySid()); payDto.setCost(entry.getValue().toString()); @@ -795,22 +765,6 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy()); -// //推送转付凭证 -// Future future = pool.submit(() -> { -// pushPaymentVoucher(businessSid); -// }); -// } catch (Exception e) { -// e.printStackTrace(); -// log.error("推送数据失败=========================" + e.getMessage()); -// return rb.setMsg("推送数据失败"); -// } - } return rb.success().setData(resultBean.getData()); } else { From a0a556ff061c0472d450a5c291dd0d615d79350f Mon Sep 17 00:00:00 2001 From: ligaode Date: Tue, 25 Mar 2025 15:39:39 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/baseaccadjapply/AppCompanyAdjustVo.java | 4 ++-- .../api/appsubsetversion/AppSubsetVersionFeign.java | 4 ++-- .../biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml | 6 ++++-- .../loanbeoverdueveh/LoanBeOverdueVehService.java | 2 -- .../ScmVehicleEnterlibraryFeign.java | 13 ------------- .../supplychain/companyAdjust/CompanyAdjustVo.java | 8 ++++---- 6 files changed, 12 insertions(+), 25 deletions(-) diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/AppCompanyAdjustVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/AppCompanyAdjustVo.java index e721dfaf1e..b4cdd44422 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/AppCompanyAdjustVo.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseaccadjapply/AppCompanyAdjustVo.java @@ -26,10 +26,10 @@ public class AppCompanyAdjustVo implements Vo { private String callOutOrgName; @ApiModelProperty("调车类型key") @JsonProperty("typeKey") - private String shuntingTypeKey; + private String accadjTypeKey; @ApiModelProperty("调车类型") @JsonProperty("type") - private String shuntingTypeValue; + private String accadjTypeValue; private List records = new ArrayList<>(); } diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appsubsetversion/AppSubsetVersionFeign.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appsubsetversion/AppSubsetVersionFeign.java index 288215e29d..45a18a5c9e 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appsubsetversion/AppSubsetVersionFeign.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/appsubsetversion/AppSubsetVersionFeign.java @@ -38,7 +38,7 @@ public interface AppSubsetVersionFeign { @ResponseBody @PostMapping("/save") public ResultBean save(AppSubsetVersionDto appSubsetVersionDto); - + @ApiOperation(value = "更新主框架的子应用") @ResponseBody @PostMapping("/update") @@ -62,6 +62,6 @@ public interface AppSubsetVersionFeign { @ApiOperation("查询插件最新模块信息") @GetMapping("/getLastRiskByAppSid") - ResultBean getLastRiskByAppSid(@RequestParam("appSid") String appSid, @RequestParam("moduleAction")String moduleAction); + ResultBean getLastRiskByAppSid(@RequestParam("appSid") String appSid, @RequestParam("moduleAction") String moduleAction); } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml index e543a7b405..c71747041d 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml @@ -36,7 +36,8 @@ lrpd.sid FROM loan_repayment_plan_details lrpd - WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE())), + WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE() + AND lrpd.busVinSid = a1.busVinSid)), 0 ) ) AS beOverdueMoney, @@ -59,7 +60,8 @@ lrpd.sid FROM loan_repayment_plan_details lrpd - WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE())), + WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE() + AND lrpd.busVinSid = a1.busVinSid)), 0 ) ) / a1.qjyh, diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehService.java index 3782464e6a..a461530ba7 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehService.java @@ -26,8 +26,6 @@ public class LoanBeOverdueVehService { private SysUserFeign sysUserFeign; @Autowired private LoanBeOverdueVehMapper loanBeOverdueVehMapper; - @Autowired - private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign; public PagerVo listPageVo(PagerQuery pq) { LoanBeOverdueVehQuery query = pq.getParams(); diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleenterlibrary/ScmVehicleEnterlibraryFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleenterlibrary/ScmVehicleEnterlibraryFeign.java index 0e2fd00552..ea9afad34d 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleenterlibrary/ScmVehicleEnterlibraryFeign.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleenterlibrary/ScmVehicleEnterlibraryFeign.java @@ -35,19 +35,6 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; -/** - * Project: scm(scm)
- * File: ScmVehicleEnterlibraryFeign.java
- * Class: scm.api.scmvehicleenterlibrary.ScmVehicleEnterlibraryFeign
- * Description: 入库单.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2022-06-06 09:53:39
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Api(tags = "入库单") @FeignClient( contextId = "scm-ScmVehicleEnterlibrary", diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/companyAdjust/CompanyAdjustVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/companyAdjust/CompanyAdjustVo.java index 6e776e1776..7911e2c477 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/companyAdjust/CompanyAdjustVo.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/companyAdjust/CompanyAdjustVo.java @@ -20,16 +20,16 @@ public class CompanyAdjustVo implements Vo { private String procInsId; @ApiModelProperty("调入分公司名称") @JsonProperty("company2") - private String buyerOrgName; + private String callInOrgName; @ApiModelProperty("调出分公司名称") @JsonProperty("company") - private String sellerOrgName; + private String callOutOrgName; @ApiModelProperty("调车类型key") @JsonProperty("typeKey") - private String shuntingTypeKey; + private String accadjTypeKey; @ApiModelProperty("调车类型") @JsonProperty("type") - private String shuntingTypeValue; + private String accadjTypeValue; private List records = new ArrayList<>(); } From 037525b0588f3bf8b1cf2f710eb2f1898702aefe Mon Sep 17 00:00:00 2001 From: ligaode Date: Tue, 25 Mar 2025 17:57:58 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../portal/api/sysuser/SysUserFeign.java | 2 +- .../LoanBeCollectionRecordFeign.java | 19 +- .../LoanBeOverdueVehMapper.xml | 551 ++++++++---------- 3 files changed, 232 insertions(+), 340 deletions(-) diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java index 3141830257..baad08c562 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java @@ -296,6 +296,6 @@ public interface SysUserFeign { @ApiOperation(value = "根据部门sid和角色名查询用户") @PostMapping(value = "/selectByDeptSidAndRoleName") ResultBean> selectByDeptSidAndRoleName(@RequestParam("deptSid") String deptSid, - @RequestParam("roleNames") List roleNames); + @RequestParam("roleNames") List roleNames); } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordFeign.java index 614a11933b..4a03e4d1a5 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbecollectionrecord/LoanBeCollectionRecordFeign.java @@ -33,21 +33,6 @@ import com.yxt.common.core.vo.PagerVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; -import java.util.List; - -/** - * Project: anrui-riskcenter(逾期催收记录)
- * File: LoanBeCollectionRecordFeign.java
- * Class: com.yxt.anrui.riskcenter.api.loanbecollectionrecord.LoanBeCollectionRecordFeign
- * Description: 逾期催收记录.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2023-12-11 13:45:40
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Api(tags = "逾期催收记录") @FeignClient( contextId = "anrui-riskcenter-LoanBeCollectionRecord", @@ -65,12 +50,12 @@ public interface LoanBeCollectionRecordFeign { @PostMapping("/save") @ResponseBody public ResultBean save(@RequestBody LoanBeCollectionRecordDto dto); - + @ApiOperation("根据sid删除记录") @DeleteMapping("/delBySids") @ResponseBody public ResultBean delBySids(@RequestBody String[] sids); - + @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchDetailsBySid/{sid}") @ResponseBody diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml index c71747041d..498a9d036b 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbeoverdueveh/LoanBeOverdueVehMapper.xml @@ -16,67 +16,26 @@ a1.bankName, a1.bankContractNo, a1.dueMoney AS bankMonthRep, - a1.dueDate AS firstBeDate, + MIN(a1.dueDate) AS firstBeDate, -- 改为取最早逾期日期 COUNT(a1.sid) AS beOverduePeriod, - ( - SUM(a1.yq_total) + IFNULL( - (SELECT - SUM(lbpv.bankBeInter) - FROM - loan_be_padsincere_veh lbpv - WHERE lbpv.saleVehSid = a1.busVinSid), - 0 - ) + IFNULL( - (SELECT - SUM(fund) - FROM - loan_fund_day - WHERE busSid IN - (SELECT - lrpd.sid - FROM - loan_repayment_plan_details lrpd - WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE() - AND lrpd.busVinSid = a1.busVinSid)), - 0 - ) - ) AS beOverdueMoney, + SUM(a1.yq_total) + + COALESCE(lbpv_sum.bankBeInter_sum, 0) + + COALESCE(lfd_sum.fund_sum, 0) AS beOverdueMoney, ROUND( - ( - SUM(a1.yq_total) + IFNULL( - (SELECT - SUM(lbpv.bankBeInter) - FROM - loan_be_padsincere_veh lbpv - WHERE lbpv.saleVehSid = a1.busVinSid), - 0 - ) + IFNULL( - (SELECT - SUM(fund) - FROM - loan_fund_day - WHERE busSid IN - (SELECT - lrpd.sid - FROM - loan_repayment_plan_details lrpd - WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE() - AND lrpd.busVinSid = a1.busVinSid)), - 0 - ) - ) / a1.qjyh, + (SUM(a1.yq_total) + COALESCE(lbpv_sum.bankBeInter_sum, 0) + COALESCE(lfd_sum.fund_sum, 0)) / + MAX(a1.qjyh), -- 保证聚合正确性 1 ) AS beOverdueMoneyAndPeriod, SUM(a1.yd_dkje) AS advMoney, SUM(a1.yd_zjzyf) AS fundPossCostMoney, - a1.riskStaffUserSid, - a1.riskStaffUserName, - a1.reaRepaymentName AS repaymentName, - a1.createTime, + MAX(a1.riskStaffUserSid) AS riskStaffUserSid, -- 保证聚合正确性 + MAX(a1.riskStaffUserName) AS riskStaffUserName, + MAX(a1.reaRepaymentName) AS repaymentName, + MAX(a1.createTime) AS createTime, a1.orgSidPath, - a1.lockCarState - FROM - (SELECT + MAX(a1.lockCarState) AS lockCarState -- 保证聚合正确性 + FROM ( + SELECT lrpd.sid, lrpd.busVinSid, lrpd.useOrgName, @@ -89,63 +48,67 @@ lrpd.bankContractNo, lrpd.dueMoney, lrpd.dueDate, - ( - IFNULL(lrs.mainMidRepay, 0) + IFNULL(lrs.otherMidRepay, 0) - ) AS qjyh, - ( - lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0)) - ) AS yq_total, - ( - lrpd.dueMoney - SUM(IFNULL(lrh.actualMoney, 0)) - ) / lrpd.dueMoney AS yq_hsqs, + COALESCE(lrs.mainMidRepay, 0) + COALESCE(lrs.otherMidRepay, 0) AS qjyh, + lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0) AS yq_total, lrpd.paymentMoney AS yd_dkje, lrpd.fund AS yd_zjzyf, lrpd.orgSidPath, - lrpd.createBySid, bv.riskStaffUserSid, bv.riskStaffUserName, bv.reaRepaymentName, - lr.createTime, - (SELECT - CASE - lbcv.lockCarState - WHEN 0 - THEN '未控制' - WHEN 1 - THEN '控制成功' - WHEN 2 - THEN '控制失败' - WHEN 3 - THEN '已解控' + lbcr.createTime, + CASE lbcv.lockCarState + WHEN 0 THEN '未控制' + WHEN 1 THEN '控制成功' + WHEN 2 THEN '控制失败' + WHEN 3 THEN '已解控' END AS lockCarState - FROM - loan_be_collection_veh lbcv - LEFT JOIN loan_be_collection_apply lbca - ON lbca.sid = lbcv.mainSid - WHERE lbca.collMeasure LIKE '%远程控制%' - AND lbca.nodeState = '已办结' - AND lbcv.saleVehSid = lrpd.busVinSid - ORDER BY lbca.createTime DESC - LIMIT 1) AS lockCarState - FROM - loan_repayment_plan_details lrpd + FROM loan_repayment_plan_details lrpd LEFT JOIN loan_repayment_history lrh ON lrh.planDetailSid = lrpd.sid + INNER JOIN loan_repayment_schedule lrs + ON lrpd.scheduleSid = lrs.sid LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bv ON lrpd.busVinSid = bv.sid - LEFT JOIN loan_repayment_schedule lrs - ON lrpd.scheduleSid = lrs.sid - LEFT JOIN - (SELECT + LEFT JOIN ( + SELECT saleVehSid, - createTime - FROM - loan_be_collection_record - ORDER BY createTime DESC) lr - ON lrpd.busVinSid = lr.saleVehSid - WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE() + MAX(createTime) AS createTime -- 取最新记录 + FROM loan_be_collection_record + GROUP BY saleVehSid + ) lbcr ON lrpd.busVinSid = lbcr.saleVehSid + LEFT JOIN ( + SELECT + lbcv.saleVehSid, + lbcv.lockCarState, + ROW_NUMBER() OVER (PARTITION BY lbcv.saleVehSid ORDER BY lbca.createTime DESC) AS rn + FROM loan_be_collection_veh lbcv + JOIN loan_be_collection_apply lbca + ON lbca.sid = lbcv.mainSid + WHERE lbca.collMeasure LIKE '%远程控制%' + AND lbca.nodeState = '已办结' + ) lbcv ON lbcv.saleVehSid = lrpd.busVinSid AND lbcv.rn = 1 + WHERE lrpd.dueDate < CURDATE() -- 移除DATE_FORMAT函数 GROUP BY lrpd.sid - HAVING (yq_total > 0)) a1 + HAVING (lrpd.dueMoney - COALESCE(SUM(lrh.actualMoney), 0)) > 0 + ) a1 + LEFT JOIN ( + SELECT + saleVehSid, + SUM(bankBeInter) AS bankBeInter_sum + FROM loan_be_padsincere_veh + GROUP BY saleVehSid + ) lbpv_sum ON lbpv_sum.saleVehSid = a1.busVinSid + LEFT JOIN ( + SELECT + lrpd.busVinSid, + SUM(lfd.fund) AS fund_sum + FROM loan_fund_day lfd + JOIN loan_repayment_plan_details lrpd + ON lrpd.sid = lfd.busSid + WHERE lrpd.dueDate < CURDATE() + GROUP BY lrpd.busVinSid + ) lfd_sum ON lfd_sum.busVinSid = a1.busVinSid ${ew.sqlSegment} @@ -162,134 +125,113 @@ - + + \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordRest.java index 110381be5f..ec8e397193 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordRest.java @@ -34,9 +34,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.List; -import java.util.Map; - /** * Project: anrui-fin(财务)
* File: FinPaymentrecordFeignFallback.java
@@ -87,6 +84,11 @@ public class FinPaymentrecordRest implements FinPaymentrecordFeign { return finPaymentrecordService.updateAll(dto); } + @Override + public ResultBean batchUpdate(FinPaymentrecordUpdateDto dto) { + return finPaymentrecordService.batchUpdate(dto); + } + @Override public ResultBean updateState(String[] sids) { return finPaymentrecordService.updateState(sids); diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java index 51d9a1971e..e21aba2e3e 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java @@ -27,6 +27,7 @@ package com.yxt.anrui.fin.biz.finpaymentrecord; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.util.concurrent.ThreadFactoryBuilder; @@ -55,12 +56,14 @@ import com.yxt.anrui.fin.api.finpaymentapplyvehicle.FinPaymentapplyVehicleVo; 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.api.kingdee.voucher.Voucher; import com.yxt.anrui.fin.biz.finmanufacturerbank.FinManufacturerBankService; import com.yxt.anrui.fin.biz.finpaymentapply.FinPaymentapplyService; import com.yxt.anrui.fin.biz.finpaymentapplydetails.FinPaymentapplyDetailsService; import com.yxt.anrui.fin.biz.finpaymentapplyvehicle.FinPaymentapplyVehicleService; import com.yxt.anrui.fin.biz.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRService; import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService; +import com.yxt.anrui.fin.biz.kingdee.voucher.VoucherService; import com.yxt.anrui.portal.api.flow.FlowableFeign; import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; import com.yxt.anrui.portal.api.sysorganization.SysOrganization; @@ -79,6 +82,7 @@ import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDe 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.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.anrui.scm.api.scmcollectionrebate.ScmCollectionRebateDto; import com.yxt.anrui.scm.api.scmcollectionrebate.ScmCollectionRebateFeign; import com.yxt.anrui.scm.api.scmcollectionrebateveh.ScmCollectionRebateVehDto; @@ -106,6 +110,7 @@ import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; import java.text.NumberFormat; +import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; @@ -185,6 +190,8 @@ public class FinPaymentrecordService extends MybatisBaseService listPageVo(PagerQuery pq) { FinPaymentrecordQuery query = pq.getParams(); @@ -203,6 +210,9 @@ public class FinPaymentrecordService extends MybatisBaseService= date_format('" + pageQuery.getCreateStartDate() + "','%Y-%m-%d')"). apply(StringUtils.isNotBlank(pageQuery.getCreateEndDate()), "date_format (fp.createTime,'%Y-%m-%d') <= date_format('" + pageQuery.getCreateEndDate() + "','%Y-%m-%d')" @@ -657,17 +667,26 @@ public class FinPaymentrecordService extends MybatisBaseService FPAYBILLENTRYs = new ArrayList<>(); if (finPaymentrecord.getCost() != null && finPaymentrecord.getCost().compareTo(BigDecimal.ZERO) > 0) { @@ -719,6 +738,325 @@ public class FinPaymentrecordService extends MybatisBaseService sids = dto.getSids(); + //判断选择的sids的付款申请的收款单位是否一致 + List applySids = baseMapper.selectApplySids(sids); + if (applySids.size() > 1) { + applySids = applySids.stream().distinct().collect(Collectors.toList()); + if (applySids.size() > 1) { + return rb.setMsg("批量处理的数据中存在收款账号不一致"); + } + } + if (applySids.contains("")) { + return rb.setMsg("处理的数据包含收款账号不存在的数据"); + } + //判断是否包含已作废的 + List sidState = baseMapper.selectApplySidBySid(sids); + if (sidState.size() > 1) { + if (sidState.contains(3)) { + return rb.setMsg("处理的数据包含已作废的记录"); + } + if (sidState.contains(2)) { + return rb.setMsg("处理的数据中包含已通过的记录"); + } + } + //生成批量处理编号 + String batchNumTemp = selectBatchNum(new SimpleDateFormat("yyMMdd").format(new Date())); + if (StringUtils.isBlank(batchNumTemp)) { + batchNumTemp = "0"; + } + int intValue = Integer.valueOf(batchNumTemp).intValue(); + String batchNum = GetSerialNum.getNum(intValue); + List apPayBills = new ArrayList<>(); + List vouchers = new ArrayList<>(); + for (int i = 0; i < sids.size(); i++) { + FinPaymentrecord finPaymentrecord = fetchBySid(sids.get(i)); + int finDataType = 0; //(0付款单,1凭证) + if (null != finPaymentrecord.getFinDataType()) { + if (finPaymentrecord.getFinDataType().intValue() == 1) { + finDataType = 1; + } + } else { + finDataType = 1; + } + finPaymentrecord.setBatchNumber(batchNum); + //到回款返利申请 + if (finPaymentrecord.getIsPushHkfl() == 1) { + ScmCollectionRebateDto scmCollectionRebateDto = new ScmCollectionRebateDto(); + List scmCollectionRebateVehDtos = new ArrayList<>(); + FinPaymentapply finPaymentapply = finPaymentapplyService.fetchBySid(finPaymentrecord.getApplySid()); + FinPaymentapplyDetails finPaymentapplyDetails = finPaymentapplyDetailsService.fetchBySid(finPaymentrecord.getBusSid()); + List vehicleList = finPaymentapplyVehicleService.getVehicleList(finPaymentapply.getSid()); + scmCollectionRebateDto.setPurchaseSystemSid(finPaymentrecord.getPurchaseSystemSid()); + scmCollectionRebateDto.setPurchaseSystemName(finPaymentrecord.getPurchaseSystemName()); + scmCollectionRebateDto.setCostTitleKey(finPaymentrecord.getCostTitleKey()); + scmCollectionRebateDto.setCostTitleValue(finPaymentrecord.getCostTitleValue()); + scmCollectionRebateDto.setBrandSid(finPaymentapply.getCarBrandSid()); + scmCollectionRebateDto.setBrandName(finPaymentapply.getCarBrandName()); + scmCollectionRebateDto.setCollectionTypeKey(dto.getPayWayKey()); + scmCollectionRebateDto.setCollectionTypeValue(dto.getPayWayValue()); + scmCollectionRebateDto.setManufaSaleChannel(""); + scmCollectionRebateDto.setManufaSaleChannelValue(finPaymentapplyDetails.getActualPay()); + scmCollectionRebateDto.setCollectionMoney(new BigDecimal(dto.getCost())); + scmCollectionRebateDto.setCollectionDate(DateUtil.formatDate(dto.getPayDate())); + SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(finPaymentrecord.getCreateOrgSid()).getData(); + scmCollectionRebateDto.setCreateOrgSid(finPaymentrecord.getCreateOrgSid()); + scmCollectionRebateDto.setCreateOrgName(sysOrganizationVo.getName()); + scmCollectionRebateDto.setUseOrgSid(finPaymentrecord.getUseOrgSid()); + scmCollectionRebateDto.setUseOrgName(sysOrganizationVo.getName()); + scmCollectionRebateDto.setOrgPath(finPaymentapply.getOrgSidPath()); + scmCollectionRebateDto.setCreateBySid(finPaymentrecord.getCreateBySid()); + if (vehicleList != null && vehicleList.size() > 0) { + for (FinPaymentapplyVehicleVo finPaymentapplyVehicleVo : vehicleList) { + ScmCollectionRebateVehDto scmCollectionRebateVehDto = new ScmCollectionRebateVehDto(); + BaseVehicleSelectVo baseVehicleSelectVo = baseVehicleFeign.details(finPaymentapplyVehicleVo.getVehiSid()).getData(); + scmCollectionRebateVehDto.setCarModelSid(finPaymentapplyVehicleVo.getModelSid()); + scmCollectionRebateVehDto.setCarModelName(finPaymentapplyVehicleVo.getModelName()); + scmCollectionRebateVehDto.setPriceDate(DateUtil.format(baseVehicleSelectVo.getPriceDate(), "yyyy-MM-dd")); + if (baseVehicleSelectVo.getSalesDate() != null) { + scmCollectionRebateVehDto.setSalesDate(DateUtil.format(baseVehicleSelectVo.getSalesDate(), "yyyy-MM-dd")); + } + scmCollectionRebateVehDto.setVehSid(finPaymentapplyVehicleVo.getVehiSid()); + scmCollectionRebateVehDto.setVinNo(finPaymentapplyVehicleVo.getVinNo()); + scmCollectionRebateVehDto.setCostPrice(finPaymentapplyVehicleVo.getMoney()); + scmCollectionRebateVehDtos.add(scmCollectionRebateVehDto); + } + } + scmCollectionRebateDto.setScmCollectionRebateVehs(scmCollectionRebateVehDtos); + scmCollectionRebateDto.setIsEnable(1); + scmCollectionRebateFeign.save(scmCollectionRebateDto); + } + //更新还款计划表垫款金额和逾期利息 + if ("007".equals(finPaymentrecord.getCostTypeKey())) { + List loanBePadsincereVehDetailsVos = loanBePadsincereVehFeign.selByBankCont(finPaymentrecord.getApplySid(), finPaymentrecord.getBusSid()).getData(); + for (LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo : loanBePadsincereVehDetailsVos) { + LoanRepaymentPlanMoneyVo loanRepaymentPlanMoneyVo = loanRepaymentPlanDetailsFeign.selVehSidAndPeriod(loanBePadsincereVehDetailsVo.getBusVinSid(), loanBePadsincereVehDetailsVo.getPeriod(), loanBePadsincereVehDetailsVo.getBankContractNo()).getData(); + LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(loanRepaymentPlanMoneyVo.getSid()).getData(); + String paymentMoney = loanRepaymentPlanMoneyVo.getPaymentMoney().add(new BigDecimal(loanBePadsincereVehDetailsVo.getPadMoney())).toString(); + String paymentInterest = loanRepaymentPlanMoneyVo.getPaymentInterest().add(new BigDecimal(loanBePadsincereVehDetailsVo.getBankBeInter())).toString(); + loanRepaymentPlanDetailsFeign.updateSidAndPeriod(loanRepaymentPlanMoneyVo.getSid(), loanBePadsincereVehDetailsVo.getPeriod(), paymentMoney, paymentInterest); + //推送金融应收 + FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); + jr.setCreateBySid(finPaymentrecord.getCreateBySid()); + SysUserVo userVo = sysUserFeign.fetchBySid(finPaymentrecord.getCreateBySid()).getData(); + jr.setCreateByName(userVo.getName()); + jr.setBusSid(planDetails.getSid()); + jr.setApplySid(finPaymentrecord.getApplySid()); + jr.setCurrentReceivableMoney(new BigDecimal(paymentInterest)); + jr.setReveivableMoney(new BigDecimal(paymentInterest)); + jr.setPayCostTitleKey("005"); + jr.setPayCostTitleValue("资方逾期利息"); + jr.setOrgSidPath(planDetails.getOrgSidPath()); + jr.setUseOrgName(planDetails.getUseOrgName()); + jr.setUseOrgSid(planDetails.getUseOrgSid()); + jr.setStaffDeptName(planDetails.getDept()); + jr.setStaffName(planDetails.getStaffName()); + jr.setStaffDeptSid(planDetails.getDeptSid()); + jr.setStaffUserSid(planDetails.getSalesUserSid()); + finUncollectedReceivablesDetailedJRService.insert(jr); + } + } + FinPaymentrecord finPaymentrecordOne = null; + if (new BigDecimal(dto.getCost()).compareTo(finPaymentrecord.getAccountsReceive()) < 0) {//实收金额小于应收金额 + finPaymentrecordOne = new FinPaymentrecord(); + BeanUtil.copyProperties(finPaymentrecord, finPaymentrecordOne, "sid"); + finPaymentrecordOne.setAccountsReceive(finPaymentrecord.getAccountsReceive().subtract(new BigDecimal(dto.getCost()))); + finPaymentrecordOne.setCost(finPaymentrecordOne.getAccountsReceive()); + } + BeanUtil.copyProperties(dto, finPaymentrecord, "sid"); + List payFiles = dto.getPayFiles(); + if (payFiles.size() > 0) { + String payFile = payFiles.stream().map(v -> v.replace(fileUploadComponent.getUrlPrefix(), "")).collect(Collectors.joining(",")); + finPaymentrecord.setPayFile(payFile); + } + baseMapper.updateById(finPaymentrecord); + //更新付款申请中的状态 + FinPaymentapply finPaymentapply = finPaymentapplyService.fetchBySid(finPaymentrecord.getApplySid()); + if (finPaymentapply != null) { + finPaymentapplyService.updateStateBySid(finPaymentrecord.getApplySid(), 2); + baseMapper.updateStateBySid(finPaymentrecord.getSid(), 2); + } else { + baseMapper.updateStateBySid(finPaymentrecord.getSid(), 2); + //更新厂家认款状态 + BaseManufUpdateDto baseManufUpdateDto = new BaseManufUpdateDto(); + baseManufUpdateDto.setSid(finPaymentrecord.getBusSid()); + baseManufUpdateDto.setState("1"); + ResultBean resultBean = baseManufactorSubscriptionFeign.updatePaymentState(baseManufUpdateDto); + } + if (finPaymentrecordOne != null) { + baseMapper.insert(finPaymentrecordOne); + } + //推送金蝶付款单 + if (finDataType == 0) { + try { + ApPayBill apb = createApPayBill(finPaymentrecord); + apPayBills.add(apb); + } catch (Exception e) { + log.error(e.getMessage()); + } + } + String costTypeKey = finPaymentrecord.getCostTypeKey(); + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(1, 10, + 1000, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + int finalI = i; + if ("005".equals(costTypeKey)) { + Future future6 = pool.submit(() -> { + List recipientSidList = new ArrayList<>(); + BusVehicleApplyDetailsVo busVehicleApplyDetailsVo = busVehicleApplyFeign.fetchSid(finPaymentrecord.getApplySid()).getData(); + String createBySid = busVehicleApplyDetailsVo.getCreateBySid(); + recipientSidList.add(createBySid); + PushMessageQuery pushMessageQuery = new PushMessageQuery(); + pushMessageQuery.setReceivedSids(recipientSidList); + pushMessageQuery.setModuleName("财务管理"); + pushMessageQuery.setMsgContent("您的付款申请已确认通过"); + pushMessageQuery.setApp_type("2"); + pushMessageQuery.setModuleSid("98ff0724-5df4-4fc7-ab6d-3996e7706acd"); + pushMessageQuery.setMsgTitle("付款确认通知"); + pushMessageQuery.setBusinessSid(sids.get(finalI)); + // 消息推送 + messageFeign.pushNoUriMessage(pushMessageQuery); + }); + } else if ("002".equals(costTypeKey)) { + Future future6 = pool.submit(() -> { + List recipientSidList = new ArrayList<>(); + BaseOutsourcingApplicationDetailsVo baseOutsourcingApplicationDetailsVo = baseOutsourcingApplicationFeign.fetchBySid(finPaymentrecord.getApplySid()).getData(); + String createBySid = baseOutsourcingApplicationDetailsVo.getCreateBySid(); + recipientSidList.add(createBySid); + PushMessageQuery pushMessageQuery = new PushMessageQuery(); + pushMessageQuery.setReceivedSids(recipientSidList); + pushMessageQuery.setModuleName("财务管理"); + pushMessageQuery.setMsgContent("您的付款申请已确认通过"); + pushMessageQuery.setApp_type("2"); + pushMessageQuery.setModuleSid("98ff0724-5df4-4fc7-ab6d-3996e7706acd"); + pushMessageQuery.setMsgTitle("付款确认通知"); + pushMessageQuery.setBusinessSid(sids.get(finalI)); + // 消息推送 + messageFeign.pushNoUriMessage(pushMessageQuery); + }); + } else if ("006".equals(costTypeKey)) { + //推送转付记录 + Future future1 = pool.submit(() -> { + loanTransferPaymentApplyFeign.pushPaymentRecord(finPaymentrecord.getBusSid(), finPaymentrecord.getSid()); + }); + Future future2 = pool.submit(() -> { + RskVoucher voucher = loanTransferPaymentApplyFeign.pushPaymentVoucherReturnVoucher(finPaymentrecord.getBusSid(), finPaymentrecord.getSid()).getData(); + if (null != voucher) { + Voucher v = new Voucher(); + BeanUtil.copyProperties(voucher, v); + vouchers.add(v); + } + }); + } else if ("007".equals(costTypeKey)) { + Future future1 = pool.submit(() -> { + RskVoucher voucher = loanBePadsincereApplyFeign.pushAdvancesReturnVoucher(finPaymentrecord.getApplySid(), finPaymentrecord.getSid()).getData(); + if (null != voucher) { + Voucher v = new Voucher(); + BeanUtil.copyProperties(voucher, v); + vouchers.add(v); + } + }); + } else if ("008".equals(costTypeKey) || "资方结清款".equals(finPaymentrecord.getCostTypeValue())) { + if (StringUtils.isNotBlank(finPaymentrecord.getPayBankAccount())) { + String shouxufei = "0"; + if (null != finPaymentrecord.getPaymentCharges()) { + shouxufei = finPaymentrecord.getPaymentCharges().toString(); + } + String accountNumber = finPaymentrecord.getPayBankAccount(); + String payTypeCode = ""; + FinManufacturerBank manufacturerBank = finManufacturerBankService.selOneByBankNo(accountNumber, finPaymentrecord.getUseOrgSid()).getData(); + if (null != manufacturerBank) { + payTypeCode = manufacturerBank.getDueBankKey(); + } + RskVoucher voucher = loanSettleApplyFeign.pushBankReturnVoucher(finPaymentrecord.getBusSid(), accountNumber, payTypeCode, shouxufei).getData(); + if (null != voucher) { + Voucher v = new Voucher(); + BeanUtil.copyProperties(voucher, v); + vouchers.add(v); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + log.error("推送数据失败=========================" + e.getMessage()); + return rb.setMsg("推送数据失败"); + } + } + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(1, 10, + 1000, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future = pool.submit(() -> { + if (!apPayBills.isEmpty()) { + ApPayBill apPayBill = buildBatchApPayBill(apPayBills); + ResultBean resultBean1 = apPayBillService.draftApPayBill(apPayBill); + } + if (!vouchers.isEmpty()) { + Voucher voucher = buildBatchVoucher(vouchers); + log.info("FinKingDeeFeignRest-saveVoucher:{}", JSONObject.toJSONString(voucher)); + voucherService.saveVoucher(voucher); + } + }); + } catch (Exception e) { + e.printStackTrace(); + log.error("推送数据失败=========================" + e.getMessage()); + return rb.setMsg("推送数据失败"); + } + return rb.success(); + } + + private Voucher pushPaymentVoucherReturnVoucher(String busSid, String sid) { + + return null; + } + + public ApPayBill buildBatchApPayBill(List list) { + ApPayBill apPayBill = new ApPayBill(); + List FPAYBILLENTRY = new ArrayList<>(); + ApPayBill payBill = list.get(0); + BeanUtil.copyProperties(payBill, apPayBill); + for (ApPayBill bill : list) { + List fpaybillentry = bill.getFPAYBILLENTRY(); + if (!fpaybillentry.isEmpty()) { + for (ApPayBill.FPAYBILLENTRY f : fpaybillentry) { + FPAYBILLENTRY.add(f); + } + } + } + apPayBill.setFPAYBILLENTRY(FPAYBILLENTRY); + return apPayBill; + } + + public Voucher buildBatchVoucher(List list) { + Voucher newVoucher = new Voucher(); + List resultDetails = new ArrayList<>(); + Voucher voucher = list.get(0); + BeanUtil.copyProperties(voucher, newVoucher); + for (Voucher v : list) { + List result = v.getResultDetails(); + if (!result.isEmpty()) { + for (Voucher.VoucherResultDetailDto r : result) { + resultDetails.add(r); + } + } + } + newVoucher.setResultDetails(resultDetails); + return newVoucher; + } + + /** * 作废 * @@ -990,7 +1328,7 @@ public class FinPaymentrecordService extends MybatisBaseService vehicleList = finPaymentapplyVehicleService.getVehicleList(finPaymentapply.getSid()); String payRemark = ""; for (FinPaymentapplyVehicleVo finPaymentapplyVehicleVo : vehicleList) { diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java index c55ad45a6f..4b393c995f 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeign.java @@ -25,17 +25,14 @@ *********************************************************/ package com.yxt.anrui.riskcenter.api.loanbepadsincereapply; -import com.yxt.anrui.buscenter.api.busvalcustfiling.flowable.*; import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.*; import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo; -import com.yxt.anrui.riskcenter.api.loancustomerrecord.flow.CustomerRecordDelegateQuery; -import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentExcelInfo; -import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.TransferPaymentQuery; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; @@ -149,6 +146,12 @@ public interface LoanBePadsincereApplyFeign { @ResponseBody public ResultBean pushAdvancesVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid); + @ApiOperation("推送财务垫款付款凭证") + @PostMapping("/pushAdvancesReturnVoucher") + @ResponseBody + public ResultBean pushAdvancesReturnVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid); + + @ApiOperation("垫还明细列表列表导出") @PostMapping("/dkListPageExport") @ResponseBody diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java index 3e820de4c7..24dec2370f 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanbepadsincereapply/LoanBePadsincereApplyFeignFallback.java @@ -27,6 +27,7 @@ package com.yxt.anrui.riskcenter.api.loanbepadsincereapply; import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.*; import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -146,6 +147,11 @@ public class LoanBePadsincereApplyFeignFallback implements LoanBePadsincereApply return null; } + @Override + public ResultBean pushAdvancesReturnVoucher(String sid, String paySid) { + return null; + } + @Override public void dkListPageExport(DkRecordQuery query) { diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyFeign.java index dbef121336..88985ed537 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyFeign.java @@ -1,6 +1,7 @@ package com.yxt.anrui.riskcenter.api.loansettleapply; import com.yxt.anrui.riskcenter.api.loansettleapply.flowable.*; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -110,5 +111,12 @@ public interface LoanSettleApplyFeign { @RequestParam("shouxufei") String shouxufei ); + @ApiOperation(value = "推送资方结清款凭证") + @PostMapping(value = "/pushBankVoucher") + ResultBean pushBankReturnVoucher(@RequestParam("sid") String sid, + @RequestParam("accountNumber") String accountNumber, + @RequestParam("payTypeCode") String payTypeCode, + @RequestParam("shouxufei") String shouxufei + ); } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java index ebee2da9ae..a382acefe0 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeign.java @@ -1,7 +1,7 @@ package com.yxt.anrui.riskcenter.api.loantransferpaymentapply; -import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*; import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.flow.*; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -68,6 +68,12 @@ public interface LoanTransferPaymentApplyFeign { @ResponseBody public ResultBean pushPaymentVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid); + @ApiOperation("推送财务代付款凭证") + @PostMapping("/pushPaymentVoucherReturnVoucher") + @ResponseBody + public ResultBean pushPaymentVoucherReturnVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid); + + //---------------------------流程--------------------------------------- @ApiOperation("提交") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java index 60717c69dc..42128861eb 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantransferpaymentapply/LoanTransferPaymentApplyFeignFallback.java @@ -1,9 +1,8 @@ package com.yxt.anrui.riskcenter.api.loantransferpaymentapply; -import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo; -import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*; import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.flow.*; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -55,6 +54,11 @@ public class LoanTransferPaymentApplyFeignFallback implements LoanTransferPaymen return null; } + @Override + public ResultBean pushPaymentVoucherReturnVoucher(String sid, String paySid) { + return null; + } + @Override public ResultBean submitRecordApplication(SubmitTransferDto dto) { return null; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvoucher/RskPaymentVoucher.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvoucher/RskPaymentVoucher.java new file mode 100644 index 0000000000..1e98fa8d7f --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvoucher/RskPaymentVoucher.java @@ -0,0 +1,64 @@ +package com.yxt.anrui.riskcenter.api.loanvoucher; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @author Fan + * @description + * @date 2023/12/19 11:18 + */ +@Data +@ApiModel(value = "一般凭证 数据传输对象", description = "一般凭证 数据传输对象") +public class RskPaymentVoucher { + @ApiModelProperty("分公司编码") + public String useOrgCode; + @ApiModelProperty("收款方式编码") + public String payTypeCode; + @ApiModelProperty("银行账号") + public String bankAccount; + @ApiModelProperty("凭证明细") + public List voucherDetails; + + @Data + public static class PaymentVoucherDetail { + + @ApiModelProperty("场景编码") + public String sceneCode; + @ApiModelProperty("资方简称") + public String bankName; + @ApiModelProperty("数据日期") + public Date dataTime; + @ApiModelProperty("部门编码") + public String deptCode; + @ApiModelProperty("部门名称") + public String deptName; + @ApiModelProperty("客户编码") + public String customerCode; + @ApiModelProperty("客户名称") + public String customerName; + @ApiModelProperty("金额") + public BigDecimal amount; + @ApiModelProperty("差额适用于结清时计算差额") + public BigDecimal balance; + @ApiModelProperty("减数适用于结清时计算差额") + public BigDecimal subtrahend; + @ApiModelProperty("结清时未到期利息减免") + public BigDecimal relief; + @ApiModelProperty("结清时未到期利息不减免") + public BigDecimal noRelief; + @ApiModelProperty("付款时手续费") + public BigDecimal paymentCharges; + @ApiModelProperty("备注") + public String remarks; + @ApiModelProperty("借贷方类型") + public String type; + @ApiModelProperty("核算维度银行") + public String bank; + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvoucher/RskVoucher.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvoucher/RskVoucher.java new file mode 100644 index 0000000000..73ba89a39a --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanvoucher/RskVoucher.java @@ -0,0 +1,52 @@ +package com.yxt.anrui.riskcenter.api.loanvoucher; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/9/12 18:13 + */ +@Data +public class RskVoucher { + @ApiModelProperty("账簿") + public String accountBook; + @ApiModelProperty("业务日期") + public String bussDate; + @ApiModelProperty("凭证字") + public String voucherWord; + @ApiModelProperty("凭证号") + public String voucherNo; + @ApiModelProperty("收款明细") + public List resultDetails; + + @Data + public static class VoucherResultDetailDto implements Dto { + + + @ApiModelProperty("摘要") + public String summary; + @ApiModelProperty("科目编码") + public String subjectNo; + @ApiModelProperty("核算维度部门") + public String dimensionDept; + @ApiModelProperty("核算维度客户") + public String dimensionCustom; + @ApiModelProperty("核算维度银行账号") + public String bankAccount; + @ApiModelProperty("核算维度厂商(供应商)") + public String manufacturer; + @ApiModelProperty("核算维度物料") + public String material; + @ApiModelProperty("核算维度银行") + public String bank; + @ApiModelProperty("借方金额") + public String debit; + @ApiModelProperty("贷方金额") + public String credit; + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java index e5806c84a9..e2e3b502b2 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyRest.java @@ -26,48 +26,31 @@ package com.yxt.anrui.riskcenter.biz.loanbepadsincereapply; import cn.hutool.core.bean.BeanUtil; -import com.yxt.anrui.base.api.basemodelmodprice.BaseModelModpriceExportVo; -import com.yxt.anrui.base.api.basevehicle.BaseVehicle; -import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificate; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.*; import com.yxt.anrui.riskcenter.api.loanbepadsincereapply.flowable.*; -import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVeh; import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDetailsVo; -import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentExcelInfo; -import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.export.TransferedPaymentExportVo; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.apache.poi.ss.usermodel.Cell; -import org.apache.poi.ss.usermodel.Row; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.ss.usermodel.Workbook; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; import java.util.List; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - /** * Project: anrui-riskcenter(垫款申请)
* File: LoanBePadsincereApplyFeignFallback.java
@@ -223,6 +206,11 @@ public class LoanBePadsincereApplyRest implements LoanBePadsincereApplyFeign { return loanBePadsincereApplyService.pushAdvancesVoucher(sid,paySid); } + @Override + public ResultBean pushAdvancesReturnVoucher(String sid, String paySid) { + return loanBePadsincereApplyService.pushAdvancesReturnVoucher(sid,paySid); + } + @Override public void dkListPageExport(DkRecordQuery query) { //得到所有要导出的数据 diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java index d06d84f4cc..7137fe0793 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereapply/LoanBePadsincereApplyService.java @@ -29,6 +29,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; @@ -42,9 +43,6 @@ 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.finmanufacturerbank.FinManufacturerBankFeign; -import com.yxt.anrui.fin.api.finpaymentapply.FinPaymentapply; -import com.yxt.anrui.fin.api.finpaymentapply.FinPaymentapplyDto; -import com.yxt.anrui.fin.api.finpaymentapply.FinPaymentapplyFeign; import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecord; import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto; import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign; @@ -52,6 +50,7 @@ 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.PaymentVoucher; import com.yxt.anrui.fin.api.kingdee.voucher.SceneCodeEnum; +import com.yxt.anrui.fin.api.kingdee.voucher.Voucher; import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; @@ -62,6 +61,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; @@ -77,24 +78,24 @@ import com.yxt.anrui.riskcenter.api.loanbepadsincereveh.LoanBePadsincereVehDto; import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualapply.MonthlyAccrualSourceLCVo; -import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; -import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; -import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanMoneyVo; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleDetailsVo; -import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentApply; -import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.LoanTransferPaymentRecordVo; -import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskPaymentVoucher; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.anrui.riskcenter.biz.loanbepadsincereveh.LoanBePadsincereVehService; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; import com.yxt.anrui.riskcenter.biz.loanrepaymentschedule.LoanRepaymentScheduleService; import com.yxt.common.base.config.component.DocPdfComponent; import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.ConstantUtils; -import com.yxt.common.base.utils.DateUtils; +import com.yxt.common.base.utils.PagerUtil; 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.Message; import com.yxt.messagecenter.api.message.MessageFeign; import com.yxt.messagecenter.api.message.MessageFlowVo; @@ -102,12 +103,6 @@ import com.yxt.messagecenter.api.message.MessageFlowableQuery; import com.yxt.messagecenter.api.messagelist.MessageList; import com.yxt.messagecenter.api.messagelist.MessageListFeign; import org.apache.commons.lang3.StringUtils; -import com.yxt.common.base.service.MybatisBaseService; -import com.yxt.common.base.utils.PagerUtil; -import com.yxt.common.core.query.PagerQuery; -import com.yxt.common.core.result.ResultBean; -import com.yxt.common.core.vo.PagerVo; - import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; @@ -123,7 +118,6 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; -import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; import java.util.regex.Matcher; @@ -191,7 +185,8 @@ public class LoanBePadsincereApplyService extends MybatisBaseService listPageVo(PagerQuery pq) { LoanBePadsincereApplyQuery query = pq.getParams(); @@ -1508,4 +1503,184 @@ public class LoanBePadsincereApplyService extends MybatisBaseService recordVos = baseMapper.dkListPageExport(qw); return recordVos; } + + public ResultBean pushAdvancesReturnVoucher(String sid, String paySid) { + ResultBean rb = ResultBean.fireFail(); + List records = loanBePadsincereVehService.selByMainSidAndPaySid(sid, paySid); + FinPaymentrecord paymentrecord = finPaymentrecordFeign.fetchBySid(paySid).getData(); + if (!records.isEmpty()) { + RskPaymentVoucher paymentVoucher = new RskPaymentVoucher(); + List voucherDetails = new ArrayList<>(); + LoanBePadsincereVeh l = records.get(0); + if (null != l) { + String accountNumber = paymentrecord.getPayBankAccount(); + paymentVoucher.setBankAccount(paymentrecord.getPayBankAccount()); + String mainSid = l.getMainSid(); + LoanBePadsincereApply loanBePadsincereApply = fetchBySid(mainSid); + FinManufacturerBank manufacturerBank = finManufacturerBankFeign.selOneByBankNo(accountNumber, loanBePadsincereApply.getUseOrgSid()).getData(); + if (null != manufacturerBank) { + paymentVoucher.setPayTypeCode(manufacturerBank.getDueBankKey()); + } + String useOrgSid = loanBePadsincereApply.getUseOrgSid(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + if (null != organizationVo) { + paymentVoucher.setUseOrgCode(organizationVo.getOrgCode()); + } + } + RskPaymentVoucher.PaymentVoucherDetail voucherDetail1 = new RskPaymentVoucher.PaymentVoucherDetail(); + voucherDetail1.setType("贷方"); + List result = new ArrayList<>(); + records.stream().forEach(r -> { + result.add(new BigDecimal(r.getPadMoney())); + }); + BigDecimal b = result.stream() + // 使用reduce()聚合函数,实现累加器 + .reduce(BigDecimal.ZERO, BigDecimal::add); + voucherDetail1.setAmount(b); + voucherDetail1.setDataTime(new DateTime()); + voucherDetails.add(voucherDetail1); + for (LoanBePadsincereVeh v : records) { + LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.selOneByBankNoAndBusVinSid(v.getBankContractNo(), v.getSaleVehSid()); + if (null != planDetails) { + String bankName = planDetails.getBankName(); + String orgCode = ""; + LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(planDetails.getScheduleSid()); + if (null != schedule) { + if (StringUtils.isNotBlank(schedule.getCwDeptNo())) { + orgCode = schedule.getCwDeptNo(); + } + } + BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(planDetails.getBusVinSid()).getData(); + BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(planDetails.getSalesOrderSid()).getData(); + String customerNumber = ""; + 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 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 resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + } + } + if (StringUtils.isNotBlank(v.getBankBeMoney())) { + BigDecimal beMoney = new BigDecimal(v.getBankBeMoney()); + if (beMoney.compareTo(BigDecimal.ZERO) > 0) { + RskPaymentVoucher.PaymentVoucherDetail voucherDetail = new RskPaymentVoucher.PaymentVoucherDetail(); + voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER1.getCode()); + voucherDetail.setType("借方"); + if (StringUtils.isNotBlank(bankName)) { + voucherDetail.setBankName(bankName); + } + voucherDetail.setDeptCode(orgCode); + if (StringUtils.isNotBlank(customerNumber)) { + voucherDetail.setCustomerCode(customerNumber); + } + voucherDetail.setAmount(beMoney); + voucherDetails.add(voucherDetail); + } + } + if (StringUtils.isNotBlank(v.getBankBeInter())) { + BigDecimal beInter = new BigDecimal(v.getBankBeInter()); + if (beInter.compareTo(BigDecimal.ZERO) > 0) { + RskPaymentVoucher.PaymentVoucherDetail voucherDetail = new RskPaymentVoucher.PaymentVoucherDetail(); + voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode()); + voucherDetail.setType("借方"); + if (StringUtils.isNotBlank(bankName)) { + voucherDetail.setBankName(bankName); + } + voucherDetail.setDeptCode(orgCode); + if (StringUtils.isNotBlank(customerNumber)) { + voucherDetail.setCustomerCode(customerNumber); + } + voucherDetail.setAmount(beInter); + voucherDetails.add(voucherDetail); + } + } + } + } + paymentVoucher.setVoucherDetails(voucherDetails); + RskVoucher rskVoucher = returnAdvancesVoucher(paymentVoucher); + return rb.success().setData(rskVoucher); + } + return rb.success(); + } + + public RskVoucher returnAdvancesVoucher(RskPaymentVoucher voucher) { + ResultBean rb = ResultBean.fireFail(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + RskVoucher newVoucher = new RskVoucher(); + List resultDetails = new ArrayList<>(); + if (com.yxt.common.base.utils.StringUtils.isNotBlank(voucher.getUseOrgCode())) { + newVoucher.setAccountBook(voucher.getUseOrgCode()); + newVoucher.setVoucherNo(voucher.getUseOrgCode()); + } + List voucherDetails = voucher.getVoucherDetails(); + if (!voucherDetails.isEmpty()) { + for (RskPaymentVoucher.PaymentVoucherDetail voucherDetail : voucherDetails) { + if (voucherDetail.getType().equals("借方")) { + RskVoucher.VoucherResultDetailDto dto1 = new RskVoucher.VoucherResultDetailDto(); //借方 + if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER1.getCode())) { + dto1.setSummary(voucherDetail.getBankName() + "垫付" + voucherDetail.getCustomerName() + "月还款"); + DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData(); + if (null != dictCommonVo) { + dto1.setSubjectNo(dictCommonVo.getDictValue()); + } + } else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode())) { + dto1.setSummary(voucherDetail.getBankName() + "垫款资方违约金"); + dto1.setSubjectNo("1201.02.03"); + } + dto1.setDimensionDept(voucherDetail.getDeptCode()); + dto1.setDimensionCustom(voucherDetail.getCustomerCode()); + dto1.setDebit(String.valueOf(voucherDetail.getAmount())); + resultDetails.add(dto1); + } else if (voucherDetail.getType().equals("贷方")) { + RskVoucher.VoucherResultDetailDto dto2 = new RskVoucher.VoucherResultDetailDto(); //贷方 + if (voucher.getPayTypeCode().equals("02")) { + dto2.setSubjectNo("1002.01.00"); + } else if (voucher.getPayTypeCode().equals("01")) { + dto2.setSubjectNo("1002.02.01"); + } + String date = sdf.format(voucherDetail.getDataTime()); + String[] split = date.split("-"); + dto2.setSummary(split[1] + "月垫付月还款"); + dto2.setBankAccount(voucher.getBankAccount()); + dto2.setCredit(String.valueOf(voucherDetail.getAmount())); + resultDetails.add(dto2); + } + } + newVoucher.setResultDetails(resultDetails); + } + return newVoucher; + } + + } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyRest.java index 3fec280ca7..f8a2caf3b1 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyRest.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.riskcenter.api.loansettleapply.*; import com.yxt.anrui.riskcenter.api.loansettleapply.flowable.*; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -128,4 +129,9 @@ public class LoanSettleApplyRest implements LoanSettleApplyFeign { public ResultBean pushBankVoucher(String sid, String accountNumber, String payTypeCode, String shouxufei) { return loanSettleApplyService.pushBankVoucher(sid, accountNumber, payTypeCode,shouxufei); } + + @Override + public ResultBean pushBankReturnVoucher(String sid, String accountNumber, String payTypeCode, String shouxufei) { + return loanSettleApplyService.pushBankReturnVoucher(sid, accountNumber, payTypeCode,shouxufei); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java index 44f7889978..5507d7da5c 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java @@ -3,6 +3,7 @@ package com.yxt.anrui.riskcenter.biz.loansettleapply; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.util.concurrent.ThreadFactoryBuilder; @@ -65,6 +66,8 @@ import com.yxt.anrui.riskcenter.api.loansettlecompanyreduction.LoanSettleCompany import com.yxt.anrui.riskcenter.api.loansettlecompanyreduction.LoanSettleCompanyReductionVo; import com.yxt.anrui.riskcenter.api.loansettlevehicle.LoanSettleVehicleDto; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskPaymentVoucher; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.anrui.riskcenter.biz.loanpushfundhistory.LoanPushFundHistoryService; import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; @@ -4236,4 +4239,214 @@ public class LoanSettleApplyService extends MybatisBaseService pushBankReturnVoucher(String sid, String accountNumber, String payTypeCode, String shouxufei) { + ResultBean rb = ResultBean.fireFail(); + LoanSettleApply apply = fetchBySid(sid); + LoanSettleBankCost bankCost = loanSettleBankCostService.selectByMainSid(sid); + LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(sid); + if (null != apply) { + BigDecimal amountAll = BigDecimal.ZERO;//推送资方结清款总数 + BigDecimal zfJQK = BigDecimal.ZERO;//资方结清款 + int topping = 0; + BigDecimal bbjDDMoney = BigDecimal.ZERO; //资方保证金抵顶 + BigDecimal sub = BigDecimal.ZERO; //资方保证金差额 + BigDecimal shouxufeiCW = new BigDecimal(shouxufei); + if (null != bankCost) { + if (null != bankCost.getBankSettlePrice()) { + zfJQK = bankCost.getBankSettlePrice(); + } + topping = bankCost.getTopping(); + if (null != bankCost.getLoanDeposit()) { + bbjDDMoney = bankCost.getLoanDeposit(); + } + } + sub = zfJQK.subtract(bbjDDMoney); + amountAll = bbjDDMoney.add(sub); + if (zfJQK.compareTo(BigDecimal.ZERO) > 0) { + RskPaymentVoucher paymentVoucher = new RskPaymentVoucher(); + paymentVoucher.setBankAccount(accountNumber); + paymentVoucher.setPayTypeCode(payTypeCode); + List voucherDetails = new ArrayList<>(); + LoanRepaymentPlanDetails planDetails = baseMapper.selectByBusVinSidAndDesc(apply.getBusVinSid()); + String scheduleSid = planDetails.getScheduleSid(); + LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(scheduleSid); + if (schedule.getIsOtherPolicy().equals("1") && schedule.getSameBank().equals("0")) { + planDetails = baseMapper.selectMainPeriodByBusVinSid(apply.getBusVinSid()); + } + if (null != planDetails) { + RskPaymentVoucher.PaymentVoucherDetail voucherDetail = new RskPaymentVoucher.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()); + } + 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 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 resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + voucherDetail.setCustomerCode(customerNumber); + } + } + voucherDetail.setAmount(amountAll); + voucherDetail.setSubtrahend(bbjDDMoney); + voucherDetail.setBalance(sub.add(shouxufeiCW)); + voucherDetail.setPaymentCharges(shouxufeiCW); + voucherDetails.add(voucherDetail); + } + paymentVoucher.setVoucherDetails(voucherDetails); + RskVoucher rskVoucher = returnSettleBankVoucher(paymentVoucher); + return rb.success().setData(rskVoucher); + } + } + return rb.success(); + } + + public RskVoucher returnSettleBankVoucher(RskPaymentVoucher voucher) { + RskVoucher newVoucher = new RskVoucher(); + List resultDetails = new ArrayList<>(); + if (com.yxt.common.base.utils.StringUtils.isNotBlank(voucher.getUseOrgCode())) { + newVoucher.setAccountBook(voucher.getUseOrgCode()); + newVoucher.setVoucherNo(voucher.getUseOrgCode()); + } + List voucherDetails = voucher.getVoucherDetails(); + if (!voucherDetails.isEmpty()) { + for (RskPaymentVoucher.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())) { + if (voucherDetail.getAmount().compareTo(BigDecimal.ZERO) != 0) { + RskVoucher.VoucherResultDetailDto dto1 = new RskVoucher.VoucherResultDetailDto(); //借方 + dto1.setSummary(voucherDetail.getBankName() + "结清"); + dto1.setSubjectNo(bankCode); + dto1.setDimensionDept(voucherDetail.getDeptCode()); + dto1.setDimensionCustom(voucherDetail.getCustomerCode()); + dto1.setDebit(String.valueOf(voucherDetail.getAmount())); + resultDetails.add(dto1); + } + if (voucherDetail.getPaymentCharges().compareTo(BigDecimal.ZERO) != 0) { + RskVoucher.VoucherResultDetailDto dto0 = new RskVoucher.VoucherResultDetailDto(); //借方 + dto0.setSummary("付款手续费"); + dto0.setSubjectNo("6603.03.00"); + dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges())); + resultDetails.add(dto0); + } + + if (voucherDetail.getSubtrahend().compareTo(BigDecimal.ZERO) != 0) { + RskVoucher.VoucherResultDetailDto dto4 = new RskVoucher.VoucherResultDetailDto(); //贷方 + dto4.setSummary(voucherDetail.getBankName() + "个贷保证金抵结清款"); + dto4.setSubjectNo("1009.01.00"); + dto4.setDimensionDept(voucherDetail.getDeptCode()); + dto4.setDimensionCustom(voucherDetail.getCustomerCode()); + dto4.setBank("342"); + dto4.setCredit(String.valueOf(voucherDetail.getSubtrahend())); + resultDetails.add(dto4); + } + + if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) { + RskVoucher.VoucherResultDetailDto dto5 = new RskVoucher.VoucherResultDetailDto(); //贷方 + dto5.setSummary(voucherDetail.getBankName() + "结清"); + if (voucher.getPayTypeCode().equals("02")) { + dto5.setSubjectNo("1002.01.00"); + } else if (voucher.getPayTypeCode().equals("01")) { + dto5.setSubjectNo("1002.02.01"); + } + dto5.setBankAccount(voucher.getBankAccount()); + dto5.setCredit(String.valueOf(voucherDetail.getBalance())); + resultDetails.add(dto5); + } + + } else { + if (voucherDetail.getAmount().compareTo(BigDecimal.ZERO) != 0) { + RskVoucher.VoucherResultDetailDto dto1 = new RskVoucher.VoucherResultDetailDto(); //借方 + dto1.setSummary(voucherDetail.getBankName() + "结清"); + dto1.setSubjectNo(bankCode); + dto1.setDimensionDept(voucherDetail.getDeptCode()); + dto1.setDimensionCustom(voucherDetail.getCustomerCode()); + dto1.setDebit(String.valueOf(voucherDetail.getAmount())); + resultDetails.add(dto1); + } + + if (voucherDetail.getPaymentCharges().compareTo(BigDecimal.ZERO) != 0) { + RskVoucher.VoucherResultDetailDto dto0 = new RskVoucher.VoucherResultDetailDto(); //借方 + dto0.setSummary("付款手续费"); + dto0.setSubjectNo("6603.03.00"); + dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges())); + resultDetails.add(dto0); + } + + if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) { + RskVoucher.VoucherResultDetailDto dto4 = new RskVoucher.VoucherResultDetailDto(); //贷方 + dto4.setSummary(voucherDetail.getBankName() + "结清"); + if (voucher.getPayTypeCode().equals("02")) { + dto4.setSubjectNo("1002.01.00"); + } else if (voucher.getPayTypeCode().equals("01")) { + dto4.setSubjectNo("1002.02.01"); + } + dto4.setBankAccount(voucher.getBankAccount()); + dto4.setCredit(String.valueOf(voucherDetail.getBalance())); + resultDetails.add(dto4); + } + } + } + newVoucher.setResultDetails(resultDetails); + } + + return newVoucher; + } + } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java index 94a9aa7f0c..cf5a4a35dc 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java @@ -3,11 +3,9 @@ package com.yxt.anrui.riskcenter.biz.loantransferpaymentapply; import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; -import com.yxt.anrui.riskcenter.api.loanbuckleapply.*; -import com.yxt.anrui.riskcenter.api.loanbuckleapply.app.AppBuckleDetailsVo; -import com.yxt.anrui.riskcenter.api.loanbuckleapply.flow.*; import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.*; import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.flow.*; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -69,6 +67,11 @@ public class LoanTransferPaymentApplyRest implements LoanTransferPaymentApplyFei return loanTransferPaymentApplyService.pushPaymentVoucher(sid,paySid); } + @Override + public ResultBean pushPaymentVoucherReturnVoucher(String sid, String paySid) { + return loanTransferPaymentApplyService.pushPaymentVoucherReturnVoucher(sid,paySid); + } + @Override public ResultBean submitRecordApplication(SubmitTransferDto dto) { return loanTransferPaymentApplyService.submitRecordApplication(dto); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java index 716ceae818..b07dc66616 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java @@ -37,6 +37,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; @@ -54,6 +56,8 @@ import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule; import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.*; import com.yxt.anrui.riskcenter.api.loantransferpaymentapply.flow.*; import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskPaymentVoucher; +import com.yxt.anrui.riskcenter.api.loanvoucher.RskVoucher; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; @@ -98,6 +102,8 @@ import static java.util.Comparator.comparing; @Service public class LoanTransferPaymentApplyService extends MybatisBaseService { + @Autowired + private DictCommonFeign dictCommonFeign; @Autowired private MessageListFeign messageListFeign; @Autowired @@ -831,7 +837,6 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService pushPaymentVoucherReturnVoucher(String sid, String paySid) { + ResultBean rb = ResultBean.fireFail(); + List records = loanTransferPaymentRecordService.selByMainSidAndPaySid(sid, paySid); + FinPaymentrecord paymentrecord = finPaymentrecordFeign.fetchBySid(paySid).getData(); + if (!records.isEmpty()) { + RskPaymentVoucher paymentVoucher = new RskPaymentVoucher(); + List voucherDetails = new ArrayList<>(); + for (LoanTransferPaymentRecord v : records) { + LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(v.getRepaymentHistorySid()); + if (null != repaymentHistory) { + String planDetailSid = repaymentHistory.getPlanDetailSid(); + LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsService.fetchBySid(planDetailSid); + if (null != planDetails) { + RskPaymentVoucher.PaymentVoucherDetail voucherDetail = new RskPaymentVoucher.PaymentVoucherDetail(); + List jrList = baseMapper.selFinJrList(planDetails.getSid()); + if (null != jrList) { + if (jrList.size() > 0) { + voucherDetail.setSceneCode(SceneCodeEnum.TRANSFER_VOUCHER2.getCode()); + } else { + voucherDetail.setSceneCode(SceneCodeEnum.TRANSFER_VOUCHER1.getCode()); + } + } else { + voucherDetail.setSceneCode(SceneCodeEnum.TRANSFER_VOUCHER1.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()); + } + if (StringUtils.isNotBlank(paymentrecord.getPayBankAccount())) { + String accountNumber = paymentrecord.getPayBankAccount(); + paymentVoucher.setBankAccount(paymentrecord.getPayBankAccount()); + FinManufacturerBank manufacturerBank = finManufacturerBankFeign.selOneByBankNo(accountNumber, useOrgSid).getData(); + if (null != manufacturerBank) { + paymentVoucher.setPayTypeCode(manufacturerBank.getDueBankKey()); + } + } + 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 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 resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + voucherDetail.setCustomerCode(customerNumber); + } + } + BigDecimal money = new BigDecimal(0); + if (null != v.getTransferPrincipal()) { + money = v.getTransferPrincipal(); + } + if (null != v.getDefaultInterest()) { + money = v.getDefaultInterest().add(money); + } + voucherDetail.setAmount(money); + voucherDetails.add(voucherDetail); + } + } + } + paymentVoucher.setVoucherDetails(voucherDetails); + RskVoucher rskVoucher = returnPaymentVoucher(paymentVoucher); + return rb.success().setData(rskVoucher); + } + return rb.success(); + } + + public RskVoucher returnPaymentVoucher(RskPaymentVoucher voucher) { + RskVoucher newVoucher = new RskVoucher(); + List resultDetails = new ArrayList<>(); + if (com.yxt.common.base.utils.StringUtils.isNotBlank(voucher.getUseOrgCode())) { + newVoucher.setAccountBook(voucher.getUseOrgCode()); + newVoucher.setVoucherNo(voucher.getUseOrgCode()); + } + List voucherDetails = voucher.getVoucherDetails(); + if (!voucherDetails.isEmpty()) { + for (RskPaymentVoucher.PaymentVoucherDetail voucherDetail : voucherDetails) { + RskVoucher.VoucherResultDetailDto dto1 = new RskVoucher.VoucherResultDetailDto(); //借方 + RskVoucher.VoucherResultDetailDto dto2 = new RskVoucher.VoucherResultDetailDto(); //贷方 + dto1.setSummary("代付客户" + voucherDetail.getBankName() + "月还款"); + dto2.setSummary("代付客户" + voucherDetail.getBankName() + "月还款"); + if (voucherDetail.getSceneCode().equals(SceneCodeEnum.TRANSFER_VOUCHER1.getCode())) { + //正常 + DictCommonVo dictCommonVo = dictCommonFeign.selectBykey(voucherDetail.getBankName(), "investorsCode").getData(); + if (null != dictCommonVo) { + dto1.setSubjectNo(dictCommonVo.getDictValue()); + } + } else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.TRANSFER_VOUCHER2.getCode())) { + //已垫款 + dto1.setSubjectNo("1133.10.20"); + } + 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); + } + return newVoucher; + } }