From 58dbab797339859879a11e56489fb4268caacbd2 Mon Sep 17 00:00:00 2001 From: lujiang Date: Tue, 15 Oct 2024 15:13:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E6=9C=88=E5=AF=BC=E5=87=BA=E4=BC=9A?= =?UTF-8?q?=E8=AE=AE=E5=AE=A4=E9=A2=84=E7=BA=A6=E8=AE=B0=E5=BD=95=E6=B1=87?= =?UTF-8?q?=E6=80=BB=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MeetingReservationIOController.java | 20 ++++++++++++++ .../mapper/MeetingReservationIOMapper.java | 8 ++++++ .../service/IMeetingReservationIOService.java | 4 +++ .../IMeetingReservationIOServiceImpl.java | 16 +++++++++++ .../java/com/ics/admin/vo/MeetingTotalVo.java | 25 ++++++++++++++++++ .../resources/excel/会情汇总表导出模版.xls | Bin 0 -> 23040 bytes .../admin/MeetingReservationIOMapper.xml | 6 +++++ 7 files changed, 79 insertions(+) create mode 100644 shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/MeetingTotalVo.java create mode 100644 shoot-hand/ics-admin/src/main/resources/excel/会情汇总表导出模版.xls diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/MeetingReservationIOController.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/MeetingReservationIOController.java index 6b29925..de1deea 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/MeetingReservationIOController.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/MeetingReservationIOController.java @@ -3,6 +3,7 @@ package com.ics.admin.controller; import com.ics.admin.service.IMeetingReservationIOService; import com.ics.admin.utils.ExcelView; import com.ics.admin.vo.MeetingRecordExportVo; +import com.ics.admin.vo.MeetingTotalVo; import com.ics.common.core.controller.BaseController; import com.ics.common.utils.DateUtils; import org.jxls.common.Context; @@ -63,4 +64,23 @@ public class MeetingReservationIOController extends BaseController { e.printStackTrace(); } } + + /** + * 导出每月汇总 + * @param month 月份,格式:2024-10 + */ + @RequiresPermissions(value = {"mr:manage:operator"}) + @PostMapping("exportMonthMR") + public void exportMonthMR(String month) { + try { + Date mon = DateUtils.dateTime(DateUtils.YYYY_MM, month); + List list = meetingReservationIOService.total(month); + Context context = new Context(); + context.putVar("month", DateUtils.parseDateToStr("yyyy年MM月", mon)); + context.putVar("list", list); + new ExcelView("excel/会情汇总表导出模版.xls", "会议中心会情汇总表.xls", context); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/MeetingReservationIOMapper.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/MeetingReservationIOMapper.java index 41d0b0c..4c07a02 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/MeetingReservationIOMapper.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/MeetingReservationIOMapper.java @@ -1,7 +1,9 @@ package com.ics.admin.mapper; import com.ics.admin.vo.MeetingRecordExportVo; +import com.ics.admin.vo.MeetingTotalVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -21,4 +23,10 @@ public interface MeetingReservationIOMapper { */ List getMeetingReservationList(MeetingRecordExportVo meetingRecordExportVo); + /** + * 会议预约记录汇总 + * @param filterDate 月份,格式:2024-10 + * @return + */ + List total(@Param("filterDate") String filterDate); } diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IMeetingReservationIOService.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IMeetingReservationIOService.java index 189b3a7..c91bdf8 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IMeetingReservationIOService.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IMeetingReservationIOService.java @@ -1,6 +1,7 @@ package com.ics.admin.service; import com.ics.admin.vo.MeetingRecordExportVo; +import com.ics.admin.vo.MeetingTotalVo; import java.util.List; @@ -12,4 +13,7 @@ public interface IMeetingReservationIOService { * @return */ List getMeetingReservationList(MeetingRecordExportVo meetingRecordExportVo); + + + List total(String filterDate); } diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/IMeetingReservationIOServiceImpl.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/IMeetingReservationIOServiceImpl.java index ff1c555..c758ce3 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/IMeetingReservationIOServiceImpl.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/IMeetingReservationIOServiceImpl.java @@ -3,6 +3,7 @@ package com.ics.admin.service.impl; import com.ics.admin.mapper.MeetingReservationIOMapper; import com.ics.admin.service.IMeetingReservationIOService; import com.ics.admin.vo.MeetingRecordExportVo; +import com.ics.admin.vo.MeetingTotalVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -27,4 +28,19 @@ public class IMeetingReservationIOServiceImpl implements IMeetingReservationIOSe return meetingReservationIOMapper.getMeetingReservationList(meetingRecordExportVo); } + @Override + public List total(String filterDate) { + List list = meetingReservationIOMapper.total(filterDate); + int cz = 0, pn = 0; + for (MeetingTotalVo meetingTotalVo : list) { + cz += meetingTotalVo.getCz(); + pn += meetingTotalVo.getPn(); + } + MeetingTotalVo m = new MeetingTotalVo(); + m.setName("合计"); + m.setCz(cz); + m.setPn(pn); + list.add(m); + return list; + } } diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/MeetingTotalVo.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/MeetingTotalVo.java new file mode 100644 index 0000000..25a76cc --- /dev/null +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/MeetingTotalVo.java @@ -0,0 +1,25 @@ +package com.ics.admin.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 会议室预约记录汇总导出 + * created at 2024-10-15 14:37 + * + * @author lujiang + * @version 1.0.0 + * @since 1.0.0 + */ +@Data +public class MeetingTotalVo implements Serializable { + private static final long serialVersionUID = -202410151438L; + + private String name;//会议室名称 + + private Integer cz;//场次 + + private Integer pn;//人次 + +} diff --git a/shoot-hand/ics-admin/src/main/resources/excel/会情汇总表导出模版.xls b/shoot-hand/ics-admin/src/main/resources/excel/会情汇总表导出模版.xls new file mode 100644 index 0000000000000000000000000000000000000000..6e8b66162b94b6b717c04817b120802273baa48e GIT binary patch literal 23040 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 + + \ No newline at end of file