浏览代码

账款部分修改

xda 3 年之前
父节点
当前提交
365f5d8f5a

+ 42 - 54
src/main/java/com/winhc/repal/controller/RepalBillController.java

@@ -3,7 +3,7 @@ package com.winhc.repal.controller;
 import com.winhc.common.base.BeanResponse;
 import com.winhc.common.enums.CodeMsg;
 import com.winhc.common.model.base.VOPage;
-import com.winhc.repal.model.dto.GetRepalBillPageDTO;
+import com.winhc.repal.model.dto.*;
 import com.winhc.repal.model.vo.RepalBillDetailVO;
 import com.winhc.repal.model.vo.RepalBillPageVO;
 import com.winhc.repal.service.RepalBillService;
@@ -40,29 +40,44 @@ public class RepalBillController {
         return BeanResponse.success(CodeMsg.SUCCESS, repalBillService.getRepalBillDetail(repalBillId));
     }
 
-//    @ApiOperation("获取账款信息by账款id")
-//    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
-//    public BeanResponse<AccountBillDetailVO> getAccountBillDetailById(@PathVariable("id") Long id) {
-//        return BeanResponse.success(CodeMsg.SUCCESS, accountBillService.getAccountBillDetailById(id, RequesterUtil.getCurrentUserId(), getAppPackageName(), getAppVersion()));
-//    }
-//
-//    @ApiOperation("根据类型和账款id修改账款信息")
-//    @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
-//    public BeanResponse<Boolean> updateAccountBillByType(@PathVariable("id")Long id, @Validated @RequestBody UpdateAccountBillDTO dto) {
-//        return BeanResponse.success(CodeMsg.SUCCESS, accountBillService.updateAccountBillByType(dto.setUserId(RequesterUtil.getCurrentUserId()).setAccountBillId(id)));
-//    }
-//
-//    @ApiOperation("新增账款")
-//    @RequestMapping(method = RequestMethod.POST)
-//    public BeanResponse<AccountBillVO> addAccountBook(@Validated @RequestBody AddAccountBillDTO dto) {
-//        return BeanResponse.success(CodeMsg.SUCCESS, accountBillService.addAccountBill(dto, RequesterUtil.getCurrentUserId()));
-//    }
-//
-//    @ApiOperation("删除账款")
-//    @DeleteMapping("/{id}")
-//    public BeanResponse<Boolean> delAccountBook(@PathVariable("id")Long id){
-//        return BeanResponse.success(CodeMsg.SUCCESS, accountBillService.deleteAccountBill(id,RequesterUtil.getCurrentUser()));
-//    }
+    @ApiOperation("删除账款")
+    @RequestMapping(value = "/deleteById", method = RequestMethod.POST)
+    public BeanResponse<Boolean> deleteRepalBillById(@RequestBody DeleteRepalBillDTO dto) {
+        return BeanResponse.success(CodeMsg.SUCCESS, repalBillService.deleteRepalBillById(dto));
+    }
+
+    @ApiOperation("添加收款记录")
+    @RequestMapping(value = "/settle", method = RequestMethod.POST)
+    public BeanResponse<Boolean> settleRepalBillById(@RequestBody SettleRepalBillDTO dto) {
+        return BeanResponse.success(CodeMsg.SUCCESS, repalBillService.settleRepalBillById(dto));
+    }
+
+    @ApiOperation("新建账款")
+    @RequestMapping(value = "/add", method = RequestMethod.POST)
+    public BeanResponse<Boolean> addRepalBill(@RequestBody AddRepalBillDTO dto) {
+        return BeanResponse.success(CodeMsg.SUCCESS, repalBillService.addRepalBill(dto));
+    }
+
+    @ApiOperation("终止账款")
+    @RequestMapping(value = "/break/{repalBillId}", method = RequestMethod.POST)
+    public BeanResponse<Boolean> breakRepalBill(@PathVariable("repalBillId") Long repalBillId) {
+        return BeanResponse.success(CodeMsg.SUCCESS, repalBillService.breakRepalBill(repalBillId));
+    }
+
+    @ApiOperation("修改账款信息")
+    @RequestMapping(value = "/update", method = RequestMethod.POST)
+    public BeanResponse<Boolean> updateRepalBill(@RequestBody UpdateRepalBillDTO dto) {
+        return BeanResponse.success(CodeMsg.SUCCESS, repalBillService.updateRepalBill(dto));
+    }
+
+
+
+
+
+
+
+
+
 //
 //    @ApiOperation("简易轮询账款")
 //    @RequestMapping(value = "/poll/{id}", method = RequestMethod.GET)
