催收金额、导出列表数据筛选等催收模块以及客户小程序已贷款金额、能否贷款状态等客户小程序模块接口完善

master
river 4 years ago
parent 57bc5bb8de
commit a65fc3e428
  1. 3
      dq-financial-crms/src/main/java/com/daqing/financial/crms/model/response/ApplicationRecordResponse.java
  2. 15
      dq-financial-crms/src/main/java/com/daqing/financial/crms/service/impl/CustomerAppletServiceImpl.java
  3. 2
      dq-financial-crms/src/main/resources/bootstrap.properties
  4. 55
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/AlCollectionController.java
  5. 11
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/AlCollectionMapper.java
  6. 3
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/AlCollectionListRequest.java
  7. 9
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/AlCollectionRequest.java
  8. 3
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/DgLoanCommitteeConsiderRequest.java
  9. 70
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/AlCollectionListResponse.java
  10. 18
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/AlCollectionResponse.java
  11. 1
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/AlRepaymentCountRes.java
  12. 3
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgComplianceInvestigationResponse.java
  13. 3
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgLoanCommitteeConsiderInfoResponse.java
  14. 3
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgLoanCommitteeConsiderResponse.java
  15. 3
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgStatisticsExcelRefuseResponse.java
  16. 3
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgStatisticsExcelResponse.java
  17. 3
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgStatisticsListRefuseResponse.java
  18. 3
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgStatisticsListResponse.java
  19. 3
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgWorkConferenceResponse.java
  20. 8
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IAlCollectionService.java
  21. 196
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/AlCollectionServiceImpl.java
  22. 4
      dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgLoanNoticeServiceImpl.java
  23. 2
      dq-financial-guarantee/src/main/resources/bootstrap.properties
  24. 43
      dq-financial-guarantee/src/main/resources/mapper/guarantee/AlCollectionMapper.xml
  25. 4
      dq-financial-guarantee/src/main/resources/mapper/guarantee/AlRepaymentEntryMapper.xml
  26. 2
      dq-financial-hrms-auth/src/main/resources/bootstrap.properties
  27. 2
      dq-financial-hrms/src/main/resources/bootstrap.properties
  28. 3
      dq-framework-model/src/main/java/com/daqing/framework/domain/crms/ext/ApplicationRecordPO.java
  29. 5
      dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/AlRepaymentEntry.java
  30. 3
      dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgLoanCommitteeConsider.java
  31. 76
      dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/po/AlCollectionListPO.java
  32. 6
      dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/po/DgStatisticsPO.java
  33. 3
      dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/po/DgStatisticsRefusePO.java
  34. 3
      dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/po/DgWorkConferencePO.java
  35. 48
      dq-framework-utils/src/main/java/com/daqing/framework/utils/excel/CollectionConverter.java
  36. 2
      dq-govern-gateway/src/main/resources/bootstrap.properties

@ -7,6 +7,7 @@ import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -29,7 +30,7 @@ public class ApplicationRecordResponse implements Serializable {
private String amountWide; private String amountWide;
@ApiModelProperty("申请额度") @ApiModelProperty("申请额度")
private Double applyAmount; private BigDecimal applyAmount;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("申请日期") @ApiModelProperty("申请日期")

@ -37,6 +37,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
/** /**
@ -367,13 +368,15 @@ public class CustomerAppletServiceImpl extends ServiceImpl<CustomerAppletDao, Cu
*/ */
@Override @Override
public Map getApplyMount() { public Map getApplyMount() {
Double company = 0.00; // 这个是否填小数没有影响,主要要是看赋予或计算的值是否包含小数
Map<String, Double> map = new HashMap<>(); BigDecimal company = new BigDecimal(0.00);
// Double company = 0.00;
Map<String, BigDecimal> map = new HashMap<>();
map.put("company", company); map.put("company", company);
// 个人类型暂时没有 // 个人类型暂时没有
map.put("personal", 0.00); map.put("personal", new BigDecimal(0.00));
// 是否与业务正在申请中 // 是否与业务正在申请中
map.put("underway", 0.00); map.put("underway", new BigDecimal(0));
Integer customerId = this.getBaseMapper().getCustomerId(Integer.parseInt(this.getUserId()), 1); Integer customerId = this.getBaseMapper().getCustomerId(Integer.parseInt(this.getUserId()), 1);
// 如果查询不到认证信息,直接返回0.00 // 如果查询不到认证信息,直接返回0.00
if (customerId == null) { if (customerId == null) {
@ -383,7 +386,7 @@ public class CustomerAppletServiceImpl extends ServiceImpl<CustomerAppletDao, Cu
// 正在进行贷款数量 // 正在进行贷款数量
Integer count= this.getBaseMapper().businessUnderwayCount(companyId); Integer count= this.getBaseMapper().businessUnderwayCount(companyId);
if (count > 0) { if (count > 0) {
map.put("underway", 1.00); map.put("underway", new BigDecimal(1));
} }
// 查询申请记录信息 // 查询申请记录信息
List<ApplicationRecordPO> applicationRecordPOList = this.getBaseMapper().getApplyMount(companyId); List<ApplicationRecordPO> applicationRecordPOList = this.getBaseMapper().getApplyMount(companyId);
@ -391,7 +394,7 @@ public class CustomerAppletServiceImpl extends ServiceImpl<CustomerAppletDao, Cu
return map; return map;
} }
for (ApplicationRecordPO applicationRecordPO : applicationRecordPOList) { for (ApplicationRecordPO applicationRecordPO : applicationRecordPOList) {
company += applicationRecordPO.getApplyAmount() == null ? 0.00 : applicationRecordPO.getApplyAmount(); company = company.add(applicationRecordPO.getApplyAmount() == null ? new BigDecimal(0.00) : applicationRecordPO.getApplyAmount());
} }
map.put("company", company); map.put("company", company);
} }

@ -1,7 +1,7 @@
#服务名称 #服务名称
spring.application.name=dq-financial-crms spring.application.name=dq-financial-crms
#配置中心地址 #配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.server-addr=192.168.31.140:8848
spring.cloud.nacos.config.file-extension=yml spring.cloud.nacos.config.file-extension=yml
#redis配置 #redis配置
spring.redis.host=127.0.0.1 spring.redis.host=127.0.0.1

@ -1,8 +1,11 @@
package com.daqing.financial.guarantee.controller; package com.daqing.financial.guarantee.controller;
import com.daqing.financial.guarantee.model.request.AlCollectionListRequest;
import com.daqing.financial.guarantee.model.request.AlCollectionRequest; import com.daqing.financial.guarantee.model.request.AlCollectionRequest;
import com.daqing.financial.guarantee.model.response.AlCollectionListResponse;
import com.daqing.financial.guarantee.model.response.AlCollectionResponse; import com.daqing.financial.guarantee.model.response.AlCollectionResponse;
import com.daqing.financial.guarantee.model.response.MoreOverdueDetailResponse;
import com.daqing.financial.guarantee.service.IAlCollectionService; import com.daqing.financial.guarantee.service.IAlCollectionService;
import com.daqing.framework.domain.guarantee.AlCollection; import com.daqing.framework.domain.guarantee.AlCollection;
import com.daqing.framework.model.response.ResponseResult; import com.daqing.framework.model.response.ResponseResult;
@ -12,6 +15,11 @@ import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
/** /**
* <p> * <p>
* 保后催收 前端控制器 * 保后催收 前端控制器
@ -34,7 +42,8 @@ public class AlCollectionController {
@GetMapping("/list") @GetMapping("/list")
@ApiOperation(value = "催收管理列表", notes = "催收管理列表", response = AlCollectionResponse.class) @ApiOperation(value = "催收管理列表", notes = "催收管理列表", response = AlCollectionResponse.class)
public ResponseResult list(@RequestParam("page") Integer page, @RequestParam("size") Integer size, public ResponseResult list(@RequestParam("page") Integer page, @RequestParam("size") Integer size,
@ApiParam("客户编号/名称") String codeOrName, @ApiParam("状态") Integer status) { @RequestParam(name = "codeOrName", required = false) String codeOrName,
@RequestParam(name = "status", required = false) Integer status) {
return ResponseResult.SUCCESS(alCollectionService.list(page, size, codeOrName, status)); return ResponseResult.SUCCESS(alCollectionService.list(page, size, codeOrName, status));
} }
@ -43,7 +52,7 @@ public class AlCollectionController {
*/ */
@PostMapping("/collection") @PostMapping("/collection")
@ApiOperation(value = "催收", notes = "催收") @ApiOperation(value = "催收", notes = "催收")
public ResponseResult collection(@RequestBody AlCollectionRequest alCollectionRequest) { public ResponseResult collection(@RequestBody @Valid AlCollectionRequest alCollectionRequest) {
Boolean result = alCollectionService.collection(alCollectionRequest); Boolean result = alCollectionService.collection(alCollectionRequest);
return result ? ResponseResult.SUCCESS() : ResponseResult.FAIL(); return result ? ResponseResult.SUCCESS() : ResponseResult.FAIL();
@ -58,4 +67,46 @@ public class AlCollectionController {
return ResponseResult.SUCCESS(alCollectionService.overdueDetail(insuranceId)); return ResponseResult.SUCCESS(alCollectionService.overdueDetail(insuranceId));
} }
/**
* 催收列表
*/
@PostMapping("/collection/list")
@ApiOperation(value = "催收列表", notes = "催收列表", response = AlCollectionListResponse.class)
public ResponseResult collectionList(@RequestBody AlCollectionListRequest alCollectionListRequest) {
return ResponseResult.SUCCESS(alCollectionService.collectionList(alCollectionListRequest));
}
/**
* 查看时的催收详情
*/
@GetMapping("/examine/detail")
@ApiOperation(value = "查看时的催收详情", notes = "查看时的催收详情", response = MoreOverdueDetailResponse.class)
public ResponseResult moreOverdueDetail(@RequestParam("id") Integer id) {
return ResponseResult.SUCCESS(alCollectionService.moreOverdueDetail(id));
}
/**
* 催收管理列表导出
*/
@ApiOperation(value = "催收管理列表导出", notes = "催收管理列表导出")
@GetMapping("/list/export/excel")
public ResponseResult listExportExcel(@RequestParam("insuranceIds") List<Integer> insuranceIds, HttpServletResponse response) throws IOException {
alCollectionService.listExportExcel(insuranceIds, response);
return ResponseResult.SUCCESS();
}
/**
* 催收列表导出
*/
@ApiOperation(value = "催收列表导出", notes = "催收列表导出")
@PostMapping("/collection/list/export/excel")
public ResponseResult collectionListExportExcel(@RequestBody List<Integer> ids, HttpServletResponse response) throws IOException {
alCollectionService.collectionListExportExcel(ids, response);
return ResponseResult.SUCCESS();
}
} }

