到账开票
This commit is contained in:
+2
-1
@@ -119,9 +119,10 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
|||||||
|
|
||||||
//校验不同项目是否属于同一个公司
|
//校验不同项目是否属于同一个公司
|
||||||
private String checkCompanyProject(String[] projectIdArray,String[] projectTypeArray){
|
private String checkCompanyProject(String[] projectIdArray,String[] projectTypeArray){
|
||||||
|
String standardCompanyId =null;//基准公司id
|
||||||
|
|
||||||
for (int i = 0; i < projectTypeArray.length; i++) {
|
for (int i = 0; i < projectTypeArray.length; i++) {
|
||||||
|
|
||||||
String standardCompanyId =null;//基准公司id
|
|
||||||
switch (projectTypeArray[i]) {
|
switch (projectTypeArray[i]) {
|
||||||
|
|
||||||
// 普通项目
|
// 普通项目
|
||||||
|
|||||||
+78
-18
@@ -81,6 +81,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
BigDecimal receivableAmount;
|
BigDecimal receivableAmount;
|
||||||
Boolean isAdd;
|
Boolean isAdd;
|
||||||
BigDecimal newPaidAmount;
|
BigDecimal newPaidAmount;
|
||||||
|
BigDecimal paidAmount;
|
||||||
|
Integer inAccount;
|
||||||
//累加主列表实收金额
|
//累加主列表实收金额
|
||||||
switch (String.valueOf(payPaymentRecord.getProjectType())){
|
switch (String.valueOf(payPaymentRecord.getProjectType())){
|
||||||
|
|
||||||
@@ -89,14 +91,16 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(payPaymentRecord.getProjectId());
|
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(payPaymentRecord.getProjectId());
|
||||||
|
|
||||||
receivableAmount = payCommonProject.getReceivableAmount();//应收
|
receivableAmount = payCommonProject.getReceivableAmount();//应收
|
||||||
|
paidAmount=payCommonProject.getPaidAmount();//实收
|
||||||
//是否还能再添加来款
|
//是否还能再添加来款
|
||||||
isAdd = isAdd(receivableAmount, payPaymentRecord.getAmountReceived());
|
isAdd = isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
|
||||||
if(isAdd){
|
if(isAdd){
|
||||||
//累加实收
|
newPaidAmount =addPaidAmount(paidAmount,payPaymentRecord.getAmountReceived());//累加实收
|
||||||
newPaidAmount =addPaidAmount(payCommonProject.getPaidAmount(),payPaymentRecord.getAmountReceived());
|
inAccount = getInAccount(receivableAmount, newPaidAmount);//到账状态
|
||||||
|
|
||||||
//更新主列表
|
//更新主列表
|
||||||
payCommonProject.setPaidAmount(newPaidAmount);
|
payCommonProject.setPaidAmount(newPaidAmount);
|
||||||
|
payCommonProject.setInAccount(inAccount);
|
||||||
payCommonProjectMapper.updateById(payCommonProject);
|
payCommonProjectMapper.updateById(payCommonProject);
|
||||||
}else{
|
}else{
|
||||||
return Result.error("到账金额大于当前欠款金额,不可提交!");
|
return Result.error("到账金额大于当前欠款金额,不可提交!");
|
||||||
@@ -107,14 +111,17 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(payPaymentRecord.getProjectId());
|
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(payPaymentRecord.getProjectId());
|
||||||
|
|
||||||
receivableAmount = payWorking.getReceivableAmount();//应收
|
receivableAmount = payWorking.getReceivableAmount();//应收
|
||||||
|
paidAmount=payWorking.getPaidAmount();//实收
|
||||||
|
|
||||||
//是否还能再添加来款
|
//是否还能再添加来款
|
||||||
isAdd = isAdd(receivableAmount, payPaymentRecord.getAmountReceived());
|
isAdd = isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
|
||||||
if(isAdd){
|
if(isAdd){
|
||||||
//累加实收
|
newPaidAmount =addPaidAmount(paidAmount,payPaymentRecord.getAmountReceived());//累加实收
|
||||||
newPaidAmount =addPaidAmount(payWorking.getPaidAmount(),payPaymentRecord.getAmountReceived());
|
inAccount = getInAccount(receivableAmount, newPaidAmount);//到账状态
|
||||||
|
|
||||||
//更新主列表
|
//更新主列表
|
||||||
payWorking.setPaidAmount(newPaidAmount);
|
payWorking.setPaidAmount(newPaidAmount);
|
||||||
|
payWorking.setInAccount(inAccount);
|
||||||
payWorkingGroupSubItemMapper.updateById(payWorking);
|
payWorkingGroupSubItemMapper.updateById(payWorking);
|
||||||
}else{
|
}else{
|
||||||
return Result.error("到账金额大于当前欠款金额,不可提交!");
|
return Result.error("到账金额大于当前欠款金额,不可提交!");
|
||||||
@@ -125,14 +132,17 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(payPaymentRecord.getProjectId());
|
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(payPaymentRecord.getProjectId());
|
||||||
|
|
||||||
receivableAmount = meeting.getAmountReceivable();//应收
|
receivableAmount = meeting.getAmountReceivable();//应收
|
||||||
|
paidAmount=meeting.getPaidAmount();//实收
|
||||||
|
|
||||||
//是否还能再添加来款
|
//是否还能再添加来款
|
||||||
isAdd = isAdd(receivableAmount, payPaymentRecord.getAmountReceived());
|
isAdd = isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
|
||||||
if(isAdd){
|
if(isAdd){
|
||||||
//累加实收
|
newPaidAmount =addPaidAmount(paidAmount,payPaymentRecord.getAmountReceived());//累加实收
|
||||||
newPaidAmount =addPaidAmount(meeting.getPaidAmount(),payPaymentRecord.getAmountReceived());
|
inAccount = getInAccount(receivableAmount, newPaidAmount);//到账状态
|
||||||
|
|
||||||
//更新主列表
|
//更新主列表
|
||||||
meeting.setPaidAmount(newPaidAmount);
|
meeting.setPaidAmount(newPaidAmount);
|
||||||
|
meeting.setInAccount(inAccount);
|
||||||
payMeetingSituationMapper.updateById(meeting);
|
payMeetingSituationMapper.updateById(meeting);
|
||||||
}else{
|
}else{
|
||||||
return Result.error("到账金额大于当前欠款金额,不可提交!");
|
return Result.error("到账金额大于当前欠款金额,不可提交!");
|
||||||
@@ -143,14 +153,17 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
|
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
|
||||||
|
|
||||||
receivableAmount = member.getAmountReceivable();//应收
|
receivableAmount = member.getAmountReceivable();//应收
|
||||||
|
paidAmount=member.getPaidAmount();//实收
|
||||||
|
|
||||||
//是否还能再添加来款
|
//是否还能再添加来款
|
||||||
isAdd = isAdd(receivableAmount, payPaymentRecord.getAmountReceived());
|
isAdd = isAdd(receivableAmount, paidAmount,payPaymentRecord.getAmountReceived());
|
||||||
if(isAdd){
|
if(isAdd){
|
||||||
//累加实收
|
newPaidAmount =addPaidAmount(paidAmount,payPaymentRecord.getAmountReceived());//累加实收
|
||||||
newPaidAmount =addPaidAmount(member.getPaidAmount(),payPaymentRecord.getAmountReceived());
|
inAccount = getInAccount(receivableAmount, newPaidAmount);//到账状态
|
||||||
|
|
||||||
//更新主列表
|
//更新主列表
|
||||||
member.setPaidAmount(newPaidAmount);
|
member.setPaidAmount(newPaidAmount);
|
||||||
|
member.setInAccount(inAccount);
|
||||||
payMemberProjectSubitemMapper.updateById(member);
|
payMemberProjectSubitemMapper.updateById(member);
|
||||||
}else{
|
}else{
|
||||||
return Result.error("到账金额大于当前欠款金额,不可提交!");
|
return Result.error("到账金额大于当前欠款金额,不可提交!");
|
||||||
@@ -161,14 +174,17 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
TbMemberProjectSubitem tbMember = tbMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
|
TbMemberProjectSubitem tbMember = tbMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
|
||||||
|
|
||||||
receivableAmount = tbMember.getAmountReceivable();//应收
|
receivableAmount = tbMember.getAmountReceivable();//应收
|
||||||
|
paidAmount=tbMember.getPaidAmount();//实收
|
||||||
|
|
||||||
//是否还能再添加来款
|
//是否还能再添加来款
|
||||||
isAdd = isAdd(receivableAmount, payPaymentRecord.getAmountReceived());
|
isAdd = isAdd(receivableAmount,paidAmount, payPaymentRecord.getAmountReceived());
|
||||||
if(isAdd){
|
if(isAdd){
|
||||||
//累加实收
|
newPaidAmount =addPaidAmount(paidAmount,payPaymentRecord.getAmountReceived());//累加实收
|
||||||
newPaidAmount =addPaidAmount(tbMember.getPaidAmount(),payPaymentRecord.getAmountReceived());
|
inAccount = getInAccount(receivableAmount, newPaidAmount);//到账状态
|
||||||
|
|
||||||
//更新主列表
|
//更新主列表
|
||||||
tbMember.setPaidAmount(newPaidAmount);
|
tbMember.setPaidAmount(newPaidAmount);
|
||||||
|
tbMember.setInAccount(inAccount);
|
||||||
tbMemberProjectSubitemMapper.updateById(tbMember);
|
tbMemberProjectSubitemMapper.updateById(tbMember);
|
||||||
}else{
|
}else{
|
||||||
return Result.error("到账金额大于当前欠款金额,不可提交!");
|
return Result.error("到账金额大于当前欠款金额,不可提交!");
|
||||||
@@ -192,6 +208,17 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
if(type5List!=null && type5List.size()>0){
|
if(type5List!=null && type5List.size()>0){
|
||||||
return "标协会员项目,只能来款一次。";
|
return "标协会员项目,只能来款一次。";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TbMemberProjectSubitem tbMemberInsert = tbMemberProjectSubitemMapper.selectById(payPaymentRecord.getProjectId());
|
||||||
|
|
||||||
|
BigDecimal rAInsert = tbMemberInsert.getAmountReceivable();//应收
|
||||||
|
BigDecimal pAInsert = tbMemberInsert.getPaidAmount();//实收
|
||||||
|
BigDecimal aRInsert =payPaymentRecord.getAmountReceived();//到账
|
||||||
|
//欠款
|
||||||
|
BigDecimal debtInsert = rAInsert.subtract(pAInsert);
|
||||||
|
if(aRInsert.compareTo(debtInsert) != 0){
|
||||||
|
return "标协会员项目,到账金额不等于欠款金额。";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
payPaymentRecordMapper.insert(payPaymentRecord);
|
payPaymentRecordMapper.insert(payPaymentRecord);
|
||||||
return "success";
|
return "success";
|
||||||
@@ -200,15 +227,19 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
/**
|
/**
|
||||||
* 是否还能再添加来款
|
* 是否还能再添加来款
|
||||||
* @param receivableAmount 应收
|
* @param receivableAmount 应收
|
||||||
|
* @param paidAmount 实收
|
||||||
* @param amountReceived 到账
|
* @param amountReceived 到账
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Boolean isAdd(BigDecimal receivableAmount, BigDecimal amountReceived){
|
private Boolean isAdd(BigDecimal receivableAmount,BigDecimal paidAmount,BigDecimal amountReceived){
|
||||||
if(receivableAmount == null){
|
if(receivableAmount == null){
|
||||||
receivableAmount = new BigDecimal("0");
|
receivableAmount = new BigDecimal("0");
|
||||||
}
|
}
|
||||||
|
if(paidAmount == null){
|
||||||
|
paidAmount = new BigDecimal("0");
|
||||||
|
}
|
||||||
//欠款
|
//欠款
|
||||||
BigDecimal debt = receivableAmount.subtract(amountReceived);
|
BigDecimal debt = receivableAmount.subtract(paidAmount);
|
||||||
|
|
||||||
if(amountReceived.compareTo(debt) == 1){
|
if(amountReceived.compareTo(debt) == 1){
|
||||||
//本次到账金额大于欠款
|
//本次到账金额大于欠款
|
||||||
@@ -231,4 +262,33 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
|||||||
}
|
}
|
||||||
return paidAmount.add(amountReceived).setScale(2,BigDecimal.ROUND_HALF_UP);
|
return paidAmount.add(amountReceived).setScale(2,BigDecimal.ROUND_HALF_UP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 得到到账状态
|
||||||
|
* @param receivableAmount 应收
|
||||||
|
* @param paidAmount 实收
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Integer getInAccount(BigDecimal receivableAmount,BigDecimal paidAmount){
|
||||||
|
BigDecimal zero =new BigDecimal("0");
|
||||||
|
//应收=0
|
||||||
|
if(receivableAmount.compareTo(zero)==0){
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
//应收>实收>0
|
||||||
|
if(receivableAmount.compareTo(paidAmount) == 1 && paidAmount!=null && paidAmount.compareTo(zero)==1){
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
//应收=实收
|
||||||
|
if(receivableAmount.compareTo(paidAmount) == 0){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
//实收=0
|
||||||
|
if(paidAmount.compareTo(zero)==0){
|
||||||
|
return 0;
|
||||||
|
}else{
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user