add 确认收入新增和编辑功能增加税额,列表返回确认收入状态

This commit is contained in:
lijiarao
2022-08-02 11:35:32 +08:00
parent f2153ea235
commit 756eeaf42f
5 changed files with 91 additions and 15 deletions
@@ -1,11 +1,20 @@
package com.jero.payment.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.member.entity.TbCertificatePayment;
import com.jero.payment.entity.PayConfirmPaymentRecord;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author liJiaRao
* @date 2022-06-08 17:24
*/
public interface PayConfirmPaymentRecordMapper extends BaseMapper<PayConfirmPaymentRecord> {
List<PayConfirmPaymentRecord> selectByProjectId(@Param("projectId")String projectId);
PayConfirmPaymentRecord selectOneByProjectIdAndProjectType(@Param("projectId")String projectId,@Param("projectType")String projectType);
}
@@ -10,12 +10,34 @@
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="project_id" jdbcType="VARCHAR" property="projectId" />
<result column="project_type" jdbcType="VARCHAR" property="projectType" />
<result column="amount_received" jdbcType="DECIMAL" property="amountReceived" />
<result column="payment_date" jdbcType="DATE" property="paymentDate" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, create_by, create_time, update_by, update_time, project_id, amount_received,
id, create_by, create_time, update_by, update_time, project_id, amount_received,project_type,
payment_date
</sql>
<!--auto generated by MybatisCodeHelper on 2022-08-02-->
<select id="selectByProjectId" resultMap="BaseResultMap">
select sum(amount_received) as amount_received,
sum(tax) as tax,
sum(no_tax_amount) as no_tax_amount
from pay_confirm_payment_record
where project_id = #{projectId,jdbcType=VARCHAR}
group by project_id
</select>
<!--auto generated by MybatisCodeHelper on 2022-08-02-->
<select id="selectOneByProjectIdAndProjectType" resultMap="BaseResultMap">
select sum(amount_received) as amount_received,
sum(tax) as tax,
sum(no_tax_amount) as no_tax_amount
from pay_confirm_payment_record
where project_id = #{projectId,jdbcType=VARCHAR}
and project_type = #{projectType}
group by project_id
</select>
</mapper>
@@ -5,11 +5,11 @@
<!-- 到账开票主列表-->
<select id="mainList" resultType="com.jero.project.entity.PayCommonProject">
select p.id,p.charge_project, p.charge_use, p.principal_id,p.principal_name,p.charge_company_id,p.charge_company_temporary_name,p.receivable_amount,p.paid_amount,p.need_invoice,p.pack,p.in_account,p.make_invoice,p.mail,p.create_time,p.projectType,
p.invoice_amount,p.mail_contacts_id,p.register_check_result,p.contacts_temporary_name,p.payment_status,p.charge_company_temporary_id,p.confirm_amount
p.invoice_amount,p.mail_contacts_id,p.register_check_result,p.contacts_temporary_name,p.payment_status,p.charge_company_temporary_id,p.confirm_amount,p.affirm_income
from
(<!-- 普通项目-->
select c.id,c.charge_project, c.charge_use, c.principal_id,su.realname as principal_name,c.charge_company_id,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,
c.invoice_amount,c.mail_contacts_id,'' as register_check_result,c.contacts_temporary_name,c.payment_status,c.charge_company_temporary_id,c.confirm_amount
c.invoice_amount,c.mail_contacts_id,'' as register_check_result,c.contacts_temporary_name,c.payment_status,c.charge_company_temporary_id,c.confirm_amount,c.affirm_income
from pay_common_project c
left join sys_user su on c.principal_id = su.id
where
@@ -40,7 +40,7 @@
<!--工作组项目-->
UNION ALL
select gsub.id,g.working_group_project, gsub.charge_use, g.principal_id_a,su.realname,gsub.charge_company_id,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,
gsub.invoice_amount,gsub.mail_contacts_id,'' as register_check_result,gsubc.contacts_temporary_name as contacts_temporary_name_one,gsub.payment_status,gsub.charge_company_temporary_id,gsub.confirm_amount
gsub.invoice_amount,gsub.mail_contacts_id,'' as register_check_result,gsubc.contacts_temporary_name as contacts_temporary_name_one,gsub.payment_status,gsub.charge_company_temporary_id,gsub.confirm_amount,gsub.affirm_income
from pay_working_group g
left join sys_user su on g.principal_id_a = su.id
inner join pay_working_group_subitem gsub on g.id = gsub.working_group_id
@@ -73,7 +73,7 @@
<!-- 会议项目-->
UNION ALL
select sit.id,meeting.meeting_name,sit.charge_use, meeting.director_id, su.realname,sit.company_id,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,
sit.invoice_amount,sit.post_contact_id,sit.register_check_result,sit.company_contact_name,sit.payment_status,sit.company_id,sit.confirm_amount
sit.invoice_amount,sit.post_contact_id,sit.register_check_result,sit.company_contact_name,sit.payment_status,sit.company_id,sit.confirm_amount,sit.affirm_income
from pay_meeting meeting
inner join pay_meeting_situation sit on meeting.id = sit.meeting_id
left join sys_user su on su.id = meeting.director_id
@@ -105,7 +105,7 @@
<!-- 会员项目-->
UNION ALL
select msub.id,pmp.project_name,msub.charge_use,pmp.director_id,su.realname,msub.company_id,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,
msub.invoice_amount,msub.post_contact_id,'' as register_check_result,msub.company_contact_name,msub.payment_status,msub.company_temporary_id,msub.confirm_amount
msub.invoice_amount,msub.post_contact_id,'' as register_check_result,msub.company_contact_name,msub.payment_status,msub.company_temporary_id,msub.confirm_amount,msub.affirm_income
from pay_member_project pmp
inner join pay_member_project_subitem msub on pmp.id=msub.project_id
left join sys_user su on su.id = pmp.director_id
@@ -137,7 +137,7 @@
<!-- 标协会员项目-->
UNION ALL
select tmsub.id,tmember.project_name,tmsub.charge_use,tmember.director_id,su.realname,tmsub.company_id,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,
tmsub.invoice_amount,tmsub.liaison_man_id,'' as register_check_result,tmsub.liaison_man,tmsub.payment_status,tmsub.company_id,tmsub.confirm_amount
tmsub.invoice_amount,tmsub.liaison_man_id,'' as register_check_result,tmsub.liaison_man,tmsub.payment_status,tmsub.company_id,tmsub.confirm_amount,tmsub.affirm_income
from tb_member_project tmember
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
left join sys_user su on su.id = tmember.director_id
@@ -169,7 +169,7 @@
<!-- 标协证书项目-->
UNION ALL
select tcp.id,tmember.project_name,tcp.charge_use,tmember.director_id,su.realname,tcp.company_id,tcp.company_name,tcp.amount_receivable,tcp.paid_amount,tcp.invoice_requirements,tcp.pack,tcp.in_account,tcp.make_invoice,tcp.mail,tcp.create_time,6,
tcp.invoice_amount,tcp.liaison_man_id,'' as register_check_result,tcp.liaison_man,tcp.payment_status,tcp.company_id,tcp.confirm_amount
tcp.invoice_amount,tcp.liaison_man_id,'' as register_check_result,tcp.liaison_man,tcp.payment_status,tcp.company_id,tcp.confirm_amount,tcp.affirm_income
from tb_member_project tmember
inner join tb_certificate_payment tcp on tmember.id=tcp.project_id
left join sys_user su on su.id = tmember.director_id
@@ -13,6 +13,7 @@ import com.jero.member.entity.*;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.mapper.TbCertificatePaymentMapper;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.vo.TbCheckVo;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayCommonProject;
@@ -22,9 +23,11 @@ import com.jero.project.entity.PayWorkingGroupSubItemContacts;
import com.jero.project.mapper.PayCommonProjectMapper;
import com.jero.project.mapper.PayWorkingGroupSubItemMapper;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -52,17 +55,35 @@ public class PayConfirmPaymentRecordService extends ServiceImpl<PayConfirmPaymen
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
@Resource
private TbCertificatePaymentMapper certificatePaymentMapper;
@Autowired
private IPayPaymentRecordService payPaymentRecordService;
public void add(PayConfirmPaymentRecord payConfirmPaymentRecord) {
//如果没有填写税额就存入默认税额
BigDecimal noTaxAmount = payConfirmPaymentRecord.getNoTaxAmount();
BigDecimal tax = payConfirmPaymentRecord.getTax();
BigDecimal amountReceived = payConfirmPaymentRecord.getAmountReceived();
if (noTaxAmount == null || tax == null){
noTaxAmount = amountReceived.divide(new BigDecimal("1.06"), 2, RoundingMode.HALF_UP);
tax = amountReceived.subtract(noTaxAmount);
payConfirmPaymentRecord.setNoTaxAmount(noTaxAmount);
payConfirmPaymentRecord.setTax(tax);
}
payPaymentRecordService.isTax(noTaxAmount,tax,amountReceived);
save(payConfirmPaymentRecord);
updateConfirmAmount(payConfirmPaymentRecord);
}
private void updateConfirmAmount(PayConfirmPaymentRecord payConfirmPaymentRecord) {
private void updateConfirmAmount(PayConfirmPaymentRecord payConfirmPaymentRecord) {
String projectId = payConfirmPaymentRecord.getProjectId();
String projectType = payConfirmPaymentRecord.getProjectType();
BigDecimal confirmAmount = payConfirmPaymentRecord.getAmountReceived();
//获得金额的和
PayConfirmPaymentRecord confirmPaymentRecord = baseMapper.selectOneByProjectIdAndProjectType(projectId, projectType);
BigDecimal confirmAmount = confirmPaymentRecord.getAmountReceived();
BigDecimal noTaxAmount = confirmPaymentRecord.getNoTaxAmount();
BigDecimal tax = confirmPaymentRecord.getTax();
Integer affirmIncome;
switch (projectType){
// 普通项目
@@ -74,6 +95,10 @@ public class PayConfirmPaymentRecordService extends ServiceImpl<PayConfirmPaymen
}
//更新主列表
payCommonProject.setConfirmAmount(confirmAmount);
payCommonProject.setConfirmTax(tax);
payCommonProject.setConfirmNoTaxAmount(noTaxAmount);
affirmIncome = payPaymentRecordService.getInAccount(payCommonProject.getReceivableAmount(), confirmAmount);
payCommonProject.setAffirmIncome(affirmIncome);
payCommonProjectMapper.updateById(payCommonProject);
break;
@@ -85,6 +110,10 @@ public class PayConfirmPaymentRecordService extends ServiceImpl<PayConfirmPaymen
}
//更新主列表
payWorking.setConfirmAmount(confirmAmount);
payWorking.setConfirmTax(tax);
payWorking.setConfirmNoTaxAmount(noTaxAmount);
affirmIncome = payPaymentRecordService.getInAccount(payWorking.getReceivableAmount(), confirmAmount);
payWorking.setAffirmIncome(affirmIncome);
payWorkingGroupSubItemMapper.updateById(payWorking);
break;
@@ -97,6 +126,10 @@ public class PayConfirmPaymentRecordService extends ServiceImpl<PayConfirmPaymen
}
//更新主列表
meeting.setConfirmAmount(confirmAmount);
meeting.setConfirmTax(tax);
meeting.setConfirmNoTaxAmount(noTaxAmount);
affirmIncome = payPaymentRecordService.getInAccount(meeting.getAmountReceivable(), confirmAmount);
meeting.setAffirmIncome(affirmIncome);
payMeetingSituationMapper.updateById(meeting);
break;
@@ -109,6 +142,10 @@ public class PayConfirmPaymentRecordService extends ServiceImpl<PayConfirmPaymen
}
//更新主列表
member.setConfirmAmount(confirmAmount);
member.setConfirmTax(tax);
member.setConfirmNoTaxAmount(noTaxAmount);
affirmIncome = payPaymentRecordService.getInAccount(member.getAmountReceivable(), confirmAmount);
member.setAffirmIncome(affirmIncome);
payMemberProjectSubitemMapper.updateById(member);
break;
@@ -121,6 +158,10 @@ public class PayConfirmPaymentRecordService extends ServiceImpl<PayConfirmPaymen
}
//更新主列表
tbMember.setConfirmAmount(confirmAmount);
tbMember.setConfirmTax(tax);
tbMember.setConfirmNoTaxAmount(noTaxAmount);
affirmIncome = payPaymentRecordService.getInAccount(tbMember.getAmountReceivable(), confirmAmount);
tbMember.setAffirmIncome(affirmIncome);
tbMemberProjectSubitemMapper.updateById(tbMember);
break;
//标协证书
@@ -132,6 +173,10 @@ public class PayConfirmPaymentRecordService extends ServiceImpl<PayConfirmPaymen
}
//更新主列表
tbMemberCertificate.setConfirmAmount(confirmAmount);
tbMemberCertificate.setConfirmTax(tax);
tbMemberCertificate.setConfirmNoTaxAmount(noTaxAmount);
affirmIncome = payPaymentRecordService.getInAccount(tbMemberCertificate.getAmountReceivable(), confirmAmount);
tbMemberCertificate.setAffirmIncome(affirmIncome);
certificatePaymentMapper.updateById(tbMemberCertificate);
break;
@@ -836,12 +836,12 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
*/
@Override
public Integer getInAccount(BigDecimal receivableAmount,BigDecimal paidAmount){
BigDecimal zero =new BigDecimal("0");
BigDecimal zero = BigDecimal.ZERO;
if(receivableAmount == null){
receivableAmount = new BigDecimal("0");
receivableAmount = BigDecimal.ZERO;
}
if(paidAmount == null){
paidAmount = new BigDecimal("0");
paidAmount = BigDecimal.ZERO;
}
//应收=0
@@ -849,7 +849,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
return 3;
}
//应收>实收>0
if(receivableAmount.compareTo(paidAmount) == 1 && paidAmount.compareTo(zero)==1){
if(receivableAmount.compareTo(paidAmount) > 0 && paidAmount.compareTo(zero) > 0){
return 2;
}
//应收=实收