From fbd5da7c76bdd99b1e694f3955aab3e51dae75e3 Mon Sep 17 00:00:00 2001 From: baozhipeng <961815525@qq.com> Date: Thu, 9 Sep 2021 12:05:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=B0=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PayPaymentRecordController.java | 42 ++++----- .../jero/payment/entity/PayPaymentRecord.java | 17 ++-- .../mapper/PayPaymentRecordMapper.java | 12 +++ .../mapper/xml/PayPaymentRecordMapper.xml | 75 +++++++++++++++ .../service/IPayPaymentRecordService.java | 17 ++++ .../impl/PayPaymentRecordServiceImpl.java | 91 +++++++++++++++++++ .../jero/project/entity/PayCommonProject.java | 9 ++ 7 files changed, 234 insertions(+), 29 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayPaymentRecordController.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayPaymentRecordController.java index 8b4e047c..101b7e43 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayPaymentRecordController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayPaymentRecordController.java @@ -1,6 +1,7 @@ package com.jero.payment.controller; import java.util.Arrays; +import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -12,6 +13,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.payment.entity.PayPaymentRecord; import com.jero.payment.service.IPayPaymentRecordService; +import com.jero.project.entity.PayCommonProject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -32,38 +34,32 @@ import io.swagger.annotations.ApiOperation; public class PayPaymentRecordController extends JeroController { @Autowired private IPayPaymentRecordService payPaymentRecordService; - + + + /** - * 分页列表查询 - * - * @param payPaymentRecord - * @param pageNo - * @param pageSize - * @param req - * @return + * 到账开票主列表 */ - @ApiOperation(value="pay_payment_record-分页列表查询", notes="pay_payment_record-分页列表查询") - @GetMapping(value = "/list") - public Result queryPageList(PayPaymentRecord payPaymentRecord, + @ApiOperation(value="到账开票主列表", notes="到账开票主列表") + @GetMapping(value = "/mainList") + public Result mainList(PayCommonProject payCommonProject, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(payPaymentRecord, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); - IPage pageList = payPaymentRecordService.page(page, queryWrapper); - return Result.OK(pageList); + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + Page page = new Page(pageNo, pageSize); + List pageList = payPaymentRecordService.mainList(page, payCommonProject); + page.setRecords(pageList); + return Result.OK(page); } /** - * 添加 - * + * 添加阶段 * @param payPaymentRecord * @return */ - @ApiOperation(value="pay_payment_record-添加", notes="pay_payment_record-添加") - @PostMapping(value = "/add") - public Result add(@RequestBody PayPaymentRecord payPaymentRecord) { - payPaymentRecordService.save(payPaymentRecord); + @ApiOperation(value="添加阶段", notes="添加阶段") + @PostMapping(value = "/addPhase") + public Result addPhase(@RequestBody PayPaymentRecord payPaymentRecord) { + payPaymentRecordService.addPhase(payPaymentRecord); return Result.OK("添加成功!"); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/entity/PayPaymentRecord.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/entity/PayPaymentRecord.java index 9c25f84c..5ec4f6f2 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/entity/PayPaymentRecord.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/entity/PayPaymentRecord.java @@ -1,6 +1,8 @@ package com.jero.payment.entity; import java.io.Serializable; +import java.math.BigDecimal; + import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -13,6 +15,9 @@ import io.swagger.annotations.ApiModelProperty; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import javax.validation.constraints.Max; +import javax.validation.constraints.NotNull; + /** * @Description: pay_payment_record * @Author: jeecg-boot @@ -32,22 +37,22 @@ public class PayPaymentRecord implements Serializable { @ApiModelProperty(value = "id") private java.lang.String id; /**项目id*/ - @Excel(name = "项目id", width = 15) @ApiModelProperty(value = "项目id") private java.lang.String projectId; /**项目类型*/ - @Excel(name = "项目类型", width = 15) @ApiModelProperty(value = "项目类型") - private java.lang.String projectType; + private Integer projectType; /**到账金额*/ - @Excel(name = "到账金额", width = 15) @ApiModelProperty(value = "到账金额") - private java.lang.Integer amountReceived; + @NotNull(message = "到账金额(元)不能为空!") + @Max(value = 999999999,message = "到账金额(元)格式错误") + @JsonFormat(shape = JsonFormat.Shape.STRING) + private BigDecimal amountReceived; /**来款日期*/ - @Excel(name = "来款日期", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "来款日期") + @NotNull(message = "来款日期不能为空!") private java.util.Date paymentDate; /**备注*/ @Excel(name = "备注", width = 15) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/PayPaymentRecordMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/PayPaymentRecordMapper.java index c09f611e..94d1f222 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/PayPaymentRecordMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/PayPaymentRecordMapper.java @@ -1,7 +1,12 @@ package com.jero.payment.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.payment.entity.PayPaymentRecord; +import com.jero.project.entity.PayCommonProject; +import io.lettuce.core.dynamic.annotation.Param; + +import java.util.List; /** * @Description: pay_payment_record @@ -11,4 +16,11 @@ import com.jero.payment.entity.PayPaymentRecord; */ public interface PayPaymentRecordMapper extends BaseMapper { + /** + * 到账开票主列表 + * @param page + * @param payCommonProject + * @return + */ + List mainList(Page page, @Param("payCommonProject")PayCommonProject payCommonProject); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml index c38a1df7..d7429e75 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml @@ -2,4 +2,79 @@ + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentRecordService.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentRecordService.java index a5501ef0..d09b81f0 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentRecordService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentRecordService.java @@ -1,7 +1,12 @@ package com.jero.payment.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.payment.entity.PayPaymentRecord; +import com.jero.project.entity.PayCommonProject; + +import java.util.List; /** * @Description: pay_payment_record @@ -10,5 +15,17 @@ import com.jero.payment.entity.PayPaymentRecord; * @Version: V1.0 */ public interface IPayPaymentRecordService extends IService { + /** + * 到账开票主列表 + * @param page + * @param payCommonProject + * @return + */ + List mainList(Page page, PayCommonProject payCommonProject); + /** + * 添加阶段 + * @param payPaymentRecord + */ + void addPhase(PayPaymentRecord payPaymentRecord); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java index 53307959..7a6f65a5 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java @@ -1,11 +1,30 @@ package com.jero.payment.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.exception.JeroBootException; +import com.jero.contract.common.PayIncomeContractCommon; import com.jero.payment.entity.PayPaymentRecord; import com.jero.payment.mapper.PayPaymentRecordMapper; import com.jero.payment.service.IPayPaymentRecordService; +import com.jero.project.entity.PayCommonProject; +import com.jero.project.entity.PayWorkingGroup; +import com.jero.project.entity.PayWorkingGroupSubItem; +import com.jero.project.mapper.PayCommonProjectMapper; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Objects; + /** * @Description: pay_payment_record * @Author: jeecg-boot @@ -14,5 +33,77 @@ import org.springframework.stereotype.Service; */ @Service public class PayPaymentRecordServiceImpl extends ServiceImpl implements IPayPaymentRecordService { + @Resource + private PayPaymentRecordMapper payPaymentRecordMapper; + @Resource + private PayCommonProjectMapper payCommonProjectMapper; + /** + * 到账开票主列表 + * @param page + * @param payCommonProject + * @return + */ + public List mainList(Page page, PayCommonProject payCommonProject){ + return payPaymentRecordMapper.mainList(page, payCommonProject); + + } + + + /** + * + * @param payPaymentRecord + */ + public void addPhase(PayPaymentRecord payPaymentRecord){ + payPaymentRecordMapper.insert(payPaymentRecord); + + //累加主列表实收金额 + switch (String.valueOf(payPaymentRecord.getProjectType())){ + + // 普通项目 + case PayIncomeContractCommon.PROJECT_TYPE1: + PayCommonProject payCommonProject = payCommonProjectMapper.selectById(payPaymentRecord.getProjectId()); + + BigDecimal receivableAmount = payCommonProject.getReceivableAmount();//应收 + Boolean isAdd = isAdd(receivableAmount, payPaymentRecord.getAmountReceived()); + +// payCommonProject.setPaidAmount(); + break; + + // 工作组项目 + case PayIncomeContractCommon.PROJECT_TYPE2: + break; + //会议项目 + case PayIncomeContractCommon.PROJECT_TYPE3: + break; + //会员项目 + case PayIncomeContractCommon.PROJECT_TYPE4: + break; + //标协会员 + case PayIncomeContractCommon.PROJECT_TYPE5: + break; + default:break; + } + } + + /** + * 是否还能再添加来款 + * @param receivableAmount 应收 + * @param amountReceived 到账 + * @return + */ + private Boolean isAdd(BigDecimal receivableAmount, BigDecimal amountReceived){ + if(receivableAmount == null){ + receivableAmount = new BigDecimal("0"); + } + //欠款 + BigDecimal debt = receivableAmount.subtract(amountReceived); + + if(amountReceived.compareTo(debt) == 1){ + //本次到账金额大于欠款 + return Boolean.FALSE; + }else{ + return Boolean.TRUE; + } + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java index 766974be..344b97d1 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java @@ -5,6 +5,7 @@ import java.math.BigDecimal; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.jero.common.aspect.annotation.Dict; @@ -188,4 +189,12 @@ public class PayCommonProject implements Serializable { @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "更新时间") private Date updateTime; + + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目) + */ + @TableField(exist = false) + @Dict(dicCode = "project_type") + @ApiModelProperty(value = "项目类型") + private Integer projectType; }