导出包公表格
This commit is contained in:
@@ -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("<[^>]+>", "");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目报工详细信息
|
||||
*
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user