@@ -76,36 +91,9 @@ public class RepalBillController {
 //        return BeanResponse.success(CodeMsg.SUCCESS, accountBillService.pollBatchAccountBillByIds(dto.setUserId(RequesterUtil.getCurrentUserId())));
 //    }
 //
-//    @ApiOperation("联系客服")
-//    @RequestMapping(value = "/apply", method = RequestMethod.GET)
-//    public BeanResponse<Boolean> applyCustomerService(ApplyCustomerServiceDTO dto) {
-//        return BeanResponse.success(CodeMsg.SUCCESS, accountBillService.applyCustomerService(dto.setUserId(RequesterUtil.getCurrentUserId())));
-//    }
-//
-//    @ApiOperation("批量导入")
-//    @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
-//    public BeanResponse<BatchImportResultVO> batchImportAccountBill(@RequestBody List<BatchImportAccountBillDTO> dtoList) {
-//        return BeanResponse.success(CodeMsg.SUCCESS, accountBillService.batchImportAccountBill(dtoList));
-//    }
-//
-//    @ApiOperation("账款添加一笔已收回记录")
-//    @RequestMapping(value = "/receipt", method = RequestMethod.POST)
-//    public BeanResponse<Boolean> addAccountBillReceipt(@RequestBody AddAccountBillReceiptDTO dto) {
-//        return BeanResponse.success(CodeMsg.SUCCESS, accountBillService.addAccountBillReceipt(dto, RequesterUtil.getCurrentUserId()));
-//    }
-//
-////    @Deprecated
-////    @ApiOperation("修复cid对应companyId")
-////    @RequestMapping(value = "/fixCompanyId", method = RequestMethod.POST)
-////    public BeanResponse<Boolean> fixCompanyId() {
-////        return BeanResponse.success(CodeMsg.SUCCESS, accountBillService.fixCompanyId());
-////    }
-//
-//    @ApiOperation("获取用户应收账款总额和笔数")
-//    @RequestMapping(value = "/total/{userId}", method = RequestMethod.GET)
-//    public BeanResponse<AccountBillTotalVO> getTotalMoneyAndCount(@PathVariable("userId") Long userId) {
-//        return BeanResponse.success(CodeMsg.SUCCESS, accountBillService.getTotalMoneyAndCount(userId));
-//    }
+
+
+
 
 
 

+ 5 - 1
src/main/java/com/winhc/repal/entity/RepalBook.java

@@ -50,12 +50,16 @@ public class RepalBook implements Serializable {
 
     @ApiModelProperty(value = "客户id")
     @TableField("CUSTOMER_ID")
-    private String customerId;
+    private Long customerId;
 
     @ApiModelProperty(value = "客户name")
     @TableField("CUSTOMER_NAME")
     private String customerName;
 
+    @ApiModelProperty(value = "客户公司id")
+    @TableField("COMPANY_ID")
+    private String companyId;
+
     @ApiModelProperty(value = "账本刷新状态。1未刷新,2刷新中,3已刷新,0刷新失败")
     @TableField("REFRESH_STATUS")
     private Integer refreshStatus;

+ 33 - 0
src/main/java/com/winhc/repal/enums/CustPropertyEnum.java

@@ -0,0 +1,33 @@
+package com.winhc.repal.enums;
+
+/**
+ * @Description: CustPropertyEnum
+ * @Author: xda
+ * @Date: 2022/4/15 14:37
+ */
+public enum CustPropertyEnum {
+
+    /**
+     *  客户类型
+     */
+    COMPANY(1, "企业"),
+    PERSON(2, "个人"),
+    GOV(3, "政府事业单位");
+
+    private final Integer code;
+
+    private final String desc;
+
+    CustPropertyEnum(Integer code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    public Integer getCode() {
+        return this.code;
+    }
+
+    public String getDesc() {
+        return this.desc;
+    }
+}

+ 61 - 0
src/main/java/com/winhc/repal/model/dto/AddRepalBillDTO.java

@@ -0,0 +1,61 @@
+package com.winhc.repal.model.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * @Description: AddRepalBillDTO
+ * @Author: xda
+ * @Date: 2022/4/15 12:18
+ */
+@Data
+@ApiModel("新增账款")
+public class AddRepalBillDTO {
+
+    @ApiModelProperty(required = true, value = "组织id")
+    private Long repalGroupId;
+
+    @ApiModelProperty("账本id")
+    private Long repalBookId;
+
+    @ApiModelProperty(required = true, value = "账款总金额")
+    private BigDecimal totalMoney;
+
+    @ApiModelProperty(value = "账款阶段1未起诉,2已起诉,3已申请执行,4终结本次执行")
+    private Integer repalBillStage;
+
+    @ApiModelProperty(required = true, value = "账款类型。1应收。2应付")
+    private Integer repalBillType;
+
+    @ApiModelProperty(required = true, value = "应收账款日期string")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate endDate;
+
+    @ApiModelProperty(value = "账款备注")
+    private String billRemark;
+
+    @ApiModelProperty(required = true, value = "客户id")
+    private String customerId;
+
+    @ApiModelProperty(value = "合同name")
+    private String contractName;
+
+    @ApiModelProperty("负责人idList")
+    private List<Long> responsiblePersonIdList;
+
+    @ApiModelProperty(value = "合同到期日期string")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate contractEndDate;
+
+    @ApiModelProperty(value = "合同list")
+    private List<String> contractUrlList;
+}

+ 18 - 0
src/main/java/com/winhc/repal/model/dto/DeleteRepalBillDTO.java

@@ -0,0 +1,18 @@
+package com.winhc.repal.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description: DeleteRepalBillDTO
+ * @Author: xda
+ * @Date: 2022/4/15 10:11
+ */
+@Data
+@ApiModel("删除账款")
+public class DeleteRepalBillDTO {
+
+    @ApiModelProperty("账款id")
+    private Long repalBillId;
+}

+ 24 - 0
src/main/java/com/winhc/repal/model/dto/SettleRepalBillDTO.java

@@ -0,0 +1,24 @@
+package com.winhc.repal.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @Description: SettleRepalBillDTO
+ * @Author: xda
+ * @Date: 2022/4/15 11:05
+ */
+@Data
+@ApiModel("结清账款")
+public class SettleRepalBillDTO {
+
+    @ApiModelProperty("账款id")
+    private Long repalBillId;
+
+    @ApiModelProperty("金额,string类型")
+    private BigDecimal money;
+
+}

+ 55 - 0
src/main/java/com/winhc/repal/model/dto/UpdateRepalBillDTO.java

@@ -0,0 +1,55 @@
+package com.winhc.repal.model.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * @Description: UpdateRepalBillDTO
+ * @Author: xda
+ * @Date: 2022/4/15 16:10
+ */
+@Data
+@ApiModel("修改账款信息")
+public class UpdateRepalBillDTO {
+
+    @ApiModelProperty(value = "所属组织id")
+    private Long repalGroupId;
+
+    @ApiModelProperty(value = "账款id")
+    private Long repalBillId;
+
+    @ApiModelProperty(value = "账本id")
+    private Long repalBookId;
+
+    @ApiModelProperty("负责人idList")
+    private List<Long> responsiblePersonIdList;
+
+    @ApiModelProperty("到期日期,字符串,格式yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate endDate;
+
+    @ApiModelProperty(value = "账款总金额")
+    private String totalMoneyStr;
+
+    @ApiModelProperty(value = "账款阶段,1未起诉,2已起诉,3已申请执行,4终结本次执行")
+    private Integer repalBillStage;
+
+    @ApiModelProperty(value = "账款备注")
+    private String billRemark;
+
+    @ApiModelProperty(value = "合同name")
+    private String contractName;
+
+    @ApiModelProperty(value = "合同到期日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate contractEndDate;
+
+    @ApiModelProperty(value = "合同list")
+    private List<String> contractUrlList;
+
+}

+ 46 - 1
src/main/java/com/winhc/repal/service/RepalBillService.java

@@ -3,7 +3,7 @@ package com.winhc.repal.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.winhc.common.model.base.VOPage;
 import com.winhc.repal.entity.RepalBill;
-import com.winhc.repal.model.dto.GetRepalBillPageDTO;
+import com.winhc.repal.model.dto.*;
 import com.winhc.repal.model.vo.RepalBillDetailVO;
 import com.winhc.repal.model.vo.RepalBillPageVO;
 
@@ -33,4 +33,49 @@ public interface RepalBillService extends IService<RepalBill> {
      * @date 2022/4/13 20:26
      */
     RepalBillDetailVO getRepalBillDetail(Long repalBillId);
+
+    /**
+     * 删除账款
+     * @param dto dto
+     * @return java.lang.Boolean
+     * @author xda
+     * @date 2022/4/15 10:15
+     */
+    Boolean deleteRepalBillById(DeleteRepalBillDTO dto);
+
+    /**
+     * 结清账款
+     * @param dto dto
+     * @return java.lang.Boolean
+     * @author xda
+     * @date 2022/4/15 11:06
+     */
+    Boolean settleRepalBillById(SettleRepalBillDTO dto);
+
+    /**
+     * 添加账款
+     * @param dto dto
+     * @return java.lang.Boolean
+     * @author xda
+     * @date 2022/4/15 12:24
+     */
+    Boolean addRepalBill(AddRepalBillDTO dto);
+    
+    /**
+     * TODO
+     * @param repalBillId repalBillId 
+     * @return java.lang.Boolean
+     * @author xda
+     * @date 2022/4/15 15:50 
+     */
+    Boolean breakRepalBill(Long repalBillId);
+
+    /**
+     * 修改账款信息
+     * @param dto dto
+     * @return java.lang.Boolean
+     * @author xda
+     * @date 2022/4/15 16:48
+     */
+    Boolean updateRepalBill(UpdateRepalBillDTO dto);
 }

+ 1 - 0
src/main/java/com/winhc/repal/service/RepalChangeRecordService.java

@@ -12,4 +12,5 @@ import com.winhc.repal.entity.RepalChangeRecord;
 public interface RepalChangeRecordService extends IService<RepalChangeRecord> {
 
 
+
 }

+ 16 - 0
src/main/java/com/winhc/repal/service/UserExtService.java

@@ -0,0 +1,16 @@
+package com.winhc.repal.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.winhc.repal.entity.UserExt;
+
+
+/**
+ * @description UserExt 接口类
+ * @author Generator
+ * @date 2022-04-08
+ */
+public interface UserExtService extends IService<UserExt> {
+
+
+
+}

+ 114 - 6
src/main/java/com/winhc/repal/service/impl/RepalBillServiceImpl.java

@@ -17,26 +17,28 @@ import com.winhc.repal.cloud.dto.GetFinanceDynamicNumDTO;
 import com.winhc.repal.cloud.vo.CompanyRiskNumVO;
 import com.winhc.repal.cloud.vo.DiagnosisRecordVO;
 import com.winhc.repal.cloud.vo.FinanceDynamicNumVO;
-import com.winhc.repal.entity.RepalBill;
-import com.winhc.repal.entity.RepalBillDiagnosis;
-import com.winhc.repal.entity.RepalChangeRecord;
-import com.winhc.repal.entity.RepalCustomer;
+import com.winhc.repal.entity.*;
+import com.winhc.repal.enums.CustPropertyEnum;
 import com.winhc.repal.enums.DeletedStatusEnum;
 import com.winhc.repal.enums.RepalBillStatusEnum;
-import com.winhc.repal.enums.RepalBillTypeEnum;
-import com.winhc.repal.model.dto.GetRepalBillPageDTO;
+import com.winhc.repal.model.dto.*;
 import com.winhc.repal.model.vo.RepalBillDetailVO;
 import com.winhc.repal.model.vo.RepalBillPageVO;
 import com.winhc.repal.repository.RepalBillMapper;
 import com.winhc.repal.service.*;
 import com.winhc.repal.util.DiagnosisUtil;
+import com.winhc.repal.util.RepalBillStatusUtil;
+import com.winhc.repal.util.UserContextUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -75,6 +77,10 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
     @Autowired
     private RepalChangeRecordService repalChangeRecordService;
 
+    @Autowired
+    private RepalBookService repalBookService;
+
+
 
     @Override
     public VOPage<RepalBillPageVO> getRepalBillPage(GetRepalBillPageDTO dto) {
@@ -184,4 +190,106 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
         return vo;
     }
 
+    @Override
+    public Boolean deleteRepalBillById(DeleteRepalBillDTO dto) {
+        // 权限判断 todo 日志
+        this.update(Wrappers.lambdaUpdate(RepalBill.class).eq(RepalBill::getId, dto.getRepalBillId())
+                .set(RepalBill::getDeleted, DeletedStatusEnum.DELETE.getCode()));
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean settleRepalBillById(SettleRepalBillDTO dto) {
+        // todo 权限,日志
+        RepalBill repalBill = this.getById(dto.getRepalBillId());
+        // 结清tag
+        boolean success = false;
+        // 金额溢出
+        if (dto.getMoney().compareTo(repalBill.getReceivable()) >= 0) {
+            dto.setMoney(repalBill.getReceivable());
+            success = true;
+        }
+        // 重新计算金额
+        repalBill.setReceivable(success ? BigDecimal.ZERO : repalBill.getReceivable().subtract(dto.getMoney()));
+        repalBill.setReceipt(success ? repalBill.getTotalMoney() : repalBill.getReceipt().add(dto.getMoney()));
+        RepalChangeRecord changeRecord = new RepalChangeRecord();
+        changeRecord.setRepalBookId(repalBill.getRepalBookId());
+        changeRecord.setRepalBillId(repalBill.getId());
+        changeRecord.setAfterMoney(BigDecimal.ZERO);
+        changeRecord.setPreMoney(repalBill.getReceivable());
+        changeRecord.setTransMoney(repalBill.getReceivable());
+        changeRecord.setOperUserId(UserContextUtil.getUser().getUserId());
+        // changeRecord.setOperUserName(); 组织用户名称?用户名称?
+        repalChangeRecordService.save(changeRecord);
+        this.update(Wrappers.lambdaUpdate(RepalBill.class)
+                .eq(RepalBill::getId, repalBill.getId())
+                .set(success, RepalBill::getRepalBillStatus, RepalBillStatusEnum.SUCCESS.getCode())
+                .set(RepalBill::getReceivable, repalBill.getReceivable())
+                .set(RepalBill::getReceipt, repalBill.getReceipt())
+                .set(success, RepalBill::getSettleTime, LocalDateTime.now()));
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean addRepalBill(AddRepalBillDTO dto) {
+        RepalCustomer customer = repalCustomerService.getById(dto.getCustomerId());
+        if (Objects.isNull(customer)) {
+            throw new CommonException(CodeMsg.FAILED, "客户信息错误");
+        }
+        boolean companyIdFlag = CustPropertyEnum.COMPANY.getCode().equals(customer.getCustProperty()) || CustPropertyEnum.GOV.getCode().equals(customer.getCustProperty());
+        if (companyIdFlag && StrUtil.isBlank(customer.getCompanyId())) {
+            throw new CommonException(CodeMsg.FAILED, "公司信息错误");
+        }
+        // 权限判断 todo 日志
+        if (Objects.isNull(dto.getRepalBookId())) {
+            // 新建账本
+            RepalBook repalBook = new RepalBook();
+            repalBook.setRepalGroupId(dto.getRepalGroupId());
+            repalBook.setCustomerId(customer.getCustId());
+            repalBook.setCustomerName(customer.getCustName());
+            repalBook.setCompanyId(customer.getCompanyId());
+            repalBook.setUserId(UserContextUtil.getUser().getUserId());
+            repalBookService.save(repalBook);
+            dto.setRepalBookId(repalBook.getId());
+        }
+        RepalBill repalBill = new RepalBill();
+        BeanUtils.copyProperties(dto, repalBill);
+        repalBill.setCustomerName(customer.getCustName());
+        repalBill.setUserId(UserContextUtil.getUser().getUserId());
+        repalBill.setRepalBillStatus(RepalBillStatusUtil.getRepalBillStatus(dto.getEndDate()));
+        if (CollUtil.isNotEmpty(dto.getContractUrlList())) {
+            repalBill.setContractUrl(String.join(";", dto.getContractUrlList()));
+        }
+        if (companyIdFlag) {
+            // 评分 todo
+        }
+        this.save(repalBill);
+        // 负责人
+        repalResponsiblePersonService.saveBatch(dto.getResponsiblePersonIdList().stream().map(t -> {
+            RepalResponsiblePerson person = new RepalResponsiblePerson();
+            person.setRepalGroupId(dto.getRepalGroupId());
+            person.setRepalBookId(dto.getRepalBookId());
+            person.setRepalBillId(repalBill.getId());
+            person.setUserId(t);
+            return person;
+        }).collect(Collectors.toList()));
+        return true;
+    }
+
+    @Override
+    public Boolean breakRepalBill(Long repalBillId) {
+        // 权限 todo 日志
+        this.update(Wrappers.lambdaUpdate(RepalBill.class)
+                .eq(RepalBill::getId, repalBillId)
+                .set(RepalBill::getRepalBillStatus, RepalBillStatusEnum.END.getCode()));
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updateRepalBill(UpdateRepalBillDTO dto) {
+        return true;
+    }
 }

+ 18 - 0
src/main/java/com/winhc/repal/service/impl/UserExtServiceImpl.java

@@ -0,0 +1,18 @@
+package com.winhc.repal.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.winhc.repal.entity.UserExt;
+import com.winhc.repal.repository.UserExtMapper;
+import com.winhc.repal.service.UserExtService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @description RepalBook 接口实现类
+ * @author Generator
+ * @date 2022-04-08
+ */
+@Service
+public class UserExtServiceImpl extends ServiceImpl<UserExtMapper, UserExt> implements UserExtService {
+
+
+}

+ 29 - 0
src/main/java/com/winhc/repal/util/RepalBillStatusUtil.java

@@ -0,0 +1,29 @@
+package com.winhc.repal.util;
+
+import com.winhc.repal.enums.RepalBillStatusEnum;
+
+import java.time.LocalDate;
+
+/**
+ * @Description: RepalBillStatusUtil
+ * @Author: xda
+ * @Date: 2022/4/15 14:09
+ */
+public class RepalBillStatusUtil {
+
+
+    /**
+     * 账款状态
+     * @param endDate endDate
+     * @return java.lang.Integer
+     * @author xda
+     * @date 2022/4/15 14:11
+     */
+    public static Integer getRepalBillStatus(LocalDate endDate) {
+        if (LocalDate.now().compareTo(endDate) ==0 || LocalDate.now().isAfter(endDate)) {
+            return RepalBillStatusEnum.OVERDUE.getCode();
+        }
+        return RepalBillStatusEnum.PROGRESSING.getCode();
+    }
+
+}