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.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil; import com.jero.common.util.PasswordUtil;
import com.jero.contract.common.PayIncomeContractCommon; 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.entity.SysUser;
import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.common.PackCommon; 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.service.IPayPackCompanyService;
import com.jero.pack.vo.PayPackCompanyProjectInput; import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.pack.vo.PayProjectExcel; 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.common.PayProjectCommon;
import com.jero.project.entity.PayCommonProject; 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.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
@@ -36,6 +49,7 @@ import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
/** /**
@@ -63,6 +77,18 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
private SendMessageService sendMessageService; private SendMessageService sendMessageService;
@Resource @Resource
private ProjectDetailService projectDetailService; 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 @Override
@@ -116,8 +142,6 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
LambdaQueryWrapper<PayPackCompanyProject> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayPackCompanyProject> query = new LambdaQueryWrapper<>();
query.in(PayPackCompanyProject::getProjectId, Arrays.asList(payPackCompanyProject.getProjectIds())); query.in(PayPackCompanyProject::getProjectId, Arrays.asList(payPackCompanyProject.getProjectIds()));
List<PayPackCompanyProject> listPayPackCompanyProjectNew = payPackCompanyProjectService.list(query); List<PayPackCompanyProject> listPayPackCompanyProjectNew = payPackCompanyProjectService.list(query);
// TODO 将对应的project的待确收金额设为0
if(!CollectionUtils.isEmpty(listPayPackCompanyProjectNew)){ if(!CollectionUtils.isEmpty(listPayPackCompanyProjectNew)){
throw new JeroBootException("项目已被打包!"); 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()); projectPackService.updateProjectStatus(p.getProjectId(),String.valueOf(p.getProjectType()),String.valueOf(PackCommon.PACKAGING1),payPackCompanyProject.getPackId());
}); });
payPackCompanyProjectService.saveBatch(listPayPackCompanyProject); payPackCompanyProjectService.saveBatch(listPayPackCompanyProject);
// 将对应的project的待确收金额设为0
setAmountReceivableZero(listPayPackCompanyProject);
} }
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); 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 * 根据项目id和项目类型将具体项目的待确收金额改为0
*/ */
private void setAmountReceivable(String projectId, String projectType){ private void setAmountReceivable(String projectId, String projectType){
switch (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; 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; 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; 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; 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; break;
default: default:
break; throw new JeroBootException("项目类型错误");
} }
} }