add 合同新增参会人,自动关联,参会人详情回显合同编号

This commit is contained in:
lijiarao
2021-09-28 18:40:54 +08:00
parent 2cddb6df2a
commit 7857c49fd4
3 changed files with 74 additions and 39 deletions
@@ -405,18 +405,18 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
}
PayMeetingSituation payMeetingSituation = payMeetingSituationService.getById(p.getProjectId());
if(Objects.isNull(payMeetingSituation)){
throw new JeroBootException("项目不存在!");
throw new JeroBootException("项目不存在!");
}
PayMeeting payMeeting = payMeetingService.getById(payMeetingSituation.getMeetingId());
if (Objects.isNull(payMeeting)) {
throw new JeroBootException("项目不存在!");
throw new JeroBootException("项目不存在!");
}
// 验证企业是否正确
if(!Objects.equals(payMeetingSituation.getCompanyId(),payIncomeContract.getSignedCompanyId())){
throw new JeroBootException("企业不匹配!");
}
//验证参会人是否审核已通过
if (Objects.nonNull(payMeetingSituation.getPaymentRecord())
if (StringUtils.isNotBlank(payMeetingSituation.getPaymentRecord())
&& payMeetingSituation.getCheckResult().equals(MeetingSubitemCommon.SIGNUP_STATUS_1)) {
throw new JeroBootException("未通过审核,不可关联。");
}
@@ -399,7 +399,13 @@ public class PayMeetingSituation implements Serializable {
/**
* 收入合同id
*/
@TableField(exist = false)
@ApiModelProperty(value = "收入合同id")
private String contractId;
/**
* 收入合同编号
*/
@TableField(exist = false)
@ApiModelProperty(value = "收入合同编号")
private String contractNum;
}
@@ -23,8 +23,10 @@ import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.data.entity.PayCaseCommitteeSubitem;
import com.jero.data.service.IPayCaseCommitteeSubitemService;
import com.jero.mail.entity.PayMailBill;
@@ -106,6 +108,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
private SendMessageService sendMessageService;
@Resource
private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
@Resource
private IPayIncomeContractService payIncomeContractService;
private static final String[] CAN_MODIFY_LIST = new String[]{"arrivalTime","departureTime","checkInHotel"};
@@ -121,6 +125,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation);
saveMeetingSituation(payMeetingSituation1);
//处理打包情况
handlePack(payMeetingSituation1);
@@ -134,12 +139,33 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
PayMeeting payMeeting = meetingService.getById(meetingId);
//上传付款凭证发送邮件提醒审批
SendPaymentRecordMessage(payMeetingSituation1, payMeeting);
//如果合同id存在则关联参会人到合同
String contractId = payMeetingSituation.getContractId();
if (StringUtils.isNotBlank(contractId)) {
PayIncomeContract payIncomeContract = payIncomeContractService.getById(contractId);
if(Objects.isNull(payIncomeContract)){
throw new JeroBootException("合同不存在!");
}
// 验证企业是否正确
if(!Objects.equals(payMeetingSituation.getCompanyId(),payIncomeContract.getSignedCompanyId())){
throw new JeroBootException("企业不匹配!");
}
//合同关联参会人自动审核通过
payMeetingSituation1.setCheckResult(MeetingSubitemCommon.SIGNUP_STATUS_1);
payMeetingSituation1.setContractId(contractId);
saveOrUpdate(payMeetingSituation1);
//保存关联关系
PayIncomeContractAssociated payIncomeContractAssociated = new PayIncomeContractAssociated();
payIncomeContractAssociated.setContractId(contractId);
payIncomeContractAssociated.setProjectId(payMeetingSituation1.getId());
payIncomeContractAssociated.setProjectType(Integer.parseInt(PayIncomeContractCommon.PROJECT_TYPE3));
payIncomeContractAssociatedService.save(payIncomeContractAssociated);
}
}
/**
* 上传付款凭证发送邮件提醒审批
* @param payMeetingSituation
* @param payMeeting
*/
private void SendPaymentRecordMessage(PayMeetingSituation payMeetingSituation, PayMeeting payMeeting) {
String paymentRecord = payMeetingSituation.getPaymentRecord();
@@ -171,7 +197,6 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
/**
* 处理打包情况
*
* @param payMeetingSituation1
*/
private void handlePack(PayMeetingSituation payMeetingSituation1) {
if (payMeetingSituation1.getPack().equals(PayProjectCommon.PACKAGING1)) {
@@ -198,7 +223,6 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
/**
* 报名
*
* @param payMeetingSituation
*/
@Override
public void signUp(PayMeetingSituation payMeetingSituation) {
@@ -267,8 +291,6 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
/**
* 判断发送哪种类型的消息
*
* @param payMeeting
* @param payMeetingSituation
* @param isSubItem 是否是组成员
*/
private void judgeSend(PayMeeting payMeeting, PayMeetingSituation payMeetingSituation, boolean isSubItem) {
@@ -295,7 +317,6 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
* 汇款凭证审核不通过 CompanyMessageEnums.MSG5
* 非成员单位审核通过且上传的缴费凭证审核通过也发送。(即需要审核的都审核通过才发送)CompanyMessageEnums.MSG6
*
* @param payMeetingSituation
* @author lijiarao
* @date 2021/9/24 17:51
*/
@@ -330,7 +351,6 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
/**
* 审核
*
* @param checkVO
*/
@Override
public void check(CheckVO checkVO) {
@@ -381,11 +401,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
}
/**
* 判断是否有权限审核
* @param payMeetingSituation
* @param payMeeting
* @author lijiarao
* @date 2021/9/28
* @return void
*/
private void extracted(PayMeetingSituation payMeetingSituation, PayMeeting payMeeting) {
//判断是否有权限审核
@@ -635,8 +652,6 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
/**
* 处理校验参会人信息
* @param payMeetingSituation
* @return
*/
@NotNull
private PayMeetingSituation getPayMeetingSituation(PayMeetingSituation payMeetingSituation) {
@@ -729,20 +744,36 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
} else if (Objects.equals(payMode, MeetingSubitemCommon.PAY_MODE_1)
|| Objects.equals(payMode, MeetingSubitemCommon.PAY_MODE_2)) {
ValidUtil.validate(commonPeopleVO, NotPack.class);
//缴费方式为线上缴费时,判断是否为会议期间
String paymentRecord = payMeetingSituation.getPaymentRecord();
if (payMode.equals(MeetingSubitemCommon.PAY_MODE_2) && StringUtils.isNotBlank(paymentRecord)) {
Date startTime = payMeeting.getStartTime();
Date endTime = payMeeting.getEndTime();
//如果不在会议期间,不允许上传缴费凭证
if (!belongCalendar(new Date(), startTime, endTime)) {
throw new JeroBootException("线上缴费时,付款凭证只能在会议期间上传");
String orderCode = payMeetingSituation.getOrderCode();
//优先判断合同 判断是否为合同添加的参会人
String contractId = payMeetingSituation.getContractId();
if (StringUtils.isNotBlank(contractId)) {
PayIncomeContract payIncomeContract = payIncomeContractService.getById(contractId);
if(Objects.isNull(payIncomeContract)){
throw new JeroBootException("合同不存在!");
}
//合同添加的参会人,付款凭证和订单号后四位必填
if (StringUtils.isBlank(paymentRecord)){
throw new JeroBootException("付款凭证必填");
}
if (payMode.equals(MeetingSubitemCommon.PAY_MODE_2) && StringUtils.isBlank(orderCode)) {
throw new JeroBootException("订单号后四位必填");
}
}else {
//缴费方式为线上缴费时,判断是否为会议期间
if (payMode.equals(MeetingSubitemCommon.PAY_MODE_2) && StringUtils.isNotBlank(paymentRecord)) {
Date startTime = payMeeting.getStartTime();
Date endTime = payMeeting.getEndTime();
//如果不在会议期间,不允许上传缴费凭证
if (!belongCalendar(new Date(), startTime, endTime)) {
throw new JeroBootException("线上缴费时,付款凭证只能在会议期间上传");
}
}
payMeetingSituation1.setPaymentRecord(paymentRecord);
} else {
payMeetingSituation1.setPaymentRecord(paymentRecord);
}
payMeetingSituation1.setOrderCode(payMeetingSituation.getOrderCode());
payMeetingSituation1.setPaymentRecord(paymentRecord);
payMeetingSituation1.setOrderCode(orderCode);
payMeetingSituation1.setNeedInvoice(payMeetingSituation.getNeedInvoice());
//如果是标协会议判断会员类型
@@ -863,7 +894,6 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
/**
* 解除参会人打包
*
* @param id
*/
private void removeSituationPack(String id) {
PayMeetingSituation payMeetingSituation = getById(id);
@@ -902,7 +932,14 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
*/
@Override
public PayMeetingSituation queryById(String id) {
return getById(id);
PayMeetingSituation meetingSituation = getById(id);
//如果有关联合同id返回合同编号
String contractId = meetingSituation.getContractId();
if (StringUtils.isNotBlank(contractId)) {
PayIncomeContract incomeContract = payIncomeContractService.getById(contractId);
meetingSituation.setContractNum(incomeContract.getContractNum());
}
return meetingSituation;
}
/**
@@ -945,10 +982,6 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
/**
* 判断时间是否在时间段内
*
* @param nowTime
* @param beginTime
* @param endTime
* @return
*/
public static boolean belongCalendar(Date nowTime, Date beginTime,
Date endTime) {
@@ -961,10 +994,6 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
Calendar end = Calendar.getInstance();
end.setTime(endTime);
if (date.after(begin) && date.before(end)) {
return true;
} else {
return false;
}
return date.after(begin) && date.before(end);
}
}