@ -3,9 +3,11 @@ package com.daqing.financial.guarantee.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.daqing.financial.guarantee.model.request.AlCollectionListRequest;
import com.daqing.financial.guarantee.model.response.MoreOverdueDetailResponse; import com.daqing.financial.guarantee.model.response.MoreOverdueDetailResponse;
import com.daqing.financial.guarantee.model.response.OverdueDetailResponse; import com.daqing.financial.guarantee.model.response.OverdueDetailResponse;
import com.daqing.framework.domain.guarantee.AlCollection; import com.daqing.framework.domain.guarantee.AlCollection;
import com.daqing.framework.domain.guarantee.po.AlCollectionListPO;
import com.daqing.framework.domain.guarantee.po.AlCollectionPO; import com.daqing.framework.domain.guarantee.po.AlCollectionPO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -27,13 +29,16 @@ public interface AlCollectionMapper extends BaseMapper<AlCollection> {
IPage<AlCollectionPO> list(@Param("page") Page page, @Param("codeOrName") String codeOrName, IPage<AlCollectionPO> list(@Param("page") Page page, @Param("codeOrName") String codeOrName,
@Param("status") Integer status); @Param("status") Integer status);
Boolean collection(@Param("collection") AlCollection alCollection); // collection是个关键字,尽量不要用,特别是别名
Boolean collection(@Param("ac") AlCollection alCollection);
OverdueDetailResponse getOverdueDetailByInsuranceId(Integer insuranceId); OverdueDetailResponse getOverdueDetailByInsuranceId(Integer insuranceId);
List<AlCollection> collectionList(String codeOrName);
MoreOverdueDetailResponse moreOverdueDetail(Integer id); MoreOverdueDetailResponse moreOverdueDetail(Integer id);
Integer getInsuranceIdById(Integer id); Integer getInsuranceIdById(Integer id);
IPage<AlCollectionListPO> collectionList(@Param("page") Page page, @Param("acr") AlCollectionListRequest alCollectionListRequest);
List<AlCollectionListPO> collectionListExcel(@Param("ids") List<Integer> ids);
} }

