Browse Source

生成还款计划表时,生成还款计划明细,已经还款记录表

master
fanzongzhe 2 years ago
parent
commit
70490a6af3
  1. 37
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistory.java
  2. 34
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryDto.java
  3. 35
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeign.java
  4. 24
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymenthistory/LoanRepaymentHistoryFeignFallback.java
  5. 71
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetails.java
  6. 67
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsDto.java
  7. 40
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeign.java
  8. 29
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentplandetails/LoanRepaymentPlanDetailsFeignFallback.java
  9. 19
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.java
  10. 11
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml
  11. 36
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryRest.java
  12. 35
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryService.java
  13. 28
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.java
  14. 11
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml
  15. 36
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsRest.java
  16. 97
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsService.java
  17. 324
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

37
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;
}

34
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;
}

35
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<String> saveHistory(@RequestBody LoanRepaymentHistoryDto dto);
@ApiOperation("删除还款记录")
@DeleteMapping("/deleteHistory")
public ResultBean deleteHistory(@RequestParam("scheduleSid") String scheduleSid);
}

24
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<String> saveHistory(LoanRepaymentHistoryDto dto) {
return null;
}
@Override
public ResultBean deleteHistory(String scheduleSid) {
return null;
}
}

71
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;
}

67
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;
}

40
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<String> savePlanDetails(@RequestBody LoanRepaymentPlanDetailsDto dto);
@ApiOperation("删除还款计划表明细")
@DeleteMapping("/deletePlanDetails")
public ResultBean deletePlanDetails(@RequestParam("scheduleSid") String scheduleSid);
}

29
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<String> savePlanDetails(LoanRepaymentPlanDetailsDto dto) {
return null;
}
@Override
public ResultBean deletePlanDetails(String scheduleSid) {
return null;
}
}

19
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<LoanRepaymentHistory> {
int deleteHistory(String scheduleSid);
}

11
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryMapper">
<delete id="deleteHistory">
DELETE
FROM loan_repayment_history
WHERE scheduleSid = #{scheduleSid}
</delete>
</mapper>

36
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<String> saveHistory(LoanRepaymentHistoryDto dto) {
return loanRepaymentHistoryService.saveHistory(dto);
}
@Override
public ResultBean deleteHistory(String scheduleSid) {
return loanRepaymentHistoryService.deleteHistory(scheduleSid);
}
}

35
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<LoanRepaymentHistoryMapper, LoanRepaymentHistory> {
public ResultBean<String> saveHistory(LoanRepaymentHistoryDto dto) {
ResultBean<String> 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();
}
}

28
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<LoanRepaymentPlanDetails> {
int deletePlanDetails(String scheduleSid);
}

11
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentplandetails/LoanRepaymentPlanDetailsMapper.xml

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsMapper">
<delete id="deletePlanDetails">
DELETE
FROM loan_repayment_plan_details
WHERE scheduleSid = #{scheduleSid}
</delete>
</mapper>

36
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<String> savePlanDetails(LoanRepaymentPlanDetailsDto dto) {
return loanRepaymentPlanDetailsService.savePlanDetails(dto);
}
@Override
public ResultBean deletePlanDetails(String scheduleSid) {
return loanRepaymentPlanDetailsService.deletePlanDetails(scheduleSid);
}
}

97
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<LoanRepaymentPlanDetailsMapper, LoanRepaymentPlanDetails> {
@Autowired
private LoanRepaymentHistoryService loanRepaymentHistoryService;
@Transactional(rollbackFor = Exception.class)
public ResultBean<String> savePlanDetails(LoanRepaymentPlanDetailsDto dto) {
ResultBean<String> 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();
}
}

324
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<LoanRepayme
private MessageFeign messageFeign;
@Autowired
private LoanWarrantInformationService loanWarrantInformationService;
@Autowired
private LoanRepaymentPlanDetailsService loanRepaymentPlanDetailsService;
/**
* 根据销售订单SID生成还款计划表回显
@ -275,6 +281,167 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
loanRepaymentSchedule.setLoanContractSid(dto.getSalesOrderSid());
loanRepaymentSchedule.setSalesOrderSid(orderSid);
baseMapper.updateById(loanRepaymentSchedule);
loanRepaymentPlanDetailsService.deletePlanDetails(loanRepaymentSchedule.getSid());
BusSalesOrder busSalesOrder = busSalesOrderFeign.fetchBySid(orderSid).getData();
//新增还款计划明细
LoanRepaymentSchedule scheduleDetails = fetchBySid(loanRepaymentSchedule.getSid());
if (null != scheduleDetails) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String createBySid = scheduleDetails.getCreateBySid();
String staffSid = scheduleDetails.getStaffSid();
String bankName = scheduleDetails.getBankName();
String borrowerSid = scheduleDetails.getBorrowerSid();
String borrowerName = scheduleDetails.getBorrowerName();
String staffName = scheduleDetails.getStaffName();
String salesOrderSid = scheduleDetails.getSalesOrderSid();
String policyName = scheduleDetails.getPolicyName();
String loanContractSid = scheduleDetails.getLoanContractSid();
String loanContractNo = scheduleDetails.getLoanContractNo();
int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod());
String mainDate = sdf.format(scheduleDetails.getMainRepayDate());
List<String> mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod());
List<String> 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<BusSalesOrderVehicle> 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<LoanRepayme
}
}
baseMapper.insert(entity);
//新增还款计划明细
LoanRepaymentSchedule scheduleDetails = fetchBySid(entity.getSid());
if (null != scheduleDetails) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String createBySid = scheduleDetails.getCreateBySid();
String staffSid = scheduleDetails.getStaffSid();
String bankName = scheduleDetails.getBankName();
String borrowerSid = scheduleDetails.getBorrowerSid();
String borrowerName = scheduleDetails.getBorrowerName();
String staffName = scheduleDetails.getStaffName();
String salesOrderSid = scheduleDetails.getSalesOrderSid();
String policyName = scheduleDetails.getPolicyName();
String loanContractSid = scheduleDetails.getLoanContractSid();
String loanContractNo = scheduleDetails.getLoanContractNo();
int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod());
String mainDate = sdf.format(scheduleDetails.getMainRepayDate());
List<String> mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod());
List<String> 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<BusSalesOrderVehicle> 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()

Loading…
Cancel
Save