到账
This commit is contained in:
+19
-23
@@ -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<PayPaymentRecord, IPayPaymentRecordService> {
|
||||
@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<PayPaymentRecord> queryWrapper = QueryGenerator.initQueryWrapper(payPaymentRecord, req.getParameterMap());
|
||||
Page<PayPaymentRecord> page = new Page<PayPaymentRecord>(pageNo, pageSize);
|
||||
IPage<PayPaymentRecord> pageList = payPaymentRecordService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
|
||||
Page<PayCommonProject> page = new Page<PayCommonProject>(pageNo, pageSize);
|
||||
List<PayCommonProject> 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("添加成功!");
|
||||
}
|
||||
|
||||
|
||||
+11
-6
@@ -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)
|
||||
|
||||
+12
@@ -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<PayPaymentRecord> {
|
||||
|
||||
/**
|
||||
* 到账开票主列表
|
||||
* @param page
|
||||
* @param payCommonProject
|
||||
* @return
|
||||
*/
|
||||
List<PayCommonProject> mainList(Page page, @Param("payCommonProject")PayCommonProject payCommonProject);
|
||||
}
|
||||
|
||||
+75
@@ -2,4 +2,79 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.payment.mapper.PayPaymentRecordMapper">
|
||||
|
||||
<!-- 到账开票主列表-->
|
||||
<select id="mainList" resultType="com.jero.project.entity.PayCommonProject">
|
||||
<!-- 普通项目-->
|
||||
select c.id,c.charge_project, c.charge_use, c.principal_id,c.principal_name,c.charge_company_temporary_name,c.receivable_amount,c.paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType
|
||||
from pay_common_project c
|
||||
where c.receivable_amount <![CDATA[>]]> c.paid_amount
|
||||
<if test="payCommonProject.principalId != null and payCommonProject.principalId != ''">
|
||||
AND c.principal_id = #{payCommonProject.principalId}
|
||||
</if>
|
||||
<if test="payCommonProject.chargeProject != null and payCommonProject.chargeProject != ''">
|
||||
AND c.charge_project = #{payCommonProject.chargeProject}
|
||||
</if>
|
||||
<if test="payCommonProject.chargeCompanyTemporaryName != null and payCommonProject.chargeCompanyTemporaryName != ''">
|
||||
AND c.charge_company_temporary_name = #{payCommonProject.chargeCompanyTemporaryName}
|
||||
</if>
|
||||
<!--工作组项目-->
|
||||
UNION ALL
|
||||
select gsub.id,g.working_group_project, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2
|
||||
from pay_working_group g
|
||||
left join pay_working_group_subitem gsub on g.id = gsub.charge_company_id
|
||||
where gsub.receivable_amount <![CDATA[>]]> gsub.paid_amount
|
||||
<if test="payCommonProject.principalId != null and payCommonProject.principalId != ''">
|
||||
AND g.principal_id_a = #{payCommonProject.principalId}
|
||||
</if>
|
||||
<if test="payCommonProject.chargeProject != null and payCommonProject.chargeProject != ''">
|
||||
AND g.working_group_project = #{payCommonProject.chargeProject}
|
||||
</if>
|
||||
<if test="payCommonProject.chargeCompanyTemporaryName != null and payCommonProject.chargeCompanyTemporaryName != ''">
|
||||
AND gsub.charge_company_temporary_name = #{payCommonProject.chargeCompanyTemporaryName}
|
||||
</if>
|
||||
<!-- 会议项目-->
|
||||
UNION ALL
|
||||
select sit.id,meeting.meeting_name,sit.charge_use, meeting.director_id, meeting.director_name,sit.company_name,sit.amount_receivable,sit.paid_amount,sit.need_invoice,sit.pack,sit.in_account,sit.make_invoice,sit.mail,sit.create_time,3
|
||||
from pay_meeting meeting
|
||||
left join pay_meeting_situation sit on meeting.id = sit.meeting_id
|
||||
where sit.amount_receivable <![CDATA[>]]> sit.paid_amount
|
||||
<if test="payCommonProject.principalId != null and payCommonProject.principalId != ''">
|
||||
AND meeting.director_id = #{payCommonProject.principalId}
|
||||
</if>
|
||||
<if test="payCommonProject.chargeProject != null and payCommonProject.chargeProject != ''">
|
||||
AND meeting.meeting_name = #{payCommonProject.chargeProject}
|
||||
</if>
|
||||
<if test="payCommonProject.chargeCompanyTemporaryName != null and payCommonProject.chargeCompanyTemporaryName != ''">
|
||||
AND sit.company_name = #{payCommonProject.chargeCompanyTemporaryName}
|
||||
</if>
|
||||
<!-- 会员项目-->
|
||||
UNION ALL
|
||||
select msub.id,member.project_name,msub.charge_use,member.director_id,member.director_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4
|
||||
from pay_member_project member
|
||||
left join pay_member_project_subitem msub on member.id=msub.project_id
|
||||
where msub.amount_receivable <![CDATA[>]]> msub.paid_amount
|
||||
<if test="payCommonProject.principalId != null and payCommonProject.principalId != ''">
|
||||
AND member.director_id = #{payCommonProject.principalId}
|
||||
</if>
|
||||
<if test="payCommonProject.chargeProject != null and payCommonProject.chargeProject != ''">
|
||||
AND member.project_name = #{payCommonProject.chargeProject}
|
||||
</if>
|
||||
<if test="payCommonProject.chargeCompanyTemporaryName != null and payCommonProject.chargeCompanyTemporaryName != ''">
|
||||
AND msub.company_name = #{payCommonProject.chargeCompanyTemporaryName}
|
||||
</if>
|
||||
<!-- 标协会员项目-->
|
||||
UNION ALL
|
||||
select tmsub.id,tmember.project_name,tmsub.charge_use,'','',tmsub.company_name,tmsub.amount_receivable,tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5
|
||||
from tb_member_project tmember
|
||||
left join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
|
||||
where tmsub.amount_receivable <![CDATA[>]]> tmsub.paid_amount
|
||||
<if test="payCommonProject.chargeProject != null and payCommonProject.chargeProject != ''">
|
||||
AND tmember.project_name = #{payCommonProject.chargeProject}
|
||||
</if>
|
||||
<if test="payCommonProject.chargeCompanyTemporaryName != null and payCommonProject.chargeCompanyTemporaryName != ''">
|
||||
AND tmsub.company_name = #{payCommonProject.chargeCompanyTemporaryName}
|
||||
</if>
|
||||
order by create_time DESC
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
+17
@@ -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<PayPaymentRecord> {
|
||||
/**
|
||||
* 到账开票主列表
|
||||
* @param page
|
||||
* @param payCommonProject
|
||||
* @return
|
||||
*/
|
||||
List<PayCommonProject> mainList(Page page, PayCommonProject payCommonProject);
|
||||
|
||||
/**
|
||||
* 添加阶段
|
||||
* @param payPaymentRecord
|
||||
*/
|
||||
void addPhase(PayPaymentRecord payPaymentRecord);
|
||||
}
|
||||
|
||||
+91
@@ -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<PayPaymentRecordMapper, PayPaymentRecord> implements IPayPaymentRecordService {
|
||||
@Resource
|
||||
private PayPaymentRecordMapper payPaymentRecordMapper;
|
||||
@Resource
|
||||
private PayCommonProjectMapper payCommonProjectMapper;
|
||||
|
||||
/**
|
||||
* 到账开票主列表
|
||||
* @param page
|
||||
* @param payCommonProject
|
||||
* @return
|
||||
*/
|
||||
public List<PayCommonProject> 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user