From 593d15f4122b8e6ba5fd0df5bba948209df52ad7 Mon Sep 17 00:00:00 2001 From: fanzongzhe <285169773@qq.com> Date: Tue, 30 Jan 2024 17:49:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=AD=E8=AF=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/kingdee/voucher/PaymentVoucher.java | 2 + .../FinPaymentrecordService.java | 4 + .../fin/biz/kingdee/FinKingDeeFeignRest.java | 85 +++--- .../LoanBePadsincereApplyFeign.java | 6 + .../LoanBePadsincereApplyFeignFallback.java | 5 + .../LoanPushFundHistory.java | 29 ++ .../LoanPushFundHistoryFeign.java | 22 ++ .../LoanPushFundHistoryFeignFallback.java | 11 + .../LoanPlanDetailsVoForFundVoucher.java | 20 ++ .../LoanBePadsincereApplyRest.java | 5 + .../LoanBePadsincereApplyService.java | 166 ++++++++++- .../LoanBePadsincereVehMapper.java | 2 + .../LoanBePadsincereVehMapper.xml | 27 +- .../LoanBePadsincereVehService.java | 4 + .../LoanPushFundHistoryMapper.java | 18 ++ .../LoanPushFundHistoryMapper.xml | 13 + .../LoanPushFundHistoryRest.java | 16 ++ .../LoanPushFundHistoryService.java | 24 ++ .../LoanRepaymentHistoryService.java | 30 +- .../LoanRepaymentPlanDetailsMapper.java | 15 +- .../LoanRepaymentPlanDetailsMapper.xml | 54 ++++ .../LoanRepaymentPlanDetailsService.java | 16 ++ .../ScheduledRepaymentPlanDetailsService.java | 270 ++++++++++++++++++ 23 files changed, 769 insertions(+), 75 deletions(-) create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistory.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeign.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeignFallback.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanPlanDetailsVoForFundVoucher.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.xml create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryRest.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java index 4cbeb63cf4..aaf94ed4d6 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/voucher/PaymentVoucher.java @@ -46,5 +46,7 @@ public class PaymentVoucher { public BigDecimal amount; @ApiModelProperty("备注") public String remarks; + @ApiModelProperty("借贷方类型") + public String type; } } 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 95bdf31e54..72da53c3d1 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 @@ -526,6 +526,10 @@ public class FinPaymentrecordService extends MybatisBaseService { loanTransferPaymentApplyFeign.pushPaymentVoucher(finPaymentrecord.getBusSid(), finPaymentrecord.getSid()); }); + } else if ("007".equals(costTypeKey)) { + Future future1 = pool.submit(() -> { + loanBePadsincereApplyFeign.pushAdvancesVoucher(finPaymentrecord.getBusSid(), finPaymentrecord.getSid()); + }); } } catch (Exception e) { e.printStackTrace(); 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 f8d1b025f3..cc2e9bc1fc 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 @@ -550,33 +550,36 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { List voucherDetails = voucher.getVoucherDetails(); if (!voucherDetails.isEmpty()) { for (PaymentVoucher.PaymentVoucherDetail voucherDetail : voucherDetails) { - Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方 - Voucher.VoucherResultDetailDto dto2 = new Voucher.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()); + if (voucherDetail.getType().equals("借方")) { + Voucher.VoucherResultDetailDto dto1 = new Voucher.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"); } - } else if (voucherDetail.getSceneCode().equals(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode())) { - dto1.setSummary(voucherDetail.getBankName() + "垫款资方违约金"); - dto1.setSubjectNo("1201.02.03"); - } - 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()); + dto1.setDebit(String.valueOf(voucherDetail.getAmount())); + resultDetails.add(dto1); + } else if (voucherDetail.getType().equals("贷方")) { + Voucher.VoucherResultDetailDto dto2 = new Voucher.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); } - String date = sdf.format(voucherDetail.getDataTime()); - String[] split = date.split("-"); - dto2.setSummary(split[1] + "月垫付月还款"); - 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); } @@ -643,8 +646,6 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { List voucherDetails = voucher.getVoucherDetails(); if (!voucherDetails.isEmpty()) { for (GeneralVoucher.GeneralVoucherDetail voucherDetail : voucherDetails) { - Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方 - Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方 String format = sdf.format(voucherDetail.getDataTime()); String[] split = format.split("-"); String month = split[1]; @@ -654,18 +655,24 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { } else { m = String.valueOf(Integer.parseInt(month) - 1); } - dto1.setSummary("计提" + m + "逾期利息"); - dto2.setSummary("计提" + m + "逾期利息"); - dto1.setSubjectNo("1201.02.02"); - dto2.setSubjectNo("2191.05.00"); - dto1.setDimensionDept(voucherDetail.getDeptCode()); - dto1.setDimensionCustom(voucherDetail.getCustomerCode()); - dto2.setDimensionDept(voucherDetail.getDeptCode()); - // dto2.setDimensionCustom(voucherDetail.getCustomerCode()); - dto1.setDebit(String.valueOf(voucherDetail.getAmount())); - dto2.setCredit(String.valueOf(voucherDetail.getAmount())); - resultDetails.add(dto1); - resultDetails.add(dto2); + if (voucherDetail.getSceneCode().equals("借方")) { + Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方 + dto1.setSummary("计提" + m + "逾期利息"); + dto1.setSubjectNo("1201.02.02"); + dto1.setDimensionDept(voucherDetail.getDeptCode()); + dto1.setDimensionCustom(voucherDetail.getCustomerCode()); + dto1.setDebit(String.valueOf(voucherDetail.getAmount())); + resultDetails.add(dto1); + } + if (voucherDetail.getSceneCode().equals("贷方")) { + Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //贷方 + dto2.setSummary("计提" + m + "逾期利息"); + dto2.setSubjectNo("2191.05.00"); + dto2.setDimensionDept(voucherDetail.getDeptCode()); + // dto2.setDimensionCustom(voucherDetail.getCustomerCode()); + dto2.setCredit(String.valueOf(voucherDetail.getAmount())); + resultDetails.add(dto2); + } } newVoucher.setResultDetails(resultDetails); } 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 c0ade89f7c..1f4b41caa5 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 @@ -138,4 +138,10 @@ public interface LoanBePadsincereApplyFeign { @ApiOperation(value = "加签") @PostMapping(value = "/delegate") public ResultBean delegate(@RequestBody LoanBePadsincereDelegateQuery loanBePadsincereDelegateQuery); + + @ApiOperation("推送财务垫款付款凭证") + @PostMapping("/pushAdvancesVoucher") + @ResponseBody + public ResultBean pushAdvancesVoucher(@RequestParam("sid") String sid, @RequestParam("paySid") String paySid); + } \ No newline at end of file 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 9274380890..00c67078f1 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 @@ -136,4 +136,9 @@ public class LoanBePadsincereApplyFeignFallback implements LoanBePadsincereApply return null; } + @Override + public ResultBean pushAdvancesVoucher(String sid, String paySid) { + return null; + } + } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistory.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistory.java new file mode 100644 index 0000000000..bd9acab7ce --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistory.java @@ -0,0 +1,29 @@ +package com.yxt.anrui.riskcenter.api.loanpushfundhistory; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "推送资金占用费记录表", description = "推送资金占用费记录表") +@TableName("loan_push_fund_history") +@Data +public class LoanPushFundHistory extends BaseEntity { + private static final long serialVersionUID = 1L; + @ApiModelProperty("资金占用费") + private BigDecimal fund; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + @ApiModelProperty("使用组织名称") + private String useOrgName; + @ApiModelProperty("销售订单车辆sid") + private String busVinSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeign.java new file mode 100644 index 0000000000..f29e33f6bc --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeign.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.riskcenter.api.loanpushfundhistory; + +import io.swagger.annotations.Api; +import org.springframework.cloud.openfeign.FeignClient; + + +/** + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "推送资金占用费记录表") +@FeignClient( + contextId = "anrui-riskcenter-LoanPushFundHistory", + name = "anrui-riskcenter", + path = "v1/loanpushfundhistory", + fallback = LoanPushFundHistoryFeignFallback.class) +public interface LoanPushFundHistoryFeign { + + + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeignFallback.java new file mode 100644 index 0000000000..f9a54fd94d --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanpushfundhistory/LoanPushFundHistoryFeignFallback.java @@ -0,0 +1,11 @@ +package com.yxt.anrui.riskcenter.api.loanpushfundhistory; + + +import org.springframework.stereotype.Component; + + +@Component +public class LoanPushFundHistoryFeignFallback implements LoanPushFundHistoryFeign { + + +} \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanPlanDetailsVoForFundVoucher.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanPlanDetailsVoForFundVoucher.java new file mode 100644 index 0000000000..c86af3b3f6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanPlanDetailsVoForFundVoucher.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymentplandetails; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author Fan + * @description + * @date 2024/1/5 15:59 + */ +@Data +public class LoanPlanDetailsVoForFundVoucher { + private String busVinSid; + private String useOrgName; + private BigDecimal duePushMoney; + private String useOrgSid; + private BigDecimal fund; + private BigDecimal reveivableMoney; +} 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 e5158e3e12..3689c022f4 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 @@ -211,4 +211,9 @@ public class LoanBePadsincereApplyRest implements LoanBePadsincereApplyFeign { public ResultBean delegate(LoanBePadsincereDelegateQuery loanBePadsincereDelegateQuery) { return loanBePadsincereApplyService.delegate(loanBePadsincereDelegateQuery); } + + @Override + public ResultBean pushAdvancesVoucher(String sid, String paySid) { + return loanBePadsincereApplyService.pushAdvancesVoucher(sid,paySid); + } } 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 2446f8d58e..5bbaab7960 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 @@ -31,14 +31,26 @@ import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; import com.yxt.anrui.base.common.utils.Rule; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; +import com.yxt.anrui.buscenter.api.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.FinPaymentrecordDto; import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign; +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.flowable.api.flow.FlowProcessMapQuery; import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; @@ -57,12 +69,17 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; 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.loanbepadsincereveh.LoanBePadsincereVehDto; import com.yxt.anrui.riskcenter.api.loanfile.LoanFile; import com.yxt.anrui.riskcenter.api.loanfile.LoanFileEnum; +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.LoanRepaymentScheduleDetailsVo; +import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; import com.yxt.anrui.riskcenter.biz.loanbepadsincereveh.LoanBePadsincereVehService; import com.yxt.anrui.riskcenter.biz.loanfile.LoanFileService; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; @@ -144,6 +161,17 @@ public class LoanBePadsincereApplyService extends MybatisBaseService listPageVo(PagerQuery pq) { LoanBePadsincereApplyQuery query = pq.getParams(); @@ -936,7 +964,7 @@ public class LoanBePadsincereApplyService extends MybatisBaseService mergeListByBankCon(List loanBePadsincereVehDetailsVoList){ + private static List mergeListByBankCon(List loanBePadsincereVehDetailsVoList) { Map voHashMap = new HashMap<>(); for (LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo : loanBePadsincereVehDetailsVoList) { String bankCon = loanBePadsincereVehDetailsVo.getBankContractNo(); - if (voHashMap.containsKey(bankCon)){ + if (voHashMap.containsKey(bankCon)) { LoanBePadsincereVehDetailsVo loanBePadsincereVehDetailsVo1 = voHashMap.get(bankCon); loanBePadsincereVehDetailsVo1.setPadMoney(String.valueOf(Double.parseDouble(loanBePadsincereVehDetailsVo1.getPadMoney()) + Double.parseDouble(loanBePadsincereVehDetailsVo.getPadMoney()))); - }else { - voHashMap.put(bankCon,loanBePadsincereVehDetailsVo); + } else { + voHashMap.put(bankCon, loanBePadsincereVehDetailsVo); } } return new ArrayList<>(voHashMap.values()); @@ -1069,4 +1097,132 @@ public class LoanBePadsincereApplyService extends MybatisBaseService records = loanBePadsincereVehService.selByMainSidAndPaySid(sid, paySid); + if (!records.isEmpty()) { + PaymentVoucher paymentVoucher = new PaymentVoucher(); + List voucherDetails = new ArrayList<>(); + LoanBePadsincereVeh l = records.get(0); + if (null != l) { + String accountNumber = l.getBankCollectionNum(); + paymentVoucher.setBankAccount(l.getBankCollectionNum()); + 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()); + } + } + PaymentVoucher.PaymentVoucherDetail voucherDetail1 = new PaymentVoucher.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 = loanRepaymentPlanDetailsService.getBankNameByMainOrOtherPolicy(planDetails); + String deptSid = planDetails.getDeptSid(); + SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); + 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) { + PaymentVoucher.PaymentVoucherDetail voucherDetail = new PaymentVoucher.PaymentVoucherDetail(); + voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER1.getCode()); + voucherDetail.setType("借方"); + if (StringUtils.isNotBlank(bankName)) { + voucherDetail.setBankName(bankName); + } + if (null != organizationDeptVo) { + voucherDetail.setDeptCode(organizationDeptVo.getOrgCode()); + } + 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) { + PaymentVoucher.PaymentVoucherDetail voucherDetail = new PaymentVoucher.PaymentVoucherDetail(); + voucherDetail.setSceneCode(SceneCodeEnum.PADSINCERE_VOUCHER2.getCode()); + voucherDetail.setType("借方"); + if (StringUtils.isNotBlank(bankName)) { + voucherDetail.setBankName(bankName); + } + if (null != organizationDeptVo) { + voucherDetail.setDeptCode(organizationDeptVo.getOrgCode()); + } + if (StringUtils.isNotBlank(customerNumber)) { + voucherDetail.setCustomerCode(customerNumber); + } + voucherDetail.setAmount(beInter); + voucherDetails.add(voucherDetail); + } + } + } + } + paymentVoucher.setVoucherDetails(voucherDetails); + finKingDeeFeign.saveAdvancesVoucher(paymentVoucher); + } + return rb.success(); + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.java index df74d368e9..802caaa6be 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.java @@ -70,4 +70,6 @@ public interface LoanBePadsincereVehMapper extends BaseMapper selByMainSidAndPaySid(@Param("sid") String sid,@Param("paySid") String paySid); } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.xml index 36e584cc6d..9fb268dc67 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehMapper.xml @@ -1,13 +1,22 @@ - - - - - + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java index fc5691dc73..4f7f5cf41c 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbepadsincereveh/LoanBePadsincereVehService.java @@ -106,4 +106,8 @@ public class LoanBePadsincereVehService extends MybatisBaseService selByMainSidAndPaySid(String sid, String paySid) { + return baseMapper.selByMainSidAndPaySid(sid,paySid); + } } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.java new file mode 100644 index 0000000000..3d03a2f02b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.riskcenter.biz.loanpushfundhistory; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher; +import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +@Mapper +public interface LoanPushFundHistoryMapper extends BaseMapper { + + + int saveLists(@Param("list") List list); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.xml new file mode 100644 index 0000000000..fb5c3044bd --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryMapper.xml @@ -0,0 +1,13 @@ + + + + + + + insert into loan_push_fund_history(sid,busVinSid,useOrgSid,useOrgName,fund) + values + + (#{item.sid},#{item.busVinSid},#{item.useOrgSid},#{item.useOrgName},#{item.fund}) + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryRest.java new file mode 100644 index 0000000000..a6e266b18b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryRest.java @@ -0,0 +1,16 @@ +package com.yxt.anrui.riskcenter.biz.loanpushfundhistory; + +import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryFeign; +import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecordFeign; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +@Api(tags = "推送资金占用费记录表") +@RestController +@RequestMapping("v1/loanpushfundhistory") +public class LoanPushFundHistoryRest implements LoanPushFundHistoryFeign { + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java new file mode 100644 index 0000000000..c804eea8e7 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanpushfundhistory/LoanPushFundHistoryService.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.riskcenter.biz.loanpushfundhistory; + + +import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher; +import com.yxt.anrui.riskcenter.api.loantransferpaymentrecord.LoanTransferPaymentRecord; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @description: + * @author: fzz + * @date: 2023/7/6 + **/ +@Service +public class LoanPushFundHistoryService extends MybatisBaseService { + + public int saveLists(List list) { + return baseMapper.saveLists(list); + } + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java index 915270e5ee..e3e4e47e57 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java @@ -785,21 +785,21 @@ public class LoanRepaymentHistoryService extends MybatisBaseService(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy()); - //推送财务当月逾期转累欠凭证 - Future future = pool.submit(() -> { - pushLateVoucher(pushUseOrgSid); - }); - } 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 org.apache.tomcat.util.threads.ThreadPoolExecutor(1, 10, +// 1000, TimeUnit.MILLISECONDS, +// new LinkedBlockingQueue(1024), namedThreadFactory, new org.apache.tomcat.util.threads.ThreadPoolExecutor.AbortPolicy()); +// //推送财务当月逾期转累欠凭证 +// Future future = pool.submit(() -> { +// pushLateVoucher(pushUseOrgSid); +// }); +// } catch (Exception e) { +// e.printStackTrace(); +// log.error("推送数据失败=========================" + e.getMessage()); +// return rb.setMsg("推送数据失败"); +// } } else { return rb.setMsg("暂无可更新的还款记录"); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java index 3e19e1176a..c5c0bf78d2 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java @@ -1,16 +1,9 @@ package com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.DifferenceVo; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.HistoryOverDueVo; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.*; -import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.AppRepaymentPlanVo; -import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule; -import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.ScanRepaymentVo; -import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -70,4 +63,12 @@ public interface LoanRepaymentPlanDetailsMapper extends BaseMapper selUseOrgSidListForFundVoucher(); + + List getFundForVoucher(@Param("u") String u); + + List selUseOrgSidListForLateVoucher(); + + LoanRepaymentPlanDetails selOneByBankNoAndBusVinSid(@Param("bankContractNo") String bankContractNo,@Param("saleVehSid") String saleVehSid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml index 676527ed4d..8d7a52db53 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml @@ -562,4 +562,58 @@ WHERE lrpd.busVinSid = #{busVinSid} AND lrpd.period = #{period} + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java index c84ad5fe4a..89d29502d7 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java @@ -192,4 +192,20 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService selUseOrgSidListForFundVoucher() { + return baseMapper.selUseOrgSidListForFundVoucher(); + } + + public List getFundForVoucher(String u) { + return baseMapper.getFundForVoucher(u); + } + + public List selUseOrgSidListForLateVoucher() { + return baseMapper.selUseOrgSidListForLateVoucher(); + } + + public LoanRepaymentPlanDetails selOneByBankNoAndBusVinSid(String bankContractNo, String saleVehSid) { + return baseMapper.selOneByBankNoAndBusVinSid(bankContractNo,saleVehSid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java new file mode 100644 index 0000000000..daf4ba3489 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/ScheduledRepaymentPlanDetailsService.java @@ -0,0 +1,270 @@ +package com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.math.Money; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; +import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; +import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRFeign; +import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; +import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; +import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; +import com.yxt.anrui.riskcenter.api.loanfundday.LoanFundDay; +import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord; +import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory; +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.utils.CollectorsUtil; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForLateVoucher; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; +import com.yxt.anrui.riskcenter.biz.loanfundday.LoanFundDayService; +import com.yxt.anrui.riskcenter.biz.loanpushfundhistory.LoanPushFundHistoryService; +import com.yxt.common.core.result.ResultBean; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @description: + * @author: fzz + * @date: 2024/1/30 + **/ +@Component +public class ScheduledRepaymentPlanDetailsService { + + @Autowired + private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService; + @Autowired + private BusSalesOrderFeign busSalesOrderFeign; + @Autowired + private BusSalesOrderBorrowerFeign busSalesOrderBorrowerFeign; + @Autowired + private FinKingDeeFeign finKingDeeFeign; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private BusSalesOrderVehicleFeign busSalesOrderVehicleFeign; + @Autowired + private BasePurchaseSystemFeign basePurchaseSystemFeign; + @Autowired + private LoanPushFundHistoryService loanPushFundHistoryService; + + + /** + * 次月1日23点推送上月尚未转累欠的记录 + */ + @Scheduled(cron = "0 0 23 1 * ?") + public void pushLateVoucher() { + List useOrgSidList = loanRepaymentPlanDetailsService.selUseOrgSidListForLateVoucher(); + useOrgSidList.removeAll(Collections.singleton(null)); + if (!useOrgSidList.isEmpty()) { + for (String u : useOrgSidList) { + List records = loanRepaymentPlanDetailsService.selListForLateVoucher(u); + List planSids = new ArrayList<>(); + if (!records.isEmpty()) { + GeneralVoucher generalVoucher = new GeneralVoucher(); + List voucherDetails = new ArrayList<>(); + for (LoanPlanDetailsVoForLateVoucher planDetails : records) { + if (null != planDetails) { + planSids.add(planDetails.getPlanSid()); + GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); + if (StringUtils.isNotBlank(planDetails.getUseOrgSid())) { + String useOrgSid = planDetails.getUseOrgSid(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + if (null != organizationVo) { + generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); + } + } + if (StringUtils.isNotBlank(planDetails.getDeptSid())) { + String deptSid = planDetails.getDeptSid(); + SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); + if (null != organizationDeptVo) { + voucherDetail.setDeptCode(organizationDeptVo.getOrgCode()); + } + } + 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); + } + } + if (StringUtils.isNotBlank(planDetails.getOutstandingMoney())) { + voucherDetail.setAmount(new BigDecimal(planDetails.getOutstandingMoney())); + } + voucherDetails.add(voucherDetail); + } + } + generalVoucher.setVoucherDetails(voucherDetails); + finKingDeeFeign.saveLateVoucher(generalVoucher); + } + if (!planSids.isEmpty()) { + int i = loanRepaymentPlanDetailsService.updateOweState(planSids); + } + } + } + } + + + /** + * 月初1号计提上个月资金占用费 + * 1号1点 + */ + @Scheduled(cron = "0 0 1 1 * ?") + public void pushFundVoucher() { + List useOrgSidList = loanRepaymentPlanDetailsService.selUseOrgSidListForFundVoucher(); + useOrgSidList.removeAll(Collections.singleton(null)); + if (!useOrgSidList.isEmpty()) { + for (String u : useOrgSidList) { + List fundVouchers = loanRepaymentPlanDetailsService.getFundForVoucher(u); + List fundHistoryList = new ArrayList<>(); + if (!fundVouchers.isEmpty()) { + BigDecimal result = fundVouchers.stream() + // 将LoanPlanDetailsVoForFundVoucher对象的duePushMoney取出来map为Bigdecimal + .map(LoanPlanDetailsVoForFundVoucher::getDuePushMoney) + // 使用reduce()聚合函数,实现累加器 + .reduce(BigDecimal.ZERO, BigDecimal::add); + GeneralVoucher generalVoucher = new GeneralVoucher(); + List voucherDetails = new ArrayList<>(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(u).getData(); + if (null != organizationVo) { + generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); + } + GeneralVoucher.GeneralVoucherDetail voucherDetail1 = new GeneralVoucher.GeneralVoucherDetail(); + voucherDetail1.setSceneCode("贷方"); + voucherDetail1.setDataTime(new DateTime()); + voucherDetail1.setAmount(result); + List deptVo = sysOrganizationFeign.selectChildrenListBySid(u).getData(); + if (!deptVo.isEmpty()) { + deptVo.stream().forEach(d -> { + if (d.getName().equals("金融服务部")) { + voucherDetail1.setDeptCode(d.getOrgCode()); + } + }); + } + voucherDetails.add(voucherDetail1); + for (LoanPlanDetailsVoForFundVoucher v : fundVouchers) { + BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(v.getBusVinSid()).getData(); + if (null != busSalesOrderVehicle) { + BusSalesOrder salesOrder = busSalesOrderFeign.fetchBySid(busSalesOrderVehicle.getSalesOrderSid()).getData(); + String deptSid = salesOrder.getOrgSid(); + GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); + voucherDetail.setSceneCode("借方"); + voucherDetail.setDataTime(new DateTime()); + SysOrganizationVo organizationDeptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); + if (null != organizationDeptVo) { + voucherDetail.setDeptCode(organizationDeptVo.getOrgCode()); + } + if (null != salesOrder) { + if (null != busSalesOrderVehicle) { + String customerNumber = ""; + //判断财务系统是否有客户 + Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData(); + String linkNo = ""; + BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData(); + if (!aBoolean) { + // List 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(v.getDuePushMoney()); + voucherDetails.add(voucherDetail); + } + LoanPushFundHistory loanPushFundHistory = new LoanPushFundHistory(); + BeanUtil.copyProperties(v, loanPushFundHistory, "id", "sid", "fund"); + if (null != v.getDuePushMoney()) { + loanPushFundHistory.setFund(v.getDuePushMoney()); + } + fundHistoryList.add(loanPushFundHistory); + } + generalVoucher.setVoucherDetails(voucherDetails); + finKingDeeFeign.saveFundVoucher(generalVoucher); + // 生成推送资金占用费历史记录 + if (!fundHistoryList.isEmpty()) { + loanPushFundHistoryService.saveLists(fundHistoryList); + } + } + } + } + } + + +}