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/sarLawsInformation/exportTemplateFile");
// 标准体系列表导出
addInterceptor.excludePathPatterns("/api/lawss/sarMenuStandardLimit/standardSystemListExport");
// // 添加自定义拦截器,并拦截对应 url // // 添加自定义拦截器,并拦截对应 url
addInterceptor.addPathPatterns("/**"); addInterceptor.addPathPatterns("/**");
} }
@@ -1,6 +1,5 @@
package com.adc.da.slrs.sarMenuStandard.controller; package com.adc.da.slrs.sarMenuStandard.controller;
import com.adc.da.base.web.BaseController; import com.adc.da.base.web.BaseController;
import com.adc.da.http.ResponseMessage; import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result; 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.slrs.sarUser.service.ITsUserService;
import com.adc.da.sys.sarMenuStandard.entity.SarMenuStandard; import com.adc.da.sys.sarMenuStandard.entity.SarMenuStandard;
import com.adc.da.util.LoginUserUtil; import com.adc.da.util.LoginUserUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.List; import java.util.List;
/** /**
* <p> * <p>
* 前端控制器 * 前端控制器
* </p> * </p>
* *
* @author super_liu * @author super_liu
* @since 2021-07-07 * @since 2021-07-07
*/ */
@RestController @RestController
@Api(tags = "福田标准法规--标准法规库-菜单标准体系") @Api(tags = "福田标准法规--标准法规库-菜单标准体系")
@RequestMapping("/${restPath}/lawss/sarMenuStandardLimit") @RequestMapping("/${restPath}/lawss/sarMenuStandardLimit")
@Slf4j
public class SarMenuStandardNewController extends BaseController<SarMenuStandardNew> { public class SarMenuStandardNewController extends BaseController<SarMenuStandardNew> {
@Autowired @Autowired
@@ -43,16 +43,16 @@ public class SarMenuStandardNewController extends BaseController<SarMenuStandard
@ApiOperation("查询当前节点所有关联上级") @ApiOperation("查询当前节点所有关联上级")
@GetMapping("/getTopMenu") @GetMapping("/getTopMenu")
public ResponseMessage<String> getTopMenu(SarMenuStandardNew sarMenuStandardNew){ public ResponseMessage<String> getTopMenu(SarMenuStandardNew sarMenuStandardNew) {
String tsResources= iSarMenuStandardNewService.getTopMenu(sarMenuStandardNew); String tsResources = iSarMenuStandardNewService.getTopMenu(sarMenuStandardNew);
return Result.success(tsResources); return Result.success(tsResources);
} }
@ApiOperation("查询有权限资源") @ApiOperation("查询有权限资源")
@GetMapping("/getListStandLimit") @GetMapping("/getListStandLimit")
public ResponseMessage<List<SarMenuStandard>> getListStandLimit(SarMenuStandardNew sarMenuStandardNew){ public ResponseMessage<List<SarMenuStandard>> getListStandLimit(SarMenuStandardNew sarMenuStandardNew) {
List<String> access = tsUserService.getResourceUserId(LoginUserUtil.getUserId()); 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); return Result.success(tsResources);
} }
@@ -68,7 +68,7 @@ public class SarMenuStandardNewController extends BaseController<SarMenuStandard
@ApiOperation("根据菜单ID查询菜单") @ApiOperation("根据菜单ID查询菜单")
@GetMapping("/getMenuStandardById") @GetMapping("/getMenuStandardById")
public ResponseMessage<SarMenuStandard> getMenuStandardById(@RequestParam String menuId){ public ResponseMessage<SarMenuStandard> getMenuStandardById(@RequestParam String menuId) {
if (StringUtils.isBlank(menuId)) { if (StringUtils.isBlank(menuId)) {
return Result.error("获取失败,菜单ID为空"); return Result.error("获取失败,菜单ID为空");
} }
@@ -108,9 +108,9 @@ public class SarMenuStandardNewController extends BaseController<SarMenuStandard
@ApiOperation("法规列表弹窗Excel导出") @ApiOperation("法规列表弹窗Excel导出")
@GetMapping("/standardSystemListExport") @GetMapping("/standardSystemListExport")
public ResponseMessage<?> standardSystemListExport(@RequestBody StandSystemDTO standSystemDTO, public ResponseMessage<?> standardSystemListExport(StandSystemDTO standSystemDTO,
HttpServletResponse response) { HttpServletResponse response, HttpServletRequest request) {
iSarMenuStandardNewService.standardSystemListExport(standSystemDTO, response); iSarMenuStandardNewService.standardSystemListExport(standSystemDTO, response, request);
return Result.success(); return Result.success();
} }
} }
@@ -1,5 +1,6 @@
package com.adc.da.slrs.sarMenuStandard.entity; package com.adc.da.slrs.sarMenuStandard.entity;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -9,7 +10,6 @@ import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@@ -26,15 +26,18 @@ public class StandSystemDTO {
@ApiModelProperty(value = "节点Id") @ApiModelProperty(value = "节点Id")
private String menuId; private String menuId;
@Excel(name = "体系结构", width = 40, orderNum = "1")
@ApiModelProperty(value = "体系结构") @ApiModelProperty(value = "体系结构")
private String standSystem; private String standSystem;
@ApiModelProperty(value = "标准Id") @ApiModelProperty(value = "标准Id")
private String standId; private String standId;
@Excel(name = "标准编号", width = 25, orderNum = "2")
@ApiModelProperty(value = "标准编号") @ApiModelProperty(value = "标准编号")
private String standNo; private String standNo;
@Excel(name = "标准名称", width = 25, orderNum = "3")
@ApiModelProperty(value = "标准名称") @ApiModelProperty(value = "标准名称")
private String standName; private String standName;
@@ -51,6 +54,7 @@ public class StandSystemDTO {
@ApiModelProperty(value = "开始发布日期字符串") @ApiModelProperty(value = "开始发布日期字符串")
private String startReleaseDateString; private String startReleaseDateString;
@Excel(name = "发布日期", width = 25, orderNum = "4", exportFormat = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "发布日期") @ApiModelProperty(value = "发布日期")
@@ -71,6 +75,7 @@ public class StandSystemDTO {
@ApiModelProperty(value = "开始实施日期") @ApiModelProperty(value = "开始实施日期")
private Date startImplementDate; private Date startImplementDate;
@Excel(name = "实施日期", width = 25, orderNum = "5", exportFormat = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "实施日期") @ApiModelProperty(value = "实施日期")
@@ -81,15 +86,19 @@ public class StandSystemDTO {
@ApiModelProperty(value = "结束实施日期") @ApiModelProperty(value = "结束实施日期")
private Date endImplementDate; private Date endImplementDate;
@Excel(name = "代替标准", width = 25, orderNum = "5")
@ApiModelProperty(value = "代替标准") @ApiModelProperty(value = "代替标准")
private String replaceStandardNo; private String replaceStandardNo;
@Excel(name = "编制单位", width = 25, orderNum = "5")
@ApiModelProperty(value = "编制单位") @ApiModelProperty(value = "编制单位")
private String dept; private String dept;
@Excel(name = "起草人", width = 25, orderNum = "5")
@ApiModelProperty(value = "起草人") @ApiModelProperty(value = "起草人")
private String draftUserName; private String draftUserName;
@Excel(name = "数据来源", width = 25, orderNum = "5")
@ApiModelProperty(value = "数据来源") @ApiModelProperty(value = "数据来源")
private String dataSource; private String dataSource;
@@ -124,6 +133,9 @@ public class StandSystemDTO {
@ApiModelProperty(value = "相关联的节点ID列表(数据库查询用)") @ApiModelProperty(value = "相关联的节点ID列表(数据库查询用)")
private List<String> menuIdList; private List<String> menuIdList;
@ApiModelProperty(value = "导出文件名称")
private String exportName;
public void setSelectIds(String selectIds) { public void setSelectIds(String selectIds) {
this.selectIds = selectIds; this.selectIds = selectIds;
this.selectIdList = java.util.Arrays.asList(selectIds.split(",")); 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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
@@ -37,5 +38,5 @@ public interface ISarMenuStandardNewService extends IService<SarMenuStandardNew>
IPage<StandSystemDTO> standardSystemList(StandSystemDTO standSystemDTO); 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; 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.exception.AdcDaBaseException;
import com.adc.da.scheduled.dao.SarStandardInfoDao; import com.adc.da.scheduled.dao.SarStandardInfoDao;
import com.adc.da.slrs.sarBussStandMenu.dao.SarBussStandMenuDao; import com.adc.da.slrs.sarBussStandMenu.dao.SarBussStandMenuDao;
import com.adc.da.slrs.sarBussStandMenu.entity.SarBussStandMenu; import com.adc.da.slrs.sarBussStandMenu.entity.SarBussStandMenu;
import com.adc.da.slrs.sarBussStandMenu.service.ISarBussStandMenuService; import com.adc.da.slrs.sarBussStandMenu.service.ISarBussStandMenuService;
import com.adc.da.slrs.sarBussionessStand.dao.SarBussionessStandDao; 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.dao.SarMenuStandardNewDao;
import com.adc.da.slrs.sarMenuStandard.entity.SarMenuStandardNew; import com.adc.da.slrs.sarMenuStandard.entity.SarMenuStandardNew;
import com.adc.da.slrs.sarMenuStandard.entity.StandCategoryEnum; 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.sarStandMenu.service.ISarStandMenuService;
import com.adc.da.slrs.tsDictionaryType.entity.TsDicType; import com.adc.da.slrs.tsDictionaryType.entity.TsDicType;
import com.adc.da.slrs.tsDictionaryType.service.ITsDicTypeService; 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.dao.SarMenuStandardDao;
import com.adc.da.sys.sarMenuStandard.entity.SarMenuStandard; import com.adc.da.sys.sarMenuStandard.entity.SarMenuStandard;
import com.adc.da.sys.sarMenuStandard.entity.StandMenuRelation; 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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; 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.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -327,9 +337,32 @@ public class SarMenuStandardNewServiceNewImpl extends ServiceImpl<SarMenuStandar
} }
@Override @Override
public void standardSystemListExport(StandSystemDTO standSystemDTO, HttpServletResponse response) { public void standardSystemListExport(StandSystemDTO standSystemDTO, HttpServletResponse response, HttpServletRequest request) {
// List<StandSystemDTO> exportList = this.standardSystemList(standSystemDTO); OutputStream os = null;
// // TODO 导出 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 @Override
@@ -1996,7 +1996,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
* @Return: com.adc.da.util.http.ResponseMessage<com.adc.da.lawss.entity.SarStandardsInfoEO> * @Return: com.adc.da.util.http.ResponseMessage<com.adc.da.lawss.entity.SarStandardsInfoEO>
*/ */
public int updateSarStandardsInfo(SarStandardsInfo sarStandardsInfoEO) throws Exception { public int updateSarStandardsInfo(SarStandardsInfo sarStandardsInfoEO) throws Exception {
// TODO 体系
/** /**
* 加入对应"国家/地区"的清单列表 * 加入对应"国家/地区"的清单列表
*/ */