feat: 打包管理条目 来款 开票 确收相关功能

This commit is contained in:
2024-03-11 11:28:09 +08:00
parent 8b9bffcd43
commit 5184461abf
4 changed files with 84 additions and 1 deletions
@@ -75,6 +75,10 @@ public class PayIncomeContractCommon {
* 6:标协证书项目
*/
public final static String PROJECT_TYPE6 = "6";
/**
* 7:打包项目
*/
public final static String PROJECT_TYPE7 = "7";
/**
* 来款状态 0:全部 1:到期未付款
*/
@@ -45,6 +45,8 @@ import com.jero.member.mapper.*;
import com.jero.member.service.*;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroup;
@@ -156,6 +158,8 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
private ITbCertificatePaymentService tbCertificatePaymentService;
@Resource
private PayWorkingGroupSubItemContactsMapper payWorkingGroupSubItemContactsMapper;
@Resource
private IPayPackCompanyService payPackCompanyService;
@Override
@@ -388,7 +392,22 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
listId.add(meetingTemporary);
}
break;
default:break;
//打包项目
case PayIncomeContractCommon.PROJECT_TYPE7:
PayPackCompany payPackCompany = payPackCompanyService.getById(p.getProjectId());
if (Objects.isNull(payPackCompany)) {
throw new JeroBootException("项目不存在!");
}
PayContactsManagementTemporary payPackCompanyTemporary = payContactsManagementTemporaryService
.getById(payPackCompany.getCompanyContactTemporaryId());
if (!Objects.isNull(payPackCompanyTemporary)) {
listId.add(payPackCompanyTemporary);
}
PayCompanyManagement company = payCompanyManagementService.getById(payPackCompany.getCompanyId());
project = company.getCompanyName();
break;
default:
break;
}
@@ -953,6 +972,30 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
//if(1!=tbMemberCertificate.getInAccount()){
// return "标协证书项目必须先审核通过才可开票";
//}
// 普通项目
case PayIncomeContractCommon.PROJECT_TYPE7:
PayPackCompany payPackCompany = payPackCompanyService.getById(bmpList.get(i).getProjectId());
//将第一个项目作为基准公司
if (i == 0) {
standardCompanyId = payPackCompany.getCompanyId();
}
if (!standardCompanyId.equals(payPackCompany.getCompanyId())) {
return "打包开票只能是同一个企业";
}
oldInvoiceAmount = payPackCompany.getInvoiceAmount();
if(oldInvoiceAmount == null){
oldInvoiceAmount= new BigDecimal("0");
}
//之前开票总额+本次开票金额
invoiceAmount = oldInvoiceAmount.add(bmpList.get(i).getInvoiceAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
//开票总额>应收
if(invoiceAmount.compareTo(payPackCompany.getReceivableAmount()) == 1){
return "开票金额大于当前未开票金额,输入有误!";
}
PayCompanyManagementTemporary payPackCompanyManagement = payCompanyManagementTemporaryService.getById(payPackCompany.getCompanyTemporaryId());
if(!Objects.isNull(payPackCompanyManagement) && "2".equals(payPackCompanyManagement.getStatus()) ){
return "企业未审核,需要审核后开票";
}
break;
default:
break;
@@ -16,6 +16,8 @@ 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.pack.entity.PayPackCompany;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.payment.entity.PayConfirmPaymentRecord;
import com.jero.payment.mapper.PayConfirmPaymentRecordMapper;
import com.jero.payment.mapper.PayPaymentRecordMapper;
@@ -59,6 +61,8 @@ public class PayConfirmPaymentRecordService extends ServiceImpl<PayConfirmPaymen
private IPayPaymentRecordService payPaymentRecordService;
@Resource
private PayPaymentRecordMapper payPaymentRecordMapper;
@Resource
private IPayPackCompanyService payPackCompanyService;
public void add(PayConfirmPaymentRecord payConfirmPaymentRecord) {
@@ -177,6 +181,19 @@ public class PayConfirmPaymentRecordService extends ServiceImpl<PayConfirmPaymen
throw new JeroBootException("确收金额不能大于待确收金额");
}
break;
// 打包项目
case PayIncomeContractCommon.PROJECT_TYPE7:
PayPackCompany payPackCompany = payPackCompanyService.getById(projectId);
if (payPackCompany == null) {
throw new JeroBootException("项目不存在");
}
// 获取待确收金额
receivableAmount = payPackCompany.getReceivableAmount();
// 如果当前确认金额不能大于当前项目的待确收金额
if (confirmAmount.compareTo(receivableAmount.subtract(totalAmount)) > 0) {
throw new JeroBootException("确收金额不能大于待确收金额");
}
break;
default:
break;
}
@@ -40,6 +40,8 @@ import com.jero.member.service.IPayMemberProjectService;
import com.jero.member.service.ITbMemberProjectService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.entity.PayPaymentRecordSub;
import com.jero.payment.mapper.PayPaymentCheckMapper;
@@ -132,6 +134,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
private IPayCompanyManagementService payCompanyManagementService;
@Resource
private IPayWorkingGroupSubItemContactsService payWorkingGroupSubItemContactsService;
@Resource
private IPayPackCompanyService payPackCompanyService;
@Value("${jero.path.upload}")
private String upLoadPath;
@@ -558,6 +562,21 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
//// tbCheckCerVo.setCheckMark(payPaymentRecord.getRemark());
// typr6List.add(tbCheckCerVo);
break;
// 打包项目
case PayIncomeContractCommon.PROJECT_TYPE7:
PayPackCompany payPackCompany = payPackCompanyService.getById(payPaymentRecord.getProjectId());
newPaidAmount = addPaidAmount(payPackCompany.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(payPackCompany.getReceivableAmount(), newPaidAmount);//到账状态
tax = addPaidAmount(payPackCompany.getPaidTax(),payPaymentRecord.getTax());
noTaxAmount = addPaidAmount(payPackCompany.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
payPackCompany.setPaidTax(tax);
payPackCompany.setPaidNoTaxAmount(noTaxAmount);
//更新主列表
payPackCompany.setPaidAmount(newPaidAmount);
payPackCompany.setInAccount(inAccount);
payPackCompanyService.updateById(payPackCompany);
break;
default:break;
}