Merge remote-tracking branch 'origin/master'

This commit is contained in:
zhangqinlin
2021-09-18 16:11:52 +08:00
7 changed files with 117 additions and 47 deletions
@@ -57,6 +57,22 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
return Result.OK(pageList); return Result.OK(pageList);
} }
/**
* 合同查询未关联参会人列表
*/
@AutoLog(value = "合同查询未关联参会人列表")
@ApiOperation(value = "合同查询未关联参会人列表", notes = "合同查询未关联参会人列表")
@GetMapping(value = "/contractPage")
public Result<?> contractPage(PayMeetingSituation payMeetingSituation,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, req.getParameterMap());
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.page(page, queryWrapper);
return Result.OK(pageList);
}
/** /**
* 分页列表查询 * 分页列表查询
*/ */
@@ -60,4 +60,5 @@ public interface IPayMeetingSituationService extends IService<PayMeetingSituatio
void mergePayBill(MergePayBillVO mergePayBillVO); void mergePayBill(MergePayBillVO mergePayBillVO);
Integer countByMeetingId(String meetingId);
} }
@@ -243,6 +243,10 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
*/ */
@Override @Override
public void deleteById(String id) { public void deleteById(String id) {
Integer integer = payMeetingSituationService.countByMeetingId(id);
if (integer>0){
throw new JeroBootException("该会议有参会人无法删除");
}
PayMeeting payMeeting = getById(id); PayMeeting payMeeting = getById(id);
if (payMeeting.getMeetingType().equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) { if (payMeeting.getMeetingType().equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) {
stableCrossTrainingService.delete(id); stableCrossTrainingService.delete(id);
@@ -258,6 +262,17 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
*/ */
@Override @Override
public void deleteByIds(List<String> ids) { public void deleteByIds(List<String> ids) {
List<String> meetingList = new ArrayList<>();
for (String id : ids) {
Integer integer = payMeetingSituationService.countByMeetingId(id);
if (integer>0){
PayMeeting payMeeting = getById(id);
meetingList.add(payMeeting.getMeetingName());
}
}
if (meetingList.size()>0){
throw new JeroBootException(meetingList+"会议下有参会人,无法删除");
}
for (String id : ids) { for (String id : ids) {
PayMeeting payMeeting = getById(id); PayMeeting payMeeting = getById(id);
if (payMeeting.getMeetingType().equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) { if (payMeeting.getMeetingType().equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) {
@@ -2,6 +2,7 @@ package com.jero.meeting.service.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
@@ -13,6 +14,8 @@ import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService; import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService; import com.jero.company.service.IPayContactsManagementService;
import com.jero.contract.common.PayIncomeContractCommon; import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.mail.entity.PayMailBill; import com.jero.mail.entity.PayMailBill;
import com.jero.mail.service.IPayMailBillService; import com.jero.mail.service.IPayMailBillService;
import com.jero.meeting.common.MeetingCommon; import com.jero.meeting.common.MeetingCommon;
@@ -24,6 +27,8 @@ import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.service.IPayMeetingSituationService; import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.meeting.valid.group.*; import com.jero.meeting.valid.group.*;
import com.jero.meeting.vo.*; import com.jero.meeting.vo.*;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.payment.entity.PayPaymentRecord; import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService; import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
@@ -78,6 +83,10 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
private IPayPaymentRecordService payPaymentRecordService; private IPayPaymentRecordService payPaymentRecordService;
@Resource @Resource
private PayMeetingSituationMapper payMeetingSituationMapper; private PayMeetingSituationMapper payMeetingSituationMapper;
@Resource
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Resource
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
/** /**
* 保存 * 保存
@@ -90,6 +99,19 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation); PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation);
saveMeetingSituation(payMeetingSituation1); saveMeetingSituation(payMeetingSituation1);
handlePack(payMeetingSituation1);
}
/**
* 处理打包情况
* @param payMeetingSituation1
*/
private void handlePack(PayMeetingSituation payMeetingSituation1) {
if (payMeetingSituation1.getPack().equals(PayProjectCommon.PACKAGING1)) {
String meetingId = payMeetingSituation1.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
payPackCompanyProjectService.setPack(payMeetingSituation1.getCompanyId(), payMeetingSituation1.getCompanyContactId(),payMeeting.getParticularYear(), payMeetingSituation1.getId(),PayProjectCommon.PROJECT_TYPE3,PayProjectCommon.PACKAGING1);
}
} }
private void saveMeetingSituation(PayMeetingSituation payMeetingSituation1) { private void saveMeetingSituation(PayMeetingSituation payMeetingSituation1) {
@@ -141,6 +163,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
} }
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation); PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation);
saveMeetingSituation(payMeetingSituation1); saveMeetingSituation(payMeetingSituation1);
//处理打包
handlePack(payMeetingSituation1);
} }
/** /**
@@ -164,6 +188,10 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
if (checkResult.equals(MeetingSubitemCommon.SIGNUP_STATUS_2)) { if (checkResult.equals(MeetingSubitemCommon.SIGNUP_STATUS_2)) {
//TODO 提示信息 //TODO 提示信息
} }
//设置到账
meetingSituation.setInAccount(PayProjectCommon.YES);
//设置实收金额
meetingSituation.setPaidAmount(meetingSituation.getAmountReceivable());
meetingSituation.setCheckResult(checkResult); meetingSituation.setCheckResult(checkResult);
saveOrUpdate(meetingSituation); saveOrUpdate(meetingSituation);
PayPaymentRecord payPaymentRecord = new PayPaymentRecord(); PayPaymentRecord payPaymentRecord = new PayPaymentRecord();
@@ -242,6 +270,13 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
} }
@Override
public Integer countByMeetingId(String meetingId) {
LambdaQueryWrapper<PayMeetingSituation> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMeetingSituation::getMeetingId,meetingId);
return count(wrapper);
}
/** /**
* 更新 * 更新
*/ */
@@ -345,6 +380,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
//存入打包字段 //存入打包字段
payMeetingSituation1.setPack(PayProjectCommon.PACKAGING1); payMeetingSituation1.setPack(PayProjectCommon.PACKAGING1);
payMeetingSituation1.setAmountReceivable(new BigDecimal(0)); payMeetingSituation1.setAmountReceivable(new BigDecimal(0));
} else { } else {
ValidUtil.validate(commonPeopleVO, NotPack.class); ValidUtil.validate(commonPeopleVO, NotPack.class);
@@ -395,37 +431,20 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
throw new JeroBootException("联系人不存在"); throw new JeroBootException("联系人不存在");
} }
String companyId1 = contactsManagement.getCompanyId(); String companyId1 = contactsManagement.getCompanyId();
String contactsManagementId = contactsManagement.getId();
//校验是否是选择的企业的联系人 //校验是否是选择的企业的联系人
if (companyId1.equals(companyId)) { if (companyId1.equals(companyId)) {
payMeetingSituation.setCompanyContactTemporaryId(contactsManagement.getId()); payMeetingSituation.setCompanyContactTemporaryId(contactsManagementId);
payMeetingSituation.setCompanyContactName(contactsManagement.getName());
} else {
throw new JeroBootException("企业联系人不是所选企业的企业联系人");
}
}
private void baoMingContact(PayMeetingSituation payMeetingSituation, String companyId, String companyContactId, PayContactsManagement contactsManagement) {
if (contactsManagement == null) {
PayContactsManagementTemporary contactsManagementTemporary = contactsManagementTemporaryService.insertContactsManagementTemporary(companyContactId);
if (contactsManagementTemporary == null) {
throw new JeroBootException("联系人不存在");
}
String companyId1 = contactsManagementTemporary.getCompanyId();
if (companyId1.equals(companyId)) {
payMeetingSituation.setCompanyContactTemporaryId(contactsManagementTemporary.getId());
payMeetingSituation.setCompanyContactName(contactsManagementTemporary.getName());
} else {
throw new JeroBootException("企业联系人不是所选企业的企业联系人");
}
} else {
String companyId1 = contactsManagement.getCompanyId();
//校验是否是选择的企业的联系人
if (companyId1.equals(companyId)) {
payMeetingSituation.setCompanyContactTemporaryId(contactsManagement.getId());
payMeetingSituation.setCompanyContactName(contactsManagement.getName()); payMeetingSituation.setCompanyContactName(contactsManagement.getName());
} else { } else {
throw new JeroBootException("企业联系人不是所选企业的企业联系人"); throw new JeroBootException("企业联系人不是所选企业的企业联系人");
} }
String meetingId = payMeetingSituation.getMeetingId();
LambdaQueryWrapper<PayMeetingSituation> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMeetingSituation::getMeetingId,meetingId);
wrapper.eq(PayMeetingSituation::getCompanyContactId,contactsManagementId);
if ((count(wrapper)>0)) {
throw new JeroBootException("联系人不能多次参加相同会议");
} }
} }
@@ -437,28 +456,12 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
payMeetingSituation.setCompanyName(companyManagement.getCompanyName()); payMeetingSituation.setCompanyName(companyManagement.getCompanyName());
} }
private void baoMingCompany(PayMeetingSituation payMeetingSituation, String companyId, PayCompanyManagement companyManagement) {
if (companyManagement == null) {
PayCompanyManagementTemporary companyManagementTemporary = companyManagementTemporaryService.getById(companyId);
if (companyManagementTemporary == null) {
throw new JeroBootException("企业不存在");
}
payMeetingSituation.setCompanyTemporaryId(companyManagementTemporary.getId());
payMeetingSituation.setCompanyName(companyManagementTemporary.getCompanyName());
payMeetingSituation.setNewCompany(1);
} else {
payMeetingSituation.setCompanyTemporaryId(companyManagement.getId());
payMeetingSituation.setCompanyName(companyManagement.getCompanyName());
}
payMeetingSituation.setNewCompany(0);
}
/** /**
* 通过id删除 * 通过id删除
*/ */
@Override @Override
public void deleteById(String id) { public void deleteById(String id) {
removeSituationPack(id);
removeById(id); removeById(id);
} }
@@ -467,9 +470,40 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
*/ */
@Override @Override
public void deleteByIds(List<String> ids) { public void deleteByIds(List<String> ids) {
for (String id : ids) {
removeSituationPack(id);
}
removeByIds(ids); removeByIds(ids);
} }
/**
* 解除参会人打包
* @param id
*/
private void removeSituationPack(String id) {
PayMeetingSituation payMeetingSituation = getById(id);
Integer inAccount = payMeetingSituation.getInAccount();
if (!inAccount.equals(PayProjectCommon.IN_ACCOUNT0)) {
throw new JeroBootException(payMeetingSituation.getCompanyContactName() + " 参会人已经有到账,无法删除");
}
if (!payMeetingSituation.getMakeInvoice().equals(PayProjectCommon.MAKE_INVOICE0)) {
throw new JeroBootException(payMeetingSituation.getCompanyContactName() + " 该参会人已经有开票,无法删除");
}
LambdaQueryWrapper<PayIncomeContractAssociated> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(PayIncomeContractAssociated::getProjectId,id);
PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(wrapper1);
if (ObjectUtil.isNotNull(payIncomeContractAssociated)){
throw new JeroBootException(payMeetingSituation.getCompanyContactName() + " 参会人已经和合同关联,无法删除");
}
//如果有打包,删除打包关联
if (payMeetingSituation.getPack().equals(PayProjectCommon.PACKAGING1)) {
LambdaQueryWrapper<PayPackCompanyProject> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayPackCompanyProject::getProjectId, id);
PayPackCompanyProject payPackCompanyProject = payPackCompanyProjectService.getOne(wrapper);
payPackCompanyProjectService.removePayPackCompanyProject(payPackCompanyProject);
}
}
/** /**
* 通过id查询 * 通过id查询
*/ */
@@ -16,5 +16,6 @@ import java.util.List;
* @Version: V1.0 * @Version: V1.0
*/ */
public interface MemberInfoMapper extends BaseMapper<MemberInfo> { public interface MemberInfoMapper extends BaseMapper<MemberInfo> {
Integer countByCompanyName(@Param("companyName")String companyName);
} }
@@ -1,5 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.standards.memberinfo.mapper.MemberInfoMapper"> <mapper namespace="com.jero.standards.memberinfo.mapper.MemberInfoMapper">
<!--auto generated by MybatisCodeHelper on 2021-09-18-->
<select id="countByCompanyName" resultType="java.lang.Integer">
select count(1)
from tb_member_info tmi left join sys_user su on su.id = tmi.id
where tmi.member_type is not null
and (su.realname = #{companyName} or su.company_name = #{companyName})
</select>
</mapper> </mapper>
@@ -23,9 +23,6 @@ public class MemberInfoServiceImpl extends ServiceImpl<MemberInfoMapper, MemberI
@Override @Override
public int check(String companyName) { public int check(String companyName) {
LambdaQueryWrapper<MemberInfo> wrapper = new LambdaQueryWrapper<>(); return baseMapper.countByCompanyName(companyName);
wrapper.eq(MemberInfo::getCompanyName, companyName);
wrapper.isNotNull(MemberInfo::getMemberType);
return count(wrapper);
} }
} }