diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProjectReportController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProjectReportController.java index 39503b7..25fa252 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProjectReportController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProjectReportController.java @@ -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 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("<[^>]+>", ""); + } + /** * 获取项目报工详细信息 * diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProjectReportBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProjectReportBo.java index 03638e0..a7d09ab 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProjectReportBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProjectReportBo.java @@ -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 userIds; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date startDate; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date endDate; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProjectReportVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProjectReportVo.java index 7a560fb..f8a8aea 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProjectReportVo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProjectReportVo.java @@ -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; /** diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProjectReportMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProjectReportMapper.java index cb0cfb8..85462de 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProjectReportMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProjectReportMapper.java @@ -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 { - + List selectAll(@Param("bo") OaProjectReportBo bo); Page selectVoPagePlus(@Param("build") Page build, @Param(Constants.WRAPPER) QueryWrapper lqw); OaProjectReportVo selectVoByIdPlus(@Param("reportId") Long reportId); diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectReportServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectReportServiceImpl.java index 07b5dac..98fb0a3 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectReportServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectReportServiceImpl.java @@ -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 queryList(OaProjectReportBo bo) { - QueryWrapper lqw = ClearbuildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + return baseMapper.selectAll(bo); } + private QueryWrapper buildQueryWrapper(OaProjectReportBo bo) { Map params = bo.getParams(); QueryWrapper lqw = Wrappers.query(); diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaProjectReportMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaProjectReportMapper.xml index 52f573e..ec63104 100644 --- a/ruoyi-oa/src/main/resources/mapper/oa/OaProjectReportMapper.xml +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaProjectReportMapper.xml @@ -223,4 +223,33 @@ GROUP BY u.user_id, u.nick_name, d.dept_name ORDER BY u.nick_name +