From 2b19ac2c3825a220149bc9db84f7bf63f0437f0d Mon Sep 17 00:00:00 2001 From: sunzheng Date: Fri, 5 Jan 2024 16:35:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=B5=B7=E8=8D=89=E7=BB=84-?= =?UTF-8?q?=E4=BC=9A=E8=AE=AE-CRUD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tingGroupDistributionRecordController.java | 42 +++++ .../PayDraftingGroupDistributionRecord.java | 104 +++++++++++ ...DraftingGroupDistributionRecordMapper.java | 15 ++ ...yDraftingGroupDistributionRecordMapper.xml | 5 + ...raftingGroupDistributionRecordService.java | 16 ++ ...ingGroupDistributionRecordServiceImpl.java | 22 +++ .../jero/meeting/common/MeetingCommon.java | 8 + .../DraftGroupMeetingController.java | 172 ++++++++++++++++++ .../com/jero/meeting/entity/PayMeeting.java | 9 + .../jero/meeting/mapper/PayMeetingMapper.java | 3 + .../meeting/mapper/xml/PayMeetingMapper.xml | 10 + .../service/impl/PayMeetingServiceImpl.java | 29 +++ .../valid/group/DraftingGroupMeeting.java | 9 + .../com/jero/meeting/vo/PayMeetingVO.java | 9 + 14 files changed, 453 insertions(+) create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/drafting/controller/PayDraftingGroupDistributionRecordController.java create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/drafting/entity/PayDraftingGroupDistributionRecord.java create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/PayDraftingGroupDistributionRecordMapper.java create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupDistributionRecordMapper.xml create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupDistributionRecordService.java create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupDistributionRecordServiceImpl.java create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/DraftGroupMeetingController.java create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/meeting/valid/group/DraftingGroupMeeting.java diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/controller/PayDraftingGroupDistributionRecordController.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/controller/PayDraftingGroupDistributionRecordController.java new file mode 100644 index 00000000..c4bbde4d --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/controller/PayDraftingGroupDistributionRecordController.java @@ -0,0 +1,42 @@ +package com.jero.drafting.controller; + +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.DictPoint; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.base.controller.JeroController; +import com.jero.drafting.entity.PayDraftingGroupDistributionRecord; +import com.jero.drafting.service.IPayDraftingGroupDistributionRecordService; +import com.jero.modules.oss.service.IOSSFileService; +import com.jero.project.common.PayProjectCommon; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + *

+ * 起草组成员企业联系人表 前端控制器 + *

