From f24df8f5bcfb4c3fd523c3db890520a09ee8b99d Mon Sep 17 00:00:00 2001 From: fanzongzhe <285169773@qq.com> Date: Wed, 28 Aug 2024 17:26:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E6=B8=85=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...UncollectedReceivablesDetailedJRFeign.java | 10 + ...tedReceivablesDetailedJRFeignFallback.java | 10 + ...ncollectedReceivablesDetailedJRMapper.java | 2 + ...UncollectedReceivablesDetailedJRMapper.xml | 4 + ...nUncollectedReceivablesDetailedJRRest.java | 10 + ...collectedReceivablesDetailedJRService.java | 16 + .../api/loansettleapply/LoanSettleApply.java | 7 +- .../loansettleapply/LoanSettleApplyDto.java | 6 +- .../loansettleapply/LoanSettleApplyVo.java | 1 + .../loansettleapply/PlanNoReturnMoney.java | 16 + .../loansettleapply/SettleApplyCommonVo.java | 1 + .../LoanSettleBankCost.java | 9 + .../LoanSettleBankCostVo.java | 2 +- .../LoanRepaymentPlanDetailsService.java | 7 + .../LoanSettleApplyMapper.java | 15 + .../loansettleapply/LoanSettleApplyMapper.xml | 156 +++- .../LoanSettleApplyService.java | 808 +++++++++++++++++- 17 files changed, 1031 insertions(+), 49 deletions(-) create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/PlanNoReturnMoney.java diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRFeign.java index 1dac4fe96c..f856da9515 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRFeign.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRFeign.java @@ -80,4 +80,14 @@ public interface FinUncollectedReceivablesDetailedJRFeign { @PostMapping("/saveList") @ResponseBody void saveList(@RequestBody List jrList); + + @ApiOperation("应收修改") + @PostMapping("/updateList") + @ResponseBody + void updateList(@RequestBody List list); + + @ApiOperation("根据条件查询所有数据列表") + @GetMapping("/getUnJrByPayCostTitleKeyAndBusSid") + public ResultBean getUnJrByPayCostTitleKeyAndBusSid(@RequestParam("key") String key ,@RequestParam("busSid") String busSid); + } diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRFeignFallback.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRFeignFallback.java index 1d556206ff..60e6955511 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRFeignFallback.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRFeignFallback.java @@ -75,4 +75,14 @@ public class FinUncollectedReceivablesDetailedJRFeignFallback implements FinUnco public void saveList(List jrList) { } + + @Override + public void updateList(List jrList) { + + } + + @Override + public ResultBean getUnJrByPayCostTitleKeyAndBusSid(String key, String busSid) { + return null; + } } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java index 154f655e7a..379b85aac9 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java @@ -95,4 +95,6 @@ IPage getRskPaymentDetailsList(IPage< LoanRepaymentPlanDetails selectDetails(String sid); void saveList(@Param("list") List list); + + FinUncollectedReceivablesDetailedJR getUnJrByPayCostTitleKeyAndBusSid(@Param("key") String key, @Param("busSid")String busSid); } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml index 75e3617714..9ae4ef5c5d 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml @@ -466,4 +466,8 @@ resultType="com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails"> select * from anrui_riskcenter.loan_repayment_plan_details where sid = #{sid} + diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRRest.java index 0741874237..6e333b1af9 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRRest.java @@ -88,4 +88,14 @@ public class FinUncollectedReceivablesDetailedJRRest implements FinUncollectedRe public void saveList(List jrList) { finUncollectedReceivablesDetailedJRService.saveList(jrList); } + + @Override + public void updateList(List list) { + finUncollectedReceivablesDetailedJRService.updateList(list); + } + + @Override + public ResultBean getUnJrByPayCostTitleKeyAndBusSid(String key, String busSid) { + return finUncollectedReceivablesDetailedJRService.getUnJrByPayCostTitleKeyAndBusSid(key,busSid); + } } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java index c6db559344..d36f210b14 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRService.java @@ -182,4 +182,20 @@ public class FinUncollectedReceivablesDetailedJRService extends MybatisBaseServi public void saveList(List jrList) { baseMapper.saveList(jrList); } + + public void updateList(List list) { + list.removeAll(Collections.singleton(null)); + if(!list.isEmpty()){ + for (int i = 0; i < list.size(); i++) { + FinUncollectedReceivablesDetailedJR finUncollectedReceivablesDetailedJR = list.get(i); + baseMapper.updateById(finUncollectedReceivablesDetailedJR); + } + } + } + + public ResultBean getUnJrByPayCostTitleKeyAndBusSid(String key, String busSid) { + ResultBean rb = ResultBean.fireFail(); + FinUncollectedReceivablesDetailedJR jr = baseMapper.getUnJrByPayCostTitleKeyAndBusSid(key,busSid); + return rb.success().setData(jr); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApply.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApply.java index eae6a8b4fb..98fe23bf51 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApply.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApply.java @@ -1,10 +1,12 @@ package com.yxt.anrui.riskcenter.api.loansettleapply; +import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; +import java.util.Date; /** * @description: @@ -57,7 +59,8 @@ public class LoanSettleApply extends BaseEntity { @ApiModelProperty("机构全路径") private String orgSidPath; @ApiModelProperty("办结日期") - private String closeDate; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + private Date closeDate; @ApiModelProperty("实例id") private String procInstId; @ApiModelProperty("流程定义id") @@ -78,5 +81,7 @@ public class LoanSettleApply extends BaseEntity { private String settingDateBe; @ApiModelProperty("业务sid") private String busSid; + @ApiModelProperty("资方sid") + private String bankSid; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyDto.java index 82c81fb0f5..4d13f513f1 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyDto.java @@ -18,7 +18,8 @@ public class LoanSettleApplyDto { private String sid; private String userSid; private String orgPath; - + @ApiModelProperty("备注") + private String remarks; @ApiModelProperty("申请部门") private String createDept; @ApiModelProperty("申请部门sid") @@ -73,7 +74,8 @@ public class LoanSettleApplyDto { @ApiModelProperty("预计结清日期") private String settingDateBe; - + @ApiModelProperty("资方sid") + private String bankSid; private String busSid; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyVo.java index 39f26445a8..39e25761d1 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/LoanSettleApplyVo.java @@ -12,6 +12,7 @@ import lombok.Data; public class LoanSettleApplyVo { private String createBySid; + private String state; private boolean allowModify; @ApiModelProperty("流程状态") diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/PlanNoReturnMoney.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/PlanNoReturnMoney.java new file mode 100644 index 0000000000..6157949743 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/PlanNoReturnMoney.java @@ -0,0 +1,16 @@ +package com.yxt.anrui.riskcenter.api.loansettleapply; + +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/8/28 10:29 + */ +@Data +public class PlanNoReturnMoney { + private String sid; + private String mSid; + private String money; + private String jrSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/SettleApplyCommonVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/SettleApplyCommonVo.java index 629afc8b89..5ccf9b17b7 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/SettleApplyCommonVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettleapply/SettleApplyCommonVo.java @@ -50,4 +50,5 @@ public class SettleApplyCommonVo { @ApiModelProperty("销售订单sid") private String saleOrderSid; + private String bankSid; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlebankcost/LoanSettleBankCost.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlebankcost/LoanSettleBankCost.java index d522431105..24c266a31e 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlebankcost/LoanSettleBankCost.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlebankcost/LoanSettleBankCost.java @@ -36,4 +36,13 @@ public class LoanSettleBankCost extends BaseEntity { private BigDecimal bankSettlePrice; @ApiModelProperty("附件") private String files; + @ApiModelProperty("贷款保证金") + private BigDecimal loanDeposit; + @ApiModelProperty("资方收款账户") + private String accountName; + @ApiModelProperty("资方收款账号") + private String bankAccount; + @ApiModelProperty("是否抵顶(1是,0否)") + private int topping; + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlebankcost/LoanSettleBankCostVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlebankcost/LoanSettleBankCostVo.java index 63989e77fe..28852d62d9 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlebankcost/LoanSettleBankCostVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansettlebankcost/LoanSettleBankCostVo.java @@ -41,6 +41,6 @@ public class LoanSettleBankCostVo { @ApiModelProperty("资方收款账号") private String bankAccount; @ApiModelProperty("资方收款账户") - private String dueBankValue; + private String accountName; private List filesList = new ArrayList<>(); } 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 0060b5f382..5152de34c2 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 @@ -357,4 +357,11 @@ public class LoanRepaymentPlanDetailsService extends MybatisBaseService selByMainSidAndVinNo(String scheduleSid, String vinNo) { return baseMapper.selByMainSidAndVinNo(scheduleSid, vinNo); } + + public void updateList(List list) { + list.removeAll(Collections.singleton(null)); + for (LoanRepaymentPlanDetails planDetails : list) { + baseMapper.updateById(planDetails); + } + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.java index adb06d23d1..9b25c59899 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.java @@ -9,10 +9,12 @@ import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedR import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApply; import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApplyVo; +import com.yxt.anrui.riskcenter.api.loansettleapply.PlanNoReturnMoney; import com.yxt.anrui.riskcenter.api.loansettleapply.SettleApplyListVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; import java.util.Map; /** @@ -55,4 +57,17 @@ public interface LoanSettleApplyMapper extends BaseMapper { FinUncollectedReceivablesDetailedJR selectByType(@Param("busSid") String sid, @Param("type") String type); int updateBusAndSettleApplyDate(@Param("busVinSid")String busVinSid, @Param("state")String state, @Param("date")String date); + + LoanRepaymentPlanDetails selectMainPeriodByBusVinSid(@Param("busVinSid") String busVinSid); + + List selPlansNoReturnMoneyByBusVinSidDesc(@Param("busVinSid") String busVinSid); + + + List selNoReturnJrMoneyByBusVinSidAndKeyDesc(@Param("busVinSid") String busVinSid, @Param("key") String key); + + PlanNoReturnMoney selectNoReturnMoneyByType(@Param("planDetailsSid") String planDetailsSid, @Param("value") String value); + + String selJrMoneyByBusVinSidAndCloseDate(@Param("busVinSid") String busVinSid, @Param("formatDate") String formatDate); + + String selDueMoneyByBusVinSidAndCloseDate(@Param("busVinSid")String busVinSid, @Param("formatDate")String formatDate); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.xml index 1c01338ca7..2802b008a3 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyMapper.xml @@ -21,6 +21,7 @@ + + + + + + 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 89ac9d4f01..e9093c9a4c 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 @@ -8,8 +8,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; import com.yxt.anrui.buscenter.api.bussalesorder.flowable.BusSalesOrderDelegateQuery; +import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto; +import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign; import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed; import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedFeign; +import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed; import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR; import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJRFeign; import com.yxt.anrui.flowable.api.flow.FlowableFeign; @@ -29,6 +32,7 @@ import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule; import com.yxt.anrui.riskcenter.api.loansettleapply.*; @@ -42,6 +46,8 @@ import com.yxt.anrui.riskcenter.api.loansettlecompanyreduction.LoanSettleCompany import com.yxt.anrui.riskcenter.api.loansettlevehicle.LoanSettleVehicleDto; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail; +import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; +import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; import com.yxt.anrui.riskcenter.biz.loanrepaymentschedule.LoanRepaymentScheduleService; import com.yxt.anrui.riskcenter.biz.loansettlebankcost.LoanSettleBankCostMapper; import com.yxt.anrui.riskcenter.biz.loansettlebankcost.LoanSettleBankCostService; @@ -82,6 +88,8 @@ import java.util.stream.Collectors; @Service public class LoanSettleApplyService extends MybatisBaseService { + @Autowired + private FinPaymentrecordFeign finPaymentrecordFeign; @Autowired private FlowFeign flowFeign; @Autowired @@ -124,7 +132,10 @@ public class LoanSettleApplyService extends MybatisBaseService listPageVo(PagerQuery pq) { LoanSettleApplyQuery query = pq.getParams(); @@ -308,7 +319,8 @@ public class LoanSettleApplyService extends MybatisBaseService list = new ArrayList<>(); + List updateList = new ArrayList<>(); + //资方逾期利息应收、名义价应收、合同违约金应收、其他费用应收 + LoanSettleCompanyCost loanSettleCompanyCost = loanSettleCompanyCostService.selectByMainSid(loanSettleApply.getSid()); + LoanRepaymentPlanDetails planDetails = baseMapper.selectByBusVinSidAndDesc(loanSettleApply.getBusVinSid()); + String scheduleSid = planDetails.getScheduleSid(); + LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(scheduleSid); + if (schedule.getIsOtherPolicy().equals("1") && schedule.getSameBank().equals("0")) { + planDetails = baseMapper.selectMainPeriodByBusVinSid(loanSettleApply.getBusVinSid()); + } + String planDetailsSid = planDetails.getSid(); + FinUncollectedReceivablesDetailedJR jr1 = finUncollectedReceivablesDetailedJRFeign.getUnJrByPayCostTitleKeyAndBusSid("012", planDetailsSid).getData(); + if (null != jr1) { + if (null != loanSettleCompanyCost.getBankOverInterest()) { + jr1.setReveivableMoney(loanSettleCompanyCost.getBankOverInterest()); + updateList.add(jr1); + } + } else { + if (loanSettleCompanyCost.getBankOverInterest().compareTo(BigDecimal.ZERO) > 0) { + //资方逾期利息应收 + FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); + jr.setBusSid(planDetails.getSid()); + jr.setReveivableMoney(loanSettleCompanyCost.getBankOverInterest()); + jr.setPayCostTitleKey("012"); + 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()); + list.add(jr); + } + } + FinUncollectedReceivablesDetailedJR jr2 = finUncollectedReceivablesDetailedJRFeign.getUnJrByPayCostTitleKeyAndBusSid("009", planDetailsSid).getData(); + if (null != jr2) { + if (null != loanSettleCompanyCost.getCompanyNominalPrice()) { + jr2.setReveivableMoney(loanSettleCompanyCost.getCompanyNominalPrice()); + updateList.add(jr1); + } + } else { + if (loanSettleCompanyCost.getCompanyNominalPrice().compareTo(BigDecimal.ZERO) > 0) { + //名义价应收 + FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); + jr.setBusSid(planDetails.getSid()); + jr.setReveivableMoney(loanSettleCompanyCost.getCompanyNominalPrice()); + jr.setPayCostTitleKey("009"); + 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()); + list.add(jr); + } + } + FinUncollectedReceivablesDetailedJR jr3 = finUncollectedReceivablesDetailedJRFeign.getUnJrByPayCostTitleKeyAndBusSid("010", planDetailsSid).getData(); + if (null != jr3) { + if (null != loanSettleCompanyCost.getContractLiquidated()) { + jr3.setReveivableMoney(loanSettleCompanyCost.getContractLiquidated()); + updateList.add(jr3); + } + } else { + if (loanSettleCompanyCost.getContractLiquidated().compareTo(BigDecimal.ZERO) > 0) { + //合同违约金应收 + FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); + jr.setBusSid(planDetails.getSid()); + jr.setReveivableMoney(loanSettleCompanyCost.getContractLiquidated()); + jr.setPayCostTitleKey("010"); + 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()); + list.add(jr); + } + } + FinUncollectedReceivablesDetailedJR jr4 = finUncollectedReceivablesDetailedJRFeign.getUnJrByPayCostTitleKeyAndBusSid("011", planDetailsSid).getData(); + if (null != jr4) { + if (null != loanSettleCompanyCost.getContractLiquidated()) { + jr4.setReveivableMoney(loanSettleCompanyCost.getContractLiquidated()); + updateList.add(jr4); + } + } else { + if (loanSettleCompanyCost.getCompanyOtherPrice().compareTo(BigDecimal.ZERO) > 0) { + //公司其他费用应收 + FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR(); + jr.setBusSid(planDetails.getSid()); + jr.setReveivableMoney(loanSettleCompanyCost.getCompanyOtherPrice()); + jr.setPayCostTitleKey("011"); + 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()); + list.add(jr); + } + } + list.removeAll(Collections.singleton(null)); + updateList.removeAll(Collections.singleton(null)); + if (!list.isEmpty() && list.size() > 0) { + finUncollectedReceivablesDetailedJRFeign.saveAll(list); + } + if (!updateList.isEmpty() && updateList.size() > 0) { + finUncollectedReceivablesDetailedJRFeign.updateList(updateList); + } + } + + //--------------------------------- 贷款保证金结转 ------------------------- + private void carryForward(LoanSettleApply loanSettleApply) { + String userSid = loanSettleApply.getCreateBySid(); + BigDecimal deposit = BigDecimal.ZERO; // 贷款保证金 - (扣罚金额-贷款保证金减免) + BigDecimal depositKF = BigDecimal.ZERO; // 贷款保证金 - (扣罚金额-贷款保证金减免) + BigDecimal depositJM = BigDecimal.ZERO; // 贷款保证金 - (扣罚金额-贷款保证金减免) + BigDecimal amountTo = BigDecimal.ZERO; // 资方结清合计 + String busVinSid = loanSettleApply.getBusVinSid(); + List histories = new ArrayList<>();//还款记录 + List selectList = new ArrayList<>(); + List payments = new ArrayList<>(); //消减垫款金额列表 + List yqlx = new ArrayList<>(); //消减逾期利息列表 + LoanRepaymentPlanDetails planDetails = baseMapper.selectByBusVinSidAndDesc(loanSettleApply.getBusVinSid()); + String scheduleSid = planDetails.getScheduleSid(); + LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(scheduleSid); + if (schedule.getIsOtherPolicy().equals("1") && schedule.getSameBank().equals("0")) { + planDetails = baseMapper.selectMainPeriodByBusVinSid(loanSettleApply.getBusVinSid()); + } + String planDetailsSid = planDetails.getSid(); + LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(loanSettleApply.getSid()); + if (null != companyCost) { + if (null != companyCost.getLoanDeposit()) { + deposit = companyCost.getLoanDeposit(); + } + if (null != companyCost.getDeductionAmount()) { + depositKF = companyCost.getDeductionAmount(); + } + } + LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(loanSettleApply.getSid()); + if (null != reduction) { + if (null != reduction.getDepositPenalty()) { + depositJM = reduction.getDepositPenalty(); + } + if (null != reduction.getAmountTo()) { + amountTo = reduction.getAmountTo(); + } + } + if (amountTo.compareTo(BigDecimal.ZERO) > 0) { + deposit = deposit.subtract(depositKF).add(depositJM); + } else if (amountTo.compareTo(BigDecimal.ZERO) <= 0) { + deposit = deposit.subtract(depositKF).add(depositJM).add(amountTo); + } + //按照顺序结转 + //月还 + if (deposit.compareTo(BigDecimal.ZERO) > 0) { + List p = baseMapper.selPlansNoReturnMoneyByBusVinSidDesc(busVinSid); + p.removeAll(Collections.singleton(null)); + if (!p.isEmpty() && p.size() > 0) { + for (PlanNoReturnMoney m : p) { + if (deposit.compareTo(BigDecimal.ZERO) > 0) { + BigDecimal money = new BigDecimal(m.getMoney()); + BigDecimal mm = BigDecimal.ZERO; + String sid = m.getSid(); + String mSid = m.getMSid(); + LoanRepaymentHistory history = new LoanRepaymentHistory(); + history.setCreateBySid(userSid); + history.setDataTime(new Date()); + history.setUpdateState("1"); + history.setUpdateTime(new Date()); + history.setActualDate(new Date()); + history.setBuckleKey("003"); + history.setBuckle("审核通过"); + history.setReturnWayKey("04"); + history.setReturnWay("结转"); + history.setPayState(0); + history.setPlanDetailSid(sid); + history.setScheduleSid(mSid); + if (deposit.compareTo(money) >= 0) { + mm = money; + history.setActualMoney(money); + histories.add(history); + deposit = deposit.subtract(money); + } else { + mm = deposit; + history.setActualMoney(deposit); + histories.add(history); + deposit = BigDecimal.ZERO; + } + LoanRepaymentPlanDetails pd = loanRepaymentPlanDetailsService.fetchBySid(sid); + if (null != pd.getPaymentMoney()) { + BigDecimal paymentMoney = pd.getPaymentMoney(); + if (mm.compareTo(paymentMoney) >= 0) { + pd.setPaymentMoney(new BigDecimal("0")); + } else { + pd.setPaymentMoney(paymentMoney.subtract(mm)); + } + payments.add(pd); + } + } + } + } + } + //结转垫资方逾期利息 + if (deposit.compareTo(BigDecimal.ZERO) > 0) { + List p = baseMapper.selNoReturnJrMoneyByBusVinSidAndKeyDesc(busVinSid, "005"); + p.removeAll(Collections.singleton(null)); + if (!p.isEmpty() && p.size() > 0) { + for (PlanNoReturnMoney m : p) { + if (deposit.compareTo(BigDecimal.ZERO) > 0) { + BigDecimal money = new BigDecimal(m.getMoney()); + BigDecimal mm = BigDecimal.ZERO; + String sid = m.getSid(); + LoanRepaymentPlanDetails pd = loanRepaymentPlanDetailsService.fetchBySid(sid); + FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); + fin.setCreateBySid(userSid); + fin.setRemarks("结转"); + fin.setVIN(pd.getVinNo()); + fin.setUseOrgSid(pd.getUseOrgSid()); + fin.setReceivablesName("资方逾期利息"); + if (deposit.compareTo(money) >= 0) { + mm = money; + fin.setSubscriptionMoney(money); + deposit = deposit.subtract(money); + } else { + mm = deposit; + fin.setSubscriptionMoney(deposit); + deposit = BigDecimal.ZERO; + } + fin.setSubscriptionDate(DateUtil.today()); + fin.setAuditState(3); + fin.setAuditDate(DateUtil.today()); + fin.setReceivablesSid(m.getJrSid()); + fin.setKxState("01"); + fin.setUseOrgName(pd.getUseOrgName()); + fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); + selectList.add(fin); + if (null != pd.getPaymentInterest()) { + BigDecimal paymentInterest = pd.getPaymentInterest(); + if (mm.compareTo(paymentInterest) >= 0) { + pd.setPaymentInterest(new BigDecimal("0")); + } else { + pd.setPaymentInterest(paymentInterest.subtract(mm)); + } + yqlx.add(pd); + } + } + } + } + } + //结转资方逾期利息 + if (deposit.compareTo(BigDecimal.ZERO) > 0) { + PlanNoReturnMoney p = baseMapper.selectNoReturnMoneyByType(planDetailsSid, "结清时资方逾期利息"); + BigDecimal money = new BigDecimal(p.getMoney()); + FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); + fin.setCreateBySid(planDetails.getSalesUserSid()); + fin.setRemarks("结转"); + fin.setVIN(planDetails.getVinNo()); + fin.setUseOrgSid(planDetails.getUseOrgSid()); + fin.setReceivablesName("结清时资方逾期利息"); + if (deposit.compareTo(money) >= 0) { + fin.setSubscriptionMoney(money); + deposit = deposit.subtract(money); + } else { + fin.setSubscriptionMoney(deposit); + deposit = BigDecimal.ZERO; + } + fin.setSubscriptionDate(DateUtil.today()); + fin.setAuditState(3); + fin.setAuditDate(DateUtil.today()); + fin.setReceivablesSid(p.getJrSid()); + fin.setKxState("01"); + fin.setPurchaseSystemSid(""); + fin.setPurchaseSystemName(""); + fin.setStaffUserSid(""); + fin.setUseOrgName(planDetails.getUseOrgName()); + fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); + selectList.add(fin); + } + //名义价 + if (deposit.compareTo(BigDecimal.ZERO) > 0) { + PlanNoReturnMoney p = baseMapper.selectNoReturnMoneyByType(planDetailsSid, "名义价"); + BigDecimal money = new BigDecimal(p.getMoney()); + FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); + fin.setCreateBySid(planDetails.getSalesUserSid()); + fin.setRemarks("结转"); + fin.setVIN(planDetails.getVinNo()); + fin.setUseOrgSid(planDetails.getUseOrgSid()); + fin.setReceivablesName("名义价"); + if (deposit.compareTo(money) >= 0) { + fin.setSubscriptionMoney(money); + deposit = deposit.subtract(money); + } else { + fin.setSubscriptionMoney(deposit); + deposit = BigDecimal.ZERO; + } + fin.setSubscriptionDate(DateUtil.today()); + fin.setAuditState(3); + fin.setAuditDate(DateUtil.today()); + fin.setReceivablesSid(p.getJrSid()); + fin.setKxState("01"); + fin.setPurchaseSystemSid(""); + fin.setPurchaseSystemName(""); + fin.setStaffUserSid(""); + fin.setUseOrgName(planDetails.getUseOrgName()); + fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); + selectList.add(fin); + } + //合同违约金 + if (deposit.compareTo(BigDecimal.ZERO) > 0) { + PlanNoReturnMoney p = baseMapper.selectNoReturnMoneyByType(planDetailsSid, "合同违约金"); + BigDecimal money = new BigDecimal(p.getMoney()); + FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); + fin.setCreateBySid(planDetails.getSalesUserSid()); + fin.setRemarks("结转"); + fin.setVIN(planDetails.getVinNo()); + fin.setUseOrgSid(planDetails.getUseOrgSid()); + fin.setReceivablesName("合同违约金"); + if (deposit.compareTo(money) >= 0) { + fin.setSubscriptionMoney(money); + deposit = deposit.subtract(money); + } else { + fin.setSubscriptionMoney(deposit); + deposit = BigDecimal.ZERO; + } + fin.setSubscriptionDate(DateUtil.today()); + fin.setAuditState(3); + fin.setAuditDate(DateUtil.today()); + fin.setReceivablesSid(p.getJrSid()); + fin.setKxState("01"); + fin.setPurchaseSystemSid(""); + fin.setPurchaseSystemName(""); + fin.setStaffUserSid(""); + fin.setUseOrgName(planDetails.getUseOrgName()); + fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); + selectList.add(fin); + } + //其他费用 + if (deposit.compareTo(BigDecimal.ZERO) > 0) { + PlanNoReturnMoney p = baseMapper.selectNoReturnMoneyByType(planDetailsSid, "其他费用"); + BigDecimal money = new BigDecimal(p.getMoney()); + FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); + fin.setCreateBySid(planDetails.getSalesUserSid()); + fin.setRemarks("结转"); + fin.setVIN(planDetails.getVinNo()); + fin.setUseOrgSid(planDetails.getUseOrgSid()); + fin.setReceivablesName("其他费用"); + if (deposit.compareTo(money) >= 0) { + fin.setSubscriptionMoney(money); + deposit = deposit.subtract(money); + } else { + fin.setSubscriptionMoney(deposit); + deposit = BigDecimal.ZERO; + } + fin.setSubscriptionDate(DateUtil.today()); + fin.setAuditState(3); + fin.setAuditDate(DateUtil.today()); + fin.setReceivablesSid(p.getJrSid()); + fin.setKxState("01"); + fin.setPurchaseSystemSid(""); + fin.setPurchaseSystemName(""); + fin.setStaffUserSid(""); + fin.setUseOrgName(planDetails.getUseOrgName()); + fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); + selectList.add(fin); + } + //资金占用费 + if (deposit.compareTo(BigDecimal.ZERO) > 0) { + List p = baseMapper.selNoReturnJrMoneyByBusVinSidAndKeyDesc(busVinSid, "006"); + p.removeAll(Collections.singleton(null)); + if (!p.isEmpty() && p.size() > 0) { + for (PlanNoReturnMoney m : p) { + if (deposit.compareTo(BigDecimal.ZERO) > 0) { + BigDecimal money = new BigDecimal(m.getMoney()); + FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); + fin.setCreateBySid(userSid); + fin.setRemarks("结转"); + fin.setVIN(planDetails.getVinNo()); + fin.setUseOrgSid(planDetails.getUseOrgSid()); + fin.setReceivablesName("资金占用费"); + if (deposit.compareTo(money) >= 0) { + fin.setSubscriptionMoney(money); + deposit = deposit.subtract(money); + } else { + fin.setSubscriptionMoney(deposit); + deposit = BigDecimal.ZERO; + } + fin.setSubscriptionDate(DateUtil.today()); + fin.setAuditState(3); + fin.setAuditDate(DateUtil.today()); + fin.setReceivablesSid(m.getJrSid()); + fin.setKxState("01"); + fin.setUseOrgName(planDetails.getUseOrgName()); + fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); + selectList.add(fin); + } + } + } + } + if (histories.size() > 0 && !histories.isEmpty()) { + loanRepaymentHistoryService.saveList(histories); + } + if (payments.size() > 0 && !payments.isEmpty()) { + loanRepaymentPlanDetailsService.updateList(payments); + } + if (yqlx.size() > 0 && !yqlx.isEmpty()) { + loanRepaymentPlanDetailsService.updateList(yqlx); + } + selectList.removeAll(Collections.singleton(null)); + if (selectList.size() > 0 && !selectList.isEmpty()) { + ResultBean resultBean = finSelectedReceivablesDetailedFeign.saveAll(selectList); + } + } + + //--------------------------------- 减免 ---------------------------- + private void reliefMoney(LoanSettleApply loanSettleApply) { + String userSid = loanSettleApply.getCreateBySid(); + String busVinSid = loanSettleApply.getBusVinSid(); + List histories = new ArrayList<>();//还款记录 + List selectList = new ArrayList<>(); + List payments = new ArrayList<>(); //消减垫款金额列表 + List yqlx = new ArrayList<>(); //消减逾期利息列表 + LoanRepaymentPlanDetails planDetails = baseMapper.selectByBusVinSidAndDesc(loanSettleApply.getBusVinSid()); + String scheduleSid = planDetails.getScheduleSid(); + LoanRepaymentSchedule schedule = loanRepaymentScheduleService.fetchBySid(scheduleSid); + if (schedule.getIsOtherPolicy().equals("1") && schedule.getSameBank().equals("0")) { + planDetails = baseMapper.selectMainPeriodByBusVinSid(loanSettleApply.getBusVinSid()); + } + String planDetailsSid = planDetails.getSid(); + //资金占用费 + List p = baseMapper.selNoReturnJrMoneyByBusVinSidAndKeyDesc(busVinSid, "006"); + p.removeAll(Collections.singleton(null)); + if (!p.isEmpty() && p.size() > 0) { + for (PlanNoReturnMoney m : p) { + BigDecimal money = new BigDecimal(m.getMoney()); + FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); + fin.setCreateBySid(userSid); + fin.setRemarks("减免"); + fin.setVIN(planDetails.getVinNo()); + fin.setUseOrgSid(planDetails.getUseOrgSid()); + fin.setReceivablesName("资金占用费"); + fin.setSubscriptionMoney(money); + fin.setSubscriptionDate(DateUtil.today()); + fin.setAuditState(3); + fin.setAuditDate(DateUtil.today()); + fin.setReceivablesSid(m.getJrSid()); + fin.setKxState("01"); + fin.setUseOrgName(planDetails.getUseOrgName()); + fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); + selectList.add(fin); + } + } + //月还 + List p1 = baseMapper.selPlansNoReturnMoneyByBusVinSidDesc(busVinSid); + p1.removeAll(Collections.singleton(null)); + if (!p1.isEmpty() && p1.size() > 0) { + for (PlanNoReturnMoney m : p1) { + BigDecimal money = new BigDecimal(m.getMoney()); + String sid = m.getSid(); + String mSid = m.getMSid(); + LoanRepaymentHistory history = new LoanRepaymentHistory(); + history.setCreateBySid(userSid); + history.setDataTime(new Date()); + history.setUpdateState("1"); + history.setUpdateTime(new Date()); + history.setActualDate(new Date()); + history.setBuckleKey("003"); + history.setBuckle("审核通过"); + history.setReturnWayKey("05"); + history.setReturnWay("减免"); + history.setPayState(0); + history.setPlanDetailSid(sid); + history.setScheduleSid(mSid); + history.setActualMoney(money); + histories.add(history); + LoanRepaymentPlanDetails pd = loanRepaymentPlanDetailsService.fetchBySid(sid); + if (null != pd.getPaymentMoney()) { + BigDecimal paymentMoney = pd.getPaymentMoney(); + pd.setPaymentMoney(new BigDecimal("0")); + payments.add(pd); + } + } + } + //垫资方逾期利息 + List p2 = baseMapper.selNoReturnJrMoneyByBusVinSidAndKeyDesc(busVinSid, "005"); + p2.removeAll(Collections.singleton(null)); + if (!p2.isEmpty() && p2.size() > 0) { + for (PlanNoReturnMoney m : p2) { + BigDecimal money = new BigDecimal(m.getMoney()); + String sid = m.getSid(); + LoanRepaymentPlanDetails pd = loanRepaymentPlanDetailsService.fetchBySid(sid); + FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); + fin.setCreateBySid(userSid); + fin.setRemarks("减免"); + fin.setVIN(pd.getVinNo()); + fin.setUseOrgSid(pd.getUseOrgSid()); + fin.setReceivablesName("资方逾期利息"); + fin.setSubscriptionMoney(money); + fin.setSubscriptionDate(DateUtil.today()); + fin.setAuditState(3); + fin.setAuditDate(DateUtil.today()); + fin.setReceivablesSid(m.getJrSid()); + fin.setKxState("01"); + fin.setUseOrgName(pd.getUseOrgName()); + fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); + selectList.add(fin); + if (null != pd.getPaymentInterest()) { + BigDecimal paymentInterest = pd.getPaymentInterest(); + pd.setPaymentInterest(new BigDecimal("0")); + yqlx.add(pd); + } + } + } + //资方逾期利息 + PlanNoReturnMoney p3 = baseMapper.selectNoReturnMoneyByType(planDetailsSid, "结清时资方逾期利息"); + if (null != p3) { + BigDecimal money = new BigDecimal(p3.getMoney()); + FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); + fin.setCreateBySid(planDetails.getSalesUserSid()); + fin.setRemarks("减免"); + fin.setVIN(planDetails.getVinNo()); + fin.setUseOrgSid(planDetails.getUseOrgSid()); + fin.setReceivablesName("结清时资方逾期利息"); + fin.setSubscriptionMoney(money); + fin.setSubscriptionDate(DateUtil.today()); + fin.setAuditState(3); + fin.setAuditDate(DateUtil.today()); + fin.setReceivablesSid(p3.getJrSid()); + fin.setKxState("01"); + fin.setPurchaseSystemSid(""); + fin.setPurchaseSystemName(""); + fin.setStaffUserSid(""); + fin.setUseOrgName(planDetails.getUseOrgName()); + fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); + selectList.add(fin); + } + //名义价 + PlanNoReturnMoney p4 = baseMapper.selectNoReturnMoneyByType(planDetailsSid, "名义价"); + if (null != p4) { + BigDecimal money = new BigDecimal(p4.getMoney()); + FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); + fin.setCreateBySid(planDetails.getSalesUserSid()); + fin.setRemarks("减免"); + fin.setVIN(planDetails.getVinNo()); + fin.setUseOrgSid(planDetails.getUseOrgSid()); + fin.setReceivablesName("名义价"); + fin.setSubscriptionMoney(money); + fin.setSubscriptionDate(DateUtil.today()); + fin.setAuditState(3); + fin.setAuditDate(DateUtil.today()); + fin.setReceivablesSid(p4.getJrSid()); + fin.setKxState("01"); + fin.setPurchaseSystemSid(""); + fin.setPurchaseSystemName(""); + fin.setStaffUserSid(""); + fin.setUseOrgName(planDetails.getUseOrgName()); + fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); + selectList.add(fin); + } + //合同违约金 + PlanNoReturnMoney p5 = baseMapper.selectNoReturnMoneyByType(planDetailsSid, "合同违约金"); + if (null != p5) { + BigDecimal money = new BigDecimal(p5.getMoney()); + FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); + fin.setCreateBySid(planDetails.getSalesUserSid()); + fin.setRemarks("减免"); + fin.setVIN(planDetails.getVinNo()); + fin.setUseOrgSid(planDetails.getUseOrgSid()); + fin.setReceivablesName("合同违约金"); + fin.setSubscriptionMoney(money); + fin.setSubscriptionDate(DateUtil.today()); + fin.setAuditState(3); + fin.setAuditDate(DateUtil.today()); + fin.setReceivablesSid(p5.getJrSid()); + fin.setKxState("01"); + fin.setPurchaseSystemSid(""); + fin.setPurchaseSystemName(""); + fin.setStaffUserSid(""); + fin.setUseOrgName(planDetails.getUseOrgName()); + fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); + selectList.add(fin); + } + //其他费用 + PlanNoReturnMoney p6 = baseMapper.selectNoReturnMoneyByType(planDetailsSid, "其他费用"); + if (null != p6) { + BigDecimal money = new BigDecimal(p6.getMoney()); + FinSelectedReceivablesDetailed fin = new FinSelectedReceivablesDetailed(); + fin.setCreateBySid(planDetails.getSalesUserSid()); + fin.setRemarks("减免"); + fin.setVIN(planDetails.getVinNo()); + fin.setUseOrgSid(planDetails.getUseOrgSid()); + fin.setReceivablesName("其他费用"); + fin.setSubscriptionMoney(money); + fin.setSubscriptionDate(DateUtil.today()); + fin.setAuditState(3); + fin.setAuditDate(DateUtil.today()); + fin.setReceivablesSid(p6.getJrSid()); + fin.setKxState("01"); + fin.setPurchaseSystemSid(""); + fin.setPurchaseSystemName(""); + fin.setStaffUserSid(""); + fin.setUseOrgName(planDetails.getUseOrgName()); + fin.setOrgSidPath(loanSettleApply.getOrgSidPath()); + selectList.add(fin); + } + if (histories.size() > 0 && !histories.isEmpty()) { + loanRepaymentHistoryService.saveList(histories); + } + if (payments.size() > 0 && !payments.isEmpty()) { + loanRepaymentPlanDetailsService.updateList(payments); + } + if (yqlx.size() > 0 && !yqlx.isEmpty()) { + loanRepaymentPlanDetailsService.updateList(yqlx); + } + selectList.removeAll(Collections.singleton(null)); + if (selectList.size() > 0 && !selectList.isEmpty()) { + ResultBean resultBean = finSelectedReceivablesDetailedFeign.saveAll(selectList); + } + } + //--------------------资方结清款到出纳代付款列表------------------ + private void pushBankSettlePrice(LoanSettleApply loanSettleApply) { + if (StringUtils.isBlank(loanSettleApply.getBusSid())) { + LoanSettleBankCost bankCost = loanSettleBankCostService.selectByMainSid(loanSettleApply.getSid()); + if (null != bankCost) { + if (null != bankCost.getBankSettlePrice()) { + BigDecimal bankSettlePrice = bankCost.getBankSettlePrice(); + if (bankSettlePrice.compareTo(BigDecimal.ZERO) > 0) { + FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto(); + finPaymentrecordDto.setApplySid(""); + finPaymentrecordDto.setPayCompanySid(""); + finPaymentrecordDto.setPayType(1); + finPaymentrecordDto.setCreateOrgSid(loanSettleApply.getUseOrgSid()); + finPaymentrecordDto.setUseOrgSid(loanSettleApply.getUseOrgSid()); + finPaymentrecordDto.setCostTypeKey(""); + finPaymentrecordDto.setCostTypeValue("资方结清款"); + finPaymentrecordDto.setCostTitleKey(""); + finPaymentrecordDto.setCostTitleValue("资方结清款"); + finPaymentrecordDto.setReceiveBank(""); + if (StringUtils.isNotBlank(bankCost.getBankAccount())) { + finPaymentrecordDto.setReceiveBankAccount(bankCost.getBankAccount()); + } + if (StringUtils.isNotBlank(bankCost.getAccountName())) { + finPaymentrecordDto.setReceiveCompany(bankCost.getAccountName()); + } + finPaymentrecordDto.setCost(bankSettlePrice.toString()); + finPaymentrecordDto.setAccountsReceive(bankSettlePrice.toString()); + finPaymentrecordDto.setBusSid(loanSettleApply.getSid()); + finPaymentrecordDto.setPayRemark(""); + finPaymentrecordDto.setPayCode(""); + finPaymentrecordDto.setCreateBySid(loanSettleApply.getCreateBySid()); + finPaymentrecordDto.setUpdateBySid(loanSettleApply.getCreateBySid()); + finPaymentrecordDto.setRemarks(loanSettleApply.getRemarks()); + finPaymentrecordDto.setPurchaseSystemSid(""); + finPaymentrecordDto.setPurchaseSystemName(""); + finPaymentrecordDto.setBusRemarks(""); + String sid = finPaymentrecordFeign.save(finPaymentrecordDto).getData(); + } + } + } + } + } + private void pushUnColl(String businessSid) { LoanSettleApply loanSettleApply = fetchBySid(businessSid); List list = new ArrayList<>(); @@ -1452,8 +2146,8 @@ public class LoanSettleApplyService extends MybatisBaseService page = PagerUtil.queryToPage(pagerQuery); @@ -1640,13 +2334,47 @@ public class LoanSettleApplyService extends MybatisBaseService 0) { return rb.setMsg("只能在结清申请发起当日确认客户结清,若需结清,请重新发起结清申请!"); - } else { - pushConfirm(sid); - loanSettleApply.setState(1); - baseMapper.updateById(loanSettleApply); } + loanSettleApply.setState(1); + baseMapper.updateById(loanSettleApply); + carryForward(loanSettleApply); + reliefMoney(loanSettleApply); + //更新车辆表结清状态 + baseMapper.updateBus(loanSettleApply.getBusVinSid(), "1"); + //推送资方结清款到出纳代付款列表 + pushBankSettlePrice(loanSettleApply); return rb.success(); } + + public boolean isSettle(LoanSettleApply loanSettleApply) { + boolean isSettle = true; + String busVinSid = loanSettleApply.getBusVinSid(); + BigDecimal sumMoney = BigDecimal.ZERO; + BigDecimal dueMoney = BigDecimal.ZERO; //月还 + BigDecimal jrMoney = BigDecimal.ZERO; //金融认款金额 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date closeDate = loanSettleApply.getCloseDate(); + String formatDate = sdf.format(closeDate); + String jMoney = baseMapper.selJrMoneyByBusVinSidAndCloseDate(busVinSid,formatDate); + jrMoney = new BigDecimal(jMoney); + String dMoney = baseMapper.selDueMoneyByBusVinSidAndCloseDate(busVinSid,formatDate); + dueMoney = new BigDecimal(dMoney); + sumMoney = jrMoney.add(dueMoney); + LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(loanSettleApply.getSid()); + if (null != reduction) { + if (null != reduction.getAmountTo()) { + BigDecimal amountTo = reduction.getAmountTo(); + if (sumMoney.compareTo(amountTo) < 0) { + isSettle = false; + } + } + } + return isSettle; + } }