feat: 体系搜索数据列表导出

This commit is contained in:
2023-11-17 10:16:52 +08:00
parent 89246b42e5
commit 3467371f69
6 changed files with 74 additions and 25 deletions
@@ -208,6 +208,9 @@ public class WebMvcConfig implements WebMvcConfigurer {
// 政策资料模板下载
addInterceptor.excludePathPatterns("/api/lawss/sarLawsInformation/exportTemplateFile");
// 标准体系列表导出
addInterceptor.excludePathPatterns("/api/lawss/sarMenuStandardLimit/standardSystemListExport");
// // 添加自定义拦截器,并拦截对应 url
addInterceptor.addPathPatterns("/**");
}
@@ -1,6 +1,5 @@
package com.adc.da.slrs.sarMenuStandard.controller;
import com.adc.da.base.web.BaseController;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
@@ -10,29 +9,30 @@ import com.adc.da.slrs.sarMenuStandard.service.ISarMenuStandardNewService;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import com.adc.da.sys.sarMenuStandard.entity.SarMenuStandard;
import com.adc.da.util.LoginUserUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author super_liu
* @since 2021-07-07
*/
* <p>
* 前端控制器
* </p>
*
* @author super_liu
* @since 2021-07-07
*/
@RestController
@Api(tags = "福田标准法规--标准法规库-菜单标准体系")
@RequestMapping("/${restPath}/lawss/sarMenuStandardLimit")
@Slf4j
public class SarMenuStandardNewController extends BaseController<SarMenuStandardNew> {
@Autowired
@@ -43,16 +43,16 @@ public class SarMenuStandardNewController extends BaseController<SarMenuStandard
@ApiOperation("查询当前节点所有关联上级")
@GetMapping("/getTopMenu")
public ResponseMessage<String> getTopMenu(SarMenuStandardNew sarMenuStandardNew){
String tsResources= iSarMenuStandardNewService.getTopMenu(sarMenuStandardNew);
public ResponseMessage<String> getTopMenu(SarMenuStandardNew sarMenuStandardNew) {
String tsResources = iSarMenuStandardNewService.getTopMenu(sarMenuStandardNew);
return Result.success(tsResources);
}
@ApiOperation("查询有权限资源")
@GetMapping("/getListStandLimit")
public ResponseMessage<List<SarMenuStandard>> getListStandLimit(SarMenuStandardNew sarMenuStandardNew){
public ResponseMessage<List<SarMenuStandard>> getListStandLimit(SarMenuStandardNew sarMenuStandardNew) {
List<String> access = tsUserService.getResourceUserId(LoginUserUtil.getUserId());
List<SarMenuStandard> tsResources= iSarMenuStandardNewService.getListStandLimit(sarMenuStandardNew,access);
List<SarMenuStandard> tsResources = iSarMenuStandardNewService.getListStandLimit(sarMenuStandardNew, access);
return Result.success(tsResources);
}
@@ -68,7 +68,7 @@ public class SarMenuStandardNewController extends BaseController<SarMenuStandard
@ApiOperation("根据菜单ID查询菜单")
@GetMapping("/getMenuStandardById")
public ResponseMessage<SarMenuStandard> getMenuStandardById(@RequestParam String menuId){
public ResponseMessage<SarMenuStandard> getMenuStandardById(@RequestParam String menuId) {
if (StringUtils.isBlank(menuId)) {
return Result.error("获取失败,菜单ID为空");
}
@@ -108,9 +108,9 @@ public class SarMenuStandardNewController extends BaseController<SarMenuStandard
@ApiOperation("法规列表弹窗Excel导出")
@GetMapping("/standardSystemListExport")
public ResponseMessage<?> standardSystemListExport(@RequestBody StandSystemDTO standSystemDTO,
HttpServletResponse response) {
iSarMenuStandardNewService.standardSystemListExport(standSystemDTO, response);
public ResponseMessage<?> standardSystemListExport(StandSystemDTO standSystemDTO,
HttpServletResponse response, HttpServletRequest request) {
iSarMenuStandardNewService.standardSystemListExport(standSystemDTO, response, request);
return Result.success();
}
}
@@ -1,5 +1,6 @@
package com.adc.da.slrs.sarMenuStandard.entity;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
@@ -9,7 +10,6 @@ import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -26,15 +26,18 @@ public class StandSystemDTO {
@ApiModelProperty(value = "节点Id")
private String menuId;
@Excel(name = "体系结构", width = 40, orderNum = "1")
@ApiModelProperty(value = "体系结构")
private String standSystem;
@ApiModelProperty(value = "标准Id")
private String standId;
@Excel(name = "标准编号", width = 25, orderNum = "2")
@ApiModelProperty(value = "标准编号")
private String standNo;
@Excel(name = "标准名称", width = 25, orderNum = "3")
@ApiModelProperty(value = "标准名称")
private String standName;
@@ -51,6 +54,7 @@ public class StandSystemDTO {
@ApiModelProperty(value = "开始发布日期字符串")
private String startReleaseDateString;
@Excel(name = "发布日期", width = 25, orderNum = "4", exportFormat = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "发布日期")
@@ -71,6 +75,7 @@ public class StandSystemDTO {
@ApiModelProperty(value = "开始实施日期")
private Date startImplementDate;
@Excel(name = "实施日期", width = 25, orderNum = "5", exportFormat = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "实施日期")
@@ -81,15 +86,19 @@ public class StandSystemDTO {
@ApiModelProperty(value = "结束实施日期")
private Date endImplementDate;
@Excel(name = "代替标准", width = 25, orderNum = "5")
@ApiModelProperty(value = "代替标准")
private String replaceStandardNo;
@Excel(name = "编制单位", width = 25, orderNum = "5")
@ApiModelProperty(value = "编制单位")
private String dept;
@Excel(name = "起草人", width = 25, orderNum = "5")
@ApiModelProperty(value = "起草人")
private String draftUserName;
@Excel(name = "数据来源", width = 25, orderNum = "5")
@ApiModelProperty(value = "数据来源")
private String dataSource;
@@ -124,6 +133,9 @@ public class StandSystemDTO {
@ApiModelProperty(value = "相关联的节点ID列表(数据库查询用)")
private List<String> menuIdList;
@ApiModelProperty(value = "导出文件名称")
private String exportName;
public void setSelectIds(String selectIds) {
this.selectIds = selectIds;
this.selectIdList = java.util.Arrays.asList(selectIds.split(","));
@@ -6,6 +6,7 @@ import com.adc.da.sys.sarMenuStandard.entity.SarMenuStandard;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@@ -37,5 +38,5 @@ public interface ISarMenuStandardNewService extends IService<SarMenuStandardNew>
IPage<StandSystemDTO> standardSystemList(StandSystemDTO standSystemDTO);
void standardSystemListExport(StandSystemDTO standSystemDTO, HttpServletResponse response);
void standardSystemListExport(StandSystemDTO standSystemDTO, HttpServletResponse response, HttpServletRequest request);
}
@@ -1,11 +1,17 @@
package com.adc.da.slrs.sarMenuStandard.service.impl;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.hutool.core.util.StrUtil;
import com.adc.da.common.ReadExcel;
import com.adc.da.exception.AdcDaBaseException;
import com.adc.da.scheduled.dao.SarStandardInfoDao;
import com.adc.da.slrs.sarBussStandMenu.dao.SarBussStandMenuDao;
import com.adc.da.slrs.sarBussStandMenu.entity.SarBussStandMenu;
import com.adc.da.slrs.sarBussStandMenu.service.ISarBussStandMenuService;
import com.adc.da.slrs.sarBussionessStand.dao.SarBussionessStandDao;
import com.adc.da.slrs.sarLawsTopic.entity.SarLawsTopicVO;
import com.adc.da.slrs.sarMenuStandard.dao.SarMenuStandardNewDao;
import com.adc.da.slrs.sarMenuStandard.entity.SarMenuStandardNew;
import com.adc.da.slrs.sarMenuStandard.entity.StandCategoryEnum;
@@ -18,7 +24,6 @@ import com.adc.da.slrs.sarStandMenu.entity.SarStandMenu;
import com.adc.da.slrs.sarStandMenu.service.ISarStandMenuService;
import com.adc.da.slrs.tsDictionaryType.entity.TsDicType;
import com.adc.da.slrs.tsDictionaryType.service.ITsDicTypeService;
import com.adc.da.slrs.tsDictionaryType.service.ITsDictionaryService;
import com.adc.da.sys.sarMenuStandard.dao.SarMenuStandardDao;
import com.adc.da.sys.sarMenuStandard.entity.SarMenuStandard;
import com.adc.da.sys.sarMenuStandard.entity.StandMenuRelation;
@@ -32,13 +37,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.IOUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
import java.util.stream.Collectors;
@@ -327,9 +337,32 @@ public class SarMenuStandardNewServiceNewImpl extends ServiceImpl<SarMenuStandar
}
@Override
public void standardSystemListExport(StandSystemDTO standSystemDTO, HttpServletResponse response) {
// List<StandSystemDTO> exportList = this.standardSystemList(standSystemDTO);
// // TODO 导出
public void standardSystemListExport(StandSystemDTO standSystemDTO, HttpServletResponse response, HttpServletRequest request) {
OutputStream os = null;
Workbook workbook;
List<StandSystemDTO> dataList;
standSystemDTO.setPage(1);
standSystemDTO.setPageSize(Integer.MAX_VALUE);
try {
response.setHeader("Content-Disposition",
"attachment; filename=" + ReadExcel.encodeFileName(standSystemDTO.getExportName()+".xlsx",
request));
// 导出数据,若指定了值则使用ids字段条件导出,否则根据条件导出
IPage<StandSystemDTO> page = this.standardSystemList(standSystemDTO);
dataList = page.getRecords();
ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.XSSF);
exportParams.setSheetName(standSystemDTO.getExportName());
workbook = ExcelExportUtil.exportExcel(exportParams, StandSystemDTO.class, dataList);
os = response.getOutputStream();
workbook.write(os);
os.flush();
} catch (IOException e) {
log.error(e.getMessage(), e);
throw new AdcDaBaseException("下载文件失败,请重试");
} finally {
IOUtils.closeQuietly(os);
}
}
@Override
@@ -1996,7 +1996,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
* @Return: com.adc.da.util.http.ResponseMessage<com.adc.da.lawss.entity.SarStandardsInfoEO>
*/
public int updateSarStandardsInfo(SarStandardsInfo sarStandardsInfoEO) throws Exception {
// TODO 体系
/**
* 加入对应"国家/地区"的清单列表
*/