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);
}
/**
* 合同查询未关联参会人列表
*/
@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);
Integer countByMeetingId(String meetingId);
}
@@ -243,6 +243,10 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
*/
@Override
public void deleteById(String id) {
Integer integer = payMeetingSituationService.countByMeetingId(id);
if (integer>0){
throw new JeroBootException("该会议有参会人无法删除");
}
PayMeeting payMeeting = getById(id);
if (payMeeting.getMeetingType().equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) {
stableCrossTrainingService.delete(id);
@@ -258,6 +262,17 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
*/
@Override
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) {
PayMeeting payMeeting = getById(id);
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.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.IPayContactsManagementService;
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.service.IPayMailBillService;
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.valid.group.*;
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.service.IPayPaymentRecordService;
import com.jero.project.common.PayProjectCommon;
@@ -78,6 +83,10 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
private IPayPaymentRecordService payPaymentRecordService;
@Resource
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);
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) {
@@ -141,6 +163,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
}
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation);
saveMeetingSituation(payMeetingSituation1);
//处理打包
handlePack(payMeetingSituation1);
}
/**
@@ -164,6 +188,10 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
if (checkResult.equals(MeetingSubitemCommon.SIGNUP_STATUS_2)) {
//TODO 提示信息
}
//设置到账
meetingSituation.setInAccount(PayProjectCommon.YES);
//设置实收金额
meetingSituation.setPaidAmount(meetingSituation.getAmountReceivable());
meetingSituation.setCheckResult(checkResult);
saveOrUpdate(meetingSituation);
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.setAmountReceivable(new BigDecimal(0));
} else {
ValidUtil.validate(commonPeopleVO, NotPack.class);
@@ -395,37 +431,20 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
throw new JeroBootException("联系人不存在");
}
String companyId1 = contactsManagement.getCompanyId();
String contactsManagementId = contactsManagement.getId();
//校验是否是选择的企业的联系人
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());
} else {
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());
}
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删除
*/
@Override
public void deleteById(String id) {
removeSituationPack(id);
removeById(id);
}
@@ -467,9 +470,40 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
*/
@Override
public void deleteByIds(List<String> ids) {
for (String id : ids) {
removeSituationPack(id);
}
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查询
*/
@@ -16,5 +16,6 @@ import java.util.List;
* @Version: V1.0
*/
public interface MemberInfoMapper extends BaseMapper<MemberInfo> {
Integer countByCompanyName(@Param("companyName")String companyName);
}
@@ -1,5 +1,11 @@
<?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">
<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>
@@ -23,9 +23,6 @@ public class MemberInfoServiceImpl extends ServiceImpl<MemberInfoMapper, MemberI
@Override
public int check(String companyName) {
LambdaQueryWrapper<MemberInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MemberInfo::getCompanyName, companyName);
wrapper.isNotNull(MemberInfo::getMemberType);
return count(wrapper);
return baseMapper.countByCompanyName(companyName);
}
}