|
|
@@ -7,6 +7,7 @@ import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.poi.excel.ExcelUtil;
|
|
|
import cn.hutool.poi.excel.ExcelWriter;
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
@@ -17,6 +18,7 @@ import com.xunmei.common.core.domain.DateRange;
|
|
|
import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingPlanPageVo;
|
|
|
import com.xunmei.common.core.domain.retrieval.domain.CoreMonitoringRetrievalTask;
|
|
|
import com.xunmei.common.core.domain.retrieval.dto.RetrievalTaskPageDto;
|
|
|
+import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskExcelVo;
|
|
|
import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskOneVo;
|
|
|
import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskVo;
|
|
|
import com.xunmei.common.core.domain.retrieval.vo.TaskDataVo;
|
|
|
@@ -57,6 +59,7 @@ import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 监控调阅任务Service业务层处理
|
|
|
*
|
|
|
@@ -99,47 +102,34 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
|
|
|
|
|
|
@Override
|
|
|
public void export(RetrievalTaskPageDto request, HttpServletResponse response) throws IOException {
|
|
|
- //不分页
|
|
|
- request.setPageSize(1L);
|
|
|
- request.setPageNum(100000L);
|
|
|
SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectSysOrgById(request.getOrgId(),SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
|
|
|
List<SysDictData> listDict = RemoteCallHandlerExecutor.executeRemoteCall(() -> dictDataService.selectDictByeType("retrieval_task_status", SecurityConstants.INNER), ErrorMsgConstants.QUERY_DICT_DATA_ERROR);
|
|
|
- final TableDataInfo tableDataInfo = this.selectPage(request);
|
|
|
- if (ObjectUtil.isEmpty(tableDataInfo.getRows())) {
|
|
|
+ List<SysDictData> listDicta = RemoteCallHandlerExecutor.executeRemoteCall(() -> dictDataService.selectDictByeType("sys_access_cycle", SecurityConstants.INNER), ErrorMsgConstants.QUERY_DICT_DATA_ERROR);
|
|
|
+ if (request.getCheckSub()) {
|
|
|
+ request.setOrgPath(sysOrg.getPath());
|
|
|
+ request.setOrgId(null);
|
|
|
+ }
|
|
|
+ List<CoreMonitoringRetrievalTaskExcelVo> list = coreMonitoringRetrievalTaskMapper.selectAllList(request);
|
|
|
+
|
|
|
+ if (ObjectUtil.isEmpty(list)) {
|
|
|
throw new RuntimeException("导出数据为空!");
|
|
|
}
|
|
|
- List<CoreMonitoringRetrievalTaskVo> list = tableDataInfo.getRows();
|
|
|
- list.forEach(r -> {
|
|
|
- r.setStatusText(listDict.stream().filter(d -> d.getDictValue().equals(r.getStatus())).findFirst().orElse(new SysDictData()).getDictLabel());
|
|
|
- });
|
|
|
- list.forEach(r -> r.setNo(list.indexOf(r) + 1));
|
|
|
- ExcelWriter writer = ExcelUtil.getWriter(true);
|
|
|
- writer.addHeaderAlias("序号", "no");
|
|
|
- writer.addHeaderAlias("任务名称", "taskName");
|
|
|
- writer.addHeaderAlias("开始时间", "planStartTime");
|
|
|
- writer.addHeaderAlias("结束时间", "planEndTime");
|
|
|
- writer.addHeaderAlias("状态", "statusText");
|
|
|
- writer.addHeaderAlias("调阅机构", "orgName");
|
|
|
- writer.addHeaderAlias("调阅角色", "roleName");
|
|
|
- writer.addHeaderAlias("调阅开始时间", "startTime");
|
|
|
- writer.addHeaderAlias("调阅结束时间", "endTime");
|
|
|
- writer.addHeaderAlias("调阅人", "retrievalUserName");
|
|
|
- writer.addHeaderAlias("异常数", "exceptionCount");
|
|
|
- //只保留别名的数据
|
|
|
- writer.setOnlyAlias(true);
|
|
|
- // 默认配置
|
|
|
- writer.write(list, true);
|
|
|
- // 设置content—type
|
|
|
- response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset:utf-8");
|
|
|
- // 设置标题
|
|
|
+ if(list.size()>10000){
|
|
|
+ throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
|
|
|
+ }
|
|
|
+ for(int i=0;i<list.size();i++){
|
|
|
+ CoreMonitoringRetrievalTaskExcelVo vo = list.get(i);
|
|
|
+ vo.setStatusText(listDict.stream().filter(d -> d.getDictValue().equals(vo.getStatus())).findFirst().orElse(new SysDictData()).getDictLabel());
|
|
|
+ vo.setOrderNum(i+1);
|
|
|
+ vo.setCycleText(listDicta.stream().filter(d -> d.getDictValue().equals(vo.getStatus())).findFirst().orElse(new SysDictData()).getDictLabel());
|
|
|
+ }
|
|
|
+ response.setContentType("application/vnd.ms-excel");
|
|
|
+ response.setCharacterEncoding("utf-8");
|
|
|
String fileName = URLEncoder.encode("【" + sysOrg.getName() + "】-监控调阅任务记录" + DateHelper.getDateString(new Date()), "UTF-8");
|
|
|
- //Content-disposition是MIME协议的扩展,MIME协议指示MIME用户代理如何显示附加的文件。
|
|
|
- response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".et");
|
|
|
- ServletOutputStream outputStream = response.getOutputStream();
|
|
|
- //将Writer刷新到OutPut
|
|
|
- writer.flush(outputStream, true);
|
|
|
- outputStream.close();
|
|
|
- writer.close();
|
|
|
+ response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
|
|
|
+ // 调用EasyExcel的导出方法
|
|
|
+ EasyExcel.write(response.getOutputStream(), CoreMonitoringRetrievalTaskExcelVo.class).sheet("Sheet1").doWrite(list);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|