刘一凡 пре 3 година
родитељ
комит
fc6b341857

+ 95 - 0
src/main/java/com/chuanghai/h3c_reporting/aop/ParamCheckAspect.java

@@ -0,0 +1,95 @@
+package com.chuanghai.h3c_reporting.aop;
+
+import com.chuanghai.h3c_reporting.anno.ParamCheck;
+import com.chuanghai.h3c_reporting.common.exception.BizCodeEnume;
+import com.chuanghai.h3c_reporting.common.exception.RRException;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.Signature;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.hibernate.validator.HibernateValidator;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.Validation;
+import javax.validation.Validator;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 参数校验切面
+ */
+@Aspect
+@Component
+@Order(1)
+public class ParamCheckAspect {
+
+    /**
+     * 校验器
+     */
+    private Validator validator = Validation.byProvider(HibernateValidator.class)
+            .configure()
+            .failFast(true) // 快速失败模式
+            .buildValidatorFactory()
+            .getValidator();
+
+
+    @Around("@annotation(com.chuanghai.h3c_reporting.anno.ParamCheck)")
+    public Object paramCheck(ProceedingJoinPoint point) throws Throwable {
+        Signature signature = point.getSignature();
+        MethodSignature methodSignature = (MethodSignature) signature;
+        Method method = methodSignature.getMethod();
+
+        // 参数列表
+        Object[] args = point.getArgs();
+
+        ParamCheck paramCheck = method.getAnnotation(ParamCheck.class);
+        // 需要校验参数索引【从1开始】
+        int[] index = paramCheck.index();
+
+        if (args == null) {
+            throw new RRException(BizCodeEnume.UNKNOW_EXCEPTION, "@ParamCheck标注在参数列表为空的方法上");
+        }
+
+        int maxIndex = Arrays.stream(index).max().getAsInt();
+        if (maxIndex > args.length) {
+            throw new RRException(BizCodeEnume.UNKNOW_EXCEPTION, "@ParamCheck index越界");
+        }
+
+        for (int i: index) {
+            Object value = args[i - 1];
+            if (value.getClass().isArray()) {
+                doValidate(Arrays.asList((Object[]) value));
+            } else if (value instanceof List) {
+                doValidate((List) value);
+            } else if (value instanceof Set) {
+                doValidate(new ArrayList((Set) value));
+            } else {
+                doValidate(value);
+            }
+        }
+
+        // 返回执行结果
+        return point.proceed();
+    }
+
+    public void doValidate(List values) {
+        if (values != null && values.size() > 0) {
+            for (Object o: values) {
+                doValidate(o);
+            }
+        }
+    }
+
+    public void doValidate(Object o) {
+        Set<ConstraintViolation<Object>> errorSet = validator.validate(o);
+        if (errorSet != null && errorSet.size() > 0) {
+            throw new RRException(BizCodeEnume.PARAMETER_ERROR, errorSet.iterator().next().getMessage());
+        }
+    }
+}

+ 1 - 13
src/main/java/com/chuanghai/h3c_reporting/common/exception/BizCodeEnume.java

@@ -15,20 +15,8 @@ public enum BizCodeEnume {
     INVALID_PARAM(11001,"参数格式校验失败"),
     INVALID_PARAM(11001,"参数格式校验失败"),
     BODY_IS_EMPTY(11002, "body为空"),
     BODY_IS_EMPTY(11002, "body为空"),
     PARAMETER_ERROR(11003, "参数异常"),
     PARAMETER_ERROR(11003, "参数异常"),
-    REPEAT_SUBMIT(11004, "重复提交表单"),
-    ORDER_SUBMIT_ERROR(11005, "订单提交失败"),
-    MQ_CONSUME_EXCEPTION(11006,"消费者消费异常"),
-    THIRD_PARTY_SERVICE_CALL_FAILED(11007, "第三方服务调用失败"),
-    JXNXS_ORDER_QUERY_ERROR(11008, "农商行订单状态查询失败"),
     DATA_IS_EXIST(16000, "数据已存在"),
     DATA_IS_EXIST(16000, "数据已存在"),
-    DATA_NOT_EXIST(16000, "数据不存在"),
-    FILE_IS_NOT_EXIT(16006, "临时文件不存在"),
-    FILE_UPLOAD_ERROR(16007, "文件上传失败"),
-    FILE_IS_TOO_BIG(16008, "文件太大"),
-    DATE_ERROR(16009, "只能关闭当天房间"),
-    FILE_IMPORT_ERROR(16010,"导入模板错误"),
-    PASSWORD_ERROR(16011,"密码解析失败"),
-    URL_ERROR(16012,"播放URL生成失败");
+    DATA_NOT_EXIST(16000, "数据不存在");
 
 
     private int code;
     private int code;
     private String msg;
     private String msg;

+ 0 - 9
src/main/java/com/chuanghai/h3c_reporting/common/exception/MyExceptionHandler.java

@@ -77,15 +77,6 @@ public class MyExceptionHandler {
         return CommonResult.fail(Integer.toString(BizCodeEnume.PARAMETER_ERROR.getCode()), BizCodeEnume.PARAMETER_ERROR.getMsg());
         return CommonResult.fail(Integer.toString(BizCodeEnume.PARAMETER_ERROR.getCode()), BizCodeEnume.PARAMETER_ERROR.getMsg());
     }
     }
 
 