+ * + * @author sz + * @since 2024-01-02 + */ +@Api(tags = "起草组-分发记录") +@RestController +@RequestMapping("/drafting/payDraftingGroupDistributionRecord") +@Slf4j +public class PayDraftingGroupDistributionRecordController extends JeroController { + @Resource + private IOSSFileService iossFileService; + @Value("${jero.path.upload}") + private String upLoadPath; + + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/entity/PayDraftingGroupDistributionRecord.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/entity/PayDraftingGroupDistributionRecord.java new file mode 100644 index 00000000..c782adc8 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/entity/PayDraftingGroupDistributionRecord.java @@ -0,0 +1,104 @@ +package com.jero.drafting.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 com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; +import java.io.Serializable; +import java.util.Date; + +/** + * @Description: pay_drafting_group_distribution_record + * @Author: jeecg-boot + * @Date: 2024-01-05 + * @Version: V1.0 + */ +@Data +@TableName("pay_drafting_group_distribution_record") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="pay_drafting_group_distribution_record", description="pay_drafting_group_distribution_record") +public class PayDraftingGroupDistributionRecord implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + /**资料id*/ + @Excel(name = "资料id", width = 15) + @ApiModelProperty(value = "资料id") + private String dataId; + /**起草组id或者分标委id*/ + @Excel(name = "起草组id或者分标委id", width = 15) + @ApiModelProperty(value = "起草组id或者分标委id") + private String projectId; + /**工作组成员id或者分标委成员id*/ + @Excel(name = "工作组成员id或者分标委成员id", width = 15) + @ApiModelProperty(value = "工作组成员id或者分标委成员id") + private String subId; + /**文件id*/ + @Excel(name = "文件id", width = 15) + @ApiModelProperty(value = "文件id") + private String fileId; + /**联系人id*/ + @Excel(name = "联系人id", width = 15) + @ApiModelProperty(value = "联系人id") + private String contactsId; + /**联系人名称*/ + @Excel(name = "联系人名称", width = 15) + @ApiModelProperty(value = "联系人名称") + private String contactsName; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private String createBy; + /**创建时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private String updateBy; + /**更新时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间") + private Date updateTime; + + /**资料ids 多个以逗号分隔*/ + @Excel(name = "资料ids 多个以逗号分隔", width = 15) + @ApiModelProperty(value = "资料ids 多个以逗号分隔") + @TableField(exist = false) + private String dataIds; + + /**项目类型1:起草组,2:分标委*/ + @ApiModelProperty(value = "项目类型1:起草组,2:分标委") + private Integer projectType; + + /**联系人ids 多个以逗号分隔*/ + @TableField(exist = false) + @ApiModelProperty(value = "联系人ids 多个以逗号分隔") + private String contactsIds; + /** + * 联系人临时id + */ + @TableField(exist = false) + @ApiModelProperty(value = "联系人临时id") + private String temporaryContactsId; + + /** + * 是否发送邮件 + */ + @TableField(exist = false) + @ApiModelProperty(value = "是否发送邮件") + private Integer sendEmailFlag; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/PayDraftingGroupDistributionRecordMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/PayDraftingGroupDistributionRecordMapper.java new file mode 100644 index 00000000..ad520f9f --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/PayDraftingGroupDistributionRecordMapper.java @@ -0,0 +1,15 @@ +package com.jero.drafting.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.drafting.entity.PayDraftingGroupDistributionRecord; + +/** + *

+ * 起草组-分发记录表 Mapper 接口 + *

+ * + * @author sz + * @since 2024-01-02 + */ +public interface PayDraftingGroupDistributionRecordMapper extends BaseMapper { +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupDistributionRecordMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupDistributionRecordMapper.xml new file mode 100644 index 00000000..690830da --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupDistributionRecordMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupDistributionRecordService.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupDistributionRecordService.java new file mode 100644 index 00000000..3a798380 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupDistributionRecordService.java @@ -0,0 +1,16 @@ +package com.jero.drafting.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.drafting.entity.PayDraftingGroupDistributionRecord; +import com.jero.drafting.entity.PayDraftingGroupSubItemContacts; + +/** + *

+ * 起草组 分发记录表 服务类 + *

+ * + * @author sz + * @since 2024-01-02 + */ +public interface IPayDraftingGroupDistributionRecordService extends IService { +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupDistributionRecordServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupDistributionRecordServiceImpl.java new file mode 100644 index 00000000..d087e204 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupDistributionRecordServiceImpl.java @@ -0,0 +1,22 @@ +package com.jero.drafting.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.drafting.entity.PayDraftingGroupDistributionRecord; +import com.jero.drafting.entity.PayDraftingGroupSubItemContacts; +import com.jero.drafting.mapper.PayDraftingGroupDistributionRecordMapper; +import com.jero.drafting.mapper.PayDraftingGroupSubItemContactsMapper; +import com.jero.drafting.service.IPayDraftingGroupDistributionRecordService; +import com.jero.drafting.service.IPayDraftingGroupSubItemContactsService; +import org.springframework.stereotype.Service; + +/** + *

+ * 起草组 分发记录表 服务实现类 + *

+ * + * @author sz + * @since 2024-01-05 + */ +@Service +public class PayDraftingGroupDistributionRecordServiceImpl extends ServiceImpl implements IPayDraftingGroupDistributionRecordService { +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingCommon.java index 53fe038e..bf37341b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingCommon.java @@ -56,6 +56,14 @@ public class MeetingCommon { * 理事会会议 */ public final static Integer COUNCIL_MEETING_INT = 6; + /** + * 起草组会议 + */ + public final static String DRAFTING_GROUP_MEETING = "7"; + /** + * 起草组会议 + */ + public final static Integer DRAFTING_GROUP_MEETING_INT = 7; /** * 标准宣贯 */ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/DraftGroupMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/DraftGroupMeetingController.java new file mode 100644 index 00000000..e06b576d --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/DraftGroupMeetingController.java @@ -0,0 +1,172 @@ +package com.jero.meeting.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +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.PasswordUtil; +import com.jero.common.util.ValidUtil; +import com.jero.drafting.entity.PayDraftingGroup; +import com.jero.drafting.service.IPayDraftingGroupService; +import com.jero.meeting.common.MeetingCommon; +import com.jero.meeting.entity.PayMeeting; +import com.jero.meeting.entity.PayMeetingHotelContacts; +import com.jero.meeting.service.IPayMeetingHotelContactsService; +import com.jero.meeting.service.IPayMeetingService; +import com.jero.meeting.vo.PayMeetingVO; +import com.jero.modules.system.volid.group.UpdateGroup; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +@Api(tags = "会议管理-起草组会议") +@RestController +@RequestMapping("/meeting/draftGroupMeeting") +@Slf4j +public class DraftGroupMeetingController { + @Resource + private IPayMeetingService payMeetingService; + @Resource + private ISysBaseAPI sysBaseAPI; + @Resource + private IPayMeetingHotelContactsService meetingHotelContactsService; + @Resource + private IPayDraftingGroupService payDraftingGroupService; + + /** + * 分页列表查询 + */ +// @RequiresPermissions("draftGroupMeeting:search") + @ApiOperation(value = "会议管理-分页列表查询", notes = "会议管理-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(PayMeeting payMeeting, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + payMeeting.setMeetingType(MeetingCommon.DRAFTING_GROUP_MEETING_INT); + IPage pageList = payMeetingService.queryPageList(payMeeting, pageNo, pageSize, req); + return Result.OK(pageList); + } + + /** + * 添加 + */ +// @RequiresPermissions("draftGroupMeeting:add") + @AutoLog(value = "会议管理-添加") + @ApiOperation(value = "会议管理-添加", notes = "会议管理-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody PayMeetingVO payMeetingVO) { + String meetingType = payMeetingVO.getMeetingType(); + if (!Objects.equals(meetingType, MeetingCommon.DRAFTING_GROUP_MEETING)) { + throw new RuntimeException(); + } + ValidUtil.validate(payMeetingVO); + payMeetingService.add(payMeetingVO); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + */ +// @RequiresPermissions("draftGroupMeeting:edit") + @AutoLog(value = "会议管理-编辑") + @ApiOperation(value = "会议管理-编辑", notes = "会议管理-编辑") + @PostMapping(value = "/edit") + public Result edit(@RequestBody PayMeetingVO payMeetingVO) { + String id = payMeetingVO.getId(); + verifyMeetingType(id); + ValidUtil.validate(payMeetingVO, UpdateGroup.class); + payMeetingService.editById(payMeetingVO); + return Result.OK("编辑成功!"); + } + + /** + * 验证会议类型 + * @param id + */ + private void verifyMeetingType(String id) { + if (StringUtils.isBlank(id)) { + throw new JeroBootException("会议id不能为空"); + } + PayMeeting payMeeting = payMeetingService.getById(id); + if (Objects.isNull(payMeeting)) { + throw new JeroBootException("该会议不存在"); + } + Integer meetingType = payMeeting.getMeetingType(); + if (!Objects.equals(meetingType, MeetingCommon.DRAFTING_GROUP_MEETING_INT)) { + throw new RuntimeException(); + } + } + + /** + * 通过id删除 + */ +// @RequiresPermissions("draftGroupMeeting:delete") + @AutoLog(value = "会议管理-通过id删除") + @ApiOperation(value = "会议管理-通过id删除", notes = "会议管理-通过id删除") + @GetMapping(value = "/delete") + public Result delete(@RequestParam(name = "id") String id) { + verifyMeetingType(id); + payMeetingService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + */ +// @RequiresPermissions("draftGroupMeeting:batchDel") + @AutoLog(value = "会议管理-批量删除") + @ApiOperation(value = "会议管理-批量删除", notes = "会议管理-批量删除") + @GetMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name = "ids") String ids) { + List idList = Arrays.asList(ids.split(",")); + for (String id : idList) { + verifyMeetingType(id); + } + this.payMeetingService.deleteByIds(idList); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + */ + @ApiOperation(value = "会议管理-通过id查询", notes = "会议管理-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id") String id) { + PayMeeting meeting = payMeetingService.queryById(id); + if (meeting == null || !Objects.equals(meeting.getMeetingType(), MeetingCommon.DRAFTING_GROUP_MEETING_INT)) { + return Result.error("未找到对应数据"); + } + //查询会议负责人 + LoginUser user = sysBaseAPI.getUserById(meeting.getDirectorId()); + meeting.setDirectorName(user.getRealname()); + meeting.setDirectorPhone(PasswordUtil.decrypt(user.getPhone())); + PayMeetingVO payMeetingVO = new PayMeetingVO(); + BeanUtils.copyProperties(meeting, payMeetingVO); + String meetingType = meeting.getMeetingType().toString(); + payMeetingVO.setMeetingType(meetingType); + payMeetingVO.setTbMeetingType(meeting.getMeetingType().toString()); + //会议查询酒店联系人列表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayMeetingHotelContacts::getMeetingId, meeting.getId()); + List payMeetingHotelContactsList = meetingHotelContactsService.list(wrapper); + payMeetingVO.setHotelContactsList(payMeetingHotelContactsList); + // 起草组项目查询起草组项目名 + String draftingGroupId = meeting.getDraftingGroupId(); + PayDraftingGroup payDraftingGroup = payDraftingGroupService.getById(draftingGroupId); + payMeetingVO.setDirectorName(payDraftingGroup.getDraftingGroupProject()); + return Result.OK(payMeetingVO); + + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java index a37e16a9..6aef4774 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java @@ -397,4 +397,13 @@ public class PayMeeting implements Serializable { @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "征集截止日期") private java.util.Date endTimeAddQuestion; + + /**起草组id*/ + @Excel(name = "起草组名称", width = 15, dictTable = "pay_drafting_group",dicText = "drafting_group_project",dicCode = "id") + @ApiModelProperty(value = "起草id") + private String draftingGroupId; + + /**起草组名称*/ + @ApiModelProperty(value = "起草组名称") + private String draftingGroupName; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingMapper.java index 80ef82e2..abc029d2 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingMapper.java @@ -35,6 +35,9 @@ public interface PayMeetingMapper extends BaseMapper { IPage workGroupPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + IPage draftGroupPage(Page page, QueryWrapper queryWrapper); + + IPage standardPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); IPage basePage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingMapper.xml index debb2bee..34ac71c2 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingMapper.xml @@ -230,6 +230,16 @@ ${ew.customSqlSegment} + + +