add 会议活动页面查询功能

This commit is contained in:
lijiarao
2021-09-29 21:14:47 +08:00
parent c5d897b278
commit d20cb790b7
9 changed files with 111 additions and 57 deletions
@@ -7,8 +7,6 @@ import javax.servlet.http.HttpServletRequest;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.Result;
@@ -20,6 +18,8 @@ import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.data.entity.PayCaseCommittee;
import com.jero.data.service.IPayCaseCommitteeService;
import com.jero.meeting.common.MeetingCommon;
@@ -44,6 +44,7 @@ import com.jero.util.QrcodeUtil;
import io.swagger.annotations.ApiImplicitParam;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.BeanUtils;
@@ -79,11 +80,13 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
private IOSSFileService iossFileService;
@Resource
private IPayCaseCommitteeService payCaseCommitteeService;
@Resource
private IPayContactsManagementService payContactsManagementService;
/**
* 分页列表查询
*/
@RequiresPermissions("meeting:search")
@RequiresPermissions({"meeting:search","meeting:search"})
@ApiOperation(value = "会议管理-分页列表查询", notes = "会议管理-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(PayMeeting payMeeting,
@@ -155,26 +158,41 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
}
String meetingStatus = req.getParameter("meetingStatus");
String now = DateUtil.formatDate(new Date());
switch (meetingStatus) {
case MeetingCommon.MEETING_STATUS_2:
queryWrapper.gt("date_format(start_time,'%Y-%m-%d')", now);
break;
case MeetingCommon.MEETING_STATUS_3:
queryWrapper.le("date_format(start_time,'%Y-%m-%d')", now);
queryWrapper.ge("date_format(end_time,'%Y-%m-%d')", now);
break;
case MeetingCommon.MEETING_STATUS_4:
queryWrapper.le("date_format(end_time,'%Y-%m-%d')", now);
break;
if (StringUtils.isNotBlank(meetingStatus)) {
switch (meetingStatus) {
case MeetingCommon.MEETING_STATUS_2:
queryWrapper.gt("date_format(start_time,'%Y-%m-%d')", now);
break;
case MeetingCommon.MEETING_STATUS_3:
queryWrapper.le("date_format(start_time,'%Y-%m-%d')", now);
queryWrapper.ge("date_format(end_time,'%Y-%m-%d')", now);
break;
case MeetingCommon.MEETING_STATUS_4:
queryWrapper.le("date_format(end_time,'%Y-%m-%d')", now);
break;
}
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String id = sysUser.getId();
queryWrapper.and(
a -> a.eq("pms.company_contact_id",id).or().eq("pms.post_contact_id",id)
);
//会议报名状态:1可报名/2已报名
String meetingSignUpType = req.getParameter("meetingSignUpType");
if (Objects.equals(meetingSignUpType,1+"")) {
queryWrapper.eq("pmrr.contact_id",id);
}else if (Objects.equals(meetingSignUpType,2+"")) {
queryWrapper.eq("pms.company_contact_id",id);
}else {
queryWrapper.and(
a -> a.eq("pms.company_contact_id",id)
.or()
.eq("pms.post_contact_id",id)
.or()
.eq("pmrr.contact_id",id)
);
}
Page<PayMeeting> page = new Page<>(pageNo, pageSize);
IPage<PayMeeting> pageList = payMeetingService.pageListContract(page, queryWrapper);
IPage<PayMeeting> pageList = payMeetingService.pageListContract(page, queryWrapper, now);
for (PayMeeting meeting : pageList.getRecords()) {
//查询会议负责人
LoginUser user = sysBaseApi.getUserById(meeting.getDirectorId());
@@ -256,4 +256,10 @@ public class PayMeeting implements Serializable {
@TableField(exist = false)
@Dict(dicCode = "meeting_pay_type")
private Integer payMode;
/**
* 会议状态 未开始:2 进行中:3 已结束4
*/
@TableField(exist = false)
@Dict(dicCode = "meeting_status")
private Integer meetingStatus;
}
@@ -65,4 +65,9 @@ public class PayMeetingRemindRecord implements Serializable {
@ApiModelProperty(value = "成员id")
private String subitemId;
/**联系人id*/
@Excel(name = "联系人id", width = 15)
@ApiModelProperty(value = "联系人id")
private String contactId;
}
@@ -1,7 +1,5 @@
package com.jero.meeting.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
@@ -18,5 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface PayMeetingMapper extends BaseMapper<PayMeeting> {
IPage<PayMeeting> pageListContract(Page<PayMeeting> page, @Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper);
IPage<PayMeeting> pageListContract(Page<PayMeeting> page,
@Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper,
@Param("now") String now);
}
@@ -31,12 +31,20 @@
<result column="hotel_contacts" property="hotelContacts" />
<result column="remark" property="remark" />
<result column="pay_mode" property="payMode"/>
<result column="meetingStatus" property="meetingStatus"/>
</resultMap>
<select id="pageListContract" resultMap="PayMeetingResultMap">
select pm.*,pms.pay_mode
select pm.*,pms.pay_mode,
(case when date_format(start_time,'%Y-%m-%d') > #{now} then 2
when date_format(start_time,'%Y-%m-%d') <![CDATA[<=]]> #{now}
and #{now} <![CDATA[<=]]> date_format(end_time,'%Y-%m-%d') then 3
when date_format(end_time,'%Y-%m-%d') <![CDATA[<=]]> #{now} then 4
END
) as meetingStatus
from pay_meeting pm
left join pay_meeting_situation pms on pm.id = pms.meeting_id
left join pay_meeting_remind_record pmrr on pm.id = pmrr.meeting_id
${ew.customSqlSegment}
</select>
</mapper>
@@ -46,9 +46,9 @@ public interface IPayMeetingRemindRecordService extends IService<PayMeetingRemin
* 关联会议和工作组成员的提醒次数
* @author lijiaro
* @date 2021/9/23 17:54
* @param meetingIdList 会议id
* @param subitemIdList 成员id
*
* @param meetingIdList 会议id
* @param subitemIdList 成员id
*
*/
void addList(List<String> meetingIdList, List<String> subitemIdList);
void addList(List<String> meetingIdList, List<PayMeetingRemindRecord> subitemIdList);
}
@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.meeting.entity.PayMeeting;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.vo.PayMeetingVO;
import com.jero.meeting.vo.PublishReminderVO;
@@ -65,5 +64,5 @@ public interface IPayMeetingService extends IService<PayMeeting> {
void publishReminder(PublishReminderVO publishReminderVO);
IPage<PayMeeting> pageListContract(Page<PayMeeting> page, QueryWrapper<PayMeeting> queryWrapper);
IPage<PayMeeting> pageListContract(Page<PayMeeting> page, QueryWrapper<PayMeeting> queryWrapper, String now);
}
@@ -67,16 +67,12 @@ public class PayMeetingRemindRecordServiceImpl extends ServiceImpl<PayMeetingRem
}
@Override
public void addList(List<String> meetingIdList, List<String> subitemIdList) {
List<PayMeetingRemindRecord> payMeetingRemindRecordList = new ArrayList<>();
public void addList(List<String> meetingIdList, List<PayMeetingRemindRecord> meetingRemindRecordList) {
for (String meetingId : meetingIdList) {
for (String subitemId : subitemIdList) {
PayMeetingRemindRecord payMeetingRemindRecord = new PayMeetingRemindRecord();
payMeetingRemindRecord.setMeetingId(meetingId);
payMeetingRemindRecord.setSubitemId(subitemId);
payMeetingRemindRecordList.add(payMeetingRemindRecord);
for (PayMeetingRemindRecord meetingRemindRecord : meetingRemindRecordList) {
meetingRemindRecord.setMeetingId(meetingId);
save(meetingRemindRecord);
}
}
this.saveBatch(payMeetingRemindRecordList);
}
}
@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.CompanyMessageEnums;
import com.jero.common.enums.ManagementMessageEnums;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService;
import com.jero.common.system.api.ISysBaseAPI;
@@ -25,7 +24,6 @@ import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingHotelContacts;
import com.jero.meeting.entity.PayMeetingRemindRecord;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingMapper;
import com.jero.meeting.service.IPayMeetingHotelContactsService;
import com.jero.meeting.service.IPayMeetingRemindRecordService;
@@ -37,14 +35,11 @@ import com.jero.meeting.valid.group.StandardMeeting;
import com.jero.meeting.valid.group.WorkingGroupMeeting;
import com.jero.meeting.vo.PayMeetingVO;
import com.jero.meeting.vo.PublishReminderVO;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.standards.xuanguan.stablecrosstraining.service.IStableCrossTrainingService;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.util.CollectionUtils;
import org.jetbrains.annotations.NotNull;
@@ -55,7 +50,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -384,33 +378,61 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
//用于新增关联关系
List<String> meetingIdList = new ArrayList<>();
List<String> subitemIdList = new ArrayList<>();
List<PayMeetingRemindRecord> meetingRemindRecordList = new ArrayList<>();
//组装查询联系人条件
LambdaQueryWrapper<PayContactsManagement> wrapper = new LambdaQueryWrapper<>();
List<String> contactsIdList = new ArrayList<>();
//工作组项目查询公司
if (Objects.equals(projectType,1)){
List<String> companyIds = new ArrayList<>();
List<PayWorkingGroupSubItem> payWorkingGroupSubItems = payWorkingGroupSubItemService.listByIds(subitemIds);
//把单位会员中所有的联系人和有机联系人取出
//把单位会员中所有的联系人取出
for (PayWorkingGroupSubItem payWorkingGroupSubItem : payWorkingGroupSubItems) {
subitemIdList.add(payWorkingGroupSubItem.getId());
String companyId = payWorkingGroupSubItem.getChargeCompanyId();
companyIds.add(companyId);
String groupSubItemId = payWorkingGroupSubItem.getId();
String contactsIdOne = payWorkingGroupSubItem.getContactsIdOne();
if (StringUtils.isNotBlank(contactsIdOne)) {
contactsIdList.add(contactsIdOne);
meetingRemindRecordList.add(
new PayMeetingRemindRecord()
.setSubitemId(groupSubItemId)
.setContactId(contactsIdOne)
);
}
String contactsIdTwo = payWorkingGroupSubItem.getContactsIdTwo();
if (StringUtils.isNotBlank(contactsIdTwo)) {
contactsIdList.add(contactsIdTwo);
meetingRemindRecordList.add(
new PayMeetingRemindRecord()
.setSubitemId(groupSubItemId)
.setContactId(contactsIdTwo)
);
}
String contactsIdThree = payWorkingGroupSubItem.getContactsIdThree();
if (StringUtils.isNotBlank(contactsIdThree)) {
contactsIdList.add(contactsIdThree);
meetingRemindRecordList.add(
new PayMeetingRemindRecord()
.setSubitemId(groupSubItemId)
.setContactId(contactsIdThree)
);
}
}
wrapper.in(PayContactsManagement::getCompanyId,companyIds);
// 分标委项目查询人
}else if (Objects.equals(projectType,2)){
List<String> contactsIdList = new ArrayList<>();
List<PayCaseCommitteeSubitem> payCaseCommitteeSubitems = payCaseCommitteeSubitemService.listByIds(subitemIds);
for (PayCaseCommitteeSubitem payCaseCommitteeSubitem : payCaseCommitteeSubitems) {
subitemIdList.add(payCaseCommitteeSubitem.getId());
contactsIdList.add(payCaseCommitteeSubitem.getContactsId());
String committeeSubitemId = payCaseCommitteeSubitem.getId();
String contactsId = payCaseCommitteeSubitem.getContactsId();
contactsIdList.add(contactsId);
meetingRemindRecordList.add(
new PayMeetingRemindRecord()
.setSubitemId(committeeSubitemId)
.setContactId(contactsId)
);
}
wrapper.in(PayContactsManagement::getId,contactsIdList);
}else {
throw new JeroBootException("项目类型不正确");
}
wrapper.in(PayContactsManagement::getId,contactsIdList);
List<PayContactsManagement> list = payContactsManagementService.list(wrapper);
//标记会议为已提醒
@@ -450,11 +472,11 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
}
}
payMeetingRemindRecordService.addList(meetingIdList,subitemIdList);
payMeetingRemindRecordService.addList(meetingIdList,meetingRemindRecordList);
}
@Override
public IPage<PayMeeting> pageListContract(Page<PayMeeting> page, QueryWrapper<PayMeeting> queryWrapper) {
return baseMapper.pageListContract(page,queryWrapper);
public IPage<PayMeeting> pageListContract(Page<PayMeeting> page, QueryWrapper<PayMeeting> queryWrapper, String now) {
return baseMapper.pageListContract(page,queryWrapper,now);
}
}