-    /**
-     * 文件过大
-     * @return
-     */
-    @ExceptionHandler(MaxUploadSizeExceededException.class)
-    public CommonResult handleMaxUploadSizeExceededException() {
-        return CommonResult.fail(Integer.toString(BizCodeEnume.FILE_IS_TOO_BIG.getCode()), BizCodeEnume.FILE_IS_TOO_BIG.getMsg());
-    }
-
     @ExceptionHandler(MultipartException.class)
     @ExceptionHandler(MultipartException.class)
     public CommonResult handleMultipartException() {
     public CommonResult handleMultipartException() {
         return CommonResult.fail(Integer.toString(BizCodeEnume.PARAMETER_ERROR.getCode()), "文件上传异常");
         return CommonResult.fail(Integer.toString(BizCodeEnume.PARAMETER_ERROR.getCode()), "文件上传异常");

+ 36 - 0
src/main/java/com/chuanghai/h3c_reporting/config/JacksonConfig.java

@@ -0,0 +1,36 @@
+package com.chuanghai.h3c_reporting.config;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+
+/**
+ * @Author: binguo
+ * @Date: 2022/12/19 星期一 12:26
+ * @Description: 解决前端Long类型数据失真问题
+ * @Version: 1.0
+ */
+@Configuration
+public class JacksonConfig {
+
+    @Bean
+    @Primary
+    @ConditionalOnMissingBean(ObjectMapper.class)
+    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
+    {
+        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
+
+        // 全局配置序列化返回 JSON 处理
+        SimpleModule simpleModule = new SimpleModule();
+        //JSON Long ==> String
+        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
+        objectMapper.registerModule(simpleModule);
+        return objectMapper;
+    }
+
+}

+ 7 - 0
src/main/java/com/chuanghai/h3c_reporting/controller/InformationReportingController.java

@@ -5,6 +5,7 @@ import com.chuanghai.h3c_reporting.bo.DeleteReporting;
 import com.chuanghai.h3c_reporting.common.utils.CommonResult;
 import com.chuanghai.h3c_reporting.common.utils.CommonResult;
 import com.chuanghai.h3c_reporting.common.utils.PageUtils;
 import com.chuanghai.h3c_reporting.common.utils.PageUtils;
 import com.chuanghai.h3c_reporting.controller.request.ReportQueryRequest;
 import com.chuanghai.h3c_reporting.controller.request.ReportQueryRequest;
+import com.chuanghai.h3c_reporting.dto.ReportingDownloadDTO;
 import com.chuanghai.h3c_reporting.entity.InformationReporting;
 import com.chuanghai.h3c_reporting.entity.InformationReporting;
 import com.chuanghai.h3c_reporting.entity.User;
 import com.chuanghai.h3c_reporting.entity.User;
 import com.chuanghai.h3c_reporting.service.InformationReportingService;
 import com.chuanghai.h3c_reporting.service.InformationReportingService;
@@ -13,6 +14,7 @@ import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.List;
 import java.util.List;
@@ -75,5 +77,10 @@ public class InformationReportingController {
     /**
     /**
      * 信息导出
      * 信息导出
      */
      */
+    @RequestMapping("download")
+    public void download(HttpServletResponse response,
+                         ReportingDownloadDTO request) {
+        informationReportingService.download(response, request);
+    }
 
 
 }
 }

+ 1 - 1
src/main/java/com/chuanghai/h3c_reporting/controller/request/ReportQueryRequest.java

@@ -32,7 +32,7 @@ public class ReportQueryRequest {
      * 创建时间
      * 创建时间
      */
      */
 //    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 //    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private String time;
+    private String reportingTime;
 
 
     /**
     /**
      * 当前页,默认1
      * 当前页,默认1

+ 3 - 6
src/main/java/com/chuanghai/h3c_reporting/dto/InformationReportingDTO.java

@@ -2,6 +2,8 @@ package com.chuanghai.h3c_reporting.dto;
 
 
 import lombok.Data;
 import lombok.Data;
 
 
+import java.io.Serializable;
+
 /**
 /**
  * @author 27951
  * @author 27951
  * @version 1.0
  * @version 1.0
@@ -9,7 +11,7 @@ import lombok.Data;
  * @date 2023/3/7 17:26
  * @date 2023/3/7 17:26
  */
  */
 @Data
 @Data
-public class InformationReportingDTO {
+public class InformationReportingDTO implements Serializable {
 
 
     /**
     /**
      * 姓名
      * 姓名
@@ -32,11 +34,6 @@ public class InformationReportingDTO {
     private String company;
     private String company;
 
 
     /**
     /**
-     * 项目
-     */
-    private String item;
-
-    /**
      * 内容
      * 内容
      */
      */
     private String content;
     private String content;

+ 44 - 0
src/main/java/com/chuanghai/h3c_reporting/dto/ReportingDownloadDTO.java

@@ -0,0 +1,44 @@
+package com.chuanghai.h3c_reporting.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author 浮生
+ * @Date 2023/3/12 11:44
+ * @PackageName:com.chuanghai.h3c_reporting.dto
+ * @ClassName: ReportingDownloadDTO
+ * @Description: TODO
+ * @Version 1.0
+ */
+@Data
+public class ReportingDownloadDTO implements Serializable {
+
+//    /**
+//     * 调用者姓名(管理员 上传信息的人)
+//     */
+//    private String adminName;
+
+    private Long[] ids;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 电话号码
+     */
+    private String phone;
+
+    /**
+     * 所在公司
+     */
+    private String company;
+
+    /**
+     * 创建时间
+     */
+    private String reportingTime;
+}

+ 3 - 1
src/main/java/com/chuanghai/h3c_reporting/dto/UserDTO.java

@@ -3,6 +3,8 @@ package com.chuanghai.h3c_reporting.dto;
 import lombok.Builder;
 import lombok.Builder;
 import lombok.Data;
 import lombok.Data;
 
 
+import java.io.Serializable;
+
 /**
 /**
  * @Author 浮生
  * @Author 浮生
  * @Date 2023/3/8 17:12
  * @Date 2023/3/8 17:12
@@ -13,7 +15,7 @@ import lombok.Data;
  */
  */
 @Builder
 @Builder
 @Data
 @Data
-public class UserDTO {
+public class UserDTO implements Serializable {
 
 
     /**
     /**
      * 管理员id
      * 管理员id

+ 11 - 8
src/main/java/com/chuanghai/h3c_reporting/entity/InformationReporting.java

@@ -12,13 +12,14 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
 import javax.validation.constraints.Pattern;
 import javax.validation.constraints.Pattern;
+import java.io.Serializable;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 
 
 @TableName("information_reporting")
 @TableName("information_reporting")
 @NoArgsConstructor
 @NoArgsConstructor
 @AllArgsConstructor
 @AllArgsConstructor
 @Data
 @Data
-public class InformationReporting {
+public class InformationReporting implements Serializable {
     /**
     /**
      * id
      * id
      */
      */
@@ -34,15 +35,16 @@ public class InformationReporting {
     private String name;
     private String name;
 
 
     /**
     /**
-     * 电话号码
+     * 手机号
      */
      */
-    @ExcelProperty("电话号码")
+    @ExcelProperty("手机号")
     @ColumnWidth(15)
     @ColumnWidth(15)
     private String phone;
     private String phone;
 
 
     /**
     /**
      * 微信绑定电话
      * 微信绑定电话
      */
      */
+    @ExcelIgnore
     @ExcelProperty("微信绑定电话")
     @ExcelProperty("微信绑定电话")
     @ColumnWidth(15)
     @ColumnWidth(15)
     private String wxPhone;
     private String wxPhone;
@@ -56,23 +58,24 @@ public class InformationReporting {
 
 
 
 
     /**
     /**
-     * 内容
+     * 事件登记
      */
      */
-    @ExcelProperty("内容")
+    @ExcelProperty("事件登记")
     @ColumnWidth(35)
     @ColumnWidth(35)
     private String content;
     private String content;
 
 
     /**
     /**
-     * 创建时间
+     * 提交时间
      */
      */
-    @ColumnWidth(15)
-    @ExcelProperty(value = "创建时间", converter = LocalDateTimeConverter.class)
+    @ColumnWidth(20)
+    @ExcelProperty(value = "提交时间", converter = LocalDateTimeConverter.class)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime reportingTime;
     private LocalDateTime reportingTime;
 
 
     /**
     /**
      * 状态:0删除 1正常
      * 状态:0删除 1正常
      */
      */
+    @ExcelIgnore
     @ExcelProperty("状态")
     @ExcelProperty("状态")
     @ColumnWidth(15)
     @ColumnWidth(15)
     @Pattern(regexp = "[0-1]", message = "状态只能为0或1")
     @Pattern(regexp = "[0-1]", message = "状态只能为0或1")

+ 3 - 2
src/main/java/com/chuanghai/h3c_reporting/entity/User.java

@@ -12,12 +12,13 @@ import lombok.NoArgsConstructor;
 
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.Pattern;
 import javax.validation.constraints.Pattern;
+import java.io.Serializable;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 
 
 @NoArgsConstructor
 @NoArgsConstructor
 @AllArgsConstructor
 @AllArgsConstructor
 @Data
 @Data
-public class User {
+public class User implements Serializable {
     /**
     /**
      * id
      * id
      */
      */
@@ -62,7 +63,7 @@ public class User {
     /**
     /**
      * 创建时间
      * 创建时间
      */
      */
-    @ColumnWidth(15)
+    @ColumnWidth(20)
     @ExcelProperty(value = "创建时间", converter = LocalDateTimeConverter.class)
     @ExcelProperty(value = "创建时间", converter = LocalDateTimeConverter.class)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime time;
     private LocalDateTime time;

+ 5 - 0
src/main/java/com/chuanghai/h3c_reporting/service/InformationReportingService.java

@@ -3,8 +3,11 @@ package com.chuanghai.h3c_reporting.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.chuanghai.h3c_reporting.common.utils.PageUtils;
 import com.chuanghai.h3c_reporting.common.utils.PageUtils;
 import com.chuanghai.h3c_reporting.controller.request.ReportQueryRequest;
 import com.chuanghai.h3c_reporting.controller.request.ReportQueryRequest;
+import com.chuanghai.h3c_reporting.dto.ReportingDownloadDTO;
 import com.chuanghai.h3c_reporting.entity.InformationReporting;
 import com.chuanghai.h3c_reporting.entity.InformationReporting;
 
 
+import javax.servlet.http.HttpServletResponse;
+
 /**
 /**
  * @author 27951
  * @author 27951
  * @version 1.0
  * @version 1.0
@@ -13,4 +16,6 @@ import com.chuanghai.h3c_reporting.entity.InformationReporting;
  */
  */
 public interface InformationReportingService extends IService<InformationReporting> {
 public interface InformationReportingService extends IService<InformationReporting> {
     PageUtils queryPage(ReportQueryRequest request);
     PageUtils queryPage(ReportQueryRequest request);
+
+    void download(HttpServletResponse response, ReportingDownloadDTO request);
 }
 }

+ 63 - 2
src/main/java/com/chuanghai/h3c_reporting/service/impl/InformationReportingServiceImpl.java

@@ -1,5 +1,8 @@
 package com.chuanghai.h3c_reporting.service.impl;
 package com.chuanghai.h3c_reporting.service.impl;
 
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -7,13 +10,22 @@ import com.chuanghai.h3c_reporting.common.utils.MyQuery;
 import com.chuanghai.h3c_reporting.common.utils.PageParam;
 import com.chuanghai.h3c_reporting.common.utils.PageParam;
 import com.chuanghai.h3c_reporting.common.utils.PageUtils;
 import com.chuanghai.h3c_reporting.common.utils.PageUtils;
 import com.chuanghai.h3c_reporting.controller.request.ReportQueryRequest;
 import com.chuanghai.h3c_reporting.controller.request.ReportQueryRequest;
+import com.chuanghai.h3c_reporting.dto.ReportingDownloadDTO;
 import com.chuanghai.h3c_reporting.entity.InformationReporting;
 import com.chuanghai.h3c_reporting.entity.InformationReporting;
 import com.chuanghai.h3c_reporting.mapper.InformationReportingMapper;
 import com.chuanghai.h3c_reporting.mapper.InformationReportingMapper;
 import com.chuanghai.h3c_reporting.service.InformationReportingService;
 import com.chuanghai.h3c_reporting.service.InformationReportingService;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
 
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
 /**
 /**
  * @author 27951
  * @author 27951
  * @version 1.0
  * @version 1.0
@@ -31,8 +43,8 @@ public class InformationReportingServiceImpl extends ServiceImpl<InformationRepo
                 e -> e.like(StringUtils.hasText(request.getName()), "name", request.getName())
                 e -> e.like(StringUtils.hasText(request.getName()), "name", request.getName())
                         .like(StringUtils.hasText(request.getPhone()), "phone", request.getPhone())
                         .like(StringUtils.hasText(request.getPhone()), "phone", request.getPhone())
                         .like(StringUtils.hasText(request.getCompany()), "company", request.getCompany())
                         .like(StringUtils.hasText(request.getCompany()), "company", request.getCompany())
-                        .eq(StringUtils.hasText(request.getTime()), "reporting_time", request.getTime())
-                        .eq("status", "1")
+                        .like(StringUtils.hasText(request.getReportingTime()), "reporting_time", request.getReportingTime())
+                        .eq("status", 1)
         );
         );
         queryWrapper.orderByDesc("reporting_time");
         queryWrapper.orderByDesc("reporting_time");
         IPage<InformationReporting> page = this.page(
         IPage<InformationReporting> page = this.page(
@@ -41,4 +53,53 @@ public class InformationReportingServiceImpl extends ServiceImpl<InformationRepo
         );
         );
         return new PageUtils(page);
         return new PageUtils(page);
     }
     }
+
+    private Integer queryNumber(){
+        List<InformationReporting> list = this.list();
+        return list.size();
+    }
+
+    @Override
+    public void download(HttpServletResponse response, ReportingDownloadDTO request) {
+        try {
+//            PageParam pageParam = new PageParam();
+//            pageParam.setCurrPage(1);
+//            pageParam.setPageSize(this.queryNumber());
+//            List list = this.queryPage(request).getList();
+            QueryWrapper<InformationReporting> queryWrapper = new QueryWrapper<>();
+            queryWrapper
+                    .like(StringUtils.hasText(request.getName()), "name", request.getName())
+                    .like(StringUtils.hasText(request.getPhone()), "phone", request.getPhone())
+                    .like(StringUtils.hasText(request.getCompany()), "company", request.getCompany())
+                    .like(StringUtils.hasText(request.getReportingTime()), "reporting_time", request.getReportingTime())
+                    .eq("status", 1);
+            List<InformationReporting> list = this.list(queryWrapper);
+            if (request.getIds() != null && request.getIds().equals("")){
+                request.setIds(null);
+            }
+            if (request.getIds() != null){
+                list = this.getBaseMapper().selectBatchIds(Arrays.asList(request.getIds()));
+            }
+
+            WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+            WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+            //设置 水平居中
+            contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+
+            HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+            response.setContentType("application/vnd.ms-excel");
+            response.setCharacterEncoding("utf-8");
+            // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
+            String fileName = URLEncoder.encode("项目信息" + new Date().getTime(), "UTF-8");
+            response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+
+            // 这里需要设置不关闭流
+            EasyExcel.write(response.getOutputStream(), InformationReporting.class)
+                    .registerWriteHandler(horizontalCellStyleStrategy).sheet("项目信息")
+                    .doWrite(list);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
 }
 }

+ 2 - 2
src/main/java/com/chuanghai/h3c_reporting/service/impl/UserServiceImpl.java

@@ -46,8 +46,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         queryWrapper.and(
         queryWrapper.and(
                 e -> e.like(StringUtils.hasText(userQueryRequest.getUserName()), "user_name", userQueryRequest.getUserName())
                 e -> e.like(StringUtils.hasText(userQueryRequest.getUserName()), "user_name", userQueryRequest.getUserName())
                         .like(StringUtils.hasText(userQueryRequest.getName()), "name", userQueryRequest.getName())
                         .like(StringUtils.hasText(userQueryRequest.getName()), "name", userQueryRequest.getName())
-                        .eq(StringUtils.hasText(userQueryRequest.getTime()), "time", userQueryRequest.getTime())
-                        .eq("status", "1")
+                        .like(StringUtils.hasText(userQueryRequest.getTime()), "time", userQueryRequest.getTime())
+                        .eq("status", 1)
         );
         );
         queryWrapper.orderByDesc("time");
         queryWrapper.orderByDesc("time");
         IPage<User> page = this.page(
         IPage<User> page = this.page(