添加开票
This commit is contained in:
@@ -52,4 +52,8 @@ public class PayMailBillProject implements Serializable {
|
||||
@DecimalMax(value = "9999999999.99",message = "开票金额格式错误")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private BigDecimal invoiceAmount;
|
||||
/**备注*/
|
||||
@Excel(name = "备注", width = 15)
|
||||
@ApiModelProperty(value = "备注")
|
||||
private java.lang.String remark;
|
||||
}
|
||||
|
||||
+2
-1
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.mail.entity.PayMailBill;
|
||||
import com.jero.mail.entity.PayMailBillProject;
|
||||
import com.jero.mail.entity.PayMailBillSearch;
|
||||
|
||||
import java.util.List;
|
||||
@@ -33,7 +34,7 @@ public interface IPayMailBillService extends IService<PayMailBill> {
|
||||
* @param payMailBill
|
||||
* @return
|
||||
*/
|
||||
Result<?> addPayBill(PayMailBill payMailBill,String projectIds,String projectTypes,String invoiceAmounts);
|
||||
Result<?> addPayBill(PayMailBill payMailBill, List<PayMailBillProject> bmpList);
|
||||
|
||||
|
||||
|
||||
|
||||
+39
-34
@@ -99,24 +99,20 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
* @param payMailBill
|
||||
* @return
|
||||
*/
|
||||
public Result<?> addPayBill(PayMailBill payMailBill, String projectIds, String projectTypes,String invoiceAmounts) {
|
||||
|
||||
String[] projectIdArray = projectIds.split(",");
|
||||
String[] projectTypeArray = projectTypes.split(",");
|
||||
String[] invoiceAmountArrays = invoiceAmounts.split(",");
|
||||
|
||||
public Result<?> addPayBill(PayMailBill payMailBill, List<PayMailBillProject> bmpList) {
|
||||
|
||||
//校验不同项目是否属于同一个公司
|
||||
String res = checkCompanyProject(projectIdArray, projectTypeArray,invoiceAmountArrays);
|
||||
String res = checkCompanyProject(bmpList);
|
||||
if (!"success".equals(res)) {
|
||||
return Result.error(res);
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < projectIdArray.length; i++) {
|
||||
if (PayIncomeContractCommon.PROJECT_TYPE5.equals(String.valueOf(projectIdArray[i]))) {
|
||||
for (int i = 0; i < bmpList.size(); i++) {
|
||||
if (PayIncomeContractCommon.PROJECT_TYPE5.equals(String.valueOf(bmpList.get(i).getProjectType()))) {
|
||||
|
||||
LambdaQueryWrapper<PayMailBillProject> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(PayMailBillProject::getProjectId, projectIdArray[i]);
|
||||
wrapper.eq(PayMailBillProject::getProjectId, bmpList.get(i).getId());
|
||||
wrapper.eq(PayMailBillProject::getProjectType, PayIncomeContractCommon.PROJECT_TYPE5);
|
||||
List<PayMailBillProject> type5List = payMailBillProjectService.list(wrapper);
|
||||
|
||||
@@ -130,38 +126,47 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
//新增票据邮寄表
|
||||
payMailBillService.save(payMailBill);
|
||||
|
||||
for (int i = 0; i < projectTypeArray.length; i++) {
|
||||
//新增票据关联项目表
|
||||
PayMailBillProject payMailBillProject = new PayMailBillProject();
|
||||
payMailBillProject.setBillId(payMailBill.getId());
|
||||
payMailBillProject.setProjectId(projectIdArray[i]);
|
||||
payMailBillProject.setProjectType(Integer.valueOf(projectTypeArray[i]));
|
||||
payMailBillProject.setInvoiceAmount(new BigDecimal(invoiceAmountArrays[i]));
|
||||
payMailBillProjectService.save(payMailBillProject);
|
||||
// for (int i = 0; i < bmpList.size(); i++) {
|
||||
// //新增票据关联项目表
|
||||
// PayMailBillProject payMailBillProject = new PayMailBillProject();
|
||||
// payMailBillProject.setBillId(payMailBill.getId());
|
||||
// payMailBillProject.setProjectId(bmpList.get(i).getId());
|
||||
// payMailBillProject.setProjectType(bmpList.get(i).getProjectType());
|
||||
// payMailBillProject.setInvoiceAmount(bmpList.get(i).getInvoiceAmount());
|
||||
// payMailBillProjectService.save(payMailBillProject);
|
||||
//
|
||||
//// 更新项目表开票状态
|
||||
// getMakeInvoice(payMailBillProject);
|
||||
// }
|
||||
|
||||
// 更新项目表开票状态
|
||||
getMakeInvoice(payMailBillProject);
|
||||
for(PayMailBillProject bmp : bmpList){
|
||||
bmp.setBillId(payMailBill.getId());
|
||||
//更新项目表开票状态
|
||||
getMakeInvoice(bmp);
|
||||
}
|
||||
//批量插入票据关联项目表
|
||||
payMailBillProjectService.saveBatch(bmpList);
|
||||
|
||||
return Result.OK("添加成功!");
|
||||
}
|
||||
|
||||
|
||||
//校验不同项目是否属于同一个公司
|
||||
private String checkCompanyProject(String[] projectIdArray, String[] projectTypeArray,String[] invoiceAmountArrays) {
|
||||
private String checkCompanyProject(List<PayMailBillProject> bmpList) {
|
||||
String standardCompanyId = null;//基准公司id
|
||||
|
||||
for (int i = 0; i < projectTypeArray.length; i++) {
|
||||
for (int i = 0; i < bmpList.size(); i++) {
|
||||
|
||||
//之前开票总额
|
||||
BigDecimal oldInvoiceAmount=new BigDecimal("0");
|
||||
//之前开票总额+本次开票金额
|
||||
BigDecimal invoiceAmount=new BigDecimal("0");
|
||||
|
||||
switch (projectTypeArray[i]) {
|
||||
switch (bmpList.get(i).getProjectType().toString()) {
|
||||
|
||||
// 普通项目
|
||||
case PayIncomeContractCommon.PROJECT_TYPE1:
|
||||
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(projectIdArray[i]);
|
||||
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(bmpList.get(i).getId());
|
||||
//将第一个项目作为基准公司
|
||||
if (i == 0) {
|
||||
standardCompanyId = payCommonProject.getChargeCompanyId();
|
||||
@@ -171,7 +176,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
}
|
||||
oldInvoiceAmount = payCommonProject.getInvoiceAmount();
|
||||
//之前开票总额+本次开票金额
|
||||
invoiceAmount = oldInvoiceAmount.add(new BigDecimal(invoiceAmountArrays[i])).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
invoiceAmount = oldInvoiceAmount.add(bmpList.get(i).getInvoiceAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
//开票总额>应收
|
||||
if(invoiceAmount.compareTo(payCommonProject.getReceivableAmount()) == 1){
|
||||
return "开票金额大于当前欠未开票金额,输入有误!";
|
||||
@@ -179,7 +184,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
break;
|
||||
// 工作组项目
|
||||
case PayIncomeContractCommon.PROJECT_TYPE2:
|
||||
PayWorkingGroupSubItem workingGroup = payWorkingGroupSubItemMapper.selectById(projectIdArray[i]);
|
||||
PayWorkingGroupSubItem workingGroup = payWorkingGroupSubItemMapper.selectById(bmpList.get(i).getId());
|
||||
//将第一个项目作为基准公司
|
||||
if (i == 0) {
|
||||
standardCompanyId = workingGroup.getChargeCompanyId();
|
||||
@@ -189,7 +194,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
}
|
||||
oldInvoiceAmount = workingGroup.getInvoiceAmount();
|
||||
//之前开票总额+本次开票金额
|
||||
invoiceAmount = oldInvoiceAmount.add(new BigDecimal(invoiceAmountArrays[i])).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
invoiceAmount = oldInvoiceAmount.add(bmpList.get(i).getInvoiceAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
//开票总额>应收
|
||||
if(invoiceAmount.compareTo(workingGroup.getReceivableAmount()) == 1){
|
||||
return "开票金额大于当前欠未开票金额,输入有误!";
|
||||
@@ -197,7 +202,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
break;
|
||||
//会议项目
|
||||
case PayIncomeContractCommon.PROJECT_TYPE3:
|
||||
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(projectIdArray[i]);
|
||||
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(bmpList.get(i).getId());
|
||||
//将第一个项目作为基准公司
|
||||
if (i == 0) {
|
||||
standardCompanyId = meeting.getCompanyId();
|
||||
@@ -207,7 +212,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
}
|
||||
oldInvoiceAmount = meeting.getInvoiceAmount();
|
||||
//之前开票总额+本次开票金额
|
||||
invoiceAmount = oldInvoiceAmount.add(new BigDecimal(invoiceAmountArrays[i])).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
invoiceAmount = oldInvoiceAmount.add(bmpList.get(i).getInvoiceAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
//开票总额>应收
|
||||
if(invoiceAmount.compareTo(meeting.getAmountReceivable()) == 1){
|
||||
return "开票金额大于当前欠未开票金额,输入有误!";
|
||||
@@ -215,7 +220,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
break;
|
||||
//会员项目
|
||||
case PayIncomeContractCommon.PROJECT_TYPE4:
|
||||
PayMemberProjectSubitem memberProject = payMemberProjectSubitemMapper.selectById(projectIdArray[i]);
|
||||
PayMemberProjectSubitem memberProject = payMemberProjectSubitemMapper.selectById(bmpList.get(i).getId());
|
||||
//将第一个项目作为基准公司
|
||||
if (i == 0) {
|
||||
standardCompanyId = memberProject.getCompanyId();
|
||||
@@ -225,7 +230,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
}
|
||||
oldInvoiceAmount = memberProject.getInvoiceAmount();
|
||||
//之前开票总额+本次开票金额
|
||||
invoiceAmount = oldInvoiceAmount.add(new BigDecimal(invoiceAmountArrays[i])).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
invoiceAmount = oldInvoiceAmount.add(bmpList.get(i).getInvoiceAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
//开票总额>应收
|
||||
if(invoiceAmount.compareTo(memberProject.getAmountReceivable()) == 1){
|
||||
return "开票金额大于当前欠未开票金额,输入有误!";
|
||||
@@ -233,7 +238,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
break;
|
||||
//标协会员
|
||||
case PayIncomeContractCommon.PROJECT_TYPE5:
|
||||
TbMemberProjectSubitem tbMemberProject = tbMemberProjectSubitemMapper.selectById(projectIdArray[i]);
|
||||
TbMemberProjectSubitem tbMemberProject = tbMemberProjectSubitemMapper.selectById(bmpList.get(i).getId());
|
||||
//将第一个项目作为基准公司
|
||||
if (i == 0) {
|
||||
standardCompanyId = tbMemberProject.getCompanyId();
|
||||
@@ -243,7 +248,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
}
|
||||
oldInvoiceAmount = tbMemberProject.getInvoiceAmount();
|
||||
//之前开票总额+本次开票金额
|
||||
invoiceAmount = oldInvoiceAmount.add(new BigDecimal(invoiceAmountArrays[i])).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
invoiceAmount = oldInvoiceAmount.add(bmpList.get(i).getInvoiceAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
//开票总额>应收
|
||||
if(invoiceAmount.compareTo(tbMemberProject.getAmountReceivable()) == 1){
|
||||
return "开票金额大于当前欠未开票金额,输入有误!";
|
||||
@@ -261,7 +266,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
* @return
|
||||
*/
|
||||
private void getMakeInvoice(PayMailBillProject payMailBillProject) {
|
||||
Integer makeInvoice=4;
|
||||
int makeInvoice=4;
|
||||
BigDecimal amountReceivable=new BigDecimal("0");//应收金额
|
||||
Integer needInvoice = 0;//是否需要发票
|
||||
BigDecimal invoiceAmount=new BigDecimal("0");//开票金额
|
||||
|
||||
+1
-1
@@ -231,7 +231,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
payMailBill.setBillDate(new Date());
|
||||
payMailBill.setProjectName(payMeeting.getMeetingName());
|
||||
payMailBill.setChargeCompanyName(payMeetingSituation.getCompanyName());
|
||||
payMailBillService.addPayBill(payMailBill, projectIds.toString(), PayIncomeContractCommon.PROJECT_TYPE3,allAmount.toString());
|
||||
// payMailBillService.addPayBill(payMailBill, projectIds.toString(), PayIncomeContractCommon.PROJECT_TYPE3,allAmount.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+3
-2
@@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.util.AuthenticationUtils;
|
||||
import com.jero.mail.entity.PayMailBill;
|
||||
import com.jero.mail.entity.PayMailBillProject;
|
||||
import com.jero.mail.service.IPayMailBillService;
|
||||
import com.jero.payment.entity.PayPaymentRecord;
|
||||
import com.jero.payment.service.IPayPaymentRecordService;
|
||||
@@ -134,8 +135,8 @@ public class PayPaymentRecordController extends JeroController<PayPaymentRecord,
|
||||
*/
|
||||
@ApiOperation(value="添加开票", notes="添加开票")
|
||||
@PostMapping(value = "/addPayBill")
|
||||
public Result<?> addPayBill(@RequestBody PayMailBill payMailBill,String projectIds,String projectTypes,String invoiceAmounts) {
|
||||
return payMailBillService.addPayBill(payMailBill, projectIds, projectTypes, invoiceAmounts);
|
||||
public Result<?> addPayBill(@RequestBody PayMailBill payMailBill,@RequestBody List<PayMailBillProject> bmpList) {
|
||||
return payMailBillService.addPayBill(payMailBill, bmpList);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user