add 到账开票页面增加会员证书

This commit is contained in:
lijiarao
2021-12-16 14:04:32 +08:00
parent 4b5d9894fc
commit 3f2af6729f
7 changed files with 108 additions and 7 deletions
+1 -1
View File
@@ -49,7 +49,7 @@ create table tb_certificate_payment
in_account tinyint(1) null comment '到账',
make_invoice tinyint(1) null comment '开票',
mail tinyint(1) null comment '邮寄',
charge_use tinyint(1) default 3 null comment '来款用途(字典表)',
charge_use tinyint(1) default 18 null comment '来款用途(字典表)',
invoice_amount decimal(12, 2) null comment '开票金额'
)
comment '标协会员证书缴费表' charset = utf8;
@@ -71,6 +71,10 @@ public class PayIncomeContractCommon {
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
*/
public final static String PROJECT_TYPE5 = "5";
/**
* 6:标协证书项目
*/
public final static String PROJECT_TYPE6 = "6";
/**
* 来款状态 0:全部 1:到期未付款
*/
@@ -137,14 +137,18 @@ public class TbCertificatePayment implements Serializable {
* completed 已完结
*/
@ApiModelProperty(value = "缴费状态")
@Dict(dicCode = "payment_status")
private String paymentStatus;
/**缴费记录*/
@Excel(name = "缴费记录", width = 15)
@ApiModelProperty(value = "缴费记录")
private String paymentRecord;
/**标协缴费表id*/
@ApiModelProperty(value = "标协缴费表id")
private String tbPaymentId;
/**会员id*/
@Excel(name = "会员id", width = 15)
@@ -94,6 +94,24 @@
<if test="payCommonProject.chargeCompanyTemporaryName != null and payCommonProject.chargeCompanyTemporaryName != ''">
AND tmsub.company_name like concat('%',concat(#{payCommonProject.chargeCompanyTemporaryName},'%'))
</if>
<!-- 标协证书项目-->
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
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
where
tcp.amount_receivable <![CDATA[<>]]> 0
and tcp.amount_receivable is not null
<if test="payCommonProject.principalId != null and payCommonProject.principalId != ''">
AND 1=2
</if>
<if test="payCommonProject.chargeProject != null and payCommonProject.chargeProject != ''">
AND tmember.project_name like concat('%',concat(#{payCommonProject.chargeProject},'%'))
</if>
<if test="payCommonProject.chargeCompanyTemporaryName != null and payCommonProject.chargeCompanyTemporaryName != ''">
AND tcp.company_name like concat('%',concat(#{payCommonProject.chargeCompanyTemporaryName},'%'))
</if>
)p
LEFT JOIN pay_payment_record ppr ON ppr.project_id = p.id
where
@@ -76,6 +76,8 @@ public interface IPayPaymentRecordService extends IService<PayPaymentRecord> {
//标协类型新增时条件校验
void type5AddCheck(PayPaymentRecord payPaymentRecord);
void type6AddCheck(PayPaymentRecord payPaymentRecord);
/**
* 编辑来款
* @param payPaymentRecord
@@ -16,8 +16,10 @@ import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbCertificatePayment;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.mapper.TbCertificatePaymentMapper;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
@@ -67,6 +69,8 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
@Resource
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
@Resource
private TbCertificatePaymentMapper certificatePaymentMapper;
@Resource
private Environment env;
@Resource
private ISysUserService sysUserService;
@@ -192,6 +196,19 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
tbMember.setPaymentStatus(PaymentStatusEnum.TO_BE_REVIEWED.getCode());
tbMemberProjectSubitemMapper.updateById(tbMember);
break;
//标协证书
case PayIncomeContractCommon.PROJECT_TYPE6:
//标协类型条件校验
payPaymentRecordService.type6AddCheck(payPaymentRecord);
//来款条件校验
payPaymentRecordService.amountReceivedVerification( payPaymentRecord, ProjectCommon.PAYMENT_FLAG2);
TbCertificatePayment certificatePayment= new TbCertificatePayment();
certificatePayment.setId(payPaymentRecord.getProjectId());
certificatePayment.setPaymentStatus(PaymentStatusEnum.TO_BE_REVIEWED.getCode());
certificatePaymentMapper.updateById(certificatePayment);
break;
default:break;
}
@@ -26,11 +26,9 @@ import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.member.entity.PayMemberProject;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbMemberProject;
import com.jero.member.entity.TbMemberProjectSubitem;
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.member.service.IPayMemberProjectService;
import com.jero.member.service.ITbMemberProjectService;
@@ -113,6 +111,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
private IPayContactsManagementService payContactsManagementService;
@Resource
private ITbMemberProjectService tbMemberProjectService;
@Resource
private TbCertificatePaymentMapper certificatePaymentMapper;
@Value("${jero.path.upload}")
private String upLoadPath;
@@ -143,11 +143,12 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
@Override
public void addAmountReceived(List<PayPaymentRecord> list,Integer flag){
List<TbCheckVo> typr5List = new ArrayList<>();
List<TbCheckVo> typr6List = new ArrayList<>();
for(PayPaymentRecord payPaymentRecord : list){
addOneAmountReceived(payPaymentRecord,typr5List,flag);
}
//推送到会员
//会员到账推送到会员系统
if(typr5List.size()>0){
JSONObject jsonObject = AuthenticationUtils.postResult("/paymentInfo/incomingPaymentCheck", null, typr5List);
String memberNo = jsonObject.getString("memberNo");
@@ -162,6 +163,10 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
updateStandards(id,memberInfo);
}
}
//证书到账推送到会员系统
if(typr6List.size()>0){
JSONObject jsonObject = AuthenticationUtils.postResult("/certificatePaymentInfo/incomingPaymentCheck", null, typr5List);
}
}
/**
* 来款条件校验
@@ -257,6 +262,22 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
//是否还能再添加来款
isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
break;
//标协证书
case PayIncomeContractCommon.PROJECT_TYPE6:
//标协证书类型条件校验
type6AddCheck(payPaymentRecord);
TbCertificatePayment tbCertificatePayment = certificatePaymentMapper.selectById(payPaymentRecord.getProjectId());
receivableAmount = tbCertificatePayment.getAmountReceivable();//应收
paidAmount=tbCertificatePayment.getPaidAmount();//实收
TbMemberProject tbMemberProject1 = tbMemberProjectService.getById(tbCertificatePayment.getProjectId());
if(Objects.isNull(tbMemberProject1)){
throw new JeroBootException("标协会员不存在!");
}
//是否还能再添加来款
isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
break;
default:break;
}
@@ -517,6 +538,41 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
}
@Override
public void type6AddCheck(PayPaymentRecord payPaymentRecord){
LambdaQueryWrapper<PayPaymentRecord> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayPaymentRecord::getProjectId, payPaymentRecord.getProjectId());
wrapper.eq(PayPaymentRecord::getProjectType, Integer.valueOf(PayIncomeContractCommon.PROJECT_TYPE6));
List<PayPaymentRecord> type5List = payPaymentRecordMapper.selectList(wrapper);
if(type5List!=null && type5List.size()>0){
throw new JeroBootException("标协证书项目,只能来款一次。");
}
TbCertificatePayment tbCertificatePayment = certificatePaymentMapper.selectById(payPaymentRecord.getProjectId());
BigDecimal rAInsert = tbCertificatePayment.getAmountReceivable();//应收
BigDecimal pAInsert = tbCertificatePayment.getPaidAmount();//实收
BigDecimal aRInsert =payPaymentRecord.getAmountReceived().setScale(2,BigDecimal.ROUND_HALF_UP);;//到账
if(rAInsert == null){
rAInsert = new BigDecimal("0");
}
if(pAInsert == null){
pAInsert = new BigDecimal("0");
}
if(aRInsert == null){
aRInsert = new BigDecimal("0");
}
//欠款
BigDecimal debtInsert = rAInsert.subtract(pAInsert);
if(aRInsert.compareTo(debtInsert) != 0){
throw new JeroBootException("标协证书项目,到账金额不等于欠款金额。");
}
}
/**
* 是否还能再添加来款
* @param receivableAmount 应收