导出包公表格

This commit is contained in:
2025-06-25 14:47:45 +08:00
parent b317c3541c
commit 24b9b081cb
6 changed files with 73 additions and 5 deletions

View File

@@ -69,11 +69,26 @@ public class OaProjectReportController extends BaseController {
@SaCheckPermission("oa:projectReport:export")
@Log(title = "项目报工", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OaProjectReportBo bo, HttpServletResponse response) {
public void export(@RequestBody OaProjectReportBo bo, HttpServletResponse response) {
List<OaProjectReportVo> list = iOaProjectReportService.queryList(bo);
// 处理content去标签
for (OaProjectReportVo reportVo : list) {
reportVo.setContent(stripHtml(reportVo.getContent()));
reportVo.setTrip(reportVo.getIsTrip() == 1 ? "" : "");
if (reportVo.getIsTrip() == null) {
reportVo.setIsTrip(0L); // 防止ExcelDictConvert NPE
}
}
//打印结果我看看
System.out.println(list);
ExcelUtil.exportExcel(list, "项目报工", OaProjectReportVo.class, response);
}
// 工具方法
private static String stripHtml(String html) {
return html == null ? null : html.replaceAll("<[^>]+>", "");
}
/**
* 获取项目报工详细信息
*

View File

@@ -1,5 +1,7 @@
package com.ruoyi.oa.domain.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
@@ -7,6 +9,7 @@ import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.List;
import com.ruoyi.common.core.domain.BaseEntity;
@@ -81,5 +84,11 @@ public class OaProjectReportBo extends BaseEntity {
*/
private Long workType;
// 新增多用户ID和时间范围
private List<Long> userIds;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endDate;
}

View File

@@ -2,6 +2,8 @@ package com.ruoyi.oa.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
@@ -36,6 +38,7 @@ public class OaProjectReportVo {
/**
* 经办人姓名
*/
@ExcelProperty(value = "姓名")
private String nickName;
/**
@@ -58,6 +61,7 @@ public class OaProjectReportVo {
/**
* 项目名称
*/
@ExcelProperty(value = "项目名称")
private String projectName;
/**
@@ -85,8 +89,13 @@ public class OaProjectReportVo {
/**
* 是否出差
*/
private Long isTrip;
private Long isTrip;
/**
* 是否出差
*/
@ExcelProperty(value = "是否出差")
private String trip;
/**
* 报工次数
*/
@@ -109,6 +118,9 @@ public class OaProjectReportVo {
/**
* 报工时间
*/
@ExcelProperty(value = "报工时间")
@DateTimeFormat("yyyy-MM-dd HH:mm:ss") // EasyExcel注解
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // Jackson注解便于前后端一致
private Date createTime;
/**

View File

@@ -1,9 +1,11 @@
package com.ruoyi.oa.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.oa.domain.OaProjectReport;
import com.ruoyi.oa.domain.bo.OaProjectReportBo;
import com.ruoyi.oa.domain.vo.OaProjectReportVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.oa.domain.vo.ProjectReportPieVo;
@@ -21,7 +23,7 @@ import java.util.List;
* @date 2025-06-16
*/
public interface OaProjectReportMapper extends BaseMapperPlus<OaProjectReportMapper, OaProjectReport, OaProjectReportVo> {
List<OaProjectReportVo> selectAll(@Param("bo") OaProjectReportBo bo);
Page<OaProjectReportVo> selectVoPagePlus(@Param("build") Page<Object> build, @Param(Constants.WRAPPER) QueryWrapper<OaProjectReport> lqw);
OaProjectReportVo selectVoByIdPlus(@Param("reportId") Long reportId);

View File

@@ -1,6 +1,7 @@
package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.StringUtils;
@@ -60,10 +61,10 @@ public class OaProjectReportServiceImpl implements IOaProjectReportService {
*/
@Override
public List<OaProjectReportVo> queryList(OaProjectReportBo bo) {
QueryWrapper<OaProjectReport> lqw = ClearbuildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
return baseMapper.selectAll(bo);
}
private QueryWrapper<OaProjectReport> buildQueryWrapper(OaProjectReportBo bo) {
Map<String, Object> params = bo.getParams();
QueryWrapper<OaProjectReport> lqw = Wrappers.query();