add 嘉宾上传会议资料

This commit is contained in:
lijiarao
2023-07-13 11:28:28 +08:00
parent aaa5f20960
commit f24dfb2531
14 changed files with 365 additions and 2 deletions
-2
View File
@@ -1,2 +0,0 @@
ALTER TABLE `pay_working_group_subitem`
ADD COLUMN `label` varchar(50) NULL COMMENT '标签' AFTER `no_tax_amount`;
+20
View File
@@ -0,0 +1,20 @@
ALTER TABLE `pay_working_group_subitem`
ADD COLUMN `label` varchar(50) NULL COMMENT '标签';
ALTER TABLE `pay_meeting_situation`
ADD COLUMN `guests_upload_file_flag` tinyint NULL COMMENT '嘉宾上传文件标识';
create table pay_meeting_guests_file
(
id varchar(36) not null comment 'id',
meeting_id varchar(50) null comment '会议id',
contacts_id varchar(50) null comment '联系人id',
file_id varchar(50) null comment '文件id',
constraint Index_1
unique (id)
)
comment '会议嘉宾文件表';
alter table pay_meeting_guests_file
add primary key (id);
@@ -233,4 +233,18 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
payMeetingSituationService.mergePayBill(mergePayBillVO);
return Result.OK("合并开票成功!");
}
/**
* 设置嘉宾上传文件
*/
@AutoLog(value = "设置嘉宾上传文件")
@ApiOperation(value = "设置嘉宾上传文件", notes = "设置嘉宾上传文件")
@PostMapping(value = "/setGuestsUploadFile")
public Result<?> setGuestsUploadFile(@RequestBody SetGuestsUploadFileVO setGuestsUploadFileVO) {
ValidUtil.validate(setGuestsUploadFileVO);
payMeetingSituationService.setGuestsUploadFile(setGuestsUploadFileVO,MEETING_TYPE);
return Result.OK("合并开票成功!");
}
}
@@ -23,6 +23,7 @@ import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingGuestsFile;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.service.IPayMeetingSituationService;
@@ -376,4 +377,39 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
Integer integer = payMeetingSituationService.validInvitationCode(payMeeting, randomCode, false);
return Result.OK("校验成功");
}
/**
* 嘉宾上传文件
*/
@AutoLog(value = "嘉宾上传文件")
@ApiOperation(value = "嘉宾上传文件", notes = "嘉宾上传文件")
@PostMapping(value = "/guestsUploadFile")
public Result<?> guestsUploadFile(@RequestBody GuestsUploadFileVO guestsUploadFileVO) {
ValidUtil.validate(guestsUploadFileVO);
payMeetingSituationService.guestsUploadFile(guestsUploadFileVO);
return Result.OK("上传文件成功!");
}
/**
* 嘉宾上传文件列表
*/
@AutoLog(value = "嘉宾上传文件列表")
@ApiOperation(value = "嘉宾上传文件", notes = "嘉宾上传文件")
@PostMapping(value = "/guestsUploadFileList")
public Result<List<PayMeetingGuestsFile>> guestsUploadFileList(@RequestBody GuestsUploadFileVO guestsUploadFileVO) {
List<PayMeetingGuestsFile> payMeetingGuestsFiles = payMeetingSituationService.guestsUploadFileList(guestsUploadFileVO);
return Result.OK(payMeetingGuestsFiles);
}
/**
* 嘉宾删除文件
*/
@AutoLog(value = "嘉宾删除文件")
@ApiOperation(value = "嘉宾删除文件", notes = "嘉宾删除文件")
@PostMapping(value = "/guestsDeleteFile")
public Result<?> guestsDeleteFile(@RequestBody GuestsUploadFileVO guestsUploadFileVO) {
ValidUtil.validate(guestsUploadFileVO);
payMeetingSituationService.guestsDeleteFile(guestsUploadFileVO);
return Result.OK("删除文件成功!");
}
}
@@ -0,0 +1,66 @@
package com.jero.meeting.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.Data;
/**
*
*@author liJiaRao
*@date 2023-07-13 10:35
*/
/**
* 会议嘉宾文件表
*/
@ApiModel(description = "会议嘉宾文件表")
@Data
@TableName(value = "pay_meeting_guests_file")
public class PayMeetingGuestsFile {
/**
* id
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private String id;
/**
* 会议id
*/
@TableField(value = "meeting_id")
@ApiModelProperty(value = "会议id")
private String meetingId;
/**
* 联系人id
*/
@TableField(value = "contacts_id")
@ApiModelProperty(value = "联系人id")
private String contactsId;
/**
* 文件id
*/
@TableField(value = "file_id")
@ApiModelProperty(value = "文件id")
private String fileId;
/**
* 创建人
*/
@TableField(value = "create_by")
@ApiModelProperty(value = "创建人")
private String createBy;
/**
* 创建日期
*/
@TableField(value = "create_time")
@ApiModelProperty(value = "创建日期")
private Date createTime;
}
@@ -514,4 +514,7 @@ public class PayMeetingSituation implements Serializable {
@ApiModelProperty(value = "未税金额")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal noTaxAmount;
@ApiModelProperty(value = "嘉宾上传文件标识")
private Integer guestsUploadFileFlag;
}
@@ -0,0 +1,11 @@
package com.jero.meeting.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.meeting.entity.PayMeetingGuestsFile;
/**
* @author liJiaRao
* @date 2023-07-13 10:35
*/
public interface PayMeetingGuestsFileMapper extends BaseMapper<PayMeetingGuestsFile> {
}
@@ -0,0 +1,18 @@
<?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.meeting.mapper.PayMeetingGuestsFileMapper">
<resultMap id="BaseResultMap" type="com.jero.meeting.entity.PayMeetingGuestsFile">
<!--@mbg.generated-->
<!--@Table pay_meeting_guests_file-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="meeting_id" jdbcType="VARCHAR" property="meetingId" />
<result column="contacts_id" jdbcType="VARCHAR" property="contactsId" />
<result column="file_id" jdbcType="VARCHAR" property="fileId" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, meeting_id, contacts_id, file_id, create_by, create_time
</sql>
</mapper>
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingGuestsFile;
import com.jero.meeting.entity.PayMeetingSituation;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.meeting.vo.*;
@@ -93,4 +94,12 @@ public interface IPayMeetingSituationService extends IService<PayMeetingSituatio
Boolean checkMember(String meetingId, Integer meetingType);
void editGuestInfo(PayMeetingSituation payMeetingSituation);
void setGuestsUploadFile(SetGuestsUploadFileVO setGuestsUploadFileVO, Integer meetingType1);
void guestsUploadFile(GuestsUploadFileVO guestsUploadFileVO);
List<PayMeetingGuestsFile> guestsUploadFileList(GuestsUploadFileVO guestsUploadFileVO);
void guestsDeleteFile(GuestsUploadFileVO guestsUploadFileVO);
}
@@ -0,0 +1,17 @@
package com.jero.meeting.service;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.meeting.entity.PayMeetingGuestsFile;
import com.jero.meeting.mapper.PayMeetingGuestsFileMapper;
/**
*
*@author liJiaRao
*@date 2023-07-13 10:33
*/
@Service
public class PayMeetingGuestsFileService extends ServiceImpl<PayMeetingGuestsFileMapper, PayMeetingGuestsFile> {
}
@@ -36,6 +36,7 @@ import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.common.MeetingSubitemCommon;
import com.jero.meeting.entity.*;
import com.jero.meeting.mapper.PayMeetingContactsMapper;
import com.jero.meeting.mapper.PayMeetingGuestsFileMapper;
import com.jero.meeting.mapper.PayMeetingMapper;
import com.jero.meeting.service.*;
import com.jero.meeting.valid.group.CaseCommitteeMeeting;
@@ -131,6 +132,8 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
private IPayWorkingGroupSubItemContactsService workingGroupSubItemContactsService;
@Resource
private IPayMeetingStandardService payMeetingStandardService;
@Resource
private PayMeetingGuestsFileMapper meetingGuestsFileMapper;
/**
* 新增会议
@@ -1001,6 +1004,18 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
}
}
});
//会议资料
List<String> meetingDataList = new ArrayList<>();
String meetingData = meeting.getMeetingData();
if (StringUtils.isNotBlank(meetingData)) {
meetingDataList.addAll(Arrays.asList(meetingData.split(",")));
}
LambdaQueryWrapper<PayMeetingGuestsFile> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(PayMeetingGuestsFile::getMeetingId,meetingId);
List<PayMeetingGuestsFile> payMeetingGuestsFiles = meetingGuestsFileMapper.selectList(wrapper1);
List<String> collect = payMeetingGuestsFiles.stream().map(PayMeetingGuestsFile::getFileId).collect(Collectors.toList());
meetingDataList.addAll(collect);
meeting.setMeetingData(String.join(meetingData,","));
}
return pageList;
}
@@ -1,4 +1,5 @@
package com.jero.meeting.service.impl;
import java.util.Date;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
@@ -8,10 +9,12 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.common.ProjectCommon;
import com.jero.common.constant.CommonConstant;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.CompanyMessageEnums;
import com.jero.common.enums.ManagementMessageEnums;
@@ -47,7 +50,9 @@ import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.common.MeetingSubitemCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingContacts;
import com.jero.meeting.entity.PayMeetingGuestsFile;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingGuestsFileMapper;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.meeting.service.IPayMeetingContactsService;
import com.jero.meeting.service.IPayMeetingService;
@@ -146,6 +151,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
private IPayWorkingGroupSubItemContactsService workingGroupSubItemContactsService;
@Resource
private PayRandomCodeService randomCodeService;
@Resource
private PayMeetingGuestsFileMapper meetingGuestsFileMapper;
private static final String[] CAN_MODIFY_LIST =
@@ -1732,4 +1739,102 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
BeanUtils.copyProperties(internationalGuestVO, update);
updateById(update);
}
@Override
public void setGuestsUploadFile(SetGuestsUploadFileVO setGuestsUploadFileVO, Integer meetingType1) {
String meetingId = setGuestsUploadFileVO.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
String meetingType = payMeeting.getMeetingType().toString();
if (meetingType1 != null && !Objects.equals(payMeeting.getMeetingType(),meetingType1)) {
throw new JeroBootException("数据权限不足");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String sysUserId = sysUser.getId();
String directorId = payMeeting.getDirectorId();
//只有会议负责人可以修改
if (!directorId.equals(sysUserId)) {
throw new JeroBootException("只有会议负责人可以修改");
}
String meetingSituationIds = setGuestsUploadFileVO.getMeetingSituationIds();
List<String> meetingSituationIdList = Arrays.asList(meetingSituationIds.split(","));
List<PayMeetingSituation> payMeetingSituations = this.listByIds(meetingSituationIdList);
for (PayMeetingSituation meetingSituation : payMeetingSituations) {
String meetingId1 = meetingSituation.getMeetingId();
if (!meetingId.equals(meetingId1)){
throw new JeroBootException("参会人选择错误");
}
//只有嘉宾可以设置
Integer identity = meetingSituation.getIdentity();
if (!identity.equals(MeetingSubitemCommon.JIA_BIN)){
throw new JeroBootException("只有嘉宾可以设置");
}
}
Integer guestsUploadFileFlag = setGuestsUploadFileVO.getGuestsUploadFileFlag();
LambdaUpdateWrapper<PayMeetingSituation> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(PayMeetingSituation::getGuestsUploadFileFlag, guestsUploadFileFlag);
updateWrapper.in(PayMeetingSituation::getId,meetingSituationIdList);
this.update(updateWrapper);
}
@Override
public void guestsUploadFile(GuestsUploadFileVO guestsUploadFileVO) {
String meetingId = guestsUploadFileVO.getMeetingId();
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String sysUserId = sysUser.getId();
LambdaQueryWrapper<PayMeetingSituation> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMeetingSituation::getMeetingId,meetingId);
wrapper.eq(PayMeetingSituation::getContractId,sysUserId);
PayMeetingSituation meetingSituation = this.getOne(wrapper);
Integer identity = meetingSituation.getIdentity();
if (!identity.equals(MeetingSubitemCommon.JIA_BIN)){
throw new JeroBootException("只有嘉宾可以设置");
}
Integer guestsUploadFileFlag = meetingSituation.getGuestsUploadFileFlag();
if (!CommonConstant.DEL_FLAG_1.equals(guestsUploadFileFlag)){
throw new JeroBootException("没有权限");
}
String[] fileIdList = guestsUploadFileVO.getFileIds().split(",");
for (String fileId : fileIdList) {
PayMeetingGuestsFile payMeetingGuestsFile = new PayMeetingGuestsFile();
payMeetingGuestsFile.setMeetingId(meetingId);
payMeetingGuestsFile.setContactsId(sysUserId);
payMeetingGuestsFile.setFileId(fileId);
meetingGuestsFileMapper.insert(payMeetingGuestsFile);
}
}
@Override
public List<PayMeetingGuestsFile> guestsUploadFileList(GuestsUploadFileVO guestsUploadFileVO) {
String meetingId = guestsUploadFileVO.getMeetingId();
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String sysUserId = sysUser.getId();
LambdaQueryWrapper<PayMeetingGuestsFile> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMeetingGuestsFile::getMeetingId,meetingId);
wrapper.eq(PayMeetingGuestsFile::getContactsId,sysUserId);
return meetingGuestsFileMapper.selectList(wrapper);
}
@Override
public void guestsDeleteFile(GuestsUploadFileVO guestsUploadFileVO) {
String meetingId = guestsUploadFileVO.getMeetingId();
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String sysUserId = sysUser.getId();
String fileIds = guestsUploadFileVO.getFileIds();
List<String> fileIdList = Arrays.asList(fileIds.split(","));
LambdaQueryWrapper<PayMeetingGuestsFile> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMeetingGuestsFile::getMeetingId,meetingId);
wrapper.eq(PayMeetingGuestsFile::getContactsId,sysUserId);
wrapper.in(PayMeetingGuestsFile::getFileId,fileIdList);
meetingGuestsFileMapper.delete(wrapper);
}
}
@@ -0,0 +1,24 @@
package com.jero.meeting.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author liJiaRao
* @date 2023-07-13 9:37
*/
@Data
public class GuestsUploadFileVO {
/**会议id*/
@ApiModelProperty(value = "会议id")
@NotBlank(message = "会议项目不能为空")
private String meetingId;
@ApiModelProperty(value = "文件ids")
@NotBlank(message = "文件不能为空")
private String fileIds;
}
@@ -0,0 +1,27 @@
package com.jero.meeting.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @author liJiaRao
* @date 2023-07-13 9:37
*/
@Data
public class SetGuestsUploadFileVO {
/**会议id*/
@ApiModelProperty(value = "会议id")
@NotBlank(message = "会议项目不能为空")
private String meetingId;
@ApiModelProperty(value = "参会人ids")
@NotBlank(message = "参会人不能为空")
private String meetingSituationIds;
@ApiModelProperty(value = "嘉宾上传文件标识")
@NotNull(message = "嘉宾上传文件标识不能为空")
private Integer guestsUploadFileFlag;
}