add: 内外部会议模块增删改查

This commit is contained in:
wxyclub
2023-10-13 15:34:17 +08:00
parent 85ca3d86b2
commit 5cb5921142
9 changed files with 539 additions and 0 deletions
@@ -0,0 +1,61 @@
package com.adc.da.slrs.InsideOntSideMeeting.controller;
import com.adc.da.base.web.BaseController;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.InsideOntSideMeeting.entity.InsideOutSideMeeting;
import com.adc.da.slrs.InsideOntSideMeeting.entity.InsideOutsideMeetingVO;
import com.adc.da.slrs.InsideOntSideMeeting.service.InsideOutsideMeetingService;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* @author tjzdw
* @description
* @date 2023/10/10
*/
@RestController
@RequestMapping("/${restPath}/lawss/insideOutsideMeeting")
public class InsideOutSideMeetingController extends BaseController<InsideOutSideMeeting> {
@Resource
private InsideOutsideMeetingService meetingService;
@ApiOperation(value = "根据会议ID查询会议信息")
@GetMapping("/getMeetingInfo")
public ResponseMessage<InsideOutSideMeeting> getMeetingInfo(String meetingId){
if (StringUtils.isBlank(meetingId)) {
return Result.error("会议ID为空!");
}
InsideOutSideMeeting meetingInfo = meetingService.getMeetingInfo(meetingId);
return Result.success(meetingInfo);
}
@ApiOperation(value = "分页查询")
@GetMapping("/page")
public ResponseMessage<List<InsideOutSideMeeting>> page(InsideOutsideMeetingVO insideOutsideMeetingVO) {
List<InsideOutSideMeeting> rows = meetingService.queryByPage(insideOutsideMeetingVO);
return Result.success(rows);
}
@ApiOperation(value = "新增内外部会议")
@PostMapping(value = "/addMeetingInfo", consumes = "application/json;charset=UTF-8")
public ResponseMessage<?> create(@RequestBody InsideOutSideMeeting insideOutSideMeeting) throws Exception {
meetingService.addMeetingInfo(insideOutSideMeeting);
return Result.success();
}
@ApiOperation("根据会议ID删除会议")
@DeleteMapping("/deleteMeetingInfo")
public ResponseMessage<?> deleteMeeting(String meetingId) {
if (StringUtils.isBlank(meetingId)) {
return Result.error("删除失败,会议ID为空");
}
meetingService.deleteMeetingById(meetingId);
return Result.success();
}
}
@@ -0,0 +1,24 @@
package com.adc.da.slrs.InsideOntSideMeeting.dao;
import com.adc.da.slrs.InsideOntSideMeeting.entity.InsideOutSideMeeting;
import com.adc.da.slrs.InsideOntSideMeeting.entity.InsideOutsideMeetingVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author tjzdw
* @description
* @date 2023/10/10
*/
@Mapper
public interface InsideOutsideMeetingDao extends BaseMapper<InsideOutSideMeeting> {
Integer queryByPageCount(InsideOutsideMeetingVO page);
List<InsideOutSideMeeting> queryByPage(InsideOutsideMeetingVO page);
}
@@ -0,0 +1,16 @@
package com.adc.da.slrs.InsideOntSideMeeting.dao;
import com.adc.da.slrs.InsideOntSideMeeting.entity.MeetingTopic;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @author tjzdw
* @description
* @date 2023/10/13
*/
@Mapper
public interface MeetingTopicDao extends BaseMapper<MeetingTopic> {
}
@@ -0,0 +1,90 @@
package com.adc.da.slrs.InsideOntSideMeeting.entity;
import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
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 java.util.Date;
import java.util.List;
/**
* @author tjzdw
* @description
* @date 2023/10/10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="inside_outside_meeting表对象", description="内外部会议")
public class InsideOutSideMeeting extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
@TableId("ID")
private String id;
@ApiModelProperty(value = "会议名称")
@TableField("MEETING_NAME")
private String meetingName;
@ApiModelProperty(value = "课题名称,可通过调取功能从政策课题模块中获取")
@TableField("TOPIC_NAME")
private String topicName;
@ApiModelProperty(value = "会议主办单位")
@TableField("MEETING_ORGANIZER")
private String meetingOrganizer;
@ApiModelProperty(value = "会议时间")
@TableField("MEETING_TIME")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private Date meetingTime;
@ApiModelProperty(value = "会议地点")
@TableField("MEETING_ADDRESS")
private String meetingAddress;
@ApiModelProperty(value = "参会人员")
@TableField("PARTICIPANTS")
private String participants;
@ApiModelProperty(value = "会议纪要")
@TableField("MEETING_MINUTES")
private String meetingMinutes;
@ApiModelProperty(value = "会议主要内容")
@TableField("MEETING_CONTENT")
private String meetingContent;
@ApiModelProperty(value = "1级会议类别")
@TableField("FIRST_MEETING_TYPE")
private String firstMeetingType;
@ApiModelProperty(value = "2级会议类别")
@TableField("SECOND_MEETING_TYPE")
private String secondMeetingType;
@ApiModelProperty(value = "会议议题")
private List<MeetingTopic> meetingTopicList;
@ApiModelProperty(value = "逻辑删除,0可用,1不可用")
@TableField("VALID_FLAG")
private Integer validFlag;
@ApiModelProperty(value = "创建时间")
@TableField("CREATE_TIME")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(value = "修改时间")
@TableField("MODIFY_TIME")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date modifyTime;
}
@@ -0,0 +1,69 @@
package com.adc.da.slrs.InsideOntSideMeeting.entity;
import com.adc.da.base.page.BasePage;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
/**
* @author tjzdw
* @description
* @date 2023/10/12
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class InsideOutsideMeetingVO extends BasePage {
private String id;
private String meetingName;
private String topicName;
private String meetingOrganizer;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private Date meetingTime;
private String meetingAddress;
private String participants;
private List<String> participantsList;
private String meetingMinutes;
private String meetingContent;
private String firstMeetingType;
private String secondMeetingType;
private List<MeetingTopic> meetingTopicList;
private String agendaName;
private String agendaMaterials;
private String reporter;
private String reportingUnit;
private String agendaContent;
private Integer validFlag;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date creationTime;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date modifyTime;
private String sortField;
private String sortMode;
private String meetingTimeOperator = "=";
}
@@ -0,0 +1,67 @@
package com.adc.da.slrs.InsideOntSideMeeting.entity;
import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
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 java.util.Date;
/**
* @author tjzdw
* @description
* @date 2023/10/12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="meeting_topic表对象", description="会议议题表")
public class MeetingTopic extends BaseEntity {
@ApiModelProperty(value = "主键")
@TableId("ID")
private String id;
@ApiModelProperty(value = "内外部会议ID")
@TableField("MEETING_ID")
private String meetingId;
@ApiModelProperty(value = "议题名称")
@TableField("AGENDA_NAME")
private String agendaName;
@ApiModelProperty(value = "议题材料")
@TableField("AGENDA_MATERIALS")
private String agendaMaterials;
@ApiModelProperty(value = "汇报人")
@TableField("REPORTER")
private String reporter;
@ApiModelProperty(value = "汇报单位")
@TableField("REPORTING_UNIT")
private String reportingUnit;
@ApiModelProperty(value = "议题主要内容")
@TableField("AGENDA_CONTENT")
private String agendaContent;
@ApiModelProperty(value = "逻辑删除,0可用,1不可用")
@TableField("VALID_FLAG")
private Integer validFlag;
@ApiModelProperty(value = "创建时间")
@TableField("CREATE_TIME")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ApiModelProperty(value = "修改时间")
@TableField("MODIFY_TIME")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date modifyTime;
}
@@ -0,0 +1,23 @@
package com.adc.da.slrs.InsideOntSideMeeting.service;
import com.adc.da.slrs.InsideOntSideMeeting.entity.InsideOutSideMeeting;
import com.adc.da.slrs.InsideOntSideMeeting.entity.InsideOutsideMeetingVO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @author tjzdw
* @description
* @date 2023/10/10
*/
public interface InsideOutsideMeetingService extends IService<InsideOutSideMeeting> {
Integer addMeetingInfo(InsideOutSideMeeting insideOutSideMeeting);
List<InsideOutSideMeeting> queryByPage(InsideOutsideMeetingVO page);
InsideOutSideMeeting getMeetingInfo(String meetingId);
Integer deleteMeetingById(String meetingId);
}
@@ -0,0 +1,80 @@
package com.adc.da.slrs.InsideOntSideMeeting.service.impl;
import com.adc.da.slrs.InsideOntSideMeeting.dao.InsideOutsideMeetingDao;
import com.adc.da.slrs.InsideOntSideMeeting.dao.MeetingTopicDao;
import com.adc.da.slrs.InsideOntSideMeeting.entity.InsideOutSideMeeting;
import com.adc.da.slrs.InsideOntSideMeeting.entity.InsideOutsideMeetingVO;
import com.adc.da.slrs.InsideOntSideMeeting.entity.MeetingTopic;
import com.adc.da.slrs.InsideOntSideMeeting.service.InsideOutsideMeetingService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* @author tjzdw
* @description
* @date 2023/10/10
*/
@Service
public class InsideOutsideMeetingServiceImpl extends ServiceImpl<InsideOutsideMeetingDao, InsideOutSideMeeting> implements InsideOutsideMeetingService {
@Resource
private MeetingTopicDao meetingTopicDao;
@Override
public InsideOutSideMeeting getMeetingInfo(String meetingId){
InsideOutSideMeeting insideOutSideMeeting = this.baseMapper.selectById(meetingId);
if (insideOutSideMeeting != null) {
LambdaQueryWrapper<MeetingTopic> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MeetingTopic::getMeetingId, meetingId);
List<MeetingTopic> meetingTopicList = meetingTopicDao.selectList(wrapper);
insideOutSideMeeting.setMeetingTopicList(meetingTopicList);
}
return insideOutSideMeeting;
}
@Transactional
@Override
public Integer deleteMeetingById(String meetingId) {
int deleteById = this.baseMapper.deleteById(meetingId);
if (deleteById > 0) {
meetingTopicDao.deleteById(meetingId);
}
return deleteById;
}
@Transactional
@Override
public Integer addMeetingInfo(InsideOutSideMeeting insideOutSideMeeting) {
insideOutSideMeeting.setCreateTime(new Date());
insideOutSideMeeting.setModifyTime(new Date());
insideOutSideMeeting.setValidFlag(0);
int insert = this.baseMapper.insert(insideOutSideMeeting);
if (!insideOutSideMeeting.getMeetingTopicList().isEmpty()) {
for (MeetingTopic meetingTopic : insideOutSideMeeting.getMeetingTopicList()) {
meetingTopic.setCreateTime(new Date());
meetingTopic.setModifyTime(new Date());
meetingTopic.setValidFlag(0);
meetingTopicDao.insert(meetingTopic);
}
}
return insert;
}
@Override
public List<InsideOutSideMeeting> queryByPage(InsideOutsideMeetingVO page){
if (StringUtils.isNotBlank(page.getParticipants())) {
page.setParticipantsList(Arrays.asList(page.getParticipants().split(",")));
}
Integer rowCount = this.baseMapper.queryByPageCount(page);
page.getPager().setRowCount(rowCount);
return this.baseMapper.queryByPage(page);
}
}
@@ -0,0 +1,109 @@
<?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.adc.da.slrs.InsideOntSideMeeting.dao.InsideOutsideMeetingDao">
<resultMap id="BaseResultMap" type="com.adc.da.slrs.InsideOntSideMeeting.entity.InsideOutSideMeeting" >
<id column="id" property="id" />
<result column="MEETING_NAME" property="meetingName" />
<result column="TOPIC_NAME" property="topicName" />
<result column="MEETING_ORGANIZER" property="meetingOrganizer" />
<result column="MEETING_TIME" property="meetingTime" />
<result column="MEETING_ADDRESS" property="meetingAddress" />
<result column="PARTICIPANTS" property="participants" />
<result column="MEETING_MINUTES" property="meetingMinutes" />
<result column="MEETING_CONTENT" property="meetingContent" />
<result column="FIRST_MEETING_TYPE" property="firstMeetingType" />
<result column="SECOND_MEETING_TYPE" property="secondMeetingType" />
<result column="VALID_FLAG" property="validFlag" />
<result column="CREATE_TIME" property="createTime" />
<result column="MODIFY_TIME" property="modifyTime" />
<collection property="meetingTopicList" ofType="com.adc.da.slrs.InsideOntSideMeeting.entity.MeetingTopic">
<id column="ID" property="id" />
<result column="MEETING_ID" property="meetingId" />
<result column="AGENDA_NAME" property="agendaName" />
<result column="AGENDA_MATERIALS" property="agendaMaterials" />
<result column="REPORTER" property="reporter" />
<result column="REPORTING_UNIT" property="reportingUnit" />
<result column="AGENDA_CONTENT" property="agendaContent" />
<result column="VALID_FLAG" property="validFlag" />
<result column="CREATE_TIME" property="createTime" />
<result column="MODIFY_TIME" property="modifyTime" />
</collection>
</resultMap>
<sql id="Base_Column_List">
ID,MEETING_NAME,TOPIC_NAME,MEETING_ORGANIZER,MEETING_TIME,MEETING_ADDRESS,
PARTICIPANTS,MEETING_MINUTES,MEETING_CONTENT,FIRST_MEETING_TYPE,SECOND_MEETING_TYPE,VALID_FLAG,CREATE_TIME,MODIFY_TIME
</sql>
<sql id="Base_Column_Join_MeetingTopic_List">
iom.ID,iom.MEETING_NAME,iom.TOPIC_NAME,iom.MEETING_ORGANIZER,iom.MEETING_TIME,iom.MEETING_ADDRESS,
iom.PARTICIPANTS,iom.MEETING_MINUTES,iom.MEETING_CONTENT,iom.FIRST_MEETING_TYPE,iom.SECOND_MEETING_TYPE,
mt.ID,mt.MEETING_ID,mt.AGENDA_NAME,mt.AGENDA_MATERIALS,mt.REPORTER,mt.REPORTING_UNIT,
mt.AGENDA_CONTENT,mt.VALID_FLAG,mt.CREATE_TIME,mt.MODIFY_TIME,
iom.VALID_FLAG,iom.CREATE_TIME,iom.MODIFY_TIME
</sql>
<sql id="Base_Where_Clause">
<trim suffixOverrides="," >
<if test="meetingName != null and meetingName !=''">
and MEETING_NAME like concat('%',#{meetingName},'%')
</if>
<if test="topicName != null and topicName !=''">
and TOPIC_NAME = #{topicName}
</if>
<if test="meetingOrganizer != null and meetingOrganizer != ''" >
and MEETING_ORGANIZER like concat('%',#{meetingOrganizer},'%')
</if>
<if test="meetingTime != null and meetingTime !=''">
and MEETING_TIME ${meetingTimeOperator} #{meetingTime}
</if>
<if test="meetingAddress != null and meetingAddress != ''" >
and MEETING_ADDRESS like concat('%',#{meetingAddress},'%')
</if>
<if test="participantsList != null and participantsList.size() > 0" >
and PARTICIPANTS in
<foreach collection="participantsList" separator="," open="(" close=")" item="participant">
#{participant}
</foreach>
</if>
<if test="meetingContent != null" >
and MEETING_CONTENT like concat('%',#{meetingContent},'%')
</if>
<if test="firstMeetingType != null and firstMeetingType != ''" >
and FIRST_MEETING_TYPE = #{firstMeetingType}
</if>
<if test="secondMeetingType != null and secondMeetingType != ''" >
and SECOND_MEETING_TYPE = #{secondMeetingType}
</if>
</trim>
</sql>
<sql id="MeetingTopic_where">
<if test="agendaName != null and agendaName != ''">
and mt.AGENDA_NAME like concat('%',#{agendaName},'%')
</if>
<if test="reporter != null and reporter != ''">
and mt.REPORTER like concat('%',#{reporter},'%')
</if>
<if test="reportingUnit != null and reportingUnit != ''">
and mt.REPORTING_UNIT like concat('%',#{reportingUnit},'%')
</if>
<if test="agendaContent != null and agendaContent != ''">
and mt.AGENDA_CONTENT like concat('%',#{agendaContent},'%')
</if>
</sql>
<select id="queryByPageCount" resultType="java.lang.Integer">
select count(1) from inside_outside_meeting
where VALID_FLAG = 0
<include refid="Base_Where_Clause"/>
</select>
<select id="queryByPage" resultMap="BaseResultMap">
select <include refid="Base_Column_Join_MeetingTopic_List" />
from inside_outside_meeting iom join meeting_topic mt on iom.ID = mt.MEETING_ID
where iom.VALID_FLAG = 0
<include refid="Base_Where_Clause" />
<include refid="MeetingTopic_where" />
order by iom.ID
limit #{page},#{pageSize}
</select>
</mapper>