按月导出会议室预约记录汇总表

This commit is contained in:
lujiang 2024-10-15 15:13:23 +08:00
parent 684005186e
commit 58dbab7973
7 changed files with 79 additions and 0 deletions

View File

@ -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<MeetingTotalVo> 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();
}
}
}

View File

@ -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<MeetingRecordExportVo> getMeetingReservationList(MeetingRecordExportVo meetingRecordExportVo);
/**
* 会议预约记录汇总
* @param filterDate 月份格式2024-10
* @return
*/
List<MeetingTotalVo> total(@Param("filterDate") String filterDate);
}

View File

@ -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<MeetingRecordExportVo> getMeetingReservationList(MeetingRecordExportVo meetingRecordExportVo);
List<MeetingTotalVo> total(String filterDate);
}

View File

@ -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<MeetingTotalVo> total(String filterDate) {
List<MeetingTotalVo> 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;
}
}

View File

@ -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;//人次
}

View File

@ -21,4 +21,10 @@
order by start
</select>
<select id="total" resultType="com.ics.admin.vo.MeetingTotalVo">
select room.name,count(mr.id) cz,COALESCE(sum(mr.person_num),0) pn from ics_meeting_room room LEFT join ics_meeting_reservation mr
on mr.room_id=room.id and mr.delete_flag=0 and room.delete_flag=0 and mr.start LIKE CONCAT(#{filterDate}, '%') and mr.`status` &gt; 7
group by room.name order by room.id
</select>
</mapper>