diff --git a/db/23年7月.sql b/db/23年7月.sql deleted file mode 100644 index 4b8d9a9d..00000000 --- a/db/23年7月.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE `pay_working_group_subitem` - ADD COLUMN `label` varchar(50) NULL COMMENT '标签' AFTER `no_tax_amount`; \ No newline at end of file diff --git a/db/23年7月变更.sql b/db/23年7月变更.sql new file mode 100644 index 00000000..ed999d5d --- /dev/null +++ b/db/23年7月变更.sql @@ -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); + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingSituationController.java index 565b7d7d..00634947 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingSituationController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingSituationController.java @@ -233,4 +233,18 @@ public class CommitteeMeetingSituationController extends JeroController setGuestsUploadFile(@RequestBody SetGuestsUploadFileVO setGuestsUploadFileVO) { + ValidUtil.validate(setGuestsUploadFileVO); + payMeetingSituationService.setGuestsUploadFile(setGuestsUploadFileVO,MEETING_TYPE); + return Result.OK("合并开票成功!"); + } + + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingSituationController.java index 08541d35..fe6958a8 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingSituationController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingSituationController.java @@ -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 guestsUploadFile(@RequestBody GuestsUploadFileVO guestsUploadFileVO) { + ValidUtil.validate(guestsUploadFileVO); + payMeetingSituationService.guestsUploadFile(guestsUploadFileVO); + return Result.OK("上传文件成功!"); + } + + /** + * 嘉宾上传文件列表 + */ + @AutoLog(value = "嘉宾上传文件列表") + @ApiOperation(value = "嘉宾上传文件", notes = "嘉宾上传文件") + @PostMapping(value = "/guestsUploadFileList") + public Result> guestsUploadFileList(@RequestBody GuestsUploadFileVO guestsUploadFileVO) { + List 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("删除文件成功!"); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingGuestsFile.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingGuestsFile.java new file mode 100644 index 00000000..0fc80619 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingGuestsFile.java @@ -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; +} \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java index a3914f69..68b0723e 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java @@ -514,4 +514,7 @@ public class PayMeetingSituation implements Serializable { @ApiModelProperty(value = "未税金额") @JsonFormat(shape = JsonFormat.Shape.STRING) private BigDecimal noTaxAmount; + + @ApiModelProperty(value = "嘉宾上传文件标识") + private Integer guestsUploadFileFlag; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingGuestsFileMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingGuestsFileMapper.java new file mode 100644 index 00000000..4c2ff03a --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingGuestsFileMapper.java @@ -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 { +} \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingGuestsFileMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingGuestsFileMapper.xml new file mode 100644 index 00000000..431f180f --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingGuestsFileMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + id, meeting_id, contacts_id, file_id, create_by, create_time + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java index 56624685..61129e67 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java @@ -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 guestsUploadFileList(GuestsUploadFileVO guestsUploadFileVO); + + void guestsDeleteFile(GuestsUploadFileVO guestsUploadFileVO); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/PayMeetingGuestsFileService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/PayMeetingGuestsFileService.java new file mode 100644 index 00000000..12befb5c --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/PayMeetingGuestsFileService.java @@ -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 { + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java index 757e99d8..98e594e3 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java @@ -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 meetingDataList = new ArrayList<>(); + String meetingData = meeting.getMeetingData(); + if (StringUtils.isNotBlank(meetingData)) { + meetingDataList.addAll(Arrays.asList(meetingData.split(","))); + } + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(PayMeetingGuestsFile::getMeetingId,meetingId); + List payMeetingGuestsFiles = meetingGuestsFileMapper.selectList(wrapper1); + List collect = payMeetingGuestsFiles.stream().map(PayMeetingGuestsFile::getFileId).collect(Collectors.toList()); + meetingDataList.addAll(collect); + meeting.setMeetingData(String.join(meetingData,",")); } return pageList; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java index 2c2ab78d..e16b5c37 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java @@ -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 meetingSituationIdList = Arrays.asList(meetingSituationIds.split(",")); + List 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 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 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 guestsUploadFileList(GuestsUploadFileVO guestsUploadFileVO) { + String meetingId = guestsUploadFileVO.getMeetingId(); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String sysUserId = sysUser.getId(); + + LambdaQueryWrapper 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 fileIdList = Arrays.asList(fileIds.split(",")); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayMeetingGuestsFile::getMeetingId,meetingId); + wrapper.eq(PayMeetingGuestsFile::getContactsId,sysUserId); + wrapper.in(PayMeetingGuestsFile::getFileId,fileIdList); + meetingGuestsFileMapper.delete(wrapper); + } + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/GuestsUploadFileVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/GuestsUploadFileVO.java new file mode 100644 index 00000000..ef455a6b --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/GuestsUploadFileVO.java @@ -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; + + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/SetGuestsUploadFileVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/SetGuestsUploadFileVO.java new file mode 100644 index 00000000..90081244 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/SetGuestsUploadFileVO.java @@ -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; +}