From 9eba15e92f2ee5dbbea48e5ce37d438d077565f2 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Mon, 29 Jan 2024 16:17:27 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=9A=E8=AE=AE=E6=B1=87=E6=80=BB?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=97=B6=E5=A2=9E=E5=8A=A0=E5=8F=82=E4=BC=9A?= =?UTF-8?q?=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PayMeetingController.java | 5 +- .../com/jero/meeting/entity/PayMeeting.java | 8 ++ .../meeting/service/IPayMeetingService.java | 3 +- .../service/impl/PayMeetingServiceImpl.java | 58 +++++++++-- .../meeting/vo/excel/MeetingSummaryExcel.java | 97 +++++++++++++++++++ 5 files changed, 161 insertions(+), 10 deletions(-) create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/excel/MeetingSummaryExcel.java diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java index 73911865..edee812e 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java @@ -141,9 +141,8 @@ public class PayMeetingController extends JeroController queryPageList = payMeetingService.queryMeetingSummary(meetingSummary, -1, -1, request); //List exportList = payMeetingService.getExportList(request, queryPageList); - List exportList = payMeetingService.getExportListSummary(request, queryPageList); - Class aClass = payMeetingService.getaClass(MeetingCommon.OTHER_MEETING_INT); - return super.exportListXls(exportList, aClass, "会议管理"); + List exportList = payMeetingService.getExportListSummary(request, queryPageList); + return super.exportListXls(exportList, MeetingSummaryExcel.class, "会议管理"); } /** 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 6aef4774..e9ad51ef 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 @@ -14,10 +14,12 @@ import com.jero.common.util.PasswordUtil; import com.jero.meeting.valid.group.InternationalMeeting; import com.jero.meeting.valid.group.InternationalMeetingWasic; import com.jero.meeting.valid.group.StandardMeeting; +import com.jero.meeting.vo.excel.SituationExcel; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import org.apache.commons.lang3.StringUtils; import org.hibernate.validator.constraints.Range; +import org.jeecgframework.poi.excel.annotation.ExcelCollection; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; import com.jero.common.aspect.annotation.Dict; @@ -406,4 +408,10 @@ public class PayMeeting implements Serializable { /**起草组名称*/ @ApiModelProperty(value = "起草组名称") private String draftingGroupName; + + /** + * 参会人列表 + */ + @TableField(exist = false) + private List situationList; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingService.java index c2ef4644..c0c78d84 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingService.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.jero.meeting.vo.PayMeetingVO; import com.jero.meeting.vo.PublishReminderVO; import com.jero.meeting.vo.UploadFileVO; +import com.jero.meeting.vo.excel.MeetingSummaryExcel; import javax.servlet.http.HttpServletRequest; import java.util.Date; @@ -91,7 +92,7 @@ public interface IPayMeetingService extends IService { */ List getExportList(HttpServletRequest request, IPage queryPageList); - List getExportListSummary(HttpServletRequest request, IPage queryPageList); + List getExportListSummary(HttpServletRequest request, IPage queryPageList); /** * 根据参会人id获取会议信息 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 585a682f..27ce9f21 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 @@ -25,6 +25,7 @@ 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.PayCompanyManagement; import com.jero.company.entity.PayContactsManagement; import com.jero.company.service.IPayCompanyManagementService; import com.jero.company.service.IPayContactsManagementService; @@ -142,6 +143,10 @@ public class PayMeetingServiceImpl extends ServiceImpl> meetingIdSituationMap = new HashMap<>(); if (flag1 || flag2) { LambdaQueryWrapper pmsWrapper = new LambdaQueryWrapper<>(); pmsWrapper.like(flag1, PayMeetingSituation::getCompanyName, enterpriseName); pmsWrapper.like(flag2, PayMeetingSituation::getCompanyContactName, participant); List list = payMeetingSituationService.list(pmsWrapper); + meetingIdSituationMap = CollStreamUtil.groupByKey(list, PayMeetingSituation::getMeetingId); List idList = list.stream().map(PayMeetingSituation::getMeetingId).collect(Collectors.toList()); if (idList.size() > 0) { queryWrapper.in("id", idList); @@ -1164,8 +1171,15 @@ public class PayMeetingServiceImpl extends ServiceImpl page = new Page<>(pageNo, pageSize); IPage pageList = page(page, queryWrapper); + List records = pageList.getRecords(); + // 过滤选中数据 + String selections = req.getParameter("selections"); + if (oConvertUtils.isNotEmpty(selections)) { + List selectionList = Arrays.asList(selections.split(",")); + records = records.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList()); + } - for (PayMeeting meeting : pageList.getRecords()) { + for (PayMeeting meeting : records) { //查询会议负责人 LoginUser user = sysBaseAPI.getUserById(meeting.getDirectorId()); meeting.setDirectorName(user.getRealname()); @@ -1173,6 +1187,30 @@ public class PayMeetingServiceImpl extends ServiceImpl payMeetingSituations; + if (meetingIdSituationMap.containsKey(meetingId)){ + payMeetingSituations = meetingIdSituationMap.get(meetingId); + }else { + LambdaQueryWrapper pmsWrapper = new LambdaQueryWrapper<>(); + pmsWrapper.eq(PayMeetingSituation::getMeetingId, meetingId); + payMeetingSituations = payMeetingSituationService.list(pmsWrapper); + } + for (PayMeetingSituation meetingSituation : payMeetingSituations) { + String companyContactId = meetingSituation.getCompanyContactId(); + PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId); + meetingSituation.setCompanyContactName(contactsManagement.getName()); + meetingSituation.setPost(contactsManagement.getPost()); + meetingSituation.setPhone(PasswordUtil.decrypt(contactsManagement.getPhone())); + meetingSituation.setEmail(PasswordUtil.decrypt(contactsManagement.getEmail())); + PayCompanyManagement companyManagement = companyManagementService.getById(contactsManagement.getCompanyId()); + String checkFile = meetingSituation.getCheckFile(); + meetingSituation.setCompanyName(companyManagement.getCompanyName()); + if (StringUtils.isNotBlank(checkFile)) { + OSSFile ossFile = iossFileService.getById(checkFile); + meetingSituation.setCheckFile(ossFile.getUrl()); + } + } + meeting.setSituationList(payMeetingSituations); //查询酒店联系人列表 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PayMeetingHotelContacts::getMeetingId, meetingId); @@ -1462,7 +1500,7 @@ public class PayMeetingServiceImpl extends ServiceImpl getExportListSummary(HttpServletRequest request, IPage queryPageList) { + public List getExportListSummary(HttpServletRequest request, IPage queryPageList) { List pageList = queryPageList.getRecords(); // 过滤选中数据 String selections = request.getParameter("selections"); @@ -1473,7 +1511,7 @@ public class PayMeetingServiceImpl extends ServiceImpl exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (PayMeeting meeting : pageList) { //查询会议负责人 LoginUser user = sysBaseAPI.getUserById(meeting.getDirectorId()); @@ -1519,9 +1557,17 @@ public class PayMeetingServiceImpl extends ServiceImpl meetingSituationList = meeting.getSituationList(); + List situationList = new ArrayList<>(); + for (PayMeetingSituation payMeetingSituation : meetingSituationList) { + SituationExcel situationExcel = new SituationExcel(); + BeanUtils.copyProperties(payMeetingSituation, situationExcel); + situationList.add(situationExcel); + } + meetingSummaryExcel.setSituationList(situationList); + exportList.add(meetingSummaryExcel); } return exportList; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/excel/MeetingSummaryExcel.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/excel/MeetingSummaryExcel.java new file mode 100644 index 00000000..d0a0b033 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/excel/MeetingSummaryExcel.java @@ -0,0 +1,97 @@ +package com.jero.meeting.vo.excel; + +import com.jero.meeting.entity.PayMeetingContacts; +import com.jero.meeting.entity.PayMeetingHotelContacts; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecgframework.poi.excel.annotation.ExcelCollection; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author liJiaRao + * @date 2024-01-29 15:03 + */ +@Data +public class MeetingSummaryExcel { + /**会议名称*/ + @Excel(name = "会议名称", width = 15) + private String meetingName; + + /**会议类型*/ + @Excel(name = "会议类型", width = 15) + private String meetingType; + + /**开始时间*/ + @Excel(name = "会议开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + private java.util.Date startTime; + + /**结束时间*/ + @Excel(name = "会议结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + private java.util.Date endTime; + + /**年份*/ + @Excel(name = "年份", width = 15) + private String particularYear; + + /**召开地点*/ + @Excel(name = "召开地点", width = 15) + private String venue; + + /**详细地址*/ + @Excel(name = "详细地址", width = 15) + private String address; + + /**预计参加人数*/ + @Excel(name = "预计参加人数", width = 15) + private String estimatedNumber; + + /**会议内容*/ + @Excel(name = "会议内容", width = 15) + private String meetingContent; + + /**报名截止时间*/ + @Excel(name = "报名截止时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + private java.util.Date registerDeadline; + + /**会议费用*/ + @Excel(name = "会议费用", width = 15) + private BigDecimal meetingCosts; + + /**会议负责人*/ + @Excel(name = "会议负责人", width = 15) + private String directorName; + + /**会议负责人手机号*/ + @Excel(name = "会议负责人手机号", width = 15) + private String directorPhone; + + /**酒店名称*/ + @Excel(name = "酒店名称", width = 15) + private String hotelName; + + /**酒店地址*/ + @Excel(name = "酒店地址", width = 15) + private String hotelAddress; + + /** + * 会议关联酒店联系人列表 + */ + private List hotelContactsList; + /** + * 会议联系人列表 + */ + @ExcelCollection(name = "会议联系人列表") + private List meetingContactsList; + + /**备注*/ + @Excel(name = "备注", width = 15) + private String remark; + + /** + * 参会人列表 + */ + @ExcelCollection(name = "参会人列表") + private List situationList; +}