feat: 打包后对应项目的待确收金额变为0

This commit is contained in:
2024-03-11 14:12:08 +08:00
parent beb4e7952d
commit ec9f232fbd
@@ -15,6 +15,14 @@ import com.jero.common.service.SendMessageService;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
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;
import com.jero.pack.common.PackCommon;
@@ -25,8 +33,13 @@ import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.pack.vo.PayProjectExcel;
import com.jero.payment.mapper.PayPaymentRecordMapper;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.mapper.PayCommonProjectMapper;
import com.jero.project.mapper.PayWorkingGroupSubItemMapper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@@ -36,6 +49,7 @@ import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
/**
@@ -63,6 +77,18 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
private SendMessageService sendMessageService;
@Resource
private ProjectDetailService projectDetailService;
@Resource
private PayCommonProjectMapper payCommonProjectMapper;
@Resource
private PayWorkingGroupSubItemMapper payWorkingGroupSubItemMapper;
@Resource
private PayMeetingSituationMapper payMeetingSituationMapper;
@Resource
private PayMemberProjectSubitemMapper payMemberProjectSubitemMapper;
@Resource
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
@Resource
private TbCertificatePaymentMapper certificatePaymentMapper;
@Override
@@ -116,8 +142,6 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
LambdaQueryWrapper<PayPackCompanyProject> query = new LambdaQueryWrapper<>();
query.in(PayPackCompanyProject::getProjectId, Arrays.asList(payPackCompanyProject.getProjectIds()));
List<PayPackCompanyProject> listPayPackCompanyProjectNew = payPackCompanyProjectService.list(query);
// TODO 将对应的project的待确收金额设为0
if(!CollectionUtils.isEmpty(listPayPackCompanyProjectNew)){
throw new JeroBootException("项目已被打包!");
}
@@ -127,6 +151,8 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
projectPackService.updateProjectStatus(p.getProjectId(),String.valueOf(p.getProjectType()),String.valueOf(PackCommon.PACKAGING1),payPackCompanyProject.getPackId());
});
payPackCompanyProjectService.saveBatch(listPayPackCompanyProject);
// 将对应的project的待确收金额设为0
setAmountReceivableZero(listPayPackCompanyProject);
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 获取项目负责人,发送消息
@@ -164,28 +190,74 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
}
}
private void setAmountReceivableZero(List<PayPackCompanyProject> listPayPackCompanyProject) {
listPayPackCompanyProject.forEach(p -> {
setAmountReceivable(p.getProjectId(), String.valueOf(p.getProjectType()));
});
}
/**
* 根据项目id和项目类型将具体项目的待确收金额改为0
*/
private void setAmountReceivable(String projectId, String projectType){
switch (projectType){
case PayProjectCommon.PROJECT_TYPE1:
// 普通项目
case PayIncomeContractCommon.PROJECT_TYPE1:
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(projectId);
if (payCommonProject == null) {
throw new JeroBootException("项目不存在");
}
payCommonProject.setReceivableAmount(new BigDecimal(0));
payCommonProjectMapper.updateById(payCommonProject);
break;
case PayProjectCommon.PROJECT_TYPE2:
// 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(projectId);
if (payWorking == null) {
throw new JeroBootException("项目不存在");
}
payWorking.setReceivableAmount(new BigDecimal(0));
payWorkingGroupSubItemMapper.updateById(payWorking);
break;
case PayProjectCommon.PROJECT_TYPE3:
//会议项目
case PayIncomeContractCommon.PROJECT_TYPE3:
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(projectId);
if (meeting == null) {
throw new JeroBootException("项目不存在");
}
meeting.setAmountReceivable(new BigDecimal(0));
payMeetingSituationMapper.updateById(meeting);
break;
case PayProjectCommon.PROJECT_TYPE4:
//会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(projectId);
if (member == null) {
throw new JeroBootException("项目不存在");
}
member.setAmountReceivable(new BigDecimal(0));
payMemberProjectSubitemMapper.updateById(member);
break;
case PayProjectCommon.PROJECT_TYPE5:
//标协会员
case PayIncomeContractCommon.PROJECT_TYPE5:
TbMemberProjectSubitem tbMember = tbMemberProjectSubitemMapper.selectById(projectId);
if (tbMember == null) {
throw new JeroBootException("项目不存在");
}
tbMember.setAmountReceivable(new BigDecimal(0));
tbMemberProjectSubitemMapper.updateById(tbMember);
break;
//标协证书
case PayIncomeContractCommon.PROJECT_TYPE6:
TbCertificatePayment tbMemberCertificate = certificatePaymentMapper.selectById(projectId);
if (tbMemberCertificate == null) {
throw new JeroBootException("项目不存在");
}
// 获取待确收金额
tbMemberCertificate.setAmountReceivable(new BigDecimal(0));
certificatePaymentMapper.updateById(tbMemberCertificate);
break;
default:
break;
throw new JeroBootException("项目类型错误");
}
}