@ -1,5 +1,6 @@
package com.daqing.financial.guarantee.model.request; package com.daqing.financial.guarantee.model.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.ToString; import lombok.ToString;
@ -23,9 +24,11 @@ public class AlCollectionListRequest implements Serializable {
@ApiModelProperty("size") @ApiModelProperty("size")
private Integer size; private Integer size;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("开始时间") @ApiModelProperty("开始时间")
private Date startTime; private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("结束时间") @ApiModelProperty("结束时间")
private Date endTime; private Date endTime;

@ -5,6 +5,9 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.ToString; import lombok.ToString;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
@ -22,15 +25,21 @@ public class AlCollectionRequest implements Serializable {
private Integer insuranceId; private Integer insuranceId;
@ApiModelProperty("催收方式:1->电话催收;2->上门/外访") @ApiModelProperty("催收方式:1->电话催收;2->上门/外访")
@Min(value = 1, message = "参数格式不正确")
@Max(value = 2, message = "参数格式不正确")
private Integer collectionMethod; private Integer collectionMethod;
@ApiModelProperty("催收时间") @ApiModelProperty("催收时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@NotNull(message = "请选择催收时间")
private Date collectionTime; private Date collectionTime;
@ApiModelProperty("催收反馈") @ApiModelProperty("催收反馈")
@NotNull(message = "请输入催收反馈")
private String collectionFeedback; private String collectionFeedback;
@ApiModelProperty("附件") @ApiModelProperty("附件")
@NotNull(message = "请上传催收附件")
private String enclosureFile; private String enclosureFile;
} }

@ -7,6 +7,7 @@ import lombok.ToString;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -30,7 +31,7 @@ public class DgLoanCommitteeConsiderRequest implements Serializable {
private String additionalItems; private String additionalItems;
@ApiModelProperty("贷款金额") @ApiModelProperty("贷款金额")
private Double loanMoney; private BigDecimal loanMoney;
@ApiModelProperty("贷款期限") @ApiModelProperty("贷款期限")
private String loanTern; private String loanTern;

@ -0,0 +1,70 @@
package com.daqing.financial.guarantee.model.response;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 催收列表返回类
*
* @auther River
* @date 2021/3/23 10:39
*/
@Data
@ToString
public class AlCollectionListResponse extends BaseRowModel implements Serializable {
@ExcelIgnore
@ApiModelProperty("id")
private Integer id;
@ExcelProperty(value = "客户编号", index = 0)
@ApiModelProperty("客户编号")
private String code;
@ExcelProperty(value = "客户名称", index = 1)
@ApiModelProperty("客户名称")
private String name;
@ExcelProperty(value = "逾期金额", index = 2)
@ApiModelProperty("逾期金额")
private BigDecimal overdueAmount;
@ExcelProperty(value = "逾期利息", index = 3)
@ApiModelProperty("逾期利息")
private BigDecimal overdueInterest;
@ExcelProperty(value = "其他费用", index = 4)
@ApiModelProperty("其他费用")
private BigDecimal otherExpenses;
@ExcelProperty(value = "逾期次数", index = 5)
@ApiModelProperty("逾期次数")
private Integer overduePeriods;
@ExcelProperty(value = "催收方法", index = 6)
@ApiModelProperty("催收方法")
private Integer collectionMethod;
@ExcelProperty(value = "催收人", index = 7)
@ApiModelProperty("催收人")
private String collectionUserName;
@ExcelProperty(value = "催收时间", index = 8)
@ApiModelProperty("催收时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date collectionTime;
@ExcelProperty(value = "催收反馈", index = 9)
@ApiModelProperty("催收反馈")
private String collectionFeedback;
}

@ -1,5 +1,9 @@
package com.daqing.financial.guarantee.model.response; package com.daqing.financial.guarantee.model.response;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
import com.daqing.framework.utils.excel.CollectionConverter;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.ToString; import lombok.ToString;
@ -15,41 +19,53 @@ import java.math.BigDecimal;
*/ */
@Data @Data
@ToString @ToString
public class AlCollectionResponse implements Serializable { public class AlCollectionResponse extends BaseRowModel implements Serializable {
@ExcelIgnore
@ApiModelProperty("id") @ApiModelProperty("id")
private Integer id; private Integer id;
@ExcelProperty(value = "客户编号", index = 0)
@ApiModelProperty("客户编号") @ApiModelProperty("客户编号")
private String code; private String code;
@ExcelProperty(value = "客户名称", index = 1)
@ApiModelProperty("客户名称") @ApiModelProperty("客户名称")
private String name; private String name;
@ExcelProperty(value = "联系电话", index = 2)
@ApiModelProperty("联系电话") @ApiModelProperty("联系电话")
private String phone; private String phone;
@ExcelProperty(value = "业务类别", index = 3)
@ApiModelProperty("业务类别") @ApiModelProperty("业务类别")
private String type; private String type;
@ExcelProperty(value = "担保额度", index = 4)
@ApiModelProperty("担保额度") @ApiModelProperty("担保额度")
private BigDecimal amount; private BigDecimal amount;
@ExcelProperty(value = "逾期期数", index = 5)
@ApiModelProperty("逾期期数") @ApiModelProperty("逾期期数")
private Integer overduePeriods; private Integer overduePeriods;
@ExcelProperty(value = "逾期额度", index = 6)
@ApiModelProperty("逾期额度") @ApiModelProperty("逾期额度")
private BigDecimal overdueAmount; private BigDecimal overdueAmount;
@ExcelProperty(value = "逾期利息", index = 7)
@ApiModelProperty("逾期利息") @ApiModelProperty("逾期利息")
private BigDecimal overdueInterest; private BigDecimal overdueInterest;
@ExcelProperty(value = "所属部门", index = 8)
@ApiModelProperty("所属部门") @ApiModelProperty("所属部门")
private String department; private String department;
@ExcelProperty(value = "催收次数", index = 9)
@ApiModelProperty("催收次数") @ApiModelProperty("催收次数")
private Integer numberOfCollection; private Integer numberOfCollection;
@ExcelProperty(value = "还款状态", index = 10, converter = CollectionConverter.class)
@ApiModelProperty("状态,1->还款中;2->已逾期;3->已还清;4->已结项") @ApiModelProperty("状态,1->还款中;2->已逾期;3->已还清;4->已结项")
private Integer status; private Integer status;
} }

@ -3,7 +3,6 @@ package com.daqing.financial.guarantee.model.response;
import com.alibaba.excel.metadata.BaseRowModel; import com.alibaba.excel.metadata.BaseRowModel;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import org.apache.poi.hpsf.Decimal;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;

@ -11,6 +11,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -45,7 +46,7 @@ public class DgComplianceInvestigationResponse extends BaseRowModel implements S
@ExcelProperty(value = "金额", index = 4) @ExcelProperty(value = "金额", index = 4)
@ApiModelProperty("金额") @ApiModelProperty("金额")
private Double applyAmount; private BigDecimal applyAmount;
@ExcelProperty(value = "期限", index = 5) @ExcelProperty(value = "期限", index = 5)
@ApiModelProperty("期限") @ApiModelProperty("期限")

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -33,7 +34,7 @@ public class DgLoanCommitteeConsiderInfoResponse implements Serializable {
* 贷款金额贷审会意见 * 贷款金额贷审会意见
*/ */
@ApiModelProperty("贷款金额(贷审会意见)") @ApiModelProperty("贷款金额(贷审会意见)")
private Integer loanMoney; private BigDecimal loanMoney;
/** /**
* 贷款期限贷审会意见 * 贷款期限贷审会意见

@ -12,6 +12,7 @@ import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -46,7 +47,7 @@ public class DgLoanCommitteeConsiderResponse extends BaseRowModel implements Ser
@ExcelProperty(value = "金额" , index = 4) @ExcelProperty(value = "金额" , index = 4)
@ApiModelProperty("金额") @ApiModelProperty("金额")
private Double applyAmount; private BigDecimal applyAmount;
@ExcelProperty(value = "期限" , index = 5) @ExcelProperty(value = "期限" , index = 5)
@ApiModelProperty("期限") @ApiModelProperty("期限")

@ -9,6 +9,7 @@ import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -39,7 +40,7 @@ public class DgStatisticsExcelRefuseResponse extends BaseRowModel implements Ser
@ApiModelProperty("申请额度") @ApiModelProperty("申请额度")
@ExcelProperty(value = "金额", index = 4) @ExcelProperty(value = "金额", index = 4)
private Double applyAmount; private BigDecimal applyAmount;
@ApiModelProperty("申请期限") @ApiModelProperty("申请期限")
@ExcelProperty(value = "期数", index = 5) @ExcelProperty(value = "期数", index = 5)

@ -9,6 +9,7 @@ import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -39,7 +40,7 @@ public class DgStatisticsExcelResponse extends BaseRowModel implements Serializa
@ApiModelProperty("申请额度") @ApiModelProperty("申请额度")
@ExcelProperty(value = "金额", index = 4) @ExcelProperty(value = "金额", index = 4)
private Double applyAmount; private BigDecimal applyAmount;
@ApiModelProperty("申请期限") @ApiModelProperty("申请期限")
@ExcelProperty(value = "期数", index = 5) @ExcelProperty(value = "期数", index = 5)

@ -8,6 +8,7 @@ import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -39,7 +40,7 @@ public class DgStatisticsListRefuseResponse extends BaseRowModel implements Seri
@ApiModelProperty("申请额度") @ApiModelProperty("申请额度")
@ExcelProperty(value = "金额",index = 4) @ExcelProperty(value = "金额",index = 4)
private Double applyAmount; private BigDecimal applyAmount;
@ApiModelProperty("申请期限") @ApiModelProperty("申请期限")
@ExcelProperty(value = "期数",index = 5) @ExcelProperty(value = "期数",index = 5)

@ -8,6 +8,7 @@ import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -39,7 +40,7 @@ public class DgStatisticsListResponse extends BaseRowModel implements Serializab
@ApiModelProperty("申请额度") @ApiModelProperty("申请额度")
@ExcelProperty(value = "金额", index = 4) @ExcelProperty(value = "金额", index = 4)
private Double applyAmount; private BigDecimal applyAmount;
@ApiModelProperty("申请期限") @ApiModelProperty("申请期限")
@ExcelProperty(value = "期数", index = 5) @ExcelProperty(value = "期数", index = 5)

@ -12,6 +12,7 @@ import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -46,7 +47,7 @@ public class DgWorkConferenceResponse extends BaseRowModel implements Serializab
@ExcelProperty(value = "金额", index = 4) @ExcelProperty(value = "金额", index = 4)
@ApiModelProperty("金额") @ApiModelProperty("金额")
private Double applyAmount; private BigDecimal applyAmount;
@ExcelProperty(value = "期限", index = 5) @ExcelProperty(value = "期限", index = 5)
@ApiModelProperty("期限") @ApiModelProperty("期限")

@ -9,6 +9,10 @@ import com.daqing.financial.guarantee.model.response.OverdueDetailResponse;
import com.daqing.framework.domain.guarantee.AlCollection; import com.daqing.framework.domain.guarantee.AlCollection;
import com.daqing.framework.utils.PageUtils; import com.daqing.framework.utils.PageUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/** /**
* <p> * <p>
* 保后催收 服务类 * 保后催收 服务类
@ -28,4 +32,8 @@ public interface IAlCollectionService extends IService<AlCollection> {
PageUtils collectionList(AlCollectionListRequest alCollectionListRequest); PageUtils collectionList(AlCollectionListRequest alCollectionListRequest);
MoreOverdueDetailResponse moreOverdueDetail(Integer id); MoreOverdueDetailResponse moreOverdueDetail(Integer id);
void listExportExcel(List<Integer> insuranceIds, HttpServletResponse response) throws IOException;
void collectionListExportExcel(List<Integer> ids, HttpServletResponse response) throws IOException;
} }

@ -1,12 +1,18 @@
package com.daqing.financial.guarantee.service.impl; package com.daqing.financial.guarantee.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.daqing.financial.guarantee.feign.HrmsFeignService;
import com.daqing.financial.guarantee.mapper.AlCollectionMapper; import com.daqing.financial.guarantee.mapper.AlCollectionMapper;
import com.daqing.financial.guarantee.mapper.AlRepaymentEntryMapper; import com.daqing.financial.guarantee.mapper.AlRepaymentEntryMapper;
import com.daqing.financial.guarantee.model.request.AlCollectionListRequest; import com.daqing.financial.guarantee.model.request.AlCollectionListRequest;
import com.daqing.financial.guarantee.model.request.AlCollectionRequest; import com.daqing.financial.guarantee.model.request.AlCollectionRequest;
import com.daqing.financial.guarantee.model.response.AlCollectionListResponse;
import com.daqing.financial.guarantee.model.response.AlCollectionResponse; import com.daqing.financial.guarantee.model.response.AlCollectionResponse;
import com.daqing.financial.guarantee.model.response.MoreOverdueDetailResponse; import com.daqing.financial.guarantee.model.response.MoreOverdueDetailResponse;
import com.daqing.financial.guarantee.model.response.OverdueDetailResponse; import com.daqing.financial.guarantee.model.response.OverdueDetailResponse;
@ -14,11 +20,15 @@ import com.daqing.financial.guarantee.service.IAlCollectionService;
import com.daqing.framework.domain.crms.response.CrmsCode; import com.daqing.framework.domain.crms.response.CrmsCode;
import com.daqing.framework.domain.guarantee.AlCollection; import com.daqing.framework.domain.guarantee.AlCollection;
import com.daqing.framework.domain.guarantee.AlRepaymentEntry; import com.daqing.framework.domain.guarantee.AlRepaymentEntry;
import com.daqing.framework.domain.guarantee.po.AlCollectionListPO;
import com.daqing.framework.domain.guarantee.po.AlCollectionPO; import com.daqing.framework.domain.guarantee.po.AlCollectionPO;
import com.daqing.framework.domain.hrms.ext.EmployeeVO;
import com.daqing.framework.exception.ExceptionCast; import com.daqing.framework.exception.ExceptionCast;
import com.daqing.framework.model.response.CommonCode; import com.daqing.framework.model.response.CommonCode;
import com.daqing.framework.model.response.ResponseResult;
import com.daqing.framework.util.RedisUtil; import com.daqing.framework.util.RedisUtil;
import com.daqing.framework.utils.PageUtils; import com.daqing.framework.utils.PageUtils;
import com.daqing.framework.utils.excel.ExcelUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -26,11 +36,11 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.net.URLEncoder;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
@ -46,6 +56,9 @@ public class AlCollectionServiceImpl extends ServiceImpl<AlCollectionMapper, AlC
@Autowired @Autowired
private AlRepaymentEntryMapper alRepaymentEntryMapper; private AlRepaymentEntryMapper alRepaymentEntryMapper;
@Autowired
private HrmsFeignService hrmsFeignService;
/** /**
* 催收管理列表 * 催收管理列表
* *
@ -53,7 +66,7 @@ public class AlCollectionServiceImpl extends ServiceImpl<AlCollectionMapper, AlC
*/ */
@Override @Override
public PageUtils list(Integer page, Integer size, String codeOrName, Integer status) { public PageUtils list(Integer page, Integer size, String codeOrName, Integer status) {
if (page == null || size == null) { if (page == null || page < 0 || size == null || size < 0) {
page = 1; page = 1;
size = 10; size = 10;
} }
@ -73,9 +86,9 @@ public class AlCollectionServiceImpl extends ServiceImpl<AlCollectionMapper, AlC
// 逾期次数 // 逾期次数
Integer overduePeriods = 0; Integer overduePeriods = 0;
// 逾期额度 // 逾期额度
BigDecimal overdueAmount = new BigDecimal("0.00"); BigDecimal overdueAmount = new BigDecimal(0.00);
// 逾期利息 // 逾期利息
BigDecimal overdueInterest = new BigDecimal("0.00"); BigDecimal overdueInterest = new BigDecimal(0.00);
for (AlRepaymentEntry repayment : alRepaymentList) { for (AlRepaymentEntry repayment : alRepaymentList) {
if (record.getId().equals(repayment.getInsuranceId())) { if (record.getId().equals(repayment.getInsuranceId())) {
overdueAmount = overdueAmount.add(repayment.getCurrentRepayment()); overdueAmount = overdueAmount.add(repayment.getCurrentRepayment());
@ -111,11 +124,13 @@ public class AlCollectionServiceImpl extends ServiceImpl<AlCollectionMapper, AlC
alCollection.setOverduePeriods((Integer) map.get("overduePeriods")); alCollection.setOverduePeriods((Integer) map.get("overduePeriods"));
// 当前催收用户 // 当前催收用户
alCollection.setCollectionUser(Integer.parseInt(this.getUserId())); alCollection.setCollectionUser(Integer.parseInt(this.getUserId()));
// alCollection.setCollectionUser(2);
return this.getBaseMapper().collection(alCollection); return this.getBaseMapper().collection(alCollection);
} }
/** /**
* 催收详情 * 催收详情
*
* @param insuranceId 保后id * @param insuranceId 保后id
*/ */
@Override @Override
@ -131,7 +146,8 @@ public class AlCollectionServiceImpl extends ServiceImpl<AlCollectionMapper, AlC
overdueDetailResponse.setOtherExpenses((BigDecimal) map.get("otherExpenses")); overdueDetailResponse.setOtherExpenses((BigDecimal) map.get("otherExpenses"));
overdueDetailResponse.setOverduePeriods((Integer) map.get("overduePeriods")); overdueDetailResponse.setOverduePeriods((Integer) map.get("overduePeriods"));
// 还款记录 // 还款记录
IPage<AlRepaymentEntry> iPage = alRepaymentEntryMapper.pageByCondition(new Page(), null, null, insuranceId);
overdueDetailResponse.setAlRepaymentEntryList(iPage.getRecords());
return overdueDetailResponse; return overdueDetailResponse;
} }
@ -140,7 +156,37 @@ public class AlCollectionServiceImpl extends ServiceImpl<AlCollectionMapper, AlC
*/ */
@Override @Override
public PageUtils collectionList(AlCollectionListRequest alCollectionListRequest) { public PageUtils collectionList(AlCollectionListRequest alCollectionListRequest) {
return null; if (alCollectionListRequest.getInsuranceId() == null) {
ExceptionCast.cast(CommonCode.INVALID_PARAM);
}
// 分页参数
if (alCollectionListRequest.getPage() == null
|| alCollectionListRequest.getPage() < 0
|| alCollectionListRequest.getSize() == null
|| alCollectionListRequest.getSize() < 0) {
alCollectionListRequest.setPage(1);
alCollectionListRequest.setSize(10);
}
// 催收列表基本信息
IPage<AlCollectionListPO> alCollectionListPO = this.getBaseMapper().collectionList(new Page(alCollectionListRequest.getPage(), alCollectionListRequest.getSize()),
alCollectionListRequest);
// 创建返回分页类
Page<AlCollectionListResponse> iPage = new Page<>();
// 获取所有的用户id并远程转换成名称
if (alCollectionListPO.getRecords() != null && alCollectionListPO.getRecords().size() != 0) {
Integer[] userIds = new Integer[alCollectionListPO.getRecords().size()];
for (int i = 0; i < userIds.length; i++) {
userIds[i] = alCollectionListPO.getRecords().get(i).getCollectionUser();
}
ResponseResult<List<EmployeeVO>> result = hrmsFeignService.listEmpNameByUserId(userIds);
// 复制分页信息、拼装信息并返回
BeanUtils.copyProperties(alCollectionListPO, iPage);
if (result.getData() != null && result.getData().size() != 0) {
List<AlCollectionListResponse> response = this.jointName(alCollectionListPO.getRecords(), result.getData());
iPage.setRecords(response);
}
}
return new PageUtils(iPage);
} }
/** /**
@ -163,18 +209,126 @@ public class AlCollectionServiceImpl extends ServiceImpl<AlCollectionMapper, AlC
moreOverdueDetailResponse.setOtherExpenses(overdueDetailResponse.getOtherExpenses()); moreOverdueDetailResponse.setOtherExpenses(overdueDetailResponse.getOtherExpenses());
moreOverdueDetailResponse.setOverduePeriods(overdueDetailResponse.getOverduePeriods()); moreOverdueDetailResponse.setOverduePeriods(overdueDetailResponse.getOverduePeriods());
moreOverdueDetailResponse.setNumberOfCollection(overdueDetailResponse.getNumberOfCollection()); moreOverdueDetailResponse.setNumberOfCollection(overdueDetailResponse.getNumberOfCollection());
moreOverdueDetailResponse.setAlRepaymentEntryList(overdueDetailResponse.getAlRepaymentEntryList());
return moreOverdueDetailResponse; return moreOverdueDetailResponse;
} }
/**
* 催收管理列表导出
*
* @param insuranceIds 保后id集合
*/
@Override
public void listExportExcel(List<Integer> insuranceIds, HttpServletResponse response) throws IOException {
IPage<AlCollectionPO> alCollectionList = this.getBaseMapper().list(new Page(), null, null);
// 返回数据集合
List<AlCollectionResponse> alCollectionResponsesList = new ArrayList<>();
// 还款记录信息
List<AlRepaymentEntry> alRepaymentList = alRepaymentEntryMapper.listAlRepayment();
// 拼装信息
List<AlCollectionPO> records = alCollectionList.getRecords();
for (AlCollectionPO record : records) {
AlCollectionResponse alCollectionResponse = new AlCollectionResponse();
// 逾期次数
Integer overduePeriods = 0;
// 逾期额度
BigDecimal overdueAmount = new BigDecimal(0.00);
// 逾期利息
BigDecimal overdueInterest = new BigDecimal(0.00);
for (AlRepaymentEntry repayment : alRepaymentList) {
if (record.getId().equals(repayment.getInsuranceId())) {
overdueAmount = overdueAmount.add(repayment.getCurrentRepayment());
overdueInterest = overdueInterest.add(repayment.getInterest());
overduePeriods++;
}
}
BeanUtils.copyProperties(record, alCollectionResponse);
alCollectionResponse.setOverdueAmount(overdueAmount);
alCollectionResponse.setOverdueInterest(overdueInterest);
alCollectionResponse.setOverduePeriods(overduePeriods);
alCollectionResponsesList.add(alCollectionResponse);
Iterator<AlCollectionResponse> iterator = alCollectionResponsesList.iterator();
// 迭代器遍历,删除不需要的数据
while (iterator.hasNext()) {
boolean flag = false;
// Iterator类的next( )方法在同一循环中不能出现两次,会导致最后一次的游标指向空值
AlCollectionResponse next = iterator.next();
for (Integer insuranceId : insuranceIds) {
if (null != next.getId() && next.getId().equals(insuranceId)) {
flag = true;
}
}
if (!flag) {
iterator.remove();
}
}
}
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
try {
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyExcel没有关系
String fileName = URLEncoder.encode("催收管理列表数据一览表", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
WriteSheet writeSheet = EasyExcel.writerSheet(0, "template").head(AlCollectionResponse.class).build();
excelWriter.write(alCollectionResponsesList, writeSheet);
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
/**
* 催收列表导出
*
* @param ids 催收id集合
*/
@Override
public void collectionListExportExcel(List<Integer> ids, HttpServletResponse response) throws IOException {
// 导出的数据集合
List<AlCollectionListResponse> list = new ArrayList<>();
// 根据id查询出数据
List<AlCollectionListPO> alCollectionListPOS = this.getBaseMapper().collectionListExcel(ids);
if (alCollectionListPOS != null && alCollectionListPOS.size() != 0) {
Integer[] userIds = new Integer[alCollectionListPOS.size()];
for (int i = 0; i < userIds.length; i++) {
userIds[i] = alCollectionListPOS.get(i).getCollectionUser();
}
// 根据用户id查询用户姓名
ResponseResult<List<EmployeeVO>> result = hrmsFeignService.listEmpNameByUserId(userIds);
if (result.getData() != null && result.getData().size() != 0) {
// 转换用户id为姓名
list = this.jointName(alCollectionListPOS, result.getData());
}
}
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
try {
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyExcel没有关系
String fileName = URLEncoder.encode("催收列表数据一览表", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
WriteSheet writeSheet = EasyExcel.writerSheet(0, "template").head(AlCollectionListResponse.class).build();
excelWriter.write(list, writeSheet);
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
private Map<String, Object> getOverdueConditionByInsuranceId(Integer insuranceId) { private Map<String, Object> getOverdueConditionByInsuranceId(Integer insuranceId) {
List<AlRepaymentEntry> alRepaymentList = alRepaymentEntryMapper.listAlRepaymentByInsuranceId(insuranceId); List<AlRepaymentEntry> alRepaymentList = alRepaymentEntryMapper.listAlRepaymentByInsuranceId(insuranceId);
// 逾期金额 // 逾期金额
BigDecimal overdueAmount = new BigDecimal("0.00"); BigDecimal overdueAmount = new BigDecimal(0.00);
// 逾期利息 // 逾期利息
BigDecimal overdueInterest = new BigDecimal("0.00"); BigDecimal overdueInterest = new BigDecimal(0.00);
// 其他费用 // 其他费用
BigDecimal otherExpenses = new BigDecimal("0.00"); BigDecimal otherExpenses = new BigDecimal(0.00);
for (AlRepaymentEntry alRepayment : alRepaymentList) { for (AlRepaymentEntry alRepayment : alRepaymentList) {
overdueAmount = overdueAmount.add(alRepayment.getCurrentRepayment()); overdueAmount = overdueAmount.add(alRepayment.getCurrentRepayment());
overdueInterest = overdueInterest.add(alRepayment.getInterest()); overdueInterest = overdueInterest.add(alRepayment.getInterest());
@ -200,4 +354,22 @@ public class AlCollectionServiceImpl extends ServiceImpl<AlCollectionMapper, AlC
} }
return userId; return userId;
} }
/**
* 将催收人id转换成催收人姓名并返回
*/
private List<AlCollectionListResponse> jointName(List<AlCollectionListPO> alCollectionListPO, List<EmployeeVO> employeeVO) {
List<AlCollectionListResponse> response = new ArrayList<>();
for (AlCollectionListPO collectionListPO : alCollectionListPO) {
AlCollectionListResponse alCollectionListResponse = new AlCollectionListResponse();
for (EmployeeVO employee : employeeVO) {
if (Objects.equals(collectionListPO.getCollectionUser().longValue(), employee.getId())) {
alCollectionListResponse.setCollectionUserName(employee.getName());
}
}
BeanUtils.copyProperties(collectionListPO, alCollectionListResponse);
response.add(alCollectionListResponse);
}
return response;
}
} }

@ -151,7 +151,7 @@ public class DgLoanNoticeServiceImpl extends ServiceImpl<DgLoanNoticeMapper, DgL
String phone = businessCompany.getPhone(); String phone = businessCompany.getPhone();
String name = businessCompany.getName(); String name = businessCompany.getName();
DgLoanCommitteeConsider loanCommitteeConsider = loanCommitteeConsiderMapper.selectOne(new QueryWrapper<DgLoanCommitteeConsider>().eq("business_id", businessId)); DgLoanCommitteeConsider loanCommitteeConsider = loanCommitteeConsiderMapper.selectOne(new QueryWrapper<DgLoanCommitteeConsider>().eq("business_id", businessId));
Integer loanMoney = loanCommitteeConsider.getLoanMoney(); BigDecimal loanMoney = loanCommitteeConsider.getLoanMoney();
String loanTern = loanCommitteeConsider.getLoanTern(); String loanTern = loanCommitteeConsider.getLoanTern();
//添加数据到保后管理 //添加数据到保后管理
AlInsuranceList alInsuranceList = new AlInsuranceList(); AlInsuranceList alInsuranceList = new AlInsuranceList();
@ -161,7 +161,7 @@ public class DgLoanNoticeServiceImpl extends ServiceImpl<DgLoanNoticeMapper, DgL
alInsuranceList.setApplyTime(createTime); alInsuranceList.setApplyTime(createTime);
alInsuranceList.setPhone(phone); alInsuranceList.setPhone(phone);
alInsuranceList.setCustomerName(name); alInsuranceList.setCustomerName(name);
alInsuranceList.setGuaranteeAmount(BigDecimal.valueOf(loanMoney*10000)); alInsuranceList.setGuaranteeAmount(loanMoney);
alInsuranceList.setGuaranteeTime(loanTern); alInsuranceList.setGuaranteeTime(loanTern);
alInsuranceList.setAmountWide(amountWide); alInsuranceList.setAmountWide(amountWide);
alInsuranceList.setPaymentStatus(1); alInsuranceList.setPaymentStatus(1);

@ -1,7 +1,7 @@
#服务名称 #服务名称
spring.application.name=dq-financial-guarantee spring.application.name=dq-financial-guarantee
#配置中心地址 #配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.server-addr=192.168.31.140:8848
spring.cloud.nacos.config.file-extension=yml spring.cloud.nacos.config.file-extension=yml
#redis配置 #redis配置
spring.redis.host=127.0.0.1 spring.redis.host=127.0.0.1

@ -17,13 +17,11 @@
SELECT i.id AS id,i.business_code AS code,i.customer_name AS name,i.phone AS phone,i.business_type AS type, SELECT i.id AS id,i.business_code AS code,i.customer_name AS name,i.phone AS phone,i.business_type AS type,
i.guarantee_amount AS amount,i.department AS department,i.payment_status AS status,COUNT(c.id) AS numberOfCollection i.guarantee_amount AS amount,i.department AS department,i.payment_status AS status,COUNT(c.id) AS numberOfCollection
FROM al_insurance_list AS i FROM al_insurance_list AS i
INNER JOIN al_repayment_entry AS r LEFT JOIN al_collection AS c
ON i.id = r.insurance_id
INNER JOIN al_collection AS c
ON i.id = c.insurance_id ON i.id = c.insurance_id
WHERE r.is_overdue = 0 WHERE i.is_overdue = 0
<if test="status != null"> <if test="status != null">
AND i.status = #{status} AND i.payment_status = #{status}
</if> </if>
<if test="codeOrName != null and codeOrName != ''"> <if test="codeOrName != null and codeOrName != ''">
AND (i.customer_name like CONCAT('%',#{codeOrName},'%') OR i.business_code like CONCAT('%',#{codeOrName},'%')) AND (i.customer_name like CONCAT('%',#{codeOrName},'%') OR i.business_code like CONCAT('%',#{codeOrName},'%'))
@ -35,10 +33,10 @@
<insert id="collection" parameterType="com.daqing.framework.domain.guarantee.AlCollection"> <insert id="collection" parameterType="com.daqing.framework.domain.guarantee.AlCollection">
INSERT INTO al_collection (insurance_id,collection_method,collection_time,collection_feedback,enclosure_file INSERT INTO al_collection (insurance_id,collection_method,collection_time,collection_feedback,enclosure_file
,overdue_amount,overdue_interest,other_expenses,collection_user,overdue_periods) ,overdue_amount,overdue_interest,other_expenses,collection_user,overdue_periods)
VALUES (#{collection.insuranceId},#{collection.collectionMethod},#{collection.collectionTime}, VALUES (#{ac.insuranceId},#{ac.collectionMethod},#{ac.collectionTime},
#{collection.collectionFeedback},#{collection.enclosureFile}, #{ac.collectionFeedback},#{ac.enclosureFile},
#{collection.overdueAmount},#{collection.overdueInterest},#{collection.otherExpenses}, #{ac.overdueAmount},#{ac.overdueInterest},#{ac.otherExpenses},
#{collection.collectionUser},#{collection.overduePeriods}) #{ac.collectionUser},#{ac.overduePeriods})
</insert> </insert>
<select id="getOverdueDetailByInsuranceId" parameterType="integer" resultType="com.daqing.financial.guarantee.model.response.OverdueDetailResponse"> <select id="getOverdueDetailByInsuranceId" parameterType="integer" resultType="com.daqing.financial.guarantee.model.response.OverdueDetailResponse">
@ -50,14 +48,18 @@
</select> </select>
<!-- 催收列表 --> <!-- 催收列表 -->
<select id="collectionList" parameterType="string" resultType="com.daqing.framework.domain.guarantee.AlCollection"> <select id="collectionList" parameterType="com.daqing.financial.guarantee.model.request.AlCollectionListRequest" resultType="com.daqing.framework.domain.guarantee.po.AlCollectionListPO">
SELECT c.id AS id,c.overdue_amount AS overdue_amount,c.overdue_interest AS overdue_interest,c.other_expenses AS other_expenses, SELECT c.id AS id,c.overdue_amount AS overdue_amount,c.overdue_interest AS overdue_interest,c.other_expenses AS other_expenses,
c.collection_method AS collection_method,c.collection_user AS collection_user,c.collection_time AS collection_time, c.overdue_periods AS overdue_periods,c.collection_method AS collection_method,c.collection_user AS collection_user,
c.collection_feedback AS collection_feedback,c.enclosure_file AS enclosure_file,i.business_code AS code, c.collection_time AS collection_time,c.collection_feedback AS collection_feedback,i.business_code AS code,
i.customer_name AS name,i.business_type AS type i.customer_name AS name
FROM al_collection AS c FROM al_collection AS c
INNER JOIN al_insurance_list AS i INNER JOIN al_insurance_list AS i
ON i.id = c.insurance_id ON i.id = c.insurance_id
WHERE c.insurance_id = #{acr.insuranceId}
<if test="acr.startTime != null and acr.endTime != null">
AND collection_time BETWEEN #{acr.startTime} AND #{acr.endTime}
</if>
</select> </select>
<select id="moreOverdueDetail" parameterType="integer" resultType="com.daqing.financial.guarantee.model.response.MoreOverdueDetailResponse"> <select id="moreOverdueDetail" parameterType="integer" resultType="com.daqing.financial.guarantee.model.response.MoreOverdueDetailResponse">
@ -70,4 +72,19 @@
SELECT insurance_id FROM al_collection WHERE id = #{id} SELECT insurance_id FROM al_collection WHERE id = #{id}
</select> </select>
<!-- 催收管理列表导出 -->
<select id="collectionListExcel" parameterType="list" resultType="com.daqing.framework.domain.guarantee.po.AlCollectionListPO">
SELECT c.id AS id,c.overdue_amount AS overdue_amount,c.overdue_interest AS overdue_interest,c.other_expenses AS other_expenses,
c.overdue_periods AS overdue_periods,c.collection_method AS collection_method,c.collection_user AS collection_user,
c.collection_time AS collection_time,c.collection_feedback AS collection_feedback,i.business_code AS code,
i.customer_name AS name
FROM al_collection AS c
INNER JOIN al_insurance_list AS i
ON i.id = c.insurance_id
WHERE c.id IN
<foreach collection="ids" open="(" separator="," close=")" item="id">
#{id}
</foreach>
</select>
</mapper> </mapper>

@ -66,14 +66,14 @@
<!-- 还款记录已逾期信息 --> <!-- 还款记录已逾期信息 -->
<select id="listAlRepayment" resultType="com.daqing.framework.domain.guarantee.AlRepaymentEntry"> <select id="listAlRepayment" resultType="com.daqing.framework.domain.guarantee.AlRepaymentEntry">
SELECT insuranceId,currentRepayment,interest SELECT insurance_id,current_repayment,interest
FROM al_repayment_entry FROM al_repayment_entry
WHERE repayment_status = 3 WHERE repayment_status = 3
</select> </select>
<!-- 还款记录已逾期信息 --> <!-- 还款记录已逾期信息 -->
<select id="listAlRepaymentByInsuranceId" parameterType="integer" resultType="com.daqing.framework.domain.guarantee.AlRepaymentEntry"> <select id="listAlRepaymentByInsuranceId" parameterType="integer" resultType="com.daqing.framework.domain.guarantee.AlRepaymentEntry">
SELECT insuranceId,currentRepayment,interest,other_expenses SELECT insurance_id,current_repayment,interest,other_expenses
FROM al_repayment_entry FROM al_repayment_entry
WHERE repayment_status = 3 WHERE repayment_status = 3
AND insurance_id = #{insuranceId} AND insurance_id = #{insuranceId}

@ -1,7 +1,7 @@
#服务名称 #服务名称
spring.application.name=dq-financial-hrms-auth spring.application.name=dq-financial-hrms-auth
#配置中心地址 #配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.server-addr=192.168.31.140:8848
spring.cloud.nacos.config.file-extension=yml spring.cloud.nacos.config.file-extension=yml
#redis配置 #redis配置
spring.redis.host=127.0.0.1 spring.redis.host=127.0.0.1

@ -1,7 +1,7 @@
#服务名称 #服务名称
spring.application.name=dq-financial-hrms spring.application.name=dq-financial-hrms
#配置中心地址 #配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.server-addr=192.168.31.140:8848
spring.cloud.nacos.config.file-extension=yml spring.cloud.nacos.config.file-extension=yml
#redis配置 #redis配置
spring.redis.host=127.0.0.1 spring.redis.host=127.0.0.1

@ -4,6 +4,7 @@ import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -26,7 +27,7 @@ public class ApplicationRecordPO implements Serializable {
/** /**
* 申请额度 * 申请额度
*/ */
private Double applyAmount; private BigDecimal applyAmount;
/** /**
* 贷款用途 * 贷款用途

@ -3,6 +3,7 @@ package com.daqing.framework.domain.guarantee;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel; import com.alibaba.excel.metadata.BaseRowModel;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -37,11 +38,13 @@ public class AlRepaymentEntry implements Serializable {
/** /**
* 应还款日 * 应还款日
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date repaymentDate; private Date repaymentDate;
/** /**
* 实际还款日 * 实际还款日
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date actualRepaymentDate; private Date actualRepaymentDate;
/** /**
@ -97,12 +100,14 @@ public class AlRepaymentEntry implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@TableField(fill= FieldFill.INSERT) @TableField(fill= FieldFill.INSERT)
private Date createTime; private Date createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@TableField(fill= FieldFill.INSERT_UPDATE) @TableField(fill= FieldFill.INSERT_UPDATE)
private Date updateTime; private Date updateTime;
} }

@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -67,7 +68,7 @@ public class DgLoanCommitteeConsider implements Serializable {
/** /**
* 贷款金额贷审会意见 * 贷款金额贷审会意见
*/ */
private Integer loanMoney; private BigDecimal loanMoney;
/** /**
* 贷款期限贷审会意见 * 贷款期限贷审会意见

@ -0,0 +1,76 @@
package com.daqing.framework.domain.guarantee.po;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.ToString;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 催收列表po类
*
* @auther River
* @date 2021/3/23 10:17
*/
@Data
@ToString
public class AlCollectionListPO implements Serializable {
/**
* id
*/
private Integer id;
/**
*客户编号
*/
private String code;
/**
* 客户名称
*/
private String name;
/**
* 逾期金额
*/
private BigDecimal overdueAmount;
/**
* 逾期利息
*/
private BigDecimal overdueInterest;
/**
* 其他费用
*/
private BigDecimal otherExpenses;
/**
* 逾期次数
*/
private Integer overduePeriods;
/**
* 催收方法
*/
private Integer collectionMethod;
/**
* 催收人id
*/
private Integer collectionUser;
/**
* 催收时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date collectionTime;
/**
* 催收反馈
*/
private String collectionFeedback;
}

@ -3,6 +3,8 @@ package com.daqing.framework.domain.guarantee.po;
import lombok.Data; import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@ -12,7 +14,7 @@ import java.util.Date;
*/ */
@Data @Data
@ToString @ToString
public class DgStatisticsPO { public class DgStatisticsPO implements Serializable {
/** /**
* 客户名称 * 客户名称
@ -32,7 +34,7 @@ public class DgStatisticsPO {
/** /**
* 申请额度 * 申请额度
*/ */
private Double applyAmount; private BigDecimal applyAmount;
/** /**
* 申请期限 * 申请期限

@ -4,6 +4,7 @@ import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -32,7 +33,7 @@ public class DgStatisticsRefusePO implements Serializable {
/** /**
* 申请额度 * 申请额度
*/ */
private Double applyAmount; private BigDecimal applyAmount;
/** /**
* 申请期限 * 申请期限

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -32,7 +33,7 @@ public class DgWorkConferencePO implements Serializable {
private String businessType; private String businessType;
@ApiModelProperty("金额") @ApiModelProperty("金额")
private Double applyAmount; private BigDecimal applyAmount;
@ApiModelProperty("期限") @ApiModelProperty("期限")
private String applyTime; private String applyTime;

@ -0,0 +1,48 @@
package com.daqing.framework.utils.excel;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
/**
* 催收管理状态转换器
*
* @auther River
* @date 2021/3/24 9:52
*/
public class CollectionConverter implements Converter<Integer> {
@Override
public Class supportJavaTypeKey() {
return Integer.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public Integer convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return 0;
}
@Override
public CellData convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
switch (value) {
case 1:
return new CellData("还款中");
case 2:
return new CellData("已逾期");
case 3:
return new CellData("已还清");
case 4:
return new CellData("已结项");
default:
return new CellData(String.valueOf(value));
}
}
}

@ -1,7 +1,7 @@
#服务名称 #服务名称
spring.application.name=dq-govern-gateway spring.application.name=dq-govern-gateway
#配置中心地址 #配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.server-addr=192.168.31.140:8848
spring.cloud.nacos.config.file-extension=yml spring.cloud.nacos.config.file-extension=yml
#redis配置 #redis配置
spring.redis.host=127.0.0.1 spring.redis.host=127.0.0.1

Loading…
Cancel
Save