add 会议新增[设置对接人]

This commit is contained in:
lijiarao
2021-09-09 18:00:45 +08:00
parent e99bb50480
commit 3761a3560a
5 changed files with 395 additions and 38 deletions
@@ -6,14 +6,21 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.meeting.vo.AddDockVO;
import com.jero.meeting.vo.PayMeetingSituationVO;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.springframework.validation.annotation.Validated;
@@ -71,7 +78,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
@AutoLog(value = "会议报名信息-添加")
@ApiOperation(value="会议报名信息-添加", notes="会议报名信息-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody PayMeetingSituation payMeetingSituation) {
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.add(payMeetingSituation);
return Result.OK("添加成功!");
}
@@ -82,8 +89,8 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
@AutoLog(value = "会议报名信息-编辑")
@ApiOperation(value="会议报名信息-编辑", notes="会议报名信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.editById(payMeetingSituation);
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.editById(payMeetingSituationVO);
return Result.OK("编辑成功!");
}
@@ -131,20 +138,15 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
return super.exportXls(request, payMeetingSituation, PayMeetingSituation.class, "会议报名信息");
}
/**
* 导出excel模板
*/
@GetMapping(value = "/exportTemplate")
public ModelAndView exportTemplate() {
return super.exportTemplate(PayMeetingSituation.class, "会议报名信息");
}
/**
* 通过excel导入数据
*/
@PostMapping(value = "/importExcel")
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, PayMeetingSituation.class);
}
/**
* 设置对接人
*/
@AutoLog(value = "设置对接人")
@ApiOperation(value="设置对接人", notes="设置对接人")
@PostMapping(value = "/addDock")
public Result<?> addDock(@RequestBody AddDockVO addDockVO) {
payMeetingSituationService.addDock(addDockVO);
return Result.OK("设置对接人成功!");
}
}
@@ -2,6 +2,9 @@ package com.jero.meeting.service;
import com.jero.meeting.entity.PayMeetingSituation;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.meeting.vo.AddDockVO;
import com.jero.meeting.vo.PayMeetingSituationVO;
import java.util.List;
/**
@@ -20,7 +23,7 @@ public interface IPayMeetingSituationService extends IService<PayMeetingSituatio
/**
* 更新
*/
void editById(PayMeetingSituation payMeetingSituation);
void editById(PayMeetingSituationVO payMeetingSituationVO);
/**
* 通过id删除
@@ -41,4 +44,6 @@ public interface IPayMeetingSituationService extends IService<PayMeetingSituatio
* 列表查询
*/
List<PayMeetingSituation> queryList();
void addDock(AddDockVO addDockVO);
}
@@ -1,8 +1,11 @@
package com.jero.meeting.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.ValidUtil;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
@@ -22,12 +25,15 @@ import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@@ -38,6 +44,7 @@ import javax.annotation.Resource;
* @Version: V1.0
*/
@Service
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituationMapper, PayMeetingSituation> implements IPayMeetingSituationService {
@Resource
private IPayContactsManagementService contactsManagementService;
@@ -49,11 +56,46 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
private IPayMeetingService meetingService;
@Resource
private IMemberInfoService memberInfoService;
@Resource
private ISysBaseAPI iSysBaseApi;
/**
* 保存
*/
@Override
public void add(PayMeetingSituation payMeetingSituation) {
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation);
payMeetingSituation1.setStatus(PayProjectCommon.NO);
payMeetingSituation1.setCheckIn(PayProjectCommon.NO);
payMeetingSituation1.setCheckResult(PayProjectCommon.NO);
payMeetingSituation1.setPaidAmount(new BigDecimal("0"));
//到账
payMeetingSituation1.setInAccount(PayProjectCommon.IN_ACCOUNT0);
//开票
payMeetingSituation1.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
//邮寄
payMeetingSituation1.setMail(PayProjectCommon.MAIL0);
save(payMeetingSituation1);
}
/**
* 更新
*/
@Override
public void editById(PayMeetingSituationVO payMeetingSituationVO) {
String id = payMeetingSituationVO.getId();
PayMeetingSituation payMeetingSituation = getById(id);
if (ObjectUtil.isNull(payMeetingSituation)){
throw new JeroBootException("参会人错误!");
}
BeanUtils.copyProperties(payMeetingSituationVO,payMeetingSituation);
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation);
saveOrUpdate(payMeetingSituation1);
}
@NotNull
private PayMeetingSituation getPayMeetingSituation(PayMeetingSituation payMeetingSituation) {
String meetingId = payMeetingSituation.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
//会议类型
@@ -147,7 +189,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
if (meetingType.equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))){
//根据企业名称和会员类型不为null判断是否为标协会员
LambdaQueryWrapper<MemberInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MemberInfo::getCompanyName,payMeetingSituation.getCompanyName());
wrapper.eq(MemberInfo::getCompanyName, payMeetingSituation.getCompanyName());
wrapper.isNotNull(MemberInfo::getMemberType);
int count = memberInfoService.count(wrapper);
//如果是标协会员就存入会议费用(标协会员)
@@ -180,26 +222,10 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
ValidUtil.validate(commonGuestVO);
BeanUtils.copyProperties(commonGuestVO, payMeetingSituation1);
}
payMeetingSituation1.setStatus(PayProjectCommon.NO);
payMeetingSituation1.setCheckIn(PayProjectCommon.NO);
payMeetingSituation1.setCheckResult(PayProjectCommon.NO);
//到账
payMeetingSituation1.setInAccount(PayProjectCommon.IN_ACCOUNT0);
//开票
payMeetingSituation1.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
//邮寄
payMeetingSituation1.setMail(PayProjectCommon.MAIL0);
save(payMeetingSituation1);
return payMeetingSituation1;
}
/**
* 更新
*/
@Override
public void editById(PayMeetingSituation payMeetingSituation) {
saveOrUpdate(payMeetingSituation);
}
/**
* 通过id删除
@@ -232,4 +258,21 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
public List<PayMeetingSituation> queryList() {
return list();
}
@Override
public void addDock(AddDockVO addDockVO) {
String dockId = addDockVO.getDockId();
LoginUser user = iSysBaseApi.getUserById(dockId);
if (ObjectUtil.isNull(user)){
throw new JeroBootException("对接人不存在");
}
String username = user.getUsername();
List<String> meetingSituationIds = addDockVO.getMeetingSituationIds();
for (String meetingSituationId : meetingSituationIds) {
PayMeetingSituation payMeetingSituation = getById(meetingSituationId);
payMeetingSituation.setDockId(dockId);
payMeetingSituation.setDockName(username);
saveOrUpdate(payMeetingSituation);
}
}
}
@@ -0,0 +1,16 @@
package com.jero.meeting.vo;
import lombok.Data;
import java.util.List;
/**
* 设置对接人
* @author liJiaRao
* @date 2021-09-09 17:51
*/
@Data
public class AddDockVO {
private String dockId;
private List<String> meetingSituationIds;
}
@@ -0,0 +1,291 @@
package com.jero.meeting.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import com.jero.meeting.valid.group.CommonPeople;
import com.jero.meeting.valid.group.Guest;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.*;
import java.math.BigDecimal;
/**
* @author liJiaRao
* @date 2021-09-09 17:25
*/
@Data
public class PayMeetingSituationVO {
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**会议id*/
@Excel(name = "会议id", width = 15)
@ApiModelProperty(value = "会议id")
@NotBlank(message = "会议项目不能为空")
private String meetingId;
/**企业id*/
@ApiModelProperty(value = "企业id")
@NotBlank(message = "企业名称不能为空")
@Size(max = 50, message = "企业名称最大为50字符")
private String companyId;
/**
* 企业临时id
*/
@Excel(name = "会员单位", width = 15, dictTable = "pay_company_management_temporary", dicText = "company_name", dicCode = "id",orderNum = "1")
private String companyTemporaryId;
/**企业名称*/
@Excel(name = "企业名称", width = 15)
@ApiModelProperty(value = "企业名称")
private String companyName;
/**企业联系人id*/
@ApiModelProperty(value = "企业联系人id")
@NotBlank(message = "企业联系人不能为空")
@Size(max = 50, message = "企业联系人最大为50字符")
private String companyContactId;
/**
* 企业联系人临时id
*/
@Excel(name = "企业联系人名称", width = 15, dictTable = "pay_contacts_management_temporary", dicText = "name", dicCode = "id",orderNum = "2")
private String companyContactTemporaryId;
/**企业联系人姓名*/
@Excel(name = "企业联系人姓名", width = 15)
@ApiModelProperty(value = "企业联系人姓名")
private String companyContactName;
/**职务*/
@ApiModelProperty(value = "职务")
private String post;
/**手机号*/
@ApiModelProperty(value = "手机号")
private String phone;
/**邮箱*/
@ApiModelProperty(value = "邮箱")
private String email;
/**身份*/
@ApiModelProperty(value = "身份")
@Dict(dicCode = "meet_identify_type")
private Integer identity;
/**嘉宾类型*/
@ApiModelProperty(value = "嘉宾类型")
@NotNull(message = "请选择嘉宾类型",groups = Guest.class)
@Min(value = 1,groups = Guest.class)
@Max(value = 4,groups = Guest.class)
private Integer guestType;
/**演讲题目*/
@Excel(name = "演讲题目", width = 15)
@ApiModelProperty(value = "演讲题目")
@NotBlank(message = "演讲题目不能为空",groups = Guest.class)
@Size(max = 50, message = "演讲题目最大为50字符")
private String speechTopic;
/**演讲ppt*/
@Excel(name = "演讲ppt", width = 15)
@ApiModelProperty(value = "演讲ppt")
@NotBlank(message = "演讲ppt不能为空",groups = Guest.class)
private String speechPpt;
/**照片*/
@Excel(name = "照片", width = 15)
@ApiModelProperty(value = "照片")
private String photo;
/**个人简介*/
@Excel(name = "个人简介", width = 15)
@ApiModelProperty(value = "个人简介")
private String profile;
/**是否用餐*/
@Excel(name = "是否用餐", width = 15)
@ApiModelProperty(value = "是否用餐")
@Dict(dicCode = "yn")
private Integer haveMeals;
/**是否回民*/
@Excel(name = "是否回民", width = 15)
@ApiModelProperty(value = "是否回民")
@Dict(dicCode = "yn")
private Integer huiPeople;
/**是否入住协议酒店*/
@Excel(name = "是否入住协议酒店", width = 15)
@ApiModelProperty(value = "是否入住协议酒店")
@Dict(dicCode = "yn")
private Integer checkInHotel;
/**入住酒店时间*/
@Excel(name = "入住酒店时间", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "入住酒店时间")
private java.util.Date inHotelTime;
/**离开酒店时间*/
@Excel(name = "离开酒店时间", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "离开酒店时间")
private java.util.Date outHotelTime;
/**房型*/
@Excel(name = "房型", width = 15)
@ApiModelProperty(value = "房型")
private String roomLayout;
/**是否需要接站*/
@Excel(name = "是否需要接站", width = 15)
@ApiModelProperty(value = "是否需要接站")
@Dict(dicCode = "yn")
private Integer pickUp;
/**抵达时间*/
@Excel(name = "抵达时间", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "抵达时间")
private java.util.Date arrivalTime;
/**到达站*/
@Excel(name = "到达站", width = 15)
@ApiModelProperty(value = "到达站")
private String destination;
/**到达班次*/
@Excel(name = "到达班次", width = 15)
@ApiModelProperty(value = "到达班次")
private String arrivalShift;
/**是否需要送站*/
@Excel(name = "是否需要送站", width = 15)
@ApiModelProperty(value = "是否需要送站")
@Dict(dicCode = "yn")
private Integer deliveryStation;
/**离开时间*/
@Excel(name = "离开时间", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "离开时间")
private java.util.Date departureTime;
/**离开站*/
@Excel(name = "离开站", width = 15)
@ApiModelProperty(value = "离开站")
private String departureStation;
/**离开班次*/
@Excel(name = "离开班次", width = 15)
@ApiModelProperty(value = "离开班次")
private String departureShift;
/**同行人*/
@Excel(name = "同行人", width = 15)
@ApiModelProperty(value = "同行人")
private String peer;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
private String remark;
/**是否签到*/
@Excel(name = "是否签到", width = 15)
@ApiModelProperty(value = "是否签到")
@Dict(dicCode = "yn")
private Integer checkIn;
/**邮寄联系人*/
@Excel(name = "邮寄联系人", width = 15)
@ApiModelProperty(value = "邮寄联系人")
private String postContactId;
/**
* 邮寄联系人临时id
*/
@Excel(name = "邮寄联系人姓名", width = 15, dictTable = "pay_contacts_management_temporary", dicText = "name", dicCode = "id",orderNum = "3")
private String postContactTemporaryId;
/**
* 邮寄联系人姓名
*/
@ApiModelProperty(value = "邮寄联系人姓名")
private String postContactName;
/**邮寄联系人地址*/
@Excel(name = "邮寄联系人地址", width = 15)
@ApiModelProperty(value = "邮寄联系人地址")
private String postContactAddress;
/**缴费方式*/
@Excel(name = "缴费方式", width = 15)
@ApiModelProperty(value = "缴费方式")
@NotNull(message = "缴费方式不能为空",groups = CommonPeople.class)
@Min(1)
@Max(3)
@Dict(dicCode = "meeting_pay_type")
private Integer payMode;
/**需要发票*/
@Excel(name = "需要发票", width = 15)
@ApiModelProperty(value = "需要发票")
@Min(0)
@Max(2)
@Dict(dicCode = "invoice_type")
private Integer needInvoice;
/**付款凭证*/
@Excel(name = "付款凭证", width = 15)
@ApiModelProperty(value = "付款凭证")
private String paymentRecord;
/**
* 应收金额
*/
@ApiModelProperty(value = "应收金额")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal amountReceivable;
/**打包*/
@Excel(name = "打包", width = 15)
@ApiModelProperty(value = "打包")
private Integer pack;
}