Commit 1d0c99c3 authored by hezhuozhi's avatar hezhuozhi

提交还款管理

parent be95fc97
...@@ -19,6 +19,7 @@ public enum BusinessTypeEnum { ...@@ -19,6 +19,7 @@ public enum BusinessTypeEnum {
HYGF_YSLC("AcceptanceCheck", "验收流程"), HYGF_YSLC("AcceptanceCheck", "验收流程"),
HYGF_BWLC("GridConnected", "并网流程"), HYGF_BWLC("GridConnected", "并网流程"),
HYGF_SGLCSH("ProcessEngineering", "施工流程审核"), HYGF_SGLCSH("ProcessEngineering", "施工流程审核"),
HYGF_REPAY("Repatment", "还款"),
; ;
private final String code; private final String code;
......
package com.yeejoin.amos.boot.module.hygf.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @description:还款消息状态枚举
* @author: hzz
* @createDate: 2023/12/13
*/
@Getter
@AllArgsConstructor
public enum RepaymentCronSendStateEnum {
UN_SEND(0,"不执行定时任务"),
SEND(1,"执行定时任务");
/**
* 编码
*/
private Integer code;
/**
* 名称,描述
*/
private String remark;
}
package com.yeejoin.amos.boot.module.hygf.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @description:还款消息状态枚举
* @author: hzz
* @createDate: 2023/12/13
*/
@Getter
@AllArgsConstructor
public enum RepaymentMessageStateEnum {
UN_CONFIRM(0,"待确认"),
CONFIRM(1,"确认");
/**
* 编码
*/
private Integer code;
/**
* 名称,描述
*/
private String remark;
public static RepaymentMessageStateEnum getByCode(Integer code) {
RepaymentMessageStateEnum anEnum = null;
for (RepaymentMessageStateEnum type : RepaymentMessageStateEnum.values()) {
if (type.getCode() == code) {
anEnum = type;
break;
}
}
return anEnum;
}
}
package com.yeejoin.amos.boot.module.hygf.api.Enum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @description:还款消息状态枚举
* @author: hzz
* @createDate: 2023/12/13
*/
@Getter
@AllArgsConstructor
public enum RepaymentRepayStateEnum {
UN_REPAY(0, "待还款"),
REPAY(1, "已还款");
/**
* 编码
*/
private Integer code;
/**
* 名称,描述
*/
private String remark;
public static RepaymentRepayStateEnum getByCode(Integer code) {
RepaymentRepayStateEnum anEnum = null;
for (RepaymentRepayStateEnum type : RepaymentRepayStateEnum.values()) {
if (type.getCode() == code) {
anEnum = type;
break;
}
}
return anEnum;
}
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDate;
import java.util.Date;
/**
*
*
* @author hzz
* @date 2024-09-26
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "RepaymentDto", description = "还款Dto实体类")
public class RepaymentDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "公司名称")
private String companyName;
@ApiModelProperty(value = "公司CODE")
private String regionalCompaniesCode;
@ApiModelProperty(value = "公司ID")
private Long companyId;
@ApiModelProperty(value = "期次")
private String period;
@ApiModelProperty(value = "还款时间")
private LocalDate repayDate;
@ApiModelProperty(value = "租金")
private Double rent;
@ApiModelProperty(value = "利息")
private Double interest;
@ApiModelProperty(value = "本金")
private Double principal;
@ApiModelProperty(value = "放款批次")
private String loanPeriod;
@ApiModelProperty(value = "消息状态0未确认1已确认")
private Integer messageState;
@ApiModelProperty(value = "消息状态")
private String messageStateStr;
@ApiModelProperty(value = "还款状态0未还款1已还款")
private Integer repayState;
@ApiModelProperty(value = "还款状态")
private String repayStateStr;
@ApiModelProperty(value = "定时发送状态")
private Integer cronSendState;
}
package com.yeejoin.amos.boot.module.hygf.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.Date;
/**
*
*
* @author hzz
* @date 2024-09-29
*/
@Data
@ApiModel(value = "RepaymentExcelDto", description = "还款excel实体类")
public class RepaymentExcelDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "公司名称")
private String companyName;
@ApiModelProperty(value = "期次")
private String period;
@ApiModelProperty(value = "还款时间")
private LocalDate repayDate;
@ApiModelProperty(value = "租金")
private Double rent;
@ApiModelProperty(value = "利息")
private Double interest;
@ApiModelProperty(value = "本金")
private Double principal;
@ApiModelProperty(value = "放款批次")
private String loanPeriod;
}
package com.yeejoin.amos.boot.module.hygf.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.time.LocalDate;
import java.util.Date;
/**
*
*
* @author hzz
* @date 2024-09-26
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value = "hygf_repayment", autoResultMap = true)
public class Repayment extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 公司名称
*/
@TableField("company_name")
private String companyName;
/**
* 公司CODE
*/
@TableField("regional_companies_code")
private String regionalCompaniesCode;
/**
* 公司ID
*/
@TableField("company_id")
private Long companyId;
/**
* 期次
*/
@TableField("period")
private String period;
/**
* 还款时间
*/
@TableField("repayDate")
private LocalDate repayDate;
/**
* 租金
*/
@TableField("rent")
private Double rent;
/**
* 利息
*/
@TableField("interest")
private Double interest;
/**
* 本金
*/
@TableField("principal")
private Double principal;
/**
* 放款批次
*/
@TableField("loan_period")
private String loanPeriod;
/**
* 消息状态0未确认1已确认
*/
@TableField("message_state")
private Integer messageState;
/**
* 还款状态0未还款1已还款
*/
@TableField("repay_state")
private Integer repayState;
/**
* 定时发送状态
*/
@TableField("cron_send_state")
private Integer cronSendState;
}
package com.yeejoin.amos.boot.module.hygf.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.hygf.api.config.UserEmpower;
import com.yeejoin.amos.boot.module.hygf.api.dto.RepaymentDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.Repayment;
import java.util.List;
/**
* Mapper 接口
*
* @author hzz
* @date 2024-09-26
*/
public interface RepaymentMapper extends BaseMapper<Repayment> {
@UserEmpower(field = {"regional_companies_code"}, dealerField = {"regional_companies_code"}, fieldConditions = {"in"}, relationship = "and")
List<RepaymentDto> queryPage();
}
package com.yeejoin.amos.boot.module.hygf.api.service;
/**
* 接口类
*
* @author hzz
* @date 2024-09-26
*/
public interface IRepaymentService {
}
<?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.yeejoin.amos.boot.module.hygf.api.mapper.RepaymentMapper">
<select id="queryPage" resultType="com.yeejoin.amos.boot.module.hygf.api.dto.RepaymentDto">
select * from hygf_repayment
order by rec_date DESC
</select>
</mapper>
package com.yeejoin.amos.boot.module.hygf.biz.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.hygf.api.dto.RepaymentDto;
import com.yeejoin.amos.boot.module.hygf.api.entity.Repayment;
import com.yeejoin.amos.boot.module.hygf.api.util.FileUtil;
import com.yeejoin.amos.boot.module.hygf.biz.service.impl.RepaymentServiceImpl;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
*
*
* @author 还款管理
* @date 2024-09-26
*/
@RestController
@Api(tags = "还款管理Api")
@RequestMapping(value = "/repayment")
public class RepaymentController extends BaseController {
@Autowired
RepaymentServiceImpl repaymentService;
/**
* 新增
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<RepaymentDto> save(@RequestBody RepaymentDto model) {
model = repaymentService.createWithModel(model);
return ResponseHelper.buildResponse(model);
}
/**
* 根据sequenceNbr更新
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/updateBySequenceNbr")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<?> updateBySequenceNbr(@RequestBody Repayment model) {
repaymentService.updateById(model);
return ResponseHelper.buildResponse(null);
}
/**
* 根据sequenceNbr确认消息
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/messageBySequenceNbr")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr确认消息", notes = "根据sequenceNbr确认消息")
public ResponseModel<?> confirmMessageState(@RequestParam(value = "sequenceNbr") Long sequenceNbr) {
repaymentService.confirmMessageState(sequenceNbr);
return ResponseHelper.buildResponse(null);
}
/**
* 根据sequenceNbr还款
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/repayBySequenceNbr")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr还款", notes = "根据sequenceNbr还款")
public ResponseModel<?> batchRepay(@RequestParam(value = "sequenceNbr") Long sequenceNbr) {
repaymentService.repay(sequenceNbr);
return ResponseHelper.buildResponse(null);
}
/**
* 根据sequenceNbr批量确认消息
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/batchConfirmMessageState")
@ApiOperation(httpMethod = "POST", value = "根据sequenceNbr批量确认消息", notes = "根据sequenceNbr批量确认消息")
public ResponseModel<?> batchConfirmMessageState(@RequestBody List<Long> sequenceNbrList) {
repaymentService.batchConfirmMessageState(sequenceNbrList);
return ResponseHelper.buildResponse(null);
}
/**
* 根据sequenceNbr批量还款
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/batchRepay")
@ApiOperation(httpMethod = "POST", value = "根据sequenceNbr批量还款", notes = "根据sequenceNbr批量还款")
public ResponseModel<?> batchRepay(@RequestBody List<Long> sequenceNbrList) {
repaymentService.batchRepay(sequenceNbrList);
return ResponseHelper.buildResponse(null);
}
/**
* 根据sequenceNbr批量删除
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "batchDelete")
@ApiOperation(httpMethod = "POST", value = "根据sequenceNbr批量删除", notes = "根据sequenceNbr批量删除")
public ResponseModel<Boolean> deleteBySequenceNbr(@RequestBody List<Long> sequenceNbrList) {
return ResponseHelper.buildResponse(repaymentService.deleteBatchSeq(sequenceNbrList));
}
/**
* 导入还款模板Excel
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "importRepaymentExcel")
@ApiOperation(httpMethod = "POST", value = "导入还款模板Excel", notes = "导入还款模板Excel")
public ResponseModel<?> importRepaymentExcel(@RequestPart("file") MultipartFile file) {
AgencyUserModel userInfo = getUserInfo();
repaymentService.importRepaymentExcel(file, userInfo);
return ResponseHelper.buildResponse(null);
}
/**
* 导入还款模板Excel
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "exportRepaymentExcel")
@ApiOperation(httpMethod = "POST", value = "导出还款模板Excel", notes = "导出还款模板Excel")
public ResponseModel<?> exportRepaymentExcel(@RequestBody List<Long> sequenceNbrList, HttpServletResponse response) {
repaymentService.exportRepaymentExcel(sequenceNbrList, response);
return ResponseHelper.buildResponse(null);
}
@GetMapping(value = "/exportTemplates")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "模板下载", notes = "模板下载")
public void exportTemplates(HttpServletResponse response) {
FileUtil.downloadResource("还款管理导入模板.xlsx", "templates/repaymentTemplates.xlsx", response);
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/delete")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(@RequestParam(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(repaymentService.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/selectDetail")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<RepaymentDto> selectOne(@RequestParam(value = "sequenceNbr") Long sequenceNbr) {
RepaymentDto repaymentDto = repaymentService.queryBySeq(sequenceNbr);
return ResponseHelper.buildResponse(repaymentDto);
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<RepaymentDto>> queryForPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
return ResponseHelper.buildResponse(repaymentService.queryForRepaymentPage(current, size));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment