feat: 企标宣贯-导出

This commit is contained in:
2023-09-21 14:29:05 +08:00
parent 72f6e9a2bd
commit c568f7647e
6 changed files with 89 additions and 2 deletions
@@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.util.MessageUtils;
import com.jero.modules.laws.common.constant.ResultCommon;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardDeclare;
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardDeclareVo;
@@ -17,6 +15,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
/**
@@ -49,4 +48,11 @@ public class EnterpriseStandardDeclareController extends JeroController<Enterpri
IPage<EnterpriseStandardDeclareVo> pageList= esDeclareService.queryPageList(esDeclare, pageNo, pageSize);
return Result.OK(pageList);
}
@AutoLog(value = "企标宣贯-导出")
@ApiOperation(value="企标宣贯-导出", notes="企标宣贯-导出")
@GetMapping("/exportData")
public void exportData(HttpServletResponse response, ESQueryCommonDTO esQueryCommonDTO) {
esDeclareService.export(response, esQueryCommonDTO, "企标宣贯", "企标宣贯");
}
}
@@ -1,11 +1,16 @@
package com.jero.modules.laws.enterprise.entity.dto;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* @author: Caihaohan
@@ -13,6 +18,8 @@ import java.util.Date;
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ESQueryCommonDTO {
// 通用
@@ -23,6 +30,13 @@ public class ESQueryCommonDTO {
@ApiModelProperty(value = "通用-标准名称")
private String standardName;
@ApiModelProperty(value = "选中的主键ids")
private String selections;
@ApiModelProperty(value = "选中的主键集合")
@JSONField(serialize = false)
private List<String> idList;
// 宣贯
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@@ -100,4 +114,15 @@ public class ESQueryCommonDTO {
@ApiModelProperty(value = "复审计划-复审结束日期")
private Date recheckEndDate;
public void transIdsToList() {
if (StrUtil.isBlank(this.selections)) {
return;
}
this.idList = StrUtil.split(this.selections, StrUtil.COMMA);
}
public void setSelections(String selections) {
this.selections = selections;
this.transIdsToList();
}
}
@@ -3,6 +3,7 @@ package com.jero.modules.laws.enterprise.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -18,22 +19,27 @@ public class EnterpriseStandardDeclareVo {
@ApiModelProperty(value = "主键id")
private String id;
@Excel(name = "企标编号", width = 15, orderNum = "1")
@ApiModelProperty(value = "企标编号")
private String standardNo;
@Excel(name = "企标名称", width = 15, orderNum = "1")
@ApiModelProperty(value = "企标名称")
private String standardName;
@Excel(name = "发布日期", width = 15, orderNum = "1", format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "发布日期")
private Date releaseDate;
@Excel(name = "实施日期", width = 15, orderNum = "1", format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "实施日期")
private Date implementationDate;
@Excel(name = "宣贯日期", width = 15, orderNum = "1", format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "宣贯日期")
@@ -42,6 +48,7 @@ public class EnterpriseStandardDeclareVo {
@ApiModelProperty(value = "宣贯人id")
private String declareUser;
@Excel(name = "宣贯人姓名", width = 15, orderNum = "1")
@ApiModelProperty(value = "宣贯人姓名")
private String declareUserName;
@@ -62,6 +62,12 @@
<if test="param.declareUserName != null and param.declareUserName != ''">
AND u.username LIKE CONCAT('%',#{param.declareUserName},'%')
</if>
<if test="param.idList != null and param.idList.size() > 0">
AND d.id IN
<foreach item="item" index="index" collection="param.idList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
ORDER BY
d.create_time DESC
</select>
@@ -3,9 +3,12 @@ package com.jero.modules.laws.enterprise.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardDeclare;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.laws.enterprise.entity.dto.ESPlanQueryDTO;
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardDeclareVo;
import javax.servlet.http.HttpServletResponse;
/**
* @author ThinkBook
* @description 针对表【laws_enterprise_standard_declare】的数据库操作Service
@@ -21,4 +24,13 @@ public interface EnterpriseStandardDeclareService extends IService<EnterpriseSta
* @return
*/
IPage<EnterpriseStandardDeclareVo> queryPageList(ESQueryCommonDTO esDeclare, Integer pageNo, Integer pageSize);
/**
* 企标宣贯导出
* @param response
* @param esQueryCommonDTO
* @param fileName
* @param sheetName
*/
void export(HttpServletResponse response, ESQueryCommonDTO esQueryCommonDTO, String fileName, String sheetName);
}
@@ -5,15 +5,22 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardDeclare;
import com.jero.modules.laws.enterprise.entity.dto.ESPlanQueryDTO;
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardDeclareVo;
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardPlanVo;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardDeclareService;
import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardDeclareMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* @author ThinkBook
@@ -34,6 +41,30 @@ public class EnterpriseStandardDeclareServiceImpl extends ServiceImpl<Enterprise
IPage<EnterpriseStandardDeclareVo> page = new Page<>(pageNo, pageSize);
return esDeclareMapper.page(page, esDeclare);
}
@Override
public void export(HttpServletResponse response, ESQueryCommonDTO esQueryCommonDTO, String fileName, String sheetName) {
try {
// 获取数据
IPage<EnterpriseStandardDeclareVo> enterpriseStandardDeclareVoIPage = this.queryPageList(esQueryCommonDTO, 1, Integer.MAX_VALUE);
List<EnterpriseStandardDeclareVo> records = enterpriseStandardDeclareVoIPage.getRecords();
// 设置导出参数
ExportParams exportParams = new ExportParams(null, sheetName); // 可以为标题添加更多的配置
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, EnterpriseStandardDeclareVo.class, records);
// 设置响应头和内容类型
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xls");
// 写出到响应流
workbook.write(response.getOutputStream());
workbook.close();
} catch (Exception e) {
log.error("导出excel异常", e);
throw new JeroBootException("导出excel异常", e);
}
}
}