This commit is contained in:
baozhipeng
2021-09-10 16:01:11 +08:00
parent 666d3ca1cd
commit 5b89f38554
@@ -10,11 +10,23 @@ import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.mapper.PayMailBillMapper;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.payment.entity.PayPaymentRecord;
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -31,6 +43,16 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
private IPayMailBillService payMailBillService;
@Autowired
private IPayMailBillProjectService payMailBillProjectService;
@Resource
private PayCommonProjectMapper payCommonProjectMapper;
@Resource
private PayWorkingGroupSubItemMapper payWorkingGroupSubItemMapper;
@Resource
private PayMeetingSituationMapper payMeetingSituationMapper;
@Resource
private PayMemberProjectSubitemMapper payMemberProjectSubitemMapper;
@Resource
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
@Override
public List<PayMailBill> selectMailBillVO(String projectId) {
@@ -56,9 +78,17 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
* @return
*/
public Result<?> addPayBill(PayMailBill payMailBill,String projectIds,String projectTypes){
String[] projectIdArray = projectIds.split(",");
String[] projectTypeArray = projectTypes.split(",");
//校验不同项目是否属于同一个公司
String res=checkCompanyProject(projectIdArray,projectTypeArray);
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]))){
@@ -86,4 +116,73 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
}
return Result.OK("添加成功!");
}
//校验不同项目是否属于同一个公司
private String checkCompanyProject(String[] projectIdArray,String[] projectTypeArray){
for (int i = 0; i < projectTypeArray.length; i++) {
String standardCompanyId =null;//基准公司id
switch (projectTypeArray[i]) {
// 普通项目
case PayIncomeContractCommon.PROJECT_TYPE1:
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(projectIdArray[i]);
//将第一个项目作为基准公司
if(i==0){
standardCompanyId = payCommonProject.getChargeCompanyId();
}
if(!standardCompanyId.equals(payCommonProject.getChargeCompanyId())){
return "打包开票只能是同一个企业";
}
break;
// 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
PayWorkingGroupSubItem workingGroup = payWorkingGroupSubItemMapper.selectById(projectIdArray[i]);
//将第一个项目作为基准公司
if(i==0){
standardCompanyId = workingGroup.getChargeCompanyId();
}
if(!standardCompanyId.equals(workingGroup.getChargeCompanyId())){
return "打包开票只能是同一个企业";
}
break;
//会议项目
case PayIncomeContractCommon.PROJECT_TYPE3:
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(projectIdArray[i]);
//将第一个项目作为基准公司
if(i==0){
standardCompanyId = meeting.getCompanyId();
}
if(!standardCompanyId.equals(meeting.getCompanyId())){
return "打包开票只能是同一个企业";
}
break;
//会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
PayMemberProjectSubitem memberProject = payMemberProjectSubitemMapper.selectById(projectIdArray[i]);
//将第一个项目作为基准公司
if(i==0){
standardCompanyId = memberProject.getCompanyId();
}
if(!standardCompanyId.equals(memberProject.getCompanyId())){
return "打包开票只能是同一个企业";
}
break;
//标协会员
case PayIncomeContractCommon.PROJECT_TYPE5:
TbMemberProjectSubitem tbMemberProject = tbMemberProjectSubitemMapper.selectById(projectIdArray[i]);
//将第一个项目作为基准公司
if(i==0){
standardCompanyId = tbMemberProject.getCompanyId();
}
if(!standardCompanyId.equals(tbMemberProject.getCompanyId())){
return "打包开票只能是同一个企业";
}
break;
default:
break;
}
}
return "success";
}
}