diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistory.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistory.java new file mode 100644 index 0000000000..ef40dabf0e --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistory.java @@ -0,0 +1,37 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymenthistory; + +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; +import java.util.Date; + +/** + * @author Administrator + * @description + * @date 2023/8/16 14:34 + */ +@Data +@ApiModel(value = "还款记录明细", description = "还款记录明细") +@TableName("loan_repayment_history") +public class LoanRepaymentHistory extends BaseEntity { + @ApiModelProperty("还款计划明细sid") + private String planDetailSid; + @ApiModelProperty("还款计划表sid") + private String scheduleSid; + @ApiModelProperty("实还日期") + private Date actualDate; + @ApiModelProperty("数据日期") + private Date dataTime; + @ApiModelProperty("实还金额") + private BigDecimal actualMoney; + @ApiModelProperty("本期未还金额") + private BigDecimal outstandingMoney; + @ApiModelProperty("划扣状态key") + private String buckleKey; + @ApiModelProperty("划扣状态") + private String buckle; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryDto.java new file mode 100644 index 0000000000..68a5083500 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryDto.java @@ -0,0 +1,34 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymenthistory; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author Administrator + * @description + * @date 2023/11/8 10:28 + */ +@Data +public class LoanRepaymentHistoryDto implements Dto { + private String sid; + @ApiModelProperty("还款计划明细sid") + private String planDetailSid; + @ApiModelProperty("还款计划表sid") + private String scheduleSid; + @ApiModelProperty("实还日期") + private String actualDate; + @ApiModelProperty("数据日期") + private String dataTime; + @ApiModelProperty("实还金额") + private String actualMoney; + @ApiModelProperty("本期未还金额") + private String outstandingMoney; + @ApiModelProperty("划扣状态key") + private String buckleKey; + @ApiModelProperty("划扣状态") + private String buckle; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeign.java new file mode 100644 index 0000000000..19311f1bb5 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeign.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymenthistory; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + + +/** + * @description: 还款记录 + * @author: fan + * @date: 2023/7/6 + **/ +@Api(tags = "还款记录") +@FeignClient( + contextId = "anrui-riskcenter-LoanRepaymentHistory", + name = "anrui-riskcenter", + path = "v1/loanrepaymenthistory", + fallback = LoanRepaymentHistoryFeignFallback.class) +public interface LoanRepaymentHistoryFeign { + + @ApiOperation("保存还款记录") + @PostMapping("/saveHistory") + @ResponseBody + public ResultBean saveHistory(@RequestBody LoanRepaymentHistoryDto dto); + + + @ApiOperation("删除还款记录") + @DeleteMapping("/deleteHistory") + public ResultBean deleteHistory(@RequestParam("scheduleSid") String scheduleSid); + + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeignFallback.java new file mode 100644 index 0000000000..93fa7fbbea --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeignFallback.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymenthistory; + +import com.yxt.common.core.result.ResultBean; +import org.springframework.stereotype.Component; + +/** + * @author Administrator + * @description + * @date 2023/8/16 14:36 + */ +@Component +public class LoanRepaymentHistoryFeignFallback implements LoanRepaymentHistoryFeign { + + + @Override + public ResultBean saveHistory(LoanRepaymentHistoryDto dto) { + return null; + } + + @Override + public ResultBean deleteHistory(String scheduleSid) { + return null; + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java new file mode 100644 index 0000000000..6614c9f5a6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java @@ -0,0 +1,71 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymentplandetails; + +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; +import java.util.Date; + +/** + * @author Administrator + * @description + * @date 2023/8/16 14:34 + */ +@Data +@ApiModel(value = "还款计划表明细", description = "还款计划表明细") +@TableName("loan_repayment_plan_details") +public class LoanRepaymentPlanDetails extends BaseEntity { + @ApiModelProperty("销售订单sid") + private String salesOrderSid; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("客户") + private String customer; + @ApiModelProperty("销售专员sid") + private String salesUserSid; + @ApiModelProperty("销售专员") + private String staffName; + @ApiModelProperty("借款人sid") + private String borrowerSid; + @ApiModelProperty("借款人名称") + private String borrowerName; + @ApiModelProperty("销售订单车辆业务sid") + private String busVinSid; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("消贷合同编号") + private String loanContractNo; + @ApiModelProperty("消贷合同sid") + private String loanContractSid; + @ApiModelProperty("资方合同") + private String bankContractNo; + @ApiModelProperty("资方名称") + private String bankName; + @ApiModelProperty("金融产品政策") + private String policyName; + @ApiModelProperty("还款计划表sid") + private String scheduleSid; + @ApiModelProperty("期数") + private String period; + @ApiModelProperty("应还日期") + private Date dueDate; + @ApiModelProperty("应还金额") + private BigDecimal dueMoney; + @ApiModelProperty("主方案/其他融 0/1") + private String policyOrOther; + @ApiModelProperty("销售部门sid") + private String deptSid; + @ApiModelProperty("销售部门") + private String dept; + @ApiModelProperty("分公司sid") + private String useOrgSid; + @ApiModelProperty("分公司") + private String useOrgName; + @ApiModelProperty("全路径") + private String orgSidPath; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsDto.java new file mode 100644 index 0000000000..6cd8dddb80 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsDto.java @@ -0,0 +1,67 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymentplandetails; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author Administrator + * @description + * @date 2023/11/8 10:28 + */ +@Data +public class LoanRepaymentPlanDetailsDto implements Dto { + + private String createBySid; + @ApiModelProperty("销售订单sid") + private String salesOrderSid; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("客户") + private String customer; + @ApiModelProperty("销售专员sid") + private String salesUserSid; + @ApiModelProperty("销售专员") + private String staffName; + @ApiModelProperty("借款人sid") + private String borrowerSid; + @ApiModelProperty("借款人名称") + private String borrowerName; + @ApiModelProperty("销售订单车辆业务sid") + private String busVinSid; + @ApiModelProperty("车架号") + private String vinNo; + @ApiModelProperty("消贷合同编号") + private String loanContractNo; + @ApiModelProperty("消贷合同sid") + private String loanContractSid; + @ApiModelProperty("资方合同") + private String bankContractNo; + @ApiModelProperty("资方名称") + private String bankName; + @ApiModelProperty("金融产品政策") + private String policyName; + @ApiModelProperty("还款计划表sid") + private String scheduleSid; + @ApiModelProperty("期数") + private String period; + @ApiModelProperty("应还日期") + private String dueDate; + @ApiModelProperty("应还金额") + private String dueMoney; + @ApiModelProperty("主方案/其他融 0/1") + private String policyOrOther; + @ApiModelProperty("销售部门sid") + private String deptSid; + @ApiModelProperty("销售部门") + private String dept; + @ApiModelProperty("分公司sid") + private String useOrgSid; + @ApiModelProperty("分公司") + private String useOrgName; + @ApiModelProperty("全路径") + private String orgSidPath; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeign.java new file mode 100644 index 0000000000..b83caebbe6 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeign.java @@ -0,0 +1,40 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymentplandetails; + +import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +/** + * @description: 还款计划表明细 + * @author: fan + * @date: 2023/7/6 + **/ +@Api(tags = "还款计划表明细") +@FeignClient( + contextId = "anrui-riskcenter-LoanRepaymentPlanDetails", + name = "anrui-riskcenter", + path = "v1/loanrepaymentplandetails", + fallback = LoanRepaymentPlanDetailsFeignFallback.class) +public interface LoanRepaymentPlanDetailsFeign { + + @ApiOperation("保存还款计划表明细") + @PostMapping("/savePlanDetails") + @ResponseBody + public ResultBean savePlanDetails(@RequestBody LoanRepaymentPlanDetailsDto dto); + + + @ApiOperation("删除还款计划表明细") + @DeleteMapping("/deletePlanDetails") + public ResultBean deletePlanDetails(@RequestParam("scheduleSid") String scheduleSid); + + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeignFallback.java new file mode 100644 index 0000000000..1c2c306906 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeignFallback.java @@ -0,0 +1,29 @@ +package com.yxt.anrui.riskcenter.api.loanrepaymentplandetails; + +import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/8/16 14:36 + */ +@Component +public class LoanRepaymentPlanDetailsFeignFallback implements LoanRepaymentPlanDetailsFeign { + + + @Override + public ResultBean savePlanDetails(LoanRepaymentPlanDetailsDto dto) { + return null; + } + + @Override + public ResultBean deletePlanDetails(String scheduleSid) { + return null; + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java new file mode 100644 index 0000000000..3043ef013c --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java @@ -0,0 +1,19 @@ +package com.yxt.anrui.riskcenter.biz.loanrepaymenthistory; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; +import org.apache.ibatis.annotations.Mapper; + + +/** + * @description: + * @author: fan + * @date: 2023/8/21 + **/ +@Mapper +public interface LoanRepaymentHistoryMapper extends BaseMapper { + + + int deleteHistory(String scheduleSid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml new file mode 100644 index 0000000000..32be7a1769 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml @@ -0,0 +1,11 @@ + + + + + + + DELETE + FROM loan_repayment_history + WHERE scheduleSid = #{scheduleSid} + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryRest.java new file mode 100644 index 0000000000..0cad8509cd --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryRest.java @@ -0,0 +1,36 @@ +package com.yxt.anrui.riskcenter.biz.loanrepaymenthistory; + + +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryDto; +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryFeign; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsFeign; +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @description: + * @author: fan + * @date: 2023/8/21 + **/ +@Api(tags = "还款记录") +@RestController +@RequestMapping("v1/loanrepaymenthistory") +public class LoanRepaymentHistoryRest implements LoanRepaymentHistoryFeign { + + @Autowired + private LoanRepaymentHistoryService loanRepaymentHistoryService; + + @Override + public ResultBean saveHistory(LoanRepaymentHistoryDto dto) { + return loanRepaymentHistoryService.saveHistory(dto); + } + + @Override + public ResultBean deleteHistory(String scheduleSid) { + return loanRepaymentHistoryService.deleteHistory(scheduleSid); + } +} 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 new file mode 100644 index 0000000000..01dc875373 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.riskcenter.biz.loanrepaymenthistory; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryDto; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.core.result.ResultBean; +import org.springframework.stereotype.Service; + + +/** + * @description: + * @author: fan + * @date: 2023/8/21 + **/ +@Service +public class LoanRepaymentHistoryService extends MybatisBaseService { + + + public ResultBean saveHistory(LoanRepaymentHistoryDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanRepaymentHistory entity = new LoanRepaymentHistory(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.insert(entity); + return rb.success().setData(entity.getSid()); + } + + public ResultBean deleteHistory(String scheduleSid) { + ResultBean rb = ResultBean.fireFail(); + int i = baseMapper.deleteHistory(scheduleSid); + return rb.success(); + } +} 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 new file mode 100644 index 0000000000..390ad79b52 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java @@ -0,0 +1,28 @@ +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.loanrepaymentplandetails.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; + +import java.util.List; + + +/** + * @description: + * @author: fan + * @date: 2023/8/21 + **/ +@Mapper +public interface LoanRepaymentPlanDetailsMapper extends BaseMapper { + + + int deletePlanDetails(String scheduleSid); +} 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 new file mode 100644 index 0000000000..6455e4b38b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml @@ -0,0 +1,11 @@ + + + + + + + DELETE + FROM loan_repayment_plan_details + WHERE scheduleSid = #{scheduleSid} + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java new file mode 100644 index 0000000000..0fa553aaac --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java @@ -0,0 +1,36 @@ +package com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails; + + +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsFeign; +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @description: + * @author: fan + * @date: 2023/8/21 + **/ +@Api(tags = "还款计划表明细") +@RestController +@RequestMapping("v1/loanrepaymentplandetails") +public class LoanRepaymentPlanDetailsRest implements LoanRepaymentPlanDetailsFeign { + + @Autowired + private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService; + + @Override + public ResultBean savePlanDetails(LoanRepaymentPlanDetailsDto dto) { + return loanRepaymentPlanDetailsService.savePlanDetails(dto); + } + + @Override + public ResultBean deletePlanDetails(String scheduleSid) { + return loanRepaymentPlanDetailsService.deletePlanDetails(scheduleSid); + } +} 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 new file mode 100644 index 0000000000..9d47b2d2ae --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java @@ -0,0 +1,97 @@ +package com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.anrui.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.bussalesorderloancontract.BusSalesOrderLoancontractDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractFeign; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; +import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; +import com.yxt.anrui.portal.api.sysuser.SysUserFeign; +import com.yxt.anrui.portal.api.sysuser.SysUserVo; +import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryDto; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; +import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; +import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; +import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; +import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy; +import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation; +import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; +import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService; +import com.yxt.anrui.riskcenter.biz.loansolutionsotherpolicy.LoanSolutionsOtherpolicyService; +import com.yxt.anrui.riskcenter.biz.loanwarrantinformation.LoanWarrantInformationService; +import com.yxt.common.base.config.component.DocPdfComponent; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.MsgWs; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.base.utils.WordConvertUtils; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.messagecenter.api.message.MessageFeign; +import com.yxt.messagecenter.api.message.MessagePushTransferDto; +import org.apache.tomcat.util.threads.ThreadPoolExecutor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.File; +import java.io.InputStream; +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; + + +/** + * @description: + * @author: fan + * @date: 2023/8/21 + **/ +@Service +public class LoanRepaymentPlanDetailsService extends MybatisBaseService { + + + @Autowired + private LoanRepaymentHistoryService loanRepaymentHistoryService; + + @Transactional(rollbackFor = Exception.class) + public ResultBean savePlanDetails(LoanRepaymentPlanDetailsDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanRepaymentPlanDetails entity = new LoanRepaymentPlanDetails(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.insert(entity); + LoanRepaymentPlanDetails planDetails = fetchBySid(entity.getSid()); + if (null != planDetails) { + LoanRepaymentHistoryDto loanRepaymentHistoryDto = new LoanRepaymentHistoryDto(); + loanRepaymentHistoryDto.setPlanDetailSid(entity.getSid()); + loanRepaymentHistoryDto.setBuckle("未申请"); + loanRepaymentHistoryDto.setBuckleKey("001"); + loanRepaymentHistoryDto.setScheduleSid(planDetails.getScheduleSid()); + loanRepaymentHistoryService.saveHistory(loanRepaymentHistoryDto); + } + return rb.success().setData(entity.getSid()); + } + + @Transactional(rollbackFor = Exception.class) + public ResultBean deletePlanDetails(String scheduleSid) { + ResultBean rb = ResultBean.fireFail(); + int i = baseMapper.deletePlanDetails(scheduleSid); + loanRepaymentHistoryService.deleteHistory(scheduleSid); + return rb.success(); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java index 2ef5f0491d..c6b2b68ed8 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java @@ -31,6 +31,7 @@ import com.yxt.anrui.portal.api.sysuser.SysUserInfoVo; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicyVo; import com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.LoanMortgageInformationTransactDto; +import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; @@ -38,6 +39,8 @@ import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherp import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation; import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationQuery; import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo; +import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; +import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService; import com.yxt.anrui.riskcenter.biz.loansolutionsotherpolicy.LoanSolutionsOtherpolicyService; import com.yxt.anrui.riskcenter.biz.loanwarrantinformation.LoanWarrantInformationService; @@ -103,6 +106,9 @@ public class LoanRepaymentScheduleService extends MybatisBaseService mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); + List otherDays = new ArrayList<>(); + String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); + String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); + String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); + String otherPeriod = ""; + String otherDate = ""; + String otherFirstPay = ""; + String otherMidPay = ""; + String otherLastPay = ""; + String deptSid = ""; + String dept = ""; + String useOrgName = ""; + String useOrgSid = ""; + String orgSidPath = ""; + String bankContractNo = ""; + String customer = ""; + String customerSid = ""; + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + otherPeriod = scheduleDetails.getOtherPeriod(); + otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); + otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); + otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); + otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); + otherDays = returnRepayDate(otherDate, otherPeriod); + } + if (null != busSalesOrder) { + if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { + customer = busSalesOrder.getCustomerName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { + customerSid = busSalesOrder.getCustomerSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { + deptSid = busSalesOrder.getOrgSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { + dept = busSalesOrder.getOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { + orgSidPath = busSalesOrder.getOrgSidPath(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { + useOrgName = busSalesOrder.getUseOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { + useOrgSid = busSalesOrder.getUseOrgSid(); + } + } + BusSalesOrderLoancontractDetailsVo loancontractVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(dto.getSalesOrderSid()).getData(); + if (null != loancontractVo) { + if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { + bankContractNo = loancontractVo.getBankContractNo(); + } + } + List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); + if (!vehicles.isEmpty()) { + for (BusSalesOrderVehicle vehicle : vehicles) { + String linkNo = vehicle.getLinkNo(); + String busVinSid = vehicle.getSid(); + //主方案 + for (int i = 0; i < mainPeriod; i++) { + LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); + mainDto.setSalesOrderSid(salesOrderSid); + mainDto.setLoanContractNo(loanContractNo); + mainDto.setLoanContractSid(loanContractSid); + mainDto.setPolicyName(policyName); + mainDto.setBankContractNo(bankContractNo); + mainDto.setCreateBySid(createBySid); + mainDto.setCustomer(customer); + mainDto.setCustomerSid(customerSid); + mainDto.setBorrowerSid(borrowerSid); + mainDto.setBorrowerName(borrowerName); + mainDto.setPeriod(String.valueOf(i + 1)); + mainDto.setScheduleSid(scheduleDetails.getSid()); + mainDto.setBankName(bankName); + mainDto.setDept(dept); + mainDto.setDeptSid(deptSid); + mainDto.setUseOrgSid(useOrgSid); + mainDto.setUseOrgName(useOrgName); + mainDto.setOrgSidPath(orgSidPath); + mainDto.setBusVinSid(busVinSid); + mainDto.setVinNo(linkNo); + mainDto.setSalesUserSid(staffSid); + mainDto.setStaffName(staffName); + mainDto.setPolicyOrOther("0"); + if (i == 0) { + mainDto.setDueMoney(mainFirstRepay); + } else if (i == mainPeriod - 1) { + mainDto.setDueMoney(mainLastRepay); + } else { + mainDto.setDueMoney(mainMidRepay); + } + if (!mainDays.isEmpty()) { + mainDto.setDueDate(mainDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(mainDto); + } + //其他融 + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + for (int i = 0; i < Integer.parseInt(otherPeriod); i++) { + LoanRepaymentPlanDetailsDto otherDto = new LoanRepaymentPlanDetailsDto(); + otherDto.setSalesOrderSid(salesOrderSid); + otherDto.setLoanContractNo(loanContractNo); + otherDto.setLoanContractSid(loanContractSid); + otherDto.setPolicyName(policyName); + otherDto.setBankContractNo(bankContractNo); + otherDto.setCreateBySid(createBySid); + otherDto.setCustomer(customer); + otherDto.setCustomerSid(customerSid); + otherDto.setBorrowerSid(borrowerSid); + otherDto.setBorrowerName(borrowerName); + otherDto.setPeriod(String.valueOf(i + 1)); + otherDto.setScheduleSid(scheduleDetails.getSid()); + otherDto.setBankName(bankName); + otherDto.setDept(dept); + otherDto.setDeptSid(deptSid); + otherDto.setUseOrgSid(useOrgSid); + otherDto.setUseOrgName(useOrgName); + otherDto.setOrgSidPath(orgSidPath); + otherDto.setBusVinSid(busVinSid); + otherDto.setVinNo(linkNo); + otherDto.setSalesUserSid(staffSid); + otherDto.setStaffName(staffName); + otherDto.setPolicyOrOther("1"); + if (i == 0) { + otherDto.setDueMoney(otherFirstPay); + } else if (i == Integer.parseInt(otherPeriod) - 1) { + otherDto.setDueMoney(otherLastPay); + } else { + otherDto.setDueMoney(otherMidPay); + } + if (!otherDays.isEmpty()) { + otherDto.setDueDate(otherDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(otherDto); + } + } + + } + } + } + } else { LoanRepaymentSchedule entity = new LoanRepaymentSchedule(); BeanUtil.copyProperties(dto, entity, "id", "sid"); @@ -324,6 +491,163 @@ public class LoanRepaymentScheduleService extends MybatisBaseService mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); + List otherDays = new ArrayList<>(); + String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); + String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); + String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); + String otherPeriod = ""; + String otherDate = ""; + String otherFirstPay = ""; + String otherMidPay = ""; + String otherLastPay = ""; + String deptSid = ""; + String dept = ""; + String useOrgName = ""; + String useOrgSid = ""; + String orgSidPath = ""; + String bankContractNo = ""; + String customer = ""; + String customerSid = ""; + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + otherPeriod = scheduleDetails.getOtherPeriod(); + otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); + otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); + otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); + otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); + otherDays = returnRepayDate(otherDate, otherPeriod); + } + if (null != busSalesOrder) { + if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { + customer = busSalesOrder.getCustomerName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { + customerSid = busSalesOrder.getCustomerSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { + deptSid = busSalesOrder.getOrgSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { + dept = busSalesOrder.getOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { + orgSidPath = busSalesOrder.getOrgSidPath(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { + useOrgName = busSalesOrder.getUseOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { + useOrgSid = busSalesOrder.getUseOrgSid(); + } + } + if (null != loancontractVo) { + if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { + bankContractNo = loancontractVo.getBankContractNo(); + } + } + List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); + if (!vehicles.isEmpty()) { + for (BusSalesOrderVehicle vehicle : vehicles) { + String linkNo = vehicle.getLinkNo(); + String busVinSid = vehicle.getSid(); + //主方案 + for (int i = 0; i < mainPeriod; i++) { + LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); + mainDto.setSalesOrderSid(salesOrderSid); + mainDto.setLoanContractNo(loanContractNo); + mainDto.setLoanContractSid(loanContractSid); + mainDto.setPolicyName(policyName); + mainDto.setBankContractNo(bankContractNo); + mainDto.setCreateBySid(createBySid); + mainDto.setCustomer(customer); + mainDto.setCustomerSid(customerSid); + mainDto.setBorrowerSid(borrowerSid); + mainDto.setBorrowerName(borrowerName); + mainDto.setPeriod(String.valueOf(i + 1)); + mainDto.setScheduleSid(entity.getSid()); + mainDto.setBankName(bankName); + mainDto.setDept(dept); + mainDto.setDeptSid(deptSid); + mainDto.setUseOrgSid(useOrgSid); + mainDto.setUseOrgName(useOrgName); + mainDto.setOrgSidPath(orgSidPath); + mainDto.setBusVinSid(busVinSid); + mainDto.setVinNo(linkNo); + mainDto.setSalesUserSid(staffSid); + mainDto.setStaffName(staffName); + mainDto.setPolicyOrOther("0"); + if (i == 0) { + mainDto.setDueMoney(mainFirstRepay); + } else if (i == mainPeriod - 1) { + mainDto.setDueMoney(mainLastRepay); + } else { + mainDto.setDueMoney(mainMidRepay); + } + if (!mainDays.isEmpty()) { + mainDto.setDueDate(mainDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(mainDto); + } + //其他融 + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + for (int i = 0; i < Integer.parseInt(otherPeriod); i++) { + LoanRepaymentPlanDetailsDto otherDto = new LoanRepaymentPlanDetailsDto(); + otherDto.setSalesOrderSid(salesOrderSid); + otherDto.setLoanContractNo(loanContractNo); + otherDto.setLoanContractSid(loanContractSid); + otherDto.setPolicyName(policyName); + otherDto.setBankContractNo(bankContractNo); + otherDto.setCreateBySid(createBySid); + otherDto.setCustomer(customer); + otherDto.setCustomerSid(customerSid); + otherDto.setBorrowerSid(borrowerSid); + otherDto.setBorrowerName(borrowerName); + otherDto.setPeriod(String.valueOf(i + 1)); + otherDto.setScheduleSid(entity.getSid()); + otherDto.setBankName(bankName); + otherDto.setDept(dept); + otherDto.setDeptSid(deptSid); + otherDto.setUseOrgSid(useOrgSid); + otherDto.setUseOrgName(useOrgName); + otherDto.setOrgSidPath(orgSidPath); + otherDto.setBusVinSid(busVinSid); + otherDto.setVinNo(linkNo); + otherDto.setSalesUserSid(staffSid); + otherDto.setStaffName(staffName); + otherDto.setPolicyOrOther("1"); + if (i == 0) { + otherDto.setDueMoney(otherFirstPay); + } else if (i == Integer.parseInt(otherPeriod) - 1) { + otherDto.setDueMoney(otherLastPay); + } else { + otherDto.setDueMoney(otherMidPay); + } + if (!otherDays.isEmpty()) { + otherDto.setDueDate(otherDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(otherDto); + } + } + + } + } + } // 使用多线程推送站内信发送短信 try { ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()